MotorlarRehberlerFAQPatreonDiscordİndir
Giriş yap
RuneTranslate · Japon oyunlarını baştan sona çevirin
MotorlarRehberlerKarşılaştırGörsel metniKayıt düzenleyiciHile ModuFAQİndirDeğişikliklerPatreonDiscordYouTubeGizlilikŞartlarİletişim
Tüm yazılar
troubleshooting · workflow · export · exclusions

Çevrilen oyun açılmıyor mu? Bozuk satırı bulun

29 Ağu 2026·11 dk okuma

Çevirdiğiniz oyun açılıp hemen kapanıyor ya da yükleme ekranında sonsuza dek takılıyor. Çevirdiğiniz satırlardan biri aslında hiç metin değildi: bir kimlik, bir yol, oyunun karşılaştırdığı bir bayrak. Önce suçlunun çeviri olduğunu kanıtlayın, sonra ikiye bölerek satırı bulun: yaklaşık on üç dışa aktarım beş bin satırı bire indirir.

Pencere açılıyor. Pencere kapanıyor. Bu oyun dün çalışıyordu, sonra bir akşamınızı çevirmeye ayırdınız ve şimdi ölü.

O satırların arasında bir tanesi hiçbir zaman metin değildi: bir sahne adı, bir dosya yolu, oyunun karşılaştırdığı bir bayrak. Motor ona çarptı ve hiçbir şey çizmeden pes etti.

Onu bulmak için beş bin satır okumayacaksınız. Yaklaşık on üç kez tek bir evet-hayır sorusu soracaksınız.

Kısa cevap. Önce suçlunun gerçekten çeviri olduğunu kanıtlayın, sonra ikiye bölün: şüphelilerin yarısını çevirin, dışa aktarın, çalıştırın. Hangi yarı bozuluyorsa satırınız orada. O yarı üzerinde tek satır kalana kadar tekrarlayın.

Aramaya başlamadan önce: sorun gerçekten çeviri mi?

  1. Orijinal oyunu çalıştırın. Dışa aktarımınızı değil, dokunulmamış kopyayı. O da açılmıyorsa sorun makineniz, klasör ya da oyunun kendisidir.
  2. Kısa ve zararsız tek bir satırı çevirin, dışa aktarın, çalıştırın. Ekranda görebildiğiniz bir menü kelimesi iş görür.
  3. Ancak ondan sonra satır aramaya başlayın.

2. adım bilerek hiç değil, tek satır diyor. Birkaç adaptör yazacak bir şey yokken kısa devre yapar, yani boş bir dışa aktarım teslimatı değil bir dosya kopyasını sınar ve asıl iş bozukken bile geçebilir.

Tek satırlık derleme de açılmıyorsa hiçbir satır suçlu değildir ve ikiye bölmek bir şey bulmaz. Yepyeni ve boş bir klasöre yeniden dışa aktarın, orijinali değil dışa aktarılan kopyayı çalıştırdığınızı doğrulayın ve dışa aktarımın uyarılarını okuyun. Yine olmuyorsa bunu bir teslimat sorunu olarak bildirin.

Eleme iki çalıştırma ve bir dışa aktarıma mal olur: küçük bir RPG Maker projesinde birkaç dakika, büyük bir Unity oyununda daha uzun. Karşılığında orada olmayan bir satırı aramakla geçecek bir akşamı kurtarır.

Buna benzeyen iki şey. Oyun çalışırken kutular, soru işaretleri veya bozuk Latin harfleri, bir yazı tipi ya da kodlama sorunudur. Bir eklenti ya da bindirme kurduktan hemen sonraki çökme, sizin satırlarınız değil o araçtır.

Satırı ikiye bölerek bulun

Çoğu projede çok sayıda dosya vardır ve ikiye bölmesi en kolay şey dosya listesidir.

  1. Araç çubuğundan Tüm çevirileri sıfırla.
  2. Kendini anlatan Çevrilecek dosyaları seçin penceresini açın: «Hangi dosyaların çevrileceğini seçin. İşaretlenmemiş dosyalara dokunulmaz.» Dosyaların yarısının işaretini kaldırın, kalanı çevirin.
  3. Yepyeni ve boş bir klasöre dışa aktarın ve oyunu çalıştırın.
  4. Açılıyorsa satırınız dokunmadığınız yarıdadır; açılmıyorsa az önce çevirdiğiniz yarıdadır. Her hâlükârda listeniz yarıya iner ve diğer yarıyı unutursunuz.
  5. Yeniden Tüm çevirileri sıfırla, kalan listeyi ikiye bölün, dışa aktarın, çalıştırın.
  6. Tek dosya kalana kadar tekrarlayın, sonra o dosyanın içinde tek satır kalana kadar bölmeyi sürdürün.

Dosyaya göre bölmek satıra göre bölmekten daha kabadır, bu yüzden tur sayısı dosya sayınızı izler: kırk dosya, dosyayı bulmak için yaklaşık altı tur demektir, sonra onun içinde baştan başlarsınız.

Tek dosyalı projelerin — bir NScripter betiği, tek senaryolu bir Kirikiri veya Wolf oyunu — bölecek dosya listesi yoktur. Bunun yerine satırların üzerine bir kutu sürükleyin: onay kutuları ve toplu işlem çubuğu kendiliğinden belirir, gerisini Seçilenleri yeniden çevir halleder. Daha geniş bir tarama için önce filtre ve aramayla satırları daraltın, sonra Görünenlerin tümünü seç kullanın. Ona dikkat: tam olarak filtrenin gösterdiğini alır, yani temizlemeyi unuttuğunuz bir filtre sonraki bütün turları sessizce bozar. Hangi filtreyi kullandığınızı bir yere yazın.

Yüz satırlık bozuk bir yığın, sonuna kadar oynanmış hâli:

  • 1. tur — 100 şüpheli, ilk 50'yi çevirin: açılıyor, demek ki diğer 50'de.
  • 2. tur — 50 şüpheli, ilk 25'i çevirin: bozuluyor, demek ki bu 25'te.
  • 3. tur — 25 şüpheli, ilk 13'ü çevirin: açılıyor, demek ki diğer 12'de.
  • 4. tur — 12 şüpheli, ilk 6'yı çevirin: bozuluyor, demek ki bu 6'da.
  • 5. tur — 6 şüpheli, ilk 3'ü çevirin: bozuluyor, demek ki bu 3'te.
  • 6. tur — 3 şüpheli, ilk 2'yi çevirin: açılıyor, tek satır kaldı.

Yüz satırdan en kötü ihtimalle yedi dışa aktarım, beş binden en kötü ihtimalle yaklaşık on üç.

Bir turun maliyeti

Bir dışa aktarım, bir çalıştırma ve oyunun ilk diyalog satırına ulaşması ne kadar sürüyorsa o kadar. Küçük bir RPG Maker projesinde iki üç dakika. Dışa aktarımın oyunun tamamını kopyaladığı ve açılış ekranının ağırdan aldığı büyük bir Unity oyununda ona yakın.

Yani on üç tur neredeyse bütün bir akşam eder. Yine de ucuz seçenek budur, çünkü alternatifi beş bin satırı okuyup doğru tahmin etmek.

Elle yapınca iki şey ters gider. Her turda yepyeni ve boş bir klasöre dışa aktarın, çünkü bazı motorlar yamaları üst üste bindirir ve 1. ile 2. turun üstüne düşen 3. tur üçünü birden sınar. Sıfırlamak sıfırlamak demektir: elle düzenleme değil, Tüm çevirileri sıfırla kullanın, çünkü o, kaynak klasörün üzerine sonradan yazmış olsanız bile proje oluşturulurken alınan metni geri getirir.

Satırınızı geri aldıktan sonra hâlâ açılmıyorsa

O zaman birden fazlaydı; ayrıştırmaya duyarlı bir motorda ilk «hepsini çevir» denemesinin normal sonucu budur. Bulduğunuz satırı çevrilmemiş bırakın ve döngüyü hâlâ çevrili olan her şey üzerinde yeniden çalıştırın. İkinci suçlu çoğu zaman birincisiyle aynı türde bir dizedir, hem de aynı dosyada.

Bir dahaki sefere yığınlar hâlinde çevirin

Yığınlar dışa aktarım tasarrufu sağlamaz; bunlar zaten yapacağınız dışa aktarımlardır ve her hata size çoktan daraltılmış olarak gelir. Son yığında bozuldu, dolayısıyla ikiye bölme beş binden değil yüz satırdan başlar. 100 ile başlayın, birkaç yığın temiz geçtikten sonra 500'e ya da bütün bir dosyaya çıkın.

Yanlış satırı çevirirseniz hangi motorlar bozulur?

Motorlar için katı ya da esnek denir. Aslında belirleyici olan, çevirinizin nereye düştüğüdür.

Bazı motorlar onu veri olarak okur: Ren'Py'de ayrı bir dosya ve çalışma zamanı kancası, RPG Maker'da kaçış karakterli JSON, Unreal'da anahtar özetleri olduğu gibi korunan bir .locres değeri. Oyunun yapısı metninizi hiç görmez, dolayısıyla yanlış bir satır size yalnızca yanlış bir satıra mal olur. Diğerleri ise onu oyunun ayrıştırdığı bir dosyanın içine yerleştirir — betik, biçimlendirme ya da bayt akışı olarak — ve cümleniz o dosyanın yapısının parçası olur. Orada bir iki nokta, bir köşeli parantez, fazladan tek bir bayt ya da aynı zamanda arama anahtarı olan bir dize oyunu durdurmaya yeter.

Kuralın tamamı bu. Motorunuzu bulun, satırını okuyun ve devam edin.

  • RPG Maker MV/MZ — yapısal bir risk yok: kaçış karakterli JSON ve CSV, üstelik yalnızca sabit bir olay komutu kümesi sunuluyor. Tek gerçek risk, konuşan kişinin adını birebir karşılaştıran bir eklenti; dışa aktarım o eklentinin anahtarını da yeniden yazıyor.
  • Ren'Py — çok az. Kaynak kod hiç yeniden yazılmadığı için aynı zamanda mantık anahtarı olan bir dize güvendedir.
  • Unreal Engine — gördüğümüz satır düzeyinde bir hata biçimi yok: .locres dizeleri yapısı gereği görüntülenen metindir. Buradaki risk eksik metin, ölü bir yapı değil.
  • Unity — ağır ve sessiz: sahne adları, değişken anahtarları ve geri çağrılar diyalogla aynı şekilde saklanır. Sonsuz yükleme, ölü bir düğme ya da siyah ekran bekleyin.
  • Godot — ağır. Düğüm yolları, StringName'ler ve res:// referansları motorun baktığı adrestir; geri yazma bunları reddeder.
  • Wolf RPG — buradaki en kırılgan biçim. Tek baytlık bir kayma bütün akışı bozar ve süreç daha pencere oluşmadan durur.
  • Kirikiri / KAG — ağır: köşeli parantezler sözdizimidir ve depolama adları dosya adlarıdır. Çevrilmiş bir etiket adı, dönüştürülmüş bir parantez ya da çevrilmiş bir görsel dosya adı oyunu anında durdurur.
  • Electron VN — ağır. app.asar içindeki canlı JavaScript'e yazılan bir şablon yer tutucusu kötü bir çeviri değil, bir sözdizimi hatasıdır.
  • TyranoBuilder / TyranoScript — Kirikiri ile aynı aile: KAG etiketleri biçimlendirmedir, dolayısıyla çevrilmiş bir etiket sözdizimidir. Satır içi karakter referansları asla yeniden yazılmaz.
  • NScripter — ağır ve kendine özgü: ?, % ve $ değişken işaretleridir, başıboş bir tanesi sözdizimi hatasıdır.
  • YU-RIS — ağır, çünkü biçimin dize dediği şeyin çoğu aslında bir işlenendir. İkisini ayırmak bir oyunu 40.678 etkin satırdan 8.914'e indirdi, hiç diyalog kaybetmeden.

Diğer motorların motorlar altında kendi sayfaları ve rehberleri var.

Bir oyunu öldüren üç satır

RuneTranslate'teki her dışlama kuralının bedelini, artık açılmayan bir oyun ödedi. Bu üçü düzeltildi. Her birinde bozuk satır gayet makul görünüyordu ve dışa aktarım yeşille bitti.

Godot: oyun kendine bir karakter uyduruyor. Bir satırda Warning: the door is locked yazıyordu. Kusursuz İngilizce. Dialogic saklanan metindeki her iki noktayı kaçış karakteriyle korur, çünkü kaçışsız bir iki nokta tam da konuşanın adını ayırma yöntemidir. Ham hâliyle geri yazılınca cümle, Warning adlı bir karakterin the door is locked demesi olarak yeniden ayrıştırıldı ve eklenti bu karakteri gerçekten oluşturdu.

Kirikiri: oyun `End` adlı bir dosya arıyor. Bir düğmenin etiketi hem bir görsel dosya adı hem de bir hedef etiketi taşıyordu; maskeleme, kendi içinde parantez bulunduran bir etiketi kapsayamadığı için ikisi de açığa çıktı ve çevrildi. Tarayıcı artık parantez farkında: eşleşen parantezde kapanıyor, böylece iç içe bir ifade etiketin içinde kalırken sıradan bir etiket ilk ] işaretinde bitiyor.

RPG Maker: bir portre sessizce kayboluyor. Bir portre eklentisi, karakterin görselini konuşanın adını harf harf kendi ayar dosyasındaki bir tabloyla karşılaştırarak seçer. Adı çevirmek doğrudur; o ayar dosyasına dokunmamak da doğrudur, çünkü içi varlık anahtarlarıyla doludur. İkisi bir araya gelince eşitlik bozuldu ve karakterin portreleri hiçbir kayıt bırakmadan kayboldu.

Üç dışa aktarım da başarı bildirdi. Temiz bir dışa aktarım, hiçbir motorda çalışan bir oyunun kanıtı değildir. Tek kanıt onu çalıştırmaktır.

Sorun sizin satırlarınız değilken

İkiye bölmek bunları bulamaz, çünkü hiçbir yarı açılmaz: sorun dışa aktarımın nereye düştüğüdür. Wolf RPG oyunları .wolf arşivini yanındaki serbest dosyalardan önce okur; öyle ki biri açılış ekranını gösterirken çevrilmiş veriler diskte okunmadan duruyordu. Unity'nin Addressables'ı baytları sağlama toplamıyla artık uyuşmayan bir paketi reddeder ve size hiçbir günlükte iz bırakmayan siyah bir ekran verir. Paketlenmiş RPG Maker oyunları çalıştırılabilir dosyanın yanındaki veri dosyalarını yok sayar. Üçü de artık ele alınıyor; bu yüzden bir teslimat hatası avlanmayı değil bildirilmeyi hak eder.

Hangi satırların diyalog olduğunu gösteren bir işaret var mı?

Yok. Aksini söyleyene de şüpheyle yaklaşın.

Bir kullanıcı bir keresinde, her diyalog dizesini || içine alan bir Godot oyunu bulduğunu, yalnızca onları çevirdiğini ve oyunun çalıştığını anlatmıştı. O oyun için gerçekten işe yarar. Bu bir geliştiricinin alışkanlığı, Godot kuralı değil; sonraki oyun başka bir şey yapacak.

Karşı örnek YU-RIS'ten geliyor. Bir oyunda ters tırnak kanalı bütün arayüz dize tablosunu tutuyordu, 692 satırının 687'si görüntülenen metindi — ve ters tırnak orada yine de hiçbir anlam taşımıyor. Üç tırnak biçimi de aynı şeye derleniyor, dolayısıyla sınırlayıcıya dayanan bir kural gerçek metni işaretler. Değerin nerede durduğu size her şeyi söylüyordu; nasıl tırnaklandığı hiçbir şey söylemiyordu.

Bunun yerine konuma ve biçime güvenin, ikisini de oyunun size öğretmesine izin verin. Oyunu başlatın, ekrandaki ilk diyalog satırını okuyun, sonra o satırı editörde bulun: dosyası, grubu ve komşuları bu oyunda diyaloğun neye benzediğini gösterir. Başka bir yerde duran her şey diyalog olmama adayıdır.

Uygulamanın işaretledikleri ve bilemedikleri

RuneTranslate kod, varlık yolu ya da kimlik olduğunu düşündüğü satırları dışlanmış olarak işaretler. Gizlenmek yerine görünür kalırlar; dışlananları göster anahtarının arkasında turuncuya boyanırlar, böylece neye karar verildiğini görebilir ve istediğiniz satırı yine de çevir ile zorlayabilirsiniz. Ayrıca kendi desenlerinizi de ekleyebilirsiniz.

Dışlanmış satırları seçip bir çalıştırma başlatırsanız durup sorar: «Seçtiğiniz 340 satırın 12'si dışlanmış — filtreleriniz tarafından ya da RuneTranslate tarafından kod, varlık yolu veya kimlik olarak işaretlenmiş. Bunları çevirmek oyunu bozabilir. Atlamak onları dışlanmış tutar. Çevirmek, sonraki çalıştırmalar için de dâhil eder.»

