YU-RIS görsel romanları İngilizceye nasıl çevrilir
RuneTranslate, YU-RIS (raiL-soft) görsel romanlarını İngilizceye ve 30’dan fazla dile çevirir — .ypf paketlerini ve derlenmiş YSTB betiklerini saf TypeScript ile okuyarak, her betiğin XOR anahtarını kurtararak ve çevrilmiş betikleri gevşek dışa aktararak. En iyi çaba.
RuneTranslate, hayran çevirmenler için uzun süredir bir duvar olan başka bir motoru okur: raiL-soft tarafından yapılan Windows betikleme motoru YU-RIS, yüzlerce doujin ve ticari Japon görsel romanının arkasında. Hiç bir YU-RIS oyun klasörünü açıp .ypf arşivleriyle dolu bir pac/ dizini ve içinde okunabilir hiçbir şey olmayan bir ysbin.ypf bulduysanız ve pes ettiyseniz — işte o motor budur. RuneTranslate onu algılar, o paketleri saf TypeScript ile açar, diyalogu derlenmiş betiklerden okur ve oyunun kendi başına yüklediği çevrilmiş bir kopya dışa aktarır.
Önce dürüst kısım: YU-RIS desteği yeni yapıldı ve birçok gerçek oyunda henüz doğrulanmadı. Yani RuneTranslate’i bir YU-RIS oyununa yönlendirir de algılamaz, açmaz veya oyunun yükleyemeyeceği bir şey dışa aktarırsa, lütfen bize söyleyin — sonda daha fazlası var.
YU-RIS motoru gerçekte nedir
YU-RIS (bazen ゆーりす olarak yazılır), raiL-soft tarafından yapılan bir Japon görsel roman betikleme motorudur. Bitmiş bir oyun, bir Windows .exe artı bir dizi .ypf paket arşividir — genellikle bir pac/ klasöründe — çizim, ses ve betikleri tutar. Senaryo YSTB adlı ikili bir formata derlenir ve ysbin.ypf içindeki .ybn dosyaları olarak saklanır (ysbin/yst00000.ybn gibi dahili yollarda). O "paketlenmiş arşivin içindeki derlenmiş senaryo" bileşimi, motorun büyük arka kataloğunu sıradan makine çevirisi araçlarının erişemeyeceği yerde tutan tam olarak şeydir.
YU-RIS oyunlarını çevirmek neden bu kadar zor oldu
Ren’Py gibi kaynak odaklı bir motorla karşılaştırıldığında, YU-RIS metnini birkaç katmanın arkasına gizler:
- Her şey `.ypf` paketlerinin içinde yaşar. Betikler gevşek değildir — YU-RIS’in kendi kabına gizlenmiş dosya adları ve zlib-sıkıştırılmış girdilerle paketlenmiştir. O format için bir okuyucu olmadan, düzenlenecek hiçbir şey yoktur.
- Senaryo derlenmiştir, metin değildir. Bir
.ybn, dört bölüme ayrılmış ikili birYSTBkabıdır (komut akışı, argüman-tanımlayıcı tablosu, dize tablosu, satır numaraları). Japonca, tanımlayıcılar tarafından referans verilen dize tablosunda yaşar. - Betikler XOR-şifrelidir. Her
YSTB’nin dört bölümü, oyundan oyuna değişen 4 baytlık bir anahtarla karıştırılır. Herhangi bir metin okunabilir olmadan önce onu kurtarmanız gerekir. - Her dize diyalog değildir. Dize tablosu ayrıca betiğin karşılaştırdığı değişken adlarını, varlık yollarını ve ifade işlenenlerini de tutar — birini çevirin ve akış sessizce bozulur.
Net etki: akıcı bir okuyucu bile, tek bir satır çevrilmeden önce özel bir arşivi açmalı, derlenmiş bir ikiliyi ayrıştırmalı, XOR’u kırmalı, ardından diyalogu motorun dahili dizelerinden ayırmalıdır. RuneTranslate’in sizin için yaptığı iş budur.
RuneTranslate şimdi ne yapıyor
RuneTranslate tüm hattı saf TypeScript ile halleder — harici araç yok, Python yan bileşeni yok, kurulacak hiçbir şey yok:
- `.ypf` paketlerini doğrudan okur. Arşivleri şirket içinde açar, girdileri açar ve gizlenmiş dosya adlarını kurtarır — GARbro yok. Oyunu kendiniz mi açtınız? Gevşek bir
.ybnbetikleriysbin/klasörü de algılanır. - Derlenmiş `YSTB` betiklerini ayrıştırır ve şifrelemeyi çözer. Her betiğin 4 baytlık XOR anahtarını argüman-tanımlayıcı tablosundan otomatik olarak kurtarır, Shift-JIS dize tablosunu çözer ve her Japonca satırı betik dosyasına göre gruplayarak listeler.
- Diyalogu mekanizmadan ayırır. Değişken adları, varlık yolları ve ifade işlenenleri yüzeye çıkarılır ama varsayılan olarak hariç tutulur — kırmızı, isteğe bağlı satırlar olarak — böylece hikaye mantığının karşılaştırdığı bir dizeyi asla çevirmezsiniz.
- Satır içi kontrol kodlarını korur. Ters eğik çizgi kodları (satır sonu, renk, ruby) ve köşeli parantezli etiketler, sağlayıcı görmeden önce sayısal yer tutucuların arkasına maskelenir, ardından tam olarak geri yüklenir.
- Yeniden paketlemeden dışa aktarır. Her çevrilmiş betiği yeniden oluşturur — daha uzun veya daha kısa bir çeviri sığsın diye dize-tablosu ofsetlerini yamalayarak ve XOR anahtarını yeniden uygulayarak — ardından
.ybn’yi orijinal arşiv yolunda gevşek olarak yazar. YU-RIS, paketlenmiş kopya yerine gevşek bir dosyayı tercih eder, dolayısıyla oyun yalnızca çevirinizi okur — Kirikiri ve Artemis akışlarımızla aynı gevşek-dosya geçersiz kılması.
Japonca → İngilizce en verimli noktadır, ama 30’dan fazla dili hedefleyebilirsiniz.
İhtiyacınız olanlar
- Windows için RuneTranslate — ücretsiz; her motor ve sağlayıcı açık (ücretsiz katman özelliklerde değil, hızda kısıtlanır).
- Bir YU-RIS oyun klasörü — oyunun
yu-ris.exe’sinin ve.ypfpaketlerinin bulunduğu dizin (tipik olarakpac/içinde, betiklerysbin.ypfiçinde). - Bir hedef dil — İngilizce, İspanyolca, Fransızca, Almanca, Çince ve 30’dan fazlası.
- Bir sağlayıcı. Ü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. YU-RIS oyunları diyalog ağırlıklıdır, dolayısıyla bir LLM veya DeepL en iyi okur.
Adım 1: Oyun klasörünü açın
RuneTranslate’i başlatın, Yeni proje’ye tıklayın ve YU-RIS oyun dizinine yönlendirin. Algılama otomatik çalışır — bir .ypf paketi (veya gevşek bir .ybn betikleri ysbin/ klasörü) gördüğünde, projeyi YU-RIS olarak tanır. Orijinal oyun klasörünüz asla değiştirilmez.
Adım 2: Betikler nasıl okunur
RuneTranslate .ypf paketlerini açar, derlenmiş YSTB betiklerini ysbin.ypf’den çeker, her betiğin XOR anahtarını kurtarır ve Shift-JIS dize tablosunu çözer — her Japonca satırı düzenleyicide dosyaya göre gruplayarak listeler. Motorun dahili dizeleri (değişken adları, varlık yolları, ifade işlenenleri) gösterilir ama varsayılan olarak hariç tutulur ve satır içi kontrol kodları sayısal yer tutucuların arkasına maskelenir, böylece sağlayıcı onları asla bozmaz.
Adım 3: Çevirin
Bir sağlayıcı seçin ve çalıştırın. Karakter sesi ve ton için bir LLM (OpenAI / Anthropic) en iyisidir, DeepL anlatı için hızlı ve temizdir ve ücretsiz Google Translate kısa menü dizeleri ve seçimler için gayet iyidir. Adların aynı şekilde görünmesi için kadronuzu baştan sözlüğe ekleyin — Sözlük 101’e bakın. Bitirdiğinizde, yapay zeka iyileştiricisiyle isteğe bağlı bir geçiş her satırı bağlamda yeniden okur ve MT’nin geride bıraktığı katı, birebir ifadeyi sıkılaştırır.
Adım 4: Çalışmaya hazır bir kopya dışa aktarın
Dışa Aktar’a tıklayın. RuneTranslate, her yeniden oluşturulmuş .ybn’yi orijinal arşiv yolunda gevşek olarak yerleştirilmiş, dokunulmamış .ypf paketlerinin yanında oyunun çevrilmiş bir kopyasını yazar. Yeniden paketleme yoktur — YU-RIS gevşek betikleri paketlenmiş orijinallere tercihen yükler, böylece oyun yalnızca çevirilerinizi okur. Çalıştırın ve hedef dilinizde oynasın.
Bilinen sınırlamalar
- YU-RIS dizeleri Shift-JIS’tir (cp932). İngilizce ve cp932 ile temsil edilebilen diğer hedefler temiz dışa aktarılır. cp932 dışındaki hedefler — genişletilmiş Kiril, Korece, Geleneksel Çince — henüz otomatik olmayan bir oyun-fontu/kodlama düzeltmesi gerektirir.
- Gevşek-dosya geçersiz kılması beklenen yükleme yoludur ve motor gevşek bir betiği paketlenmiş kopyaya tercih ettiği için çoğu YU-RIS oyununda çalışır. Bunu onurlandırmayan nadir bir oyunda, dışa aktarma ayarlama gerektirebilir — tam olarak hâlâ onayladığımız gerçek oyun davranışı.
- Görsel çizime pişirilmiş metin — bitmap olarak çizilmiş bir başlık ekranı veya menü düğmesi — piksellerdir, betik metni değildir. Bunun için görsel metin çevirisine bakın.
- Tam arşiv ve betik varyantı sürümler arasında farklılık gösterebilir. Her zaman kendi özel kopyanızda doğrulayın.
Yepyeni — neyin bozulduğunu bize söyleyin
Tekrar etmeye değer: YU-RIS desteği taze bir eklemedir ve birçok gerçek oyunda henüz test edilmedi. .ypf okuyucusu, YSTB ayrıştırıcısı ve anahtar kurtarma yapıldı ve birim-test edildi, ama motorun hepsini görmediğimiz yıllarca süren stüdyodan stüdyoya varyasyonu var. Yani RuneTranslate’i bir YU-RIS oyununa yönlendirir de algılamaz, arşivleri açmaz, hiçbir şey çıkarmaz veya oyunun yükleyemeyeceği bir şey dışa aktarırsa, lütfen Discord’umuzda bildirin — oyunun adı ve nasıl paketlendiği bize onu en hızlı şekilde sağlamlaştırmamıza yardımcı olur.
RuneTranslate’i indirin, onu okumak istediğiniz o YU-RIS VN’sine yönlendirin ve deneyin. Arşiv tabanlı başka bir VN motoru için, sonra Artemis anlatımını okuyun.
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
