Pengaya

Pengaya menyediakan cara untuk menyesuaikan dan mengotomatisasikan alur kerja terjemahan. Admin dapat menambahkan dan mengelola pengaya dari menu OperasiPengaya 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.

../_images/addons.webp

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:

mode

Mode terjemahan otomatis

Pilihan yang tersedia:

suggest

Tambahkan sebagai saran

translate

Tambahkan sebagai terjemahan

fuzzy

Tambahkan sebagai "Perlu disunting"

q

Kueri

Harap perhatikan bahwa menerjemahkan semua string akan membuang semua terjemahan yang ada.

auto_source

Sumber terjemahan otomatis

Pilihan yang tersedia:

others

Komponen terjemahan lainnya

mt

Terjemahan mesin

component

Komponen

Masukkan slug komponen untuk digunakan sebagai sumber, kosongkan untuk menggunakan semua komponen dalam proyek saat ini.

engines

Mesin terjemahan mesin

Mesin terjemahan mesin

threshold

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

threshold

Ambang batas terjemahan

Persentase string yang diterjemahkan yang harus tersedia dalam terjemahan yang disertakan.

css_selector

Pemilih CSS

Pemilih CSS untuk mendeteksi elemen yang dapat dilokalisasikan.

cookie_name

Nama kuki bahasa

Nama kuki yang menyimpan preferensi bahasa.

files

Ekstrak 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, Repository post-remove, 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/.

CDN berkas terjemahan

Added in version 2026.5.

ID pengaya:

weblate.cdn.files

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pemasangan pengaya, Pembaruan komponen, Pasca-pengkomitan repositori, Repository post-remove, Pasca-pembaruan repositori

Menerbitkan berkas terjemahan ke dalam jaringan pengiriman konten.

Publishes translation files without converting them to another format. Files are written below the add-on specific CDN directory and served from LOCALIZE_CDN_URL/<add-on UUID>/. Single-file translations use the language code and original file extension, for example cs.json or de.po. Multi-file translations are served below the language code using paths relative to the translation directory. Monolingual components include the source language file, while bilingual components publish only target-language files. See CDN lokalisasi for secure serving guidance.

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.

For a one-time cleanup of a single translation file, use Cleanup unused in Pemeliharaan repositori on that translation instead of installing the add-on.

Tambahkan bahasa yang hilang

ID pengaya:

weblate.consistency.languages

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pemasangan pengaya, Harian, Pasca-penambahan repositori

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:

match

Ekspresi reguler untuk mencocokkan berkas terjemahan dengan

Ekspresi reguler harus mendefinisikan grup bernama untuk komponen dan bahasa.

file_format

Format berkas

Format berkas

name_template

Sesuaikan nama komponen

Gunakan sintaks templat Django. Templat ini harus menyertakan {{ component }}.

base_file_template

Definisikan nama berkas basis ekabahasa

Kosongkan untuk berkas terjemahan dwibahasa. Jika diisi, templat ini harus menyertakan {{ component }}.

new_base_template

Definisikan berkas dasar untuk terjemahan baru

Nama berkas yang digunakan untuk membuat terjemahan baru. Untuk gettext pilih berkas .pot. Templat ini harus menyertakan {{ component }}.

intermediate_template

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

Filter bahasa

Ekspresi reguler untuk memfilter berkas terjemahan ketika memindai mask berkas.

copy_addons

Kloning pengaya dari komponen utama ke komponen yang baru dibuat

remove

Hapus komponen untuk berkas yang tidak ada

Pemicu:

Pemasangan pengaya, Pasca-pembaruan repositori

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 component and language named 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_template and at least one translation file matching match.

Worked example: news_<lang>.md

This is a common filename-based language variant layout:

  • docs/news_en.md

  • docs/news_cs.md

  • docs/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_*.md

  • docs/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 component match 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:

../_images/addon-discovery.webp

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

  • cs/website.po

  • de/application.po

  • de/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.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/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.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/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.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/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.xml

  • res/values-cs/strings-help.xml

  • res/values-de/strings-about.xml

  • res/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.properties

  • parent/module1/submodule/src/main/resources/ApplicationResource_es.properties

  • parent/module2/src/main/resources/ApplicationResource_de.properties

  • parent/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 OperasiPengaturanSistem 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.

Fedora Messaging

Added in version 5.15.

ID pengaya:

weblate.fedora_messaging.publish

Konfigurasi:

amqp_url

URL broker AMQP

URL broker AMQP yang akan dihubungkan.

topic_prefix

Awalan topik

Awalan opsional yang ditambahkan di depan topik pesan yang dihasilkan.

publish_timeout

Batas waktu publikasi

Jumlah detik untuk menunggu pengakuan pengiriman dari broker.

connection_attempts

Upaya koneksi

Jumlah percobaan untuk terhubung ke broker.

retry_delay

Jeda percobaan ulang

Jumlah detik untuk menunggu di antara percobaan koneksi.

ca_cert

Bundel sertifikat CA (PEM)

Tempelkan hanya blok sertifikat PEM, masing-masing diawali dengan "-----BEGIN CERTIFICATE-----" dan diakhiri dengan "-----END CERTIFICATE-----".

