Jump to content

Meta:国际化

本頁使用了標題或全文手工轉換
From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Meta:Internationalization guidelines and the translation is 87% complete.
Outdated translations are marked like this.

元維基的目標是成為多語言維基,因此大多數頁面都應可供翻譯,並完成翻譯工作。若要透過翻譯擴充功能進行翻譯,頁面須先加上‎<translate>...‎</translate>標籤(即進行國際化處理),再由翻譯管理員標記為待翻譯。本頁旨在說明元維基上頁面國際化的相關指引。

如需將頁面標記為待翻譯的逐步教學,請參閱教學頁面

一般指引

一般來說,你應該遵循翻譯擴充功能關於標記頁面進行翻譯的指引:在可能的情況下,請避免手動分割那些靠近‎</translate>標籤的翻譯單元,你應該讓空行來實現分割。

原則上,請遵循翻譯擴充功能關於頁面標記為待翻譯的指引。請盡量避免以$tag標籤手動分割翻譯單元,改以空行作為翻譯單元的分隔。

編輯已翻譯的頁面時,請勿使用章節編輯功能,否則會在頁面中產生多餘的空白字元[1]。請務必選擇編輯整頁的選項。

分段範例

正確寫法 錯誤寫法
請於標題與段落前後另起新行,加上‎<translate>標籤。
<translate>
== 段落標題 ==

這是其中一段。

這是另外一段。
</translate>

{{模板}}

<translate>
== 下一個段落的標題 ==
</translate>
標題語法(例如:==)必須納入翻譯單元中。
== <translate>段落標題</translate> ==
<translate>這是其中一段。</translate>

<translate>這是另外一段。</translate>

{{模板}}

