Weblate iç yapısı¶
Not
Bu bölüm size Weblate iç yapısına temel bir genel bakış sunar.
Weblate, kod yapısının çoğu Django temelinden türetilmiştir.
Klasör yapısı¶
Weblate ana deposunun klasör yapısına hızlı bir bakış:
docsBu belgelerin Sphinx kullanılarak oluşturulabilen kaynak kodu.
dev-dockerGeliştirme sunucusunu çalıştırmak için Docker kodu. Ayrıntılı bilgi almak için: Weblate platformunu Docker üzerinde yerel olarak çalıştırma.
weblateBir Django uygulaması olarak Weblate kaynak kodu. Ayrıntılı bilgi almak için: Weblate iç yapısı.
weblate/staticİstemci dosyaları (CSS, JavaScript ve görseller). Ayrıntılı bilgi almak için: Weblate ön yüzü.
Modüller¶
Weblate birkaç Django uygulamasından oluşur (bazıları isteğe bağlıdır. Ayrıntılı bilgi almak için: İsteğe bağlı Weblate modülleri):
accounts
Kullanıcı hesabı, profiller ve bildirimler.
addons
Weblate davranışını değiştiren eklentiler. Ayrıntılı bilgi almak için: Eklentiler.
api
Django REST çatısı üzerine geliştirilmiş API.
auth
Kimlik doğrulama ve izinler.
billing
İsteğe bağlı Faturalama modülü.
checks
Çeviri dizgesi Kalite denetimleri modülü.
fonts
Yazı tipi görüntüleme denetimleri modülü.
formats
Tranlate-toolkit temelli dosya biçimi soyutlama katmanı.
gitexport
İsteğe bağlı Git dışa aktarıcı modülü.
lang
Dil ve çoğul modelleri tanımlayan modül.
legal
İsteğe bağlı Yasal konular modülü modülü.
machinery
Makine çevirisi hizmetleri bütünleştirmesi.
memory
İç çeviri belleği, bkz: Çeviri Belleği.
screenshots
Ekran görüntüsü yönetimi ve optik karakter tanıma (OCR) modülü.
trans
Çevirileri işleyen ana modül.
utils
Çeşitli yardımcı programlar.
vcs
Sürüm denetimi sistemi soyutlaması.
wladmin
Django yönetim arayüzü özelleştirmesi.
Arka plan görevlerinin iç yapısı¶
İpucu
Bu bölümde Celery görevlerinin iç yapısı anlatılmaktadır. Celery ile arka plan görevlerini kullanmak bölümünde görevleri çalıştırmak için Celery yapılandırmasının nasıl olacağı anlatılmaktadır.
Weblate, arka planda görevleri yürütmek için Celery kullanır. Bazı görevler olay tetiklemeli, bazı görevler ise zamanlama tetiklemelidir.
Görevleri zamanlamak için Celery Beat kullanılır ve düzenli görev programını veri tabanında tutmak için django-celery-beat kullanılır. Görev tablosu, Django uygulamalarının her birinde tasks.py içinden yapılandırılır.
Görevler birkaç kuyruk kullanılarak tüketilir; yönlendirme settings.py dosyasında yapılandırılır. Kuyruklar, farklı iş yükü türlerini ayırmak için tasarlanmıştır:
celeryArka plan görevlerinin işlendiği varsayılan kuyruk.
notifyHem Weblate içindeki etkinliklerin hem de kimlik doğrulama veya hesap açılışı bildirimlerinin e-postalarını gönderir. Bu kuyruk, diğer görevlerin birikmesi durumunda bile e-posta dağıtımının sorunsuz yapılması için ayrıdır.
memoryÇeviri belleği kayıtlarını günceller. Yeni dizgeler içe aktarılırken güncelleme kuyruğu uzun olabilir ve uzun işlem süresi burada çok önemli değildir. Bu nedenle ayrı bir kuyruk kullanılması diğer görevlerin engellenmesini önler.
backupYedekleme görevleri paralel olarak yürütülemez ve bu işe ayrılmış bir özel işlem bunu kolaylaştırır.
translateDış hizmetleri kullandıklarından, otomatik çeviri görevlerinin uzun sürdüğü biliniyor.