翻譯專案數

翻譯組織

項目/組件的可翻譯的版本控制系統(VCS )內容,由 Weblate 組織成樹狀結構。

  • 底層對像是 項目配置,該項目配置應將所有翻譯歸在一起(例如,多個版本的應用程序翻譯和/或隨附的文檔)。

  • 在上面的級別上,:ref:`component`(實際上是要翻譯的組件),您定義要使用的版本控制系統(VCS )倉庫以及要翻譯的文件的掩碼。

  • 在:ref:component 上方,有單獨的翻譯,當版本控制系統(VCS )倉庫中出現翻譯文件(與:ref:component 中定義的:ref:`component-filemask`匹配)時,Weblate會自動處理這些翻譯。

Weblate 支持 Translate Toolkit 支持的多種翻譯格式(雙語和單語),請參閱 支持的文件格式

備註

您可以使用 Weblate internal URLs 共享克隆的版本控制系統(VCS )倉庫。當您有許多共享同一版本控制系統(VCS )的組件時,強烈推薦使用此功能。它提高了性能並減少了所需的磁盤空間。

添加翻譯項目和組件

在 3.2 版本變更: 已包含用於添加項目和組件的界面,您不再需要使用 Django 管理界面

在 3.4 版本變更: 現在,添加組件的過程是多階段的,可以自動發現大多數參數。

根據你的權限,新的翻譯項目和組件可以被創建。具備 :guilabel:`Add new projects`權限的用戶總是可以這麼做。如果使用付費託管,你還可以從管理賬單的用戶賬戶基於套餐限額創建它們。

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

../_images/user-billing.png

您可以從此處開始創建項目,也可以使用導航條中的菜單來填寫翻譯項目的基本信息以完成添加:

../_images/user-add-project.png

創建項目後,您將直接進入項目頁面:

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

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

來自版本控制

從遠程版本控制倉庫創建組件。

來自既有組件

通過選擇不同的文件為現有組件創建其他組件。

額外分支

僅針對不同分支,為現有組件創建其他組件。

上傳翻譯檔

如果您沒有版本控製或不想將其與 Weblate 集成,則將翻譯文件上傳到 Weblate。您以後可以使用網絡界面或 Weblate 的 REST API 更新內容。

翻譯文件

Upload single document or translation file and translate that.

從頭開始

創建空白翻譯項目並手動添加字符串。

一旦有了現有的翻譯組件,就可以使用同一倉庫輕鬆地為其他文件或分支添加新的組件。

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

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

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

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

最後,您檢查翻譯組件信息並填寫可選詳細信息:

../_images/user-add-component.png

項目配置

創建一個翻譯項目,然後在其中添加一個新的翻譯組件。這個項目就像一個架子,裡面堆放著真正的翻譯。同一項目中的所有組件共享建議及其字典;翻譯也將自動傳播到單個項目中的所有組件(除非在組件配置中關閉),請參見 翻譯記憶

也參考

與 Weblate 集成

這些基本屬性被新建並通知翻譯人員項目:

專案名稱

詳細的項目名稱,用於顯示項目名稱。

URL slug

適用於 URL 的項目名稱。

專案網站

譯者可以在其中找到有關該項目的更多信息的 URL。

這是必需參數,除非關閉:設置:websents_required

翻譯指示

Text describing localization process in the project, and any other information useful for translators. Markdown can be used for text formatting or inserting links.

設定「Language-Team」檔案標頭

Weblate 是否應管理 Language-Team 頭(目前這是僅 GNU gettext 功能)。

使用共享的翻譯記憶

是否使用共享翻譯記憶庫,有關更多詳細信息,請參見 共享的翻譯記憶

The default value can be changed by DEFAULT_SHARED_TM.

貢獻至共享翻譯記憶

是否貢獻到共享翻譯記憶庫,請參閱 共享的翻譯記憶 以獲取更多詳細信息。

The default value can be changed by DEFAULT_SHARED_TM.

存取控制

