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ış:

docs

Bu belgelerin Sphinx kullanılarak oluşturulabilen kaynak kodu.

dev-docker

Geliş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.

weblate

Bir 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:

celery

Arka plan görevlerinin işlendiği varsayılan kuyruk.

notify

Hem 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.

backup

Yedekleme görevleri paralel olarak yürütülemez ve bu işe ayrılmış bir özel işlem bunu kolaylaştırır.

translate

Dış hizmetleri kullandıklarından, otomatik çeviri görevlerinin uzun sürdüğü biliniyor.