MotorlarRehberlerFAQPatreonDiscordİndir
Giriş yap
RuneTranslate · Japon oyunlarını baştan sona çevirin
MotorlarRehberlerKarşılaştırGörsel metniKayıt düzenleyiciHile ModuFAQİndirPatreonDiscordYouTubeGizlilikŞartlarİletişim
Tüm yazılar
unity · tutorial · engine

Bir Unity oyunu İngilizceye nasıl çevrilir

9 Haz 2026·6 dk okuma

Unity oyunlarını RuneTranslate ile çevirin — TextAsset’leri, MonoBehaviour alanlarını (Mono ve IL2CPP) ve StreamingAssets’i okuyarak, neden yalnızca-dışsallaştırılmış-metin olduğunu ve tanımlayıcı korumasının oyunu bozmanızı nasıl engellediğini.

Unity, giderek artan bir Japon bağımsız oyunu ve görsel romanı diliminin arkasındaki motordur — ve yaygın motorların çevrilmesi en zor olanıdır, çünkü Unity’nin tek bir metin formatı yoktur. Diyalog TextAsset bloklarında, MonoBehaviour dize alanlarında, gevşek StreamingAssets betiklerinde yaşayabilir ya da doğrudan bir C# DLL’ye derlenmiş olabilir. Bu kılavuz, bir Unity oyununu RuneTranslate ile çevirmeyi anlatır ve, aynı derecede önemlisi, Unity’yi farklı kılan tek kuralı açıklar: yalnızca dışsallaştırılmış metin.

Önce büyük uyarı: yalnızca dışsallaştırılmış metin

RuneTranslate, Unity metnini veride yaşayan yerlerde çevirir — motorun çalışma zamanında yüklediği varlık dosyaları, MonoBehaviour bileşenlerindeki dize alanları dahil (diyalog, adlar, etiketler). O alanları hem Mono hem de IL2CPP yapılarında okur: tip düzeni Mono’da oyunun kendi DLL’lerinden gelir ya da bir Managed/ klasörü olmadığında IL2CPP metaverisinden yeniden oluşturulur. Ulaşamadığı şey, derlenmiş C# kodunun kendisine (Assembly-CSharp.dll) sabit kodlanmış metindir. Pratikte, betiklerini varlıklarda ve bileşenlerde tutan oyunlar iyi çevrilir — ve ilk adım olan projeyi açmak, size neye sahip olduğunuzu söyler.

İhtiyacınız olanlar

  • Windows için RuneTranslate — ücretsiz, her motor ve sağlayıcı açık.
  • Bir Unity oyun klasörü — oyun .exe’si ve bir <GameName>_Data/ klasörü (globalgamemanagers, resources.assets, data.unity3d ve level* dosyalarını içeren) bulunan dizin.
  • Bir hedef dil — İngilizce, İspanyolca, Fransızca, Almanca, Portekizce, Rusça, Çince, İtalyanca, Türkçe, Vietnamca ve 20’den fazlası.
  • Bir çeviri sağlayıcısı. Ücretsiz Google Translate kutudan çıkar çıkmaz çalışır; DeepL’in ücretsiz bir katmanı vardır; OpenAI, Anthropic, bir yerel model ve herhangi bir OpenAI uyumlu API kendi anahtarınızı getirmenizi gerektirir.

Adım 1: Oyun klasörünü açın

RuneTranslate’i başlatın, Yeni proje’ye tıklayın ve Unity oyun dizinine yönlendirin. Motor algılama _Data/ klasörünü arar ve projeyi Unity olarak tanımlar. Paketlenmiş bir UnityPy Python yan bileşeni (yükleyicinin içinde gönderilir) varlık dosyalarını açar ve okunabilir dizeleri %APPDATA%/RuneTranslate/unity-workspace/<projectId>/ altındaki bir proje başına çalışma alanına listeler. Orijinal oyun klasörünüz asla değiştirilmez. Unity bir en iyi çaba motorudur — yeniden dağıtmadan önce dışa aktarılan sürümün çalıştığını doğrulayın.

Adım 2: Dizeler nasıl çıkarılır

RuneTranslate, Unity’nin metni dışsallaştırdığı her yerden metin okur:

  • TextAsset’ler — .assets ve AssetBundle’lara gömülü JSON / CSV / betik blokları, format duyarlı bir çıkarıcıyla dilimlenir.
  • MonoBehaviour dize alanları — bileşenlerdeki gösterim metni (diyalog, adlar, etiketler), hem Mono hem de IL2CPP yapılarında (tip bilgisi oyunun DLL’lerinden gelir ya da IL2CPP metaverisinden yeniden oluşturulur).
  • StreamingAssets — diskte doğrudan yürünen gevşek betik dosyaları (.json, .txt, .csv, .tsv, .xml, .yaml, .ks ve daha fazlası).
  • Şifreli Addressable bundle’ları — Addressable varlık bundle’larını AES-şifreleyen oyunlar otomatik olarak çözülür (anahtar, bundle’ın kendi dosya adından türetilir), böylece metinleri herhangi bir bundle gibi çıkar.