配置每個項目的訪問控制,請參閱 專案存取控制 以獲取更多詳細信息。

可以透過 DEFAULT_ACCESS_CONTROL 修改預設值。

啟用檢閱

允許复核翻譯的工作流程,請參見 專門的審核者

啟用來源檢閱

啟用審核來源字串的工作流程,參閱 源字符串複查

啟用掛勾

是否將未經身份驗證的 通知掛勾 用於此倉庫。

語言別名

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

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

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

使用非標準編碼:ia_FOO:ia

提示

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

組件配置

組件是用於翻譯的內容的分組。您輸入版本控制系統(VCS)倉庫位置和想要翻譯那個文件的掩碼,Weblate 會自動地從 這個版本控制系統(VCS)中取回,並找到所有匹配的翻譯文件。

也參考

與 Weblate 集成

您可以在 支持的文件格式 中找到一些典型配置的例子。

備註

It is recommended to keep translation components to a reasonable size - split the translation by anything that makes sense in your case (individual apps or add-ons, book chapters or websites).

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

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

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

組件名稱

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

組件標識串

適用於 URLs 的組件名稱。

組件項目

組件所屬的 項目配置

版本控制系統

使用的版本控制系統(VCS),細節請參見: 版本控制整合

源始碼儲存庫

版本控制系統(VCS)倉庫,用於拉取更改。

也參考

指定 URLs 的更多細節請參見 訪問存儲庫

提示

這可以或者是真實的版本控制系統(VCS)的 URL, 或者是 weblate://project/component,指示了倉庫應該與其它組件分享。更多細節請參見 Weblate internal URLs

儲存庫推送 URL

用於推送的倉庫 URL。這個設置用於 GitMercurial,並且當這個空白時推送支持為這些關閉。

For linked repositories, this is not used and setting from linked component applies.

也參考

關於如何指定倉庫 URL 的更多細節請見 訪問存儲庫,並且關於從 Weblate 推送更改的更多細節,請參見 推送 Weblate 的更改

儲存庫瀏覽器

用於顯示源文件(已使用消息的位置)倉庫瀏覽器的的 URL。當空白時將不生成這樣的連接。您可以使用 模板標記

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

In case your paths are relative to different folder (path contains ..), you might want to strip leading directory by parentdir filter (see 模板標記): https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}

已匯出儲存庫 URL

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

儲存庫分支

從版本控制系統(VCS)核實哪個分支,以及從哪裡尋找翻譯。

For linked repositories, this is not used and setting from linked component applies.

推送分支

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

For linked repositories, this is not used and setting from linked component applies.

備註

此功能目前只支持Git、GitLab和GitHub,無法在其他VCS集成中工作。

文件掩碼

要翻譯的文件的掩碼,包括路徑。它應包含一個“*”替換語言代碼(有關處理方式的信息,請參閱 語言定義)。如果您的倉庫包含多個翻譯文件(例如,多個 gettext 域),則您需要為每個文件創建一個組件。

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

如果文件名包含特殊字符(例如``[]``),則需要將這些特殊字符轉義為 [[][]]

單語的基底語言檔

包含字符串定義的譯文模板文件,用於 單語言組件

編輯基底檔

對於 單語言組件 是否允許編輯譯文模板文件。

中間語言檔案

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

When set, the source strings are based on this file, but all other languages are based on 單語的基底語言檔. In case the string is not translated into the source language, translating to other languages is prohibited. This provides 源字符串的質量網關.

新翻譯的模板

用於生成新翻譯的譯文模板文件,例如 gettext 的 .pot 文件。

提示

In many monolingual formats Weblate starts with empty file by default. Use this in case you want to have all strings present with empty value when creating new translation.

也參考

:ref:添加翻譯』,:ref:`new-translations,:ref:component-new_lang,:ref:bimono`,:ref:faq-duplicate-files

檔案格式

翻譯文件格式,還請參見 支持的文件格式

來源字串臭蟲回報位址

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

允許翻譯再用

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

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

