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:

docs

Kode sumber untuk dokumentasi ini, yang dapat dibangun menggunakan Sphinx.

dev-docker

Kode Docker untuk menjalankan server pengembangan, lihat Menjalankan Weblate secara lokal di Docker.

weblate

Kode sumber Weblate sebagai aplikasi Django, lihat Internal Weblate.

weblate/static

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

celery

Antrian bawaan tempat tugas latar belakang diproses.

notify

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

memory

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

backup

Tugas pencadangan tidak dapat dijalankan secara paralel, dan satu pekerja khusus akan mempermudahnya.

translate

Tugas terjemahan otomatis diketahui memakan waktu lama karena melibatkan layanan eksternal.