在地化檔案格式¶
Weblate 支援各種各樣的翻譯格式。每種格式之間有略微的不同,提供不同的功能集。
提示
為應用程式選擇檔案格式時,最好採用所用工具組或平台中成熟穩定的格式。如此譯者也能使用熟悉的工具,更有可能參與專案。
自動偵測¶
Weblate 會在 新增翻譯專案和元件 期間嘗試偵測檔案格式。若同一序列化格式(JSON、YAML、properties)有不同變體,或檔案編碼不同,偵測結果可能有誤;建立元件前請確認 檔案格式 是否正確。
翻譯類型功能¶
各格式支援哪些功能,請參閱相應檔案格式的說明檔案頁面。
雙語言和單語言格式¶
Weblate 支援 單語 與 雙語 格式。雙語格式會在單一檔案中儲存來源與翻譯兩種語言(常見範例包括 GNU gettext PO (Portable Object)、XLIFF 1.1 與 1.2 與 蘋果 iOS 字串)。單語格式則以 ID 辨識字串,每個語言檔案只包含這些 ID 至指定語言翻譯的對應關係(常見範例為 Android 字串資源)。部分檔案格式同時支援兩種形式,詳情請見下方說明。
若要正確使用單語檔案,Weblate 必須能存取包含完整待翻譯字串及其來源內容的檔案。此檔案在 Weblate 中稱為 單語言基底語言檔案,其他架構可能使用不同名稱。
另外,可以利用 中間語言檔案 擴充此工作流程,以包括開發人員提供的字串,但不要在最終的字串中使用。
字串狀態¶
許多檔案格式只區分 “未翻譯” 和 “已翻譯”字串。而某些格式可以儲存更精細的狀態資訊,例如“需要編輯”或“已核准”。
來源字串描述¶
來源字串描述可用於傳遞要翻譯的字串的附加資訊。
部分格式原生支援向譯者提供額外資訊(例如 XLIFF 1.1 與 1.2、GNU gettext PO (Portable Object)、WebExtension JSON、CSV 檔案、Excel Open XML、Qt Linguist .ts、go-i18n JSON 檔案、gotext JSON 檔案、ARB 檔案、.NET 資源檔案 (RESX, RESW))。許多其他格式則會擷取最接近的註解,作為來源字串描述。
解釋¶
字串的 解釋 可以從部分檔案格式儲存及解析。
目前僅在 TermBase eXchange 格式 中支援。
來源字串位置¶
原始碼中字串的位置會幫助熟練的翻譯者搞清楚字串如何被使用。
此資訊通常在雙語言格式中可用,這些格式中,使用工具從原始碼中提取字串。例如,GNU gettext PO (Portable Object) 和 Qt Linguist .ts。
翻譯旗標¶
翻譯標記可用來自訂 Weblate 行為。部分格式支援在翻譯檔案中定義標記;您也可以隨時在 Weblate 介面中定義,請參閱 使用旗標自訂行為。
此功能以 GNU gettext PO (Portable Object) 中的標記為設計基礎。
此外,支援旗標的 XML 格式會從非標準屬性 weblate-flags 擷取旗標。XLIFF 標準所定義的 maxwidth 屬性 也支援 max-length:N 旗標;請參閱 指定翻譯旗標。
情境¶
情境用於區分雙語格式下用於不同領域的相同字串(例如 Sun 可以是 "Sunday" 的縮寫,也可以是離我們最近的恆星的名字)。
對單語格式而言,字串辨識碼(通常稱為鍵)可達到相同目的,因此不需要額外情境。
複數化字串¶
將帶有不同數量的字串正確在地化時複數是必要的。規則取決於一個目標語言並且許多格式遵循 CLDR 規範。
支援功能表格中的「複數支援」表示 Weblate 能以該格式呈現複數字串。有些格式需要既有的複數中繼資料或特定變體;若格式本身未原生支援建立新的複數字串,便無法建立這類字串。
提示
複數形式字串也需要應用程式框架妥善支援。請選擇平台的原生格式,例如 GNU gettext PO (Portable Object)、Android 字串資源 或 Stringsdict 格式。
唯讀的字串¶
翻譯檔案中的唯讀字串將被包含在 Weblate 中,但不能在 Weblate 中對其進行編輯。只有少數格式(XLIFF 1.1 與 1.2 和 Android 字串資源)原生支援此功能,但可以透過新增 read-only 標記在其他格式中進行模擬,請參閱 使用旗標自訂行為。
移除廢棄字串¶
部分檔案格式可以儲存廢棄字串。Weblate 可以從支援此操作的格式中移除這些廢棄字串。
支援其他格式¶
translate-toolkit 支援且可序列化的大多數格式,都能輕易獲得支援,但目前尚未經過測試。多數情況下,Weblate 需要額外的薄層,隱藏不同儲存方式的行為差異。
要為新格式新增支援,首先要在 translate-toolkit 中為其實作支援。
檔案格式參數¶
檔案格式參數可用來調整檔案格式相關設定。這些參數在元件層級設定,讓您自訂檔案的解析與序列化處理方式。
檔案格式參數清單¶
參數名稱 |
檔案格式 |
標籤 |
幫助文字 |
|---|---|---|---|
csv_encoding |
|
檔案編碼方式 |
用於 CSV 檔案的編碼方式 可用的選擇:
|
csv_escape_formulas |
|
跳脫試算表公式 |
儲存 CSV 檔案時,對看似試算表公式的值加上單引號前綴。 |
csv_simple_encoding |
|
檔案編碼方式 |
用於簡單 CSV 檔案的編碼方式 可用的選擇:
|
dos_eol |
所有檔案格式 |
DOS 列尾字元 |
在字串中使用 DOS 換行符號(rn),而不使用 UNIX 換行符號(n)。 |
flatxml_key_name |
|
FlatXML 鍵名稱 |
|
flatxml_root_name |
|
FlatXML 根元素名稱 |
|
flatxml_value_name |
|
FlatXML 數值名稱 |
|
gwt_encoding |
|
檔案編碼方式 |
用於 GWT Properties 檔案的編碼方式 可用的選擇:
|
json_indent |
|
JSON 縮排 |
|
json_indent_style |
|
JSON 縮排類型 |
可用的選擇:
|
json_sort_keys |
|
排序 JSON 金鑰 |
|
json_use_compact_separators |
|
分隔符號後不要有空白 |
|
line_max_length |
|
最大列寬 |
輸出檔案中每一列的最大字元數。 |
md_extract_code_blocks |
|
擷取程式碼區塊 |
是否要從 Markdown 與 MDX 檔案的程式碼區塊中擷取可翻譯內容。 |
md_extract_frontmatter |
|
擷取前置資料 |
是否要擷取並翻譯 Markdown 與 MDX 檔案中的 YAML front matter 區塊。 |
md_frontmatter_translate_values |
|
翻譯前置資料值 |
剖析 YAML front matter,並僅翻譯純量字串值。盡可能保留鍵、結構、註解及格式。 |
md_no_placeholders |
|
停用佔位字元 |
停用在 Markdown 與 MDX 檔案中偵測與處理預留位置。 |
merge_duplicates |
|
移除重複的相同字串 |
將相同的來源字串合併為單一翻譯單元。透過移除與位置相關的情境,避免在檔案重整或表格重新排序時造成翻譯遺失。 |
po_fuzzy_matching |
|
使用模糊比對 |
|
po_keep_previous |
|
保留翻譯字串上次的 msgid |
控制是否保留模糊字串的前一個 msgid 註解。 |
po_line_wrap |
|
長列換列 |
預設情況下,gettext 會在每行第 77 個字元處與換行符處換行。新增 可用的選擇:
|
po_no_location |
|
不在檔案中納入位置資訊 |
|
po_remove_obsolete |
|
移除廢棄字串 |
儲存翻譯變更或從 POT 檔案更新時,移除 PO 檔案中的廢棄項目。 |
po_report_msgid_bugs_to |
|
報告 msgid 錯誤至 |
若已設定來源字串的錯誤報告位址,允許 Weblate 更新檔案標頭中的「Report-Msgid-Bugs-To」。 |
po_set_language_team |
|
更新語言團隊標頭 |
讓 Weblate 更新「Language-Team」檔案標頭。 |
po_set_last_translator |
|
更新最新譯者標頭 |
讓 Weblate 更新「Last-Translator」檔案標頭。 |
po_set_x_generator |
|
更新 X-Generator 標頭 |
讓 Weblate 更新「X-Generator」檔案標頭。 |
properties_encoding |
|
檔案編碼方式 |
Java Properties 檔案使用的編碼方式 可用的選擇:
|
strings_encoding |
|
檔案編碼方式 |
用於 iOS 字串檔案的編碼方式 可用的選擇:
|
xml_closing_tags |
|
包含空白 XML 標記的結束標記 |
|
yaml_indent |
|
YAML 縮排 |
|
yaml_line_break |
|
換行符號 |
可用的選擇:
|
yaml_line_wrap |
|
長列換列 |
可用的選擇:
|