文件类型:

po:

用msginit分析pot文件,生成各语言对应的po文件,比如中文的zh_CN.po。

mo:

用msgfmt将po文件编译生成mo文件,这是二进制文件,不能直接编辑。

gmo:

与mo一致

pot:

是一种模板文件,与po文件一样,其中包含了从源代码中提取所有的翻译字符串的列表,主要提供给翻译人员使用。

1 msgfmt --output-file=zh_CN.gmo zh_CN.po    //生成gmo
2 msgunfmt zh_CN.gmo -o zh_CN.po    //反编译成po

有时添加patch修改po不生效,需要将source中的gmo或mo删除,重新生成

以上只提供了修改po,并生成mo或gmo的方法,如果一开始就没有po文件,怎么去生成呢?

步骤如下:

1、将src目录下的需要翻译的c文件列表生成到po目录下

1 find src -name "*.c" > POTFILE.in

2、使用xgettext提取需要翻译内容,生成.po文件

1 xgettext -f POTFILEE.in -d zh_CN --keyword=_ --keyword=N_ --from-code=UTF-8 

-f 读入输入文件的列表

-d 输出文件

--keyword= 不使用默认关键字 

--from-code=名称 输入文件的编码

3、使用msgmerge将老的po文件和新的po文件进行merge

4、可以使用工具poedit gtranslator对生成的po进行翻译

5、将po生成gmo

1 msgfmt --output-file=zh_CN.gmo zh_CN.po 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-24
  • 2021-04-19
  • 2021-06-14
  • 2021-12-08
猜你喜欢
  • 2021-08-24
  • 2021-12-31
  • 2021-12-09
  • 2021-07-22
  • 2021-09-11
  • 2022-01-08
  • 2021-10-02
相关资源
相似解决方案