翻译

使用 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-valuet-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" />

后端

直接从后端翻译页面允许您同时翻译多种语言。为此,请转至 Settings ‣ Technical ‣ User Interface: Views,搜索要翻译的页面名称,然后单击 Edit Translations 按钮。

编辑翻译

出口

完成翻译后,您需要导出翻译以将其集成到您的模块中。要一次性导出所有内容,请打开数据库,激活 developer mode,然后转到 Settings ‣ Translations ‣ Export Translation。选择您翻译的 LanguageFile 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,请转至 Settings ‣ Translations ‣ Import Translation 并上传它们。