Bagaimana cara mempersiapkan permainan untuk pelokalan?

48

Banyak proyek tidak berpikir tentang pelokalan sampai permainan selesai. Kemudian pelokalan dilakukan sebagai peretasan, dan jelas bahwa itu ditambahkan kemudian. Beberapa bidang khusus yang menjadi perhatian:

  • String teks (jelas)
  • Klip audio seperti musik dan / atau narasi
  • Teks yang diberikan pada tekstur (misalnya label pada kotak)
  • Teks yang diberikan dalam bingkai di film yang sudah dibuat sebelumnya
  • Kumpulan font / karakter untuk berbagai bahasa
  • Dll

Apa saja cara yang baik untuk mempersiapkan tantangan-tantangan ini pada tahap pengembangan awal, sehingga Anda dapat membuatnya lebih mudah tanpa menimbulkan terlalu banyak biaya di muka?

kevin42
sumber
8
Saya telah bermain Dawn of Discovery - Venice akhir-akhir ini, diterjemahkan ke bahasa Inggris dari Jerman. Sekitar 99% benar. . . dan sesekali salah satu karakter secara tidak dapat dijelaskan berbicara dalam bahasa Jerman untuk satu baris, atau salah satu laporan status bangunan memiliki umlaut, atau (sesekali) saya diberitahu bahwa saya dapat membeli Item Debug dari toko lokal. Apa pun metode yang Anda gunakan, pastikan mudah untuk mendeteksi garis yang tidak diterjemahkan - jika Anda harus membacanya secara visual, atau memainkan permainan dan berharap mereka muncul, Anda salah melakukannya.
ZorbaTHut
@ZorbaTHut Apakah item debug merupakan cara untuk melaporkan kesalahan terjemahan, atau apakah pengembang DoD menggunakan DLC untuk menambal gangguan pelokalan?
Dan Neely
Membuat bahasa palsu yang dapat dibaca dan ditulis oleh programmer Anda bisa bermanfaat. Google memiliki bahasa "peretas" dan Facebook memiliki Perompak. Sangat menyenangkan bagi para pengembang, dan ini adalah sesuatu yang dapat mereka uji sendiri tanpa mempelajari bahasa baru.
John McDonald
Untuk menambah jawaban di atas, saya sarankan Anda melalui putaran pseudo-lokalisasi (pada dasarnya nama formal dan proses "Membuat teks terlokalisasi hilang jelas" titik di jawaban atas). Anda dapat menghilangkan potensi masalah implementasi sebelum terjemahan dimulai.
Anthony

Jawaban:

49

Saya bukan ahli, tapi ini beberapa hal mendasar:

Pastikan string Anda dapat menangani lebih dari sekadar ASCII

Anda akan memerlukan beberapa karakter spécîål yang tidak sesuai dengan ASCII dan kelas string Anda sebaiknya tidak muntah pada mereka. UTF-8 adalah penyandian umum karena hemat-ruang. Apa pun yang Anda lakukan, uji awal dan selesaikan ketegaran.

Ini adalah ide yang sangat bagus untuk menggunakan kelas string yang sebenarnya dan tidak hanya di char *mana-mana atau Anda akan berada di dunia yang sakit.

Jangan lupa font Anda. Pastikan semua font yang Anda gunakan memiliki karakter yang Anda butuhkan.

Tarik string Anda keluar dari kode

Ini yang paling penting. Pastikan string teks Anda semua disimpan di luar kode dalam beberapa file data yang dapat Anda tukar. Mempersiapkan pipa untuk ini bisa menjadi tugas berat di depan, tetapi akan menghemat waktu satu ton nanti. Anda akan menginginkan beberapa API sederhana sehingga setiap kali Anda membutuhkan string dalam kode, sesederhana:

String text = Locale::getString("some unique identifier");

Jangan menggabungkan atau membuat string dalam kode

Penting untuk tidak membuat asumsi tentang bagaimana sepotong teks dibangun dari kata-kata yang lebih kecil. Bahkan sesuatu yang tidak berbahaya seperti:

String currency = Locale::getCurrencyString() + money.toString();
// creates $123

merupakan masalah karena bahasa lain dapat menempatkan tanda mata uang setelah nomor tersebut. Sebagai gantinya, gunakan format string yang dilokalkan seperti:

String format = Locale::get("currency format"); // returns "${0}" in English
String currency = String::Format(format, money.toString());

Dengan begitu, pelokalan dapat menyusun ulang kata dalam string format.

Minimalkan jumlah teks yang muncul dalam seni, terutama video

Aset seni forking adalah pekerjaan rumah. Anda mungkin harus melakukannya setidaknya sedikit untuk beberapa elemen UI, tetapi itu merepotkan. Forking FMV sangat menyakitkan karena sekarang Anda harus membuat dan menyimpan salinan duplikat FMV Anda.

Tes dalam berbagai bahasa secara menyeluruh

Di sebagian besar basis kode, terlalu mudah untuk mengatakan printf("Hi there");atau loadTexture("someTexture");melupakan bahwa mereka harus melalui API pelokalan Anda. Seseorang akan lupa dan Anda akan berakhir dengan sesuatu yang benar dalam bahasa utama Anda tetapi salah pada yang lain. Satu-satunya cara untuk menemukan ini adalah memiliki tes penguji Anda dalam bahasa non-primer.

Jadikan teks terlokalisasi yang hilang jelas

Anda biasanya menerjemahkan teks Anda di akhir siklus, jadi untuk sebagian besar waktu, tidak akan ada data untuk beberapa bahasa. Tidak apa-apa karena itu memungkinkan Anda beralih pada konten Anda tanpa harus terus menerjemahkan. Kelemahannya adalah itu berarti mudah bagi Anda untuk melewatkan sesuatu dan lupa menerjemahkan beberapa hal.

Satu hal murah yang dapat Anda lakukan adalah membuat teks yang hilang muncul dengan sangat jelas seperti "!!! TRANSLATION DIPERLUKAN UNTUK ID #blah blah !!!" dalam game saat itu hilang.

Desain UI Anda di sekitar bahasa kasus terburuk

Bahasa yang berbeda cenderung memiliki kata yang lebih panjang atau lebih pendek. UI yang terlihat cantik dalam bahasa Inggris mungkin memiliki teks yang melewati batas-batasnya, dipangkas, atau dibungkus dengan salah dalam bahasa yang lebih panjang. Anda harus membuat perubahan UI untuk mengakomodasi bahasa terburuk (atau bercabang UI Anda, tapi itu mungkin bukan yang ingin Anda lakukan.)

Anehnya, bahasa Inggris seringkali merupakan bahasa terpendek dari bahasa yang biasanya dilokalisasi, sehingga desainer Anda mungkin secara tidak sengaja merancang untuk kasus terbaik. Buat mereka menggunakan teks ekstra panjang untuk placeholder mereka saat mereka mendesain. Asumsikan setiap potongan teks dapat sekitar 30% lebih lama daripada dalam bahasa Inggris. Google Terjemahan dapat menjadi hal yang bagus untuk mendapatkan perkiraan teks untuk placeholder.

Waktu anggaran untuk terjemahan

Menerjemahkan teks biasanya terjadi terlambat ketika tim lelah dan tidak terlalu peduli. Meskipun demikian, Anda akan mendapatkan banyak bug saat itu terjadi. Kata-kata akan melewati batas, penerjemah akan membuat kesalahan, dll. Untuk memperburuk keadaan, waktu penyelesaian untuk pengulangan pada teks bisa lama jika Anda harus mengirim teks ke orang di luar negeri dan menunggu perubahannya. Alokasikan waktu untuk pekerjaan ini.

banyak sekali
sumber
4
Ah, senar gabungan. Apa yang menyakitkan di pantat. Berfungsi bagus dalam bahasa ibu untuk membuat variasi dengan cepat dan mudah. Tapi kemudian Anda masuk ke bahasa dengan tata bahasa yang berbeda dan itu adalah kegagalan total. Semua poin lainnya juga bagus. 'Pengaturan' dalam bahasa Jerman adalah 'Einstellungen', yang memakan sedikit ruang layar ekstra saat Anda membutuhkannya.
Casey Wagner
13

Selain saran lain, satu hal yang telah saya lakukan di masa lalu yang sangat membantu dalam menemukan teks yang diterjemahkan keluar dari komponen UI adalah memiliki mode bahasa khusus untuk permainan Anda yang, ketika menampilkan string apa pun, melihat semua bahasa dan memilih versi terpanjang dari string itu. Dengan begitu, setelah Anda membuat semua string sesuai dengan mode itu, Anda tahu bahwa Anda telah memperbaiki semua teks yang berdarah di setiap bahasa.

James Sutherland
sumber
9

Lokalisasi permainan benar adalah sialan keras .

Anda dapat menjelajahi internet, membaca posting blog, atau jawaban StackOverflow; Anda dapat mempelajari kerangka kerja i18n tradisional seperti gettext ; baca halaman Wikipedia tentang internasionalisasi dan pelokalan game ; lihat panduan bahasa Microsoft yang bagus - tetapi melokalkan game sebenarnya lebih sulit dari itu. Bahkan, dengan gim mungkin lebih sulit daripada dengan aplikasi atau antarmuka web lainnya. Ini karena gimnya jauh lebih dinamis, lebih bersemangat, lebih hidup (yah, setidaknya gim bagus).

Lebih penting lagi, langkah-langkah berikut mungkin perlu diambil:

Tetapkan batas.

Anda ingin membuat keputusan yang sangat penting untuk bahasa mana yang ingin Anda dukung sejak dini. Semakin luas pilihan Anda, semakin banyak asumsi tentang bagaimana bahasa dapat berperilaku akan rusak. Seringkali asumsi-asumsi ini begitu tertanam dalam otak kita, sehingga kita bahkan tidak dapat membayangkan bahwa mereka mungkin salah tanpa seseorang menunjukkannya. Yang membawa kita ke poin berikutnya:

Temukan para ahli untuk setiap bahasa yang ingin Anda dukung.

Pakar berarti seseorang yang memiliki keterampilan analitik dan pengetahuan bahasa yang memadai, bahwa ia dapat menunjukkan kepada Anda asumsi mana yang digunakan oleh penutur bahasa Inggris yang tidak memiliki bahasa sendiri. Maka Anda harus membuat strategi bagaimana mengatasi asumsi-asumsi itu.

Sebagai contoh: dalam bahasa Barat kami membenarkan teks dalam paragraf dengan memasukkan ruang ekstra di antara kata-kata. Dalam bahasa Arab teks dibenarkan dengan memasukkan karakter kashida ke dalam kata-kata. Mungkin terlihat seperti ini .

Contoh lain: dalam bahasa Rusia, ada 2 bentuk jamak untuk sebagian besar kata. Jadi misalnya Anda akan menerjemahkan "1 koin" / "3 koin" / "5 koin" sebagai "1 монета", "3 монеты", tetapi "5 монеты". Prosedur aktual untuk memutuskan bentuk jamak yang benar terlihat seperti ini:

function LocalRU::GetPlural(n, form0, form1, form2) {
    return (n%10) == 0 || (n%100) >= 5 && (n%100) <= 20? form0 : 
           (n%10) == 1? form1 : 
           (n%10) <= 4? form2 : form0;
}

Buat modul terjemahan yang sadar konteks.

Anda mungkin sadar bahwa terjemahan selalu tergantung pada konteksnya. Dan Anda tahu bahwa konteks dalam game berubah sepanjang waktu. Apa yang terjadi jika kita menggabungkan kedua pernyataan ini? Secara umum terjemahan Anda harus sedinamis permainan Anda.

Misalnya, frasa sederhana "Saya setuju" diterjemahkan ke dalam bahasa Rusia sebagai salah satu dari "Я согласен" / "Я согласна" / "Я согласно", tergantung pada jenis kelamin penutur (pria / wanita / transgender | pertanyaan aneh). Jika ini adalah salah satu dari garis dialog Anda, maka modul bahasa harus memilih salah satu terjemahan yang mungkin pada saat run-time tergantung pada jenis kelamin karakter Anda (dengan asumsi Anda menawarkan pemain Anda pilihan seperti itu).

Ungkapan yang sama ketika diterjemahkan ke bahasa Jepang lagi akan memiliki terjemahan yang berbeda, tergantung pada tingkat formalitas hubungan antara pembicara dan pendengar. Jadi, jika Anda memperkenalkan ide reputasi, atau persahabatan, atau tingkat superioritas yang berbeda di permainan Anda (misalnya, karakter Anda dapat berevolusi dari Rookie ke Umum), maka Anda harus mempertimbangkan hal ini ketika membentuk terjemahan. (Sebenarnya, ini bukan khusus bahasa Jepang. Bahkan dalam bahasa Inggris, di ketentaraan Anda tidak pernah mengatakan "Tuan, ya, tuan!" Kepada seseorang yang berada di bawah Anda dalam peringkat.)

Punya cara untuk melompat ke dalam konteks.

Penerjemah Anda harus memiliki kemampuan untuk melihat konteks tempat frasa tertentu muncul. Terkadang konteksnya jelas, terkadang Anda harus melihat / mendengar / mengalaminya sendiri untuk menerjemahkan sesuatu dengan benar.

Bahkan kalimat sederhana seperti "Buku ini berwarna biru." tidak dapat diterjemahkan secara jelas tanpa saya melihat buku itu dan melihat warna biru yang mana.

Hindari permainan kata, permainan kata-kata, dan elemen khusus bahasa lainnya.

