Orchard Localization PO文件用法和Vandelay.TranslationManager

时间:2013-04-12 09:43:44

标签: localization orchardcms po

我试图了解如何管理和翻译Orchard PO文件,如下所述: http://weblogs.asp.net/bleroy/archive/2011/01/13/creating-and-maintaining-orchard-translations.aspx

当我尝试使用我在互联网上找到的一些编辑器时,问题就出现了,我注意到了:

  • Vandelay.TranslationManager生成的果园翻译文件可能无效
  • 在外部编辑器中编辑的文件可能会破坏PO翻译文件并阻止使用同步(有效密钥标记为过时,新密钥添加为未翻译)

首先,我试图获得PO文件格式的可靠解释,我在此处找到:http://pology.nedohodnik.net/doc/user/en_US/ch-poformat.html

规格摘要:

  • PO文件中的消息由其msgid字符串
  • 唯一标识
  • 当在不同的文件中使用相同的msgid时,可以使用可选的上下文 用来区分同一个msgid

在Vandelay.TranslationManager和所有翻译过的文件中挖了一下后,我想我已经找到了问题。

Vandelay.TranslationManager将两个值组合为唯一键:   - #| msgid(用作翻译密钥)   - msgctxt(可选上下文,始终定义在Orchard中)

问题是Vandelay.TranslationManager使用唯一键“#| msgid”而不是“msgid” “#| msgid”用于模糊字符串并表示以前未翻译的字符串,在orchard中用作额外信息,似乎更像是“#。”

提取的PO文件示例:

#: ~/Modules/nwazet.commerce/Module.txt
#| msgid "Nwazet.Commerce.Category"
msgctxt ~/Modules/nwazet.commerce/Module.txt
msgid "Commerce"
msgstr "Commerce"

#: ~/Modules/nwazet.commerce/Module.txt
#| msgid "Nwazet.Bundles.Category"
msgctxt ~/Modules/nwazet.commerce/Module.txt
msgid "Commerce"
msgstr "Commerce"

请注意,即使“#| msgid”不同,上面的两个条目确实是根据规范重复的。

现在的问题是: 这只是一个错误还是一个精确的设计? Afaik Vandelay.TranslationManager是处理Orchard中Po文件的推荐方法。 其他任何使用此功能的问题? 感谢

1 个答案:

答案 0 :(得分:0)

处理Orchard po文件的推荐方法是在线翻译工具:http://orchardproject.net/localize