从 0.92 版本开始,UseModWiki 就引入了一个翻译对照表,实现界面的汉化。wiki.pl 中用函数 T 实现该功能:
sub T { my ($text) = @_; if (1) { # Later make translation optional? if (defined($Translate{$text}) && ($Translate{$text} ne '')) { return $Translate{$text}; } } return $text; }
问题的关键是构建一个哈希表:%Translate。UseModWiki 软件包自带的工具 misc/umtrans.pl
即是完成此功能的工具。
bash% umtrans.pl wiki.pl > trans.pl
该命令的作用是提取 wiki.pl 脚本中函数 T 的所有调用,并提取相应的字符串生成翻译对照表文件 trans.pl
。打开文件 trans.pl
,我们可以看到如下的内容:
%Translate = split('\n',<<END_OF_TRANSLATION); Could not create %s Showing revision %s Revision %s not available showing current revision instead Updates since %s Updates in the last %s day Updates in the last %s days ... ... ... ... END_OF_TRANSLATION
翻译过程无非是将文字对照的写在相应英文的下一行。
在 UseModWiki 的网站上已经有了已经翻译好的对照表,去上面抓一个即可。如果对翻译的不满意,还可以自己去修改,其本身就是用 Wiki 维护的。
UseModWiki 的界面翻译主页:
http://www.usemod.com/cgi-bin/wiki.pl?UseModWiki/Translations
UseModWiki 的简体中文翻译页面:
http://www.usemod.com/cgi-bin/wiki.pl?ChineseSimplifiedTranslation
将制作(下载)好的翻译词表拷贝至 UseModWiki 的数据目录,修改 config 文件,加上如下一行代码:
do "/opt/UseModWiki/trans_cn.pl";
如果 UseModWiki 安装在 Windows 上,可能需要用 Windows 格式的路径,如:do "E:/REPOS/UseModWiki/trans_cn.pl"; |
即加载翻译词表文件,初始化哈希表 %Translate。
这时再打开浏览器,看看我们构建好的 Wiki 网站。界面汉化是成功了,但是中间的内容怎么出现了乱码?(UseModWiki 0.92 版本)
Copyright © 2006 WorldHello 开放文档之源 计划 |