翻譯專案

翻譯組織

Weblate 將專案/組件的可翻譯版本控制系統內容組織成樹狀結構。您還可以使用類別來組織專案內的組件。

  • 底層對像是 專案設定,該專案設定應將所有翻譯歸在一起(例如,多個版本的應用程式翻譯和/或隨附的文件)。

  • 您可以選擇透過 類別 建立該中間層級。可以巢狀類別來達成更復雜的結構。

  • 在上面的層級上,即 組件設定,實際上是要翻譯的組件,您定義要使用的版本控制系統儲存庫以及要翻譯的檔案掩碼。

  • 在 組件設定 上方有單獨的翻譯,當版本控制系統儲存庫中出現翻譯檔案(與 組件設定 中定義的 檔案遮罩 相符)時,Weblate 會自動處理這些翻譯。

Weblate 支援 Translate Toolkit 支援的多種翻譯格式(雙語言和單語言),請參閱 在地化檔案格式。

備註

您可以使用 Weblate 內部 URL 共享複製的版本控制系統儲存庫。當您有許多共享同一版本控制系統的組件時,強烈建議使用此功能。它提高了效能並減少了所需的磁碟空間。

新增翻譯專案和組件

使用者能否建立新的翻譯專案及組件取決於其權限。具備 新增專案 權限的使用者一律可以建立;如果執行個體使用計費功能(例如 https://hosted.weblate.org/,請參閱 帳務),管理計費的使用者帳號也能依方案額度建立。具備工作空間 新增專案至工作空間 權限的使用者,也能在該工作空間建立專案。建立不屬於工作空間的專案,則需要全站 新增專案 權限。詳細資訊請參閱 專案建立和移動。

提示

要授予每名使用者建立新專案的權限,請為 專案建立者 團隊建立新的 自動團隊分派。

您可以在單獨的頁面上查看目前的結算方案:

../_images/user-billing.webp

您可以從此處開始建立專案,也可以使用導覽條中的選單來填寫翻譯專案的基本資訊以完成新增:

../_images/user-add-project.webp

建立專案後,您將直接進入專案頁面:

../_images/user-add-project-done.webp

只需點選一次即可啟動建立新翻譯組件的操作。建立組件的過程是多階段的,並自動檢測大多數翻譯參數。有幾種建立組件的方法:

來自版本控制

從遠端版本控制儲存庫建立組件。

來自既有組件

通過選擇不同的檔案為現有組件建立其他組件。

額外分支

Creates additional component to existing one, just for different branch. Select a component to load its available remote branches. If loading fails, use Retry to try again.

上傳翻譯檔案

如果您沒有版本控制或不想將其與 Weblate 整合,則將翻譯檔案上傳到 Weblate。您以後可以使用網路介面或 Weblate 的 REST API 更新內容。

翻譯文件

上傳單一檔案或翻譯檔案並進行翻譯。

從頭開始

建立空白翻譯專案並手動新增字串。

一旦有了現有的翻譯組件,就可以使用同一儲存庫輕鬆地為其他檔案或分支新增新的組件。

首先,您需要填寫名稱和儲存庫位置:

../_images/user-add-component-init.webp

在下一頁上,將顯示已發現的可翻譯資源的清單:

../_images/user-add-component-discovery.webp

最後,您檢查翻譯組件資訊並填寫選用詳細資訊:

../_images/user-add-component.webp

專案設定

建立一個翻譯專案,然後在其中新增一個新的翻譯組件。這個專案就像一個架子,裡面堆放著真正的翻譯。同一專案中的所有組件共享建議及其字典;翻譯也將自動傳播到單一專案中的所有組件(除非在組件設定中關閉),請參閱 翻譯記憶。

也參考

與 Weblate 整合

這些基本屬性被新增並通知翻譯人員專案:

專案名稱

詳細的專案名稱,用於顯示專案名稱。

URL 代稱

適用於 URL 的專案名稱。

專案網站

翻譯者可以在其中找到有關該專案的更多資訊的 URL。

這是必填參數,除非被 WEBSITE_REQUIRED 關閉。

翻譯說明

描述專案中的在地化過程的文字,以及任何其他對翻譯人員有用的資訊。Markdown可用於文字格式化或插入連結。

良好的翻譯指示會說明貢獻者應如何提交翻譯、預期的校閱方式、如何回報來源字串問題,以及可在哪裡測試翻譯或翻譯何時釋出。

翻譯授權條款

此專案中組件的預設翻譯授權。

貢獻者授權協議

此專案中組件的預設貢獻者授權合約。可用 Markdown 調整文字格式或插入連結。

使用共享的翻譯記憶

是否使用共享翻譯記憶,有關更多詳細資訊,請參閱 共用翻譯記憶。

可以透過 DEFAULT_SHARED_TM 變更預設值。

貢獻至共享翻譯記憶

是否貢獻到共享翻譯記憶,請參閱 共用翻譯記憶 以取得更多詳細資訊。

這也影響專案能否被用作 自動翻譯 的來源。

可以透過 DEFAULT_SHARED_TM 變更預設值。

備註

此選項在 Hosted Weblate 中不可用。開啟/關閉該選項會同時開啟/關閉 使用共享的翻譯記憶。

使用工作空間翻譯記憶

是否使用同一工作空間中各專案共用的翻譯記憶;更多詳細資訊請參閱 翻譯記憶範圍。工作空間也必須允許使用工作空間翻譯記憶。

貢獻至工作空間翻譯記憶

是否將翻譯提供給同一工作空間中各專案共用的翻譯記憶。工作空間也必須允許提供翻譯。

備註

此選項在 Hosted Weblate 中不可用。開啟/關閉該選項會同時開啟/關閉 使用工作空間翻譯記憶。

自動清理翻譯記憶

在 5.13 版被加入.

當譯文狀態變為活躍時是否替換舊的自動建立的翻譯記憶條目。

相符基於相同的來源字串、組件、情境和源/目標語言對。不影響上傳的翻譯記憶檔案。

存取控制

設定每個專案的存取控制,請參閱 專案存取控制 以取得更多詳細資訊。

可以透過 DEFAULT_ACCESS_CONTROL 修改預設值。

公開分享

允許匿名使用者存取專案的互動頁面和轉譯後的狀態小工具。此設定適用於 私人 和 自訂 專案;公開 和 受保護 專案則一律可公開分享。

公開分享會公開專案和組件名稱(包括受限組件),並顯示翻譯統計資料、語言和進度,但不會授予專案頁面、翻譯、儲存庫或 API 的存取權。

Changing this setting has no immediate effect while the project is Public or Protected, but the stored value is retained and applies if the project is later changed to Private or Custom. Sitemaps for project, component, and translation pages only include pages that are directly accessible anonymously. Engage sitemaps follow the public sharing setting.

變更此設定需要 管理專案存取權 權限。狀態小工具的設定頁面仍會使用一般的專案存取控制。

When REQUIRE_LOGIN is enabled, PUBLIC_ENGAGE must also be enabled for anonymous access to engage pages and sitemaps.

強制執行的雙重要素身分驗證

在 5.7 版被加入.

強制所有貢獻者使用 雙重要素身分驗證。不設定雙因素認證,使用者將不會被允許在專案內執行任何操作。

啟用檢閱

允許稽核翻譯的工作流程,請參閱 專門的檢閱者。

啟用來源檢閱

啟用檢閱來源字串的工作流程,參閱 來源字串檢閱。

翻譯品質過濾器

在 5.13 版被加入.

提交政策決定了提交變更到版本控制系統時會包括哪些譯文。此設定在專案範圍可用並支援以下選項:

  • 不論品質如何提交所有譯文:所有譯文將被提交,包括那些被標記為需要編輯或未稽核的譯文。

  • 跳過被標記為需要編輯的譯文:僅提交沒有“需要編輯“、”需要重寫“或”需要檢查“狀態的譯文。

  • 只包括已核准的譯文:只有稽核者已核准的譯文會被提交。此選項要求啟用 啟用檢閱。

僅核准政策只適用於啟用審核的翻譯。透過 工作流程自訂 停用審核的語言,所有翻譯(包括標記為需要編輯的翻譯)都會提交。來源字串也依相同規則處理,請參閱 啟用來源檢閱。

連結至其他專案儲存庫的組件,會遵循自己所屬專案的提交政策。

若編輯器顯示「只有已核准的翻譯會寫入翻譯檔。」或「必須先核准此翻譯,才能將它寫入翻譯檔。」品質篩選條件會在翻譯獲得核准前,阻止它寫入檔案。這項通知無法確認目前的編輯已儲存;離開編輯器前請先解決所有驗證錯誤。專案政策說明會補充:「啟用審核的語言,只有已核准的翻譯會寫入翻譯檔。」有權限核准翻譯,不代表您編輯的內容會自動獲得核准。

若某語言未使用審核,請開啟該語言在專案中的頁面,並選擇 設定。啟用 在此專案中自訂此語言的翻譯工作流程,再關閉 啟用審核。您必須具備編輯專案設定的權限。請參閱 工作流程自訂。在僅核准政策下,這會讓該語言的所有翻譯狀態都符合寫入檔案的資格,包括需要編輯的翻譯。

若需要審核,具備審核和大量編輯權限的使用者,可以使用 批次編輯 核准已審核過的現有翻譯。符合寫入翻譯檔案的資格,不代表變更會立即提交或推送;請參閱 惰性提交 和 提交時一併推送。

啟用掛勾

是否將未經身分驗證的 通知掛勾 用於此儲存庫。

語言別名

將翻譯匯入到 Weblate 時定義語言代碼映射。當您的儲存庫中的語言代碼不一致,並且您希望在 Weblate 中獲得一致的檢視,或者如果您想使用翻譯檔案的非標準命名時,可以使用此方法。

典型的使用情況會是將 美國英語映射到英語:en_US:en

由逗號分隔的多個映射:en_GB:en,en_US:en

使用非標準編碼:ia_FOO:ia

提示

當相符翻譯檔案時映射語言代碼,並且映射是大小寫敏感的,所以您確保使用與檔案名稱中使用的形式相同的來源語言代碼。

加入新翻譯

在此專案組件中建立新翻譯的請求的預設行為。

語言代碼類型

Weblate 在此專案組件中建立的翻譯的預設語言程式碼樣式。

第二語言

在 5.11 版被加入.

翻譯時,在來源語言旁另外顯示的語言。

或者,它也可以用作機器翻譯的來源。

翻譯旗標

在 5.11 版被加入.

品質檢查和其他 Weblate 行為的自訂,請參閱 使用旗標自訂行為。

合併了工作空間、專案、組件和翻譯標記。

也參考

提交、新增、刪除、合併、附加元件與合併請求訊息

此專案中各組件的預設提交與合併請求訊息範本。

預設值可以透過 DEFAULT_ADD_MESSAGE 、 DEFAULT_ADDON_MESSAGE 、 DEFAULT_COMMIT_MESSAGE 、 DEFAULT_DELETE_MESSAGE 、 DEFAULT_MERGE_MESSAGE 、 DEFAULT_PULL_MESSAGE 變更。

內建預設值遵循 Conventional Commits,並在可用時加入 Weblate 連結。使用訊息編輯器旁的 還原網站預設值,可為該訊息還原目前安裝環境的預設值;對於繼承的值,這也會停用該訊息的繼承。

組件設定

組件是待翻譯內容的群組。您需要輸入 VCS 儲存庫位置,以及指定待翻譯檔案的檔案遮罩;Weblate 會自動從該 VCS 擷取內容,並找出所有相符且可翻譯的檔案。

也參考

與 Weblate 整合

您可以在 在地化檔案格式 中找到一些典型設定範例。

備註

建議將翻譯文件保持在合理的大小——在您的案例中使用任何合理的工具(獨立的 app 或附加元件、書籍的章節或網站)來分割翻譯文件。

Weblate 能夠輕鬆處理 10000 個字串,但大的翻譯組件的分割工作和翻譯者之間的協調更困難。

如果翻譯的語言定義遺失,會新增一個空的定義,並且命名為 "cs_CZ (generated)"。您應該調整定義,並將其回饋給 Weblate 的作者,從而遺失的語言可以包括在下一次的發佈版本中。

使用版本控制系統工作的所有重要引數都包含在組件中,並且從中取出翻譯:

組件名稱

冗長組件名稱,用於顯示組件的名稱。

組件代稱

適用於 URLs 的組件名稱。

組件專案

組件所屬的 專案設定。

版本控制系統

使用的版本控制系統,細節請參閱:版本控制整合。

版本控制參數

這些參數可調整 Weblate 與存放庫的互動方式,例如是否強制推送或建立拉取請求。系統只會顯示適用於所選 版本控制系統 的參數;另請參閱 版本控制參數。

備註

設定表單會直接捨棄不適用於所選版本控制系統的參數,但 REST API 會拒絕這些參數。透過 API 變更 版本控制系統 時,請在同一個要求中清除或取代 vcs_params。檔案格式參數 與 檔案格式 也適用相同規則。

原始碼儲存庫

版本控制系統儲存庫,用於拉取變更。

也參考

指定 URLs 的更多細節請參閱 存取儲存庫。

提示

這可以是真實的版本控制系統的 URL,也可以是 weblate://project/component,表示與其他組件共享該儲存庫。更多細節請參閱 Weblate 內部 URL。

儲存庫推送 URL

用於推送的儲存庫 URL,其行為取決於 版本控制系統。更多詳細資訊見 從 Weblate 推送變更。

對於連結的儲存庫,這一點不被使用,連結組件的設定適用。

也參考

關於如何指定儲存庫 URL 的更多細節請見 存取儲存庫,並且關於從 Weblate 推送變更的更多細節,請參閱 從 Weblate 推送變更。

儲存庫瀏覽器

用於顯示來源檔案(已使用訊息的位置)儲存庫瀏覽器的 URL。當它為空白時,將不產生這樣的連結。您可以使用 範本標記。

例如在 GitHub 上,使用像: https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}} 那樣的一些東西

