Meta:国际化指引

元維基致力於成為一個多語言的維基,因此預期大部分頁面將能夠被翻譯。為了能通過翻譯擴充功能進行翻譯,一頁應當被標記為 <translate>...</translate>
(即「國際化」),接著被一名翻譯管理員「標記為翻譯」。本頁面旨在提出元維基上 「頁面國際化準則」 。
![]() | 一般提醒:當翻譯已經完成時,請忍住不要進行任何可能讓它們過時的編輯,即使這個 <translate> 標記並不符合這些準則,也是如此。 |
一般指引
一般來說,你應該遵循翻譯擴充功能關於標記頁面進行翻譯的指引:在可能的情況下,請避免手動分割那些靠近translate
標籤的翻譯單元,你應該讓空行來實現分割。
2020年新主要語法要求
- 如果您想將一個列表分割成幾個單元,請勿只在文本內加入換行,這還是會變成一個單元。同時,您也應該將項目符號或編號的井字號排除在
translate
標籤之外。 - 如果您要在模板呼叫的參數值內插入一個
translate
標籤,請確保該參數已命名(否則,請添加一個數值名稱,有如1=
這個)。
分拆示例
需要改善的語法 | 優良語法 |
---|---|
== <translate>段落的標題</translate> == <translate>这是一个段落。</translate> <translate>这是另一个段落。</translate> {{模板}} == <translate>另一個段落的標題<translate> == |
<translate> == 段落的標題 == 这是一个段落。 这是另一个段落。 </translate> {{模板}} <translate> == 另一個段落的標題 == </translate> |
<translate> * 這是一份長清單: ** 此清單中有超過160個字 ** 或是有超過8個項目 </translate> <translate> * 所以最好將它分割成幾個較小的單元。 * 但我們必須將項目符號排除在翻譯標籤之外,以保持清單的可讀性。 </translate> |
* <translate>這是一份長清單:</translate> ** <translate>此清單中有超過160個字</translate> ** <translate>或是有超過8個項目</translate> * <translate>所以最好將它分割成幾個較小的單元。</translate> * <translate>但我們必須將項目符號排除在翻譯標籤之外,以保持清單的可讀性。</translate> |
特定元素
链接
任何可以翻譯的頁面都應該使用前綴Special:MyLanguage/
來連結,即使它實際上並沒有國際化。不需要這個前綴的頁面主要都是討論頁和沒有文字內容的模板。為了讓翻譯更容易,請在<tvar name=1> … </tvar>
內包裝內部連結的對象(其中tvar
的名稱可以只是數字,這已足夠)。
對於維基百科條目的連結,您應該針對對象使用{{lwp}}模板,並將其包在tvar之內。例如,[[{{lwp|Rosa Parks}}</tvar>]]
在英文頁面產生的是en:Rosa Parks,在法文頁面產生的是fr:Rosa Parks。
對於其他跨維基和外部連結,如果存在有翻譯,您不應該把链接對象放在tvar
內。當然,如果對象的網站有語言偵測系統 (像MediaWiki的Special:MyLanguage/
),您可以使用這個系統,並將完整的链接放在tvar
內。
需要改善的語法 | 優良語法 |
---|---|
<translate> 這是一個具有[[內部連結]]和[https://openstreetmap.org 外部連結]的文字。 </translate> |
<translate> 這是一個具有[[<tvar name=1>Special:MyLanguage/internal link</tvar>|內部連結]]和[<tvar name="url">https://openstreetmap.org</tvar> 外部連結]的文字。 </translate> |
分類
您應該排除translate
標籤中的類別宣告。取而代之,在類別名稱:[[Category:對象類別{{#translation:}}]]
之後加入 {{#translation:}}
。這樣,只有英文主頁面會被歸類到對象類別中,翻譯頁面會被歸類到每種語言的類別中。
需要改善的語法 | 優良語法 |
---|---|
<translate>[[Category:Wikipedia]]</translate> |
[[Category:Wikipedia{{#translation:}}]] |
图片
縮圖和大圖像
如果圖片可以本地化 (例如它有文字且已有翻譯版存在),則應該完全包含在translate
標籤中。
不然的話,您應該只要將alt=
值包裝在<translate nowrap>
標籤中,而將標題包裝在<translate>
標籤中。
如果有使用 left
或 right
作為圖片的參數:無用的話,請將其移除 (在英文中,縮圖預設為靠右),否則請分別以 {{dirstart}}
或 {{dirend}}
取代。
需要改善的語法 | 優良語法 |
---|---|
<translate> [[File:landscape.jpg |thumb |left |alt=日落 |美麗風景的照片]] </translate> |
[[File:landscape.jpg |thumb |{{dirleft}} |alt=<translate nowrap>日落</translate> |<translate>美麗風景的照片</translate>]] |
[[File:英文維基百科的截圖.png|thumb|right|<translate>維基百科首頁</translate>]] |
<translate> [[File:英文維基百科的截圖.png|thumb|維基百科首頁]] </translate> |
圖示
內嵌圖示可以簡單地包裝在 <tvar name="img">
中。
需要改善的語法 | 優良語法 |
---|---|
<translate> [[File:pretty hello word.png|alt=大家好!]], [[File:smiley.png|alt=🙂]] 你好嗎? </translate> |
<translate> [[File:pretty hello word.png|alt=大家好!]], <tvar name="icon">[[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="HelpLink">Special:MyLanguage/Help:Links|請參閱說明頁面]] |
[[<tvar name="1">Special:MyLanguage/Help:Links</tvar>|請參閱說明頁面]] |
會議將於<tvar name=1>{{dateT||9|24}}</tvar>日在<tvar name=2>{{int string|Zoom}}</tvar>上舉行。 |
會議將於<tvar name="date">{{dateT||9|24}}</tvar>日在<tvar name="software">{{int string|Zoom}}</tvar>上舉行。 |
也要避免在 tvar
名稱中使用空格、下劃線或帶有二進位的字母。
需要改善的語法 | 優良語法 |
---|---|
<tvar name="max_count of café">84</tvar> cafés |
<tvar name="max-count">84</tvar> cafés |
模板
您可以準備某一個模板進行翻譯,就像準備任何頁面一樣,但您應該確保在標記頁面進行翻譯時,已勾選「为该页面启用翻译感知嵌入」核取方塊。
如果預期您的模板會被包含在不可翻譯的頁面中(例如使用者頁面),甚至應該會在這些頁面中被翻譯,您可以使用帶有開關的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}} }}