2

我想为我的国家创建一个 OpenERP l10n 模块(会计科目表)。我需要把它翻译成两种语言。在account_chart.xml我用英语输入单词。所以,词是静态的。name在以下示例中,如何转换帐户的值:

<record id="chart01" model="account.account.template">
     <field name="code">01</field>
     <field name="parent_id" ref="chart0"/>
     <field name="type">view</field>
     <field name="user_type" ref="account.data_account_type_view"/>
     <field name="name">Expenses</field>
  </record>

例如,我想翻译单词Expenses。我不知道如何在 *.po 文件中配置它。有人可以给我看一些例子吗?干杯

4

2 回答 2

4

好问题!创建 OpenERP 本地化模块的官方参考是文档的这个页面。但是它没有解释如何翻译本地化模块,因为具有讽刺意味的是,本地化模块很少需要翻译

一点上下文:与通用OpenERP模块的编写方式相比,单语国家的本地化模块具有直接用该国语言定义的税名、总账科目等名称,而不是用英语定义然后翻译在 .po 文件中。事实上,本地化数据(税务模板、帐户模板等)的 OpenERP 模型自动关闭了翻译标志。原因很简单:如果这些项目的名称总是可翻译的,它们就会出现在所有 OpenERP 翻译的要翻译的术语列表中!想象一下,如果每个翻译团队都被要求用他们的语言翻译世界上所有税收和总账账户的名称,这完全没用。

比利时是幸运的多语言国家之一,但是有一种(实验性的)方法可以使您的会计科目表可翻译。

解决方案有三个

  1. 您的 l10n_xx 模块必须依赖于该l10n_multilang模块。这个小模块为您希望在会计科目表中翻译的大多数字段打开翻译标志。它还spoken_languages在会计科目表模板模型上添加了一个特殊字段,并在安装该会计科目表时自动尝试加载相应的翻译(前提是这些语言之前已安装在同一数据库中)

  2. 您必须spoken_languages在会计科目表的 XML 声明中添加一个字段。它的值必须是以分号分隔的语言代码列表,其中每个代码都是该code语言在 OpenERP 中安装时的字段值。您可以在源代码中看到所有可用语言代码的列表。例如,如果您想为您的会计科目表添加法语和德语翻译,您可以使用以下值 XML 字段:
    <field name="spoken_languages">fr_FR;de_DE</field>

  3. 最后但同样重要的是,您需要实际创建翻译文件,这与您为任何其他 OpenERP 模块所做的类似。理想情况下,您应该在主数据文件中使用英文名称,如果英语不是官方国家语言之一,这可能会很尴尬,因此使用您所在国家/地区的官方语言之一也可以。然后l10n_xx.pot使用 OpenERP 内部的翻译导出向导导出 PO 模板文件(在导出向导中选择您的模块,不选择语言),并将其放在l10n_xx/i18n/您的模块目录中。最后,您可以通过复制l10n_xx.pot每种所需语言(例如fr.po法语等)的 初始翻译,并使用 PO 编辑器(如Poedit )填写翻译。
    查看有关的文档OpenERP 翻译了解更多关于 PO/POT 文件格式和组织的详细信息,以及DReispt 的相关问题(已经提到)。

执行上述步骤后,翻译应自动加载到您安装本地化模块的每个数据库中(但请确保在安装会计科目表之前安装所有相关语言)

这种技术仍然有点实验性,所以如果它看起来不像描述的那样工作,请不要犹豫报告错误。

PS:显然所有这些都应该在OpenERP 官方本地化文档中提及,所以如果有人愿意这样做,请记住文档是开放的,任何人都可以直接为它做出贡献;-)

于 2012-10-18T10:50:56.400 回答
0

我的经验是 OpenERP 导出的 .po 文件包含数据 XML 文件中的文本。我认为,为了将name字段值包含在 .po 文件中,它需要是可翻译的,也就是说,translated=True在它的模型中(account.account.template在这种情况下)。

您可能还会发现如何翻译 OpenERP 模块?问题有用。

于 2012-10-17T22:34:22.750 回答