Lokalisasi berkelanjutan: setiap bahasa, di setiap merge.
Lokalisasi berkelanjutan menerjemahkan string baru dan yang berubah seiring perubahan kode Anda, bukan dalam fase terpisah sebelum setiap rilis. Setiap bahasa tetap siap diluncurkan bersama kode yang membutuhkannya.
Apa itu lokalisasi berkelanjutan?
Lokalisasi berkelanjutan adalah cara kerja di mana string baru dan yang berubah dikirim untuk diterjemahkan secara otomatis segera setelah berubah, dan teks terjemahan kembali ke produk tanpa perlu dijadwalkan oleh siapa pun.
Tidak ada fase penerjemahan karena penerjemahan tidak pernah berhenti. Seorang pengembang menggabungkan string, terjemahan mengikuti alur yang sama dengan kode, dan rilis tidak menunggu file dari siapa pun.
Ini adalah setengah dari continuous delivery yang berfokus pada lokalisasi. Tim yang melakukan merge setiap hari dan menyerahkan terjemahan setiap beberapa minggu akan memiliki bahasa yang tertinggal dari kodenya selama sebagian besar bulan. Lokalisasi berkelanjutan memperkecil kesenjangan itu hingga sepanjang satu kali proses.
Ini tidak berarti output mesin langsung tayang tanpa dibaca. Anda memutuskan string mana yang memerlukan tinjauan manusia, dan rilis hanya dapat menyertakan konten yang telah ditinjau.
Perbedaannya adalah kapan penerjemahan dilakukan, bukan siapa yang melakukannya.
| Perubahan | Serah terima batch | Berkelanjutan |
|---|---|---|
| Berdampingan | ||
| Kapan penerjemahan terjadi | Dalam fase sebelum setiap rilis | Saat setiap string berubah |
| Apa yang memicunya | Seseorang mengekspor file | Push, merge, atau perubahan konten |
| Ukuran setiap bagian | String selama berminggu-minggu sekaligus | String dalam satu perubahan |
| Apa yang ditunggu oleh rilis | File untuk kembali | Peninjauan, pada string yang Anda tandai untuk itu |
| Perubahan salinan terlambat | Perjalanan bolak-balik lainnya | Menjalankan ulang kunci tersebut |
| Apa yang digunakan penerjemah sebagai acuan | Spreadsheet berisi string | Baris, dengan istilah glosarium, kecocokan memori, dan tangkapan layarnya |
| Bahasa saat peluncuran | Bertahap, satu gelombang demi satu gelombang | Bersamaan, dengan fitur |
- Kapan penerjemahan terjadi
- Dalam fase sebelum setiap rilis
- Apa yang memicunya
- Seseorang mengekspor file
- Ukuran setiap bagian
- String selama berminggu-minggu sekaligus
- Apa yang ditunggu oleh rilis
- File untuk kembali
- Perubahan salinan terlambat
- Perjalanan bolak-balik lainnya
- Apa yang digunakan penerjemah sebagai acuan
- Spreadsheet berisi string
- Bahasa saat peluncuran
- Bertahap, satu gelombang demi satu gelombang
- Kapan penerjemahan terjadi
- Saat setiap string berubah
- Apa yang memicunya
- Push, merge, atau perubahan konten
- Ukuran setiap bagian
- String dalam satu perubahan
- Apa yang ditunggu oleh rilis
- Peninjauan, pada string yang Anda tandai untuk itu
- Perubahan salinan terlambat
- Menjalankan ulang kunci tersebut
- Apa yang digunakan penerjemah sebagai acuan
- Baris, dengan istilah glosarium, kecocokan memori, dan tangkapan layarnya
- Bahasa saat peluncuran
- Bersamaan, dengan fitur
Cara kerja lokalisasi berkelanjutan
Ikuti satu string baru melalui siklusnya. Setiap tahap menunjukkan apa yang sebenarnya akan Anda lihat.
Perubahan mencapai Transglot melalui CLI, GitHub Action, atau aplikasi di host Git Anda. File sumber diparsing dalam salah satu dari 20 format asli, dan setiap string dibandingkan dengan apa yang sudah dimiliki proyek. Hanya string baru dan yang berubah yang dilanjutkan.
Kecocokan tepat dari memori terjemahan mengisi baris dan tidak memakan biaya kata. Sisanya dikirim ke Glossa dengan glosarium, panduan gaya, dan konteks kunci tersebut.
Placeholder, bentuk jamak, istilah glosarium, dan panjang teks diperiksa pada setiap baris di setiap proses. Placeholder yang rusak, bentuk jamak yang hilang, atau istilah glosarium yang dilarang akan diperbaiki sekali lalu diperiksa ulang; jika gagal untuk kedua kalinya, terjemahan ditolak dan tidak dikirimkan. Baris yang hanya melebihi batas panjang tetap ditulis, dan mulai dari paket Tim, fitur persetujuan otomatis atau proses QA akan menandainya untuk tinjauan.
Proses tidak pernah menimpa baris yang telah diedit atau ditinjau oleh manusia. Jika sumbernya berubah nanti, teks tetap dipertahankan, proses menghitung baris tersebut dan memberi tahu Anda, serta mulai dari paket Tim, saran pembaruan akan menunggu di sampingnya agar seseorang dapat menerimanya.
Aplikasi Git melakukan commit file lokal ke satu cabang sinkronisasi dan menjaga satu pull request tetap mutakhir. Di GitHub, beri komentar /translate pada pull request dan file-file tersebut akan masuk ke cabang pull request itu sendiri. Atau publikasikan ke CDN, dan produk yang berjalan akan membaca perubahan tersebut tanpa perlu rilis sama sekali.
Enam cara lokalisasi berkelanjutan bisa gagal, dan apa yang menghentikan masing-masingnya
Proses menimpa pekerjaan manusia
Setiap penulis memeriksa status baris terlebih dahulu: sebuah proses, kecocokan memori, dan push. Baris yang diedit atau ditinjau oleh manusia tetap dipertahankan, dan proses melaporkannya.
→fr, ditinjau, sumber baru saja berubah
✓dipertahankan, dihitung, dilaporkan
String rusak mencapai produksi
Setiap token yang masuk harus keluar kembali. Pada proyek ICU, pesan yang akan menyebabkan error saat rendering tidak akan disertakan dalam pull request, konektor, dan paket CDN, serta diberi nama dalam proses run.
→{count, plural, one {# article}
✓dikecualikan dari file, diberi nama dalam run
Repositori dipenuhi pull request bot
Satu cabang sinkronisasi dan satu pull request per repositori. Dua push cepat digabungkan ke dalamnya alih-alih membuka yang kedua.
→#812 #815 #819 #823 pembaruan l10n
✓#812 transglot/sync, diperbarui di tempat
Edit sumber meninggalkan terjemahan lama
Setiap baris target mencatat sumber yang digunakan saat penulisan, sehingga string yang berubah diketahui kedaluwarsa di semua bahasa sekaligus, dan hanya kunci tersebut yang diproses ulang.
→Simpan menjadi Simpan draf. fr, de, ja masih menampilkan Simpan
✓fr, de, ja diproses ulang pada satu kunci tersebut
Setiap run menagih seluruh proyek lagi
Ukuran run didasarkan pada apa yang berubah. String yang tidak berubah tidak dikirim, kecocokan memori yang tepat tidak memerlukan biaya kata, dan baris yang dimiliki seseorang ditolak sebelum ada pengeluaran.
→file berisi 48.000 kata
✓run ini: 60 kata
Pull request setengah selesai menghapus file lokal
Jika server melaporkan tidak ada entri untuk suatu lokal, pull request menolak menimpa file yang memiliki konten, dan keluar dengan kode 1 sehingga pipeline berhenti di sana.
→pull: 0 entri untuk ja, file berisi 1.204
✓menolak menimpa locales/ja.json dengan paket kosong
- run 4182 fr: placeholder hilang dari draf, diperbaiki saat percobaan ulang
- run 4182 de: 3 baris disimpan, dimiliki oleh seseorang
- run 4182 ja: 41 baris dari memori, 0 kata
- run 4183 ar: bentuk plural hilang setelah percobaan ulang, baris ditolak
- pull ditulis locales/pt-BR.json
- sync transglot/sync diperbarui, pull request #812
Ketiganya terhubung ke repositori Anda. Perbedaannya terletak pada apa yang terjadi saat Anda melakukan merge.
Dibaca dari halaman masing-masing perusahaan pada 5 November 2026. Baris harga berasal dari halaman perbandingan kami, yang tertaut di bawah, yang menampilkan paket dan perhitungannya. Harga dan paket dapat berubah, jadi periksa sebelum Anda memutuskan.
| Apa yang terjadi | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| String baru digabungkan | Diterjemahkan secara default Push memulai proses. Pengaturan proyek dapat menonaktifkannya. | Diterjemahkan setelah Anda mengaturnya Otomatisasi nonaktif secara default saat pembuatan kunci dan impor file. Alur kerja dengan langkah AI berjalan sesuai jadwalnya. | Diterjemahkan setelah Anda mengaktifkannya Di bawah Pengaturan, Terjemahan Otomatis, fitur ini berjalan setiap kali unggah. Sinkronisasi Git berjalan setiap jam secara default. |
| Terjemahan gagal dalam pemeriksaan | Diperbaiki sekali, lalu ditolak Untuk placeholder rusak, bentuk plural, atau istilah terlarang, pada setiap baris di setiap proses. Kelebihan panjang dicatat. Pada proyek ICU, baris rusak tidak masuk ke pull, konektor, dan CDN. | Pemeriksaan tingkat Error menghentikan penyimpanan di editor Setiap pemeriksaan diatur ke Nonaktif, Peringatan, atau Error. | Pemeriksaan tingkat Error menghentikan penyimpanan Setiap pemeriksaan diatur ke Peringatan atau Error. |
| Seseorang sudah mengedit baris tersebut | Proses menolak untuk menuliskannya Hal yang sama berlaku untuk pencocokan memori dan push. Jika sumber berubah nanti, proses akan melaporkan baris tersebut. | Otomatisasi mengisi nilai kosong secara default Opsi paksa dan tindakan hapus akan menimpa nilai yang sudah terisi. | Opsi mempertahankan baris buatan manusia dan yang disetujui Tersedia juga opsi ganti semua. |
| Pull request pada repositori yang sibuk | Satu cabang, satu pull request Diperbarui di tempat pada setiap push. | Cabang baru untuk setiap pull request Dinamai dengan stempel waktu. | Cabang layanan, disinkronkan setiap jam Setiap jam adalah default, dan intervalnya dapat diubah. |
| Apa yang dihitung oleh paket | Kata diterjemahkan, sekali per bahasa Pencocokan memori eksak tidak dikenakan biaya. Menyimpan string tidak dikenakan biaya. | Kata yang diproses Bahasa dasar dan bahasa target sama-sama dihitung. | Kata yang dihosting Kata untuk diterjemahkan, dikalikan dengan jumlah bahasa target. |
| Yang membiayai AI | Kata dalam paket Tidak ditagih secara terpisah. | Alokasi kata AI per paket Kata AI Standar dan AI Pro merupakan bagian terpisah dari paket. | Saldo terpisah, atau kunci Anda sendiri AI terkelola Crowdin dibayar menggunakan kredit, di luar langganan. |
| Pekerjaan yang sama: 5,000 string dalam 10 bahasa | $39 per bulan Team, terjemahan termasuk | $1,049 per bulan Advanced (billed yearly) | $138 per bulan Pro with 560K hosted words (billed monthly), plus AI |
| GitHub, GitLab, Bitbucket, Azure Repos, CLI, dan server MCP | Semuanya Aplikasi Git dimulai dari paket Team dan mencakup edisi cloud. | Semuanya Integrasi tersedia di semua paket. | Semuanya Juga mencakup Bitbucket Server. |
- String baru digabungkan
- Diterjemahkan secara defaultPush memulai proses. Pengaturan proyek dapat menonaktifkannya.
- Terjemahan gagal dalam pemeriksaan
- Diperbaiki sekali, lalu ditolakUntuk placeholder rusak, bentuk plural, atau istilah terlarang, pada setiap baris di setiap proses. Kelebihan panjang dicatat. Pada proyek ICU, baris rusak tidak masuk ke pull, konektor, dan CDN.
- Seseorang sudah mengedit baris tersebut
- Proses menolak untuk menuliskannyaHal yang sama berlaku untuk pencocokan memori dan push. Jika sumber berubah nanti, proses akan melaporkan baris tersebut.
- Pull request pada repositori yang sibuk
- Satu cabang, satu pull requestDiperbarui di tempat pada setiap push.
- Apa yang dihitung oleh paket
- Kata diterjemahkan, sekali per bahasaPencocokan memori eksak tidak dikenakan biaya. Menyimpan string tidak dikenakan biaya.
- Yang membiayai AI
- Kata dalam paketTidak ditagih secara terpisah.
- Pekerjaan yang sama: 5,000 string dalam 10 bahasa
- $39 per bulanTeam, terjemahan termasuk
- GitHub, GitLab, Bitbucket, Azure Repos, CLI, dan server MCP
- SemuanyaAplikasi Git dimulai dari paket Team dan mencakup edisi cloud.
- String baru digabungkan
- Diterjemahkan setelah Anda mengaturnyaOtomatisasi nonaktif secara default saat pembuatan kunci dan impor file. Alur kerja dengan langkah AI berjalan sesuai jadwalnya.
- Terjemahan gagal dalam pemeriksaan
- Pemeriksaan tingkat Error menghentikan penyimpanan di editorSetiap pemeriksaan diatur ke Nonaktif, Peringatan, atau Error.
- Seseorang sudah mengedit baris tersebut
- Otomatisasi mengisi nilai kosong secara defaultOpsi paksa dan tindakan hapus akan menimpa nilai yang sudah terisi.
- Pull request pada repositori yang sibuk
- Cabang baru untuk setiap pull requestDinamai dengan stempel waktu.
- Apa yang dihitung oleh paket
- Kata yang diprosesBahasa dasar dan bahasa target sama-sama dihitung.
- Yang membiayai AI
- Alokasi kata AI per paketKata AI Standar dan AI Pro merupakan bagian terpisah dari paket.
- Pekerjaan yang sama: 5,000 string dalam 10 bahasa
- $1,049 per bulanAdvanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, CLI, dan server MCP
- SemuanyaIntegrasi tersedia di semua paket.
- String baru digabungkan
- Diterjemahkan setelah Anda mengaktifkannyaDi bawah Pengaturan, Terjemahan Otomatis, fitur ini berjalan setiap kali unggah. Sinkronisasi Git berjalan setiap jam secara default.
- Terjemahan gagal dalam pemeriksaan
- Pemeriksaan tingkat Error menghentikan penyimpananSetiap pemeriksaan diatur ke Peringatan atau Error.
- Seseorang sudah mengedit baris tersebut
- Opsi mempertahankan baris buatan manusia dan yang disetujuiTersedia juga opsi ganti semua.
- Pull request pada repositori yang sibuk
- Cabang layanan, disinkronkan setiap jamSetiap jam adalah default, dan intervalnya dapat diubah.
- Apa yang dihitung oleh paket
- Kata yang dihostingKata untuk diterjemahkan, dikalikan dengan jumlah bahasa target.
- Yang membiayai AI
- Saldo terpisah, atau kunci Anda sendiriAI terkelola Crowdin dibayar menggunakan kredit, di luar langganan.
- Pekerjaan yang sama: 5,000 string dalam 10 bahasa
- $138 per bulanPro with 560K hosted words (billed monthly), plus AI
- GitHub, GitLab, Bitbucket, Azure Repos, CLI, dan server MCP
- SemuanyaJuga mencakup Bitbucket Server.
Mulai dari mana pun string Anda berada. Setiap pintu menuju ke pipeline yang sama.
Cara mengatur lokalisasi berkelanjutan
- 01
Ekstrak string dari kode
Setiap string yang terlihat oleh pengguna memerlukan kunci stabil dalam file lokal. Transglot mendukung 20 format, jadi gunakan format yang sudah Anda miliki.
jsonyamlxliffarb - 02
Hubungkan repositori
Perintah init akan menemukan file lokal Anda, memproses login melalui browser, mengunggah konten yang sudah ada, dan menjalankan terjemahan pertama.
npx transglot@latest init - 03
Jalankan pada setiap penggabungan
Tambahkan GitHub Action, panggil CLI dari CI lainnya, atau instal aplikasi untuk GitHub, GitLab, Bitbucket, atau Azure Repos.
transglot push --wait - 04
Tentukan apa yang memerlukan tinjauan manusia
Atur min_state menjadi reviewed pada aturan pull agar file tersebut hanya memuat string yang telah ditinjau oleh manusia. Biarkan tidak diaktifkan jika draf boleh dirilis.
min_state: reviewed
Biaya untuk menjalankannya pada setiap penggabungan: kata-kata yang berubah.
Satu kata adalah kata sumber, dihitung sekali per bahasa target. Satu proses dijalankan berdasarkan perubahan, sehingga penggabungan yang menyentuh dua belas kata dalam lima bahasa dihitung sebagai enam puluh, terlepas dari besarnya proyek.
Cukup dengan Starter: $19/mo, 300,000 kata per bulan.
Itu sekitar 9% dari kuota.
Ini hanya menghitung terjemahan. Pemeriksaan kualitas, draf suara merek, dan perbaikan juga dihitung sebagai kata, sedangkan kecocokan tepat dari memori tidak dikenai biaya. CLI dan GitHub Action dimulai dari paket Starter, sedangkan aplikasi untuk GitHub, GitLab, Bitbucket, dan Azure Repos dimulai dari paket Team.
Tiga hal yang tidak diselesaikan oleh lokalisasi berkelanjutan
String masih terjebak dalam kode
Pipa hanya dapat menerjemahkan apa yang dapat dibacanya. String hard-code dan kalimat yang digabungkan dari berbagai bagian harus diperbaiki terlebih dahulu, dan ini biasanya menjadi alasan tertundanya peluncuran.
Tidak ada pemilik kata-kata
Otomasi memindahkan string. Otomasi tidak memutuskan bagaimana produk Anda menyebut sesuatu. Seseorang harus bertanggung jawab atas glosarium, atau bahasa yang tidak dibaca oleh siapa pun akan menyimpang tanpa disadari.
Teks yang memerlukan pertimbangan
Teks hukum, harga, dan slogan merek memerlukan penanganan manusia. Kirimkan untuk ditinjau dan jangan sertakan dalam file rilis sampai seseorang memberikan persetujuan.
FAQ Lokalisasi Berkelanjutan
Pertanyaan yang sering diajukan tim sebelum mengaktifkannya.
Apa itu lokalisasi berkelanjutan?
Bagaimana perbedaan lokalisasi berkelanjutan dengan lokalisasi tradisional?
Apakah lokalisasi berkelanjutan sama dengan CI/CD?
Apakah saya memerlukan pipa CI/CD untuk lokalisasi berkelanjutan?
Apakah lokalisasi berkelanjutan berarti tidak ada tinjauan manusia?
Dapatkah proses otomatis menimpa editan penerjemah?
Apakah lokalisasi berkelanjutan bermanfaat bagi tim kecil?
Bagaimana cara mencegah biaya proses melebihi ekspektasi?
Apakah ini berfungsi dengan GitLab, Bitbucket, dan Azure DevOps?
Dapatkah saya melakukan lokalisasi berkelanjutan tanpa Git?
Dapatkah terjemahan diperbarui tanpa rilis?
Bagaimana cara memigrasikan proyek yang sudah ada?
41 konektor, sudah tersedia.
Hubungkan repositori. Merge berikutnya akan menyelesaikan sisanya.
Satu perintah menemukan file lokal Anda, masuk melalui browser, dan menjalankan terjemahan pertama.