語言定義¶
為了恰當地呈現不同的翻譯,需要提供有關語言名稱、文字方向、複數定義和語言程式碼的資訊。
內建語言定義¶
Weblate 中包含了大約 800 種語言的定義,而且該語言清單在每個發行版中都會進行擴充。每當升級 Weblate 時(更確切地說,是每當執行 migrate 時,請參閱 通用升級說明)語言資料庫都會更新,以包含 Weblate 提供的所有語言定義。
這個特性可以使用 UPDATE_LANGUAGES 來禁止。還可以使用 setuplang 來強制更新資料庫,從而相符 Weblate 內建資料。
解析語言代碼¶
解析翻譯時,Weblate 試圖從 檔案遮罩 將語言程式碼(通常為 ISO 639-1)對映到任何現有的語言物件。
您可以通過 語言別名 在專案層次來進一步調整這種映射。
如果無法找到精確的相符,將嘗試把其融入一種現有的語言。已嘗試以下措施:
大小寫不敏感的查詢。
將下劃線和破折號標準化。
查詢內建語言別名。
按語言名稱查詢。
忽略給定語言的預設國家代碼 — 選擇
cs而非cs_CZ。
如果這也失敗了,將使用預設值(從左到右的文字方向,一個複數)建立一個新的語言定義。自動建立的程式碼為 xx_XX 的語言將被命名為 xx_XX (generated)。您可能想稍後在管理介面中變更這個(見 變更語言定義),並將它報告給問題跟蹤器(見 為 Weblate 做貢獻),這樣的話,正確的定義就可以新增到即將釋出的 Weblate 版本中。
提示
在您看到有些不想要的內容作為語言的情況下,您會想要調整 語言篩選,當分析翻譯時忽略這樣的檔案。
變更語言定義¶
您可以在語言介面來變更語言定義( /languages/ URL )。
當編輯時,確認所有欄位都是正確的(特別是複數和本文方向),否則翻譯者將不能正常編輯這些翻譯。
提示
請考慮將您的變更貢獻回來,見 擴展內建語言定義。
模稜兩可的語言代碼和巨集語言¶
在很多情況下,最好不要為翻譯使用宏語言程式碼。可能會出問題的典型範例是庫爾德語,它可以用阿拉伯文或拉丁字母書寫,這取決於實際的變體。為了讓 Weblate 可以正確地執行,建議只使用單獨的語言程式碼,避免使用宏語言程式碼。
也參考
語言定義¶
每種語言都包括後面的欄位:
語言代碼¶
辨識語言的程式碼。Weblate 使用兩個字母程式碼,如 ISO 639-1 所定義的,但對於沒有兩個字母程式碼的語言,使用會使用 ISO 639-2 或 ISO 639-3 程式碼。它還支援 BCP 47 定義的擴充套件程式碼。
語言名稱¶
語言的可見名稱。還要根據使用者介面語言將 Weblate 中包括的語言名稱進行在地化。
文字方向¶
確定語言的書寫方向是由左至右還是由右至左。此屬性對於大多數語言都能正確地自動偵測到。
語言使用者數量¶
此語言的全球使用人數。
複數定義¶
Weblate 有內建的複數定義集。它們時基於檔案格式規範、CLDR及其他來源。
警告
變更內建的複數定義很可能不會生產您期望的效果,因為這些規則需相符底層實作。
變更複數或配方只會影響字串顯示,但不會影響解析字串並將字串儲存到檔案中。如果您認為 Weblate 的行為有誤,請在我們的問題追蹤器上新開一個工單。
複數數量¶
語言中使用的複數的數量。
複數公式¶
Gettxt 相容的複數公式,用於確定給定數量使用哪種複數形式。
此公式使用與 Gettext Plural-Forms 標頭中 plural= 部分相同的運算式語法。nplurals 值設定語言具有多少種複數形式,而公式會傳回計數 n 應使用的複數形式索引(從零開始)。
Weblate 會使用 Python 提供的 Gettext 剖析器驗證公式。可接受的語法是類似 C 的整數運算式,並以 n 作為唯一變數。可以使用十進位數字、括號、算術運算子(+、-、*、/、%)、比較及相等運算子、邏輯運算子(&&、||、!),以及三元運算子(condition ? value1 : value2)。結果必須介於 0 和 nplurals - 1 之間。
例如,英語使用:
nplurals=2; plural=n != 1;