【问题标题】:How to translate strings in RML?如何翻译 RML 中的字符串?
【发布时间】:2015-01-04 04:03:19
【问题描述】:

我制作了一份 RML 报告,效果很好。在翻译文件中,包含在 RML 文件中的字符串,所以我可以翻译报告的内容。但是有一种情况是无法识别字符串,因此无法翻译这些字符串。我举个例子:

下一行正在工作,翻译文件可以识别“类别”,我可以在那里翻译。

<para style="terp_tblheader_General_Centre">Category</para>

下一个不工作:

<para>[[ o.type == 'r' and 'Registration' or 'Deregistration' ]]</para>

这是无法识别字符串的独特情况。 type 是一个选择字段(可以取值 'r' 或 'd'),我写了该行以在报告中查看 Registration em>(在类型值为 'r' 的情况下)或 Deregistration(在类型值为 'd' 的情况下)。但是 RegistrationDeregistration 没有被识别为要翻译的词。

我看到了这个帖子:

Translation of strings in python code in RML reports

我尝试写_('Registration')/_('Deregistration'),然后写_(Registration)/_(Deregistration)而不是'Registration'/'Deregistration',但在这种情况下,该字符串甚至不会出现在报告中。

有人可以帮帮我吗?

【问题讨论】:

    标签: report openerp openerp-7 po rml


    【解决方案1】:

    对于翻译,您必须在.po 文件中插入文本。您可以在 i18n 文件夹下查看销售、购买、帐户等核心模块。

    1. 在这个路径下加载翻译Setting =&gt; Translations =&gt; Load a Translation

    2. 现在为合作伙伴分配语言。

    3. .po 文件中添加文本值

    4. 根据合作伙伴的语言,它会改变文本标签,就像这里是 .rml 文件的示例代码

      <story>
      <para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
      <para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
      

    希望这会对你有所帮助。

    【讨论】:

    • 再次感谢@Odedra!我已经完成了这些步骤,但是生成的 .po 文件在 [[ o.type == 'r' 和 'Registration' 或 'Deregistration' ]] 中不包括“Registration”和“Deregistration”。 RML 中的其余字符串完美地包含在 .po 文件中。我认为问题在于引号之间的字符串没有被识别,可能是这样吗?
    • 您能告诉我您是如何在 .po 文件中添加该描述的吗?
    • 如果我理解您对描述的含义,.po 没有引号之间的字符串的描述,因为文件中不存在这些字符串。包含的 RML 字符串在它们上面有这个 -> #:report:my_module.my_report:0
    • 是的,你可以像#: model:ir.actions.report.xml,name:my_module.report_report_name一样添加
    猜你喜欢
    • 2015-04-02
    • 2010-09-30
    • 1970-01-01
    • 2015-03-16
    • 2014-09-04
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多