Joomla/Joomla扩展(组件、模块、触发器)的汉化
标准组件的汉化[ ]
有以下特征的组件可以称之为标准组件:
- 用zip格式打包;
- 具有固定的标准目录名称,比如语言目录用language,图片目录用image,模板目录用template;
- 至少含有一个english.php语言文件;
- 至少前台的界面语言都在语言文件中能够找到;
使用默认安装方式;
不过,符合以上要求的并不多。尤其是很多组件作者经常在语言文件中漏掉需要翻译的字串,甚至有些作者干脆连language目录都没有,给汉化工作带来很大困难。
language/lang目录的修改[ ]
对于含有language或者lang目录的组件,我们将其中的语言文件翻译就可以了。一般来说,语言文件的文件名都是以该国语言的英文说法命名,比如英文语言文件叫english.php,韩文语言文件叫korean.php,德文语言文件叫dutch.php或者germany.php,西班牙语言文件叫spain.php。大多数扩展都没有提供中文语言文件,我们需要自己手动建立一个。
鉴于汉字有简体、繁体之分,大陆与港台汉字又有编码之不同,所以我们需要分别建立。将english.php这个文件复制一份,重命名为simplified_chinese.php,这就是简体中文语言文件的名称;同理,再复制一份重命名为traditional_chinese.php,就成了繁体中文的语言文件。
用EmEditor这个编辑器(当然,你可以用其他编辑器)打开simplified_chinese.php文件,不做任何修改,立即选择菜单上“文件-另存为”,然后在保存对话框上选择文件编码为utf-8,点击“保存”按钮。由于没有更改文件名称,EmEditor会提示是否要覆盖原文件,选择“是”即可。这样我们就完成了编码转换工作,因为大多数english.php文件都采用了iso-8859-1编码。
注意:上图中“编码”下方有一个选项“添加Unicode签名(BOM)”,这一项一定不能钩选。BOM即“编码字节序标识”(Encoding Bit Order Mark)。
再次用EmEditor打开simplified_chinese.php文件,可以看到文件头部有若干行注释,一般以双斜线//开始或者/*符号开始。注释部分声明了文件版权信息,有的还包含致谢信息等。汉化作者可以在此添加自己的名字和联系方式,如果英文语言文件已经有author(作者)一项,你将名字修改即可(下图中第9行)。不过注意,如果这个author意指组件作者,你就必须保留该行,然后在注释末尾添加translator(译者)信息作为你的版权标记。
还有一点要注意,有些语言文件头部注释部分的每一行前面有一个@字符(如下图所示),这是为了便于程序读取,因此你添加自己的联系信息时也要按照这个格式来编辑。
翻译字串[ ]
注释之后,就是翻译字串的部分。上图中第12行就是第一个翻译字串,不过这个字串一般不需要翻译,它表示的意思是当有人试图直接通过URL访问这个语言文件时,就会显示“您无权访问”的信息。在很多php文件中都有这一句,其作用就是禁止直接访问该文件,以避免遭到攻击。访客必须按照网站前台的链接结构来浏览网站,或者提交信息,而不能随意打开其他文件。
从上图中还可以看出,每一行代表一个需要翻译的字串,并且以DEFINE这个词开始。Define在英文中的意思就是“定义”。在Define之后的括号中,有前后两对双引号,中间以英文逗号分隔。第一对双引号中展示字串代码,第二对双引号中提供翻译后的结果。我们刚才建立的新语言文件中,其第二对双引号中应该还是英文的说法,我们只需要将其翻译为中文即可。
有的语言文件不一定使用双引号,而是使用单引号。例如上图的第12行就是这样。单引号、双引号对于翻译的效果没有任何影响,唯一需要注意的是,如果你翻译的结果中需要添加引号,请使用中文引号,以免英文引号引起混乱。有时候你可以看到英文语言文件中,对于字串中的引号使用了斜线前导符(/')来表示引号,我们只需要保留最外围的一对引号即可,中间的引号一律用中文引号代替。
通常情况下,都是用鼠标拖选第二对引号中的所有内容,然后翻译成汉语。不过,如果其中还有 \n 这个符号,千万不要删除,也不必汉化,保留即可——这是换行符(回车符),表示下一行开始。
注意事项[ ]
当整个文件翻译完毕,我们就完成了大半工作。将simplified_chinese.php文件添加到组件安装包里的language目录中并不能使组件将其安装到网站。因为组件安装时总是执行xml文件中的指令来上传文件。因此,我们还要打开xml安装文件,搜索langauge或者lang(取决于语言文件目录的名称),就能迅速找到安装语言文件的指令。
复制其中某一行,比如<filename>language/english.php</filename>,然后在紧邻下方回车创建一个新的空行,粘贴刚才复制的一行进去,并修改为<filename>language/simplified_chinese.php</filename>。然后保存该xml文件并替换安装包中的原文件。现在如果安装该组件,就能自动上传simplified_chinese.php文件到语言文件目录。
如果要顺便制作一个繁体中文版语言文件,我们不需要重新翻译一遍english.php文件。如果你的EmEditor安装了简繁转换插件,就可以将simplified_chinese.php文件复制一份,重命名为traditional_chinese.php文件,然后用EmEditor打开,点击菜单上“工具 -> 插件 -> 转换为繁体中文”,一眨眼所有的简体字串已经变成了繁体。
当然,文件头部的simplified_chinese.php标识不会自己变,需要手动修改。另外,一些语言习惯不会自己变。比如台湾喜欢将“文件”称为“档案”,将“打印”称为“列印”,将“用户”称为“使用者”。所以,制作繁体语言文件需要先将这些叫法不同的词汇用查找替换的方法修改过来,然后使用上面转换方法转为繁体。同样的,我们把traditional_chinese.php文件复制到安装包中的language目录中,还要在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文件前部,都有一个<description>元素,作为对该扩展功能的介绍以及发表一些版权声明或者联系信息。译者在此添加自己的信息就能在安装后的欢迎界面上显示出来。
需要注意的是,有些xml文件的<description>部分相当简单,如果直接插入其他文字,那么会发现最终显示时版面不够美观,也不能通过HTML语言调整。这是因为xml文件有自己的语法。
如果要在<description>部分使用HTML语言来调整说明信息的外观,我们必须保证<description>元素内部使用了<![CDATA[ 这个标记。如下图所示:
从上图中可以看出,添加了<![CDATA[ 标记之后,我们就可以在 description 部分随意使用任何HTML语言来控制欢迎界面的外观。当然,别忘记把这个xml文件的编码保存为utf-8。
参考来源[ ]
http://www.joomlagate.com/article/joomla10-tutorial/how-to-translate-joomla-extensions/page-2/