Weblate のカスタマイズ
Django と Python を使用して拡張およびカスタマイズします。変更を上流に投稿して、誰もが恩恵を受けられるようにします。これにより、保守コストが削減されます。Weblate のコードは、内部インターフェイスの変更やコードの再構築時に処理されます。
警告
内部インターフェイスもテンプレートも、安定した API と判断できません。アップグレードごとに独自のカスタマイズを調査してください、インターフェイスまたはそのセマンティクスは予告なく変更されます。
参考
Python モジュールの作成
Python に慣れていない場合は、Python For Beginners を調べて、基本の説明とチュートリアルを参考にしてください。
(モジュールと呼ばれる)Python のカスタム コードを書くには、それを格納する場所が必要です。システム パス(通常は /usr/lib/python3.9/site-packages/
など)か、インタプリタ検索パスに追加された Weblate ディレクトリのどちらかになります。
カスタマイズしたものを適切な Python パッケージに変更すると、さらに良くなります。
パッケージ用のフォルダを作成する(weblate_customization を使用する)。
その中に、パッケージを記述するための
setup.py
ファイルを作成する。作成方法:from setuptools import setup setup( name="weblate_customization", version="0.0.1", author="Your name", author_email="yourname@example.com", description="Sample Custom check for Weblate.", license="GPLv3+", keywords="Weblate check example", packages=["weblate_customization"], )
カスタマイズ コード用の Python モジュール(``weblate_customization``とも呼ばれる)用のフォルダーを作成する。
その中に
__init__.py
ファイルを作成し、Python がモジュールをインポートできることを確認する。このパッケージは、pip install -e を使用してインストールできるようになりました。詳細については、Editable installs を確認してください。
インストールが完了すると、モジュールは Weblate の設定から使用できるようになります(
weblate_customization.checks.FooCheck
など)。
完成したモジュール構造:
weblate_customization
├── setup.py
└── 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
を実行し、クライアントに提供する静的ファイルをまとめます。
品質検査、アドオン、自動修正のカスタマイズ
自動修正のカスタマイズ、独自の検査項目の作成、または アドオンの作成 のコードを Weblate にインストールする方法:
Weblate のカスタマイズを含む、Python モジュール内にファイルを置く(参照: Python モジュールの作成)。
Python クラスへの完全修飾パスを専用設定に追加する(
WEBLATE_ADDONS
、CHECK_LIST
またはAUTOFIX_LIST
):
# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)
# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)
# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)