You are here

drupal界面翻译的技术背景

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2008-10-08 00:51

       对于drupal开发者来说,如果想为模块添加多语言支持的话,可以参看手册的多语言支持部分.

       Drupal核心和第3方模块/主题的界面翻译, 是完全独立于这些项目本身的开发流程的. Drupal核心和第3方模块/主题的开发者为代码中要被翻译的文本专门添加了特殊的标记.需要使用一个提取程序来收集这些字符串,并生成一个翻译模板文件.由于在翻译领域已经有了相关的工业标准,我们选择了一个已有的标准,有很多成熟的工具支持这一标准.

        GNU Gettext工具集提供了大多数翻译所需的解决方案.由于Drupal使用自定义的标记来标明所要翻译的文本,所以我们提供了自己的工具来生成Gettext翻译模板,生成Gettext翻译模板模板以后,就可以使用任何支持Gettext的工具来编辑模块和译文了(通常一个简单的文本编辑器就可以了).Drupal可以导入翻译后的Gettext模板。Drupal.org,根据你翻译的文件的不同,语言的不同,将翻译文件放在了独立的地方。

 

翻译流程

下面是翻译的流程(点击查看大图):

Drupal translation processes

Drupal核心和第3方模块/主题的翻译流程基本相似,但是也有重要的区别。

Drupal核心的翻译

      为了保持工作的一致性,我们为每个发布的drupal版本提供一个Drupal核心模板,所以译者可以下载这些预生成的翻译模板,并使用它们的工具来完成翻译。此时你就不需要自己生成模板了。记住,我们只在一个drupal版本将要发布的最后阶段,才生成模板。否则的话,生成的模板就不稳定,随着Drupal的变更,你需要不断的修改。你可以选择使用任何支持po文件的编辑器。通常,你可以找到Drupal以前版本的翻译文件,使用Gettext工具集你可以重用这些已有成果。最后,你将得到一组翻译好的文件。现在,你需要将模板的后缀名.pot改为.po了。一旦你把翻译提交到我们的版本控制系统中后,那么这个翻译就会被打包发布到了drupal.org上,大家就可以下载它了。

 

       如果你的语言在我们的系统中还不存在,你可以在contrib-cvs/translations下面使用你语言的代码添加一个子目录,从而创建一个新的翻译项目,接着,在drupal.org上添加一个项目。如果你没有CVS帐号的话,你可以在该翻译模板项目页面创建一个问题,并将你的翻译文件上传到那里。有些具有权限的开发者可能会帮你把它们提交到CVS中。这样就会为你的翻译创建一个项目,而你也将成为该项目的维护者。最终,你的翻译将出现在下载页面

 

Drupal第3方模块/主题的翻译

      就如图中所展示的一样,drupal第3方模块/主题(下面成为模块)的翻译稍微有点复杂。有些开发者为他们的模块生成了翻译模板,并将其放到了模块的po/目录下面。这确实不错,不过这些模板很快就过时了。所以建议你,当你开始翻译时,先使用翻译模板提取器生成最新的模板。现在,模板的翻译将放在该模块的po子目录下面。如果你有CVS帐号的话,你可以把文件提交到这里,如果没有的话,你可以在该模块下提交一个问题,然后让模块维护者提交你的翻译。

更多资源:

 相关链接:http://drupal.org/translators ,Think in Drupal

 

Drupal版本: