自訂 Weblate

使用 Django 和 Python 擴充與自訂。將您的變更貢獻給上游,使每人都能夠受益。這降低了您的維護成本; Weblate 中的代碼對變更內部介面或重構編碼時的情況。

提示

您也可以在 外觀自訂 中定製 Weblate 外觀。

警告

內部介面與範本都不被認為是穩定的 API。請每次升級都檢查您的定製,介面或其語義可能未經通知就進行變更。

建立 Python 模組

如果不熟悉 Python,您可以查看 Python For Beginners,它解釋了其基本內容並指向了進階教學。

要寫入有定製 Python 程式碼(被稱為模組)的檔案,需要一個地方儲存它,或者在系統路徑(通常像 /usr/lib/python3.12/site-packages/ 的地方),或者在 Weblate 目錄下,同樣也新增到解釋程式搜尋路徑下。

提示

使用 Docker 時,您可以將 Python 模組放在 /app/data/python/ 中(請參閱 Docker 容器儲存區),讓 Weblate 能夠載入這些模組,例如可透過 設定覆寫檔案 載入。

更好地是,將您的自訂轉換為適當的 Python 套件:

  1. 為您的套件建立資料夾(我們會使用 weblate_customization )。

  2. 在裡面建立 pyproject.toml 檔案來描述包:

    [build-system]
    requires = ["uv_build>=0.8.18,<0.9.0"]
    build-backend = "uv_build"
    
    [project]
    name = "weblate-customization"
    version = "0.1.0"
    description = "Add your description here"
    requires-python = ">=3.13"
    dependencies = []
    
  3. 為 Python 模組建立資料夾:src/weblate_customization

  4. 在裡面建立 __init__.py 檔案來確認 Python 可以匯入模組。

  5. 現在可以使用 uv pip install -e 安裝這個包。可以在 Editable packages documentation 中找到更多資訊。

  6. 模組一旦安裝,就可以用在 Weblate 設定中(例如 weblate_customization.checks.FooCheck )。

您的套件結構應該看起來像這樣:

weblate_customization
├── pyproject.toml
└── src
    └── weblate_customization
        ├── __init__.py
        ├── addons.py
        └── checks.py

可以在 <https://github.com/WeblateOrg/customize-example> 找到自訂 Weblate 的範例,它涵蓋了下面描述的所有主題。

自訂的品質檢查、附加元件與自動修復

要在 Weblate 中安裝您的 自訂自動修復撰寫自訂檢查自訂機器翻譯編寫附加元件 程式碼:

  1. 將檔案放進包含 Weblate 定製的 Python 模組中(見 建立 Python 模組自訂程式碼)。

  2. 在專用設定中將其完全合格的路徑新增到 Python 類中:

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)

# Automatic suggestions
WEBLATE_MACHINERY += ("weblate_customization.machinery.SampleTranslation",)