translator.h.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:1k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #ifndef _TRANSLATOR_H_
  2. #define _TRANSLATOR_H_
  3. #include "filereader.h"
  4. /**
  5.  * The Translator class looks up translations stored in .mo files.
  6.  * See http://www.gnu.org/software/gettext/manual/html_chapter/gettext_8.html#SEC136
  7.  * for file format description.
  8.  */
  9. class Translator {
  10. private:
  11. FileReader *reader;
  12. unsigned int origTableOffset;
  13. unsigned int translationTableOffset;
  14. unsigned int count;
  15. const char *getOrigMessage (unsigned int index);
  16. const char *getTranslationMessage (unsigned int index, unsigned int &len);
  17. public:
  18. /**
  19.  * Create a new Translator object. Throws an exception if the
  20.  * translation file cannot be loaded.
  21.  *
  22.  * @param filename Filename of the .gmo file which contains translations.
  23.  * @pre filename != NULL
  24.  */
  25. Translator (const char *filename);
  26. ~Translator ();
  27. /**
  28.  * Translate a message.
  29.  *
  30.  * @param message The message to translate.
  31.  * @param msglen message's length.
  32.  * @param retlen The length of the return value message, if the return
  33.  *   value is not NULL.
  34.  * @return A translation of message. If message cannot be translated, then
  35.  *         NULL is returned.
  36.  *
  37.  * @pre message != NULL && msglen >= 0
  38.  */
  39. const char *translate (const char *message, unsigned int &retlen);
  40. };
  41. #endif /* _TRANSLATOR_H_ */