
Halo, Habr! Saya adalah pengembang lokalisasi terkemuka di Badoo. Kami bekerja dengan beberapa proyek besar: Badoo, Bumble, Lumen dan Chappy. Sekarang dalam sistem pelokalan kami memiliki 150.000 frasa dan teks yang diterjemahkan ke dalam 52 bahasa. Selain itu, masing-masing aplikasi kami memiliki audiensnya sendiri, pasarnya, gaya komunikasinya sendiri dengan pengguna, versi untuk web dan untuk platform seluler.
Dalam artikel ini saya akan memberi tahu Anda bagaimana kami membangun proses pelokalan, bagaimana kami mendekati kontrol kualitas, bagaimana kami akan merilis terjemahan tergantung pada platform, dan yang paling penting, bagaimana kami memastikan bahwa pengembang berbicara dengan baik tentang sistem terjemahan kami. Ini adalah poin yang sangat penting: lebih dari 300 pengembang mengerjakan proyek, pekerjaan yang seharusnya nyaman. Pengembang bukan penerjemah dan tidak boleh berpikir tentang terjemahan.
Artikel ini ditulis berdasarkan laporan saya di konferensi Highload ++ pada bulan November.
Konten:
Ketentuan referensi untuk seluruh kepala!
Fitur dari proses penerjemahan
Kami meminta pengguna untuk membantu
Organisasi Pembangunan
Kontrol kualitas lokalisasi
Rilis, Versi
Hal utama. Ringkasan
Bahan tambahan
Untuk memulainya, mari kita lihat bagaimana proses lokalisasi di perusahaan kita pada umumnya.

Dalam diagram ini, saya tidak mencerminkan semua nuansa - mereka tidak diperlukan untuk pemahaman umum. Intinya adalah kita mulai dengan terms of reference (TOR). Berikutnya adalah pengembangan klien dan server, dan bersamaan dengan itu adalah proses penerjemahan.
TK dan fase rilis akhir tidak sia-sia disorot dalam satu warna. Ini adalah petunjuk bahwa rilis harus mematuhi ToR. Tidak ada jalan lain. Jika TK tidak cukup lengkap, maka tidak akan jelas bagi pengembang yang bertanggung jawab untuk apa, yang mana dari mereka harus mengintegrasikan teks: "ponsel" harus "menjahit" ke dalam aplikasi seluler atau pengembang server harus mengirimkannya dari server sebagai tanggapan atas permintaan.
Mari kita selesaikan semua ini. Tetapi pertama-tama, saya ingin memperkenalkan dan menjelaskan satu istilah.
Token adalah teks tak terpisahkan yang perlu diterjemahkan. Ini bisa berupa keterangan tombol, judul, atau seluruh paragraf.
Sekarang kita siap untuk beralih ke materi utama!
Kerangka Acuan
Tahap pertama dari proses kami adalah persiapan spesifikasi teknis yang benar. Elemen utama yang terkait dengan pelokalan di dalamnya adalah token table. Bahkan, ini adalah daftar teks yang harus digunakan dalam aplikasi atau di situs.

