国际化
PmWiki 是支持国际化的网页的,这表示在「网页名称」中可以有重音符号。 甚至在PmWiki的各种提示文字中,您都可以客製化成您自已的语言。
安装
安装中文包只需要三步:
- 将“UTF-8/wikilib.d/”里的内容上传到对应的“wikilib.d/”目录中。如果你喜欢,上传到“wiki.d/”目录里也可以。
- 将“scripts/”中的“xlpage-utf-8.php”上传到对应的“scripts/”目录中。
- 编辑“/local/config.php”配置文件,在其中增加这样一行:
XLPage('zh-cn.utf8','PmWikiZhCn.XLPage');
恭喜您,已经完成中文包安装。刷新Wiki看看吧。下面是官方文档,由繁体转换而来,建议你继续阅读。
大部分的语言翻译是由 XLPage() function 完成的。
在PmWiki的系统中,大部分的翻译词句是储在在一个wiki页面中,(通常名称为 XLPage,但是您也可以给予它任何的名称)
读取翻译文字的页面
目前已有许多它国语言的翻译,它们是由 pmichaud.com 网站在维护的。您可以在http://www.pmwiki.org/pub/pmwiki/i18n/ 取得各国语言翻译的压缩档。安装的方法很简单,只要下载您所需要的翻译压缩档,并解压缩至含有您pmwiki.php 安装的资料夹。每一个压缩档中含有数个页面档桉,将要被放置在您的wikilib.d/ 资料夹;另外,还有一些特定的语法,用来使翻译的语言可以读取非 iso-8859-1 (PmWiki预设的)的字元。您也可以使用UTF-8? 的字元组。
一旦翻译的语言安装完成,您必须修改您的config.php 档桉,来启用安装好的语言。例如,想要启用安装好的「中文简体」,您必须输入:
XLPage('zh-cn.utf8','PmWikiZhCn.XLPage');
这表示读取PmWikiZhCn.XLPage中的内容,作为中文简体 ('ZhCn')的翻译。若您希望系统读取多个页面中的内容作为翻译,也是绝对可行的。所以,您可以建立您自已的翻译内容,而不需要改动语言压缩档中所提供的内容。只需要建立一个新页面,(见下面范例)并使它在读取顺序的最上方即可。请确定您所翻译的文字页面在较高的位置,如下:
XLPage('fr','PmWikiFr.XLPageLocal'); # 我自已翻译的文字 XLPage('fr','PmWikiFr.XLPage'); # 国际化语言压缩档中的内容
若您想为您的网站提供多国语言的支援,并使用Wiki Group?来作为不同的语言的网站部分,您也可以把不同语言的启用程式码放置于各别的翻译内容资料夹(请参见 Group Customizations?)例如:如果您的网站有法语及英语的版本,而法语页面放置于Fr页面组中;那麽您可以建立一个名为Fr.php 的档桉,并将它放置于local/ 资料夹中,档桉的内容包含:
<?php if (!defined('PmWiki')) exit(); ##change to French language XLPage('fr','PmWikiFr.XLPage');
您也可以建立一个名为PmwikiFr.php的档桉,输入如上的内容,如此就可以翻译 PmwikiFr 页面组中的页面。您不需要建立En.php 档桉,因为英语已是预设的语言。
提供多国语言支援的另一个解决方桉是在config.php加入以下的内容,它将会找寻在页面组中有无 XLPage,若是有的话,即会读取页面作为翻译文字。
$xlpage = FmtPageName('$Group.XLPage', $pagename); if (PageExists($xlpage)) XLPage($xlpage, $xlpage);
使用这个方法时,您必须複製相对应的 XLPage 至需要不同语言支援的页面组中。
请参见Cookbook:MultiLanguage Display content in different languages on a page by user's choice
建立新的翻译
若是没有您所需要的语言之翻译,自已建立一个也是很简单的!一个 XLPage 翻译的格式非常简单,只有下列的一行的格式:
'phrase' => 'translated phrase',
其中,"phrase" 是可以被翻译的词语(denoted by $[phrase]
) in PmWiki's $...Fmt variables, 而 "translated phrase" 则是您所想要的特定语言词语。例如,在PmWikiFr.XLPage
)的其中一行:
'Search' => 'Rechercher',
上面这一行,将会把"$[Search]
" 翻译成法语的 "Rechercher"。
翻译的起点,从 Localization:XLPageTemplate 开始最好,其中含有最重要的PmWiki词语。翻译它们便可完成大部份的翻译。
若是您完成了一份新的 PmWiki 翻译,请考虑将它们增加至main PmWiki site。如此,这份翻译将会被增加至各国语言翻译的压缩档,使得其他使用者也可因此受惠!
在连结中使用"特殊符号"
想要在WikiLinks使用"特殊殊号",例如德语中的「变音」(umlauts)。您必须设定您的网路主机,以确保PmWiki能够使用正确的符号表。
若是您的权限不足以更改您网路主机的设定,您可以设定PmWiki,启用它的XLPage选项(参见 XLPageTemplate)来启用特定的地区语言。
例如在启用德语的变音中,您必须:
- 'Locale' => 'deu', <- 适用于Windows网路主机,参见MSDN List of locale identifiers
- 'Locale' => 'de_DE', <- 适用于Linux网路主机
请注意,设定地区的选项依照作业系统的不同,或者特殊的安装方法而有所差异。
Notes
若我的wiki系统已在config.php设定了别的地区语言,我要如何把一部分的页面组设定回英文的呢?
请使用$XLLangs = array('en');
于页面组中的 group customization? 档桉。
若我的wiki系统预设的地区语言为英文,而我只需要单一页面(或者单一页面组)的语言为西班牙文。我需要设定此页面(组)的设定档(configration file)为 XLPage('es','PmWikiEs.XLPage');
吗?
是的,这是最常见及有效的方法。然而,若您有数个分散的页面,或者有数个不同的地区语言,您可以在config.php档桉中,就设定读取所有的地区语言档桉,这样在维謢上会有较高的便利性。如下面所示:
XLPage('es','PmWikiEs.XLPage');
XLPage('fr','PmWikiFr.XLPage');
XLPage('ru','PmWikiRu.XLPage');
$XLLangs
= array('en');
接下来,在每个页面(组)的设定档桉(configuration file)中,您只需要使用 $XLLangs
= array('es')来设定为您所想要的地区语言(例如在此为西班牙文)。请注意:虽然这个方法虽然在维謢上较为便利,但是可能会拖慢读取的速度,因为系统必须所有语言的字典档桉,即使这个页面并没有用到那些语言。
语言设定中的第一个参数(parameter)的用途为何?要怎麽使用它呢?
XLPage的作用为使系统读取多组地区语言的翻译。而第一个参数的用途为使XLPage可以被辨识出来。
例如,若使用者想要提供两种地区语言:「法文」及「加拿大式法文」。使用者可以不用将它视为两个完全不同的语言来维謢,使用者只需要设定:
XLPage('fr', 'PmWikiFr.XLPage'); XLPage('fr-ca', 'PmWikiFrCa.XLPage');
PmWikiFr.XLPage 将含有所有的标准法语翻译, 而PmWikiFrCA.XLPage 则只需要含有"加拿大式"的法语翻译词句 --即和标准法语翻译不同的部分即可。
第一个参数的作用即为辨识这两个不同的翻译。
另外,在config.php档桉中,可以使用 $XLLangs
variable
来变更地区语言的顺序。所以,若是其中一个页面(组),使用者只想要用标准法语的翻译, 使用者可以设定:
$XLLangs
= array('fr', 'en');
PmWiki 将只会使用'fr' 和 'en' 这两组翻译(并以此顺序)。不论在XLPage()设定中,有多少种地区语言翻译被读取。
帮助PmWiki地方化的工具
藉由下面的指引,您可以帮助PmWiki地方化为您的语言: