Pengaya¶
Pengaya menyediakan cara untuk menyesuaikan dan mengotomatisasikan alur kerja terjemahan. Admin dapat menambahkan dan mengelola pengaya dari menu Operasi ↓ Pengaya di setiap proyek atau komponen terjemahan. Pengaya juga dapat dipasang di seluruh situs melalui Antarmuka pengelolaan.
Petunjuk
Anda juga dapat mengkonfigurasikan pengaya menggunakan API, DEFAULT_ADDONS, atau install_addon.
Add-ons that opt in to manual triggering can be run from add-on management or using the API. Results are recorded in the add-on activity log.
Peristiwa yang memicu pengaya¶
Pemasangan pengaya¶
Dipicu saat pengaya sedang dipasang.
Pembaruan komponen¶
Dipicu jika terjadi perubahan pada komponen seperti:
String diubah dalam repositori.
String ditambahkan.
Terjemahan baru ditambahkan.
Harian¶
Dipicu harian, tetapi pengaya biasanya membagi beban harian antar komponen tergantung pada BACKGROUND_TASKS.
Perubahan peristiwa¶
Dipicu setelah peristiwa Perubahan dibuat.
Manual trigger¶
Triggered when an add-on is run manually from add-on management or the API.
Pasca-penambahan repositori¶
Dipicu tepat setelah terjemahan baru ditambahkan dan dikomit.
Pasca-pengkomitan repositori¶
Dipicu tepat setelah perubahan dikomit.
Pasca-pendorongan repositori¶
Dipicu tepat setelah repositori didorong ke hulu.
Repository post-remove¶
Triggered just after a translation is removed.
Pasca-pembaruan repositori¶
Dipicu jika perubahan baru ditarik dari repositori hulu.
Pra-pengkomitan repositori¶
Dipicu tepat sebelum perubahan dikomit.
Pra-pendorongan repositori¶
Dipicu tepat sebelum repositori didorong ke hulu.
Pra-pembaruan repositori¶
Dipicu tepat sebelum pembaruan repositori dicoba.
Pasca-penyimpanan unit¶
Dipicu tepat setelah string disimpan.
Pasca-penyinkronan unit¶
Dipicu setelah string disinkronkan dengan VCS.
Pra-pembuatan unit¶
Dipicu tepat setelah string yang baru dibuat disimpan.
Pengaya bawaan¶
Terjemahan otomatis¶
- ID pengaya:
weblate.autotranslate.autotranslate- Konfigurasi:
modeMode terjemahan otomatis
Pilihan yang tersedia:¶ suggestTambahkan sebagai saran
translateTambahkan sebagai terjemahan
fuzzyTambahkan sebagai "Perlu disunting"
qKueri
Harap perhatikan bahwa menerjemahkan semua string akan membuang semua terjemahan yang ada.
auto_sourceSumber terjemahan otomatis
Pilihan yang tersedia:¶ othersKomponen terjemahan lainnya
mtTerjemahan mesin
componentKomponen
Masukkan slug komponen untuk digunakan sebagai sumber, kosongkan untuk menggunakan semua komponen dalam proyek saat ini.
enginesMesin terjemahan mesin
thresholdAmbang batas skor
- Pemicu:
Pemasangan pengaya, Pembaruan komponen, Harian, Perubahan peristiwa
Terjemahkan string secara otomatis menggunakan mesin terjemahan maupun komponen lainnya.
CDN lokalisasi JavaScript¶
Added in version 4.2.
- ID pengaya:
weblate.cdn.cdnjs- Konfigurasi:
thresholdAmbang batas terjemahan
Persentase string yang diterjemahkan yang harus tersedia dalam terjemahan yang disertakan.
css_selectorPemilih CSS
Pemilih CSS untuk mendeteksi elemen yang dapat dilokalisasikan.
cookie_nameNama kuki bahasa
Nama kuki yang menyimpan preferensi bahasa.
filesEkstrak string dari berkas HTML
Daftar nama berkas dalam repositori saat ini atau URL jarak jauh yang akan diuraikan untuk string yang dapat diterjemahkan.
- Pemicu:
Pemasangan pengaya, Harian, Pasca-pengkomitan repositori, Pasca-pembaruan repositori
Kirim terjemahan ke jaringan pengiriman konten untuk digunakan di lokalisasi JavaScript atau HTML.
Dapat digunakan untuk melokalisasikan halaman HTML statis atau untuk memuat lokalisasi dalam kode JavaScript.
Menghasilkan URL unik untuk komponen Anda yang mana dapat Anda sertakan di halaman HTML untuk melokalisasikannya. Lihat Menerjemahkan HTML dan JavaScript menggunakan Weblate CDN untuk rincian lebih lanjut.
Catatan
Pengaya ini membutuhkan konfigurasi tambahan pada server Weblate. LOCALIZE_CDN_PATH mengatur di mana tempat berkas yang dihasilkan akan ditulis (pada sistem berkas), dan LOCALIZE_CDN_URL menentukan di mana tempat berkas akan disajikan (URL). Penyajian berkas tidak dilakukan oleh Weblate dan harus disiapkan secara eksternal (biasanya menggunakan layanan CDN).
Pengaya ini dikonfigurasikan pada Hosted Weblate dan menyajikan berkas melalui https://weblate-cdn.com/.
Hapus string kosong¶
Added in version 4.4.
- ID pengaya:
weblate.cleanup.blank- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Pemasangan pengaya, Pasca-pengkomitan repositori, Pasca-pembaruan repositori
Hapus string tanpa terjemahan dari berkas terjemahan.
Gunakan ini agar tidak ada string kosong di dalam berkas terjemahan (misalnya jika pustaka lokalisasi Anda menampilkannya sebagai string hilang alih-alih mengembalikan ke string sumber).
Bersihkan berkas terjemahan¶
- ID pengaya:
weblate.cleanup.generic- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Pemasangan pengaya, Pasca-pembaruan repositori, Pra-pengkomitan repositori
Memperbarui semua berkas terjemahan agar sesuai dengan berkas dasar monolingual. Untuk kebanyakan format berkas, hal ini berarti menghapus kunci terjemahan lawas yang tidak ada lagi di berkas basis.
Untuk format yang berisi konten tambahan selain string terjemahan (seperti Berkas HTML, Berkas RC Windows, atau Format OpenDocument) ini juga menyinkronkan berkas terjemahan dengan berkas dasar.
Tambahkan bahasa yang hilang¶
- ID pengaya:
weblate.consistency.languages- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Memastikan serangkaian bahasa yang konsisten digunakan untuk semua komponen dalam proyek.
Catatan
Komponen yang dibagikan dari proyek lain tidak dipertimbangkan dalam ini.
Bahasa yang hilang akan diperiksa setiap 24 jam sekali dan ketika ada penambahan bahasa baru di Weblate.
Tidak seperti pengaya yang lainnya, pengaya ini memengaruhi seluruh proyek.
Petunjuk
Terjemahkan string yang baru ditambahkan secara otomatis dengan Terjemahan otomatis.
Penemuan komponen¶
- ID pengaya:
weblate.discovery.discovery- Konfigurasi:
matchEkspresi reguler untuk mencocokkan berkas terjemahan dengan
Ekspresi reguler harus mendefinisikan grup bernama untuk komponen dan bahasa.
file_formatFormat berkas
name_templateSesuaikan nama komponen
Gunakan sintaks templat Django. Templat ini harus menyertakan {{ component }}.
base_file_templateDefinisikan nama berkas basis ekabahasa
Kosongkan untuk berkas terjemahan dwibahasa. Jika diisi, templat ini harus menyertakan {{ component }}.
new_base_templateDefinisikan berkas dasar untuk terjemahan baru
Nama berkas yang digunakan untuk membuat terjemahan baru. Untuk gettext pilih berkas .pot. Templat ini harus menyertakan {{ component }}.
intermediate_templateBerkas bahasa intermediasi
Nama berkas terjemahan perantara. Dalam kebanyakan kasus ini adalah berkas terjemahan yang disediakan oleh pengembang dan digunakan saat membuat string sumber yang sebenarnya. Templat ini harus menyertakan {{ component }}.
language_regexFilter bahasa
Ekspresi reguler untuk memfilter berkas terjemahan ketika memindai mask berkas.
copy_addonsKloning pengaya dari komponen utama ke komponen yang baru dibuat
removeHapus komponen untuk berkas yang tidak ada
- Pemicu:
Menambahkan atau menghapus komponen secara otomatis berdasarkan perubahan berkas di sistem kontrol versi.
The matching is done using regular expressions enabling complex configuration, but some knowledge is required to do so. The regular expression to match translation files has to contain two named groups to match component and language. All named groups in the regular expression can be used as variables in the template fields.
Discovery requirements¶
To discover a component successfully, the configuration has to do all of the following:
The regular expression must define
componentandlanguagenamed groups.Template fields used to name or locate per-component files must include
{{ component }}, so the rendered value actually changes for each discovered component.For monolingual formats, the component must contain a file matching
base_file_templateand at least one translation file matchingmatch.
Worked example: news_<lang>.md¶
This is a common filename-based language variant layout:
docs/news_en.mddocs/news_cs.mddocs/guide_en.md
Use the Filename-based language variants preset for a starting point, then choose the matching file format and review the populated values.
- Ekspresi reguler:
(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)- Nama komponen:
{{ component }}- Discovered file masks:
docs/news_*.mddocs/guide_*.md
In this example, {{ component }} resolves to the basename before the language
suffix, so docs/news_en.md, docs/news_pt_BR.md, and
docs/news_pt-BR.md all become the news component.
Anda dapat menggunakan markah templat Django di semua kolom nama berkas, misalnya:
{{ component }}Component name parsed from the
componentmatch group{{ component|title }}Nama berkas komponen dengan huruf pertama huruf besar
{{ path }}: {{ component }}Grup pencocokan kustom dari ekspresi reguler
Setelah Anda menekan Simpan, pratinjau komponen yang cocok akan ditampilkan, dari sana Anda dapat memeriksa apakah konfigurasi sudah benar-benar sesuai dengan kebutuhan Anda:
Contoh penemuan komponen¶
The worked example above covers the most common filename-based variant layout. The following examples show other repository structures you can match.
Satu map per bahasa¶
Satu map per bahasa berisi berkas terjemahan untuk komponen.
- Ekspresi reguler:
(?P<language>[^/.]*)/(?P<component>[^/]*)\.po- Berkas yang cocok:
cs/application.pocs/website.pode/application.pode/website.po
Tata letak lokalisasi Gettext¶
Struktur biasa untuk menyimpan berkas PO gettext.
- Ekspresi reguler:
locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po- Berkas yang cocok:
locale/cs/LC_MESSAGES/application.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/de/LC_MESSAGES/website.po
Nama berkas yang kompleks¶
Menggunakan kedua komponen dan nama bahasa dalam nama berkas.
- Ekspresi reguler:
src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po- Berkas yang cocok:
src/locale/application.cs.posrc/locale/website.cs.posrc/locale/application.de.posrc/locale/website.de.po
Kode bahasa berulang¶
Menggunakan bahasa dalam kedua jalur dan nama berkas.
- Ekspresi reguler:
locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po- Berkas yang cocok:
locale/cs/application/cs.polocale/cs/website/cs.polocale/de/application/de.polocale/de/website/de.po
Pisahkan string Android¶
String sumber daya Android, dipisahkan menjadi beberapa berkas.
- Ekspresi reguler:
res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml- Berkas yang cocok:
res/values-cs/strings-about.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/values-de/strings-help.xml
Mencocokkan beberapa jalur¶
Proyek Maven multimodul dengan terjemahan properti Java.
- Ekspresi reguler:
(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties- Nama komponen:
{{ originalHierarchy }}: {{ component }}- Berkas yang cocok:
parent/module1/submodule/src/main/resources/ApplicationResources_fr.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/module2/src/main/resources/ApplicationResource_ro.properties
Petunjuk
Pengaya penemuan komponen menggunakan URL internal Weblate. Ini merupakan cara praktis untuk berbagi pengaturan VCS antar beberapa komponen. Komponen yang terhubung menggunakan repositori lokal dari pengaturan komponen utama dengan mengisi weblate://project/main-component ke dalam kolom Repositori kode sumber (di Operasi ↓ Pengaturan ↓ Sistem kontrol versi) masing-masing komponen. Ini juga menghemat waktu konfigurasi dan sumber daya sistem.
Petunjuk
Pastikan komponen baru berisi rangkaian lengkap bahasa yang dapat diterjemahkan dengan Tambahkan bahasa yang hilang.
Lihat juga
Fedora Messaging¶
Added in version 5.15.
- ID pengaya:
weblate.fedora_messaging.publish- Konfigurasi:
eventsUbah peristiwa
amqp_hostHos broker AMQP
Broker AMQP yang akan dihubungkan.
amqp_sslGunakan SSL untuk sambungan AMQP
ca_certSertifikat CA
Bundel sertifikat CA yang dienkodekan PEM yang digunakan untuk memvalidasikan sertifikat yang ditampilkan oleh server.
client_keyKunci SSL klien
Kunci SSL privat klien yang dienkode PEM.
client_certSertifikat SSL klien
Sertifikat SSL klien yang dienkode PEM.
- Pemicu:
Mengirimkan notifikasi ke exchange AMQP yang kompatibel dengan Fedora Messaging.
Fedora Messaging adalah penerbit berbasis AMQP untuk semua perubahan yang terjadi di Weblate. Anda dapat menghubungkan layanan tambahan pada perubahan yang terjadi di Weblate menggunakan ini.
Topik pesan¶
Semua pesan memiliki topik weblate.<action>.<project>.<component>.<translation>. Action adalah representasi teks huruf kecil dari tindakan dengan garis bawah sebagai pengganti spasi, misalnya resource_update, semua bagian lainnya bersifat opsional dan merepresentasikan slug objek atau kode bahasa.
Isi pesan¶
Isi formulir terdiri dari kolom berikut (dengan asumsi kolom tersebut tersedia untuk peristiwa tersebut):
change_idID numerik perubahan
actionNama perubahan yang lebih rinci.
timestampStempel waktu berformat ISO
targetNilai baru dari perubahan (mis. terjemahan baru string)
oldNilai lama dari perubahan (mis. terjemahan string sebelumnya)
sourceString sumber.
urlURL mutlak untuk melihat objek terkait.
authorNama pengguna penulis (ini bisa berbeda dari pengguna misalnya saat menerima saran)
userNama pengguna sementara
projectSlug proyek
componentSlug komponen
translationKode bahasa terjemahan
Kepala pesan¶
Terdapat kepala tambahan yang mungkin juga dapat Anda manfaatkan untuk perutean:
actionNama perubahan yang lebih rinci.
projectSlug proyek
componentSlug komponen
Contoh pesan¶
Peristiwa penggabungan repositori:
{
"id": 1,
"action": "Merged repository",
"timestamp": "2017-06-15T11:30:47.325000+00:00",
"url": "http://example.com/projects/test/test/",
"component": "test"
}
Peristiwa string sumber baru:
{
"id": 2,
"action": "New source string",
"timestamp": "2017-06-15T11:30:47.372000+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Peristiwa pembaruan sumber daya:
{
"id": 6,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.410000+00:00",
"url": "http://example.com/projects/test/test/cs/",
"project": "test",
"component": "test",
"translation": "cs"
}
{
"id": 7,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.510000+00:00",
"url": "http://example.com/projects/test/test/de/",
"project": "test",
"component": "test",
"translation": "de"
}
{
"id": 8,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.595000+00:00",
"url": "http://example.com/projects/test/test/it/",
"project": "test",
"component": "test",
"translation": "it"
}
Peristiwa penghapusan proyek:
{
"id": 9,
"action": "Removed project",
"timestamp": "2019-10-17T15:57:08.559420+00:00",
"target": "test",
"user": "testuser"
}
Peristiwa kontributor baru:
{
"id": 11,
"action": "New contributor",
"timestamp": "2019-10-17T15:57:08.759960+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Peristiwa terjemahan baru:
{
"id": 12,
"action": "New translation",
"timestamp": "2019-10-17T15:57:08.772591+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"target": ["Ahoj svete!\n"],
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Sunting massal¶
- ID pengaya:
weblate.flags.bulk- Konfigurasi:
qKueri
stateStatus untuk diatur
Pilihan yang tersedia:¶ -1Jangan ubah
10Perlu disunting
11Perlu disunting (Perlu ditulis ulang)
12Perlu disunting (Perlu diperiksa)
20Diterjemahkan
30Disetujui
add_flagsPenanda terjemahan untuk ditambahkan
remove_flagsPenanda terjemahan untuk dihapus
add_labelsLabel untuk ditambahkan
remove_labelsLabel untuk dihapus
- Pemicu:
Sunting penanda, label, status, atau string massal.
Contoh:
Kueri pencarian |
|
|---|---|
Label untuk ditambahkan |
terkini |
Kueri pencarian |
|
|---|---|
Penanda terjemahan untuk ditambahkan |
|
Kueri pencarian |
|
|---|---|
Penanda terjemahan untuk ditambahkan |
|
Tandai terjemahan yang tidak diubah sebagai "Perlu ditulis ulang"¶
- ID pengaya:
weblate.flags.same_edit- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Jika string yang dapat diterjemahkan diimpor dari VCS dan cocok dengan string sumber, ia akan ditandai sebagai perlu ditulis ulang di Weblate. Hal ini sangat berguna untuk format berkas yang menyertakan string sumber untuk string yang belum diterjemahkan.
Petunjuk
Anda mungkin juga ingin memperketat pemeriksaan Terjemahan tidak berubah dengan menambahkan penanda strict-same ke Penanda terjemahan.
Lihat juga
Tandai string sumber yang baru sebagai "Perlu diperiksa"¶
- ID pengaya:
weblate.flags.source_edit- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Jika string sumber baru diimpor dari VCS, ia akan ditandai sebagai perlu diperiksa di Weblate. Dengan cara ini Anda dapat dengan mudah memfilter dan menyunting string sumber yang ditulis oleh pengembang.
Lihat juga
Tandai terjemahan baru sebagai "Perlu ditulis ulang"¶
- ID pengaya:
weblate.flags.target_edit- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Jika string terjemahan baru diimpor dari VCS, ia akan ditandai sebagai perlu ditulis ulang di Weblate. Dengan cara ini Anda dapat dengan mudah memfilter dan menyunting terjemahan yang dibuat oleh pengembang.
Lihat juga
Tandai terjemahan yang diperbarui dari repositori sebagai "Perlu ditulis ulang"¶
- ID pengaya:
weblate.flags.target_repo_update- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Jika terjemahan string diubah dari VCS, terjemahan tersebut akan ditandai sebagai perlu ditulis ulang di Weblate. Hal ini sangat berguna jika berkas terjemahan sering diperbarui secara manual atau oleh layanan eksternal.
Lihat juga
Isi string hanya baca dengan sumber¶
Added in version 4.18.
- ID pengaya:
weblate.generate.fill_read_only- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Isi terjemahan string hanya baca dengan string sumber.
Penghasilan statistik¶
- ID pengaya:
weblate.generate.generate- Konfigurasi:
filenameNama berkas yang dihasilkan
templateKonten berkas yang dibuat
- Pemicu:
Menghasilkan berkas yang berisi informasi terperinci tentang status terjemahan.
Anda dapat menggunakan templat Django di nama berkas dan konten, lihat Markah templat untuk deskripsi markah yang terperinci.
Misalnya menghasilkan berkas ringkasan untuk setiap terjemahan:
- Nama berkas yang dihasilkan
locale/{{ language_code }}.json- Konten
{ "language": "{{ language_code }}", "strings": "{{ stats.all }}", "translated": "{{ stats.translated }}", "last_changed": "{{ stats.last_changed }}", "last_author": "{{ stats.last_author }}", }
Lihat juga
Isi awal terjemahan dengan sumber¶
Added in version 4.11.
- ID pengaya:
weblate.generate.prefill- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Mengisi string terjemahan dengan string sumber.
Semua string belum diterjemahkan di komponen akan diisi dengan string sumber, dan ditandai sebagai perlu disunting. Gunakan ini ketika Anda tidak dapat memiliki string kosong dalam berkas terjemahan. .. AUTOGENERATED START: weblate.generate.pseudolocale .. Bagian ini secara otomatis dihasilkan oleh ./manage.py list_addons. Jangan sunting secara manual.
Penghasilan lokalisasi semu¶
Added in version 4.5.
- ID pengaya:
weblate.generate.pseudolocale- Konfigurasi:
sourceString sumber
targetTerjemahan target
Semua string diterjemahan ini akan ditimpa
prefixTeks statis diisi awal
var_prefixTeks variabel diisi awal
suffixDitambahkan teks statis
var_suffixTeks variabel ditambahkan
var_multiplierPengganda teks variabel
Berapa kali mengulang teks variabel tergantung dari panjang string sumber.
include_readonlyTermasuk string hanya baca
- Pemicu:
Menghasilkan terjemahan dengan menambahkan prefiks dan sufiks ke string sumber secara otomatis.
Lokalisasi semu berguna untuk menemukan string yang tidak disiapkan untuk lokalisasi. Ini dilakukan dengan mengubah semua string sumber yang dapat diterjemahkan untuk memudahkan menemukan string yang tidak diubah saat menjalankan aplikasi dalam bahasa lokalisasi semu.
Menemukan string yang padanan lokalisasinya mungkin tidak sesuai dengan tata letak juga dimungkinkan.
Menggunakan bagian variabel membuat pencarian string yang mungkin tidak sesuai dengan antarmuka pengguna setelah lokalisasi - itu diperluaskan berdasarkan panjang string sumber. Teks variabel diulang berdasarkan panjang teks dikalikan dengan pengalinya. Misalnya, Hello world dengan teks variabel _ dan pengali variabel 1 menjadi Helo world___________ - teks diulang sekali untuk setiap karakter dalam string sumber.
String akan dihasilkan menggunakan pola berikut:
Teks statis yang ditambahkan di depan Teks variabel yang ditambahkan di depan String sumber Teks variabel yang ditambahkan di belakang Teks statis yang ditambahkan di belakang
Petunjuk
Anda dapat menggunakan bahasa asli untuk pengujian, tetapi ada lokalisasi semu khusus yang tersedia di Weblate, misalnya en_XA dan ar_XB.
Petunjuk
Anda dapat menggunakan pengaya ini untuk memulai lokalisasi ke bahasa yang baru dari bahasa yang sudah ada atau bahasa serupa. Setelah Anda menambahkan terjemahan ke komponen, ikuti ke pengaya. Contoh: Jika Anda memiliki fr dan ingin memulai terjemahan fr_CA, cukup setel fr sebagai sumber, fr_CA sebagai target, dan biarkan prefiks dan sufiks kosong.
Copot pengaya setelah terjemahan baru Anda diisi untuk mencegah Weblate mengubah terjemahan yang dibuat setelah penyalinan.
Kontributor di komentar¶
- ID pengaya:
weblate.gettext.authors- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Perbarui komentar di kepala berkas PO untuk menyertakan nama kontributor dan tahun kontribusi.
Kepala berkas PO akan terlihat seperti ini:
# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.
Perbarui variabel ALL_LINGUAS di berkas "configure"¶
- ID pengaya:
weblate.gettext.configure- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Pemasangan pengaya, Harian, Pasca-penambahan repositori, Repository post-remove
Memperbarui variabel ALL_LINGUAS dalam berkas "configure", "configure.in", atau "configure.ac", saat terjemahan ditambahkan atau dihapus.
Updates the ALL_LINGUAS variable in configure, configure.in or any
configure.ac files, when a translation is added or removed.
Sesuaikan keluaran gettext¶
Removed in version 5.13: Diganti oleh Parameter format berkas.
Perbarui berkas POT (Django)¶
Added in version 5.17.
- ID pengaya:
weblate.gettext.django- Konfigurasi:
intervalPerbarui frekuensi
Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.
Pilihan yang tersedia:¶ dailyHarian
weeklyMingguan
monthlyBulanan
normalize_headerNormalisasikan kepala POT
Memperbarui kepala gettext dan mengganti komentar POT pengganti.
- Pemicu:
Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori
Memperbarui templat gettext menggunakan perintah makemessages bawaan Django.
Perbarui berkas LINGUAS¶
- ID pengaya:
weblate.gettext.linguas- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Pemasangan pengaya, Harian, Pasca-penambahan repositori, Repository post-remove
Memperbarui berkas LINGUAS saat terjemahan ditambahkan atau dihapus.
Perbarui berkas POT (Meson)¶
Added in version 5.17.
- ID pengaya:
weblate.gettext.meson- Konfigurasi:
intervalPerbarui frekuensi
Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.
Pilihan yang tersedia:¶ dailyHarian
weeklyMingguan
monthlyBulanan
normalize_headerNormalisasikan kepala POT
Memperbarui kepala gettext dan mengganti komentar POT pengganti.
comment_modeKomentar kode
Pilih apakah xgettext harus mengekstrak tanpa komentar, semua komentar, atau hanya komentar yang ditandai dengan tag tertentu.
Pilihan yang tersedia:¶ offJangan ekstrak komentar
allEkstrak semua komentar
taggedEkstrak komentar dengan tag
comment_tagTag komentar
Tag yang diteruskan ke xgettext untuk ekstraksi komentar saat menggunakan mode komentar bertag.
checksPemeriksaan xgettext
Pemeriksaan validasi xgettext tambahan yang diaktifkan untuk pesan yang diekstrak.
Pilihan yang tersedia:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordKata kunci tambahan
Kata kunci tambahan opsional yang diteruskan ke xgettext menggunakan --keyword.
presetPraatur Meson
Praatur argumen xgettext bawaan yang sesuai dengan integrasi gettext Meson. Praatur GLib menambahkan opsi kata kunci dan penanda format yang digunakan pembantu gettext Meson.
Pilihan yang tersedia:¶ glibGLib
- Pemicu:
Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori
Memperbarui templat gettext menggunakan konvensi gettext Meson.
Hasilkan berkas MO¶
- ID pengaya:
weblate.gettext.mo- Konfigurasi:
pathLokasi berkas MO yang dihasilkan
Jika tidak dispesifikasikan, lokasi berkas PO akan digunakan.
fuzzyTermasuk string yang perlu disunting
String memerlukan penyuntingan (fuzzy) biasanya belum siap untuk digunakan sebagai terjemahan.
- Pemicu:
Menghasilkan berkas MO secara otomatis untuk setiap berkas PO yang diubah.
Lokasi berkas MO yang dihasilkan dapat dikustomisasi dan kolom untuk itu menggunakan Markah templat.
Catatan
Jika terjemahan dihapus, berkas PO-nya akan dihapus dari repositori, tetapi berkas MO yang dihasilkan oleh pengaya ini tidak akan dihapus. Berkas MO harus dihapus dari hulu secara manual.
Perbarui berkas PO agar sesuai dengan POT (msgmerge)¶
Berubah pada versi 5.13: Konfigurasi Pengaturan telah dipindahkan ke Parameter format berkas.
- ID pengaya:
weblate.gettext.msgmerge- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Memperbarui semua berkas PO (seperti yang dikonfigurasikan oleh "Mask berkas") agar sesuai dengan berkas POT (seperti yang dikonfigurasikan oleh "Templat untuk terjemahan baru") menggunakan msgmerge.
Pengaya ini penting saat bekerja dengan berkas gettext PO di mana berkas POT (templat) diperbarui dengan string baru atau perubahan pada string yang sudah ada. Ketika berkas POT diperbarui di repositori, pengaya ini secara otomatis menggabungkan perubahan tersebut ke dalam semua berkas PO bahasa, memastikan bahwa:
String terjemahan baru muncul dalam semua bahasa
String yang dihapus ditandai sebagai usang
String yang dimodifikasikan ditandai sebagai perlu ditinjau (fuzzy)
Sebagian besar opsi baris perintah msgmerge dapat diatur melalui konfigurasi parameter format berkas.
Perbarui berkas POT (Sphinx)¶
Added in version 5.17.
- ID pengaya:
weblate.gettext.sphinx- Konfigurasi:
intervalPerbarui frekuensi
Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.
Pilihan yang tersedia:¶ dailyHarian
weeklyMingguan
monthlyBulanan
normalize_headerNormalisasikan kepala POT
Memperbarui kepala gettext dan mengganti komentar POT pengganti.
filter_modePemfilteran
Secara opsional hapus string yang tidak berguna untuk menerjemahkan setelah ekstraksi Sphinx.
Pilihan yang tersedia:¶ noneTidak Ada
weblate_docsDokumentasi Weblate
- Pemicu:
Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori
Memperbarui templat gettext menggunakan pembangun gettext Sphinx tanpa memuat konfigurasi proyek.
Perbarui berkas POT (xgettext)¶
Added in version 5.17.
- ID pengaya:
weblate.gettext.xgettext- Konfigurasi:
intervalPerbarui frekuensi
Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.
Pilihan yang tersedia:¶ dailyHarian
weeklyMingguan
monthlyBulanan
normalize_headerNormalisasikan kepala POT
Memperbarui kepala gettext dan mengganti komentar POT pengganti.
comment_modeKomentar kode
Pilih apakah xgettext harus mengekstrak tanpa komentar, semua komentar, atau hanya komentar yang ditandai dengan tag tertentu.
Pilihan yang tersedia:¶ offJangan ekstrak komentar
allEkstrak semua komentar
taggedEkstrak komentar dengan tag
comment_tagTag komentar
Tag yang diteruskan ke xgettext untuk ekstraksi komentar saat menggunakan mode komentar bertag.
checksPemeriksaan xgettext
Pemeriksaan validasi xgettext tambahan yang diaktifkan untuk pesan yang diekstrak.
Pilihan yang tersedia:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordKata kunci tambahan
Kata kunci tambahan opsional yang diteruskan ke xgettext menggunakan --keyword.
input_modeSumber masukan
Pilih apakah xgettext harus membaca berkas sumber dari pola glob atau dari manifes POTFILES/POTFILES.in.
Pilihan yang tersedia:¶ patternsPola berkas sumber
potfilesManifes POTFILES
languageBahasa xgettext
Bahasa pemrograman yang digunakan oleh xgettext, misalnya Python atau C.
source_patternsPola berkas sumber
Pola glob relatif-repositori baris-baru-terpisah untuk berkas yang diekstrak dengan xgettext.
potfiles_pathJalur POTFILES
Jalur relatif-repositori ke POTFILES atau POTFILES.in. Entri adalah relatif terselesaikan ke akar repositori. Jika ditampilkan di samping manifes, POTFILES.skip mengecualikan berkas terdaftar dari ekstraksi.
- Pemicu:
Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori
Memperbarui templat gettext menggunakan xgettext pada berkas sumber yang dipilih.
Lumatkan komit Git¶
- ID pengaya:
weblate.git.squash- Konfigurasi:
squashPelumatan komit
Pilihan yang tersedia:¶ allSemua komit menjadi satu
languagePer bahasa
filePer berkas
authorPer penulis
append_trailersMenambahkan trailer untuk melumat pesan komit
Garis trailer adalah garis yang terlihat sama seperti kepala surel RFC 822, pada bagian akhir dari bentuk bebas pesan komit, seperti 'Co-authored-by: …'.
commit_messagePesan komit
Pesan komit ini akan digunakan alih-alih menggunakan pesan komit yang digabungkan dari komit terlumat.
- Pemicu:
Lumatkan komit Git sebelum mendorong perubahan.
Petunjuk
Untuk menghindari konflik yang tidak perlu, disarankan untuk mengkonfigurasikan penerimaan otomatis perubahan hulu melalui webhook atau API, lihat Memperbarui repositori.
Komit Git dapat dilumatkan sebelum mendorong perubahan dalam salah satu mode berikut:
Semua komit menjadi satu
Per bahasa
Per berkas
Per penulis
Pesan komit asli disimpan, tetapi kepengarangannya hilang kecuali Per penulis dipilih, atau pesan komit disesuaikan untuk menyertakannya.
Pesan komit asli dapat ditimpa dengan pesan komit kustom secara opsional.
Trailer (baris komit seperti Co-authored-by: …) secara opsional dapat dihapus dari pesan komit asli dan ditambahkan ke akhir pesan komit terlumat. Ini juga menghasilkan kredit Co-authored-by: yang tepat untuk setiap penerjemah.
Sesuaikan keluaran JSON¶
Berubah pada versi 5.12: Opsi Hindari spasi setelah pemisah ditambahkan.
Removed in version 5.13: Diganti oleh Parameter format berkas.
Atur ulang repositori ke hulu¶
Added in version 5.17.
- ID pengaya:
weblate.hosted.reset- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Buang semua perubahan dalam repositori Weblate setiap malam.
Format berkas atribut Java¶
- ID pengaya:
weblate.properties.sort- Konfigurasi:
case_sensitiveAktifkan penyortiran tombol yang peka huruf kapital
- Pemicu:
Memformat dan menyortirkan berkas properti Java.
Mengkonsolidasikan baris baru ke jenis Unix.
Pemformatan huruf kapital dari urutan escape unicode (jika ada).
Mengestrip baris kosong dan komentar.
Menyortirkan string berdasarkan kunci.
Menghapus string ganda.
Penghapusan komentar yang lawas¶
- ID pengaya:
weblate.removal.comments- Konfigurasi:
ageHari untuk disimpan
- Pemicu:
Atur jangka waktu untuk menghapus komentar.
Ini berguna untuk menghapus komentar lama yang mungkin sudah ketinggalan zaman. Gunakan dengan hati-hati karena komentar yang usang bukan berarti mereka kehilangan arti pentingnya.
Penghapusan saran yang lawas¶
- ID pengaya:
weblate.removal.suggestions- Konfigurasi:
ageHari untuk disimpan
votesAmbang batas pemungutan suara
Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.
- Pemicu:
Atur jangka waktu untuk menghapus saran.
Dapat sangat berguna sehubungan dengan pemungutan suara (lihat Tinjauan sejawat) untuk menghapus saran yang tidak menerima cukup suara positif dalam jangka waktu tertentu.
Perbarui berkas RESX¶
- ID pengaya:
weblate.resx.update- Konfigurasi:
Pengaya ini tidak memiliki konfigurasi.
- Pemicu:
Perbarui semua berkas terjemahan agar sesuai dengan berkas dasar hulu ekabahasa. String yang tidak digunakan akan dihapus dan string baru ditambahkan sebagai salinan string sumber.
Petunjuk
Gunakan Bersihkan berkas terjemahan jika Anda hanya ingin menghapus kunci terjemahan yang lawas.
Pengait Web Slack¶
Added in version 5.12.
- ID pengaya:
weblate.webhook.slack- Konfigurasi:
webhook_urlURL pengait web
eventsUbah peristiwa
- Pemicu:
Mengirim notifikasi ke saluran Slack berdasarkan peristiwa yang dipilih.
Peringatan
Konten notifikasi mungkin menampilkan tag HTML. Ini adalah masalah yang diketahui yang akan segera diatasi; lihat https://github.com/WeblateOrg/weblate/issues/15056.
Petunjuk
Untuk memperoleh URL kait web, ikuti langkah yang diuraikan dalam Dokumentasi Kait Web Masuk Slack
Pengait Web¶
Added in version 5.11.
Berubah pada versi 5.15: Kesesuaian panjang rahasia dengan spesifikasi sekarang divalidasikan.
- ID pengaya:
weblate.webhook.webhook- Konfigurasi:
webhook_urlURL pengait web
secretRahasia pengait web
Rahasia pengait web standar adalah string yang dienkodekan dalam base64.
eventsUbah peristiwa
- Pemicu:
Mengirimkan notifikasi ke layanan eksternal berdasarkan peristiwa yang dipilih, mengikuti spesifikasi Pengait Web Standar.
Muatan permintaan sesuai dengan skema Weblate Messaging. Deskripsi OpenAPI juga dapat ditemukan di /api/docs/. Contoh isi permintaan:
{
"change_id": 99,
"action": "Translation changed",
"timestamp": "2019-08-24T14:15:22Z",
"target": "Nazdar svete!",
"old": "Nazdar!",
"source": "Hello, world",
"url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
"author": "author-username",
"user": "user-username",
"project": "project-slug",
"component": "component-slug",
"translation": "cs"
}
Contoh isi permintaan dengan kategori:
{
"change_id": 8910,
"action": "Component renamed",
"timestamp": "2025-06-11T07:15:09Z",
"target": ["new-name"],
"old": ["component-slug"],
"url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
"user": "testuser",
"project": "project-slug",
"component": "component-slug",
"category": [
"sub-category",
"child-category",
"parent-category"
]
}
Contoh kepala permintaan:
{
"webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
"webhook-timestamp": "1748505623.044281",
"webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}
webhook-signature adalah daftar tanda tangan HMAC yang dipisahkan spasi, yang dihasilkan menggunakan string secret, muatan permintaan, webhook-timestamp, dan webhook-id. Hal ini memastikan keaslian dan integritas permintaan kait web.
secret yang diberikan adalah string yang dienkodekan dalam base64 antara 24 byte (192 bit) dan 64 byte (512 bit). Dapat diawali dengan whsec_ untuk memudahkan identifikasi.
Untuk memverifikasikan permintaan, Anda dapat menggunakan metode Webhook.verify dari pustaka standardwebhooks atau implementasi "Spesifikasi Kait Web Standar".
Obsolete add-ons¶
Sesuaikan keluaran XML¶
Added in version 4.15.
Removed in version 5.13: Diganti oleh Parameter format berkas.
Sesuaikan keluaran YAML¶
Removed in version 5.13: Diganti oleh Parameter format berkas.
Parameter pengaya umum¶
Mesin terjemahan mesin¶
|
Alibaba |
|
Amazon Translate |
|
Anthropic |
|
Apertium APy |
|
Azure AI Translator |
|
Azure OpenAI |
|
Baidu |
|
CyrTranslit |
|
DeepL |
|
Glosbe |
|
Google Cloud Translation Lanjutan |
|
Google Cloud Translation Dasar |
|
LTEngine |
|
LibreTranslate |
|
ModernMT |
|
MyMemory |
|
Netease Sight |
|
Ollama |
|
OpenAI |
|
SAP Translation Hub |
|
Systran |
|
Weblate |
|
Memori Terjemahan Weblate |
|
Yandex |
|
Yandex v2 |
|
Youdao Zhiyun |
|
tmserver |
Format berkas¶
|
XLIFF 1.2 dengan ekstensi Apple |
|
Berkas metadata toko aplikasi |
|
Berkas ARB |
|
String Sumber Daya Android |
|
Berkas AsciiDoc |
|
Berkas takarir Advanced SubStation Alpha |
|
Catkey Haiku |
|
Sumber Daya Compose Multiplatform |
|
Berkas CSV |
|
Berkas CSV multinilai |
|
Berkas CSV Sederhana |
|
Berkas text DokuWiki |
|
Berkas DTD |
|
Berkas Flat XML |
|
Berkas Fluent |
|
Berkas JSON Format.JS |
|
Berkas go-i18n JSON v1 |
|
Berkas go-i18n JSON v2 |
|
Berkas go-i18n TOML |
|
Berkas gotext JSON |
|
Atribut GWT |
|
Berkas HTML |
|
Berkas i18next JSON v3 |
|
Berkas i18next JSON v4 |
|
Berkas IDML |
|
Berkas INI |
|
Berkas Inno Setup INI |
|
Berkas bahasa Joomla |
|
Berkas JSON |
|
Berkas struktur bersarang JSON |
|
String PHP Laravel |
|
Berkas Markdown |
|
MDX file |
|
Berkas text MediaWiki |
|
Berkas lang @draggable/i18n |
|
Sumber Daya Kotlin Seluler |
|
Berkas JSON Nextcloud |
|
Berkas OpenDocument |
|
String PHP |
|
Berkas terjemahan XLIFF 1.2 |
|
Berkas gettext PO |
|
berkas gettext PO (ekabahasa) |
|
XLIFF 1.2 dengan ekstensi gettext |
|
Properti Java |
|
Berkas RC |
|
Berkas RESJSON |
|
Berkas ResourceDictionary |
|
Berkas sumber daya .NET |
|
Berkas YAML Ruby |
|
Berkas takarir SubRip |
|
Berkas takarir SubStation Alpha |
|
String iOS |
|
Berkas Stringsdict |
|
Berkas takarir MicroDVD |
|
Berkas TermBase eXchange |
|
Berkas TOML |
|
Berkas terjemahan Qt Linguist |
|
Berkas teks biasa |
|
Berkas JSON WebExtension |
|
Berkas WixLocalization |
|
XLIFF 1.2 dengan dukungan penempatan |
|
Berkas terjemahan XLIFF 2.0 |
|
Berkas terjemahan XLIFF 2.0 dengan dukungan penempatan |
|
Excel Open XML |
|
Halaman Lengkap XWiki |
|
Properti Java XWiki |
|
Properti Halaman XWiki |
|
Berkas YAML |
Ubah peristiwa¶
|
Sumber daya diperbarui |
|
Terjemahan selesai |
|
Terjemahan diubah |
|
Komentar ditambahkan |
|
Saran ditambahkan |
|
Terjemahan ditambahkan |
|
Diterjemahkan secara otomatis |
|
Saran diterima |
|
Terjemahan dikembalikan |
|
Terjemahan diunggah |
|
String sumber ditambahkan |
|
Komponen dikunci |
|
Komponen dibuka |
|
Perubahan dikomit |
|
Perubahan didorong |
|
Repositori diatur ulang |
|
Repositori digabungkan |
|
Repositori dibasis ulang |
|
Penggabungan repositori gagal |
|
Basis ulang repositori gagal |
|
Penguraian gagal |
|
Terjemahan dihapus |
|
Saran dihapus |
|
Terjemahan diganti |
|
Pendorongan repositori gagal |
|
Saran akan dihapus saat pembersihan |
|
String sumber diubah |
|
String ditambahkan |
|
Status massal diubah |
|
Keterlihatan diubah |
|
Pengguna ditambahkan |
|
Pengguna dikeluarkan |
|
Terjemahan disetujui |
|
Ditandai untuk disunting |
|
Komponen dihapus |
|
Proyek dihapus |
|
Proyek diubah namanya |
|
Komponen diubah namanya |
|
Komponen yang dipindahkan |
|
Kontributor bergabung |
|
Pengumuman diposting |
|
Peringatan dipicu |
|
Bahasa ditambahkan |
|
Bahasa diminta |
|
Proyek dibuat |
|
Komponen dibuat |
|
Pengguna diundang |
|
Notifikasi repositori diterima |
|
Terjemahan menggantikan berkas melalui unggahan |
|
Lisensi diubah |
|
Perjanjian lisensi kontributor diubah |
|
Tangkapan layar ditambahkan |
|
Tangkapan layar diunggah |
|
String diperbarui di repositori |
|
Pengaya terpasang |
|
Konfigurasi pengaya diubah |
|
Pengaya dicopot |
|
String dihapus |
|
Komentar dihapus |
|
Komentar diselesaikan |
|
Penjelasan diperbarui |
|
Kategori dihapus |
|
Kategori diubah namanya |
|
Kategori dipindahkan |
|
Penyimpanan string gagal |
|
String ditambahkan di repositori |
|
String diperbarui di unggahan |
|
String ditambahkan di unggahan |
|
Terjemahan diperbarui oleh sumber unggahan |
|
Terjemahan komponen selesai |
|
Pemeriksaan paksa diterapkan |
|
Perubahan dipropagasikan |
|
Berkas diunggah |
|
Penanda ekstra diperbarui |
|
Huruf diunggah |
|
Huruf diubah |
|
Huruf dihapus |
|
Sinkronkan terjemahan yang dipaksakan |
|
Pindai ulang terjemahan yang dipaksakan |
|
Tangkapan layar dihapus |
|
Label ditambahkan |
|
Label dihapus |
|
Pembersihan repositori |
|
String sumber ditambahkan dalam unggahan |
|
String sumber ditambahkan dalam repositori |
|
Proyek dicadangkan |
|
Proyek dipulihkan |
|
Komponen dipulihkan |
|
Suntingan pengguna dikembalikan |
|
Project setting changed |
|
Component setting changed |
Menyesuaikan daftar pengaya¶
Daftar pengaya dikonfigurasi dengan WEBLATE_ADDONS. Untuk menambahkan pengaya lain, cukup sertakan nama kelas mutlak dalam pengaturan ini.
Menulis pengaya¶
Anda juga dapat menulis pengaya Anda sendiri, membuat subkelas dari weblate.addons.base.BaseAddon untuk mendefinisikan metadata pengaya, lalu mengimplementasikan panggilan balik untuk melakukan pemrosesan.
Lihat juga
Menjalankan skrip dari pengaya¶
Pengaya juga dapat digunakan untuk menjalankan skrip eksternal. Ini dulunya terintegrasi di Weblate, tetapi sekarang Anda harus menulis beberapa kode untuk membungkus skrip Anda dengan pengaya.
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""Example pre commit script."""
from __future__ import annotations
from typing import ClassVar
from django.utils.translation import gettext_lazy
from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events: ClassVar[set[AddonEvent]] = {
AddonEvent.EVENT_PRE_COMMIT,
}
# Name of the addon, has to be unique
name = "weblate.example.pre"
# Verbose name and long description
verbose = gettext_lazy("Execute script before commit")
description = gettext_lazy("This add-on executes a script.")
# Script to execute
script = "/bin/true"
# File to add in commit (for pre commit event)
# does not have to be set
add_file = "po/{{ language_code }}.po"
Untuk petunjuk pemasangan, lihat Pemeriksaan kualitas khusus, pengaya, saran otomatis, dan perbaikan otomatis.
Skrip dijalankan dengan mengatur direktori saat ini ke root repositori VCS untuk komponen apa pun.
Selain itu, variabel lingkungan berikut juga tersedia:
- WL_VCS¶
Sistem kontrol versi digunakan.
- WL_REPO¶
URL repositori hulu.
- WL_PATH¶
Lokasi mutlak ke repositori VCS.
- WL_BRANCH¶
Cabang repositori dikonfigurasikan dalam komponen saat ini.
- WL_FILEMASK¶
Mask berkas untuk komponen saat ini.
- WL_TEMPLATE¶
Nama berkas templat untuk terjemahan ekabahasa (dapat dikosongkan).
- WL_NEW_BASE¶
Nama berkas dari berkas yang digunakan untuk membuat terjemahan baru (dapat dikosongkan).
- WL_FILE_FORMAT¶
Format berkas yang digunakan dalam komponen saat ini.
- WL_LANGUAGE¶
Bahasa terjemahan yang sedang diproses (tidak tersedia untuk kait tingkat komponen).
- WL_PREVIOUS_HEAD¶
HEAD sebelumnya setelah pembaruan (hanya tersedia setelah menjalankan kait pasca-pembaruan).
- WL_COMPONENT_SLUG¶
Slug komponen digunakan untuk mengonstruksikan URL.
- WL_PROJECT_SLUG¶
Slug proyek digunakan untuk mengonstruksikan URL.
- WL_COMPONENT_NAME¶
Nama komponen.
- WL_PROJECT_NAME¶
Nama proyek.
- WL_COMPONENT_URL¶
URL Komponen.
- WL_ENGAGE_URL¶
URL keterlibatan proyek.
Lihat juga
Pemrosesan pasca-pembaruan repositori¶
Dapat digunakan untuk memperbarui berkas terjemahan ketika sumber hulu VCS berubah. Untuk mencapai ini, harap ingat bahwa Weblate hanya melihat berkas yang dikomit ke VCS, jadi Anda perlu melakukan perubahan sebagai bagian dari skrip.
Misalnya dengan Gulp Anda dapat melakukannya menggunakan kode berikut:
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json
Pemrosesan terjemahan pra-komit¶
Gunakan skrip komit untuk mengubah terjemahan secara otomatis sebelum dikomit ke repositori.
Itu diteruskan sebagai parameter tunggal yang terdiri atas nama berkas dari terjemahan saat ini.
Catatan aktivitas pengaya¶
Catatan aktivitas pengaya melacak eksekusi pengaya dan dapat digunakan untuk melacak aktivitas pengaya.
Catatan dapat dipangkas setelah interval waktu tertentu dengan mengkonfigurasikan ADDON_ACTIVITY_LOG_EXPIRY.