2

我试图了解如何管理和翻译 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" 用于模糊字符串并说明以前未翻译的字符串,在果园中用作额外信息,看起来更像是“ #。”

提取的 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 文件的推荐方法。还有其他人在使用此功能时遇到问题吗?谢谢

4

1 回答 1

0

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

于 2013-04-12T18:02:52.773 回答