client_key

Kunci privat klien (PEM)

Tempelkan satu blok kunci privat PEM yang tidak terenkripsi. Kunci privat terenkripsi tidak didukung.

client_cert

Sertifikat klien (PEM)

Tempelkan hanya blok sertifikat PEM yang diawali dengan "-----BEGIN CERTIFICATE-----"; jangan tempelkan keluaran dari "openssl x509 -text".

event_filter

Kejadian perubahan yang akan memicu

Choose which change events should trigger this add-on. Kejadian perubahan yang akan memicu

events

Kejadian perubahan yang dipilih

Kejadian perubahan yang dipilih

Pemicu:

Perubahan peristiwa

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

All messages have topic weblate.<action>.<project>.<category...>.<component>.<translation>. When configured, topic_prefix is prepended to this topic using a single dot separator, for example org.fedoraproject.weblate.project_backed_up.website. The action is lowercase textual representation of action with underscores instead of space, for example resource_updated; see Kejadian perubahan yang dipilih for all action identifiers. The remaining parts match Weblate object path segments.

For example, a project backup event for the website project uses weblate.project_backed_up.website. A translation change in the website project, frontend component, and Czech translation uses weblate.translation_changed.website.frontend.cs. The same change in the frontend component inside the parent and child categories uses weblate.translation_changed.website.parent.child.frontend.cs.

Isi pesan

Isi formulir terdiri dari kolom berikut (dengan asumsi kolom tersebut tersedia untuk peristiwa tersebut):

change_id

ID numerik perubahan

action

Nama perubahan yang lebih rinci.

timestamp

Stempel waktu berformat ISO

target

Nilai baru dari perubahan (mis. terjemahan baru string)

old

Nilai lama dari perubahan (mis. terjemahan string sebelumnya)

source

String sumber.

url

URL mutlak untuk melihat objek terkait.

author

Nama pengguna penulis (ini bisa berbeda dari pengguna misalnya saat menerima saran)

user

Nama pengguna sementara

project

Slug proyek

component

Slug komponen

translation

Kode bahasa terjemahan

Kepala pesan

Terdapat kepala tambahan yang mungkin juga dapat Anda manfaatkan untuk perutean:

action

Nama perubahan yang lebih rinci.

project

Slug proyek

component

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

q

Kueri

state

Status untuk diatur

Pilihan yang tersedia:

-1

Jangan ubah

10

Perlu disunting

11

Perlu disunting (Perlu ditulis ulang)

12

Perlu disunting (Perlu diperiksa)

20

Diterjemahkan

30

Disetujui

add_flags

Penanda terjemahan untuk ditambahkan

remove_flags

Penanda terjemahan untuk dihapus

add_labels

Label untuk ditambahkan

remove_labels

Label untuk dihapus

Pemicu:

Pemasangan pengaya, Pembaruan komponen

Sunting penanda, label, status, atau string massal.

Contoh:

Labelkan string baru secara otomatis

Kueri pencarian

NOT has:label

Label untuk ditambahkan

terkini

Menandai semua string catatan perubahan Berkas metadata toko aplikasi sebagai hanya baca

Kueri pencarian

language:en AND key:changelogs/

Penanda terjemahan untuk ditambahkan

read-only

Menandai string tertentu sebagai hanya baca

Kueri pencarian

source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en

Penanda terjemahan untuk ditambahkan

read-only

Tandai terjemahan yang tidak diubah sebagai "Perlu ditulis ulang"

ID pengaya:

weblate.flags.same_edit

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pra-pembuatan unit

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

Status terjemahan

Tandai string sumber yang baru sebagai "Perlu diperiksa"

ID pengaya:

weblate.flags.source_edit

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pra-pembuatan unit

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

Status terjemahan

Tandai terjemahan baru sebagai "Perlu ditulis ulang"

ID pengaya:

weblate.flags.target_edit

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pra-pembuatan unit

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

Status terjemahan

Tandai terjemahan yang diperbarui dari repositori sebagai "Perlu ditulis ulang"

ID pengaya:

weblate.flags.target_repo_update

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pasca-penyinkronan unit

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

Status terjemahan

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:

Pemasangan pengaya, Pembaruan komponen, Harian

Isi terjemahan string hanya baca dengan string sumber.

Penghasilan statistik

ID pengaya:

weblate.generate.generate

Konfigurasi:

filename

Nama berkas yang dihasilkan

template

Konten berkas yang dibuat

Pemicu:

Pemasangan pengaya, Pra-pengkomitan repositori

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

Markah templat

Isi awal terjemahan dengan sumber

Added in version 4.11.

ID pengaya:

weblate.generate.prefill

Konfigurasi:

Pengaya ini tidak memiliki konfigurasi.

Pemicu:

Pemasangan pengaya, Pembaruan komponen, Harian

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:

source

String sumber

target

Terjemahan target

Semua string diterjemahan ini akan ditimpa

prefix

Teks statis diisi awal

var_prefix

Teks variabel diisi awal

suffix

Ditambahkan teks statis

var_suffix

Teks variabel ditambahkan

var_multiplier

Pengganda teks variabel

Berapa kali mengulang teks variabel tergantung dari panjang string sumber.

