定制 Weblate¶
使用 Django 和 Python 扩展与定制。将你的更改贡献给上游,使每人都能够受益。这降低了你的维护成本; Weblate 中的代码对更改内部界面或重构编码时的情况。
警告
内部界面与模板都不被认为是稳定的 API 。请对每次升级都复查自己的定制,接口或其语义可能未经通知就进行更改。
建立 Python 模块¶
如果不熟悉 Python ,你可以查看 Python For Beginners ,它解释了其基本内容并指向了高级教程。
为了写出一些定制 Python 代码(被称为模块),需要一个地方进行存储,或者在系统路径(通常像 /usr/lib/python3.7/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 中找到。
模块一旦安装,就可以用在 Webalte 配置中(例如
weblate_customization.checks.FooCheck
)。
你的模块结构应该看起来像这样:
weblate_customization
├── setup.py
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
可以在 <https://github.com/WeblateOrg/customize-example> 找到定制 Weblate 的例子,它涵盖了下面描述的所有题目。
更改 Logo¶
建立简单的 Django app 来包含想要覆盖的静态文件(请参见 建立 Python 模块 )。
品牌出现在后面的文件中:
icons/weblate.svg
导航条中显示的 Logo 。
logo-*.png
根据屏幕分辨率和 web 浏览器的 Web 图标。
favicon.ico
传统浏览器使用的 Web 图标。
weblate-*.png
机器人或匿名用户使用的头像。一些 Web 浏览器 使用这些作为快捷图标。
email-logo.png
在通知电子邮件中使用。
把它添加到:setting:django:INSTALLED_APPS:
INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
运行
weblate collectstatic --noinput
,来收集提供给客户端的静态文件。
定制的质量检查、插件和自动修复¶
要在 Weblate 中安装你的 定制的自动修正,编写自己的检查 或 编写附加组件 代码:
将文件放进你的包含 Weblate 定制的 Python 模块中(请参见 建立 Python 模块 )。
在专用设置(
WEBLATE_ADDONS
、CHECK_LIST
或AUTOFIX_LIST
)中将其完全合法的路径添加到 Python 类中:
# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)
# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)
# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)