如何翻译OpenERP模块



我刚刚构建了一个自定义的OpenERP模块,比如/addons/the_meaning_of_life。现在我想把它翻译成另一种语言。我现在应该有一个i18n文件夹,其中包含.pot.po文件。我如何生成这些?如果有一个循序渐进的指南就好了。

好的,这里你可以做的是:

  1. 在数据库中安装您的愿望lang
  2. 完成模块开发后,在测试服务器上安装模块,然后转到以下向导Setting(or Configuration) > Translation> Import/Export/Export Translation。然后选择模块the_meaning_of_life和所需语言,并以.po格式导出
  3. 保存该po文件,然后在po文件中添加所需的翻译。然后,您可以在数据库中导入回该po文件,或者将其添加到/addons/the_meaning_of_life/i18n文件夹下的模块下,该文件可用于您的模块
  4. (仅适用于新模块),您还需要在同一i18n文件夹中有"pot"文件,如果您还没有,您可以通过重复步骤2生成一个文件,但不需要选择任何语言。这就是你如何为模块中的某些语言提供翻译的方法,但如果你想使用Launchpad翻译服务,请检查以下url,这将指导你使用.pot,但为此你需要在lp上明确的项目

希望这能回答你,问候

下面是我用于此操作的bash脚本:

$ cat oerp-i18n-module
#!/bin/bash
#
# usage:
# ./oerp-i18n-module <databasename> <module name>
#
# the script will create or update PO files for en, fr, de and es. You
# will need to update the translations (and don't forget bzr add +
# commit)
dirname=$(find src -name $1 | egrep -v '(src/stable)|(src/server)')
install -d ${dirname}/i18n
for lang in en fr de es
do
    python src/server/openerp-server -c config/instance_debug.ini 
              --log-level=error --i18n-export=${lang}.po -l ${lang} 
              -d $1 --modules=$2 > /dev/null 2>&1 
    if [ -f ${dirname}/i18n/${lang}.po ]
    then
        echo merge new translations in ${dirname}/i18n/${lang}.po
        msgmerge -vU --backup=simple ${dirname}/i18n/${lang}.po ${lang}.po
        rm ${lang}.po
    else
        echo put file in ${dirname}/i18n/${lang}.po
        mv ${lang}.po ${dirname}/i18n/
    fi
done

希望这能有所帮助(您可能需要编辑一些特定于我的bzr分支布局的路径)。

在数据库中安装您想要的lang。

完成模块开发后,在测试服务器上安装模块,然后转到以下向导设置(或配置)>翻译>导入/导出/导出翻译。然后选择模块the_meaning_of_life和所需语言,并以.po格式导出。

保存该po文件,然后在po文件中添加所需的翻译。然后,您可以在数据库中导入回该po文件,或者将其添加到您的模块下的文件夹/addons/the_meaning_of_life/i18n下,并且该文件可用于您的模块。

(仅适用于新模块),您还需要在同一i18n文件夹中有"pot"文件,如果您还没有,您可以通过重复步骤2生成一个文件,但不需要选择任何语言。这就是你如何为模块中的某些语言提供翻译的方法,但如果你想使用Launchpad翻译服务,请检查以下url,这将指导你使用.pot,但为此你需要在lp上明确的项目。

最新更新