Tabel token menunjukkan apakah teks diberikan oleh server atau terintegrasi ke dalam aplikasi. Kunci harus ditunjukkan: jika teks digunakan sebelumnya, kunci akan hadir dalam tabel ini; jika teks tidak digunakan di mana pun, nomor seri teks akan ditunjukkan, dan pengembang akan dapat mengatur kunci yang mudah.
Menggunakan kembali teks adalah momen yang sangat berbahaya. Di satu sisi, proses pelokalan dipercepat, dan di sisi lain, Anda bisa masuk ke situasi yang lucu.
Saya akan jelaskan dengan sebuah contoh. Setelah kami memiliki pertanyaan "Apakah Anda merokok?" Dengan opsi jawaban "Ya" dan "Tidak". Di sini kita melihat tiga token: dua untuk jawaban dan satu untuk pertanyaan. Pertanyaan itu diterjemahkan ke dalam bahasa Rusia sebagai "Apakah Anda merokok?", Jawabannya adalah "Saya merokok" dan "Saya tidak merokok". Kemudian kami memutuskan untuk melakukan survei lain dan menggunakan kembali opsi jawaban. Dalam bahasa Inggris, segala sesuatu tampak benar: "Suka mengunjungi pesta?" - "Ya" / "Tidak". Di Rusia, karena penggunaan kembali token, "dialog" berikut ini muncul: "Apakah Anda akan pergi ke pesta?" - "Saya merokok" / "Saya tidak merokok".
Sekarang, ketika kami menyusun ToR dan memutuskan penggunaan kembali teks, kami mempertimbangkan konteks apa yang sebelumnya digunakan. Kami juga menunjukkan apakah token diberikan oleh server atau diintegrasikan ke dalam klien dan dikirimkan ke pelanggan melalui App Store atau Google Play.
Teknik-teknik ini membantu menghemat waktu karena mereka mengecualikan diskusi pada tahap selanjutnya.
Terjemahan
Langkah selanjutnya adalah terjemahan. Dan hal utama di sini adalah tidak kehilangan pemikiran aslinya. Dan ini sering terjadi, karena semua bahasa berbeda, dengan corak dan belokan mereka sendiri. Terkadang terjemahan yang paling akurat tidak pas di layar dan penerjemah harus menemukan kompromi.
Saya akan memberi tahu Anda poin-poin tentang bagaimana kami mulai menerjemahkan, bagaimana kami membawa konteks kepada para penerjemah, mempertahankan gaya yang sama dan memeriksa hasilnya.
Urutan Terjemahan
Ada urutan di mana ada aturan (dan semua mengikutinya). Oleh karena itu, kami memiliki peraturan tentang urutan terjemahan.
Untuk mulai dengan, kami memilih bahasa yang dimengerti oleh sebagian besar penerjemah. Di atasnya kita akan menyiapkan teks sumber, sehingga nantinya mereka dapat dengan mudah diterjemahkan ke bahasa lain. Semua bahasa yang kami terjemahkan (dan kami memiliki 52 bahasa) dibagi menjadi utama (induk) dan dialek. Bahasa di mana teks disiapkan adalah bahasa Inggris (kami menyebutnya Master). Selanjutnya, dari bahasa Inggris kami menerjemahkan ke dalam bahasa lain: Spanyol, Prancis, Rusia dan lainnya. Kadang-kadang terjemahan perlu diklarifikasi untuk salah satu dialek - kemudian kita terjemahkan ke bahasa Spanyol Meksiko atau Inggris Australia. Tetapi jika kita tidak membutuhkan ini, kita akan menggunakan terjemahan ke dalam bahasa induk: Spanyol dasar atau bahasa Inggris dasar.
Sebuah contoh Katakanlah kita perlu membuat salam lebih formal. Awalnya, ada "Hei" dalam bahasa Inggris, "Hola" dalam bahasa Spanyol, "Salut" dalam bahasa Prancis, "Halo" dalam bahasa Rusia, "G'day mate" dalam bahasa Australia, dan "Que onda" dalam bahasa Meksiko ("Seperti gelombang ? "; Orang Meksiko itu keren!). Jika kita ingin mengubah teks, menjadikannya lebih resmi, maka kita harus mengubah teks asli dalam bahasa Inggris. Pada titik ini, terjemahan ke dalam bahasa lain menjadi salah: mereka perlu diperiksa dan diklarifikasi. Kami menarik perhatian para penerjemah untuk ini.
Dampak Konteks
Poin penting adalah konteks di mana terjemahan itu ada.
Saya akan jelaskan dengan contoh.
Segera, saya perhatikan bahwa beberapa contoh adalah tangkapan layar dari sumber daya yang diketahui, tetapi nama mereka tidak masalah bagi kami, kami hanya melihat jenis kesalahan paling umum dalam pelokalan.

Ini adalah tanda dengan pompa bensin: "Sebelum memulai gerakan, pastikan tidak ada senjata di dalam tangki." Kata "gun" diterjemahkan secara harfiah ke dalam bahasa Inggris: "gun". Tapi senjata untuk orang Amerika adalah senjata. Dalam konteks ini, permintaan "Keluarkan pistol dari tangki" terdengar agak aneh.
Dalam contoh berikut, pencipta aplikasi memutuskan untuk membuat versi universal teks untuk pria dan wanita - ternyata, ada beberapa manfaat bagi mereka dalam hal ini. Perasaannya adalah bahwa teks dan gambar hanya dikumpulkan pada satu layar: apa yang dipertaruhkan tidak jelas.

Contoh berikutnya adalah tentang bagaimana pemikiran asli dari teks hilang sebagai akibat dari terjemahan. Lihatlah versi Rusia di sebelah kanan: kami ditawari untuk memulai komunikasi dengan diri kami sendiri. Meskipun dipahami bahwa mereka memberi kami kesempatan untuk menautkan akun Instagram kami.

Kesalahan seperti itu terjadi ketika terjemahan terjadi di luar konteks. Oleh karena itu, untuk setiap token dalam sistem pelokalan kami, yang berikut ini ditunjukkan:
- deskripsi teks;
- gambar yang menunjukkan elemen mana di sebelah teks di layar;
- catatan tentang apakah teks akan ditampilkan untuk pria atau wanita - sehingga penerjemah dapat menentukan apakah dua terjemahan berbeda diperlukan atau hanya satu;
- jenis variabel (ini adalah poin yang sangat penting, dan saya akan memberi tahu Anda lebih banyak tentang hal ini ketika kami menganalisis proses pengembangan);
- panjang teks maksimum: sangat penting untuk pemberitahuan push, karena lebar layar perangkat seluler tidak terbatas.
Juga, kami pasti akan memecah teks besar menjadi beberapa bagian. Ini nyaman jika Anda perlu mencari atau membuat perubahan.
Mari kita analisa momen ini secara lebih rinci. Ketika kami memecahkan teks, kami kehilangan koneksi antara frasa dan kalimat individu. Karena itu, kita harus menunjukkan kepada penerjemah apa yang terjadi sebelum dan sesudah teks ini. Ini relevan, misalnya, dalam hal dokumen hukum - sehingga diterjemahkan dengan benar.
Kami juga menyoroti istilah lokal, kata-kata gaul di token. Misalnya, dalam kasus kalimat "Buka Kunci Daftar Suka Anda untuk melihat semua orang yang tertarik sekaligus", penerjemah perlu mengetahui bahwa Suka dalam kasus ini adalah direktori aplikasi khusus yang berisi kontak pengguna yang menyukai profil. Contoh serupa lainnya adalah istilah "Cerita". Sepuluh tahun yang lalu, tidak ada seorang pun di kata "story" yang membayangkan Instagram. Sekarang ini dikaitkan terutama dengan dia.
Jadi, kami memastikan bahwa opsi terjemahan sangat tergantung pada konteksnya, yaitu pada faktor-faktor berikut:
- Gender pengguna
- variabel numerik yang muncul dalam teks: "Anda hanya memiliki satu teman" dan "Anda sudah memiliki sepuluh teman";
- Platform: Web, Android, iOS;
- proyek di mana terjemahan dilakukan.
Mari kita bahas poin terakhir - ketergantungan terjemahan pada proyek. Ini penting karena setiap proyek memiliki gayanya sendiri.

Ini adalah tajuk surat yang dikirimkan kepada pengguna jika akunnya diblokir.
Untuk Badoo: "Akun Anda terkunci."
Untuk Lumen: "Akun Anda terkunci."
Untuk Bumble: "Kamu diblokir."
Dan untuk Chappy - "Aduh!"
Untuk mempertahankan gaya terpadu dalam setiap proyek, Anda perlu memberikan akses kepada penerjemah ke riwayat terjemahan. Kami memiliki alat yang disebut Memori terjemahan (TM). Penerjemah selalu memiliki akses ke informasi tentang kecocokan dan persentase kesamaan: ia dapat menggunakan terjemahan lama atau memasukkan yang baru. Kami menunjukkan kepada penerjemah tidak hanya kecocokan 100%, tetapi juga opsi yang kurang mirip, dan kami pasti akan menyoroti perbedaannya.

Selain fakta bahwa "Memori Terjemahan" memungkinkan Anda untuk mempertahankan gaya dalam kerangka proyek, itu juga membantu mempercepat proses, karena penerjemah tidak perlu memasukkan hal yang sama dua kali.
Kotak dan nomor
Kami memiliki alat yang disebut Matriks Kasus. Ini seperti tabel perkalian, hanya untuk kasus dan angka.
Penerjemah, jika perlu, mengisi matriks ini untuk kata-kata yang berbeda dalam setiap bahasa. Mengisi dalam satu langkah itu tidak realistis, jadi ini terjadi secara bertahap: butuh kata-kata.
Akibatnya, matriks membantu untuk menghindari kesalahan ini:
Keuntungan alat ini adalah bentuk yang diinginkan dipilih segera sebelum rendering, sebelum ditampilkan kepada pengguna. Begini caranya:

