作者:​rainday0310​


  最近在学习Drupal,下面说说我在Drupal汉化方面的一些个人经验。

  

   点击下载​​http://ftp.drupal.org/files/projects/potx-6.x-2.2.tar.gz​​。它可以用来提取模块和主题的字符串,我们只需将提取的这些字符串进行翻译就可完成模块或主题的汉化。



  下载安装后它会在站点构建里,如下图



如何汉化Drupal的模块和主题…_字符串



  点击Extract进入提取界面,你会看到三个菜单:第一个是Drupal自带的模块目录;第二个是第三方目录;第三个是主题目录。如果你是将第三方主题放在了Drupal自带模块目录,就是Drupal根目录下的modules目录里,那么你就只能看到第一个和第三个菜单了。



如何汉化Drupal的模块和主题…_字符串



  下面以汉化E-commerce模块为例,展开“sites/all/modules”(如果你将第三方模块放在了Drupal自带模块目录,请展开“modules”),找到E-commerce模块项选中下图中的单选按纽



如何汉化Drupal的模块和主题…_字符串



  然后将页面拉到底部,选中以下两个选项。第一个是导出简体中文的翻译模板文件,第二个是将当前模块中已经被汉化的部分也导出。点击Extract开始提取E-commerce



如何汉化Drupal的模块和主题…_字符串


  这时会弹出一个文件下载框,注意请使用系统默认工具下载,不要使用迅雷等下载工具,不然可能无法得到正确的文件。如下图,使用默认文件名,保存。



如何汉化Drupal的模块和主题…_字符串


  但是这样提取的是一个单独的很大的翻译模板文件。因为e-commerce是一个比较大的模块,它由很多小的模块组成,我们可以对每一个小的模块分别提取。只要在选择导出时展开e-commerce菜单,选择它的子模块所在目录,点提取这样就可单独得到该子模块的翻译模板,如图



如何汉化Drupal的模块和主题…_字符串


  使用Dreamweaver打开提取的po模板文件



如何汉化Drupal的模块和主题…_字符串



  方框中的为此模板所翻译的几个源文件,因为翻译是针对很强的,只对以上版本的几个文件有效。另外如果将以上文件进行添加行或删除行都可能会导致翻译文件失效,因为翻译是根据每一行内的内容对文件进行翻译的,下面会说明。模板前面的内容主要为一些说明信息和其他配置,默认即可。向下找到以“#:”开始的部分,我们的翻译就是从这里开始的。



如何汉化Drupal的模块和主题…_字符串



  msgid后面双引号内的部分就是需要翻译的语句。将翻译结果填写在msgstr后的双引号内。全部翻译完成后将po文件导入就完成了汉化,其它模块和主题的汉化大同小异。



如何汉化Drupal的模块和主题…_字符串



  前图中蓝色框内的ec_address.admin.inc:25,其中冒号前的是该字符串所在的文件,25为所的行数。使用Dreamweaver打开该文件,找到25行,可看到



如何汉化Drupal的模块和主题…_字符串




  在翻译的过程中有一些内容是不能被翻译的,否则会导致模块出错。比如一些变量,html语句等。其中我发现的变量有以"!""%""@"开关的单词,如下图:



如何汉化Drupal的模块和主题…_字符串



如何汉化Drupal的模块和主题…_字符串



如何汉化Drupal的模块和主题…_字符串



  可能还有一些其它特殊符号开头的英文,安全起见暂不翻译。还有以下划线连接的单词,不知何意,暂时不翻译。如下

如何汉化Drupal的模块和主题…_字符串



  关于超链接,超链接格式为<a href="链接地址">链接名</a>,链接名的位置可以翻译,其它部分不动。示例如下:


如何汉化Drupal的模块和主题…_字符串


  另外在"……"之间的内容根据情况选择性翻译。为转义字符,"就是用来输出一个 " 双引号的。如果之间为纯单词,就可以翻译,其它的不翻译。


如何汉化Drupal的模块和主题…_字符串


  下图中方框内的"node/1"和"cart/view"为路径名,无需翻译。


如何汉化Drupal的模块和主题…_字符串




  其实对于一些翻译量很小的模块也可以使用另外一种方法,就是用Drupal自带的界面翻译。如图,现在Guestbooks为英文


如何汉化Drupal的模块和主题…_字符串


  进入管理-站点构建-界面翻译(需要先启用Drupal核心Local模块才能看到此项),输入关键词Guestbooks查找,结果如下:


如何汉化Drupal的模块和主题…_字符串


如何汉化Drupal的模块和主题…_字符串


  点击编辑进入翻译

如何汉化Drupal的模块和主题…_字符串




  填入需要翻译成的中文意思,点击保存翻译,可以看到翻译已经完成。


如何汉化Drupal的模块和主题…_字符串



  最后补充一下po文件的导入。有两种方法:第一是手动导入,同样是在翻译界面里,点击"导入",选择要导入的po文件,点导入,稍等片刻就可以了;第二种方法是将该po文件放在它对应的模块目录的translations目录下,在你添加中文语言并设置为默认时会自动导入,这种方法适合多个po文件的批量导入。 

  以上就是我翻译模块的经验,因为能力有限,所以其中可能会有很多错误,还请大家多指正,共同进步。