如何翻译OpenERP本地化模块的内容

2024-04-28 11:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的国家创建一个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文件中配置它。谁能给我举个例子吗?干杯


Tags: 模块namerefviewidfieldtypel10n
2条回答

好问题!创建OpenERP本地化模块的官方参考是this page of the documentation。但是它没有解释如何翻译本地化模块,因为具有讽刺意味的是,本地化模块很少需要翻译。在

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

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

解决方案有三个方面

  1. l10n_xx模块必须依赖于l10n_multilang模块。这个小模块为要在科目表中转换的大多数字段转换translation flag on。它还将在科目表模板模型上添加一个特殊的spoken_languages字段,并将在安装该科目表时自动尝试加载相应的翻译(前提是这些语言以前已安装在同一数据库中)

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

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

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

这项技术还是有点实验性的,所以如果它看起来不能像所描述的那样工作,请不要犹豫地报告错误。在

PS:显然所有这些都应该在正式的OpenERP localization文档中提到,所以如果有人想这样做,请记住documentation is open和任何人都可以直接对此做出贡献;-)

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

您可能还发现How to translate an OpenERP module?问题很有用。在

相关问题 更多 >