include_readonly

Termasuk string hanya baca

Pemicu:

Pemasangan pengaya, Pembaruan komponen, Harian

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:

Pra-pengkomitan repositori

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 templat gettext (Django)

Added in version 5.17.

ID pengaya:

weblate.gettext.django

Konfigurasi:

interval

Perbarui frekuensi

Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.

Pilihan yang tersedia:

daily

Harian

weekly

Mingguan

monthly

Bulanan

normalize_header

Normalisasikan kepala POT

Memperbarui kepala gettext dan mengganti komentar POT pengganti.

location_mode

Lokasi sumber

Pilih cara ekstraksi menulis lokasi sumber ke file POT. Gunakan ini untuk mempertahankan lokasi dalam templat sambil menghilangkannya dari file PO yang diterjemahkan.

Pilihan yang tersedia:

file

Gunakan pengaturan format file

keep

Ekstrak lokasi ke file POT

omit

Jangan ekstrak lokasi

Pemicu:

Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori

Memperbarui templat gettext menggunakan perintah makemessages bawaan Django.

This add-on updates the template configured in Templat untuk terjemahan baru. It is available for gettext PO components, and the component must define a template for new translations.

The selected update frequency applies to automatic runs after repository refreshes. Installing or reconfiguring the add-on runs it immediately, and manual runs from add-on management or the API also bypass the frequency schedule. After a successful update, Weblate commits the changed template and reloads source strings.

The template update does not update translation PO files by itself. Keep Perbarui berkas PO agar sesuai dengan POT (msgmerge) installed when translation files should follow template changes automatically. The install form for this add-on can install that add-on, but existing add-on settings do not show that installation option again.

Django requirements

This add-on requires xgettext and msguniq. It runs Weblate's internal extraction wrapper for Django messages instead of invoking a project's manage.py makemessages, so it does not load project Django settings or applications.

The template for new translations must use the django or djangojs domain. Supported template names are django.pot, djangojs.pot, django.po, and djangojs.po. Weblate infers the source directory from the template path and skips repository locale directories while extracting.

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:

interval

Perbarui frekuensi

Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.

Pilihan yang tersedia:

daily

Harian

weekly

Mingguan

monthly

Bulanan

normalize_header

Normalisasikan kepala POT

Memperbarui kepala gettext dan mengganti komentar POT pengganti.

location_mode

Lokasi sumber

Pilih cara ekstraksi menulis lokasi sumber ke file POT. Gunakan ini untuk mempertahankan lokasi dalam templat sambil menghilangkannya dari file PO yang diterjemahkan.

Pilihan yang tersedia:

file

Gunakan pengaturan format file

keep

Ekstrak lokasi ke file POT

omit

Jangan ekstrak lokasi

comment_mode

Komentar kode

Pilih apakah xgettext harus mengekstrak tanpa komentar, semua komentar, atau hanya komentar yang ditandai dengan tag tertentu.

Pilihan yang tersedia:

off

Jangan ekstrak komentar

all

Ekstrak semua komentar

tagged

Ekstrak komentar dengan tag

comment_tag

Tag komentar

Tag yang diteruskan ke xgettext untuk ekstraksi komentar saat menggunakan mode komentar bertag.

checks

Pemeriksaan xgettext

Pemeriksaan validasi xgettext tambahan yang diaktifkan untuk pesan yang diekstrak.

Pilihan yang tersedia:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Kata kunci tambahan

Kata kunci tambahan opsional yang diteruskan ke xgettext menggunakan --keyword.

keyword_exclusive

Gunakan kata kunci saja

When enabled, passes --keyword without a value to xgettext before the additional keyword, disabling all default keywords so that only the keyword specified above is recognized.

preset

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

glib

GLib

Pemicu:

Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori

Memperbarui templat gettext menggunakan konvensi gettext Meson.

This add-on updates the template configured in Templat untuk terjemahan baru. It is available for gettext PO components, and the component must define a template for new translations.

The selected update frequency applies to automatic runs after repository refreshes. Installing or reconfiguring the add-on runs it immediately, and manual runs from add-on management or the API also bypass the frequency schedule. After a successful update, Weblate commits the changed template and reloads source strings.

The template update does not update translation PO files by itself. Keep Perbarui berkas PO agar sesuai dengan POT (msgmerge) installed when translation files should follow template changes automatically. The install form for this add-on can install that add-on, but existing add-on settings do not show that installation option again.

Meson requirements

This add-on requires xgettext; it does not invoke Meson. It follows Meson gettext conventions by reading POTFILES or POTFILES.in from the gettext directory and passing the GLib keyword and format-flag preset to xgettext.

The gettext directory is the directory containing the template configured in Templat untuk terjemahan baru. It must contain meson.build and POTFILES or POTFILES.in. A Meson project meson.build must be present in that directory or one of its parent directories. If both POTFILES and POTFILES.in exist, POTFILES is used. An adjacent POTFILES.skip excludes listed source files from extraction.

Configure this add-on from the existing Meson gettext setup. In most Meson projects, the gettext directory is po/, the template is named after the gettext domain, and po/meson.build calls Meson's gettext helper. Use the same template path in Templat untuk terjemahan baru, for example po/example.pot, and keep POTFILES or POTFILES.in next to that meson.build file.

Weblate does not read the source file list from meson.build. It uses POTFILES or POTFILES.in, matching Meson's gettext convention. When the Meson project uses a non-default gettext directory or domain, mirror that layout in the component template path.

Hasilkan berkas MO

ID pengaya:

weblate.gettext.mo

Konfigurasi:

path

Lokasi berkas MO yang dihasilkan

Jika tidak dispesifikasikan, lokasi berkas PO akan digunakan.

fuzzy

Termasuk string yang perlu disunting

String memerlukan penyuntingan (fuzzy) biasanya belum siap untuk digunakan sebagai terjemahan.

Pemicu:

Pra-pengkomitan repositori

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:

Pemasangan pengaya, Pasca-pembaruan repositori

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)

Most msgmerge command-line options can be set up through file format parameters configuration. Enable the po_remove_obsolete parameter to remove obsolete #~ entries when PO files are saved.

Perbarui berkas POT (Sphinx)

Added in version 5.17.

ID pengaya:

weblate.gettext.sphinx

Konfigurasi:

interval

Perbarui frekuensi

Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.

Pilihan yang tersedia:

daily

Harian

weekly

Mingguan

monthly

Bulanan

normalize_header

Normalisasikan kepala POT

Memperbarui kepala gettext dan mengganti komentar POT pengganti.

location_mode

Lokasi sumber

Pilih cara ekstraksi menulis lokasi sumber ke file POT. Gunakan ini untuk mempertahankan lokasi dalam templat sambil menghilangkannya dari file PO yang diterjemahkan.

Pilihan yang tersedia:

file

Gunakan pengaturan format file

keep

Ekstrak lokasi ke file POT

omit

Jangan ekstrak lokasi

filter_mode

Pemfilteran

Secara opsional hapus string yang tidak berguna untuk menerjemahkan setelah ekstraksi Sphinx.

Pilihan yang tersedia:

none

Tidak Ada

weblate_docs

Dokumentasi Weblate

Pemicu:

Pemasangan pengaya, Manual trigger, Pasca-pembaruan repositori

Memperbarui templat gettext menggunakan pembangun gettext Sphinx tanpa memuat konfigurasi proyek.

This add-on updates the template configured in Templat untuk terjemahan baru. It is available for gettext PO components, and the component must define a template for new translations.

The selected update frequency applies to automatic runs after repository refreshes. Installing or reconfiguring the add-on runs it immediately, and manual runs from add-on management or the API also bypass the frequency schedule. After a successful update, Weblate commits the changed template and reloads source strings.

The template update does not update translation PO files by itself. Keep Perbarui berkas PO agar sesuai dengan POT (msgmerge) installed when translation files should follow template changes automatically. The install form for this add-on can install that add-on, but existing add-on settings do not show that installation option again.

Sphinx requirements

This add-on requires sphinx-build, provided by the sphinx installation extra. The template for new translations must be a .pot file below a locales directory. The directory before locales is used as the Sphinx source directory and must contain conf.py.

Extraction uses Weblate's bundled Sphinx configuration and does not load the project configuration. Weblate runs the Sphinx gettext builder, normalizes source references to paths relative to the source directory, and copies the generated template back to the configured template path.

Perbarui berkas POT (xgettext)

Added in version 5.17.

ID pengaya:

weblate.gettext.xgettext

Konfigurasi:

interval

Perbarui frekuensi

Seberapa sering pengaya harus memperbarui berkas POT ketika komponen dimuatkan ulang.

Pilihan yang tersedia:

daily

Harian

weekly

Mingguan

monthly

Bulanan

normalize_header

Normalisasikan kepala POT

Memperbarui kepala gettext dan mengganti komentar POT pengganti.

location_mode

Lokasi sumber

Pilih cara ekstraksi menulis lokasi sumber ke file POT. Gunakan ini untuk mempertahankan lokasi dalam templat sambil menghilangkannya dari file PO yang diterjemahkan.

Pilihan yang tersedia:

file

Gunakan pengaturan format file

keep

Ekstrak lokasi ke file POT

omit

Jangan ekstrak lokasi

comment_mode

Komentar kode

Pilih apakah xgettext harus mengekstrak tanpa komentar, semua komentar, atau hanya komentar yang ditandai dengan tag tertentu.

Pilihan yang tersedia:

off

Jangan ekstrak komentar

all

Ekstrak semua komentar

tagged

Ekstrak komentar dengan tag

comment_tag

Tag komentar

Tag yang diteruskan ke xgettext untuk ekstraksi komentar saat menggunakan mode komentar bertag.

checks

Pemeriksaan xgettext

Pemeriksaan validasi xgettext tambahan yang diaktifkan untuk pesan yang diekstrak.

Pilihan yang tersedia:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Kata kunci tambahan

Kata kunci tambahan opsional yang diteruskan ke xgettext menggunakan --keyword.

keyword_exclusive

Gunakan kata kunci saja

When enabled, passes --keyword without a value to xgettext before the additional keyword, disabling all default keywords so that only the keyword specified above is recognized.

input_mode

Sumber masukan

