Bagaimana cara melepaskan produk secara terus menerus dalam 20 bahasa dan tidak mati?

Dalam artikel ini, kami akan menjelaskan bagaimana kami menerjemahkan pelokalan proyek seluler ke dalam Smartcat , rasa sakit yang kami alami pada awalnya, dan bagaimana kami mengatasinya.

gambar

Siapa kita


Halo semua! Kami adalah Ekaterina Galitskaya dan Daria Egorushkina dari Kaspersky Lab (departemen dokumentasi dan lokalisasi). Sedikit lebih spesifik: tim tempat kami bekerja bertanggung jawab untuk menulis dan melokalisasi teks antarmuka dan bantuan untuk aplikasi seluler.

Rasa sakit


Pemicu utama untuk perubahan adalah kebutuhan pembangunan. Pengembangan beralih ke rilis yang sering setiap dua minggu. Lingkup menurun, tetapi mereka mulai menerjemahkan lebih sering, dan kami harus melakukannya lebih cepat. Bahkan, lokalisasi telah menjadi leher sempit pembangunan. Dan jika sebelumnya para manajer proyek bahkan tidak tahu nama-nama pelokalan - tetapi mengapa tidak sama sekali, karena terjemahannya secara ajaib muncul sendiri - sekarang hampir semua orang menyadari masalah dan bahkan tahu apa pengujian linguistik itu :)

Sumber data.

Waktunya


Siklus lokalisasi memakan waktu 3 minggu:

  • 3-5 hari - transfer;
  • 2 minggu - pengujian linguistik.

Dengan terjemahan, semuanya jelas, tetapi mengapa pengujian linguistik, dan tentang apa semua ini?

Tujuan utama pengujian linguistik adalah untuk memeriksa terjemahan dalam konteks, yaitu untuk benar-benar membuat lokalisasi. Para penerjemah tahu terminologi kami, tetapi tetap saja mereka hanya menerjemahkan teks, tidak melihat bahwa itu adalah tombol atau judul, teks mana yang berikutnya.

Selain itu, pengujian linguistik memungkinkan Anda untuk menangkap ketidakkonsistenan, terjemahan yang kurang, teks yang tidak dimasukkan dalam garis (teks yang dikodekan dengan keras), mengurangi risiko hukum (ketika teks pembayaran, misalnya, tidak ditempatkan di bidang yang benar). Pengujian linguistik biasanya dilakukan menggunakan screenshot.

Volume


Ada mitos bahwa jika aplikasi itu mobile, maka itu kecil, dan apa yang bisa diterjemahkan?
Ha ha Beberapa statistik:

  • teks dalam antarmuka - rata-rata 25 ribu kata dalam proyek;
  • 10 aplikasi;
  • rata-rata 19 lokalisasi di setiap proyek;
  • memperbarui teks dalam antarmuka, terjemahan dokumentasi setiap minggu.

Kenapa tidak bisa berakselerasi?


Mari kita lihat apa masing-masing tahapan pelokalan. Langkah terjemahan (9 langkah):

  1. pilih dari VCS secara manual dari berbagai brunch;
  2. secara manual membuat delta terjemahan;
  3. membuat paket terjemahan;
  4. unggah ke FTP;
  5. menulis banyak surat kepada agensi, pekerja lepas dan kantor lokal;
  6. setelah transfer diambil dari FTP, unggah ke CAT, periksa;
  7. dimasukkan ke dalam VCS - jangan bingung dalam brunch;
  8. mulai perakitan, perbaiki kesalahan, bangun kembali perakitan;
  9. mulai terjemahan tambahan dan perbaikan bug dalam kasus-kasus tersebut ketika proses terjemahan harus dimulai kembali.

Masalah tahap penerjemahan: singkatnya, ini adalah keterbatasan proses lama dan banyak pekerjaan rutin saat menggunakan CAT lama:

  • Pengumpulan baris dari beberapa brunch tidak didukung - delta untuk terjemahan dari semua brunches dibentuk secara manual, dan terjemahannya secara manual ditata dalam brunch. Sulit mempertahankannya, mudah bingung, dan tidak mungkin melupakan kengerian ini.
  • Mempertahankan keseragaman dalam proyek dan dalam bahasa dalam mode manual tidak dimungkinkan.
  • Anda tidak dapat menjalankan terjemahan paralel secara paralel - memperbarui sumber daya selama proses terjemahan. Pertama-tama perlu untuk menerima bundel terjemahan pertama dan hanya setelah itu memulai terjemahan tambahan.
  • Kasus kegagalan perakitan karena kesalahan dalam variabel, apostrof, dan karena kesalahan lokalisasi lainnya menjadi lebih sering.

