覆盖原始模块的翻译

问题描述 投票:0回答:2

如何覆盖 default_code 字段的翻译?

在继承的产品模板和产品产品中,我添加了字段

default_code = fields.Char(
        string='Articul',

        related='product_variant_ids.default_code')

 default_code = fields.Char(
        'Articul', select=True)

英文版本中的字符串发生了变化,但如果我更改为我的语言,那么我会得到原始翻译。

所以我尝试从原始模块翻译中复制一部分并将其添加到我的 po 文件中,如下所示。

#. module: product
#: model:ir.model.fields,field_description:product.field_product_product_default_code
#: model:ir.model.fields,field_description:product.field_product_template_default_code
msgid "Articul"
msgstr "Articulas"

它可以工作,但是当我想用 Poedit 更新我的文件时,我收到错误

2018 m. liepos 30 d. 15:43:37: /tmp/poedituUNIro/1input.po:1023: duplicate message definition...
2018 m. liepos 30 d. 15:43:37: /tmp/poedituUNIro/1input.po:169: ...this is the location of the first definition
2018 m. liepos 30 d. 15:43:37: msgmerge: found 1 fatal error
2018 m. liepos 30 d. 15:43:37: Entries in the catalog are probably incorrect.
2018 m. liepos 30 d. 15:43:37: Updating the catalog failed. Click on 'Details >>' for details.
odoo odoo-8 odoo-9
2个回答
5
投票

无需重新声明字段字符串!

  1. 从您想要覆盖的附加组件中导出翻译文件。
  2. 使用 POEeit 或类似工具进行翻译。
  3. 将翻译文件拖放到插件的
    i18n_extra
    文件夹中。例如:
    addon/i18n_extra/fr.pot
  4. 更新插件。

使用该系统,子模块能够覆盖父模块的翻译。


0
投票

覆盖标准字段翻译:

  1. 覆盖自定义模块中的字段(如:default_code)。
  2. 前往 --> 设置 --> 翻译 --> 导出翻译
  3. 出现导出向导 --> 选择要翻译的语言 .. 导出类型:模块 .. 要导出的应用程序:(选择您的自定义模块)-- 单击“导出”
  4. 下载 .po 文件并添加到 “i18n” 文件夹下的自定义模块中。
  5. 在 .po 文件中找到您的字段(例如:default_code)并添加它的翻译。
  6. 最后:转到 --> 设置 --> 翻译 --> 导入翻译并导入您的 .po 文件。
© www.soinside.com 2019 - 2024. All rights reserved.