|
|
1
28
我刚刚为一个我正在做的项目做了这个,对我们来说,过程是这样的: 首先,我有一个potfiles.in文件,其中包含需要翻译的源文件列表。我们实际上有两个文件(例如admin.in和user.in),因为管理界面并不总是需要翻译。所以我们只能将用户看到的包含字符串的文件发送给翻译人员。 运行以下命令将从potfiles.in创建.pot模板:
从po/目录运行上述命令,该目录应该是项目的子目录,并包含potfiles.in文件。.pot文件与.po文件的格式完全相同,但它是一个不包含翻译的模板。只要将新的可翻译字符串添加到源文件中,就可以创建新模板。 要更新已翻译的.po文件并向其添加新字符串,请运行:
在上面的例子中,我禁用了模糊匹配,因为我们的字符串是混乱的,它弊大于利。我还禁用了备份文件,因为这里的所有内容都在Subversion中。对每种语言运行上述命令,在本例中,我更新了丹麦语翻译。 最后运行msgfmt从.po文件创建.mo文件:
当然,您不希望每次都手动运行这个脚本,所以创建一些脚本(或者最好是一个或多个makefile)来为您执行这个操作。 请注意,您的目录布局与我的情况略有不同,因此您需要稍微调整输出文件名/路径,但步骤应该相同。 |
|
|
2
6
你可以使用 Transifex 很多python项目(django,mercurial)都使用。它有一个基于Web的编辑器和用于自动化的命令行客户机,并且还支持.NET,如果这有帮助的话。 免责声明:我是Transifex项目负责人。 |
|
|
3
4
我不明白你是怎么想在不编辑每种语言的.po文件的情况下实现真正的翻译的?魔法? 编辑(在注释之后)-如何自动生成 PO 文件夹: 我不使用GetText,但来自 wiki page 看起来你只需要打电话
你想支持的每一种语言。我将生成一个脚本,生成所有语言文件,将它们交给翻译人员,然后在您重新运行它们时 多层梯度薄膜晶体管 在他们身上。 |
|
|
4
3
使用脚本。假设您的源代码在$SRC目录中,那么为i18n文件(pot、po、mo等)创建$SRC/po目录。然后创建文件$src/po/potfiles.in,在该文件中使用gettext函数调用指定源代码文件的路径。它可能看起来像:
现在可以使用以下命令(在目录$SRC内): 更新主文件消息.pot:
对于从messages.pot到fr.po文件的合并更改,例如:
要生成mo文件,请使用命令:
当然,目录fr/lc_messages/必须在调用之前创建,也可以在执行之前删除现有fr/lc_messages/programname.mo。 例如,为了加快进程,将所有这些命令放入相应的.sh文件中。 |
|
|
5
3
你可以试试 Translate Toolkit 对于各种订单文件转换(例如po2csv)。子项目 Pootle 允许通过Web管理翻译。 |
|
|
7
2
我的建议是 django-rosetta 提供了一个基于Web的界面来编辑翻译。Django根本不需要参与你的应用程序,你只需要将它用于在线.po编辑工具。 另一个有趣的新翻译网站,我相信它是用django/pinax建立的。 Transifex 尽管我不确定它是否允许直接编辑.po文件。 |