1 界面的多语言化

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

界面的多语言化

Drupal版本:

1.1 添加语言

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

我们来回顾一下一个简单的问题,如何添加一个语言?这个比较简单,我们在添加简单中文的时候,就已经做过了。首先是启用Locale模块,接着导航到语言的管理界面,在这里点击添加语言链接。

1.png 

在我们添加语言的时候,除了预定义好的语言以外,我们还可以自定义语言,实际上,在实际项目中,从来没有用过这个自定义语言。

2.png 

点击右上角的“检测与选择”,进入页面admin/config/regional/language/configure,我们在这里可以配置,按照那种方式选择界面语言。

3.png 

这里的检测方法包括:网址、会话、用户、浏览器、默认。我们这里使用的是默认。对于网址,它是有配置选项的:

4.png 

会话的配置选项:

5.png 

如果同时支持多个语言的话,我们通常都采用网址(路径前缀)的探测方法。我们后面会用到这个。


Drupal版本:

1.2 导入简体中文语言包

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

启用了简体中文以后,如何导入简体中文语言包?我们知道,Drupal的界面翻译,采用的是PO文件的格式,我们需要下载这些语言包,并将它们导入到Drupal中来。Drupal的翻译管理界面,位于admin/config/regional/translate

1.png 

在这里可以查看每个语言的翻译状态,我们看到简体中文的翻译率不足60%

后台的翻译界面:

2.png 

可以对界面语言进行翻译,在上面可以通过查找过滤功能,找到对应的字符串。找到以后,如果已经有了翻译,觉得翻译的不好的话,可以对它进行编辑,替换成我们自己想要的;如果尚未翻译的话,那么我们可以添加自己的翻译。

PO文件的导入界面:

3.png 

可以导入PO文件,在导入的时候,需要选择语言,还需要选择导入的模式,这里有两种模式,一种是将原来的翻译覆盖掉,另一种是保持原有翻译不变,只添加新字符串,我们通常选择后者即可。

将本地的翻译,导出成PO文件,这个功能是有的,但是实际项目中很少用到。语言包可以在https://localize.drupal.org/translate下载到,简体中文的语言包位于https://localize.drupal.org/translate/languages/zh-hans。需要说明一下的是,简体中文小组的汉化工作比较混乱,我去年十月份汉化的Ubercart,到现在都没有人审批。

4.png 

     这段话写的很好,期待简体中文小组的汉化工作,在将来会得到改善。


Drupal版本:

1.3 Localization update模块

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

一个Drupal网站,通常会安装比较多的第3方模块,一个模块一个模块的导入汉化包,也是一件很麻烦的事情。很多时候,我都是这样的,只导入Drupal核心的汉化包,我很少导入第三方模块的。因为网站主要看的前台嘛。如果你对后台的界面的汉化,有更多的要求,而且还想自动化,此时有这样的一个模块,可以帮我们做这件事情。Localization update模块。

我们下载、安装、启用Localization update模块,我这里的版本是l10n_update-7.x-1.0-beta3。这个模块的作用,就是自动的帮我们下载这些语言包。模块启用后,直接导入该模块本身的语言包:

1.png 

导入成功后:

2.png 

在翻译的管理界面,多了一个“更新”标签:

3.png 

点击这个标签,进入页面admin/config/regional/translate/update

4.png 

这里的状态大部分都是“Uninstalled translation available”,这说明了很多Drupal的第三方模块都没有最新的汉化包可用。这里以CKEditor模块为例,展开后:

5.png 

     右下角有一个下载链接,点击这个链接,就可以下载这个模块的PO文件。打开下载好的PO文件,发现里面的文本都已经翻译了。PO文件里面的内容大致如下:

6.png 

     在这个页面的下面,是一个更新模式选项和两个按钮:

7.png 

点击这个更新翻译按钮:

8.png 

     我刚才还犯愁呢,没有想到点了这个按钮就自动导入了。这是我第一次使用这个模块。我能够手动做的,很少去装模块。这是更新成功后的样子:

9.png 

10.png 

汉化就这么简单。不过,美中不足:

11.png 

12.png 

不是100%的汉化了,只汉化了78%。不过很多都已经翻译了,翻译的还不错:

13.png 

在语言的管理界面,多了一个“更新翻译”标签:

14.png 

点击这个标签,进入页面admin/config/regional/language/update,这里是Localization update模块的配置选项:

15.png 

16.png 

     这里面的简体中文,是从繁体中文中复制过来的,都没有转换一下,人真懒。如果我们在“保存下载的文件到”里面输入“sites/all/translations”,那么我们从服务器上下载下来的PO文件就会保存在这个目录下,默认为空时,不会保存这些文件的。


Drupal版本:

1.4 Localization client模块

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

与界面翻译相关的还有Localization client模块,使用它可以在当前页面就能够完成翻译,并且能够将本地的翻译,上传到localize.drupal.org

我们下载、安装、启用Localization client模块,我这里用的版本是l10n_client-7.x-1.2。启用后,在每个页面的下面,会有这个一个链接:

1.png 

点击后,会展开更多内容:

2.png 

左边是该页面上的所有界面文本,绿色的表示已经翻译好的,白色的表示尚未翻译的。双击一段白色的字符串,它就会在中间的“源”里面显示出来,比如这里的“Configure menu block.”,在右边的文本域中输入它的翻译,保存,就完成了翻译。这个比核心自带的翻译功能强大很多,方便很多。

如果我们在本地做了很多汉化工作,想将这些工作分享出来,学一下雷锋。在语言的管理界面,admin/config/regional/language,右边多了一个“分享”标签。

3.png 

点击,进入页面,这是我的配置:

4.png 

这并不意味着我们本地的汉化工作,可以自动的上传到服务器上了,我们需要进一的配置。在用户的编辑页面,有这么一个配置选项:

5.png 

我们需要输入API密钥,点击右下角的链接https://localize.drupal.org/translate/remote/userkey/c060c2fd8de97f4b620b808390d89f0a 如果你拥有drupal.org账号,并且已经登录的话,此时就会为你生成一个密钥:

6.png 

将这个密钥复制过来,并保存。当我们在本地保存一个翻译时,系统就会尝试将这个翻译提交到服务器上:

7.png 

遗憾的是,没有提交上,原因很可能是这个已经有人提交了,但是还没有被批准。又尝试了一下,提交成功:

8.png 

     我把Menu position模块的部分界面文本翻译了一下,并上传到了服务器上。如果所有的中国Drupal开发者,每人贡献10条翻译的话,汉化工作就会比较出色了。


Drupal版本: