
Rehberler / Perde arkası
Mobil Oyunlarımızı 14 Dile Nasıl Çevirdik
Android oyunlarımızı 14 dile taşımak için gerekenler: metin dosyalarını nasıl düzenlediğimiz, çoğul kurallarının ve fontların neden önemli olduğu, sürekli geri gelen çeviri hataları, yalnızca Avrupa'daki telefonları etkileyen bir hata ve 14 dilin neden 16 mağaza sayfası demek olduğu.
Altı oyunumuzun hepsi 14 dile tamamen çevrildi: İngilizce, Almanca, İspanyolca, Fransızca, Hırvatça, Endonezce, İtalyanca, Japonca, Korece, Portekizce, Rusça, Slovence, Türkçe ve Geleneksel Çince. İlk dördü, yani Idle Ronin, Idle Summoner, Idle AI Factory ve Block Brain, birlikte yaklaşık 2.100 İngilizce metin içeriyor; Block Brain'de 254, Idle Ronin'de 1.253 metin var ve her biri 13 kez çevrildi. Idle Restaurant: Miami ve ONI Snakes aynı 14 dille çıktı. İşte bunun için gerekenler ve yine yapacaklarımız.
Dil başına bir metin dosyası, bağlamıyla
Her oyunun dil başına bir düz metin dosyası var. Bir kayıt, @ ile işaretlenmiş İngilizce kaynak satırdan ve ardından = ile işaretlenmiş çevirisinden oluşur; kayıtların çoğunda çevirmen için yazılmış bir yorum bulunur. Idle Summoner'ın İngilizce dosyasındaki ilk canavar şu:
# monster name with its number in the summon chain (1-55); names appear on small labels
@ {0}. Slime
Bu yorumlar eklediğimiz en faydalı şey oldu. Idle Summoner'ın İngilizce dosyasında 258 metin için 156 yorum var. Bir metnin minicik bir etikette durduğunu ya da {0} değerinin bir sayı olduğunu bilen biri, yalnızca kelimelerden tahmin yürüten birinden çok daha az hata yapar.
İngilizce metnin kendisini anahtar olarak kullanmak dosyaları okunur tutar, ama bir tuzağı var. İki sütunda aynı olan bir metin, otomatik olarak İngilizce kalması gereken bir ad değildir: Idle Ronin'de ilk 1.185 kaydın yaklaşık 680'i İngilizce metniyle aynıydı. Yalnızca gerçek özel adlar İngilizce kalır: 19 Koruyucu'nun adları, birim adları ve 12 kostüm. Derleme betiğimiz de tam olarak bunları kilitler.
Çoğul kuralları isteğe bağlı değildir
İngilizcede iki biçim vardır: 1 unit, 2 units. Birçok dilde daha fazlası vardır ve kurallar farklıdır. Loc kodumuz, Unicode CLDR tablolarındaki tam sayı çoğul kurallarını izler:
| Diller | Kodumuzun kullandığı biçimler |
|---|---|
| İngilizce, Almanca, İspanyolca, İtalyanca | one, other |
| Fransızca, Portekizce | one (0 ve 1), other |
| Hırvatça | one, few, other |
| Rusça | one, few, many |
| Slovence | one, two, few, other |
| Türkçe, Endonezce, Japonca, Korece, Çince | tek bir biçim |
İnsanları en çok şaşırtan Slovencedir: iki için ayrı bir biçimi vardır, bu yüzden “2 enoti” ama “5 enot” denir. Kodun yalnızca tekil ve çoğulu biliyorsa, bu dillerin her biri bir yerde yanlış dil bilgisi gösterir.
Fontlar: eksik olduğu fark edilmeyen harfler
Idle Summoner'ın metin fontu, Noto Sans KR Black'in kırpılmış bir kopyasıydı ve č, š, ž ve ć harfleri, Batı Avrupa aksanları, Türkçe harfler ve Geleneksel Çince bu kopyada yoktu. Eksik harfler ya telefonun bir fontuna düşüyor ya da hiç görünmüyordu. Fontu tablolarımızın kullandığı her harfle yeniden oluşturduk ve Japonca için Noto Sans JP, Geleneksel Çince için Noto Sans TC ekledik. Oyunun piksel fontundaki etiketler, metin o fontun sahip olduğu harflerle yazılabildiği sürece bu fontu korur.
Fontlar yanıltıcı da olabilir. Idle Ronin'in Korece fontunda büyük N harfi öyle çizilmiş ki ON ve OFF “OΠ” gibi okunuyor. Bu anahtarları, zaten daha iyi okunan Korece 켜기 ve 끄기 kelimeleriyle değiştirdik.
Her dilde geri gelen hatalar
Bir oyun nasıl çevrilirse çevrilsin, ilk taslak nadiren hazırdır. Bizimki neredeyse her dilde aynı birkaç hatayı tekrarlıyordu; bunları ilk olarak kendi Slovence incelememiz yakalamıştı:
- Bir grafik ayarı olan “Particle”, “Efektler” yerine fizikteki anlamıyla çevrilmişti.
- Bir birimin fazladan kopyaları olan “Stack”, İngilizce bırakılmış ya da “kopyalar” yerine “yığın” diye çevrilmişti.
- Treasure Chest adlı canavarı yenme görevi, hazine sandıklarını kırmak diye çevrilmişti.
- Yalnızca bir iki kelimenin sığdığı satırlar ve rozetler için metin tam uzunlukta çevrilmişti.
- “FIGHT FLOOR {0}”, düğmeyi fazla uzatan gereksiz bir fiille çevrilmişti.
Bu yüzden her dil için tam olarak bu metinleri listeleyen bir denetleyici yazdık ve listeyi çeviri başlamadan önce teslim ediyoruz. Liste elde çevrilen iki dil hiçbir düzeltme gerektirmedi; listesiz çevrilenler ise her biri yaklaşık altı düzeltme gerektirdi.
Yalnızca dosyaları değil, ekranları kontrol et
Bir dosya eksiksiz olabilir ama ekran hâlâ İngilizce gösterebilir. Testimiz şu: oyunu başka bir dile geçir, ekrandaki tüm görünür metinleri topla ve İngilizce dosyayla karşılaştır. Hâlâ İngilizce olan her şey, kodun hiç çevirmediği bir etikettir. Idle Ronin'de bu tarama, her zaman görünen bir OPEN düğmesi ve menü ilk açıldığında hangi dil etkinse o dilde takılı kalan ayar düğmeleri buldu.
Sonra gerçek bir telefon çözünürlüğünde her şeyin sığıp sığmadığını kontrol et. Her ekrana en uzun dillerde ve Japonca, Korece, Çince ve Rusçada 1080 x 2400 çözünürlükte bakıyoruz; metni kimse okuyamayacak kadar küçültmek yerine kısaltmayı tercih ediyoruz.
Avrupa'da kayıtları bozan bir virgül
Bir hatanın kelimelerle hiçbir ilgisi yok. Şu anda geliştirdiğimiz bir oyunda kayıt, sayıları virgüllerle birleştiriyor. Avrupa'nın büyük bölümünde olduğu gibi, dili ondalık sayıları virgülle yazan bir telefonda 7392.58, 7392,58 olur; fazladan virgül sayıyı ikiye böler ve ondan sonra gelen her değer bir sıra kayar. İngilizce test eden biri bunu asla görmez. Çözüm, açılışta sayı biçimini değişmez kültüre sabitleyen tek bir satır ve zaten bozulmuş kayıtların yine de yüklenmesi için bir korumadır.
14 dil, 16 mağaza sayfası
Google Play'de İspanya ve Latin Amerika İspanyolcası ile Portekiz ve Brezilya Portekizcesi için ayrı sayfalar var. Oyunda her dil için tek bir çeviri tutuyoruz, ama mağaza metnini her pazar için kendi arama terimleriyle ayrı yazıyoruz. Bu da oyun başına 16 sayfa ediyor; her birinin kendi başlığı, kısa açıklaması, tam açıklaması ve ekran görüntüleri var. Web sitemiz de aynı düzeni izliyor; onu nasıl oluşturduğumuzu ayrı bir yazıda anlatıyoruz.
Yine yapacaklarımız
- Her metin için bir bağlam yorumu yaz.
- Özel adları çevirmenin kafasında değil, derlemede kilitle.
- Çoğul kurallarını ilk çeviri gelmeden önce uygula.
- Fontlarının, tablolarının kullandığı her harfi içerdiğini kontrol et.
- Bilinen sorunlu metinlerin bir listesini tut ve baştan teslim et.
- Unutulmuş İngilizce için ekranları başka bir dilde tara.
- Kayıt verilerini değişmez kültürde yaz.
- 14 değil, 16 mağaza sayfası planla.
Sonucu görmek ister misin? Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami ya da ONI Snakes içinde dili değiştir: hepsi 14 dilin tamamını konuşuyor.
Kaynaklar
- Unicode CLDR, Language Plural Rules.
- ONI Games oyun kodu, Eylül 2026: Idle Summoner (Loc.cs, LocFonts.cs, Localization/Summoner/en.txt), Idle Ronin (Localization/Ronin), Idle AI Factory (Localization/AIFactory), Block Brain (Localization/Brain).








