/********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** metatranslator.h ** ** This file is part of TQt Linguist. ** ** See the file LICENSE included in the distribution for the usage ** and distribution terms. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ** **********************************************************************/ #ifndef METATRANSLATOR_H #define METATRANSLATOR_H #include #include #include #include class TQTextCodec; class MetaTranslatorMessage : public TQTranslatorMessage { public: enum Type { Unfinished, Finished, Obsolete }; MetaTranslatorMessage(); MetaTranslatorMessage( const char *context, const char *sourceText, const char *comment, const TQString& translation = TQString::null, bool utf8 = FALSE, Type type = Unfinished ); MetaTranslatorMessage( const MetaTranslatorMessage& m ); MetaTranslatorMessage& operator=( const MetaTranslatorMessage& m ); void setType( Type nt ) { ty = nt; } Type type() const { return ty; } bool utf8() const { return utfeight; } bool operator==( const MetaTranslatorMessage& m ) const; bool operator!=( const MetaTranslatorMessage& m ) const { return !operator==( m ); } bool operator<( const MetaTranslatorMessage& m ) const; bool operator<=( const MetaTranslatorMessage& m ) { return !operator>( m ); } bool operator>( const MetaTranslatorMessage& m ) const { return this->operator<( m ); } bool operator>=( const MetaTranslatorMessage& m ) const { return !operator<( m ); } private: bool utfeight; Type ty; }; class MetaTranslator { public: MetaTranslator(); MetaTranslator( const MetaTranslator& tor ); MetaTranslator& operator=( const MetaTranslator& tor ); bool load( const TQString& filename ); bool save( const TQString& filename ) const; bool release( const TQString& filename, bool verbose = FALSE ) const; bool contains( const char *context, const char *sourceText, const char *comment ) const; void insert( const MetaTranslatorMessage& m ); void stripObsoleteMessages(); void stripEmptyContexts(); void setCodec( const char *name ); TQString toUnicode( const char *str, bool utf8 ) const; TQValueList messages() const; TQValueList translatedMessages() const; private: typedef TQMap TMM; typedef TQMap TMMInv; TMM mm; TQCString codecName; TQTextCodec *codec; }; #endif