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

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:

events

Ubah peristiwa

Ubah peristiwa

amqp_host

Hos broker AMQP

Broker AMQP yang akan dihubungkan.

amqp_ssl

Gunakan SSL untuk sambungan AMQP

ca_cert

Sertifikat CA

Bundel sertifikat CA yang dienkodekan PEM yang digunakan untuk memvalidasikan sertifikat yang ditampilkan oleh server.

client_key

Kunci SSL klien

Kunci SSL privat klien yang dienkode PEM.

client_cert

Sertifikat SSL klien

Sertifikat SSL klien yang dienkode PEM.

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

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_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 berkas POT (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.

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:

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.

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.

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.

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)

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:

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.

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.

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.

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.

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 digunakan oleh xgettext, misalnya Python atau C.

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.

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

Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.

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

events

Ubah peristiwa

Ubah peristiwa

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.

events

Ubah peristiwa

Ubah peristiwa

Pemicu:

Perubahan peristiwa

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

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

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

MDX file

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

Berkas terjemahan Qt Linguist

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

Ubah peristiwa

Pilihan yang tersedia:

0

Sumber daya diperbarui

1

Terjemahan selesai

2

Terjemahan diubah

3

Komentar ditambahkan

4

Saran ditambahkan

5

Terjemahan ditambahkan

6

Diterjemahkan secara otomatis

7

Saran diterima

8

Terjemahan dikembalikan

9

Terjemahan diunggah

13

String sumber ditambahkan

14

Komponen dikunci

15

Komponen dibuka

17

Perubahan dikomit

18

Perubahan didorong

19

Repositori diatur ulang

20

Repositori digabungkan

21

Repositori dibasis ulang

22

Penggabungan repositori gagal

23

Basis ulang repositori gagal

24

Penguraian gagal

25

Terjemahan dihapus

26

Saran dihapus

27

Terjemahan diganti

28

Pendorongan repositori gagal

29

Saran akan dihapus saat pembersihan

30

String sumber diubah

31

String ditambahkan

32

Status massal diubah

33

Keterlihatan diubah

34

Pengguna ditambahkan

35

Pengguna dikeluarkan

36

Terjemahan disetujui

37

Ditandai untuk disunting

38

Komponen dihapus

39

Proyek dihapus

41

Proyek diubah namanya

42

Komponen diubah namanya

43

Komponen yang dipindahkan

45

Kontributor bergabung

46

Pengumuman diposting

47

Peringatan dipicu

48

Bahasa ditambahkan

49

Bahasa diminta

50

Proyek dibuat

51

Komponen dibuat

52

Pengguna diundang

53

Notifikasi repositori diterima

54

Terjemahan menggantikan berkas melalui unggahan

55

Lisensi diubah

56

Perjanjian lisensi kontributor diubah

57

Tangkapan layar ditambahkan

58

Tangkapan layar diunggah

59

String diperbarui di repositori

60

Pengaya terpasang

61

Konfigurasi pengaya diubah

62

Pengaya dicopot

63

String dihapus

64

Komentar dihapus

65

Komentar diselesaikan

66

Penjelasan diperbarui

67

Kategori dihapus

68

Kategori diubah namanya

69

Kategori dipindahkan

70

Penyimpanan string gagal

71

String ditambahkan di repositori

72

String diperbarui di unggahan

73

String ditambahkan di unggahan

74

Terjemahan diperbarui oleh sumber unggahan

75

Terjemahan komponen selesai

76

Pemeriksaan paksa diterapkan

77

Perubahan dipropagasikan

78

Berkas diunggah

79

Penanda ekstra diperbarui

80

Huruf diunggah

81

Huruf diubah

82

Huruf dihapus

83

Sinkronkan terjemahan yang dipaksakan

84

Pindai ulang terjemahan yang dipaksakan

85

Tangkapan layar dihapus

86

Label ditambahkan

87

Label dihapus

88

Pembersihan repositori

89

String sumber ditambahkan dalam unggahan

90

String sumber ditambahkan dalam repositori

91

Proyek dicadangkan

92

Proyek dipulihkan

93

Komponen dipulihkan

94

Suntingan pengguna dikembalikan

95

Project setting changed

96

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.

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.

Catatan dapat dipangkas setelah interval waktu tertentu dengan mengkonfigurasikan ADDON_ACTIVITY_LOG_EXPIRY.