如果您的路徑是相對於不同資料夾的(路徑包含 ..),您可能想使用 parentdir 過濾器(見 範本標記)來剝除前導資料夾:https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}

翻譯檔案的儲存庫瀏覽器

用來顯示翻譯檔案的儲存庫瀏覽器網址。留空時,會改用儲存庫瀏覽器網址。如果原始碼檔案和翻譯檔案放在不同的儲存庫,這個設定就很有用。此設定適用於所有翻譯檔案,包括來源語言、中介、範本和目標檔案。您可以使用範本標記。

例如,在 GitHub 上可使用類似的網址:https://github.com/WeblateOrg/translations/blob/{{branch}}/{{filename}}#L{{line}}

已匯出儲存庫 URL

由 Weblate 進行的變更被匯出的 URL。當不使用 持續在地化 時,或者當需要手動合併變更時,這是重要的。您可以為 Git 儲存庫使用 Git 匯出器 來將其自動化。

儲存庫分支

要從 VCS 簽出哪個分支,以及要在何處尋找翻譯。

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

推送分支

用於推送變更的分支,留為空白來使用 儲存庫分支。

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

備註

Mercurial 和 Subversion 忽略此設定。

對於 Gerrit,此設定會選取檢閱請求的目標分支。將其留空會針對 儲存庫分支 進行檢閱。請使用簡短分支名稱,而非 refs/heads/<branch> 或 refs/for/<branch>。Gerrit 推送選項可以附加在任一設定的 % 後方,例如 main%topic=l10n;Gerrit 會將這些選項解讀為已設定的 Weblate Gerrit 帳號。

