選擇性的 Weblate 模組

可以獲得幾個可選的模組來組態您的設定。

Git 導出器

使用 HTTP(S) 為您提供對底層 Git 倉儲的只讀存取。

安裝

  1. weblate.gitexport 新增到 settings.py 中安裝的 apps 中:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. 通過安裝後遷移資料庫,將現有的倉儲導出:

    weblate migrate
    

提示

Git exporter is turned on in our official Docker image. To turn it of, use:

WEBLATE_REMOVE_APPS=weblate.gitexport

使用

模組自動鉤入 Weblate,並且在 組件組態 中設定匯出儲存庫 URL。儲存庫在 Weblate URL 的 /git/ 部分下是可以存取的,例如 https://example.org/git/weblate/main/

公共可用項目的倉儲可以被克隆而無需認證:

git clone 'https://example.org/git/weblate/main/'

對儲存庫的受限制的存取(使用 Private 存取控制 或在 REQUIRE_LOGIN 處於啟用狀態時)需要一個 API 代符,取得位置在您的 :ref: user-profile <user-profile>:

git clone 'https://user:KEY@example.org/git/weblate/main/'

提示

成員或 Users 使用者組與匿名使用者預設通過 Access repositoryPower user 角色存取公開項目。

帳單

這用在 Hosted Weblate 上來確定付費套餐,跟踪收據和使用限制。

安裝

1. Add weblate.billing to installed apps in settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. 執行資料庫遷移,來可選地為模組安裝另外的資料庫結構:

weblate migrate

Billing plan creation and assignment

You first need to create a billing plan to activate billing. Navigate to the Administration section (represented by the wrench icon) and open the Tools screen. From there, proceed to the Django admin interface.

In the Django admin interface, locate the BILLING section and add a billing plan. For instance, you can add a Free plan with no cost.

If you wish to assign a billing plan to an existing project, this can also be done within the Django admin interface using the Customer billings option.

Lastly, the Django admin interface provides an Invoice option for logging your customer payments.

使用

安裝後您可以在管理界面控制帳單。允許了帳單的使用者將在他們的 使用者個人檔案 中得到新的 Billing 標籤。

帳單模組額外允許專案管理員在不是超級使用者的情況下去建立新的專案和組件(請參見 新增翻譯項目和組件)。當後面的條件滿足是這是可能的:

  • 帳單在其組態的限制下(任何過度的使用都會阻止新建項目/元件),並且被支付(如果價格為非零值的話)

  • 使用者是現有的帶有帳單項目的管理員,或者使用者是帳單的所有者(當為使用者新建新的帳單,而允許導入新的項目時,後者是必要的)。

在新建項目時,使用者在存取多個帳單的情況下,能夠選擇將項目記在哪個帳單上。

頭像

頭像在伺服器端下載並快取,來減少對預設服務的網站的洩露。通過為其組態的電子郵件地址來取回頭像的內建支援,可以使用 ENABLE_AVATARS 來關閉。

Weblate 目前支援:

針對垃圾郵件的保護

您可以免受使用者發送垃圾郵件的侵擾,方法是使用 Akismet 服務。

  1. 安裝 akismet Python 模組(這已包含在官方 Docker image 中)。

  2. 取得 Akismet API 金鑰。

  3. 將其儲存為:設定:akismet_api_key`或:envvar:`weblate_akismet_api_key in docker。

以下內容被發送到AkisMet進行檢查:

  • Suggestions from unauthenticated users

  • Project and component descriptions and links

備註

這(除了其它事情以外)相依於客戶端的 IP 地址,適當的組態請參見: 在反向代理後面執行

簽署 GnuPG 的 Git 承諾

所有的承諾可以由 Weblate 時間的 GnuPG 金鑰簽署。

1. Turn on WEBLATE_GPG_IDENTITY. (Weblate will generate a GnuPG key when needed and will use it to sign all translation commits.)

這個特性需要安裝 GnuPG 2.1 或更新版。

您可以在 DATA_DIR 中找到金鑰,而公鑰顯示在“關於”頁面上:

../_images/about-gpg.webp

2. Alternatively you can also import existing keys into Weblate, just set HOME=$DATA_DIR/home when invoking gpg.

提示

The key material is cached by Weblate for a long period. In case you let Weblate generate a key with WEBLATE_GPG_IDENTITY and then import key with the same identity to use an existing key, purging redis cache is recommended to see the effect of such change.

備註

When sharing DATA_DIR between multiple hosts, please follow instructions at https://wiki.gnupg.org/NFS to make GnuPG signing work reliably.

頻次限制

在 4.6 版的變更: 速率限制不再適用於超級使用者。

Weblate 的一些操作受到頻次限制。在 RATELIMIT_WINDOW 的秒數內最多允許 RATELIMIT_ATTEMPTS 次數的嘗試。然後阻止使用者 RATELIMIT_LOCKOUT 時間。還有指定範圍的設定,例如 RATELIMIT_CONTACT_ATTEMPTSRATELIMIT_TRANSLATE_ATTEMPTS。下面的表格是可用範圍的完整列表。

後面的操作受到頻次限制:

名稱

範圍

允許的嘗試

頻次限制窗口

鎖定時間

註冊

REGISTRATION

5

300

600

將消息發送給管理員

MESSAGE

2

300

600

Password authentication on sign in

LOGIN

5

300

600

網站範圍的搜尋

SEARCH

6

60

60

正在翻譯

TRANSLATE

30

60

600

Adding to glossary

GLOSSARY

30

60

600

Starting translation into a new language

LANGUAGE

2

300

600

Creating new project

PROJECT

5

600

600

If a user fails to sign in AUTH_LOCK_ATTEMPTS times, password authentication will be turned off on the account until having gone through the process of having its password reset.

這個設定也可被使用在 Docker 容器中,透過新增 WEBLATE_ 前綴字在設定名稱前。如: RATELIMIT_ATTEMPTS 可使用 WEBLATE_RATELIMIT_ATTEMPTS

API 具有另外的速率限制設定,請參見 API 頻次限制

Fedora Messaging integration

Fedora Messaging是基於AMQP的發佈者,用於Weberate中發生的所有變化。您可以在使用此操作中掛鉤正在發生的更改的其他服務。

Fedora Messaging Integration可作為單獨的Python模塊``weblate-fedora-messaging``。請參閱<https://github.com/weblateorg/fedora_messaging/>用於設定說明。