Odoo 10中Qweb条件内术语无法翻译,该如何解决?
解决Odoo 10 Qweb报表中字面字符串无法翻译的问题
直接硬写的'Taxes'字符串没法被Odoo的翻译系统识别,因为它没有被标记为可翻译项。我之前处理过类似的情况,给你几个实用的解决方法:
1. 用Odoo翻译函数标记可翻译字符串
把原代码里的字面量'Taxes'替换成Odoo内置的翻译函数_()包裹的形式,这样系统会把这个字符串纳入翻译池。修改后的代码应该是:
<td><span t-esc="amount_by_group[0] or _('Taxes')"/></td>
这个_()函数是Odoo用来标记需要翻译文本的核心方法,只要这么写,后续就能在翻译模块里找到这个术语了。
2. 更新翻译术语并生效
修改完模板后,需要让翻译系统识别到这个新的可翻译项:
- 先升级你的模块(如果是继承原报表的自定义模块),或者重新加载原销售模块的报表模板,确保修改后的代码被Odoo加载。
- 进入后台的
设置 > 翻译 > 导入/导出 > 加载翻译,选择你需要的语言,点击加载,这样系统会把新的可翻译项同步到翻译库中。 - 如果是手动添加翻译,可以去
设置 > 翻译 > 术语 > 已翻译术语里搜索Taxes,直接添加对应语言的翻译内容。
3. 注意模块继承与配置要点
如果你是通过自定义模块继承原销售订单报表(不建议直接修改Odoo核心模块的文件),要确保:
- 自定义模块的
__openerp__.py文件里,data字段包含了你修改的报表XML文件,同时translations字段正确指向了模块的i18n文件夹(用来存放翻译po文件)。 - 确保你拥有
翻译权限组的权限,不然看不到翻译相关的后台菜单。
内容的提问来源于stack exchange,提问作者forvas
相关产品推荐
相关产品推荐