檔案遮罩

要翻譯的檔案的遮罩,包括路徑。它應包含一個 "*" 替換語言代碼(有關處理方式的資訊,請參閱 語言定義)。如果您的儲存庫包含多個翻譯檔案(例如,多個 gettext 定義域),則您需要為每個檔案建立組件。

例如 po/*.po 或 locale/*/LC_MESSAGES/django.po。

如果檔名包含特殊字元(例如 [ 或 ]),則需要將這些特殊字元逸出為 [[] 或 []]。

螢幕擷圖檔案遮罩

此功能使用 VCS 儲存庫路徑透過螢幕擷圖檔案掩碼來發現和更新螢幕擷圖。此功能執行在組件層級且必須使用星號“*”來替換螢幕擷圖檔名。

允許的格式是 WebP、JPEG、PNG、APNG 和 GIF。

備註:

  1. 檔案掩碼和螢幕擷圖檔案掩碼並不相關,請分別設定它們。

  2. 需要手動將組件中發現的螢幕擷圖連結到特定的翻譯金鑰。

例如:

讓我們假定您的 VCS 儲存庫有一個類似這樣的結構:

component_A
└── docs
    ├── image1.png
    └── image2.jpg

對於 A 組件,您想允許 PNG 螢幕擷圖發現和更新。您會把 A 組件的螢幕擷圖檔案掩碼設定為 component_A/docs/*.png。這表示組件 A 中 doc 目錄下的任何 PNG 格式圖片可被發現並更新。因此,若您想更新 image1.png,您提供的新螢幕擷圖應命名為 image1.png 來相符現有的 filename,並儲存在 component_A/docs/ 下。

對於使用 Fastlane 中繼資料的 Android 專案,來源語言螢幕擷圖遮罩可以指向中繼資料螢幕擷圖資料夾,例如 fastlane/metadata/android/en-US/images/phoneScreenshots/*.png。Weblate 會在儲存庫更新時探索相符的螢幕擷圖。探索到的螢幕擷圖仍需在螢幕擷圖管理介面中與來源字串建立關聯;可在該處使用 OCR 或來源字串搜尋來批次指派。

單語言基底語言檔案

包含字串定義的譯文範本檔案,用於 專案與組件建立。

編輯基底檔案

是否允許編輯 單語言基底語言檔案 中的字串。

中間語言檔案

對於 專案與組件建立 的單一語言檔案。在多數情況下,這是開發者提供的翻譯檔案,並且在新增真正的來源字串時使用。

設定好後,來源字串將基於此檔案,但所有其他語言都基於 單語言基底語言檔案。如果字串沒有被翻譯成來源語言,則禁止翻譯成其他語言。這樣就提供了 來源字串的品質閘道。

中繼檔案可以與既有語言檔案相符。將其設定為中繼檔案時,Weblate 不會在組件語言清單中將其列為一般語言。清除此設定後,檔案會在下次掃描組件時再次顯示為一般語言。

設定中繼檔案時,目標字串可能變成唯讀。若 單語言基底語言檔案 中相符的來源字串尚未翻譯,就會發生這種情況。

新翻譯的範本

用於產生新翻譯的翻譯範本檔案。

  • 對於多數單語言格式,請將此欄位留空。這些格式通常可以從一個空白檔案開始。

  • GNU gettext PO 檔案選擇 .pot 檔案。

  • 選擇沒有譯文的空白檔案,如果您有的話。

  • 對於需要存在完整金鑰集的單語言格式,請選擇 單語言基底語言檔案。

  • 文件翻譯選擇 單語言基底語言檔案。

  • 其他格式選擇任何翻譯檔案。

  • 多數情況下,範本檔案可以和基礎檔案相同。

提示

在很多單語言格式中,Weblate 預設以空檔案開始。建立新的翻譯時,在您想要所有的字串都以空值出現的情況下來使用。

檔案格式

翻譯檔案格式,另請參閱 在地化檔案格式。

檔案格式參數

用於設定翻譯檔案處理方式的引數,另見 檔案格式參數。

來源字串漏洞報告位址

用於回報上游缺陷的電子郵件地址。 Weblate 中做出的任何字串註解的通知,也由這個地址接收。

對於 GNU gettext PO (Portable Object) 格式,此地址同樣由 Weblate 儲存在該檔案的 Report-Msgid-Bugs-To 標頭內。

不要顯示詞彙表符合專案

對這個組件隱藏翻譯編輯器中的詞彙表面板及相符項目。啟用後,系統不會計算這個組件的詞彙表建議,編輯器也會隱藏詞彙表面板(包括「新增詞彙至詞彙表」動作)。

備註

詞彙表自參考始終被排除在相符之外,即便停用該選項時也是如此。

貢獻至專案翻譯記憶

控制是否將這個組件的翻譯加入專案翻譯記憶。

也參考

翻譯記憶

允許翻譯重用

您可以關閉專案內從其它組件到這個組件的翻譯的傳播。這真正依賴於您在翻譯的是什麼,有時最好多次使用同一個翻譯。

對於單語言翻譯,除非您跨越整個專案中使用相同的 ID,通常關閉它是個好主意。

可以透過 DEFAULT_TRANSLATION_PROPAGATION 變更預設值。

啟用建議

對於這個組件,建議的翻譯是否被接受。

也參考

工作流程自訂

建議投票

為建議打開投票,請參閱 建議投票。

也參考

工作流程自訂

自動接受建議

自動接收被投票的建議,請參閱 建議投票。

也參考

工作流程自訂

翻譯旗標

品質檢查和其他 Weblate 行為的自訂,請參閱 使用旗標自訂行為。

合併了工作空間、專案、組件和翻譯標記。

也參考

強制檢查

不能忽略的檢查清單。

這項設定可從工作空間、專案或類別繼承(請參閱設定繼承)。繼承新的強制檢查時,既有且未通過檢查的翻譯會在背景改回需要編輯狀態。

也參考

強制執行檢查

翻譯授權條款

翻譯的許可(不需要與原始碼的授權相同)。

也參考

貢獻者授權協議

使用者必須先同意貢獻者授權協議才能翻譯此組件。

Markdown 可被用於調整文字格式或插入連結。

也參考

加入新翻譯

如何處理建立新語言的請求。可用選項:

聯絡維護者

使用者可以選取所需的語言,專案維護者將收到有關該語言的通知。由他們決定是否向儲存庫新增(或不新增)語言。

指向翻譯說明 URL

向使用者顯示的頁面連結描述了開始新翻譯的過程。如果需要更正式的流程(例如,在開始實際翻譯之前組成人員團隊),請使用此選項。

建立新語言檔案

使用者可以選擇語言,然後 Weblate 會自動為其新增檔案並開始翻譯。

建立專案中現有的語言;如需新增語言,請聯絡維護者

使用者可以建立翻譯,語言必須已在專案中另一個非詞彙表組件用作目標語言。其他語言須向維護者提出申請,由維護者建立第一筆目標翻譯來核准。符合資格的條件和 API 行為請參閱 限制翻譯語言。

停用新增翻譯

使用者將無法選擇開始新的翻譯。

提示

即使此處已停用新增翻譯,只要可行,專案管理員仍能新增翻譯(可使用 新翻譯的範本,或檔案格式支援從空白檔案開始)。

管理字串

在 4.5 版被加入.

設定是否允許 Weblate 使用者新增字串或移除現有字串。此設定也會在支援的格式中啟用 編輯來源字串和索引鍵。請依照在地化工作流程設定此選項,也就是字串的新增和維護方式。

對於雙語言格式,通常會從原始碼中提取字串(例如,通過使用 xgettext)並停用在 Weblate 中新增字串(在下次更新翻譯檔案時將被丟棄)。在 Weblate 中,您可以為每個翻譯管理字串,並且它不會在所有翻譯中強制執行字串。

對於單晶格式,字串僅在來源語言上管理,並在翻譯中自動新增或刪除。一旦翻譯,字串會在翻譯檔案中出現。

提示

對於單語言格式,您可能想要同時開啟 編輯基底檔案 和 管理字串。

語言代碼類型

用來產生使用 Weblate 建立之翻譯檔案名稱的自訂語言代碼。

備註

Weblate 在解析翻譯檔案時能辨識其中的語言程式碼,以下設定隻影響新檔案的建立方式。

預設基於檔案格式

依賴於檔案格式,對於其中的多數使用 POSIX。

POSIX 樣式,使用底線當作分隔符號

典型地由 gettext 和相關工具使用,產生像 pt_BR 那樣的語言代碼。

POSIX 樣式,使用底線作為分隔符號,小寫

典型地由 gettext 和相關工具使用,產生像 pt_BR 那樣的語言代碼。

POSIX 樣式,使用底線當作分隔符,包含地區碼

POSIX 風格的語言代碼即使不必要時也包括國家代碼;例如 cs_CZ)。

POSIX 樣式,使用底線作為分隔符號,包括國家代碼,小寫

POSIX 風格的語言程式碼,包含小寫的國家地區程式碼,即使沒有必要(例如 cs_cz)。

BCP 樣式,使用連字號當作分隔符號

典型地在 web 平台上使用,產生像 pt-BR 那樣的語言編碼。

BCP 樣式,使用連字號當作分隔符號,包含地區碼

BCP 風格的語言代碼即使不必要時也包括國家代碼;例如 cs-CZ)。

BCP 樣式,使用連字號作為分隔符號、舊式語言代碼

對中文和 BCP 樣式符號使用舊程式碼。

BCP 樣式,使用連字號作為分隔符號,小寫

BCP 樣式表示法,全部為小寫(例如 cs-cz)。

Apple App Store 詮釋資料樣式

適用於將後設資料上傳到 Apple 應用商店的樣式。

Google Play 詮釋資料樣式

適用於將後設資料上傳到 Google Play 應用商店的樣式。

Android 樣式

只在Android apps 中使用,產生像 pt-rBR 那樣的語言代碼。

Linux 樣式

Linux 使用的語言環境,使用中文和 POSIX 樣式符號的遺留程式碼。

Linux 樣式,小寫

Linux 使用的語言環境,使用老式中文編碼和 POSIX 樣式符號。小寫。

合併類型

您可以設定如何處理來自上游儲存庫的更新。實際部署取決於版本控制系統,見 版本控制整合。

衍合

在更新時,將Weblate的提交重新放在上游儲存庫之上。這提供了乾淨的歷史,沒有額外的合併提交。

在複雜融合的情況下,變基可能使您產生麻煩,因此請仔細考慮是否允許它們。

您可能需要在 版本控制參數 中啟用 強制推送,尤其是推送至不同分支時。

合併

上游儲存庫變更合併到 Weblate 之一。此設定儘可能使用快進。這是最安全的方式,但可能會產生大量合併提交。

不快轉合併

上游儲存庫的修改會被合併到Weblate儲存庫中,每次都要做一次合併提交(即使是在可以快進的時候)。每一個Weblate的修改都會在Weblate儲存庫中顯示為合併提交。

可以透過 DEFAULT_MERGE_STYLE 變更預設值。

提交、新增、刪除、合併、附加元件與合併請求訊息

在提交翻譯時使用的說明,請參閱 範本標記。

預設值可以透過 DEFAULT_ADD_MESSAGE 、 DEFAULT_ADDON_MESSAGE 、 DEFAULT_COMMIT_MESSAGE 、 DEFAULT_DELETE_MESSAGE 、 DEFAULT_MERGE_MESSAGE 、 DEFAULT_PULL_MESSAGE 變更。

內建預設值遵循 Conventional Commits,並在可用時加入 Weblate 連結。使用訊息編輯器旁的 還原網站預設值,可為該訊息還原目前安裝環境的預設值;對於繼承的值,這也會停用該訊息的繼承。

也參考

提交時一併推送

是否自動推送已提交的專案到上游儲存庫。啟用時,當 Weblate 將變更提交到其基礎儲存庫中,就會啟動推送。(請參閱 惰性提交)。為了能真正啟用推送功能,需設定 Repository push URL。

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

Push on update

在 2026.10 版被加入.

Whether Weblate pushes after updating the repository from upstream, even when the update did not commit any translations. This applies only when 提交時一併推送 is enabled.

Turn this off to avoid pushes, and the CI runs they trigger, caused only by upstream changes. This is useful when Weblate's pull requests are squash-merged, so its commits never appear upstream. Translations committed during the update are still pushed.

Commits made by the update, such as merge commits with the 合併類型 set to merge, are then pushed with the next translation commit. On quiet projects they can accumulate and trigger the alert about unpushed changes, see REPOSITORY_ALERT_THRESHOLD. Using rebase avoids most of them.

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

變更後提交的經過時間

設定在後臺任務或 commit_pending 管理指令提交變更前,這些變更存在的時長(以小時為單位)。一旦存在至少一個比該時長更舊的變更,便會提交組件中的所有變更。

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

可以透過 COMMIT_PENDING_HOURS 變更預設值。

提示

還有一些情況下,未提交的修改可能會被提交,見 惰性提交。

有錯誤時鎖定

鎖定組件 (及關聯的組件,請參閱 Weblate 內部 URL ),觸發條件是第一個失敗的推送,合併到其上游儲存庫,或從中拉出。這樣可以避免新增其他衝突,這些衝突必須手動解決。

一旦儲存庫沒有錯誤留下來了,組件將會自動解鎖。

對使用 Weblate 內部 URL 的已連結儲存庫,此設定由擁有該儲存庫的已連結組件控制。連結的子組件使用來自那個組件的值。

來源語言

用於來源字串的語言。如果您要翻譯的不是英語,請變更此選項。

提示

如果您正在從英語翻譯雙語言檔案,但又希望能夠在英語翻譯中進行修復,選擇 English (Developer) 作為一種來源語言以避免來源語言和現有翻譯之間名稱上的衝突。

對於單語言翻譯,您可以使用這種情況下的中間翻譯,請參閱 中間語言檔案。

語言篩選

當掃描檔案掩碼時用於將翻譯過濾的正規表示式。它可以用於限制 Weblate 管理的語言清單。

建立新的翻譯檔案時也會套用此篩選條件。此時,系統會檢查依照 語言代碼類型 產生的語言代碼。

備註

單出現在檔案名稱中時,您需要列出語言代碼。

過濾的一些範例:

過濾器的描述

正規表達式

僅已選取的語言

^(cs|de|es)$

排除的語言

^(?!(it|fr)$).+$

只篩選兩個字母的代碼

^..$

排除非語言檔案

^(?!(blank)$).+$

包括所有檔案(預設)

^[^.]+$

也參考

限制翻譯語言

鍵值篩選器

在 5.8 版被加入.

用於依鍵值篩選翻譯單元的正規表示式。只有鍵值符合此欄位所設定正規表示式的翻譯單元會顯示。

過濾的一些範例:

過濾器的描述

正規表達式

僅已選取的金鑰

^(one|two|other)$

排除應用商店更新日誌

^(?!changelogs/.*$).+$

篩選含前置字串的字串

^translatable

備註

此篩選器只對有單語言檔案格式的組件可用。

變體的正規表達式

用於確定字串變體的正規表達式,請見 字串變數。

備註

多數欄位可以由專案所有者或管理員在 Weblate 介面上編輯。

第二語言

在 5.11 版被加入.

翻譯時,在來源語言旁另外顯示的語言。

或者,它也可以用作機器翻譯的來源。

備註

此設定可從專案繼承。

優先度

較高優先度的組件會優先提供給翻譯者。

在 4.15 版的變更: 這同樣影響相符的詞彙表術語的順序。

受限制的存取

備註

在 Hosted Weblate 上,這需要採用允許私密專案的計費方案。

組件預設對存取專案的任何人都可見,即使不能在組件中進行任何變更。這會容易地使翻譯在專案內保持一致。

無論專案層級權限如何,限制組件的存取或組件清單層級將接管到組件的存取權限。您必須明確授予對其的存取權限。這可以通過授予對新使用者群組的存取並將使用者放入其中,或使用預設的“自訂”或“私有”存取控制組。

預設設定可在 DEFAULT_RESTRICTED_COMPONENT 中變更。

限制存取功能會控制對組件頁面、翻譯、檔案、API 和翻譯記憶的直接存取。如果管理功能的文件所述作用範圍包含該組件,此功能不會提供隔離。例如,專案備份包含專案中的所有組件,而專案或類別層級的附加元件會處理其設定範圍內限制存取的組件。組件附加元件也能使用附加元件文件所述的跨組件輸入。請只將相應的管理權限授予能放心讓其執行這些操作、承擔這些影響的使用者。請參閱團隊範圍和附加元件。

提示

這也適用於專案管理員;請務必確認切換狀態後仍可存取該組件。

受限組件不會將新項目加入 共用翻譯記憶。歸屬於現有受限組件的專案及工作空間翻譯記憶項目會遵循該組件的限制。未歸屬的舊項目則遵循其翻譯記憶範圍的存取規則。在 Hosted Weblate 中,同一專案無法同時啟用共享翻譯記憶與受限組件。

分享專案

可以選擇組件可見的附加專案。這在分享不同專案間使用的庫時是有用的。

備註

分享組件不變更其存取控制。這樣做只是讓它在瀏覽其它專案時可見。使用者仍然需要存取實際組件的權限來瀏覽或翻譯它。

當作詞彙表

在 4.5 版被加入.

允許將此組件用作詞彙表。當您想分別管理專業術語和一般翻譯時使用。

詞彙表的最佳用處:

  • 確保術語使用一致性(如 UI 標籤、產品名)。

  • 在多個組件或專案間共享首選的譯文。

  • 用定義和情境支援翻譯者。

備註

詞彙表不適用於一般翻譯,而只用於管理術語。

Weblate 會自動為專案使用的語言新增缺少的詞彙表語言。詳情請參閱 語言檔案和同步。

您可以用 詞彙表色彩 設定如何列舉它。

詞彙表將可以在所有由 分享專案 定義的專案中存取。

A restricted component is not used as a glossary in its own project or in projects where it is shared. Weblate displays a diagnostic when both settings are enabled so that you can either remove restricted access or disable Use as a glossary without changing the component automatically.

建議在詞彙表上啟用 管理字串,以允許新增新詞。

也參考

詞彙表

詞彙表色彩

展示來自此詞彙表的術語時所用的顏色。有助於在使用多個術語時進行區分。

也參考

詞彙表

類別

類別的作用是賦予專案內組件以結構。您可以巢狀它們來達成更復雜的結構。

類別設定

分類可以覆寫與專案及組件相同的繼承設定,包括翻譯授權、貢獻者協議、新增翻譯、第二語言、翻譯旗標及提交訊息。

巢狀分類預設會繼承其上層分類。最上層分類會繼承專案。分類中的組件預設會繼承該分類。

範本標記

Weblate 在幾個需要進行文字渲染的地方使用了簡單的標記語言。它基於 The Django template language,所以它可以非常強大。

目前它用在:

在組件範本中,有以下變數可用:

{{ language_code }}

語言代碼

{{ language_name }}

語言名稱

{{ component_name }}

組件名稱

{{ component_slug }}

組件代稱

{{ project_name }}

專案名稱

{{ project_slug }}

專案 slug

{{ url }}

翻譯 URL

{{ filename }}

翻譯檔案名稱

{{ stats }}

翻譯統計資料,這具有進一步的屬性,範例如下。

{{ stats.all }}

總字串數量

{{ stats.fuzzy }}

需要檢閱的字串數量

{{ stats.fuzzy_percent }}

需要檢閱的字串數量百分比

{{ stats.translated }}

已翻譯的字串數量

{{ stats.translated_percent }}

已翻譯的字串百分比

{{ stats.allchecks }}

檢查失敗的字串數量

{{ stats.allchecks_percent }}

檢查失敗的字串百分比

{{ author }}

目前提交的作者,只在提交範圍可用。

{{ addon_name }}

目前執行的附加元件名稱,只能用於附加元件提交訊息。

統計資料產生器 在組件模式中也支援一組語言及其統計資料。使用 json 或 python 篩選器,可將範本值序列化為 JSON 或 Python 常值,並自動處理必要的引號和跳脫字元。

下面的變數在儲存庫瀏覽器或編輯器範本中可用:

{{branch}}

目前的分支

{{line}}

檔案中的列

{{filename}}

檔案名稱,您也可以使用 parentdir 過濾器,例如 {{filename|parentdir}},來剝除前導部分

提示

某些地方可能有額外的變數可用,見 組件探索。

您可以將它們與過濾器結合:

{{ component|title }}

您可以使用條件:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

有另外的標籤用於替換字元:

{% replace component "-" " " %}

您可以將它與過濾器結合:

{% replace component|capfirst "-" " " %}

還有另外的過濾器來操作檔案名稱:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times: {{ filename|parentdir|parentdir }}

…以及其他 Django 範本特性。

匯入速度

從版本控制系統儲存庫取得並將翻譯匯入 Weblate 可能會是漫長的過程,具體取決於您的翻譯的大小。以下是一些提示:

最佳化設定

對於測試並除錯 Weblate,預設的設定是有用的,當用於生產設定時,您應該進行一些調整。它們中的很多都對形成具有巨大的衝擊。特別是,更多細節請查看 生產設定 :

檢查資源限制

如果匯入巨大的翻譯或儲存庫,您會遭到伺服器資源限制的打擊。

  • 檢查空閒記憶體的量,通過作業系統來快取翻譯,將極大地提高效能。

  • 如果有很多字串需要處理的話,磁碟操作會是瓶頸——磁碟被 Weblate 和資料庫施加壓力。

  • 另外的 CPU 核心會幫助提高背景工作的效能(請參閱 使用 Celery 的背景工作)。

停用不必要的檢查

一些品質檢查可以使非常昂貴的,而如果不需要,在匯入時省略可以節省一些時間。設定的資訊請參閱 CHECK_LIST。

自動新增組件

在您的專案有十多個翻譯檔案的情況下(例如不同的 gettext 域,或 Android 應用的一部分),您會想要將它們自動匯入。可以透過使用 import_project 或 import_json,或者透過安裝 組件探索 附加元件,透過指令列來達成。

要使用附加元件,首先您需要為一個翻譯檔案(選擇未來最不可能改名或刪除的那個)建立一個組件,然後在該組件上安裝附加元件。

對於管理指令,您需要建立包含所有組件的專案,然後執行 import_project 或 import_json。