Misalnya, kami memiliki terjemahan ke dalam bahasa Rusia. "Kredit" di tengah adalah pengidentifikasi, tautan ke matriks kasus. "Jumlah kredit" di sebelah kiri adalah nomor yang akan datang dari pengembang. Dan @ 3 adalah kasus yang ditunjukkan oleh penerjemah (dalam hal ini, accusative).
“Anda membutuhkan 10 kredit”: frasa “10 kredit” akan diganti secara otomatis.
Pemeriksaan Terjemahan
Jika kita mengalikan 150.000 frasa dan teks ke dalam 52 bahasa, kita mendapatkan angka di wilayah 7,5 juta. Tentu saja, memeriksa secara manual semua ini tidak realistis. Karena itu, kami melakukan pemeriksaan terjemahan otomatis pada saat menyimpan.
Kami secara otomatis memeriksa fitur-fitur seperti emoji atau variabel yang hilang. Jika penerjemah secara tidak sengaja menghapus suatu variabel, frasa kehilangan struktur dan artinya. Bandingkan: “Kamu butuh 10 kredit” dan “Kamu butuh kredit” - kalimat kedua rusak, pikiran itu hilang.
Kami juga memeriksa HTML yang hilang, jika tidak tata letak akan hilang.
Dan kami selalu memperingatkan penerjemah bahwa terjemahannya lebih panjang dari aslinya. Pada titik ini, ia harus memeriksa apakah ia cocok, apakah teksnya akan pas di layar.
Kami menyoroti poin utama:
- penerjemah membutuhkan pemahaman tentang konteksnya;
- sistem terjemahan harus sangat fleksibel sehingga terjemahan yang tepat dapat dibuat untuk setiap bahasa sehingga penerjemah tidak memilih formulasi universal; dukungan untuk deklarasi dan kasus diperlukan;
- Pastikan untuk memeriksa terjemahan secara otomatis.
Bantuan Pengguna
Selain karya penerjemah profesional, kami menggunakan bantuan pengguna. Ada dua metode di sini: pengujian A / B dan terjemahan bersama.
Pengujian A / B
Jadi, Anda perlu terjemahan, misalnya, ke dalam bahasa Rusia. Penerjemah menerjemahkan satu frasa dengan dua cara berbeda, dan Anda tidak tahu opsi mana yang harus dipilih. Dalam hal ini, Anda dapat melakukan tes A / B: tunjukkan kepada pengguna opsi yang berbeda dan pilih satu tergantung pada reaksinya.
Kami memiliki pilihan di antara dua opsi: "Siap untuk kenalan baru? Bergabunglah! "Dan" Beberapa langkah lagi ... dan Anda akan menjadi bagian dari Badoo. " Sebagai hasil pengujian, kami menemukan bahwa lebih banyak pengguna menyelesaikan pendaftaran ketika mereka melihat opsi kedua pemberitahuan push. Kami meninggalkannya.
Di bawah ini adalah garis besar lengkap dari faktor-faktor yang bergantung pada opsi terjemahan. Elemen kelima hanyalah tes A / B: jika pengguna masuk ke dalam beberapa grup, maka ia akan diperlihatkan versi teks yang sesuai.

Terjemahan bersama
Setelah kami mengirim pemberitahuan kepada pengguna dari Meksiko untuk menerjemahkan beberapa teks ke dalam bahasa mereka dengan sedikit biaya dalam bentuk pinjaman - mata uang internal aplikasi. Dan mereka setuju: hanya dalam dua hari, 5.000 token diterjemahkan untuk kami. Ini sangat membantu, dan orang-orang Meksiko itu hebat!
Apa yang menarik dan mengapa pendekatan ini penting? Jika Anda tidak memiliki penerjemah dialek lokal, izinkan pengguna untuk melakukan pekerjaan ini. Ternyata, mereka benar-benar siap untuk berpartisipasi dalam pengembangan proyek yang mereka sukai.
Kami memiliki platform terjemahan kolaboratif . Anda dapat masuk menggunakan akun Badoo Anda. Dan pilih terjemahan terbaik.

