PmWiki 是支援國際化的網頁的,這表示在「網頁名稱」中可以有重音符號。 甚至在PmWiki的各種提示文字中,您都可以客製化成您自已的語言。 大部分的客製化都是藉由 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('fr','PmWikiFr.XLPage');
這表示讀取PmWikiFr.XLPage中的內容,作為法語 ('fr')的翻譯。若您希望系統讀取多個頁面中的內容作為翻譯,也是絕對可行的。所以,您可以建立您自已的翻譯內容,而不需要改動語言壓縮檔中所提供的內容。只需要建立一個新頁面,(見下面範例)並使它在讀取順序的最上方即可。請確定您所翻譯的文字頁面在較高的位置,如下:
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 至需要不同語言支援的頁面組中。
建立新的翻譯
若是沒有您所需要的語言之翻譯,自已建立一個也是很簡單的!一個 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地方化為您的語言: