Weblate のカスタマイズ

Django と Python を使用して拡張およびカスタマイズします。変更を上流に投稿して、誰もが恩恵を受けられるようにします。これにより、保守コストが削減されます。Weblate のコードは、内部インターフェイスの変更やコードの再構築時に処理されます。

警告

内部インターフェイスもテンプレートも、安定した API と判断できません。アップグレードごとに独自のカスタマイズを調査してください、インターフェイスまたはそのセマンティクスは予告なく変更されます。

Python モジュールの作成

Python に慣れていない場合は、Python For Beginners を調べて、基本の説明とチュートリアルを参考にしてください。

(モジュールと呼ばれる)Python のカスタム コードを書くには、それを格納する場所が必要です。システム パス(通常は /usr/lib/python3.7/site-packages/ など)か、インタプリタ検索パスに追加された Weblate ディレクトリのどちらかになります。

カスタマイズしたものを適切な Python パッケージに変更すると、さらに良くなります。

  1. パッケージ用のフォルダを作成する(weblate_customization を使用する)。

  2. その中に、パッケージを記述するための 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"],
    )
    
  3. カスタマイズ コード用の Python モジュール(``weblate_customization``とも呼ばれる)用のフォルダーを作成する。

  4. その中に __init__.py ファイルを作成し、Python がモジュールをインポートできることを確認する。

  5. このパッケージは、pip install -e を使用してインストールできるようになりました。詳細については、Editable installs を確認してください。

  6. インストールが完了すると、モジュールは Weblate の設定から使用できるようになります(weblate_customization.checks.FooCheck など)。

完成したモジュール構造:

weblate_customization
├── setup.py
└── weblate_customization
    ├── __init__.py
    ├── addons.py
    └── checks.py

Weblate のカスタマイズ例は、<https://github.com/WeblateOrg/customize-example> にあります。ここでは、次に説明するすべてのトピックについて説明します。カスタマイズ例は、以下に説明するトピックをすべて網羅しています。

品質検査、アドオン、自動修正のカスタマイズ

自動修正のカスタマイズ独自の検査項目の作成、または アドオンの作成 のコードを Weblate にインストールする方法:

  1. Weblate のカスタマイズを含む、Python モジュール内にファイルを置く(参照: Python モジュールの作成)。

  2. Python クラスへの完全修飾パスを専用設定に追加する(WEBLATE_ADDONSCHECK_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",)