Ini adalah tangkapan layar dari jendela terjemahan Jerman. Pengguna dapat menambahkan versinya sendiri. Ketika salah satu opsi memperoleh jumlah ambang suara, kami menunjukkannya kepada penerjemah penuh waktu kami, dan itu dapat digunakan sebagai yang utama (asalkan cocok dengan gaya, aturan proyek, tidak menyinggung siapa pun, dan sebagainya).
Jangan takut untuk meminta bantuan pengguna. Mereka akan meminta dan membantu.
Pengembangan
Kami lolos ke yang paling menarik - ke proses pengembangan. Saya secara khusus berbicara tentang proses penerjemahan, menjelaskan masalah umum, lalu menunjukkan bagaimana pengembang memecahkan masalah ini.
Ada dua kesulitan utama: bagaimana mengatur pengembangan paralel dan bagaimana melacak kesalahan saat menggunakan token sehingga terjemahan yang benar muncul pada waktu yang tepat.
Pengembangan paralel
Saya akan mulai dengan ceritanya. Sebelumnya, skema pengembangan kami terlihat berbeda. Kode sumber disimpan dalam file di repositori. Dua pengembang dapat mengubah sesuatu secara paralel, dan kemudian ada kebutuhan untuk menggabungkan perubahan ini. Masalahnya kecil, tetapi tidak nyaman.

Skema lama di mana perubahan harus digabungkan
Sekarang kami mengubah dan menambahkan token secara terpusat dalam sistem pelokalan. Pengembang hanya perlu mengunduh satu set token sebelum mulai mengerjakan tugas dan menggunakannya. Kuncinya ditunjukkan, Anda menulis kode, Anda menggunakannya - semua yang Anda tidak pikirkan tentang hal lain.
Kesalahan Saat Menggunakan Token
Ada banyak variabel dalam terjemahan.

Jika Anda terburu-buru, Anda dapat dengan mudah membingungkan “credit_amount” dan “credit”. Untuk menghindari hal ini, kami memperkenalkan kontrol - wadah teks, semacam abstraksi atas terjemahan, yang tahu jenis variabel apa yang digunakan dalam terjemahan ini. Ia melakukan substitusi dan memverifikasi bahwa tipe nilai yang disahkan untuk substitusi seperti yang diharapkan. Jika semua penggantian dilakukan, maka ia akan mengembalikan garis yang sudah bisa ditunjukkan kepada pengguna. Jika tidak, wadah yang sama dikembalikan. Jika kami mencoba menunjukkan terjemahan kepada pengguna sebelum kami menyelesaikan semua substitusi, maka kami akan melihat peringatan di log dan kami akan tahu ke mana harus pergi dan bagaimana cara memperbaiki situasi.
Sorotan dalam pengembangan:
- pengembang hanya harus berurusan dengan pekerjaan mereka - mereka tidak boleh berpikir tentang pelokalan, mengubah teks, dan sebagainya;
- Anda perlu memeriksa apa yang telah dilakukan pengembang, dan pemeriksaan ini juga lebih baik untuk mengotomatisasi - ini akan menjaga sel-sel saraf semua peserta dalam proses.
Kontrol kualitas
Jadi, kami sudah memiliki produk yang dikembangkan yang telah kami terjemahkan. Masih untuk memeriksa seberapa baik kami melakukannya.
Mari kita mulai dengan contoh-contohnya. Berapa banyak jambs dalam tangkapan layar ini?
Saya menyoroti dua. Di atas - penerjemah tampaknya tidak tahu bahwa jarak akan ditunjukkan di depan kalimatnya. Bawah - lebar layar tempat terjemahan ditampilkan tidak diperhitungkan.
Contoh kedua juga menyangkut terjemahan yang terlalu panjang yang tidak sesuai dengan lebar layar - semuanya hanya dipotong di sini, tulisannya tidak pas di tombol.
Dalam contoh berikut, selain menunjukkan kepada kami teks dalam berbagai bahasa, kami juga ditawari untuk mengetahui rasa sakitnya.
Untuk mencegah kesalahan seperti itu terjadi pada prod, kontrol kualitas sangat diperlukan.
Opsi kontrol
Mari kita lihat opsi kontrol apa yang ada.
Yang pertama terlintas dalam pikiran adalah memeriksa terjemahan pada versi uji situs atau aplikasi. Yaitu, mulailah dan lihat apakah yang terjadi sesuai dengan desain, ide, spesifikasi teknis, dan sebagainya. Menggunakan metode ini, kami menangkap kesalahan ini dalam pemberitahuan push:

Tangkapan layar aplikasi
Metode kontrol kualitas berikutnya sesuai dengan tangkapan layar aplikasi.
Kami telah mengembangkan alat khusus yang, dalam lingkungan pengujian, mengambil tangkapan layar semua layar aplikasi seluler dalam semua bahasa. Anda dapat melihat bagaimana mereka melihat melalui browser. Ada juga mode khusus, beralih ke mana, kita dapat melihat pengidentifikasi teks yang akan ditampilkan. Ini sangat membantu ketika melakukan debug: Anda dapat dengan cepat mengetahui token mana itu dan mengapa token itu didapat (mungkin kami mewarisi kode tempat token ini diganti).
Jika Anda memiliki versi web dan Anda hanya perlu mengambil gambar dari suatu tempat, Anda dapat mengintegrasikan penanda token ke dalam teks sumber, menulis plug-in untuk Google Chrome - dan dari mesin penguji, dari browser mereka, plug-in ini akan mengirim tangkapan layar halaman ke sistem lokalisasi Anda di mana ia menemukan token.
<ul> <li>...</li> <li> </li> <li>...</li> </ul>
Kami menggunakan metode ini untuk beberapa waktu. Dia diizinkan mengumpulkan sejumlah besar foto hanya dalam waktu dua minggu. Tapi kami menolaknya, karena dengan itu Anda hanya bisa mendapatkan gambar dari versi yang sudah dirilis, dan kami belajar cara mendapatkan gambar dan desain pada tahap pembentukan TK.
Kontrol selama penerjemahan
Seperti yang saya katakan di atas, bagi kami sepertinya tidak cukup untuk mengambil gambar ketika sudah ada aplikasi yang sudah jadi. Kami memutuskan untuk mengambil tangkapan layar ketika aplikasi belum siap, ketika masih belum ada dan perlu untuk mengontrol kualitasnya, untuk memahami apakah semuanya berjalan sebagaimana mestinya.
Jadi kami mendapat alat kontrol selama penerjemahan.

Saya akan menjelaskan prinsip kerjanya. Desainer kami menggunakan Sketch, aplikasi tempat mereka membuat antarmuka, termasuk antarmuka aplikasi seluler. Kami belajar cara mengganti teks dalam file Sketch dan menghasilkan screenshot layar yang kami butuhkan menggunakan antarmuka perangkat lunak Sketch. Sekarang, dalam proses kerja penerjemah, kami dapat segera menunjukkan tangkapan layar layar dalam bahasanya. Dan untuk melakukan ini bahkan sebelum para pengembang mulai membuat versi pertama dari fungsionalitas baru.
Kemudian kami merancang solusi ini sebagai sumber terbuka ( artikel , kode ).
Audit Terjemahan
Jika tidak mungkin memverifikasi terjemahan dalam bahasa tertentu, misalnya, dalam bahasa Jepang, maka Anda dapat memesan audit selektif, yaitu, perusahaan pihak ketiga dapat menunjukkan terjemahan setiap token keseratus dengan gambar dan menanyakan apakah semuanya sudah benar.
Sorotan dalam kontrol kualitas:
diperlukan penilaian visual terhadap kualitas terjemahan;
selama proses pengujian, penting untuk memahami perangkat apa yang digunakan audiens Anda dan menguji aplikasi pada semua perangkat ini.
Tanggal rilis
Jadi, kami telah menguji fungsionalitas tertulis yang keren. Tetap memberikannya kepada pengguna.
Token Versi
Di aplikasi Badoo kami, ada layanan Super Power. Pada titik tertentu, kami perlu mengubah namanya menjadi "Badoo Premium", dan sekaligus di semua versi itu bersifat atomik sehingga pengguna tidak akan melihat "Kekuatan Super" di satu layar dan "Badoo Premium" di sisi lain.
Untuk melakukan ini, kami telah melampirkan versi token ke setiap cabang tugas di Jira. Ketika kami menyertakan perubahan dari cabang dalam versi baru proyek, versi token baru segera ditarik. Jika sesuatu perlu digulirkan kembali, kami menghapus cabang tugas dari versi baru dan bersama-sama dengannya kami menghapus versi token dengan terjemahan ke semua bahasa.
Ketika token telah diuji atau ketika pengguna sudah melihatnya, Anda harus sangat berhati-hati: lebih baik tidak mengubah apa pun di dalamnya, tetapi buat versi baru, lampirkan ke tiket dan dengan rilis baru gunakan token versi baru dengan terjemahan baru.
Versi Terjemahan
Namun, Anda dapat membuat kesalahan selama penerjemahan. Pada contoh di bawah ini ada dua.
Salah: "Ini remath."
Benar: "Ini pertandingan ulang."
Dalam bahasa Inggris, Anda tidak dapat menggunakan tanda kutip langsung. Huruf "c" juga tidak ada.
Token versi dan terjemahan versi adalah dua hal yang berbeda. Terjemahan dapat diperbaiki kapan saja: ketika tugas sedang dalam pengembangan, ketika sedang dalam tahap pengujian atau bahkan ketika fungsionalitas telah dibawa ke pengguna (tidak ada hal buruk yang akan terjadi jika pengguna melihat terjemahan yang diperbaiki dalam versi baru aplikasi).
Server! = Smartphone
Pengiriman pembaruan ke platform yang berbeda terjadi dengan cara yang berbeda. Jika Anda mengembangkan aplikasi seluler, maka Anda pasti memiliki server dan bagian klien.
Apa yang Anda perlihatkan kepada pengguna sebagian berasal dari server, atau terletak di ponsel cerdasnya (misalnya, terjemahan terintegrasi).