== <translate>下一個段落的標題<translate> ==
請將清單各項目分割為獨立的翻譯單元,且每個項目內不可換行。清單標記(如*、#等符號)請勿納入翻譯單元中。
* <translate>這是一份長清單:</translate>
** <translate>此清單中有超過160個字</translate>
** <translate>或是有超過8個項目</translate>
* <translate>所以最好將它分割成幾個較小的單元。</translate>
* <translate>但我們必須將項目符號排除在翻譯標籤之外,以保持清單的可讀性。</translate>
清單標記(例如:*#)必須排除於翻譯單元之外。
<translate>
* 這是一份長清單:
** 此清單中有超過160個字
** 或是有超過8個項目
</translate>
<translate>
* 所以最好將它分割成幾個較小的單元。
* 但我們必須將項目符號排除在翻譯標籤之外,以保持清單的可讀性。
</translate>

特定元素

連結

連結需使用特殊語法,才能正確指向目標頁面的對應語言版本。任何可能被翻譯的頁面,皆應使用本地化連結語法,即使該頁面尚未標記為待翻譯亦然。例外情形包括討論頁,以及不含文字內容的模板——這類頁面無需使用本地化連結語法。

如需連結至多語言維基上的頁面,請於連結前加上Special:MyLanguage/前綴。為簡化翻譯工作,翻譯單元中應僅納入連結文字,而非連結目標。若連結屬於較大翻譯單元的一部分(例如出現在段落中),可使用翻譯變數<tvar name=1> … </tvar>)包覆連結目標,將其排除於翻譯單元之外。

若是連往同一維基上頁面的獨立連結(例如出現在清單或表格中),可使用本地化連結模板以簡化語法。此模板適用於元維基、mediawiki.org、外展維基,以及其他已安裝此模板的維基。

若要連結至維基百科條目,請使用{{lwp}}模板作為連結目標,並以<tvar>標籤包覆。例如,[[{{lwp|Rosa Parks}}</tvar>]]於英語頁面將輸出en:Rosa Parks,於法語頁面則會輸出fr:Rosa Parks

對於其他跨維基連結與外部連結,若該頁面已有翻譯版本,請勿將連結目標放入tvar中。當然,若目標網站具備語言偵測機制(如MediaWiki的Special:MyLanguage/),則可運用此機制,將完整連結放入tvar中。

正確寫法 錯誤寫法
如需連結至多語言維基上的頁面,請於連結目標前加上Special:MyLanguage/前綴,並補上連結文字。請使用翻譯變數,確保翻譯單元中僅納入連結文字。
<translate>
了解[[<tvar name=1>Special:MyLanguage/Wikimedia projects</tvar>|維基媒體專案]],以及如何申請成立 [[<tvar name=2>Special:MyLanguage/New project process</tvar>|新專案]]。
</translate>
翻譯變數應僅包含連結目標,而不應包含連結文字。
<translate>
Learn about [[<tvar name=1>Special:MyLanguage/Wikimedia projects</tvar>|Wikimedia projects]] and how to request a [[<tvar name=2>Special:MyLanguage/New project process|new project</tvar>]].
</translate>
For a standalone link to a page on the same wiki, such as in a list or a table, use Template:ll , and translate only custom link text. You can use |nsp=0 to simplify the link text by omitting the namespace.
<translate>
See also:
</translate>

* {{ll|Help:Contents|2=<translate>Help pages</translate>}}
* {{ll|Meta:Discussion pages|nsp=0}}
A parameter name (2=) is required when adding ‎<translate> tags inside template syntax.
<translate>
See also:
</translate>

* {{ll|Help:Contents|<translate>Help pages</translate>}}
* {{ll|Meta:Discussion pages|nsp=0}}
For external links, exclude the link target from the translation unit using a translation variable.
<translate>
This is a text with an [<tvar name=url>https://openstreetmap.org</tvar> external link].
</translate>
A translation variable is required to exclude the external link target from the translation unit.
<translate>
這是一個具有[[內部連結]]和[https://openstreetmap.org 外部連結]的文字。
</translate>

分類

您應該排除‎<translate>標籤中的類別宣告。取而代之,在類別名稱:[[Category:對象類別{{#translation:}}]]之後加入 {{#translation:}}。這樣,只有英文主頁面會被歸類到對象類別中,翻譯頁面會被歸類到每種語言的類別中。

正確寫法 錯誤寫法
[[Category:Wikipedia{{#translation:}}]]
<translate>[[Category:Wikipedia]]</translate>

图片

縮圖和大圖像

如果圖片可以本地化 (例如它有文字且已有翻譯版存在),則應該完全包含在‎<translate>標籤中。

不然的話,您應該只要將alt=值包裝在<translate nowrap>標籤中,而將標題包裝在<translate>標籤中。

如果有使用 leftright 作為圖片的參數:無用的話,請將其移除 (在英文中,縮圖預設為靠右),否則請分別以 {{dirstart}}{{dirend}} 取代。

正確寫法 錯誤寫法
[[File:landscape.jpg |thumb |{{dirstart}} |alt=<translate nowrap>日落</translate> |<translate>美麗風景的照片</translate>]]
<translate>
[[File:landscape.jpg |thumb |left |alt=日落 |美麗風景的照片]]
</translate>
<translate>
[[File:英文維基百科的截圖.png|thumb|alt=Homepage of English Wikipedia with featured article and news topics|維基百科首頁]]
</translate>
[[File:英文維基百科的截圖.png|thumb|right|alt=<translate nowrap>Homepage of English Wikipedia with featured article and news topics</translate>|<translate>維基百科首頁</translate>]]

圖示

內嵌圖示可以簡單地包裝在 <tvar name="icon"> 中。

正確寫法 錯誤寫法
<translate>
[[File:pretty hello word.png|alt=大家好!]], <tvar name="icon">[[File:smiley.png|alt=🙂]] 你好嗎?
</translate>
<translate>
[[File:pretty hello word.png|alt=大家好!]], [[File:smiley.png|alt=🙂]] 你好嗎?
</translate>

翻譯變數

翻譯變數 (<tvar name="name"></tvar> 語法) 應該要用來隱藏文字,以便防止翻譯人員去翻譯。

以下範例應該被包裝在 tvar 之內:

  • 可自動本地化的或不可本地化的連結對象
  • 用户名,
  • 可能會改變的數字 (它們應該被包裝在 {{formatnum:}} 之內,然後再被包裝到 tvar 之內),
  • 標籤屬性 (例如:<span class="css_class" style="background-color:blue"</tvar>>hello</span>),
  • 模板名稱和參數 (例如:{{<tvar name=1>center|5px</tvar>|hello}}),
  • 複雜 wikitext 或 HTML 的部份(但請確保翻譯者所得的wikitext是平衡的)。

以下範例應該不要被包裝在 tvar 之內:

  • 人名和地名(即使很少翻譯,也可能會字母轉寫),
  • 沒有屬性的XML標籤,如 <code>(翻譯介面會處理它們),
  • 可本地化的連結對象(即指向多語言網站的連結)。

翻譯變數名稱

為了幫助翻譯者,請儘量保持 tvar 名稱的簡短和可讀性。如果翻譯者不需要知道他們的內容,使用數字名稱是個好主意,因為數字對大多數翻譯者來說打字很快,而且在許多語言中都很常見 (這樣大多數初學者就不會不小心翻譯了)。

然而,如果 tvar 是在句子裡面,它應該有一個明確的名稱,讓翻譯者了解它包含什麼,以便會更容易寫在他們的翻譯的正確位置上(這個情形很常見的是電子郵件地址、URL、wikitext標籤名稱......)。

正確寫法 錯誤寫法
[[<tvar name="1">Special:MyLanguage/Help:Links|請參閱說明頁面]]
[[Special:MyLanguage/Help:Links|請參閱說明頁面]]
會議將於<tvar name="date">{{dateT||9|24}}</tvar>日在<tvar name="software">{{int string|Zoom}}</tvar>上舉行。
會議將於<tvar name=1>{{dateT||9|24}}</tvar>日在<tvar name=2>{{int string|Zoom}}</tvar>上舉行。

也要避免在 tvar 名稱中使用空格、下劃線或帶有二進位的字母。

正確寫法 錯誤寫法
<tvar name="max-count">84</tvar> cafés
<tvar name="max_count of café">84</tvar> cafés

模板

您可以準備某一個模板進行翻譯,就像準備任何頁面一樣,但您應該確保在標記頁面進行翻譯時,已勾選「为该页面启用翻译感知嵌入」核取方塊。

如果您要在模板呼叫的參數值內插入一個‎<translate>標籤,請確保該參數已命名(否則,請添加一個數值名稱,有如1=這個)。

如果預期您的模板會被包含在不可翻譯的頁面中(例如使用者頁面),甚至應該會在這些頁面中被翻譯,您可以使用帶有開關的pre-2021 hack,如在下圖所示的程式碼中用 uselang={{int:lang}} 取代 uselang={{PAGELANGUAGE}}

Pre-2021 hacks

在MediaWiki 1.36.0-wmf.32 (2021-02-23)之前,您必應確保英文頁面是包含模板的 /en 子頁面,而不是直接包含模板。

其中一個方法是用{{TNT|my translated template|param}}來取代每一次出現的{{my translated template|param}},但在應該已包含{{ {{TNTN|my translated template}} |param}}的模板或嵌入的頁面中除外。

另一種方法是編輯模板,使其呼叫自己 {{TNT}}。為此,您應該把完整的模板程式碼放在一個開關之內,這個開關會去對一個空的 ‎<translate> 標籤求值,預設情況下會呼叫 {{TNT}}

{{#switch:<translate></translate>
|=<完整的模板程式碼>
|#default={{#invoke:Template translation|renderTranslatedTemplate|template={{subst:FULLPAGENAME}}|uselang={{PAGELANGUAGE}}|noshift=1}}
}}

參見

References