如何翻译 OpenERP 模块?

Posted

技术标签:

【中文标题】如何翻译 OpenERP 模块?【英文标题】:How to translate an OpenERP module? 【发布时间】:2012-07-18 09:09:28 【问题描述】:

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

【问题讨论】:

【参考方案1】:

好的,你可以做的是:

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

希望这能回答你,问候

【讨论】:

做到了,谢谢。一些备注:下载的.po文件是ANSI,所以我不得不将它保存为UTF-8。然后我将文件“pt.po”复制到 i18n 文件夹并重新启动服务器。服务器上加载的翻译重新启动。 @DReispt 是的,这是完美的方式,您必须仅将其保存为 UTF-8【参考方案2】:

这是我用于此目的的 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 分支布局的路径)。

【讨论】:

【参考方案3】:

在你的数据库中安装你想要的语言。

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

保存该 po 文件,然后在 po 文件中添加您想要的翻译。然后,您可以将该 po 文件导入数据库中,或将其添加到您的模块下的文件夹 /addons/the_meaning_of_life/i18n 下,它可以与您的模块一起使用。

(仅适用于新模块),您还需要在同一个 i18n 文件夹中拥有“pot”文件,如果您还没有它,您可以通过重复步骤 2 来生成一个,但无需选择任何语言。这是您如何为模块中的某些语言提供翻译的方法,但如果您想使用 Launchpad 翻译服务,请检查以下网址,这将指导您使用 .pot,但为此您需要清楚地在 lp 上进行项目。

【讨论】:

以上是关于如何翻译 OpenERP 模块?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenERP 6 中安装 product_images_olbs 模块?

openerp 7 启动消息“没有名为 pooler 的模块”

OpenERP 7 web 服务支持 Java 吗?

使用xml-rpc调试openerp模块中的函数

你如何运行 OpenERP yaml 单元测试

OpenERP|ODOO高德地图应用