【问题标题】:Translating content in filesystem for a Plone product为 Plone 产品翻译文件系统中的内容
【发布时间】:2011-08-05 08:18:57
【问题描述】:

我正在尝试使用 i18n 机器翻译 .py 文件中的某些字符串。翻译 .pt 文件不是问题,但每当我尝试在文件系统上的 Python 代码中使用 _('Something') 进行翻译时,它总是给出英文文本(这是默认值)而不是应该存在的挪威文文本。所以我可以看到英文 python 代码的输出,而其他页面模板位被正确翻译。

有没有方法或类似的东西?

【问题讨论】:

    标签: python internationalization plone zope


    【解决方案1】:

    _('Something') 使用的域名是否与您在具有翻译的挪威语 .po 文件中使用的域名相同?它们应该是相同的,所以不要在一种情况下使用 'plone' 而在另一种情况下使用 'my.domain'。

    此外,对下划线函数的调用本身并不翻译字符串;它只创建一个可以翻译的字符串。如果此字符串直接在模板中自行结束,则应将i18n:translate="" 添加到该标记,可能带有匹配的 i18n:domain。

    否则您应该手动调用translate 方法,如http://readthedocs.org/docs/collective-docs/en/latest/i18n/localization.html#manually-translated-message-ids。阅读Plone 4 migration guide,了解 Plone 3 和 4 之间的一些差异,这些差异可能会让您感到厌烦。

    【讨论】:

    • 这很好,正是我需要的帮助。不过还没有足够的声望来投票给你。
    【解决方案2】:

    如果您正在寻找操作指南,您可能应该阅读这些文档:

    再见, 贾科莫

    【讨论】:

    • 第一个超链接仍然有效(截至目前),但 readthedocs 链接已损坏。
    【解决方案3】:

    请注意,_() 不会在调用时翻译文本,而是返回一个 Message 对象,该对象将在模板中呈现时进行翻译。

    这意味着:

    1. 不要连接消息对象。 "text %s" % _('translation')"text" + _('translation') 都不起作用
    2. 如果您不通过模板将文本发送到浏览器,则可能无法翻译。例如,如果您生成一封电子邮件,则需要手动翻译 Message 对象

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      相关资源
      最近更新 更多