Tahap pengujian linguistik (19 langkah):

  1. Jalankan perakitan dan tunggu.
  2. , .
  3. , -.
  4. .
  5. 20+ .
  6. , .
  7. — .
  8. FTP.
  9. .
  10. .
  11. .
  12. .
  13. ( ).
  14. .
  15. ( , ).
  16. .
  17. FTP.
  18. .
  19. (, ) .

Masalah tahap pengujian linguistik: tangkapan layar manual mengambil bagian terbesar dari waktu. Jika fitur ini memiliki sekitar 40 layar, dan 20 bahasa, maka itu dapat mencapai hingga 70 jam tangkapan layar manual ...

Selain itu, ada faktor manusia.

Adalah satu hal untuk melalui langkah-langkah ini setiap tiga bulan sekali. Hal lain adalah mengulang semua ini setiap dua minggu. Dengan setiap iterasi baru, localizers terjun ke rawa rutin - send-accept-remove-repeat.

Kami harus mencari solusi, dan pada saat yang sama cukup cepat. Apa saja opsi solusinya? Bisa jadi:

  • merekrut lebih banyak siswa;
  • mengurangi jumlah pekerjaan pelokalan (dan, karenanya, kualitas pemborosan);
  • Otomatiskan tugas-tugas rutin.

Kami memilih yang terakhir.

Apa yang kau inginkan


Kami tidak memiliki seratus tahun untuk duduk, menuangkan secangkir kopi, menyingsingkan lengan baju kami dan mulai menganalisis seluruh pasar solusi cloud dalam waktu satu tahun. Kami mencari solusi yang siap pakai untuk mulai bekerja besok. Tujuan kami adalah untuk menyelesaikan masalah.

Persyaratan lain apa yang kami miliki:

  • Dikurangi persetujuan : agar tidak menunggu sampai pembelian disepakati, mereka akan menuliskan kunci dan itu saja.
  • Fungsi dasar siap l: untuk duduk dan mulai melakukan. Yang tidak perlu ditulis dari awal. Stabil. Sisanya dapat diputar di sepanjang jalan.
  • Tidak memerlukan kapasitas server yang besar : sekali lagi, agar tidak terjebak dalam persetujuan yang panjang.
  • Mulai masuk ke layanan yang murah (sebaiknya gratis) .
  • Tidak perlu pengembang in-house : yaitu dukungan sisi-server yang memadai dan kemampuan untuk menggunakannya sendiri.
  • Kepatuhan layanan dengan persyaratan keamanan internal : kami terhubung ke layanan, dan bukan kepada kami.
  • Dukungan untuk pekerjaan simultan dengan beberapa brunch : terjemahan beberapa fitur secara paralel.
  • Peluncuran paralel transfer tambahan .

Dari berbagai opsi, kami melihat paling dekat pada Zing (layanan terjemahan dari pengembang Evernote).

Dari pro :
  • kemampuan penyesuaian untuk diri sendiri;
  • paket instalasi gratis - hanya kapasitas server yang dibutuhkan;
  • tidak ada biaya bulanan;
  • menghubungkan penerjemah Anda;
  • akses pribadi (dapat di-host secara internal).

Cons : untuk menghubungkan penerjemah dan membukanya, perlu menghubungkan setidaknya dua unit. Yang secara tajam meningkatkan biaya layanan dalam hal waktu dan sumber daya. 


Apa yang sudah kamu pilih?


Karena kami tidak dapat langsung menghubungkan sistem CAT ke sistem kontrol versi internal, kami memerlukan konektor yang berbeda. Anda dapat menulis sendiri atau mengambil yang sudah ada. Jadi kami menguji sekelompok Git - Serge - Smartcat.

