Pertanyaan yang Sering Diajukan¶
Konfigurasi¶
Bagaimana caranya untuk membuat workflow otomatis?¶
Weblate dapat menangani semua terjemahan secara semi otomatis untuk Anda. Jika Anda memberikan akses dorong ke repositori Anda, terjemahan dapat terjadi tanpa interaksi, kecuali jika terjadi konflik penggabungan.
Atur repositori Git Anda untuk memberi tahu Weblate saat ada perubahan, lihat Pengait notifikasi untuk informasi tentang cara melakukannya.
Atur URL dorong di Konfigurasi komponen Anda di Weblate, ini memungkinkan Weblate untuk mendorong perubahan ke repositori Anda.
Aktifkan Dorong dalam komit pada Konfigurasi komponen Anda di Weblate, ini akan membuat Weblate mendorong perubahan ke repositori Anda jika perubahan terjadi di Weblate.
Bagaimana caranya untuk mengakses repositori melalui SSH?¶
Silakan lihat Mengakses repositori untuk informasi tentang pengaturan kunci SSH.
Bagaimana cara memperbaiki konflik penggabungan dalam terjemahan?¶
Konflik penggabungan terkadang terjadi ketika berkas terjemahan diubah di Weblate dan repositori hulu secara bersamaan. Anda biasanya dapat menghindari hal ini dengan menggabungkan terjemahan Weblate sebelum membuat perubahan pada berkas terjemahan (mis. sebelum menjalankan msgmerge). Cukup beri tahu Weblate untuk melakukan komit pada semua terjemahan yang tertunda (Anda dapat melakukannya di Pemeliharaan repositori pada Operasi) dan gabungkan repositori (jika dorong otomatis tidak nyala).
Jika Anda mengalami konflik penggabungan, cara termudah untuk menyelesaikan semua konflik secara lokal di mesin Anda adalah dengan menambahkan Weblate sebagai repositori jarak jauh, menggabungkannya ke hulu, dan memperbaiki konflik apa pun. Setelah Anda mendorong perubahan kembali, Weblate akan dapat menggunakan versi gabungan tanpa membutuhkan tindakan khusus lainnya.
Catatan
If you resolve the conflict in a pull request, merge it with a regular merge commit. Do not squash merge it. Squash merging creates a new commit instead of preserving the Weblate commits, so Weblate might not recognize that its local commits are already included upstream and might need a repository reset to recover.
Catatan
Weblate uses shallow clones by default to reduce cloning time and disk
usage. Because of this, the workflow below works best when you start from an
up-to-date checkout of the upstream repository. If you clone directly from
the exported Weblate repository, or if your upstream checkout is missing
recent commits, git remote update weblate can fail with errors such as
warning: no common commits, bad revision, or missing objects. This
does not necessarily mean that Weblate and the upstream repository have
conflicting changes. Administrators who want to make this workflow more
reliable can adjust VCS_CLONE_DEPTH.
Catatan
Tergantung pada pengaturan Anda, akses ke repositori Weblate mungkin memerlukan autentikasi. Saat menggunakan Eksportir Git bawaan di Weblate, Anda akan diautentikasikan dengan nama pengguna dan kunci API Anda.
Catatan
Weblate serves the Git repository itself, but it does not serve Git LFS
objects. For repositories using Git LFS, clone from the upstream repository
and add Weblate as another remote. If you only need Git-tracked files, you
can clone from Weblate with GIT_LFS_SKIP_SMUDGE=1 to skip downloading
Git LFS objects.
The workflow usually looks like this when you start from an up-to-date checkout of the upstream repository:
# Open an existing up-to-date checkout of the upstream repository or perform
# a fresh one:
git clone UPSTREAM_REPOSITORY_URL
cd REPO
# Commit all pending changes in Weblate, you can do this in the UI as well:
wlc commit
# Lock the translation in Weblate, again this can be done in the UI as well:
wlc lock
# Add Weblate as remote:
git remote add weblate https://hosted.weblate.org/git/project/component/
# You might need to include credentials in some cases:
git remote add weblate https://username:APIKEY@hosted.weblate.org/git/project/component/
# Update weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts:
edit …
git add …
…
git commit
# Rebase changes (if Weblate is configured to do rebases)
git rebase origin/main
# Push changes to upstream repository, Weblate will fetch merge from there:
git push
# Open Weblate for translation:
wlc unlock
Jika Anda menggunakan beberapa cabang di Weblate, Anda dapat melakukan hal yang sama pada semuanya:
# Add and update Weblate remotes
git remote add weblate-one https://hosted.weblate.org/git/project/one/
git remote add weblate-second https://hosted.weblate.org/git/project/second/
git remote update weblate-one weblate-second
# Merge QA_4_7 branch:
git checkout QA_4_7
git merge weblate-one/QA_4_7
... # Resolve conflicts
git commit
# Merge main branch:
git checkout main
git merge weblates-second/main
... # Resolve conflicts
git commit
# Push changes to the upstream repository, Weblate will fetch the merge from there:
git push
Dalam kasus berkas PO gettext, ada cara untuk menggabungkan konflik dengan cara semi otomatis:
Ambil dan simpan klon lokal repositori Git Weblate. Dapatkan juga klon lokal baru kedua dari repositori Git hulu (yaitu, Anda memerlukan dua salinan repositori Git hulu: Satu salinan utuh dan satu salinan yang berfungsi):
# Add remote:
git remote add weblate /path/to/weblate/snapshot/
# Update Weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts in the PO files:
for PO in `find . -name '*.po'` ; do
msgcat --use-first /path/to/weblate/snapshot/$PO\
/path/to/upstream/snapshot/$PO -o $PO.merge
msgmerge --previous --lang=${PO%.po} $PO.merge domain.pot -o $PO
rm $PO.merge
git add $PO
done
git commit
# Push changes to the upstream repository, Weblate will fetch merge from there:
git push
Bagaimana caranya untuk menerjemahkan beberapa cabang sekaligus?¶
Weblate mendukung pemindahan perubahan terjemahan dalam satu Konfigurasi proyek. Untuk setiap Konfigurasi komponen yang mengaktifkannya (perilaku bawaan), perubahan yang dibuat akan otomatis disebarkan ke yang lain. Dengan cara ini, terjemahan tetap sinkron meskipun cabangnya sendiri sudah sangat berbeda, dan tidak mungkin untuk begitu saja menggabungkan perubahan terjemahan di antara cabang tersebut.
Setelah Anda menggabungkan perubahan dari Weblate, Anda mungkin harus menggabungkan cabang ini (tergantung pada alur kerja pengembangan Anda) dengan membuang perbedaan:
git merge -s ours origin/maintenance
Bagaimana caranya untuk menerjemahkan proyek multi-platform?¶
Weblate mendukung berbagai format berkas (lihat Format berkas lokalisasi) dan pendekatan termudah adalah menggunakan format asli untuk setiap platform.
Setelah Anda menambahkan semua berkas terjemahan platform sebagai komponen dalam satu proyek (lihat Menambahkan proyek dan komponen terjemahan), Anda dapat memanfaatkan fitur propagasi terjemahan (dinyalakan secara bawaan, dan dapat dimatikan di Konfigurasi komponen) untuk menerjemahkan string untuk semua platform sekaligus.
Bagaimana cara mengekspor repositori Git yang digunakan Weblate?¶
Tidak ada yang istimewa tentang repositori ini, ia berada di direktori DATA_DIR dan bernama vcs/<project>/<component>/. Jika Anda memiliki akses SSH ke mesin ini, Anda dapat menggunakan repositori ini secara langsung.
Untuk akses anonim, Anda mungkin ingin menjalankan server Git dan membiarkannya menyajikan repositori ke dunia luar.
Alternatifnya, Anda dapat menggunakan Eksportir Git di dalam Weblate untuk mengotomatisasikan ini.
Apa saja pilihan untuk mendorong perubahan kembali ke hulu?¶
Hal ini sangat bergantung pada pengaturan Anda. Weblate cukup fleksibel dalam hal ini. Berikut adalah contoh beberapa alur kerja yang digunakan dengan Weblate:
Weblate secara otomatis mendorong dan menggabungkan perubahan (lihat Bagaimana caranya untuk membuat workflow otomatis?).
Anda secara manual memberi tahu Weblate untuk melakukan pendorongan (Weblate memerlukan akses pendorongan ke repositori hulu).
Seseorang secara manual menggabungkan perubahan dari repositori git Weblate ke repositori hulu.
Seseorang menulis ulang riwayat yang dihasilkan oleh Weblate (mis. dengan menghilangkan komit gabungan), menggabungkan perubahan, dan memberi tahu Weblate untuk mengatur ulang konten di repositori hulu.
Tentu saja Anda bebas mencampur semua ini sesuai keinginan.
Bagaimana saya dapat membatasi akses Weblate hanya ke terjemahan, tanpa mengekspos kode sumber ke dalamnya?¶
Anda dapat menggunakan git submodule untuk memisahkan terjemahan dari kode sumber namun tetap memiliki kontrol versi.
Buat repositori dengan berkas terjemahan Anda.
Tambahkan ini sebagai submodul ke kode Anda:
git submodule add git@example.com:project-translations.git path/to/translations
Tautkan Weblate ke repositori ini, ia tidak lagi memerlukan akses ke repositori yang berisi kode sumber Anda.
Anda dapat memperbarui repositori utama dengan terjemahan dari Weblate dengan:
git submodule update --remote path/to/translations
Silakan lihat dokumentasi git submodule untuk keterangan lebih rinci.
Bagaimana saya dapat memeriksa apakah Weblate saya telah diatur dengan benar?¶
Weblate menyertakan serangkaian pemeriksaan konfigurasi yang dapat Anda lihat di antarmuka admin, cukup ikuti tautan Laporan kinerja di antarmuka admin, atau buka URL /manage/performance/ secara langsung.
Lihat juga
Mengapa semua komit dilakukan oleh Weblate <noreply@weblate.org>?¶
Weblate menggunakan Weblate <noreply@weblate.org> sebagai komiter bawaan untuk semua komit, yang dikonfigurasi oleh DEFAULT_COMMITER_EMAIL dan DEFAULT_COMMITER_NAME. Ini adalah pengidentifikasi teknis yang menunjukkan bahwa komit diproses melalui Weblate.
Namun, penulis setiap komit tercatat dengan benar sebagai pengguna individu yang melakukan terjemahan (saat menggunakan Git). Ini berarti Anda dapat melihat siapa sebenarnya yang menerjemahkan setiap string dengan memeriksa kolom penulis komit. Hal yang sama berlaku untuk Mercurial; hanya Subversion yang tidak memiliki kemampuan ini.
Catatan
Dalam Git, terdapat perbedaan antara komiter (orang yang membuat objek komit) dan penulis (orang yang melakukan perubahan). Weblate bertindak sebagai komiter sambil tetap mempertahankan atribusi penerjemah individual sebagai penulis.
Untuk komit yang kepengarangannya tidak dapat ditentukan (seperti perubahan otomatis dari saran anonim atau hasil terjemahan mesin), penulisnya diatur sebagai pengguna anonim. Anda dapat mengkonfigurasikan nama dan surel pengguna anonim di ANONYMOUS_USER_NAME.
Lihat juga
Bagaimana cara memindahkan berkas di repositori tanpa kehilangan riwayat di Weblate?¶
Agar riwayat, komentar, atau tangkapan layar tetap terhubung ke string setelah mengubah lokasi berkas, Anda perlu memastikan bahwa string ini tidak pernah dihapus di Weblate. Penghapusan ini dapat terjadi jika repositori Weblate diperbarui, tetapi konfigurasi komponen masih mengarah ke berkas lama. Hal ini membuat Weblate berasumsi bahwa semua terjemahan harus dihapus.
Solusi untuk ini adalah melakukan operasi secara sinkron dengan Weblate:
Kunci komponen yang terpengaruh di Weblate.
Komit perubahan yang tertunda dan menggabungkannya ke repositori hulu.
Nonaktifkan penerimaan kait web Konfigurasi proyek; ini mencegah Weblate segera melihat perubahan dalam repositori.
Lakukan perubahan yang diperlukan dalam repo (misalnya menggunakan git mv), dorong ke repositori hulu.
Ubah Konfigurasi komponen agar sesuai dengan pengaturan baru; saat mengubah konfigurasi, Weblate akan mengambil repositori yang diperbarui dan memperhatikan lokasi yang berubah sambil tetap mempertahankan string yang ada.
Buka kunci komponen dan aktifkan kembali kait dalam konfigurasi proyek.
Petunjuk
Cadangan tingkat proyek mungkin berguna untuk dilakukan sebelum perubahan yang mengganggu tersebut.
Penggunaan¶
Bagaimana caranya untuk meninjau terjemahan orang lain?¶
Ada beberapa alur kerja berbasis tinjauan yang tersedia di Weblate, lihat Alur kerja terjemahan.
Anda dapat berlangganan pada perubahan apa pun yang dibuat di Notifikasi dan kemudian memeriksa kontribusi orang lain saat mereka masuk melalui surel.
Tersedia alat tinjauan di bagian bawah tampilan terjemahan, tempat Anda dapat memilih untuk menelusuri terjemahan yang dibuat oleh orang lain sejak tanggal tertentu.
Lihat juga
Bagaimana cara memberikan umpan balik pada string sumber?¶
Pada tab konteks di bawah terjemahan, Anda dapat menggunakan tab Komentar untuk memberikan masukan pada string sumber, atau mendiskusikannya dengan penerjemah lain.
Lihat juga
Bagaimana saya bisa menggunakan terjemahan yang ada saat menerjemahkan?¶
Semua terjemahan dalam Weblate dapat digunakan berkat memori terjemahan bersama.
Anda dapat mengimpor berkas memori terjemahan yang ada ke Weblate.
Gunakan fungsi impor untuk memuat kompendium sebagai terjemahan, saran, atau terjemahan yang perlu ditinjau. Ini adalah pendekatan terbaik untuk terjemahan sekali pakai menggunakan kompendium atau basis data terjemahan serupa.
Anda dapat mengatur tmserver dengan semua basis data yang Anda miliki dan membiarkan Weblate menggunakannya. Ini berguna jika Anda ingin menggunakannya beberapa kali selama terjemahan.
Pilihan lainnya adalah menerjemahkan semua proyek terkait dalam satu instansi Weblate, yang akan membuatnya secara otomatis mengambil terjemahan dari proyek lain juga.
Lihat juga
Apakah Weblate memperbarui berkas terjemahan selain terjemahan?¶
Weblate mencoba meminimalkan perubahan pada berkas terjemahan. Untuk beberapa format berkas, sayangnya hal ini dapat menyebabkan pemformatan ulang berkas. Jika Anda ingin berkas tetap diformat sesuai keinginan Anda, silakan gunakan kait pra-komit untuk itu.
Lihat juga
Bagaimana saya menggabungkan berkas POT yang diperbarui dengan terjemahan PO?¶
Lihat Memperbarui berkas bahasa target untuk informasi tentang memperbarui berkas PO saat templat POT berubah.
Dari mana definisi bahasa berasal dan bagaimana saya dapat menambahkan definisi saya sendiri?¶
Kumpulan definisi bahasa dasar disertakan dalam Weblate dan Translate-toolkit. Ini mencakup lebih dari 150 bahasa dan mencakup informasi tentang bentuk jamak atau arah teks.
Anda bebas menentukan bahasa Anda sendiri di antarmuka administratif, Anda hanya perlu memberikan info tentangnya.
Lihat juga
Bisakah Weblate menyoroti perubahan dalam string fuzzy?¶
Weblate mendukung hal ini, namun memerlukan data untuk menunjukkan perbedaannya.
Untuk berkas PO Gettext, Anda harus meneruskan parameter --previous ke msgmerge saat memperbarui berkas PO, misalnya:
msgmerge --previous -U po/cs.po po/phpmyadmin.pot
Untuk terjemahan ekabahasa, Weblate dapat menemukan string sebelumnya berdasarkan ID, sehingga perbedaannya akan ditampilkan secara otomatis.
Mengapa Weblate masih menampilkan string terjemahan lama saat saya memperbarui templatnya?¶
Weblate tidak mencoba memanipulasi berkas terjemahan dengan cara apa pun selain mengizinkan penerjemah untuk menerjemahkan. Oleh karena itu, Weblate juga tidak memperbarui berkas terjemahan ketika templat atau kode sumber telah diubah. Anda cukup melakukannya secara manual dan mendorong perubahan ke repositori, dan Weblate akan mengambil perubahan tersebut secara otomatis.
Catatan
Biasanya merupakan ide yang baik untuk menggabungkan perubahan yang dibuat di Weblate sebelum memperbarui berkas terjemahan, karena jika tidak, Anda biasanya akan berakhir dengan beberapa konflik untuk digabungkan.
Bagaimana cara menangani penggantian nama berkas terjemahan?¶
Saat mengganti nama berkas di repositori, Weblate mungkin menganggapnya sebagai penghapusan dan penambahan berkas. Hal ini dapat mengakibatkan hilangnya riwayat string, komentar, dan saran.
Untuk menghindari hal itu, lakukan penggantian nama dengan langkah berikut:
Kunci komponen terjemahan di Mengelola repositori VCS lokal.
Komit perubahan yang tertunda di Mengelola repositori VCS lokal.
Gabungkan perubahan Weblate ke repositori hulu.
Nonaktifkan penerimaan pembaruan melalui kait menggunakan Aktifkan pengait.
Lakukan penggantian nama berkas dalam repositori.
Perbarui konfigurasi komponen agar sesuai dengan nama berkas baru.
Aktifkan kait pembaruan dan buka kunci komponen.
Petunjuk
Cadangan tingkat proyek mungkin berguna untuk dilakukan sebelum perubahan yang mengganggu tersebut.
Pemecahan masalah¶
Permintaan terkadang gagal dengan galat "terlalu banyak berkas yang terbuka"¶
Hal ini terkadang terjadi ketika repositori Git Anda terlalu besar dan Anda memiliki banyak repositori. Mengompresi repositori Git akan memperbaiki situasi ini.
Cara termudah untuk melakukan ini adalah dengan menjalankan:
# Go to DATA_DIR directory
cd data/vcs
# Compress all Git repositories
for d in */* ; do
pushd $d
git gc
popd
done
Lihat juga
Saat mengakses situs saya mendapatkan galat "Permintaan Buruk (400)"¶
Hal ini kemungkinan besar disebabkan oleh konfigurasi ALLOWED_HOSTS yang salah. Pengaturan ini harus memuat semua nama hos yang ingin Anda akses di Weblate Anda. Misalnya:
ALLOWED_HOSTS = ["weblate.example.com", "weblate", "localhost"]
Lihat juga
Apa maksudnya "Ada lebih banyak berkas untuk satu bahasa (en)"?¶
Hal ini biasanya terjadi ketika Anda memiliki berkas terjemahan untuk bahasa sumber. Weblate melacak string sumber dan menyimpan bahasa sumber untuk ini. Berkas tambahan untuk bahasa yang sama tidak diproses.
Jika Anda menginginkan terjemahan ke bahasa sumber, silakan ubah Bahasa sumber di pengaturan komponen. Anda dapat menggunakan Inggris (Pengembang) sebagai bahasa sumber, atau menggunakan Gerbang kualitas untuk string sumber.
Jika berkas terjemahan untuk bahasa sumber tidak diperlukan, silakan hapus dari repositori.
Jika berkas terjemahan untuk bahasa sumber diperlukan, tetapi harus diabaikan oleh Weblate, harap sesuaikan Filter bahasa untuk mengecualikannya.
Petunjuk
Anda mungkin juga mendapatkan pesan galat serupa untuk bahasa lain. Dalam hal ini, kemungkinan besar penyebabnya adalah beberapa berkas dipetakan ke satu bahasa di Weblate.
Hal ini dapat disebabkan oleh penggunaan kode bahasa yang secara bersamaan dengan kode baru (ja dan jp untuk Jepang) atau penggunaan kode spesifik negara dan kode umum (fr dan fr_FR). Lihat Mengurai kode bahasa untuk rincian lebih lanjut.
Fitur¶
Apakah Weblate mendukung VCS lain selain Git dan Mercurial?¶
Weblate currently does not have native support for anything other than Git (with extended support for Permintaan tarik GitHub, Gerrit review requests, and Subversion) and Mercurial, but it is possible to write backends for other VCSes.
Weblate juga mendukung operasi tanpa VCS, lihat Berkas lokal.
Catatan
Untuk dukungan asli VCS lainnya, Weblate memerlukan penggunaan VCS terdistribusi, dan mungkin dapat disesuaikan agar dapat bekerja dengan apa pun selain Git dan Mercurial, tetapi seseorang harus mengimplementasikan dukungan ini.
Lihat juga
Bagaimana Weblate memberi kredit kepada penerjemah?¶
Setiap perubahan yang dibuat di Weblate akan dikomit ke VCS atas nama penerjemah. Dengan demikian, setiap perubahan memiliki otorisasi yang tepat, dan Anda dapat melacaknya menggunakan alat VCS standar yang Anda gunakan untuk kode.
Selain itu, ketika format berkas terjemahan mendukungnya, kepala berkas akan diperbarui untuk menyertakan nama penerjemah.
Lihat juga
Kenapa Weblate memaksa untuk menampilkan semua berkas PO dalam satu pohon?¶
Weblate dirancang sedemikian rupa sehingga setiap berkas PO direpresentasikan sebagai satu komponen. Hal ini bermanfaat bagi penerjemah, sehingga mereka tahu apa yang sebenarnya mereka terjemahkan.
Berubah pada versi 4.2: Penerjemah dapat menerjemahkan semua komponen proyek ke dalam bahasa tertentu secara keseluruhan.
Kenapa Weblate menggunakan kode bahasa seperti sr_Latn atau zh_Hant?¶
Ini adalah kode bahasa yang didefinisikan oleh RFC 5646 untuk lebih menunjukkan bahwa keduanya benar-benar bahasa yang berbeda, bukan pengubah yang sebelumnya salah digunakan (untuk varian @latin) atau kode negara (untuk Mandarin).
Weblate masih memahami kode bahasa lawas dan akan memetakannya ke kode saai ini - misalnya sr@latin akan ditangani sebagai sr_Latn atau zh@CN sebagai zh_Hans.
Catatan
Weblate secara bawaan menggunakan kode bahasa gaya POSIX dengan garis bawah, lihat Definisi bahasa untuk rincian lebih lanjut.