Jalur yang meneruskan transfer dari server ke pengguna terletak melalui server produksi kami, tempat Anda dapat dengan mudah mengirimkan versi file yang diperbarui dengan terjemahan.
Tetapi jalur terjemahan terintegrasi itu panjang: terletak di App Store atau Google Play. Pengguna mengunduh pembaruan dan hanya setelah itu melihat perbaikannya. Proses ini tampaknya terlalu lambat bagi kami, dan kami menemukan mekanisme pembaruan "Pembaruan Panas" kami sendiri. Ini memungkinkan Anda untuk menghasilkan versi terjemahan baru dengan mengklik tombol dan menjelaskan kepada semua pelanggan di dunia bahwa ada sesuatu yang baru yang perlu diunduh dan digunakan.

Ketika aplikasi diluncurkan pada perangkat seluler, ia mengirimkan pemberitahuan peluncuran ke server dan melaporkan versi terjemahan saat ini. Jika sistem pelokalan memiliki pembaruan yang siap, maka ia akan mengeluarkan pemberitahuan sebagai tanggapan. Klien mengunduh pembaruan, menerapkannya.
Pengguna akan melihat terjemahan baru ketika ia beralih ke layar berikutnya. Dua dari artikel kami dikhususkan untuk implementasi solusi ini: satu dan dua .
Rilis: Sorotan
Dalam proses rilis, Anda harus mempertimbangkan jalur mana aplikasi pergi dari Anda ke pelanggan Anda. Mungkin, berbagai bagian aplikasi Anda diperbarui secara berbeda.
Kesimpulan akhir
Mari kita kembali ke skema yang saya kutip di awal artikel.

Apa yang harus Anda perhatikan jika Anda mengembangkan sistem terjemahan:
- menulis kerangka acuan terperinci;
- mempertimbangkan konteksnya dan menyediakan akses bagi penerjemah;
- menyimpan riwayat terjemahan untuk mempertahankan gaya terpadu dalam proyek;
- kontrol otomatis (jika tidak, penerjemah acak apa pun yang terletak di beberapa zona waktu dari Anda akan dapat melakukan semuanya dengan caranya sendiri);
- pengembang bebas dari menyelesaikan tugas-tugas non-inti. Mereka membuat versi baru dari produk Anda, itu memberi sukacita kepada pengguna Anda dan memberikan kepuasan dari proyek yang Anda buat.
Materi yang ingin saya bagikan dengan Anda
Perbarui string dengan cepat di aplikasi seluler: bagian 1
Perbarui string dengan cepat di aplikasi seluler: bagian 2
Cara mengajar aplikasi web untuk berbicara 100 bahasa: fitur pelokalan
Kami menerjemahkan antarmuka ke lima puluh bahasa. Sketsa
Github sketch-modifier