This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Translations

OpenERP 是多语言的。你想要加进多少种语言都没问题。每个用户都可以用他自己的语言作为工作界面,而且某些资源 (报表的内容,产品名称等等) 也可以翻译成想要的语言。

这一段说明了如何改变每个用户看到的语言,以及如何在 OpenERP 里新增语言。

几乎所有在使用界面里用到的标签都有储存在服务器上,同样的,标签的翻译也都有储存在服务器上。服务器的预设值是把英文的字典储存在服务器上,所以如果用户想要尝试除了英文以外的语言,这些语言的定义(字典)必须要储存在服务器上。

然而,要把 "所有的东西" 存在服务器上是不可能的。实际上,在连上服务器 之前 ,一定会有一些文字显示在某些菜单,按键等等使用者界面上,这些为数不多的文字和句子是使用 GETTEXT 来翻译的;系统预设会依照用户(连上服务器的)电脑的语言来翻译以上的文字和句子。

OpenERP 的翻译系统不限于使用界面的文字;它对报表及某些数据库里的字段 "内容" 同样有效。显然并非所有的数据库字段都需要翻译,所以如果字段内容需要是多语言的,这个字段会有一个旗标图标作为标示。

如何变更用户使用界面的语言?

用户可以设定偏好的语言。当前用户要改变语言设定,在菜单上按:用户 > 偏好选项。

系统管理员也可以在菜单里修改用户的偏好语言(包含用户的使用界面语言):系统管理 > 用户群 > 用户群。系统管理员只需要选择一个用户,然后切换 "偏好选项" ,就可以完成偏好语言的修改。

在服务器上储存翻译文件

用以下的指令上传包含翻译内容的文件 :

./openerp_server.py --i18n-import=file.csv -l LANG

这里的 LANG 是以 CVS 格式保存的文件,存有这个语言的翻译资料。

注意,翻译的文件内容必须使用 UTF8 编码!

翻译成新的语言

Please keep in mind to use the same translation string for identical sources . Launchpad Online Translation may give helpful hints.

在以下这个网站上可以找到更多关于翻译加速器的资讯: http://translate.sourceforge.net/wiki/guide/translation/accelerators

想要翻译成某种语言,或是想要修改某个语言的翻译内容,必须依照以下步奏:

1. Export all the sentences to translate in a CSV file

使用以下指令输出这个文件:

./openerp_server.py --i18n-export=file.csv -l**LANG**

这里的 LANG 是你想翻译的标的语言。

2. Translate the last column of the file

你可以制作某个语言的翻译文件,不论这个语言是已经被翻译过的还是一个新的语言。如果你处理的是一个已经翻译过的语言,以前翻译好的词句应该要写在最后一列。

例如,以下是某个翻译文件(荷兰语)的前几行:

type

name

res_id

src

value

field

"account.account,code"

0

类型CODE

类型CODE

field

"account.account,name"

0

名称

名称

model

"account.account,name"

2

Assets

Aktiva

model

"account.account,name"

25

Results

Salden

model

"account.account,name"

61

Liabilities

Verbindlichkeiten

3. Import this file into OpenERP (as explained in the preceding section)

注释

  • 你应该要在一个空的数据库里进行这些工作,以免覆盖到其他资料。

用以下的指令创建一个新的数据库 (名为 'terp_test'):

createdb terp_test --encoding=unicode terp_server.py --database=terp_test --init=all

或者,你也可以用以下的指令删除你当前的数据库 :

dropdb terp createdb terp --encoding=unicode terp_server.py --init=all

4. Using Launchpad / Rosetta to translate modules and applications

以下的链接是一个很好的开始 https://launchpad.net/openobject

线上翻译

选择模块翻译的段落,输入你的翻译。

离线翻译

如果你想一次性翻译100个名词,就采用离线翻译的方式。

要成功的完成翻译的一个周期,必须严格遵守以下的步奏。 (在 Linux 上测试的结果)

  1. 从 Launchpad 下载 <po 文件> 。

  2. 从 bzr 分支找到模板文件 <pot 文件>
    1. 记得 <pot 文件> 不一定会包含所有字串,因为 <pot 文件> 是不定期更新的。

    2. msgmerge <pot 文件> <po 文件> -o <新 po 文件>

  3. 采用 poedit, kbabel (KDE) 翻译 <新 po 文件>
    1. 有些程序 (例如 kbabel) 可以用字典进行大略的翻译。

    2. 有一个特别有用的做法,就是从现有的翻译中创建一个完整的字典,以便能重复使用与应用程序相关的现有词汇。
      1. 在 OpenERP 里载入全部或是大部分的模块

      2. 载入你的语言

      3. 将你的语言的全部模块输出成 po 文件,然后把这个文件当成是字典。依据模块内容的不同,这个做法可以产生准确度 30-80% 的翻译。

  4. <新 po 文件> 一定不可以有 kbabel 大略翻译产生的 <模糊> 叙述
    1. grep -v fuzzy <新 po 文件> > <po 文件>

  5. 检查拼字是否正确
    1. msgfmt <po 文件> -o <mo 文件>

  6. 检查翻译的连贯性
    1. 导入 (模块的) <po 文件>

    2. 安装 <mo 文件> ,然后重启应用程序

  7. 调整 OpenERP 里的线上翻译
    1. 检查连贯性

    2. 检查字串的长度

    3. 输出 <po 文件>

  8. 把 <po 文件> 上传到 Launchpad
    1. 记住 Launchpad / Rosetta 会抓取某些 (不确定是哪些) 藏在输出文件 <po 文件> 标头段落的标签,来判别导入的 <po 文件> 是否有效。

    2. 一段时间 (几小时) 后, 你会收到一封 E-Mail , 确认结果是成功还是有错误。

采用上下文词典进行翻译

上下文词典在以下段落有详细说明 "物件 - 方法 - 上下文词典". 如果使用管理菜单安装新增加语言,上下文词典里会新增加一个主要 : 语言 。例如,如果安装了法语,而且设置为当前使用者的语言,使用者的上下文词典里会新增加一个主要语言,而且这个主要语言会被连结到 fr_FR 这个值上。