我刚刚构建了一个自定义 OpenERP 模块,比如说/addons/the_meaning_of_life
. 现在我想把它翻译成另一种语言。我现在应该有一个包含 a.pot
和.po
文件的 i18n 文件夹。我如何生成这些?有一个分步指南会很好。
问问题
6703 次
3 回答
18
好的,你可以做的是:
- 在您的数据库中安装您的愿望语言。
- 完成模块开发后,在测试服务器上安装模块,然后转到以下向导
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 上进行项目。
希望这会回答你,问候
于 2012-07-19T08:59:41.790 回答
7
这是我用于此目的的 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 分支布局的路径)。
于 2012-07-19T13:13:44.227 回答
-2
在您的数据库中安装您的愿望语言。
完成模块开发后,在测试服务器上安装模块,然后转到以下向导设置(或配置)> 翻译> 导入/导出/导出翻译。然后选择模块 the_meaning_of_life 和desire lang。并以 .po 格式导出。
保存该 po 文件,然后在 po 文件中添加您想要的翻译。然后,您可以将该 po 文件导入数据库中,或者将其添加到您的模块下的文件夹 /addons/the_meaning_of_life/i18n 下,并且它可以与您的模块一起使用。
(仅适用于新模块),您还需要在同一 i18n 文件夹中拥有“pot”文件,如果您还没有它,您可以通过重复步骤 2 来生成一个,但无需选择任何语言。这是您如何为模块中的某些语言提供翻译的方法,但如果您想使用 Launchpad 翻译服务,请检查以下 url,这将指导您使用 .pot,但为此您需要清楚地在 lp 上进行项目。
于 2013-06-11T13:09:27.757 回答