gpt4 book ai didi

xml - 无法翻译 Odoo 10 中 Qweb 条件内的术语。该怎么做?

转载 作者:行者123 更新时间:2023-12-05 07:34:45 24 4
gpt4 key购买 nike

我正在尝试翻译出现在 Qweb 报告中的特定术语,但其行为与预期有很大不同。

如果您在 Odoo 10 中安装了标准的 sale 模块,请查看其销售订单报告 (XML ID = report_saleorder_document)。其代码在report文件夹中,文件sale_report_templates.xml。您会发现以下行:

<td><span t-esc="amount_by_group[0] or 'Taxes'"/></td>

如您所见,有一个文字字符串 Taxes,如果您选择英语以外的语言,则必须对其进行翻译。尝试将单词翻译成尚未翻译的语言。

就我而言,我正在尝试将术语翻译成加利西亚语,其中Taxes 的翻译是空的:

#. module: sale
#: model:ir.model.fields,field_description:sale.field_sale_order_amount_tax
#: model:ir.model.fields,field_description:sale.field_sale_order_line_price_tax
#: model:ir.model.fields,field_description:sale.field_sale_order_line_tax_id
#: model:ir.ui.view,arch_db:sale.report_invoice_layouted
#: model:ir.ui.view,arch_db:sale.report_saleorder_document
msgid "Taxes"
msgstr "Impostos"

但重启服务后,更新sale模块,加载加利西亚语翻译覆盖条款,同步条款,更新浏览器,移除其cookies,甚至更新base 模块,什么都没发生。

然后我在 PostgreSQL 中做了以下查询:

SELECT id, lang, src, name, module, value, res_id FROM ir_translation WHERE src='Taxes' AND lang='gl_ES' ORDER BY id DESC;

   id   | lang  |  src  |               name                |  module  |    value    | res_id 
--------+-------+-------+-----------------------------------+----------+-------------+--------
123634 | gl_ES | Taxes | account.account.tag,applicability | account | Taxes | 0
121625 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 364
121624 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 428
121619 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 414
121618 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 415
121617 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 441
120817 | gl_ES | Taxes | ir.ui.menu,name | account | Taxes | 108
113387 | gl_ES | Taxes | ir.model.fields,field_description | account | Taxes | 2878
113385 | gl_ES | Taxes | ir.model.fields,field_description | account | Taxes | 2700
111845 | gl_ES | Taxes | ir.actions.act_window,name | account | Taxes | 158
111431 | gl_ES | Taxes | account.tax.group,name | account | Taxes | 1
47094 | gl_ES | Taxes | ir.ui.view,arch_db | account | Taxes | 430
46953 | gl_ES | Taxes | ir.ui.view,arch_db | purchase | Impostos | 746
46952 | gl_ES | Taxes | ir.model.fields,field_description | purchase | Impostos | 5045
46951 | gl_ES | Taxes | ir.model.fields,field_description | purchase | Impostos | 4992
45544 | gl_ES | Taxes | ir.ui.view,arch_db | sale | Impostos | 554
45543 | gl_ES | Taxes | ir.ui.view,arch_db | sale | Impostos | 556
45542 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4128
45541 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4120
45540 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4085
(20 rows)

我意识到问题是我也必须翻译 account 模块(我不明白,因为该术语在 sale 模块中) ,所以我去了account模块的加利西亚语翻译文件并更新了它:

#. module: account
#: selection:account.account.tag,applicability:0
#: model:account.tax.group,name:account.tax_group_taxes
#: model:ir.actions.act_window,name:account.action_tax_form
#: model:ir.model.fields,field_description:account.field_account_invoice_line_invoice_line_tax_ids
#: model:ir.model.fields,field_description:account.field_account_move_line_tax_ids
#: model:ir.ui.menu,name:account.menu_action_tax_form
#: model:ir.ui.view,arch_db:account.account_planner
#: model:ir.ui.view,arch_db:account.invoice_form
#: model:ir.ui.view,arch_db:account.invoice_supplier_form
#: model:ir.ui.view,arch_db:account.report_invoice_document
#: model:ir.ui.view,arch_db:account.view_account_config_settings
#: model:ir.ui.view,arch_db:account.view_move_line_form
msgid "Taxes"
msgstr "Impostos"

同样的问题,所以我又做了同样的查询,结果是这样的:

   id   | lang  |  src  |               name                |  module  |    value    | res_id 
--------+-------+-------+-----------------------------------+----------+-------------+--------
123634 | gl_ES | Taxes | account.account.tag,applicability | account | Impostos | 0
121625 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 364
121624 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 428
121619 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 414
121618 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 415
121617 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 441
120817 | gl_ES | Taxes | ir.ui.menu,name | account | Impostos | 108
113387 | gl_ES | Taxes | ir.model.fields,field_description | account | Impostos | 2878
113385 | gl_ES | Taxes | ir.model.fields,field_description | account | Impostos | 2700
111845 | gl_ES | Taxes | ir.actions.act_window,name | account | Impostos | 158
111431 | gl_ES | Taxes | account.tax.group,name | account | Taxes | 1
47094 | gl_ES | Taxes | ir.ui.view,arch_db | account | Impostos | 430
46953 | gl_ES | Taxes | ir.ui.view,arch_db | purchase | Impostos | 746
46952 | gl_ES | Taxes | ir.model.fields,field_description | purchase | Impostos | 5045
46951 | gl_ES | Taxes | ir.model.fields,field_description | purchase | Impostos | 4992
45544 | gl_ES | Taxes | ir.ui.view,arch_db | sale | Impostos | 554
45543 | gl_ES | Taxes | ir.ui.view,arch_db | sale | Impostos | 556
45542 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4128
45541 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4120
45540 | gl_ES | Taxes | ir.model.fields,field_description | sale | Impostos | 4085
(20 rows)

所以我认为问题出在这个翻译上:

111431 | gl_ES | Taxes | account.tax.group,name            | account  | Taxes

确实如此。如果我通过 PostgreSQL 中的查询修改此翻译,那么当我打印销售订单报告时,我可以看到翻译成加利西亚语的单词。

但我的问题是:在不执行查询的情况下通过 PO 文件翻译该术语需要做什么?

这很烦人,因为在某些语言(如西类牙语)中,该术语通过 PO 文件得到了很好的翻译...我认为这个问题很容易复制,所以如果有人尝试过,我将不胜感激,了解正在发生的事情并且可以给我解释一下。

最佳答案

我看到了您所描述的问题,它看起来确实有点令人惊讶。

无论我尝试什么,我都无法通过更改 gl.po 文件或创建我自己的 gl.po 文件来具体更新该术语.我能够通过该方法更新其他术语,这表明由于某种原因这可能是该特定术语的错误。

话虽如此,您可以通过用户界面手动更新术语。

  1. 激活开发者模式
  2. 转到设置 > 翻译 > 应用条款 > 翻译条款
  3. 搜索:
    • 来源术语 = 税收
    • 翻译字段 = account.tax.group,name
  4. Translation Value 更新为 Impostos(或您喜欢的任何值)

如果您特别需要一种自动方式来处理此问题并且不能依赖手动过程,那么您可以修改 _get_tax_amount_by_group 的工作方式。

@api.multi
def _get_tax_amount_by_group(self):
...
from openerp.tools.translate import translate
res = map(lambda l: (translate(self._cr, 'ir.ui.view,arch_db', 'model', self.partner_id.lang, l[0].name), l[1]), res)
...

关于xml - 无法翻译 Odoo 10 中 Qweb 条件内的术语。该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49977357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com