Gettext:消息目录的不同路径

时间:2011-09-23 13:01:27

标签: python gettext launchpad

在使用gettext提供国际化支持的Python应用程序中,我想将* .mo消息目录的路径更改为po/language.mo而不是默认localedir/language/LC_MESSAGES/domain.mo,我希望如此使用Launchpad的翻译界面,这需要这个命名方案(至少据我所知[1])。

然而,在阅读了模块文档后,我似乎无法找到一种方法来实现这一点,而无需猴子修补gettext模块。是否有“官方”的方式来做到这一点?

[1] https://help.launchpad.net/Translations/YourProject/Exports


编辑: 暂时考虑一下,改变路径对于Launchpad集成来说实际上并不是必需的,因为它只关心* .po文件,而不是编译的* .mo文件。 不过,我的问题仍然存在,因为如果应用程序尽可能少地搞乱系统目录会很好(特别是考虑到它是一个在* nix,Windows和OS X上运行的多平台应用程序)。

1 个答案:

答案 0 :(得分:3)

我问过PHP的相同问题,但答案在于底层的gettext api。无法更改目录的路径。

目录结构由gettext修复。

  

由于必须存储许多不同包的许多不同语言,我们需要一些方法将这些信息添加到文件消息目录文件中。 Unix环境中通常使用的方法是在文件名中使用此编码。这也是在这里完成的。 bindtextdomains第二个参数(或默认目录)中给出的目录名称,后跟区域设置的名称,区域设置类别和域名是连接的:

     

DIR_NAME /区域/ LC_category / domain_name.mo

请参阅:PHP Gettext: how to change the default MO path after setting the path of the domain?