Dari pro :

  • Dukungan untuk bekerja dengan beberapa brunch.
  • Perbarui sumber daya dengan cepat.
  • Bebas dari pengurai CAT (menulis file konfigurasi di pihak kami). Smartcat meninggalkan file PO.
  • Korespondensi dengan freelancer praktis "dalam satu jendela".
  • Ada pencarian dan pemilihan freelancer (komunikasi langsung, seleksi untuk kebutuhan proyek - dalam kasus kami, kecepatan dan kualitas terjemahan adalah penting).
  • Anda dapat membayar pekerjaan dalam semua bahasa dan proyek dalam satu akun.
  • Atas permintaan kami, mereka meningkatkan prioritas dalam pengembangan fitur baru: memperkenalkan fitur baru (pencarian teks di semua file proyek, dll.), Memperbaiki beberapa masalah.
  • Quick TechSupport - bantuan dalam pengaturan.
  • Sebenarnya akses gratis ke layanan (berlangganan adalah opsional).
  • Cek.

Cons :

  • Tidak ada pencarian teks dalam seluruh proyek (dan mungkin ada lebih dari 1000 file di proyek). Tetapi pengembang Smartcat memperkenalkan fitur ini pada akhir tahun lalu.
  • Anda tidak dapat membuka banyak dokumen dalam satu tab browser.
  • File sumber daya (dokumen dalam Smartcat) dalam satu bahasa dapat mencapai 200. Pengguna perlu melakukan koreksi pada terjemahan setelah memeriksa teks dalam screenshot. Pengguna tidak tahu di mana dokumen segmen itu. Oleh karena itu, pengguna perlu membuka semua 200 dokumen dan mencari baris ini.
  • Masih ada masalah dengan pemberitahuan untuk freelancer: mereka mematikannya dan tidak menerima pemberitahuan tentang pembaruan dokumen. Dalam hal ini, kami masih menulis di obrolan.

Apa yang terjadi dan bagaimana jadinya


Secara singkat - mengubah proses bekerja dengan teks antarmuka :) Apa yang dilakukan:

  • Menguji sekelompok Git - Serge - Smartcat.
  • Kami sepakat dengan pengembang tentang aturan penamaan brunch untuk penulis dan pelokalan (ini diperlukan untuk menghapus korespondensi dengan pengembang, serta untuk mengkonfigurasi aturan untuk locobot).
  • ( 25  — , 20+ ).
  • Smartcat, Serge.
  • .
  • Serge: ID , , .
  • cron, () .
  • - ().
  • , : , , .
  • Monorepo: Serge .
  • Pengembang kami telah menerapkan tangkapan layar fitur berdasarkan kerangka Kaspresso . Ini memungkinkan kami untuk memecahkan tidak hanya masalah dengan autoscreenshots * , tetapi juga untuk membuat konteks untuk penerjemah. Jadi, untuk setiap baris baru dalam file, tautan ke tangkapan layar ditambahkan untuk memahami di mana dan bagaimana baris baru ini digunakan. Saat file dengan baris baru "terbang" ke Smartcat, tautan ke tangkapan layar jatuh ke bidang "Komentar di segmen".

Seperti apa bentuk lokalisasi sekarang (9 langkah untuk semuanya):

  1. Penulis melakukan baris baru di Git. String diproses secara otomatis dan terbang jauh di Smartcat.
  2. Localizer menunjuk penerjemah (langkah ini akan segera hilang, apakah benar orang-orang dari Smartcat?)))))
  3. Penerjemah menerjemahkan bukan hanya seperti itu, tetapi juga dengan tangkapan layar - artinya, sesuai konteks.
  4. Pelokalan memeriksa terjemahan (membuat file lengkap). Robot mengambil kembali terjemahan bukan dengan baris, tetapi ketika pekerjaan pada seluruh file selesai. Terjemahan secara otomatis terbang kembali dan mengirimkan ke Git.
  5. Pelokalan menjalankan tangkapan layar otomatis.
  6. Pelokalan mengunggah tangkapan layar ke FTP.
  7. Pelokalan menjawab pertanyaan ahli bahasa.
  8. Pelokalan, jika perlu, melakukan perubahan pada Smartcat. Pengeditan secara otomatis berkomitmen untuk Git.
  9. Pelokalan tutup permintaan tarik.

Tentu saja, masih ada bidang untuk otomatisasi dan peningkatan. Tapi Anda sudah bisa merasakan perbedaannya dengan yang dulu.

Apa itu Serge


Ini adalah solusi open source, penghubung antara sistem kontrol versi (SVN, Git, Gerrit (sistem peninjauan kode berbasis Git), Mercurial) dan TMS, dalam kasus kami Smartcat.

