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 framework 的 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已知自動翻譯任務會花很長時間,因為要存取數個外部服務。