Integrasi kontrol versi

Weblate currently supports Git (with extended support for Permintaan tarik GitHub, Permintaan penggabungan GitLab, Permintaan tarik Gitea, Gerrit review requests, Subversion, Permintaan penarikan Bitbucket Cloud, Permintaan penarikan Bitbucket Data Center, and Permintaan penarikan Azure DevOps) and Mercurial as version control back-ends.

For provider-specific setup steps that combine repository access, incoming notifications, and pushing translations back, see Code hosting integrations.

Mengakses repositori

Repositori VCS yang ingin Anda gunakan harus dapat diakses oleh Weblate. Dengan repositori yang tersedia untuk umum, Anda hanya perlu memasukkan URL yang benar (misalnya https://github.com/WeblateOrg/weblate.git), tetapi untuk repositori privat atau URL dorong, pengaturannya lebih rumit dan memerlukan autentikasi.

Mengakses repositori dari Hosted Weblate

Catatan

Bagian ini hanya berlaku untuk Hosted Weblate (hosted.weblate.org). Jika Anda menjalankan instansi Weblate yang dihos sendiri, silakan lihat bagian selanjutnya sebagai gantinya.

Untuk Hosted Weblate, ada pengguna push khusus yang terdaftar di GitHub, Bitbucket, Codeberg, dan GitLab (dengan nama pengguna weblate, surel hosted@weblate.org, dan nama atau deskripsi profil Pengguna dorong Weblate).

Petunjuk

Mungkin ada lebih banyak pengguna Weblate di platform yang ditunjuk untuk instansi Weblate lainnya. Pencarian melalui surel hosted@weblate.org disarankan untuk menemukan pengguna yang tepat untuk Hosted Weblate.

Anda perlu menambahkan pengguna ini sebagai kolaborator dan memberinya izin yang sesuai ke repositori Anda (hanya baca diperbolehkan untuk kloning, tulis diperlukan untuk mendorong). Tergantung pada layanan dan pengaturan organisasi Anda, hal ini akan segera dilakukan, atau memerlukan konfirmasi di sisi Weblate.

On GitHub, you need to add or invite the Hosted Weblate weblate user with write access even when you use the Hosted Weblate GitHub app. The app handles incoming notifications from GitHub, but pushing changes back still uses the Hosted Weblate weblate user.

Pengguna weblate di GitHub menerima undangan secara otomatis dalam waktu lima menit. Pemrosesan manual mungkin diperlukan pada layanan lain, jadi harap bersabar.

Setelah pengguna weblate ditambahkan ke repositori Anda, Anda dapat mengkonfigurasikan Repositori kode sumber dan URL dorong repositori menggunakan protokol SSH (misalnya git@github.com:WeblateOrg/weblate.git).

Mengakses repositori di situs pengehosan kode (GitHub, GitLab, Bitbucket, Azure DevOps, ...)

Catatan

Bagian ini berlaku untuk instansi Weblate yang dihos sendiri. Jika Anda menggunakan Hosted Weblate (hosted.weblate.org), lihat Mengakses repositori dari Hosted Weblate sebagai gantinya.

For self-hosted Weblate, a single private repository is often easiest to set up using an HTTPS repository URL with an access token, see Code hosting integrations.

For multiple repositories, create a dedicated code hosting user associated with a Weblate SSH key (see Kunci SSH Weblate). This way you associate Weblate SSH key with a single user, because platforms frequently enforce single use of an SSH key. Grant this user access to the repositories, and use SSH URLs to access them (see Repositori SSH).

Repositori SSH

One common method to access private repositories is based on SSH. Authorize the public Weblate SSH key (see Kunci SSH Weblate) to access the upstream repository this way.

Peringatan

On GitHub, each key can only be used once, see GitHub repository access and Mengakses repositori dari Hosted Weblate.

Weblate juga menyimpan sidik jari kunci host pada sambungan pertama, dan gagal terhubung ke host jika diubah kemudian (lihat Memverifikasikan kunci hos SSH).

Jika penyesuaian diperlukan, lakukan dari antarmuka admin Weblate:

_images/ssh-keys.webp

Kunci SSH Weblate

Berubah pada versi 4.17: Weblate sekarang menghasilkan kunci SSH RSA dan Ed25519. Penggunaan Ed25519 direkomendasikan untuk pengaturan baru.

Kunci publik Weblate dapat dilihat oleh semua pengguna yang menelusuri halaman Tentang.

Admin dapat membuat atau menampilkan kunci publik yang saat ini digunakan oleh Weblate dalam sambungan (dari Kunci SSH) di halaman awal antarmuka admin.

Catatan

Kunci SSH privat yang sesuai saat ini tidak dapat memiliki kata sandi, jadi pastikan kunci tersebut dilindungi dengan baik.

Petunjuk

Buat cadangan kunci SSH Weblate privat yang dihasilkan.

Memverifikasikan kunci hos SSH

Weblate secara otomatis menyimpan kunci hos SSH pada akses pertama dan mengingatnya untuk penggunaan lebih lanjut.

Jika Anda ingin memverifikasikan sidik jari kunci sebelum terhubung ke repositori, tambahkan kunci hos SSH server yang akan Anda akses di Tambahkan kunci hos, dari bagian yang sama di antarmuka admin. Masukkan nama hos yang akan Anda akses (mis. gitlab.com), lalu tekan Kirim. Pastikan sidik jarinya cocok dengan server yang Anda tambahkan.

Kunci tambahan dengan sidik jari ditunjukkan dalam pesan konfirmasi:

_images/ssh-keys-added.webp

Menghubungkan ke server SSH lawas

Rilis OpenSSH terkini (misalnya yang digunakan dalam kontainer Docker Weblate) menonaktifkan tanda tangan RSA menggunakan algoritma hash SHA-1 secara bawaan. Perubahan ini dilakukan karena algoritma hash SHA-1 rusak secara kriptografis, dan tabrakan hash dengan awalan terpilih dapat terjadi untuk <USD$50K.

Bagi sebagian besar pengguna, perubahan ini seharusnya tidak terlihat dan tidak perlu mengganti kunci ssh-rsa. OpenSSH telah mendukung tanda tangan RFC8332 RSA/SHA-256/512 sejak rilis 7.2 dan kunci ssh-rsa yang ada akan secara otomatis menggunakan algoritma yang lebih kuat jika memungkinkan.

Ketidakcocokan lebih mungkin terjadi saat menghubungkan ke implementasi SSH lama yang belum diperbarui atau belum dipantau secara ketat terkait peningkatan protokol SSH. Sambungan SSH ke server tersebut akan gagal jika:

no matching host key type found. Their offer: ssh-rsa

Untuk kasus ini, RSA/SHA1 mungkin perlu diaktifkan kembali secara selektif untuk memungkinkan sambungan dan/atau autentikasi pengguna melalui opsi HostkeyAlgorithms dan PubkeyAcceptedAlgorithms. Misalnya, bait berikut dalam DATA_DIR/ssh/config akan mengaktifkan RSA/SHA1 untuk autentikasi host dan pengguna untuk satu host tujuan:

Host legacy-host
   HostkeyAlgorithms +ssh-rsa
   PubkeyAcceptedAlgorithms +ssh-rsa

Kami sarankan mengaktifkan RSA/SHA1 hanya sebagai tindakan sementara hingga implementasi lawas dapat ditingkatkan atau dikonfigurasikan ulang dengan jenis kunci lain (seperti ECDSA atau Ed25519).

Repositori GitHub

Detailed GitHub repository access is covered in GitHub repository access.

Repositori GitLab

Detailed GitLab repository access is covered in GitLab repository access.

URL internal Weblate

Berbagi satu pengaturan repositori antar komponen yang berbeda dengan merujuk penempatannya sebagai weblate://project/component di komponen lain (yang tertaut). Dengan cara ini, komponen yang tertaut menggunakan konfigurasi repositori VCS dari komponen utama (yang direferensikan).

Peringatan

Menghapus komponen utama juga menghapus komponen tertaut.

Weblate secara otomatis menyesuaikan URL repositori saat membuat komponen jika menemukan komponen dengan pengaturan repositori yang cocok. Anda dapat menimpakan pengaturan ini di langkah terakhir konfigurasi komponen.

Alasan untuk menggunakan ini:

  • Menghemat ruang cakram pada server, repositori disimpan hanya sekali.

  • Membuat pembaruan lebih cepat, hanya satu repositori yang diperbarui.

  • Hanya ada satu repositori yang diekspor dengan terjemahan Weblate (lihat Eksportir Git).

  • Beberapa pengaya dapat beroperasi pada beberapa komponen yang berbagi satu repositori, misalnya Lumatkan komit Git.

Repositori HTTPS

Untuk mengakses repositori HTTPS yang dilindungi, sertakan nama pengguna dan kata sandi di URL. Jangan khawatir, Weblate akan menghapus informasi ini ketika URL ditampilkan kepada pengguna (bahkan jika diizinkan untuk melihat URL repositori tersebut).

Misalnya URL GitHub dengan autentikasi yang ditambahkan mungkin terlihat seperti: https://user:your_access_token@github.com/WeblateOrg/weblate.git.

Jika Anda tidak memberikan kredensial di URL dan repositori memerlukannya, Git akan gagal dengan galat:

fatal: could not read Username for 'https://github.com': terminal prompts disabled

Berubah pada versi 5.10.2: Weblate menggunakan autentikasi proaktif dengan Git 2.46.0 dan yang lebih baru saat kredensial HTTP diberikan.

Hal ini memungkinkan untuk mengakses repositori Azure DevOps dan membuat akses ke repositori yang diautentikasikan lebih cepat.

Catatan

Jika nama pengguna atau kata sandi Anda berisi karakter khusus, karakter tersebut harus dienkodekan URL, misalnya https://user%40example.com:%24password%23@bitbucket.org/….

Menggunakan proksi

Jika Anda perlu mengakses repositori HTTP/HTTPS VCS menggunakan server proksi, konfigurasikan VCS untuk menggunakannya.

Ini dapat dilakukan menggunakan variabel lingkungan http_proxy, https_proxy, dan all_proxy, (seperti yang dijelaskan dalam dokumentasi cURL) atau dengan menerapkannya dalam konfigurasi VCS, misalnya:

git config --global http.proxy http://user:password@proxy.example.com:80

Catatan

Konfigurasi proksi perlu dilakukan di bawah pengguna yang menjalankan Weblate (lihat juga Izin sistem berkas) dan dengan HOME=$DATA_DIR/home (lihat DATA_DIR), jika tidak, Git yang dijalankan oleh Weblate tidak akan menggunakannya.

Git

Petunjuk

Weblate memerlukan Git 2.28 atau yang lebih baru.

Lihat juga

Lihat Mengakses repositori untuk informasi tentang cara mengakses berbagai jenis repositori.

Git dengan dorong paksa

Ini berperilaku persis seperti Git itu sendiri, satu-satunya perbedaan adalah ia selalu memaksa dorong. Ini hanya berlaku jika menggunakan repositori terpisah untuk terjemahan.

Peringatan

Gunakan dengan hati-hati, karena hal ini mudah menyebabkan hilangnya komit di repositori hulu Anda.

Menyesuaikan konfigurasi Git

Weblate memanggil semua perintah VCS dengan HOME=$DATA_DIR/home (lihat DATA_DIR), oleh karena itu penyuntingan konfigurasi pengguna perlu dilakukan di DATA_DIR/home/.git.

Permintaan tarik GitHub

Detailed GitHub pull request setup is covered in Permintaan tarik GitHub.

Permintaan penggabungan GitLab

Detailed GitLab merge request setup is covered in Permintaan penggabungan GitLab.

Permintaan tarik Gitea

Detailed Gitea pull request setup is covered in Permintaan tarik Gitea.

Permintaan penarikan Bitbucket Data Center

Detailed Bitbucket Data Center pull request setup is covered in Permintaan penarikan Bitbucket Data Center.

Permintaan penarikan Bitbucket Cloud

Detailed Bitbucket Cloud pull request setup is covered in Permintaan penarikan Bitbucket Cloud.

Permintaan penggabungan Pagure

Detailed Pagure merge request setup is covered in Permintaan penggabungan Pagure.

Gerrit

Detailed Gerrit review request setup is covered in Gerrit review requests.

Permintaan penarikan Azure DevOps

Detailed Azure DevOps pull request setup is covered in Permintaan penarikan Azure DevOps.

Mercurial

Mercurial adalah VCS lain yang dapat Anda gunakan langsung di Weblate.

Catatan

Seharusnya berfungsi dengan versi Mercurial mana pun, tetapi terkadang ada perubahan yang tidak kompatibel pada antarmuka baris perintah yang merusak integrasi Weblate.

Lihat juga

Lihat Mengakses repositori untuk informasi tentang cara mengakses berbagai jenis repositori.

Subversion

Weblate menggunakan git-svn untuk berinteraksi dengan repositori subversion. Ini adalah skrip Perl yang memungkinkan subversion digunakan oleh klien Git, memungkinkan pengguna untuk memelihara klon penuh dari repositori internal dan komit secara lokal.

Catatan

Weblate mencoba untuk mendeteksi tata letak repositori Subversion secara otomatis - ia mendukung URL langsung untuk cabang atau repositori dengan tata letak standar (branch/,tag/ dan trunk/). Info lebih lanjut tentang ini dapat ditemukan di Dokumentasi git-svn. Jika repositori Anda tidak memiliki tata letak standar dan Anda menemukan galat, coba sertakan nama cabang di URL repositori dan biarkan cabang kosong.

Kredensial Subversion

Weblate mengharapkan Anda untuk menerima sertifikat terlebih dahulu (dan kredensial Anda jika diperlukan). Weblate akan mencoba memasukkannya ke dalam direktori DATA_DIR. Terima sertifikat dengan menggunakan svn sekali dengan variabel lingkungan $HOME yang diatur ke DATA_DIR:

# Use DATA_DIR as configured in Weblate settings.py, it is /app/data in the Docker
HOME=${DATA_DIR}/home svn co https://svn.example.com/example

Lihat juga

DATA_DIR

Berkas lokal

Petunjuk

Di bawahnya, ini menggunakan Git. Ini membutuhkan Git yang sudah terpasang dan memungkinkan Anda beralih menggunakan Git secara asli dengan riwayat terjemahan yang lengkap.

Weblate juga dapat beroperasi tanpa VCS jarak jauh. Terjemahan awal diimpor dengan mengunggahnya. Nantinya, Anda dapat mengganti berkas individual dengan mengunggah berkas, atau menambahkan string terjemahan langsung dari Weblate (saat ini hanya tersedia untuk terjemahan ekabahasa).

Di latar belakang Weblate membuat repositori git untuk Anda dan semua perubahan dilacak. Jika Anda kemudian memutuskan untuk menggunakan VCS untuk menyimpan terjemahan, Anda sudah memiliki repositori di dalam Weblate dapat mendasarkan integrasi Anda.