Pilih apakah xgettext harus membaca berkas sumber dari pola glob atau dari manifes POTFILES/POTFILES.in.

Pilihan yang tersedia:

patterns

Pola berkas sumber

potfiles

Manifes POTFILES

language

Bahasa xgettext

Bahasa pemrograman yang diteruskan ke xgettext, misalnya Python atau C. Kosongkan agar xgettext menebak bahasa berdasarkan ekstensi file.

source_patterns

Pola berkas sumber

Pola glob relatif-repositori baris-baru-terpisah untuk berkas yang diekstrak dengan xgettext.

potfiles_path

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

This add-on updates the template configured in Templat untuk terjemahan baru. It is available for gettext PO components, and the component must define a template for new translations.

The selected update frequency applies to automatic runs after repository refreshes. Installing or reconfiguring the add-on runs it immediately, and manual runs from add-on management or the API also bypass the frequency schedule. After a successful update, Weblate commits the changed template and reloads source strings.

The template update does not update translation PO files by itself. Keep Perbarui berkas PO agar sesuai dengan POT (msgmerge) installed when translation files should follow template changes automatically. The install form for this add-on can install that add-on, but existing add-on settings do not show that installation option again.

xgettext requirements

This add-on requires xgettext. Configure either source file patterns or a POTFILES / POTFILES.in manifest. Source file patterns are repository-relative glob patterns and only matching repository files are passed to xgettext.

Entries in POTFILES or POTFILES.in are resolved relative to the repository root. They must be relative paths, stay inside the repository, and point to existing files. Blank lines and lines starting with # are ignored. If a POTFILES.skip file exists next to the manifest, its entries are excluded from extraction.

Automatic repository refresh runs are skipped unless the changed files match the configured source patterns, match files listed in the manifest, change a watched manifest, or change the add-on configuration.

Start from the build-system extraction setup when configuring this add-on. Autotools projects usually keep gettext inputs in po/POTFILES.in and options such as the gettext domain and xgettext flags in po/Makevars or related Makefile.am files. Use manifest mode with the same POTFILES.in when its entries are plain repository-relative source paths, and copy relevant extraction behavior into the add-on settings, for example the language, comment extraction, checks, and additional keyword.

For other build systems, use the source list or extraction command they already run as the source of truth. CMake, custom Makefiles, npm scripts, or project specific extraction scripts often call xgettext directly or generate an intermediate file list. Configure source patterns for simple layouts, or use manifest mode when the project maintains a plain file list. If a build-system manifest contains transformations or prefixes that are not file paths, convert it to plain repository-relative paths before using it as POTFILES.

Lumatkan komit Git

ID pengaya:

weblate.git.squash

Konfigurasi:

squash

Pelumatan komit

Pilihan yang tersedia:

all

Semua komit menjadi satu

language

Per bahasa

file

Per berkas

author

Per penulis

append_trailers

Menambahkan 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_message

Pesan komit

Pesan komit ini akan digunakan alih-alih menggunakan pesan komit yang digabungkan dari komit terlumat.

Pemicu:

Pemasangan pengaya, Pasca-pengkomitan repositori

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:

Pemasangan pengaya, Harian

Buang semua perubahan dalam repositori Weblate setiap malam.

Format berkas atribut Java

ID pengaya:

weblate.properties.sort

Konfigurasi:

case_sensitive

Aktifkan penyortiran tombol yang peka huruf kapital

Pemicu:

Pra-pengkomitan repositori

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:

age

Hari untuk disimpan

Pemicu:

Pemasangan pengaya, Harian

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:

age

Hari untuk disimpan

votes

Ambang batas pemungutan suara

Ambang batas untuk penghapusan. Kosongkan untuk menghapus saran terlepas dari jumlah suara. Kolom ini tidak berpengaruh jika fitur suara dimatikan.

Pemicu:

Pemasangan pengaya, Harian

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:

Pemasangan pengaya, Pasca-pembaruan repositori

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_url

URL pengait web

event_filter

Kejadian perubahan yang akan memicu

Choose which change events should trigger this add-on. Kejadian perubahan yang akan memicu

events

Kejadian perubahan yang dipilih

Kejadian perubahan yang dipilih

Pemicu:

Perubahan peristiwa

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_url

URL pengait web

secret

Rahasia pengait web

Rahasia pengait web standar adalah string yang dienkodekan dalam base64.

event_filter

Kejadian perubahan yang akan memicu

Choose which change events should trigger this add-on. Kejadian perubahan yang akan memicu

events

Kejadian perubahan yang dipilih

Kejadian perubahan yang dipilih

Pemicu:

Perubahan peristiwa

Mengirimkan notifikasi ke layanan eksternal berdasarkan peristiwa yang dipilih, mengikuti spesifikasi Pengait Web Standar.

The request payload complies with the Weblate Messaging schema. The action field uses the action name listed in Kejadian perubahan yang dipilih. The OpenAPI description can also be found at /api/docs/. Sample request body:

