Weblate 內部

備註

這一章將給出 Weblate 內部的基本概覽。

Weblate 從 Django 得到其多數代碼架構,並基於它。

目錄結構

Weblate 主儲存庫目錄結構的快速概覽:

docs

本文件的原始碼,可使用 Sphinx 來建置。

dev-docker

執行開發伺服器的 Docker 代碼,請參閱 在 Docker 中本機執行 Weblate

weblate

Weblate 的原始碼作為 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

已知自動翻譯任務會花很長時間,因為要存取數個外部服務。