Atau mungkin tidak menghindari, tetapi setidaknya memiliki strategi dalam pikiran untuk apa yang harus dilakukan ketika permainan kata tidak dapat diterjemahkan. Karena mungkin tidak.

Paling tidak Anda tidak harus membuat objek pencarian / teka-teki / game yang bergantung pada kata-kata tertentu yang memiliki makna ganda, atau mirip dengan beberapa kata lain. Karena sekali diterjemahkan, Anda akan merusak gim Anda sendiri. (Misalnya, dalam game Fallout2 yang lama, pencarian utamanya adalah menemukan objek yang disebut GECK; ada juga banyak monster "Gecko" (kadal bermutasi) di sekitar game; tentu saja mereka menciptakan banyak referensi dan pencarian seputar kesamaan nama, yang membuat terjemahan yang baik sangat sulit).

Semangat!

Melokalkan game itu sulit. Tapi itu sulit untuk semua orang. Jika Anda melakukan upaya dan melakukannya dengan benar, itu tidak akan luput dari perhatian oleh kritik game di negara target Anda. Gim dengan terjemahan yang baik akan menonjol, dan mendapat untung lebih tinggi. Lagi pula, teks sama pentingnya untuk menciptakan suasana dalam gim, seperti halnya grafis (inilah sebabnya RPG berbasis teks lama begitu mendalam).

Pasha
sumber
Alternatif untuk "menghindari permainan kata" adalah dengan memasukkan penulis kreatif dalam tim penerjemah bahasa dan memungkinkan mereka untuk mengubah makna literal. FFXIV melakukan ini dengan sangat baik untuk versi bahasa Inggris mereka, sebagai contoh yang baik.
Patrick Hughes
3

Wil Shipley sejauh ini memiliki panduan terbaik tentang pelokalan yang pernah saya baca. Sayangnya ini spesifik untuk iPhone, tetapi orang masih bisa mendapatkan informasi yang bermanfaat. Lebih jauh, dia membahas lokalisasi aset dan UI - dua tantangan terbesar dalam lokalisasi game yang bisa saya bayangkan.

Dave O.
sumber
1

Selalu, SELALU memperlakukan bahasa sumber sebagai bahasa lokal.

Jadi, jika bahasa sumber Anda adalah EN, maka simpan semua aset dan string EN dalam folder EN yang terpisah dan tarik dari sana.

Tarik aset EN melalui pipa lokalisasi yang Anda inginkan.

Dengan melakukan satu hal sederhana ini, Anda akan menangkap sekitar 80% masalah pelokalan dan ditetapkan untuk proses pelokalan yang jauh lebih mudah.

Saya telah melokalkan banyak game dan selalu memimpin dengan nugget ini.

pengguna79563
sumber
1

Saya melihat beberapa tips yang sangat bagus di sini!

Saya akan mencoba membuat daftar kesalahan paling umum yang bisa berkisar dari membuat lokalisasi Anda lebih sulit hingga benar-benar merusak permainan Anda:

  • Memikirkan pelokalan sebagai langkah terakhir pengembangan game
  • Tidak mengisolasi string teks Anda dari kode sumber
  • Concatenation / linebreaks di tengah kalimat.
  • Dengan asumsi waktu, tanggal dan unit tidak perlu lokalisasi
  • Tidak menyediakan bahan referensi yang cukup untuk penerjemah / Tidak menjawab pertanyaan mereka
  • Dengan asumsi semua teks dari gim Anda akan berada di ASCII
  • Memiliki teks dalam visual
  • Memiliki kotak teks / UI yang kaku
  • Dengan asumsi semua bahasa memiliki panjang yang sama dengan bahasa Inggris
  • Menggunakan Google Translate / terjemahan mesin
  • Mengabaikan faktor budaya
  • Tidak mengalokasikan cukup anggaran untuk pelokalan

Pelokalan harus diintegrasikan ke pengembangan sedini mungkin dan Anda harus selalu mengingatnya saat merancang game.

Dengan perencanaan yang tepat dan riset pasar yang cermat, Anda akan menghemat banyak masalah dan pengeluaran lebih lanjut.

Saya kebetulan adalah pendiri perusahaan pelokalan gim dan kami membahas persiapan sebuah gim untuk pelokalan beberapa bulan yang lalu di blog kami.

Inilah infografis yang meringkas pos itu: https://magic.piktochart.com/output/18317297-9-steps-to-cheaper-game-development-with-localization

Tautan ke pos lengkap yang mencakup kiat-kiat itu secara lebih rinci ada di bagian bawahnya.

Damien Yoccoz
sumber