joomla组建汉化

Joomla!扩展(组件、模块、触发器)的汉化

模块、触发器的汉化(XML文件的汉化)

Joomla!的模块、触发器都没有language目录,我们必须直接汉化xml文件。用EmEditor随便打开一个模块的xml文件,首先看到第一行:<?xml version="1.0" encoding="iso-8859-1"?>,后半部分的encoding属性描述了该文件所用的语言编码。大多数模块或者触发器的xml文件头部都会声明编码为iso-8859-1,我们需要首先将这个编码修改为utf-8,即将上面一行变成<?xml version="1.0" encoding="utf-8"?> ,然后立即保存并关闭这个文件。如果你仔细观察,会看到在文件中该文件“颤抖”了一下,这说明正在自动更改文件编码并刷新。

如果xml文件第一行没有声明语言编码怎么办?经常看到有些xml文件第一行是<?xml version="1.0" ?> ,这时候如果你看看EmEditor编辑器窗口的状态栏最右边,就能看到文件编码提示。如果你看到iso-8859-1或者“西文”,那么就需要更改编码。可以手动添加 encoding="utf-8"  到第一行,也可以直接采用前面说过的“另存为”方法改变编码。

注意:xml文件如果直接双击,会调用浏览器打开。所以,我建议你在xml 文件上点鼠标右键,选择EmEditor打开——如果你安装了EmEditor,右键菜单中第二行自然有这个选项。

再次打开该xml文件,可以看到第二行 <mosinstall type="module">,这表示该xml文件属于一个模块扩展。组件和触发器的xml文件,这里相应的就是component和mambot。

继续向下翻,在xml文件后半部分可以找到<params> 这个元素。这是parameter(参数)的缩写,表示在<params>和</params>一对标记之间的所有内容都属于控制参数。这部分也就是我们在模块或者触发器的后台所看到的参数设置内容。

一行代码代表一个参数,比如  <param name="style" type="radio" default="2" label="Mp3 播放器颜色" description="Select Color Scheme"> 这行,<param 表示“参数”元素开始,name属性表示其涉及的内容(style 意指外观风格),type属性表示参数外观类型(radio 就是多选一),default属性表示默认值(2 意指赋值为2的选项),label属性表示该参数在后台的显示语句,description属性表示对该参数语句的说明,一般都以鼠标指向时的浮动提示显示出来。

我们要翻译的只有两部分:label 和 description 。如果label的意思很明确,也可以不翻译description。同样的,我们必须保留引号和换行符。对于某些模块,我们也可以更改某个参数的默认值。这时我们把default属性的值修改为自己想要的选项即可。

完成翻译之后,将此xml文件覆盖安装包中的原文件即可。

如果你已经安装了英文版的扩展,那么可以手动上传翻译好的语言文件或者xml文件,覆盖对应的原文件即可。一般来说,language目录位于 /components 目录的各个组件目录中,有时候也可能出现在 /administrator/components 目录里对应的组件目录;模块的xml文件一般位于 /modules 目录中;触发器的xml文件一般位于 /mambots 目录中。

译者信息的添加

如果你使用过我汉化的扩展,会发现在安装完成后的欢迎界面底部,有“简体中文汉化:白建鹏”这样的信息。这个信息也是通过修改xml文件添加的。

不管是组件还是模块、触发器,在其xml文件前部,都有一个<description>元素,作为对该扩展功能的介绍以及发表一些版权声明或者联系信息。译者在此添加自己的信息就能在安装后的欢迎界面上显示出来。

需要注意的是,有些xml文件的<description>部分相当简单,如果直接插入其他文字,那么会发现最终显示时版面不够美观,也不能通过HTML语言调整。这是因为xml文件有自己的语法。

如果要在<description>部分使用HTML语言来调整说明信息的外观,我们必须保证<description>元素内部使用了<![CDATA[  这个标记。如下图所示:

<![CDATA[标记的使用
<![CDATA[标记的使用

从上图中可以看出,添加了<![CDATA[ 标记之后,我们就可以在 description 部分随意使用任何HTML语言来控制欢迎界面的外观。当然,别忘记把这个xml文件的编码保存为utf-8。

其他汉化方法

有些时候,Joomla!扩展的作者不够耐心,所以在语言文件中没有包含所有的界面语言字串。很多作者仅提供了前台的语言字串,还有些压根没有language目录,在xml 文件中也可能没有提供足够的翻译选项。这个时候,就必须采用比较原始的方法,直接在php文件中搜索。

具体做法就是先安装英文原版扩展,同时在本地硬盘上解压该扩展,把所有包含文件都解压出来。然后在浏览器中将该扩展前台或者后台显示的某些界面字串复制下来,然后回到本地目录,搜索该字串,看看包含在哪个文件中。如果你使用EmEditor编辑器,就会发现它提供的“在多个文件中查找”功能非常方便,可以钩选“包含子目录”,还可以限定只搜索php文件类型,我敢说绝对比你用windows自带的“在文件中查找包含字串”要方便得多。找到该字串之后,判断一下是否真的就是你所看到的,一般来说,界面字串在源文件中会用引号包围。还有一点,在源文件中, echo 这个代码后面往往是界面字串。这需要译者仔细寻找。在翻译之后,最好立即上传覆盖网站上的对应文件,然后刷新浏览器查看效果。如果你看到原来的英文字串已经消失,取而代之的是一串乱码,说明你已经成功了一半——你忘记更改该php文件的语言编码了。呵呵,所以在汉化的时候,打开一个需要翻译的文件,首先更改其编码是一个好习惯。

在Joomla! 1.5 版本中,语言文件已经不再使用php格式,而是使用ini格式。届时EmEditor可能就不如ini Translator 这个软件方便了。或许Joomla! 1.5 的扩展还会继续使用php格式的语言文件,那么本文还能提供一些参考。

至于Joomla核心的汉化,涉及的不仅仅是字面的翻译,还有很多“本地化”工作甚至源代码的修改,我自己根本不懂,也就不能信口雌黄了。建议对Joomla汉化有兴趣的朋友先从扩展开始练习,熟悉之后再考虑核心的汉化。因为现在Joomla! 1.5 的简体中文汉化工作还需要更多高手的参与,以后 Joomla 2.0 等后续版本的汉化仍然需要各位的热心参与。

希望Joomla!之花在我们的浇灌之下更加绚烂多彩!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值