Poedit是一个流行的跨平台的翻译编辑器,用于编辑.po文件。它提供了一个直观的界面和丰富的功能,使得翻译人员能够轻松地编辑和管理软件本地化的翻译。
Gettext工具集:Gettext提供了一组命令行工具,用于管理和处理翻译相关的任务。其中包括以下工具: xgettext:用于从源代码中提取文本字符串,并生成.pot文件(模板文件)。 msginit:用于创建新的.po文件,并提供基本的翻译环境。 msgmerge:用于合并更新的.pot文件到现有的.po文件中,保留已有的翻译。 msgfmt:用于将.po文件编译成二进制的.mo文件,供程序在运行时加载。
.pot文件(Portable Object Template):.pot文件是一种模板文件,用于创建.po文件。它包含了源语言的文本,但没有目标语言的翻译。开发人员通常使用.pot文件作为基础,提取应用程序中的所有文本字符串,并将其转化为.pot文件。然后,翻译人员可以使用.pot文件创建对应的.po文件,并进行翻译工作。
.po文件是一种文本文件,包含源语言(通常是英语)和对应的目标语言翻译。每个翻译条目都包括一个独特的标识符、源文本和目标文本。.po文件是可编辑的,可以使用文本编辑器或专门的翻译工具进行修改。
.mo文件是一种二进制文件,是.po文件的编译版本。它包含了.po文件中的翻译条目的二进制表示。软件在运行时通常使用.mo文件来加载正确的翻译文本。.mo文件是机器可读的,因此在运行时能够提高翻译的效率和性能。
sudo apt install gettext sudo apt install poedit
// myapp.c #include #include #include #define _(str) gettext(str) #define TEXT_DOMAIN "myapp" int main() { setlocale(LC_ALL, ""); //设置语言环境,第二个参数为空表示继承系统环境 bindtextdomain(TEXT_DOMAIN, "locale"); //绑定的翻译文件所属的软件包,和翻译文件路径 textdomain(TEXT_DOMAIN); //使用的翻译文件所属的软件包 puts(_("hello")); return 0; }
gcc myapp.c -o myapp
xgettext -a myapp.c -o myapp.pot
注意删除多余的翻译行
msginit -l zh_CN -i myapp.pot -o zh_CN.po
翻译 po 文件,可使用poedit
msgfmt zh_CN.po -o zh_CN.mo
mkdir -p locale/zh_CN/LC_MESSAGES cp zh_CN.mo locale/zh_CN/LC_MESSAGES/myapp.mo
./myapp
msgunfmt example.mo -o example.po
poedit有GUI,翻译起来比较接近词典或者Qt套件的,还不错
命令行都 安装不上, GUI 更没看到
Rankings
Popular Events
基础知识介绍
poedit 介绍
Poedit是一个流行的跨平台的翻译编辑器,用于编辑.po文件。它提供了一个直观的界面和丰富的功能,使得翻译人员能够轻松地编辑和管理软件本地化的翻译。
gettext 介绍
Gettext工具集:Gettext提供了一组命令行工具,用于管理和处理翻译相关的任务。其中包括以下工具:
xgettext:用于从源代码中提取文本字符串,并生成.pot文件(模板文件)。
msginit:用于创建新的.po文件,并提供基本的翻译环境。
msgmerge:用于合并更新的.pot文件到现有的.po文件中,保留已有的翻译。
msgfmt:用于将.po文件编译成二进制的.mo文件,供程序在运行时加载。
.pot 文件
.pot文件(Portable Object Template):.pot文件是一种模板文件,用于创建.po文件。它包含了源语言的文本,但没有目标语言的翻译。开发人员通常使用.pot文件作为基础,提取应用程序中的所有文本字符串,并将其转化为.pot文件。然后,翻译人员可以使用.pot文件创建对应的.po文件,并进行翻译工作。
.po文件
.po文件是一种文本文件,包含源语言(通常是英语)和对应的目标语言翻译。每个翻译条目都包括一个独特的标识符、源文本和目标文本。.po文件是可编辑的,可以使用文本编辑器或专门的翻译工具进行修改。
.mo文件
.mo文件是一种二进制文件,是.po文件的编译版本。它包含了.po文件中的翻译条目的二进制表示。软件在运行时通常使用.mo文件来加载正确的翻译文本。.mo文件是机器可读的,因此在运行时能够提高翻译的效率和性能。
环境准备
软件安装
示例程序
编译
生成pot文件
注意删除多余的翻译行
生成po 文件
翻译 po 文件,可使用poedit
生成mo 文件
安装
运行
翻译问题排查