Weblate 内部¶
备注
这一章将给出 Weblate 内部的基本概况。
Weblate 从 Django 得到其多数代码架构,并基于它。
目录结构¶
Weblate 主仓库目录结构的速览:
docs本文档的源码,可使用 Sphinx 来构建。
dev-docker运行开发服务器的 Docker 代码,请参见 在 Docker 中本地运行 Weblate。
weblateWeblate 作为 Django 应用程序的源代码,请参见 Weblate 内部。
weblate/static客户端文件(CSS、Javascript 和图片),请参见 Weblate 前端。
模块¶
Weblate 包括几个 Django 应用(一些是可选的,请参见 可选的 Weblate 模块):
accounts
用户账户、简介和通知。
addons
微调 Weblate 行为的附加组件,请参见 附加组件。
api
基于 Django REST 框架 的 API。
auth
认证和权限。
billing
可选的 账单 模块。
checks
翻译字符串 质量检查 模块。
fonts
字体渲染检查模块。
formats
基于 translate-toolkit 的文件格式抽象层。
gitexport
可选的 Git 导出器 模块。
lang
定义语言和复数模型的模块。
legal
可选的 法律组件 模块。
machinery
机器翻译服务的集成。
memory
内置的翻译记忆库,请参见 翻译记忆库。
screenshots
屏幕截图管理与 OCR 模块。
trans
处理翻译的主模块。
utils
各种帮助功能。
vcs
版本控制系统抽象概念。
wladmin
Django 管理界面定制。
后台任务间隔¶
提示
此部分描述 Celery 任务内部情况。使用 Celery 的后台任务 描述如何配置 Celery 来运行这些任务。
Weblate 使用 Celery 在后台执行任务。一些任务由事件触发,而一些任务由计划触发。
Celery Beat 用于安排任务时间,django-celery-beat 用来在数据库中保存定期的任务计划。在每一个 Django 应用中,任务计划在 tasks.py 中进行配置。
使用数个队列运行任务;在 settings.py 中配置路由。队列被设计为隔开不同种类的工作负担:
celery处理后台任务的默认队列。
notify传送 Weblate 内事件及身份认证或注册的通知邮件。这是个单独队列以让邮件顺利传送,即使积压了其他任务。
memory更新翻译记忆库条目。导入新字符串时更新队列可能较长,漫长的处理在这里不是十分重要,因此单独队列避免拦截其他任务。
backup备份任务无法并行处理,单一的专门在worker 让备份更轻松。
translate已知自动翻译任务会花很长时间,因为要访问数个外部服务。