Odoo10参考系列--翻译模块

 

导出可翻译的条款

在你的模块的一些条款是作为一个结果的“隐式翻译”,即使你没有对翻译做任何具体的工作,你可以导出你的模块的可译性条款和可以找到进行翻译工作的内容。

翻译导出通过管理接口执行,通过登录到后端接口和打开 设置 ‣ 翻译 ‣ 导入/导出 ‣ 导出翻译

  • 将语言保留到默认值(新语言/空模板)
  • 选择 PO 文件格式
  • 选择你的模块
  • 点击导出按钮并下载文件

这将给你一个叫yourmodule.pot的文件,它应该移动到yourmodule/i18n/ 目录。 这个文件是一个PO模版,它简单列出可翻译的字符串并从中可以创建实际的翻译文件(PO文件) 。PO文件可以使用msginit创建,用一个专门的翻译工具如POEdit或者通过简单的复制模版到一个叫的新文件language.po中。翻译文件应该放到yourmodule/i18n/,紧邻yourmodule.pot,并当相应的语言被安装时将被Odoo自动的加载 (通过 设置 ‣ 翻译 ‣ 加载翻译)

在安装或更新模块时,也会安装或更新所有加载语言的翻

隐式导出

Odoo自动从"data"-type内容导出翻译字符串:

  • 在非QWeb视图中,所有文本节点导出,以及 stringhelpsumconfirm 和 placeholder 等属性的内容
  • QWeb模版(包括服务器端和客户端),所有文本节点将导出除了在t-translation="off"块中,titlealtlabel and placeholder 等属性的内容也导出
  • 对于Field, 除非它们的模型使用_translate = False标志:

    • 它们的string 和help 属性导出
    • 如果selection 显示并是一个列表(或元组),导出它
    • 如果它们的 translate 属性设置为 True,所有现有的值(在所有记录中)都是导出的
  • _constraints 和_sql_constraints 的帮助/错误信息将导出

显示导出

当谈到在Python代码和JavaScript代码更“必要”的情况下,Odoo不能自动导出翻译条款,因此这些条款必须显示的标注以导出。这是通过在函数调用中封装一个字面字符串来完成的。

在Python中,封装的函数是 odoo._():

title = _("Bank Accounts")

在JavaScript中,封装的函数通常是odoo.web._t():

title = _t("Bank Accounts")

警告

只有文字字符串可以标记为导出,而不是表达式或变量。对于字符串格式的情况,这意味着格式字符串必须被标记,而不是格式化字符串:

# bad, the extract may work but it will not translate the text correctly
_("Scheduled meeting with %s" % invitee.name)

# good
_("Scheduled meeting with %s") % invitee.name

 

 

 

ps:有翻译不当之处,欢迎留言指正。

原文地址:https://www.odoo.com/documentation/10.0/reference/translations.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值