为翻译贡献力量

在幕后,GeoNode正在使用一种名为GNU gettext的软件来进一步翻译基于文本的翻译文件(django.po和djangojs.po)来翻译内容。如果您想了解更多关于这一切的工作原理,您可以在 Django Docs 。下面将集中介绍编辑现有翻译或贡献新翻译所需的内容。

下载翻译文件

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

接下来,要下载语言文件,我们需要安装一个名为“POEDIT”的OpenSource Editor,以便从https://poedit.net/download进行编辑

翻译过程

在开始转换之前制作文件的副本,以便在发生错误时可以恢复。

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

POEDIT界面

确定翻译问题

从‘poedit’菜单‘View’中,确保选中了‘Entries With Errors First’:

验证转换

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

验证转换

“POEDIT”将把可能需要额外考虑的翻译放在列表的首位。警告标记表示解释可能与原始短语不完全一致。这不一定是错误,只是要求用户仔细检查的警告。

POEDIT警告

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

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

短语需要改进

保存翻译

翻译完成后,必须立即保存和编译。存钱很简单。您所要做的就是单击顶部菜单中的“保存”按钮。

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

保存并编译

POEDIT将询问将“.mo”文件写入的位置,默认情况下,该文件夹与已编辑的“.po”文件所在的文件夹相同。如有必要,可以覆盖“.mo”文件。

将翻译推送到存储库

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

点击“上传文件”

上传文件

将更新后的文件拖放到上传表单中,并写下更改的标题/描述

拖动文件

单击“Create a new Branch for this Commit…”(为此提交文件创建新分支)然后点击绿色按钮。

拖动文件

最后一步将创建一个 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 --no-location -l en -d django -e "html,txt,py" -i docs
django-admin makemessages --no-location -l en -d djangojs -e "js" -i docs -i node_modules -i lib

这将更新英文.po文件。还可以更新应由设置编辑的语言。 -l fr 参数。继续如上所述更新.po文件。