Weblate のカスタマイズ¶
Django と Python を使用して拡張およびカスタマイズします。変更を上流に還元して、誰もが恩恵を受けられるようにしてください。これにより、あなたの保守コストが削減されます。Weblate に入ったコードは、内部インターフェイスの変更やコードのリファクタリング時に考慮されます。
ヒント
外観のカスタマイズ で Weblate の外観をカスタマイズすることもできます。
警告
内部インターフェイスもテンプレートも、安定した API とはいえません。インターフェイスまたはそのセマンティクスは予告なく変更されますので、アップグレードごとに独自のカスタマイズを見直してください。
参考
Python モジュールの作成¶
Python に慣れていない場合は、Python For Beginners を調べて、基本の説明とチュートリアルを参考にしてください。
(モジュールと呼ばれる)Python のカスタム コードを含むファイルを作成するには、それを格納する場所が必要です。システム パス(通常は /usr/lib/python3.12/site-packages/ など)か、インタプリタ検索パスに追加された Weblate ディレクトリのどちらかになります。
ヒント
When using Docker, you can place Python modules in
/app/data/python/ (see Docker コンテナのボリューム), so they can be loaded
by Weblate, for example from a settings override file.
カスタマイズしたものを適切な Python パッケージに変更すると、さらに良くなります。
パッケージ用のフォルダを作成する(weblate_customization を使用する)。
Within it, create a
pyproject.tomlfile to describe the package:[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 = []
Create a folder for the Python module:
src/weblate_customizationその中に
__init__.pyファイルを作成し、Python がモジュールをインポートできることを確認する。This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.
インストールが完了すると、モジュールは Weblate の設定から使用できるようになります(
weblate_customization.checks.FooCheckなど)。
出来上がったパッケージ構造:
weblate_customization
├── pyproject.toml
└── src
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
Weblate のカスタマイズ例は、<https://github.com/WeblateOrg/customize-example> にあります。ここでは、次に説明するすべてのトピックについて説明します。カスタマイズ例は、以下に説明するトピックをすべて網羅しています。
ロゴの変更¶
上書きしたい静的ファイルを含む単純な Django アプリケーションを作成します(参照: Python モジュールの作成)。
表示するロゴのファイル:
icons/weblate.svgナビゲーション バーに表示するロゴ。
logo-*.png画面の解像度と Web ブラウザーに応じた Web アイコン。
favicon.ico従来のブラウザーで使用する Web アイコン。
weblate-*.pngボットまたは匿名ユーザー用のアバター。一部の Web ブラウザーでは、これをショートカット アイコンとして使用する。
email-logo.png通知メールに使用する。
これを、
INSTALLED_APPSに追加する方法:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
weblate collectstatic --noinputを実行し、クライアントに提供する静的ファイルをまとめます。
Custom quality checks, add-ons, automatic suggestions and auto-fixes¶
To install your code for 自動修正のカスタマイズ, 独自の検査項目の作成, カスタム機械翻訳 or アドオンの作成 in Weblate:
Place the files into your Python module containing the Weblate customization (see Python モジュールの作成 or Customizing code).
Add its fully-qualified path to the Python class in the dedicated settings:
# 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",)