Django L10N:使'po'文件的平面模型不平坦

时间:2012-01-31 09:28:08

标签: django localization gettext

问题是:.po文件是平的。所以,我们没有方便的层次结构。

示例:

msgid "SITE_TITLE"
msgstr "This is a title of my site"

msgid "ABOUT_SITE_TITLE"
msgstr "And now... about the site"

当我们的.po文件中有很多消息时,会出现问题。找到我们想要更改的特定消息很困难。

我们还需要将.po消息绑定到特定模板(html模板)。

显而易见的解决方案是使用自定义前缀(例如,作为模板文件的名称)。然后,如果我们有home.html和about.html,我们的消息字符串将是:

msgid "HOME:SITE_TITLE"
msgstr "This is a title of my site"

msgid "ABOUT:SITE_TITLE"
msgstr "And now... about the site"

请问您能提供更方便的解决方案吗?

1 个答案:

答案 0 :(得分:1)

基本上.po文件是普通文本文件,条目用空行分隔。编写一个简单的解析器,它将基于像msgid "SOMETHING:这样的前缀将一个.po拆分成多个文件,这似乎是处理大量翻译文件的简单解决方案。组织成多个po文件简化了翻译过程(但你必须保持msgid唯一,所以前缀需要保留)。

我推荐的下一个工具名为django-rosetta。它提供了对po文件的基于Web的访问,处理版本并显示文件(即模板)中翻译字符串的出现。