Cara menerjemahkan game Unity ke bahasa Inggris (teks tereksternalisasi)
Panduan langkah demi langkah untuk menerjemahkan game Unity ke bahasa Inggris dengan RuneTranslate — membaca TextAssets, field MonoBehaviour, dan StreamingAssets, mengapa hanya mendukung teks tereksternalisasi, dan bagaimana penjaga identifier mencegahmu merusak game.
Unity adalah engine di balik semakin banyak game indie dan visual novel Jepang — sekaligus yang paling rumit di antara engine umum untuk diterjemahkan, karena Unity tidak punya satu format teks tunggal. Dialog bisa berada di blob TextAsset, di field string MonoBehaviour, di skrip StreamingAssets lepasan, atau dikompilasi langsung ke dalam DLL C#. Panduan ini menuntunmu menerjemahkan game Unity dengan RuneTranslate dan, yang tak kalah penting, menjelaskan satu aturan yang membuat Unity berbeda: hanya teks tereksternalisasi.
Peringatan besar lebih dulu: hanya teks tereksternalisasi
RuneTranslate menerjemahkan teks Unity yang berada di dalam data — file aset yang dimuat engine saat runtime, termasuk field string pada komponen MonoBehaviour (dialog, nama, label). Yang tidak diterjemahkan adalah teks yang di-hard-code oleh developer ke dalam kode C# terkompilasi — Assembly-CSharp.dll pada build Mono, atau biner IL2CPP. Field MonoBehaviour terbaca pada build Mono maupun IL2CPP: RuneTranslate mendapatkan tata letak tipenya dari DLL milik game itu sendiri (Mono), atau merekonstruksinya dari metadata IL2CPP saat tidak ada folder Managed/. Dalam praktiknya: game yang menyimpan skripnya di aset dan komponen bisa diterjemahkan dengan baik; game yang memanggang setiap baris ke dalam kode terkompilasi hanya diterjemahkan sebagian — dan kamu tidak akan tahu yang mana sampai membukanya, yang merupakan langkah pertama.
Yang kamu butuhkan
- RuneTranslate untuk Windows — gratis, setiap engine dan provider terbuka.
- Folder game Unity — direktori berisi
.exegame dan folder<GameName>_Data/(yang memuat fileglobalgamemanagers,resources.assets,data.unity3d, danlevel*). - Bahasa target — Inggris, Spanyol, Prancis, Jerman, Portugis, Rusia, Tionghoa, Italia, Turki, Vietnam, dan 20+ lainnya.
- Satu provider terjemahan. Google Translate gratis langsung bisa dipakai; DeepL punya tingkat gratis; OpenAI, Anthropic, model lokal, dan API apa pun yang kompatibel dengan OpenAI memakai kunci milikmu sendiri.
Langkah 1: Buka folder game
Jalankan RuneTranslate, klik Proyek baru, dan arahkan ke direktori game Unity. Deteksi engine mencari folder _Data/ dan mengidentifikasi proyek sebagai Unity. Sidecar Python UnityPy bawaan (disertakan di dalam installer) membuka file aset dan mendaftar string yang bisa dibaca ke dalam workspace per-proyek di %APPDATA%/RuneTranslate/unity-workspace/<projectId>/. Folder game aslimu tidak pernah diubah. Unity adalah engine best-effort — pastikan build yang diekspor berjalan sebelum kamu mendistribusikannya.
Langkah 2: Bagaimana string diekstrak
RuneTranslate membaca teks dari setiap tempat Unity mengeksternalisasikannya:
- TextAssets — blob JSON / CSV / skrip yang tertanam di
.assetsdan AssetBundle, dipotong oleh ekstraktor yang sadar format. - Field string MonoBehaviour — teks tampilan pada komponen (dialog, nama, label), pada build Mono maupun IL2CPP (info tipe berasal dari DLL milik game, atau direkonstruksi dari metadata IL2CPP).
- StreamingAssets — file skrip lepasan (
.json,.txt,.csv,.ks) yang ditelusuri langsung di disk.
Unity juga tempat di mana terjemahan-berlebihan menimbulkan kerusakan terbesar, jadi RuneTranslate menyertakan penjaga untuk itu. Banyak string MonoBehaviour sama sekali bukan teks tampilan — melainkan identifier kendali dan operan alur: nama scene yang di-resolve panggilan LoadScene lewat string, kunci perutean pesan, nama animator / klip suara, nama bagian Live2D, dan nilai perbandingan di dalam logika Fungus If / SetVariable (mis. flag seperti 村落出口). Terjemahkan itu dan game rusak diam-diam — gejala klasiknya adalah layar „loading“ tak berujung tanpa error. RuneTranslate otomatis mengklasifikasikannya sebagai dikecualikan (ditampilkan merah, hanya opt-in), sehingga editor menonjolkan dialog dan label yang sesungguhnya serta membiarkan mesinnya sendiri. Substitusi Fungus {$var} dan markup {color=...} / TMP <...> ditutupi di balik placeholder agar bertahan utuh melewati terjemahan.
Langkah 3: Terjemahkan dan tinjau
Pilih provider lalu jalankan. DeepL atau LLM paling enak dibaca untuk dialog; Google Translate gratis mencakup menu dan nama item. Buat glosarium untuk para karakter dan istilah berulang lebih dulu — lihat Glosarium 101. Setiap baris muncul di editor di samping sumbernya; sunting langsung (menyimpan saat kehilangan fokus atau Ctrl+Enter), dan jalankan AI refiner opsional untuk uji-baca kedua. RuneTranslate tingkat gratis dibatasi ~3–4× lebih lambat dari berbayar — kualitas keluaran sama.
Langkah 4: Ekspor build yang bisa dimainkan
Klik Ekspor. RuneTranslate menyalin game, lalu menambal string terjemahan kembali ke dalam file aset di tempatnya. Penjaga pengecualian yang sama berjalan saat penulisan-balik, jadi proyek lama tidak bisa secara tidak sengaja mendorong nama scene atau operan alur yang terterjemahkan saat ekspor ulang. Keluarannya adalah salinan game yang utuh dan bisa dijalankan di lokasi yang kamu pilih — jalankan .exe dan game berjalan dalam bahasa targetmu.
Batasan yang diketahui
- Hanya teks tereksternalisasi: string yang di-hard-code ke dalam kode C# terkompilasi (
Assembly-CSharp.dllpada Mono, atau biner IL2CPP) tidak diterjemahkan. Field data MonoBehaviour diterjemahkan — pada build Mono maupun IL2CPP. - Pembacaan MonoBehaviour IL2CPP membutuhkan
global-metadata.datyang bisa diurai; metadata yang di-obfuscate berat mungkin tidak bisa direkonstruksi (best-effort). - Best-effort: pastikan game yang diekspor bisa diluncurkan dan terbaca dengan benar sebelum kamu membagikannya.
- Teks gambar (logo, UI gambar tangan, keterangan CG) tidak diterjemahkan — di luar cakupan terjemahan mesin.
Mengapa ini lebih mudah daripada cara lama
Menerjemahkan Unity secara manual berarti membongkar aset dengan UABE atau AssetStudio, memburu TextAssets dan field MonoBehaviour mana yang berisi teks sungguhan, menghindari secara manual string identifier yang membuat game crash, lalu mengimpor ulang tanpa merusak tabel aset. RuneTranslate melipat ekstraksi, klasifikasi (agar kamu tidak menerjemahkan mesinnya), terjemahan, dan tambal-di-tempat menjadi beberapa klik — dengan editor terbuka sehingga kamu mengendalikan pemilihan kata.
Lihat halaman engine Unity untuk daftar fitur lengkap, baca panduan TyranoBuilder untuk engine berbasis HTML, atau unduh RuneTranslate dan cobalah pada game sungguhan.
Siap mencoba RuneTranslate?
Tier gratis membuka setiap engine + setiap penyedia terjemahan. Supporter ($3/mo) membuka kecepatan penuh.
Unduh untuk Windows