Joomla/汉化Web程序的注意事项

来自站长百科
跳转至: 导航、​ 搜索

Joomla | Joomla使用手册

本条目旨在给所有想要进入汉化工作的新手提一些建议。以下以汉化为例,如果要将中文版本翻译成其他国家语言(国际化),也可以参考下面思路。

说明一点:本文所说的 web 程序仅指 php 程序,因为 php 是免费的。而且 php 的运行平台Linux也是免费的。

绝不可以直接汉化英文语言文件[ ]

很多人可能还不太了解汉化方法,或者有时候有点懒,他们没有制作 simplified_chinese.php 或者 zh-CN.ini 或者 cn.xml 这样的汉化语言文件,而是直接将源程序包中的英文语言文件打开直接汉化。这种“偷梁换柱”的结果是非常不便于交流。

例如,当你放弃汉化,其他人想要接着继续汉化时,很难找到你在怎么汉化的。在比如,如果把你的汉化成果发送给官方来制作多国语言版,对方根本不能理解你为何发来了 english 语言文件?如果就这么封装到安装包里,势必导致原有的英文语言没有了。

保持原有的目录结构、文件路径[ ]

有一些web程序的语言文件不止一个,就拿 group-office 来说,除了根目录下的 language 目录里含有主要语言文件,而且 modules 目录里每一种模块都有自己的语言文件目录。因此,汉化者一开始就必须严格按照源程序的目录结构来存储自己的汉化结果,而不是把所有的 zh-cn.inc 语言文件都放在同一级别的目录中。

保持原有文件路径的好处是,当你完成汉化时,直接将最高级的目录拖入原程序安装包内就可以一次添加所有的汉化文件;而当官方将源程序升级后,你也很容易对照你结构创建新的语言文件或者找到原来的语言文件进行升级。

选择恰当的文件格式和文件名[ ]

目前语言文件的格式很多,在 Joomla! 里面大部分是 .php 文件,也有 .xml 格式和.ini格式。另外,在其他开源程序中还有 .mo / .inc / .txt 等格式。因此汉化者必须弄清楚源程序中的语言文件格式。最简便的方法就是将英文(因为大部分人都是从英文版本来汉化)语言文件复制一份,然后更改为中文语言名称。

选择什么样的中文语言文件名称也很有讲究。拿 Joomla! 1.0.x 来说,英文语言文件名是 english.php ,简体中文就必须用 simplified_chinese.php,繁体中文就必须用 traditional_chinese.php;所以,在汉化时注意分析其他语言文件的命名方式,如果英文仅用 en,中文就是 cn 和 tw;如果英文仅用 eng,那么中文可以分别用 chs 和 cht 。

文件夹注意事项[ ]

还有一种情况,就是每一种语言在 language 目录里面占用一个专门的文件夹,汉化者必须复制整个文件夹,修改文件夹名称但不能更改里面的文件名称。例如拿 OpenAds 这个开源程序来说,其 language 目录里有一个文件夹叫做 english_us,这个文件夹里面有8个文件,按照官方的说法,其汉化方法是:复制 english_us 这个文件夹,更改名称为 chinese,进入 chinese 文件夹后逐个翻译8个文件,但不能改动这些文件的名称。换句话说,chinese 文件夹里面的8个文件名称与 english_us 文件夹里面完全相同。

语言映射方法[ ]

那么,主程序如何知道哪个文件夹里面是中文?这里又引出另一种语言映射方法:在 chinese 这个文件夹里面,有一个文件叫做 index.lang.php,打开该文件,只有3行代码,分别填写语言名称、译者名称和译者电邮。

也就是说,主程序自动扫描 language 目录里面每一个文件夹下的 index.lang.php 文件,据此列出所有现存语言的名称,然后在前台供用户选择。这样一来,我们的文件夹名称叫 chinese 或者 zh_cn 或者 zhongwen 都可以了,只要在 index.lang.php 文件里面声明语言名称是“简体中文”,则前台的语言选择下拉框中就有了这种语言。

选择正确的字符编码和换行符格式[ ]

很多情况下汉化后中文出现乱码都是因为字符编码(character encoding)出错了。因为在 windows XP 平台,简体中文默认的字符编码是 gb2312,繁体中文默认的字符编码是 big5;因此你的编辑器可能在保存语言文件时采用了默认编码,而大多数 web 程序已经逐渐走向 utf-8 编码。因此上传后会发现前台的中文出现了乱码。

