Bootstrap

odoo18开发手册--i18n的配置

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界面:
  1. 登录到Odoo服务器。
  2. 导航到“设置” > “翻译”。
  3. 点击“下载翻译文件”,选择相应的模块并生成.pot文件。
  4. 翻译完成后,点击“上传翻译文件”来上传编译好的.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-esct-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. 测试翻译

在不同的语言环境中测试您的应用,确保所有翻译都正确无误。

;