为 Weblate 模块作贡献
除了主仓库之外Weblate 还包含几个 Python 模块,所有这些都遵循相同的结构本文档涵盖了所有这些。
例如,这涵盖了:
wlc,Python 客户端库,请参阅 Weblate 客户端
translation-finder 用于发现仓库中的可翻译文件
language-data,Weblate 的语言定义,请参见 语言定义
代码编写准则
在为 Weblate 编写任何代码时都应该考虑到 通过设计保证安全原则。
任何代码都应附带解释行为的文档。不要忘记记录方法、复杂的代码块或用户可见的功能。
任何新代码都应使用 PEP 484 类型提示。我们尚未在 CI 中检查此项,因为现有代码尚未包含它们。
运行测试
测试使用:program:`py.test`执行,首先你需要安装测试需求:
pip install -r requirements-test.txt
然后您可以在仓库签出中执行测试套件:
py.test
参见
CI 集成与 Weblate 测试套件与持续集成 非常相似。
编码标准和代码检查
代码应该遵循 PEP-8 代码编写准则,并且应该使用 black 代码格式化程序进行代码格式化。
为了检查代码质量,可以使用 flake8,推荐的插件列在 .pre-commit-config.yaml
中,而其配置放置在 setup.cfg
中。
将所有这些强制的最简单的方法是安装 pre-commit。仓库为此包含了配置,来确定提交的文件是正常的。安装后(他已经包括在 requirements-lint.txt
中了)通过在 Weblate 的付款台运行 pre-commit install
来将它打开。通过这种方法,所有更改都将被自动检查。
还能够手动触发检查,来检查所有文件的运行:
pre-commit run --all
参见