{
   "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

Pilihan yang tersedia:

alibaba

Alibaba

aws

Amazon Translate

anthropic

Anthropic

apertium-apy

Apertium APy

microsoft-translator

Azure AI Translator

azure-openai

Azure OpenAI

baidu

Baidu

cyrtranslit

CyrTranslit

deepl

DeepL

glosbe

Glosbe

google-translate-api-v3

Google Cloud Translation Lanjutan

google-translate

Google Cloud Translation Dasar

ltengine

LTEngine

libretranslate

LibreTranslate

mistral

Mistral

modernmt

ModernMT

mymemory

MyMemory

netease-sight

Netease Sight

ollama

Ollama

openai

OpenAI

sap-translation-hub

SAP Translation Hub

systran

Systran

weblate

Weblate

weblate-translation-memory

Memori Terjemahan Weblate

yandex

Yandex

yandex-v2

Yandex v2

youdao-zhiyun

Youdao Zhiyun

tmserver

tmserver

Format berkas

Pilihan yang tersedia:

apple-xliff

XLIFF 1.2 dengan ekstensi Apple

appstore

Berkas metadata toko aplikasi

arb

Berkas ARB

aresource

String Sumber Daya Android

asciidoc

Berkas AsciiDoc

ass

Berkas takarir Advanced SubStation Alpha

catkeys

Catkey Haiku

cmp-resource

Sumber Daya Compose Multiplatform

csv

Berkas CSV

csv-multi

Berkas CSV multinilai

csv-simple

Berkas CSV Sederhana

dokuwiki

Berkas text DokuWiki

dtd

Berkas DTD

flatxml

Berkas Flat XML

fluent

Berkas Fluent

formatjs

Berkas JSON Format.JS

go-i18n-json

Berkas go-i18n JSON v1

go-i18n-json-v2

Berkas go-i18n JSON v2

go-i18n-toml

Berkas go-i18n TOML

gotext

Berkas gotext JSON

gwt

Atribut GWT

html

Berkas HTML

i18next

Berkas i18next JSON v3

i18nextv4

Berkas i18next JSON v4

idml

Berkas IDML

ini

Berkas INI

islu

Berkas Inno Setup INI

joomla

Berkas bahasa Joomla

json

Berkas JSON

json-nested

Berkas struktur bersarang JSON

laravel

String PHP Laravel

markdown

Berkas Markdown

mdx

Berkas MDX

mediawiki

Berkas text MediaWiki

mi18n-lang

Berkas lang @draggable/i18n

moko-resource

Sumber Daya Kotlin Seluler

nextcloud-json

Berkas JSON Nextcloud

odf

Berkas OpenDocument

php

String PHP

plainxliff

Berkas terjemahan XLIFF 1.2

po

Berkas gettext PO

po-mono

berkas gettext PO (ekabahasa)

poxliff

XLIFF 1.2 dengan ekstensi gettext

properties

Properti Java

rc

Berkas RC

resjson

Berkas RESJSON

resourcedictionary

Berkas ResourceDictionary

resx

Berkas sumber daya .NET

ruby-yaml

Berkas YAML Ruby

srt

Berkas takarir SubRip

ssa

Berkas takarir SubStation Alpha

strings

String iOS

stringsdict

Berkas Stringsdict

sub

Berkas takarir MicroDVD

tbx

Berkas TermBase eXchange

toml

Berkas TOML

ts

Qt Linguist translation file (version 2)

ts1

Qt Linguist translation file (version 1)

txt

Berkas teks biasa

webextension

Berkas JSON WebExtension

wxl

Berkas WixLocalization

xliff

XLIFF 1.2 dengan dukungan penempatan

xliff2

Berkas terjemahan XLIFF 2.0

xliff2-placeables

Berkas terjemahan XLIFF 2.0 dengan dukungan penempatan

xlsx

Excel Open XML

xwiki-fullpage

Halaman Lengkap XWiki

xwiki-java-properties

Properti Java XWiki

xwiki-page-properties

Properti Halaman XWiki

yaml

Berkas YAML

Kejadian perubahan yang akan memicu

Pilihan yang tersedia:

content

Kejadian konten terjemahan

all

Semua kejadian perubahan

custom

Kejadian perubahan yang dipilih

Kejadian perubahan yang dipilih

The following change actions can appear in notification payloads. Fedora Messaging uses the identifier column in message topics, while webhook payloads use the name column in the action field.

Pilihan yang tersedia:

ID

Identifier

Nama

Deskripsi

0

resource_updated

Sumber daya diperbarui

File terjemahan telah disinkronkan dengan repositorinya.

1

translation_completed

Terjemahan selesai

Terjemahan suatu bahasa menjadi sepenuhnya diterjemahkan setelah pengeditan individual. Terjemahan otomatis, unggahan, dan pengeditan massal tidak memicu peristiwa ini.

2

translation_changed

Terjemahan diubah

Terjemahan yang sudah ada diedit oleh pengguna.

3

comment_added

Komentar ditambahkan

Komentar ditambahkan ke sebuah string.

4

suggestion_added

Saran ditambahkan

Saran terjemahan ditambahkan.

5

translation_added

Terjemahan ditambahkan

String yang sebelumnya belum diterjemahkan diterjemahkan oleh pengguna.

6

automatically_translated

Diterjemahkan secara otomatis

Terjemahan ditambahkan atau diubah oleh terjemahan otomatis. Peristiwa ini dipicu sebagai pengganti Terjemahan ditambahkan atau Terjemahan diubah.

7

suggestion_accepted

Saran diterima

Saran terjemahan diterima sebagai terjemahan.

8

translation_reverted

Terjemahan dikembalikan

Terjemahan dipulihkan ke nilai sebelumnya.

9

translation_uploaded

Terjemahan diunggah

Terjemahan ditambahkan atau diubah melalui unggahan file terjemahan. Peristiwa ini dipicu sebagai pengganti Terjemahan ditambahkan atau Terjemahan diubah.

13

source_string_added

String sumber ditambahkan

String sumber ditambahkan di luar pembaruan repositori atau unggahan.

14

component_locked

Komponen dikunci

Komponen dikunci untuk penerjemahan.

15

component_unlocked

Komponen dibuka

Komponen dibuka kuncinya untuk penerjemahan.

17

changes_committed

Perubahan dikomit

Perubahan komponen yang tertunda telah dikomit.

18

changes_pushed

Perubahan didorong

Perubahan repositori telah didorong ke upstream.

19

repository_reset

Repositori diatur ulang

Repositori telah diatur ulang ke keadaan upstream.

20

repository_merged

Repositori digabungkan

Perubahan repositori upstream telah digabungkan.

21

repository_rebased

Repositori dibasis ulang

Perubahan repositori telah di-rebase ke upstream.

22

repository_merge_failed

Penggabungan repositori gagal

Gagal menggabungkan perubahan repositori upstream.

23

repository_rebase_failed

Basis ulang repositori gagal

Gagal melakukan rebase pada perubahan repositori.

24

parsing_failed

Penguraian gagal

Weblate tidak dapat mengurai file terjemahan.

25

translation_removed

Terjemahan dihapus

Terjemahan bahasa dihapus.

26

suggestion_removed

Saran dihapus

Saran terjemahan dihapus.

27

translation_replaced

Terjemahan diganti

Terjemahan diubah melalui operasi cari dan ganti. Peristiwa ini dipicu sebagai pengganti Terjemahan diubah.

28

repository_push_failed

Pendorongan repositori gagal

Gagal mendorong perubahan repositori ke upstream.

29

suggestion_removed_during_cleanup

Saran akan dihapus saat pembersihan

Saran terjemahan usang dihapus selama pembersihan.

30

source_string_changed

String sumber diubah

String sumber diedit di Weblate.

31

string_added

String ditambahkan

String baru ditambahkan di Weblate.

32

bulk_status_changed

Status massal diubah

Status terjemahan dari satu atau beberapa string diubah secara massal.

33

visibility_changed

Keterlihatan diubah

Visibilitas proyek atau komponen diubah.

34

user_added

Pengguna ditambahkan

Pengguna diberi akses.

35

user_removed

Pengguna dikeluarkan

Akses pengguna dihapus.

36

translation_approved

Terjemahan disetujui

Terjemahan disetujui selama peninjauan.

37

marked_for_edit

Ditandai untuk disunting

Terjemahan ditandai perlu diedit.

38

component_removed

Komponen dihapus

Komponen terjemahan dihapus.

39

project_removed

Proyek dihapus

Proyek terjemahan dihapus.

41

project_renamed

Proyek diubah namanya

Proyek terjemahan diganti namanya.

42

component_renamed

Komponen diubah namanya

Komponen terjemahan diganti namanya.

43

moved_component

Komponen yang dipindahkan

Komponen dipindahkan dalam proyek.

45

contributor_joined

Kontributor bergabung

Pengguna memberikan kontribusi pertamanya pada terjemahan.

46

announcement_posted

Pengumuman diposting

Pengumuman dipublikasikan.

47

alert_triggered

Peringatan dipicu

Peringatan komponen dipicu.

48

language_added

Bahasa ditambahkan

Terjemahan bahasa ditambahkan.

49

language_requested

Bahasa diminta

Pengguna meminta bahasa baru.

50

project_created

Proyek dibuat

Proyek terjemahan dibuat.

51

component_created

Komponen dibuat

Komponen terjemahan dibuat.

52

user_invited

Pengguna diundang

Pengguna diundang ke proyek.

53

repository_notification_received

Notifikasi repositori diterima

Weblate menerima notifikasi repositori dari host kode.

54

translation_replaced_file_by_upload

Terjemahan menggantikan berkas melalui unggahan

File terjemahan diganti oleh file yang diunggah.

55

license_changed

Lisensi diubah

Informasi lisensi proyek atau komponen diubah.

56

contributor_license_agreement_changed

Perjanjian lisensi kontributor diubah

Perjanjian lisensi kontributor diubah.

57

screenshot_added

Tangkapan layar ditambahkan

Tangkapan layar dikaitkan dengan sebuah string.

58

screenshot_uploaded

Tangkapan layar diunggah

Gambar tangkapan layar diunggah.

59

string_updated_in_the_repository

String diperbarui di repositori

String diubah saat menyinkronkan dari repositori.

60

add-on_installed

Pengaya terpasang

Add-on dipasang.

61

add-on_configuration_changed

Konfigurasi pengaya diubah

Konfigurasi add-on diubah.

62

add-on_uninstalled

Pengaya dicopot

Add-on dihapus pemasangannya.

63

string_removed

String dihapus

String dihapus dari terjemahan.

64

comment_removed

Komentar dihapus

Komentar string dihapus.

65

comment_resolved

Komentar diselesaikan

Komentar string ditandai sebagai terselesaikan.

66

explanation_updated

Penjelasan diperbarui

Penjelasan untuk string sumber diperbarui.

67

category_removed

Kategori dihapus

Kategori komponen dihapus.

68

category_renamed

Kategori diubah namanya

Kategori komponen diganti namanya.

69

category_moved

Kategori dipindahkan

Kategori komponen dipindahkan.

70

saving_string_failed

Penyimpanan string gagal

Weblate tidak dapat menyimpan string yang diubah.

71

string_added_in_the_repository

String ditambahkan di repositori

String baru ditemukan saat menyinkronkan dari repositori.

72

string_updated_in_the_upload

String diperbarui di unggahan

String diubah saat memproses file yang diunggah.

73

string_added_in_the_upload

String ditambahkan di unggahan

String baru ditemukan saat memproses file yang diunggah.

74

translation_updated_by_source_upload

Terjemahan diperbarui oleh sumber unggahan

Terjemahan disinkronkan setelah mengunggah file sumber.

75

component_translation_completed

Terjemahan komponen selesai

Semua terjemahan bahasa dalam komponen menjadi sepenuhnya diterjemahkan setelah pengeditan individual. Terjemahan otomatis, unggahan, dan pengeditan massal tidak memicu peristiwa ini.

76

applied_enforced_check

Pemeriksaan paksa diterapkan

Terjemahan ditandai perlu diedit oleh pemeriksaan yang diwajibkan.

77

propagated_change

Perubahan dipropagasikan

Pengeditan terjemahan diterapkan ke string lain yang cocok.

78

file_uploaded

Berkas diunggah

File diunggah ke terjemahan.

79

extra_flags_updated

Penanda ekstra diperbarui

Flag tambahan string sumber diperbarui.

80

font_uploaded

Huruf diunggah

Font diunggah.

81

font_changed

Huruf diubah

Font yang diunggah diubah.

82

font_removed

Huruf dihapus

Font yang diunggah dihapus.

83

forced_synchronization_of_translations

Sinkronkan terjemahan yang dipaksakan

File terjemahan dipaksa disinkronkan dengan repositori.

84

forced_rescan_of_translations

Pindai ulang terjemahan yang dipaksakan

File terjemahan dipindai ulang secara paksa untuk perubahan.

85

screenshot_removed

Tangkapan layar dihapus

Tangkapan layar dihapus.

86

label_added

Label ditambahkan

Label ditambahkan ke string.

87

label_removed

Label dihapus

Label dihapus dari string.

88

repository_cleanup

Pembersihan repositori

Pohon kerja repositori dibersihkan.

89

source_string_added_in_the_upload

String sumber ditambahkan dalam unggahan

String sumber ditambahkan saat memproses file yang diunggah.

90

source_string_added_in_the_repository

String sumber ditambahkan dalam repositori

String sumber ditambahkan saat menyinkronkan dari repositori.

91

project_backed_up

Proyek dicadangkan

Cadangan proyek dibuat.

92

project_restored

Proyek dipulihkan

Proyek dipulihkan dari cadangan.

93

component_restored

Komponen dipulihkan

Komponen dipulihkan dari cadangan.

94

user_edit_reverted

Suntingan pengguna dikembalikan

Semua suntingan yang dipilih oleh pengguna dibatalkan.

95

project_setting_changed

Pengaturan proyek diubah

Pengaturan proyek diubah.

96

component_setting_changed

Pengaturan komponen diubah

Pengaturan komponen diubah.

97

user_access_changed

Akses pengguna diubah

Izin akses pengguna diubah.

98

workspace_created

Ruang kerja dibuat

Ruang kerja dibuat.

99

workspace_setting_changed

Pengaturan ruang kerja diubah

Pengaturan ruang kerja diubah.

100

project_moved

Proyek dipindahkan

Proyek dipindahkan ke dalam atau ke luar dari ruang kerja.

101

remote_repository_updated

Repositori jarak jauh diperbarui

Pembaruan repositori jarak jauh selesai.

102

remote_repository_update_failed

Pembaruan repositori jarak jauh gagal

Gagal memperbarui repositori jarak jauh.

103

alert_dismissed

Peringatan diberhentikan

Peringatan komponen telah diberhentikan.

104

alert_reopened

Peringatan dibuka kembali

Peringatan komponen dibuka kembali setelah konteksnya berubah.

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.

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.

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.

Each entry records whether processing is pending, successful, failed, or skipped. Skipped entries include the reason the add-on did not run, such as an incompatible component, no relevant changes, or a configured schedule that is not due yet. A successful entry can still mean that the add-on checked its inputs but found nothing to change.

For scope-wide add-ons that process components independently, the activity log contains a separate entry for each component.

Catatan dapat dipangkas setelah interval waktu tertentu dengan mengkonfigurasikan ADDON_ACTIVITY_LOG_EXPIRY.