這份翻譯較原始頁面舊,可能已過時。 檢視變更
本頁之翻譯?:

DokuWiki 文件之本地化 (引擎)

DokuWiki 的使用者界面可設定使用的語言,只要設定好語言配置項即可。

使用者界面可使用的語言列表可參見DokuWiki Localization Hub

若要把 DokuWiki 翻譯為你的語言,請造訪 http://translate.dokuwiki.org/,選擇你的語言,透過網路界面修改翻譯,送出後就會建立一個新的語言包。

翻譯後請把語言包寄給 andi [at] splitbrain [dot] org,它就會被加入新釋出的版本。

翻譯者應加入 I18N Mailing List 以獲得新的訊息,如新增的字串或需要翻譯的東西。

插件之本地化

大多數的插件只提供英語及一種其他語言,歡迎你貢獻未加入的語言本地化,只翻譯幾個句子也無所謂,幾個字也能改善這個插件。

以下說明如何建立翻譯與儲存需要的檔案。

  • 複製 “lib/plugins/<插件名稱>/lang/en/” 至 “lib/plugins/<插件名稱>/lang/<ISO語言碼>/” 並把內容翻譯成你想要的語言。
  • 要提供你的翻譯檔案,你可以這麼做(根據適切性排序)
    1. 使用 Github Pull Request 將它推送(Push)到程式碼倉庫(未必每個插件都允許)
    2. 將你的翻譯內容寫在本站適當的插件頁面裡(建立一個名為 “Localization” 的段落,如果沒有的話)
    3. 寫信給插件的作者(看他有沒有回應。如果沒有,請嘗試其他提交翻譯內容的方法)
    4. 寫信至 i18n Mailinglist

對於其他問題或尋求一般性協助,你可以寫信到 I18N-Mailinglist 或在 IRC-Channel 提問。

修改已安裝 DokuWiki 的翻譯內容

改變翻譯內容是個 開發中 的功能,將會在下個版本加入(可能在 2011 年 4 月)。

DokuWiki 之中有許多翻譯文字,例如註冊、密碼遺忘的 email 或編輯表格上方的文字。你可以修改它們,複製 inc/lang/<ISO語言碼>/<名稱>.txtconf/lang/<ISO語言碼>/<名稱>.txt,然後修改複製的檔案。如此一來你的修改不會被新版覆蓋。你也可以對插件做同樣的事(如 ACL 編輯器權限管理的協助文字),複製 lib/plugins/<插件>/lang/<ISO語言碼>/<名稱>.txt to conf/plugin_lang/<plugin>/<ISO語言碼>/<name>.txt,然後修改它們即可。

DokuWiki 之翻譯 (說明文件)

我們很鼓勵 DokuWiki 說明文件的翻譯。翻譯的頁面應使用與原文相對應的頁面名稱,並根據 ISO 語言碼儲存在不同的命名空間。要讓這項工作更簡單,可使用翻譯插件,它會自動在頁面右上角插入不同語言版本的連結,無論頁面是否已建立。已建立的翻譯頁會以藍色顯示,未建立則顯示為灰色。

顯示在語言選單中的語言需要由管理員手動設定。如果您希望加入一個未被顯示的語系(語言)的翻譯,請手動在適當的命名空間加入該語言的翻譯文章,然後寄一封信到 I18N mailing list 請求網站管理員加入該語言。

翻譯指南

關於本站的翻譯原則:

  • 歡迎自由建立未被翻譯的頁面
  • 只有在頂層命名空間的文章需要被翻譯
  • 翻譯頁的頁面名稱必須與原文頁相同
  • 翻譯頁必須根據 ISO 語言碼儲存在適當的子命名空間內
  • 請不要寫入諸如「頁面還不存在」之類的內容
  • 開始翻譯前建議先參閱 manual

停用特定頁面的翻譯行為

加入 ~~NOTRANS~~ 巨集,該頁面就不會偵測翻譯版本。

中文化 DokuWiki 相關

差異引擎修正

DokuWiki 的差異比對引擎預設是逐詞比對而非逐字比對,例如將「我愛你」改為「我恨你」時,會整段標記成「-我愛你」、「+我恨你」,但我們想要的通常是「-我你」、「+我你」。

可藉由修改 inc/DifferenceEngine.php 解決此問題。

尋找:

DifferenceEngine.php
    function _split($lines) {
            if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',

取代為:

DifferenceEngine.php
    function _split($lines) {
            if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xsu',

搜尋索引修正

原來的 IDX_ASIAN2 常數未包含 CJK ext-B, C, D 等 4 字元 UTF-8 字元,因此這些字在建入索引時不會先分詞。(也就是會把 XXXX 當做一個詞建入索引,這樣一來搜尋 X 就找不到東西,一定要搜尋 XXXX 才行)

要解決這個問題,可在 inc/preload.php 裡加入以下內容,修改內建的常數:

preload.php
<?php
define('IDX_ASIAN2','['.
                   '\x{2E80}-\x{3040}'.  // CJK -> Hangul
                   '\x{309D}-\x{30A0}'.
                   '\x{30FD}-\x{31EF}\x{3200}-\x{D7AF}'.
                   '\x{F900}-\x{FAFF}'.  // CJK Compatibility Ideographs
                   '\x{FE30}-\x{FE4F}'.  // CJK Compatibility Forms
                   "\xF0\xA0\x80\x80-\xF0\xAA\x9B\x9F". // CJK Extension B
                   "\xF0\xAA\x9C\x80-\xF0\xAB\x9C\xBF". // CJK Extension C
                   "\xF0\xAB\x9D\x80-\xF0\xAB\xA0\x9F". // CJK Extension D
                   "\xF0\xAF\xA0\x80-\xF0\xAF\xAB\xBF". // CJK Compatibility Supplement
                   ']');

原始定義可參見 inc/indexer.php

參見

zh-tw/localization.txt · 上一次變更: 2011/01/08 18:27 由 danny0838
 
若未特別註明,此維基上的內容都是採用以下授權方式: CC Attribution-Share Alike 3.0 Unported
Imprint Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
WikiForumIRCBugsGitXRefTranslate