1. 生成翻译文件
在Odoo 18中,您可以使用命令行工具或Odoo的内置功能来生成翻译文件。
使用命令行工具:
# 生成.pot文件
odoo-bin --addons-path=addons,i18n i18n export-po -t my_module -d my_module
# 编译.mo文件
odoo-bin --addons-path=addons,i18n i18n compile -d my_module
使用Odoo界面:
- 登录到Odoo服务器。
- 导航到“设置” > “翻译”。
- 点击“下载翻译文件”,选择相应的模块并生成.pot文件。
- 翻译完成后,点击“上传翻译文件”来上传编译好的.mo文件。
2. 更新翻译文件
当您的模块代码发生变化时,需要更新翻译文件以包含新的或更改过的字符串。
使用命令行工具:
# 合并.pot文件到.po文件
odoo-bin --addons-path=addons,i18n i18n merge -t my_module -d my_module
# 编译.mo文件
odoo-bin --addons-path=addons,i18n i18n compile -d my_module
3. 配置翻译文件的位置
确保您的翻译文件位于正确的目录中。通常,每个模块应该有自己的i18n子目录,其中包含该模块的所有翻译文件(.po和.mo)。
例如:
my_module/
├── __init__.py
├── __manifest__.py
├── views/
│ └── ...
└── i18n/
├── my_module.pot
├── zh_CN.po
└── zh_CN.mo
4. 标记待翻译的字符串
在Python代码中,使用_()
函数标记需要翻译的字符串。在XML模板中,使用t-esc
和t-out
指令来处理动态内容。
Python代码示例:
from odoo import _
class MyModel(models.Model):
_name = 'my.model'
def some_method(self):
return _('Hello World')
XML模板示例:
<record id="view_form" model="ir.ui.view">
<field name="name">my.model.form</field>
<field name="model">my.model</field>
<field name="arch" type="xml">
<form string="My Model">
<group>
<field name="name"/>
<div class="oe_title">
<h1><span t-esc="o.name"/></h1>
</div>
</group>
</form>
</field>
</record>
5. 测试翻译
在不同的语言环境中测试您的应用,确保所有翻译都正确无误。