Devam etmek sorun değil. Yalnızca yaptığınızı hatırlayın, çünkü dışa aktarım açılmamaya başladığında ilk bakılacak yer orasıdır.

Dürüst bir sınır: dışlama, bir dize hakkında bir tahmindir; dolayısıyla oyununuzdaki bir cümlenin aynı zamanda o oyunun getirdiği bir eklentide arama anahtarı olduğunu bilemez. Kaynağı zaten İngilizce olan bir oyun daha da az korunur, çünkü en güçlü filtreler bir dizenin kaynak dilde metin içerip içermediğini sorar.

Sık sorulan sorular

Çevirdikten sonra oyunum neden açılmıyor?

Neredeyse her zaman, çevirdiğiniz bir satır bir tanımlayıcı, bir yol, bir sahne adı ya da oyunun birebir dizeyle karşılaştırdığı bir bayrak olduğu için. Onu değiştirmek ayrıştırmayı ya da aramayı bozar.

Oyunu hangi çevrilmiş satırın bozduğunu nasıl bulurum?

İkiye bölün. Tüm çevirileri sıfırlayın, yarısını çevirin, boş bir klasöre dışa aktarın, çalıştırın. Hangi yarı bozuluyorsa satır oradadır; onu da ikiye bölün ve tekrarlayın. Yüz satırdan altı yedi tur, beş binden yaklaşık on üç.

Çevrilmiş oyunum hemen kapanıyor — bu ne demek?

Başlangıçta ölümcül bir hata. Kirikiri, Electron görsel romanları ve NScripter'da genelde bir sözdizimi hatası: çevrilmiş ya da düşmüş bir parantez, tırnak veya yer tutucu. Wolf RPG ve YU-RIS'te ise bozulmuş bir akış.

Çevrilmiş oyunum neden siyah ekranla açılıyor?

Genellikle istisnayı yutan bir kodun içinde başarısız olan bir yükleme; Unity'de ise sağlama toplamı artık katalog kaydıyla uyuşmayan bir paket. Tek bir zararsız satırı çevrilmiş bir derleme deneyin: o da siyahsa suçlu herhangi bir satır değil teslimattır.

Çevrilmiş oyunum yükleme ekranında takılı kaldı — sebebi çeviri mi?

Unity'de büyük olasılıkla evet. Sonsuz yükleme, çevrilmiş bir sahne adının ya da değişken anahtarının klasik belirtisidir: oyun artık eşleşmeyen bir adı bekler ve hiçbir hata fırlatılmaz.

Hangi tür satırlar asla çevrilmemeli?

Oyunun birebir dizeyle çözdüğü her şey: yollar, sahne ve düğüm adları, değişken ve olay adları, dil kodları, snake_case ya da res:// biçiminde görünen her şey. Bir oyuncunun onu ekranda okuduğunu gözünüzde canlandıramıyorsanız dokunmayın.

Oyun çalışıyor ama metin kutu ya da soru işareti — aynı sorun mu?

Hayır. Tekdüze kutular yazı tipinin o karakterler için glifi olmadığını gösterir; düz bir soru işareti ise dosya yazılırken kaybolduklarını. İkisi de yazı tipi ya da kodlama sorunudur ve çözümleri farklıdır.

Bundan sonrası

Bir çeviriyi onarmak yerine yenisine mi başlıyorsunuz? Çeviri yaması nasıl yapılır işin tamamını anlatıyor.

Satırınızı bulduğunuzda: onu kaynak dilde bırakın, etrafındaki her şeyi çevirin, yepyeni ve boş bir klasöre dışa aktarın ve çalıştırın. Çevrilmemiş tek bir tanımlayıcının oyuncuya hiçbir maliyeti yoktur.

İlgili okumalar
01

Türkçe yama nasıl yapılır — çeviri yaması

patchsharingtutorialworkflow18 Ağu 2026 · 9 dk
Oku →
02

XUnity.AutoTranslator çeviri yapmıyor

unityxunity-autotranslatortroubleshooting18 Ağu 2026 · 9 dk
Oku →
03

Çevrilen metin neden kutu görünüyor

unitytextmeshprofontstroubleshooting18 Ağu 2026 · 9 dk
Oku →

RuneTranslate'i denemeye hazır mısın?

Ücretsiz katman her motoru + her çeviri sağlayıcısını açar. Supporter ($3/mo) tam hızı açar.

Windows için indir