為 Weblate 模組作出貢獻¶
Besides the main repository, Weblate consists of several Python modules. All these follow same structure and this documentation covers them all.
For example, this covers:
wlc, Python client library, see Weblate 客戶端
translation-finder, used to discover translatable files in the repository
language-data, language definitions for Weblate, see 語言定義
Coding guidelines¶
編寫 Weblate 的任何代碼應該時刻記得 `Security by Design Principles`_(由設計原理來提供安全性)。
Any code should come with documentation explaining the behavior. Don't forget documenting methods, complex code blocks, or user visible features.
Any new code should utilize PEP 484 type hints. We're not checking this in our CI yet as existing code does not yet include them.
Git commits should follow Conventional Commits specification.
測試執行中¶
The tests are executed using py.test. First you need to install test requirements:
uv pip install -e '.[dev]'
You can then execute the testsuite in the repository checkout:
py.test
也參考
The CI integration is very similar to Weblate 測試套件與連續整合.
Coding standard and linting the code¶
The code should follow PEP-8 coding guidelines and should be formatted using ruff code formatter.
To check the code quality, you can use ruff, its configuration is
stored in pyproject.toml
.
The easiest approach to enforce all this is to install pre-commit. The
repository contains configuration for it to verify the committed files are sane.
After installing it (it is already included in the
pyproject.toml
) turn it on by running pre-commit install
in
Weblate checkout. This way all your changes will be automatically checked.
還能夠手動觸發檢查,來檢查所有文件的執行:
pre-commit run --all
也參考