翻译¶
使用 Odoo,您可以将您的网站翻译成不同的语言。
在本章中,您将学习如何:
翻译模块的内容。
导入和导出翻译。
将翻译集成到模块中。
前端¶
要使用网站构建器翻译您的页面,请转到您的网站并单击语言选择器进行切换。如果您的网站从未翻译成目标语言,请点击 Add a language…,在弹出窗口中选择它,然后点击 Add。
单击 Translate 开始翻译。根据语言的不同,某些文本会自动翻译并以绿色突出显示,而应手动翻译的所有内容都会以黄色突出显示。
但是,当您通过网站建立器翻译某些内容时,您必须了解幕后发生的情况。
默认页面¶
网站安装后,Odoo 就会创建一个基本视图。如果您使用生成器编辑页面,将创建一个重复的视图,并且您的所有修改都将保存到此视图中(以及您的翻译)。唯一的例外是主页(默认情况下,Odoo 会在您编辑任何内容之前创建一个基本视图和复制视图)。
如果您通过网站构建器或通过带有记录的源代码创建页面,我们建议您非常小心地以源语言执行翻译或修改的顺序。请注意,对源语言 (Edit master) 的每一次修改都会破坏源语言和现有翻译之间的链接。换句话说,如果您编辑源语言,则必须重新创建翻译。
可翻译字符串¶
t-att- / t-attf-¶
如果要设置可翻译字符串,请尽可能使用 t-attf- 而不是 t-att-。
例子
要编写“Hello 用户名”,您可以通过以下方式进行:
<div t-attf-title="Hello #{user.name}" />
警告
您也可以使用 t-att-title 获得相同的结果,如下例所示。但是,结果本身不会被视为可翻译字符串:
<div t-att-title="'Hello' + user.name" />
例外:t 值 / t 值f¶
t-value 和 t-valuef 有点不同。它们都不是明确可翻译的,因此您可以编写如下内容:
<t t-set="additional_title">My Page Title Shown in the Browser Tab</t>
当我们编写 XML 上下文时,位于两个 XML 标记之间的文本是可翻译的。
混合可翻译和不可翻译¶
在我们只需要在一个位置设置可翻译文本的情况下:
<t t-set="label">Foo</t>
然后我们需要在不同的位置调用它:
<div t-att-title="label" />
...
<nav t-att-title="label" />
这里我们只是将可翻译内容称为不可翻译属性(t-att-title)。因此 t-att-title 不可翻译,但转换后的变量可以。
电话呼叫¶
由于参数可以传递给 t-call ,因此可以调用 *.translate 函数以使其值可转换。
<t t-call="website.layout" additional_title.translate="My Page" />
后端¶
直接从后端翻译页面允许您同时翻译多种语言。为此,请转至 ,搜索要翻译的页面名称,然后单击 Edit Translations 按钮。
出口¶
完成翻译后,您需要导出翻译以将其集成到您的模块中。要一次性导出所有内容,请打开数据库,激活 developer mode,然后转到 。选择您翻译的 Language、File Format 下的 PO 文件,以及 website_airproof 作为 Apps To Export。
下载文件并将其移至 i18n 文件夹。如果需要,您可以随后手动编辑 .po 文件。
采购订单文件¶
您可以通过编辑 .po 文件或自己创建文件来直接翻译。查看 translating modules documentation 来编写您的翻译。
/website_airproof/i18n/fr_BE.po¶#. module: website_airproof
#: model_terms:ir.ui.view,arch_db:website_airproof.s_custom_snippet
msgid "..."
msgstr "..."
进口¶
要将翻译文件导入 Odoo,请转至 并上传它们。