GNU gettext PO (Portable Object)

翻譯自由軟體用得最廣泛的格式。

通過調整檔案頭或連結到相應的來源檔案,可以支援儲存在檔案中的情境資訊。

顯示來源字串變更

如果 PO 檔案中包含先前的來源字串,Weblate 可以擷取這些字串,並以此顯示需要編輯之字串的差異。若要納入這些資訊,執行 msgmerge 時必須加上 --previous 引數;產生的 PO 檔案會包含如下的特殊資料列:

#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"

這由 po_keep_previous 檔案格式參數 參數控制,不會影響以 #~ 標示的過時項目。

過時字串

msgmerge 預設會將已從 POT 檔案移除的字串保留為過時的 #~ 項目。啟用 po_remove_obsolete 檔案格式參數 參數,可在 Weblate 儲存 PO 檔案時移除過時項目。

PO 檔案標頭

Weblate 會自動維護 PO 檔案的標頭。可使用 檔案格式參數Language-TeamLast-TranslatorX-GeneratorReport-Msgid-Bugs-To 標頭納入設定。

也可以使用 評論中的貢獻者紀錄 更新標頭註解,使其包含作者名稱。

換行

換行方式大致符合 GNU gettext 的行為。GNU gettext 的換行演算法及其所依據的 Unicode 資料都會持續演進,因此少數情況下可能出現差異。

可以用 po_line_wrap 引數設定換行寬度,見 檔案格式參數

產生相符的 MO 檔案

如果 MO 與 PO 檔案一同保留在儲存庫中,可以使用 產生 MO 檔案 讓 MO 檔案與 PO 檔案保持同步。

從 POT 檔案更新 PO 檔案

可以用 更新 PO 檔案以符合 POT (msgmerge) 從 POT 檔案更新 PO 檔案,見 更新目標語言檔案

單語言 gettext

一些專案決定使用 gettext 作為單語言格式 —— 它們僅在原始碼中編碼 ID,然後將字串翻譯成所有語言,包括英語。支援此功能,儘管在將元件匯入 Weblate 時必須明確選擇此檔案格式。

範例檔案

雙語言 gettext PO 檔案通常如下所示:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"

單語言的 gettext PO 檔案通常如下所示:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"

基本語言檔案將是:

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"

#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"

#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"
支援的功能

副檔名

.po, .pot

語言能力

單語言

支援複數

Yes

支援描述

Yes

支援解釋

No

支援情境

Yes

支援位置

Yes

支援旗標

Yes

額外狀態

Needs editing

API 辨識碼

po-mono

支援唯讀字串

No

支援移除已不再使用的字串

Yes

支援的功能

副檔名

.po, .pot

語言能力

雙語言

支援複數

Yes

支援描述

Yes

支援解釋

No

支援情境

Yes

支援位置

Yes

支援旗標

Yes

額外狀態

Needs editing

API 辨識碼

po

支援唯讀字串

No

支援移除已不再使用的字串

Yes

Weblate 設定

典型的 Weblate 雙語 gettext 元件設定

檔案遮罩

po/*.po

單語言基底語言檔案

空白

新翻譯的範本

po/messages.pot

檔案格式

Gettext PO 檔案

典型的 Weblate 單語 gettext 元件設定

檔案遮罩

po/*.po

單語言基底語言檔案

po/en.po

新翻譯的範本

po/messages.pot

檔案格式

Gettext PO 檔案(單語言)

檔案格式參數

po_* 模式的 檔案格式參數 可用來設定 gettext 格式的行為。