Unity ayrıca aşırı çevirinin en çok zarar verdiği yerdir, dolayısıyla RuneTranslate bunun için bir koruma gönderir. Birçok MonoBehaviour dizesi hiç gösterim metni değildir — bunlar kontrol tanımlayıcıları ve akış işlenenleridir: bir LoadScene çağrısının dizeyle çözdüğü sahne adları, mesaj yönlendirme anahtarları, animator / ses klibi adları, Live2D parça adları ve Fungus If / SetVariable mantığının içindeki karşılaştırma değerleri (örneğin 村落出口 gibi bir bayrak). Bunları çevirin ve oyun sessizce bozulur — klasik belirti, hata olmadan sonsuz bir "yükleniyor" ekranıdır. RuneTranslate bunları hariç tutulmuş olarak otomatik sınıflandırır (kırmızıyla gösterilir, yalnızca isteğe bağlı), böylece düzenleyici gerçek diyalog ve etiketleri öne çıkarır ve mekanizmayı rahat bırakır. Fungus {$var} ikameleri ve {color=...} / TMP <...> işaretlemesi, çeviriden sağ çıksınlar diye yer tutucuların arkasına maskelenir.

Adım 3: Çevirin ve inceleyin

Bir sağlayıcı seçin ve çalıştırın. Diyalog için DeepL veya bir LLM en iyi okur; ücretsiz Google Translate menüleri ve eşya adlarını kapsar. Kadronuzu ve tekrar eden terimlerinizi önce sözlüğe ekleyin — Sözlük 101’e bakın. Her satır düzenleyicide kaynağının yanına iner; satır içi düzenleyin (odak kaybında veya Ctrl+Enter’da kaydeder) ve ikinci geçiş bir düzelti için isteğe bağlı yapay zeka iyileştiricisini çalıştırın. Ücretsiz katman ölçülü bir kısıtlamada çalışır (yapay zeka sağlayıcılarında kabaca 2 kat daha yavaş, kazıyıcılarda daha az) — aynı motorlar, aynı çıktı kalitesi; ücretli yalnızca tam hızda çalışır.

Adım 4: Oynanabilir bir sürüm dışa aktarın

Dışa Aktar’a tıklayın. RuneTranslate oyunu kopyalar, ardından çevrilmiş dizeleri yerinde varlık dosyalarına geri yamalar. Aynı hariç tutma koruması geri yazmada da çalışır, böylece eski bir proje yeniden dışa aktarımda yanlışlıkla çevrilmiş bir sahne adı veya akış işleneni gönderemez. Çıktı, seçtiğiniz konumda oyunun tam, çalıştırılabilir bir kopyasıdır — .exe’yi başlatın ve hedef dilinizde oynasın.

Oyunun yerleşik fontunun gliflerini işleyemeyeceği bir Latin dışı dile (Çince, Japonca, Korece, Tayca, Arapça) mı çeviriyorsunuz? RuneTranslate dışa aktarımda TextMeshPro font yığınına bir yedek font enjekte eder, böylece çevrilmiş metin eksik-glif kutuları yerine görünür.

Bilinen sınırlamalar

  • Yalnızca dışsallaştırılmış metin: derlenmiş C# koduna sabit kodlanmış dizeler (Mono’da Assembly-CSharp.dll veya IL2CPP ikilisi) çevrilmez. MonoBehaviour veri alanları çevrilir — hem Mono hem de IL2CPP yapılarında.
  • IL2CPP MonoBehaviour okuma, ayrıştırılabilir bir global-metadata.dat gerektirir; yoğun gizlenmiş metaveri yeniden oluşturulamayabilir (en iyi çaba).
  • En iyi çaba: paylaşmadan önce dışa aktarılan oyunun başlatıldığını ve doğru okuduğunu onaylayın.
  • Görsel metin (logolar, elle çizilmiş arayüz, CG başlıkları) çevrilmez — makine çevirisi kapsamı dışında.

Bu neden eski yoldan daha kolay

Manuel Unity çevirisi, varlıkları UABE veya AssetStudio ile açmak, hangi TextAsset’lerin ve MonoBehaviour alanlarının gerçek metin tuttuğunu aramak, oyunu çökerten tanımlayıcı dizelerinden elle kaçınmak, ardından varlık tablosunu bozmadan yeniden içe aktarmak anlamına geliyordu. RuneTranslate çıkar, sınıflandır (böylece mekanizmayı çevirmezsiniz), çevir ve yerinde-yamala işlemlerini birkaç tıklamaya katlar — kelimeleri kontrol etmeniz için düzenleyici açık.

Tam özellik listesi için Unity motor sayfasına bakın, HTML tabanlı bir motor için TyranoBuilder kılavuzunu okuyun veya RuneTranslate’i indirin ve gerçek bir oyunda deneyin.

İlgili okumalar
01

Bir oyunun .po ve .mo dosyaları nasıl çevrilir (gettext)

gettextpomoenginetutorial4 Ağu 2026 · 7 dk
Oku →
02

Godot oyunları İngilizceye nasıl çevrilir

godotenginetutorial17 Haz 2026 · 6 dk
Oku →
03

Bir Ren’Py oyunu İngilizceye nasıl çevrilir (tam anlatım)

renpytutorialengine9 Haz 2026 · 6 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