国际化

PmWiki 是支持国际化的网页的,这表示在「网页名称」中可以有重音符号。 甚至在PmWiki的各种提示文字中,您都可以客製化成您自已的语言。


安装

安装中文包只需要三步:

  1. 将“UTF-8/wikilib.d/”里的内容上传到对应的“wikilib.d/”目录中。如果你喜欢,上传到“wiki.d/”目录里也可以。
  2. 将“scripts/”中的“xlpage-utf-8.php”上传到对应的“scripts/”目录中。
  3. 编辑“/local/config.php”配置文件,在其中增加这样一行:XLPage('zh-cn.utf8','PmWikiZhCn.XLPage');

恭喜您,已经完成中文包安装。刷新Wiki看看吧。下面是官方文档,由繁体转换而来,建议你继续阅读。


大部分的语言翻译是由 XLPage() function 完成的。

在PmWiki的系统中,大部分的翻译词句是储在在一个wiki页面中,(通常名称为 XLPage,但是您也可以给予它任何的名称)

PmWikiCs Česky (Czech) ~ XLPage
PmWikiAr Arabic ~ XLPage
PmWikiBg Bulgarian ~ XLPage
PmWikiZhTw Chinese (Traditional) ~ XLPage
PmWikiZhCn Chinese simplified ~ XLPage
PmWikiDa Dansk ~ XLPage
PmWikiDe Deutsch ~ XLPage
PmWikiEn English ~ XLPage
PmWikiEs Español ~ XLPage
PmWikiEo Esperanto ~ XLPage
PmWikiFa Farsi (Persian) ~ XLPage
PmWikiFr Français ~ XLPage
PmWikiEl Greek ~ XLPage
PmWikiId Indonesian ~ XLPage
PmWikiIt Italiano ~ XLPage
PmWikiJa Japanese ~ XLPage
PmWikiKr Korean ~ XLPage
PmWikiLv Latviešu (Latvian) ~ XLPage
PmWikiLt Lietuvių (Lithuanian) ~ XLPage
PmWikiMk Macedonian ~ XLPage
PmWikiHu Magyar (Hungarian) ~ XLPage
PmWikiNl Nederlands ~ XLPage
PmWikiNo Norsk ~ XLPage
PmWikiPl Polski ~ XLPage
PmWikiPt Portuguese ~ XLPage
PmWikiPtBr Portuguese (Br) ~ XLPage
PmWikiRo Românã ~ XLPage
PmWikiRu Russian ~ XLPage
PmWikiSq Shqip ~ XLPage
PmWikiSk Slovenčina ~ XLPage
PmWikiSi Slovenščina ~ XLPage
PmWikiFi Suomi ~ XLPage
PmWikiSv Svenska ~ XLPage
PmWikiTr Türkçe ~ XLPage
PmWikiTa Tamil ~ XLPage
PmWikiUk Ukrainian ~ XLPage
PmWikiVi Việt ngữ ~ 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。如此,这份翻译将会被增加至各国语言翻译的压缩档,使得其他使用者也可因此受惠!

"i18n" 是英文中"internationalization"的缩写,因为从开头的 "i" 到末尾的 "n" 一共有18个字母,而且全部打出来实在太麻烦了。

在连结中使用"特殊符号"

想要在WikiLinks使用"特殊殊号",例如德语中的「变音」(umlauts)。您必须设定您的网路主机,以确保PmWiki能够使用正确的符号表。

若是您的权限不足以更改您网路主机的设定,您可以设定PmWiki,启用它的XLPage选项(参见 XLPageTemplate)来启用特定的地区语言。

例如在启用德语的变音中,您必须:

请注意,设定地区的选项依照作业系统的不同,或者特殊的安装方法而有所差异。

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地方化为您的语言: