Internal Weblate¶
Catatan
Bab ini akan memberi Anda ikhtisar dasar tentang internal Weblate.
Weblate memperoleh sebagian besar struktur kodenya dari, dan didasarkan pada Django.
Struktur direktori¶
Ikhtisar cepat struktur direktori repositori utama Weblate:
docsKode sumber untuk dokumentasi ini, yang dapat dibangun menggunakan Sphinx.
dev-dockerKode Docker untuk menjalankan server pengembangan, lihat Menjalankan Weblate secara lokal di Docker.
weblateKode sumber Weblate sebagai aplikasi Django, lihat Internal Weblate.
weblate/staticBerkas klien (CSS, Javascript dan gambar), lihat Frontend Weblate.
Modul¶
Weblate terdiri dari beberapa aplikasi Django (beberapa opsional, lihat Modul Weblate opsional):
accounts
Akun pengguna, profil dan notifikasi.
addons
Pengaya untuk mengubah perilaku Weblate, lihat Pengaya.
api
API berdasarkan kerangka Django REST.
auth
Autentikasi dan izin.
billing
Modul Penagihan opsional.
checks
String terjemahan modul Pemeriksaan kualitas.
fonts
Modul pemeriksaan rendering huruf.
formats
Lapisan abstraksi format berkas berdasarkan translate-toolkit.
gitexport
Modul Eksportir Git opsional.
lang
Modul yang mendefinisikan bahasa dan model jamak.
legal
Modul Modul hukum opsional.
machinery
Integrasi layanan terjemahan mesin.
memory
Memori terjemahan bawaan, lihat Memori Terjemahan.
screenshots
Pengelolaan tangkapan layar dan modul OCR.
trans
Modul utama yang menangani terjemahan.
utils
Berbagai utilitas pembantu.
vcs
Abstraksi sistem kontrol versi.
wladmin
Penyesuaian antarmuka admin Django.
Tugas latar belakang internal¶
Petunjuk
Bagian ini menjelaskan internal tugas Celery. Tugas latar belakang menggunakan Celery menjelaskan cara mengkonfigurasikan Celery untuk menjalankan tugas.
Weblate menggunakan Celery untuk menjalankan tugas di latar belakang. Beberapa tugas dipicu oleh peristiwa, dan beberapa tugas dipicu oleh jadwal.
Celery Beat digunakan untuk menjadwalkan tugas, dan django-celery-beat digunakan untuk menyimpan jadwal tugas berkala dalam basis data. Jadwal tugas dikonfigurasikan dalam tasks.py di setiap aplikasi Django.
Tugas tersebut diproses menggunakan beberapa antrean; peruteannya dikonfigurasi di settings.py. Antrian dirancang untuk memisahkan berbagai jenis beban kerja:
celeryAntrian bawaan tempat tugas latar belakang diproses.
notifyMengirimkan surel notifikasi, baik untuk peristiwa di Weblate maupun untuk autentikasi atau pendaftaran. Ini adalah antrian terpisah untuk memperlancar pengiriman surel meskipun ada tugas lain yang tertunda.
memoryMemperbarui entri memori terjemahan. Antrian pembaruan bisa panjang saat mengimpor string baru, dan pemrosesan yang lama tidak terlalu berpengaruh di sini, sehingga memiliki antrian terpisah menghindari pemblokiran tugas lain.
backupTugas pencadangan tidak dapat dijalankan secara paralel, dan satu pekerja khusus akan mempermudahnya.
translateTugas terjemahan otomatis diketahui memakan waktu lama karena melibatkan layanan eksternal.