默認值可以通過 DEFAULT_TRANSLATION_PROPAGATION 來更改。

啟用建議

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

建議投票

為建議打開投票,請參見 建議投票

自動接受建議

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

翻譯旗標

質量檢查和其他 Weblate 行為的定制,請參見 使用標誌自定義行為

強制查核

檢查哪個不能被忽視的列表,請參見 強制檢查

備註

執行檢查不會自動啟用它,您仍然應該使用:REF:“自定義檢查”:REF:“Component-Check_Flags`或:Ref:”其他“。

翻譯授權條款

翻譯的許可(不需要與源代碼的許可相同)。

貢獻者協議書

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

加入新翻譯

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

聯絡維護者

用戶可以選擇所需的語言,項目維護者將收到有關該語言的通知。由他們決定是否向倉庫添加(或不添加)語言。

指向翻譯指示 URL

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

建立新語言檔

用戶可以選擇語言,然後 Weblate 會自動為其新建文件並開始翻譯。

停用加入新翻譯

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

提示

項目管理員可以添加新的翻譯,即使它是可能的(:參考:Ref:`Component-New_base`或從空文件開始的文件格式支持)。

管理字串

在 4.5 版本新加入.

配置WebLate中的用戶是否將被允許添加新字符串並刪除現有字符串。調整此項以匹配您的本地化工作流程 - 如何介紹新字符串。

對於雙語格式,通常從源代碼中提取字符串(例如,通過使用:程序:xgettext)並禁用Web2中添加新字符串(在下次更新翻譯文件時將被丟棄)。在WebLate中,您可以為每個翻譯管理字符串,並且它不會在所有翻譯中強制執行字符串。

對於單晶格式,字符串僅在源語言上管理,並在翻譯中自動添加或刪除。一旦翻譯,字符串會在翻譯文件中出現。

語言代碼類型

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

合併類型

You can configure how updates from the upstream repository are handled. The actual implementation depends on VCS, see 版本控制整合.

衍合

Rebases Weblate commits on top of upstream repository on update. This provides clean history without extra merge commits.

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

You might need to enable force pushing by choosing Git 使用強制推送 as 版本控制系統, especially when pushing to a different branch.

合併

Upstream repository changes are merged into Weblate one. This setting utilizes fast-forward when possible. This is the safest way, but might produce a lot of merge commits.

不快轉合併

Upstream repository changes are merged into Weblate one with doing a merge commit every time (even when fast-forward would be possible). Every Weblate change will appear as a merge commit in Weblate repository.

默認值可以由 :setting:`DEFAULT_MERGE_STYLE`更改。

Commit, add, delete, merge, add-on, and merge request messages

當提交翻譯時使用的消息,請參見 模板標記

Default value can be changed by DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE, DEFAULT_PULL_MESSAGE.

提交時一併推送

是否自動推送已提交的項目到上游倉庫。啟用時,當 Weblate 將更改提交到其基礎存儲庫中,就會啟動推送。(請參見 簡易提交)。為了能真正啟用推送功能,需配置 Repository push URL

更動後提交的經過時間

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

默認值可以由 COMMIT_PENDING_HOURS 更改。

提示

有其他情況可能會提交掛起的更改,請參閱:REF:“懶惰提交”。

有錯誤時鎖定

鎖定組件 (及關聯的組件,見:ref:internal-urls ),觸發條件是第一個失敗的推送,合併到其上游存儲庫,或從中拉出。這樣可以避免添加其他衝突,這些衝突必須手動解決。

一旦倉庫沒有故障留下來了,組件將會自動解鎖。

來源語言

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

提示

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

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

語言篩選

Regular expression used to filter the translation when scanning for file mask. It can be used to limit the list of languages managed by Weblate.

備註

單出現在文件名中時,您需要列出語言代碼。

過濾的一些例子:

過濾器的描述

正則表達式

Selected languages only

^(cs|de|es)$

排除的語言

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

只篩選兩個字母的代碼

^..$

排除非語言文件

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

包括所有文件(默認)

^[^.]+$

變體的正則表達式

用於確定字符串變體的正則表達式,請見 字符串變量

備註

Most of the fields can be edited by project owners or administrators, in the Weblate interface.

優先度

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

在 4.15 版本變更: This now also affects ordering of matched glossary terms.

受限制的訪問

組件默認對訪問項目的任何人都可見,即使不能在組件中進行任何更改。這會容易地使翻譯在項目內保持一致。

無論項目級別權限如何,限制組件的訪問或組件列表級別將接管到組件的訪問權限。您必須明確授予對其的訪問權限。這可以通過授予對新用戶組的訪問並將用戶放入其中,或使用默認的“自定義”或“私有”訪問控制組。

默認設置可在 DEFAULT_RESTRICTED_COMPONENT 中更改。

提示

這也應用於項目管理員—請確認切換狀態後,您不會丟失對組件的訪問。

分享專案

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

備註

分享組件不更改其訪問控制。這樣做只是讓它在瀏覽其它項目時可見。用戶仍然需要訪問實際組件的權限來瀏覽或翻譯它。

當作詞彙表

在 4.5 版本新加入.

允許使用該組件作為術語表。您可以配置其列出方式,借助 詞彙表色彩

詞彙表將在以下所有項目中訪問:REF:“組件鏈接”。

建議啟用:參考:“組件 - Manage_Units”,以便為它們添加新單詞。

也參考

詞彙表

詞彙表色彩

顯示顏色,用於顯示單詞匹配時使用的詞彙表。

模板標記

Weblate 在需要提供文本的幾個地方使用簡單的標記語言。它基於 The Django template language,因此能夠非常強大。

當前它用在:

可以在組件模板中得到後面的變量:

{{ language_code }}

語言碼

{{ language_name }}

語言名稱

{{ component_name }}

組件名稱

{{ component_slug }}

組件標識串

{{ project_name }}

專案名稱

{{ project_slug }}

項目標識串

{{ url }}

翻譯 URL

{{ filename }}

翻譯檔名

{{ stats }}

翻譯統計數據,這具有進一步的屬性,示例如下。

{{ stats.all }}

Total strings count

{{ stats.fuzzy }}

需要審核的字串數量

{{ stats.fuzzy_percent }}

需要審核的字串數量百分比

{{ stats.translated }}

Translated strings count

{{ stats.translated_percent }}

Translated strings percent

{{ stats.allchecks }}

檢查失敗的字符串數量

{{ stats.allchecks_percent }}

檢查失敗的字符串百分比

{{ author }}

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

{{ addon_name }}

Name of currently executed add-on, available only in the add-on commit message.

後面的變量在倉庫瀏覽器或編輯器模板中可用:

{{branch}}

當前的分支

{{line}}

line in file

{{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 模板特性。

導入速度

取回版本控制系統(VCS)倉庫,並將翻譯導入 Weblate,依賴於您的翻譯的大小,這會是漫長的過程。這裡是一些提示:

優化配置

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

Check resource limits

如果導入巨大的翻譯或倉庫,您會遭到服務器資源限制的打擊。

  • 檢查空閒內存的量,通過操作系統來緩存翻譯,將極大地提高性能。

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

  • 另外的 CPU 核心會幫助提高後台任務的性能(請參見 使用 Celery 的後台任務)。

Disable unneeded checks

一些質量檢查可以使非常昂貴的,而如果不需要,在導入時省略可以節省一些時間。配置的信息請參見 CHECK_LIST

自動新建組件

In case your project has dozen of translation files (e.g. for different gettext domains, or parts of Android apps), you might want to import them automatically. This can either be achieved from the command-line by using import_project or import_json, or by installing the 組件探索 add-on.

To use the add-on, you first need to create a component for one translation file (choose the one that is the least likely to be renamed or removed in future), and install the add-on on this component.

對於管理命令,您需要新建包含所有組件的項目,然後運行 import_projectimport_json