Mengapa kami "masuk": semua cloud TMS memiliki konektor di luar kotak. Tetapi konektor kotak seperti itu terhubung langsung ke repositori. Yang tidak mungkin dalam kasus kami. Apa saja pilihannya:

  • mengungkapkan bagian dari sistem kontrol versi;
  • Folder klon dengan file sumber daya untuk akses publik;
  • menerima dan memproses file sumber daya sebelum mengirim ke TMS, lalu ekspor ke TMS.

Mengungkap bagian dari sistem itu berisiko.

Dimungkinkan untuk membuat kloning, hanya saja ini membutuhkan sumber daya sementara dan manusia.

Serge hanya dapat menerima file sumber daya dan memprosesnya sebelum mengirim ke TMS. Akibatnya, arsitekturnya adalah sebagai berikut: Git - Serge - TMS.

Serge mengambil file dari Git dan memprosesnya sesuai aturan tertentu. Kemudian mengkonversi mereka ke format PO dan mengirimkannya ke Smartcat. Serge mendapatkan file PO yang diterjemahkan dari Smartcat, mengonversinya, dan berkomitmen ke Git.

Juga, nilai tambah besar Serge bagi kami adalah bahwa ia ditempatkan di dalam perusahaan kami. Dengan demikian, seluruh "dapur" tetap berada di balik dinding batu. Tidak ada rahasia yang keluar :)

Fitur utama:

  • Sesuaikan target dengan file dan ID string sumber daya.
  • Kemampuan untuk memilih file berdasarkan mask di jalur atau konten.
  • Memproses konten file sumber daya sebelum / setelah penguraian.
  • Mengkonfigurasi parser.

Anda dapat berkenalan dengan fitur-fitur lain dari Serge di situs web atau menonton video .

Ringkasan


Yang paling penting adalah bahwa dalam waktu yang relatif singkat, sekitar tiga bulan, kami menyelesaikan masalah dan tidak lagi menyempit.

Hasil dan angka


TahapBerapa jam (2018)Sudah berapa jam (akhir 2019)
Kumpulkan garis dari semua brunch. Secara manual10
Dapatkan hanya baris baru atau yang diubah untuk iterasi, muat ke alat CAT lama untuk 20 bahasa40,25
Buat paket terjemahan. Ulangi selama 20 bahasa.0,50
Tetapkan tugas untuk agensi / penerjemah. 1 bahasa = 1 agensi.20
Unduh paket dengan terjemahan FTP untuk setiap bahasa. Ulangi selama 20 bahasa.0,50
Hapus, dapatkan konfirmasi dari agensi / penerjemah bahwa tugas telah diambil. Ulangi selama 20 bahasa.2-30
Jawab pertanyaan penerjemah. Ulangi selama 20 bahasa.2-40,5
Terima terjemahan untuk setiap bahasa10,25
Jalankan build<8 (mengedit bug dari alat CAT lama)0,25
Terjemahan tambahan (ulangi semua yang di atas)80,25
Dapatkan tangkapan layar16-32 (secara manual sendiri)8 (tangkapan layar otomatis)
Unggah ke FTP81
Mengobrol dengan agen / freelancer81
Edit Sumber Daya82
Tuang perubahan pada git80,25
Waktu murni8414

Bonus:

  • Sidang tidak jatuh: variabel, kata yang tidak diterjemahkan ditempatkan di placeholder, apostrof diloloskan pada tahap aplikasi parser.
  • Kami tidak memilih perangkat dari penguji.
  • Kami tidak membuang waktu dengan pengembang dan penguji untuk memperbaiki perakitan atau mencari cara untuk mengambil satu atau beberapa screenshot.
  • Terjemahan dalam konteks: tangkapan layar bahasa Inggris sudah pada tahap terjemahan, dan mereka MUDAH untuk dibuka dan dilihat.
  • Smartcat memungkinkan untuk mengambil segmen yang tidak diterjemahkan ke dalam kesalahan kritis - mereka menemukan beberapa baris penting dari CAT lama.

Selain itu, sekelompok Git - Serge - Smartcat diizinkan menerjemahkan karya penulis UX ke dalam Smartcat. Bagaimana kami melakukan ini, kami akan kirim di artikel selanjutnya :).

* Lebih lanjut tentang autoscreenshots: kolega kami menulis autotests dan menciptakan Kaspresso, sebuah kerangka kerja untuk autotests . Tepatnya autoscreenshot dibuat, yang kami gunakan dalam pelokalan. Sebagai produk sampingan dari autotests.

All Articles