有助于翻译

在幕后,geonode正在使用一个名为gnu gettext的软件进一步基于文本的翻译文件(django.po和djangojs.po)来翻译内容。如果你想知道更多关于这些工作原理的信息,你可以在 Django Docs 是的。下面将集中讨论编辑现有或提供新的翻译所需的内容。

下载翻译文件

所有语言文件都位于其之后调用的特定子文件夹中 iso codelocale folder 是的。例如,对于法语,名为django.po的主翻译文件可以从 here .

下一步,要下载语言文件,我们需要安装一个名为“poedit”的开源编辑器,用于编辑:https://poedit.net/download

翻译过程

在开始翻译之前复制一份文件,以便在出现错误时恢复。

安装“poedit”后,您应该可以双击“.po”文件以将其打开。Poedit的界面应与下图所示的界面类似:

Poedit interface

识别翻译问题

从“Poedit”菜单“View”中,确保选中“Entries with errors first”:

Validate translation

下一步单击“目录”菜单中的“验证翻译”:

Validate translation

“poedit”将把需要额外考虑的翻译放在列表的顶部。警告标志意味着解释可能与原短语不完全一致。这不一定是一个错误,只是一个警告,要求用户重新检查。

Poedit warning

在标记短语之后,“poedit”将显示未翻译的句子。当点击其中一个,它可以通过底部面板翻译。

翻译时要特别注意“需要工作”的按钮。如果选中此按钮,则短语将标记为“fuzzy”,并在geonode中忽略。

phrase needs work

保存翻译

翻译一完成,就必须保存和编译。省钱很简单。你所要做的就是点击顶部菜单中的“保存”按钮。

最后一步是编译文件。编译翻译意味着从编辑过的.po文件中创建一个二进制的“.mo”文件。要执行此操作,请单击“编译为MO”

save and compile

Poedit将询问将“.mo”文件写入何处,默认情况下,此文件夹与已编辑的“.po”所在的文件夹相同。如果需要,可以覆盖“.mo”文件。

将翻译推送到存储库

为了共享我们的更新,我们必须将文件上传到geonode的github存储库。转到正确的文件位置,对于法语是:https://github.com/geonode/geonode/tree/master/geonode/locale/fr/lc_messages

点击“上传文件”

upload files

将更新的文件拖到上载表单中,并编写更改的标题/说明

drag files

单击“为此提交创建新分支…”,然后单击绿色按钮。

drag files

最后一步将创建 PULL REQUEST 可以由开发人员审查和批准。

在服务器上激活更新的翻译

将文件推送到github后,将需要更新服务器以尊重更改的文件。

此时,只能由管理员执行此操作。从服务器“shell”中,需要执行以下命令:

workon geonode
cd /opt/geonode
DJANGO_SETTINGS_MODULE=geonode.settings python -W ignore manage.py collectstatic --noinput
sudo service uwsgi restart

.po文件中未列出的文本

如果发现没有相应翻译的模板输出,可以按如下方式添加:

标识负责输出文本的相应模板文件。添加一个 {{% trans "TEXT" %}} 标签。保存模板文件并运行以下命令:

django-admin makemessages -l en -d django -e "html,txt,py" -i docs
django-admin makemessages -l en -d djangojs -e "js" -i docs -i node_modules -i lib

这将更新english.po文件。也要更新应通过设置编辑的语言 -l fr 参数。继续更新.po文件,如上所述。