多语种翻译

使用 Odoo,你可以将网站翻译成多种不同的语言。

在本章中,您将了解如何:

  • 翻译模块的内容。

  • 导入和导出翻译。

  • 将翻译集成到模块中。

前端

要使用网站构建器翻译页面,请访问你的网站,然后点击语言选择器切换到目标语言。如果你的网站从未翻译成目标语言,请点击 添加语言…,在弹出的窗口中选择该语言,然后点击 添加。

点击 翻译 开始翻译。根据语言的不同,部分文本会被自动翻译并以绿色突出显示,而所有需要手动翻译的内容则以黄色突出显示。

翻译按钮

不过,你需要了解通过网站构建器进行翻译时幕后发生的事情。

默认页面

网站安装后,Odoo 会创建一个基础视图。如果你使用构建器编辑页面,则会创建一个副本视图,你的所有修改(以及翻译)都会保存在这个视图里。唯一的例外是主页(默认情况下,Odoo 甚至在你进行任何编辑之前就会创建一个基础视图和一个副本视图)。

翻译副本页面

我们建议你格外注意执行翻译或修改源语言内容的顺序,无论页面是通过网站构建器创建的,还是通过记录在源代码中创建的。请注意,对源语言的任何一次修改(Edit master)都会破坏源语言与现有翻译之间的链接。换句话说,如果修改了源语言,你就必须重新创建翻译。

可翻译字符串

t-att- 与 t-attf-

如果要设置可翻译字符串,尽可能优先使用 t-attf- 而不是 t-att-。

示例

要输出“Hello username”,可以按以下方式进行:

<div t-attf-title="Hello #{user.name}" />

警告

你也可以像下面的示例那样用 t-att-title 达到同样的效果。不过,结果不会被原生视为可翻译字符串:

<div t-att-title="'Hello' + user.name" />

例外:t-value / t-valuef

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

由于可以向 t-call 传递参数,因此可以调用 *.translate 函数使其值可翻译。

<t t-call="website.layout" additional_title.translate="My Page" />

后端

直接在后端翻译页面可以同时翻译多种语言。为此,请转到 设置 ‣ 技术 ‣ 用户界面: 视图,搜索要翻译的页面名称,然后点击 编辑翻译 按钮。

编辑翻译

导出

翻译完成后,你需要导出翻译以便将其集成到模块中。要一次性导出所有内容,请打开数据库,激活 开发者模式,然后转到 设置 ‣ 翻译 ‣ 导出翻译。选择你翻译的 语言,在 文件格式 下选择 PO File,并将 要导出的应用 设为 website_airproof。

下载该文件并将其移动到 i18n 文件夹。如有需要,之后你可以手动编辑 .po 文件。

PO 文件

你可以直接编辑 .po 文件或自行创建该文件来进行翻译。请参阅 翻译模块文档 来编写你的翻译。

/website_airproof/i18n/fr_BE.po
#. module: website_airproof
#: model_terms:ir.ui.view,arch_db:website_airproof.s_custom_snippet
msgid "..."
msgstr "..."

导入

要将翻译文件导入 Odoo,请转到 设置 ‣ 翻译 ‣ 导入翻译 并上传这些文件。