由于 php 程序运行的最佳平台就是 LAMP (Linux + Apache + MySQL + php),而 Linux 系统的文件换行符是Unix 格式;我们大多数人在 windows 平台编辑文件之后保存时会默认将换行符设置为 windows 系统格式。这样就容易造成当文件上传到 Linux 服务器上运行时出现问题。因此,在保存语言文件时请注意将换行符选择为 Unix 格式。

设置好语言文件的映射或者安装参数[ ]

例如在group-office,当你仅仅将中文语言文件复制到 language 目录中是不行的,你会发现在前台的语言选择下拉列表中根本没有中文的选项。这时就必须打开 /language/languages.inc 文件,参照其他国家语言的方式添加一段代码(声明语言文件映射关系),这就等于告诉 group-office 程序现在增加了一种新的语言文件,名叫“简体中文”。当然了,别忘记保存这个文件时选择 utf-8 字符编码。然后上传 languages.inc 文件并覆盖原文件,再刷新前台,就会发现下拉选单中有了“简体中文”的选项。

在汉化 Joomla! 组件时,将新的语言文件添加到安装包的 .zip 文件中也不能实现汉化,你会发现在安装该组件后根本没有出现中文界面。那是因为安装程序是按照 .zip 包中的 .xml 文件来上传文件的。.xml 文件相当于安装指令集。因此,你汉化之后,必须修改 .xml 文件,将新的语言文件添加到该文件中,具体代码格式参照其他已有语言的安装代码,一般来说搜索 english 就能找到相关代码。

汉化包里不要与语言无关的程序文件[ ]

在汉化时,尽量不要去碰与语言无关的程序文件。汉化结束后制作语言包时,也不要把其他的源程序文件包含进来。因为主程序的作者很可能不定时升级软件,如果你的语言包中含有其他程序文件,那么就会造成在上传语言包之后,主程序文件被影响了。

选择舒适的编辑器[ ]

俗话说“工欲善其事,必先利其器”。很多人可能还在用 windows 平台的“记事本”(Notepad)来做汉化,这样做很辛苦,因为 Notepad 功能很弱。很多高手都在使用 UltraEdit 或者 EmEditor,但是这两个都是收费软件。推荐使用开源的 Notepad++ 编辑器,免费而且功能强大。在 Notepad++ 的参数中可以预设字符编码为 utf-8,换行符为 Unix 格式,保存设置后以后每次使用都自动执行,无须再担心上述两个问题。另外,Notepad++ 也有一些插件可以实现程序代码的自动完成、高亮显示、正则表达式等等,这些都是程序员喜爱的功能。

当然,最新版的 Notepad++ 有一个缺点就是对中文支持仍然不够好,在选择或者删除中文时,仍然有“半个字”乱码现象。说明它对于双字节字符的支持还没有完善。

保持开放心态[ ]

开源精神就是共享精神。希望有志于汉化的同道能够保持一种开放的心态。在你准备汉化某个程序时,首先与程序作者联系,询问是否已经有人做了汉化,如果没有就请求汉化,如果已有就跟该汉化作者联系,看看他是否已经停止汉化,或者看看能否合作继续汉化。以免你辛苦翻译了很久,最后发现在世界的另一个角落有个家伙竟然在做同样的事情,重复劳动岂不是很冤枉!

同样的,当你开始某个汉化工程后,也尽量公布这个信息,以便其他想要汉化的人能够及时联系到你,集思广益,多方合作,整个工程也有质量保证。例如,希望想要汉化 Joomla! 扩展套件的朋友提前在本站论坛中声明一下准备做的工作,很可能你正想要汉化的某个扩展套件我已经在做了—— 因为习惯是多个工程同时开始,大部分选中的扩展套件都汉化到 30% 的程度了

参考来源[ ]

http://www.joomlagate.com/article/advanced-tutorial/how-to-localize-web-programs/

Joomla高级教程使用手册导航

Joomla安装

Joomla!的安装

Joomla高级教程

Joomla!全站备份、迁移工具Akeeba Backup使用详解 | 用BigDump工具导入超大MySQL数据库备份文件 | 用Joomla的weblinks组件自动生成隐藏式网赚推荐链接 | 用Apache Ant从SVN代码构建Kunena安装包 | 如何让Joomla多级弹出菜单的第一级不能点击 | 用S4JRemote Admin远程管理Joomla!1.5网站 | 如何恢复、重设Joomla!超级管理员密码|汉化Web程序的注意事项

其他Joomla教程

用XAMPP快速搭建Joomla本地测试服务器 | 用Gmail的SMTP发送Joomla激活及通知邮件 | 深入认识Joomla CMS:扩展、菜单及模板 | Joomla 1.0教程 | Joomla 1.5教程 | Joomla! SEO教程