Çeviri sözlüğü 101 — makine çevirisinde karakter adlarını ve terminolojiyi sabitlemek
Makine çevirisi özel adları düzleştirir. Bir çeviri sözlüğü, her partide, her sağlayıcıda kaynak→hedef terim çiftlerini zorla yerine koyar — böylece kahramanınızın adı 1. bölümde de 47. bölümde de aynı okunur. RuneTranslate'in yer tutucu maskesinin nasıl çalıştığı, TM ile sözlüğün ne zaman birlikte çalıştığı ve sözlükleri çevirmenler arasında paylaşmak için CSV iş akışı.
200 satırlık bir Japon görsel romanını DeepL'den geçirin, kahramanın adı Alice olarak çıkar. Sonraki 200 satırı geçirin, bu kez Aris olur. Bir sonraki parti Arisu'da karar kılar. Dördüncü bölüme geldiğinizde, hangi sahneyi okuduğunuza bağlı olarak üç adı vardır.
Bu, uzun anlatı odaklı oyunlarda makine çevirisinin en yaygın başarısızlık biçimidir — kötü dil bilgisi değil, tuhaf ifadeler değil, tutarsız özel adlar. Sağlayıcının partiler arasında belleği yoktur; bir adı her gördüğünde yalnızca en akla yatkın romanizasyonu tahmin eder. 40 saatlik bir RPG boyunca bu kayma, okunabilir bir çeviriyi dört ayrı kişinin çevirdiği hissini veren bir şeye dönüştürür.
Bir çeviri sözlüğü bunu düzeltir. Kaynak-hedef terim çiftlerini bir kez tanımlarsınız — アリス → Alice, 勇者 → Hero, 魔王 → Demon Lord — ve her çeviri partisi, her sağlayıcıda bunlara uyar. Sağlayıcı bu terimleri ham hâliyle görmez bile. Bu yazı işte bununla ilgili.
Sözlük aslında nedir
RuneTranslate'te bir sözlük, üç sütunlu kurallardan oluşan bir listedir:
- source — sabitlenecek kaynak dildeki alt dize (varsayılan olarak Japonca; desteklenen herhangi bir kaynak dil) (örn.
勇者) - target — çıktıda nasıl görünmesini istediğiniz (örn.
Hero) - targetLang — bu kuralın hangi çıktı diline uygulanacağı (böylece tek bir sözlük İngilizce + İspanyolca + Almanca'yı aynı anda kapsayabilir)
Tipik bir görsel roman kadrosu için bunlardan 30 tane ekleyin, tüm o özel ad kayması sınıfını tek hamlede ortadan kaldırmış olursunuz.
Yer tutucu maskesi nasıl çalışır (sağlayıcıdan bağımsız)
Bir sözlüğü uygulamanın saf yolu, sağlayıcı çalıştıktan sonra hedef terimi yerine koyan bir düzenli ifade yazmaktır. Bu, DeepL'de az çok işe yarar ama LLM sağlayıcılarında başarısız olur: LLM, çevirdiği terimin etrafında cümleyi zaten yeniden kurgulamıştır ve regex ile yaptığınız değişiklik ortada kalmış tanımlıklar ve tuhaf büyük harfler bırakır.
RuneTranslate, sözlük terimlerini sağlayıcıya ulaşmadan önce maskeler. Runner, partilenmiş her kaynak dizeyi dolaşır ve her sözlük source'unu sayısal bir yer tutucuyla değiştirir — [[G0]], [[G1]] vb. Sağlayıcı, yanlış çeviremeyeceği belirsiz belirteçler görür. Dönüşte bu yer tutucular sizin target teriminizle değiştirilir, ardından üzerine motor etiketi maskesi (RPG Maker kodları, KAG etiketleri, Ren'Py interpolasyonları) geri yerleştirilir.
Sonuç: DeepL'de, OpenAI GPT-4o'da, Anthropic Claude'da ya da ücretsiz Google Translate'te olun, sözlük terimleri birebir aynı şekilde görünür. Aynı maskeler, aynı geri yükleme adımı, aynı nihai çıktı.
Öncelik sırası — TM sözlüğü, sözlük de sağlayıcıyı yener
Bir çeviri partisinin runner içinde nasıl işlendiğini bilmek faydalıdır, çünkü bu, sözlük düzenlemelerinin neden size sağlayıcı kredisine mal olmadığını ve çeviri belleğinin sözlükle nasıl birlikte çalıştığını açıklar:
- Çeviri belleği (TM) kısa devresi. Bu birebir kaynak dizeyi geçmişteki herhangi bir projede zaten çevirdiyseniz, önbelleğe alınmış çeviri anında sunulur — sıfır sağlayıcı çağrısı, sıfır maliyet. Birim, sağlayıcı görmeden önce partiden çıkarılır.
- Sözlük maskesi, TM tarafından karşılanmayan birimlere uygulanır.
- Sağlayıcı çağrısı, maskelenmiş metin üzerinde gerçekleşir. Bu, para maliyeti olan / kotadan düşen tek adımdır.
- Geri yükleme — sözlük yer tutucuları hedef terimlerinize dönüşür, ardından üzerine motor etiketleri geri yüklenir.
- TM yazımı — nihai çevrilmiş satır önbelleğe alınır; böylece bu Japoncayı bir dahaki görüşünüzde ücretsiz olarak 1. adıma geri döner.
TM isabetleri en büyük maliyet tasarrufudur. Sözlük en büyük kalite tasarrufudur. Birlikte katlanarak birikirler: bir satırı bir kez elle düzenleyin, TM'e önbelleklenir ve sözlük, özel adları hem önbellek isabetlerinde HEM DE yeni partilerde tutarlı tutar.
TM + sözlük etkileşimi (baypas koruması)
Bilinmeye değer ince bir uç durum var: ya üç ay önce 勇者 içeren 100 satırı sözlük olmadan çevirdiyseniz, TM bunları rastgele Warrior / Champion / Hero olarak önbelleğe aldıysa — ve şimdi sözlüğe 勇者 → Hero eklerseniz?
Saf bir bakışla, bir dahaki sefere 勇者 gördüğünüzde TM yine Warrior verirdi — nihayetinde önbelleğe alınan buydu. RuneTranslate buna karşı koruma sağlar: TM isabeti anında, geçerli birimde bir sözlük source'u görünüyorsa VE önbellekteki hedef, sözlüğün hedef karşılığını içermiyorsa, önbellek isabeti baypas edilir ve o birim yeni bir sağlayıcı çağrısına düşer. Çalışma sonu özetinde «N birim, sözlük değişikliklerine uymak için önbelleği baypas etti» satırı görünür; böylece bunun olduğunu bilirsiniz.
Net etki: eski bir projeye yeni bir sözlük girdisi eklemek sizi eski çevirilerle baş başa bırakmaz. Etkilenen birimler üzerinde çeviri geçişini yeniden çalıştırmanız yeterli.
Sözlüğünüzü oluşturmak — ne eklenmeli
Tipik bir proje için etkiye göre sıralayın:
- Önce kadro. Adı olan her karakter. Mümkünse bir wiki / VNDB / oyunun kendi jenerik ekranından çekin. Yalnızca bu, uzun oyunlardaki kaymanın %80'ini ortadan kaldırır.
- Sonra yerler. Kasabalar, zindanlar, bölgeler, krallıklar. Özellikle birden fazla akla yatkın romanizasyonu olan kanji ile yazılmış olan her şey.
- Üçüncü sırada imza saldırıları / yetenekler. Boss saldırı adları, tekrar eden büyü adları, özel hamle adları. RPG'ler ve dövüş ağırlıklı görsel romanlar için önemli.
- Dördüncü sırada dünyaya özgü terminoloji. Oyunun ırklar / sınıflar / eserler / para birimi için uydurduğu sözcükler.
Neyi eklememeli: sık kullanılan sözcükler. 剣 → sword, yanlış eşleşmeler için bir reçetedir — 剣 içeren her bileşiği (魔剣, 聖剣, 剣士) kilitlersiniz; oysa sağlayıcı bunları kendi başına gayet iyi verirdi. Sözlük girdileri birebir alt dize eşleşmeleridir; kilitlemeye çalıştığınız özel ada özgü olacak kadar uzun tutun.
CSV içe / dışa aktarma — sözlükleri paylaşmak
Bir hayran çevirisi projesini iş arkadaşlarıyla mı çeviriyorsunuz? Ayarlar'daki sözlük sekmesinde, girdilerinizi bir RFC-4180 CSV dosyası üzerinden gidip getiren CSV İçe Aktar ve CSV Dışa Aktar düğmeleri var:
source,target,targetLang 勇者,Hero,en アリス,Alice,en 魔王,Demon Lord,en 村人A,Villager A,en 勇者,Héroe,es
Başlık satırı zorunludur. Virgül, tırnak işareti veya satır sonu içeren alanlar çift tırnakla sarılır; gömülü tırnaklar "" olarak kaçışlanır. İçe aktarımda isteğe bağlı BOM ile UTF-8 (Excel varsayılan olarak UTF-8-BOM dışa aktarır). Boş satırlar ve desteklenmeyen targetLang kodlarına sahip satırlar, satır başına bir gerekçeyle atlanır.
İçe aktarım bir Birleştir modu (CSV satırlarını mevcut sözlüğünüzün üzerine ekler, source+dile göre yinelenenleri kaldırır, çakışmada CSV kazanır) ya da bir Değiştir modu (mevcut olanı siler ve yalnızca CSV'dekini kullanır) sunar. Kısmi bir sözlüğü paylaşan iş arkadaşları için doğru varsayılan Birleştir'dir; Değiştir ise arşivleme / yedek geri yükleme için doğrudur.
Mevcut sınırlamalar
- Yalnızca birebir alt dize eşleşmeleri. Regex yok, joker karakter yok. Hem
勇者よhem勇者だkilitlemeniz gerekiyorsa, şimdilik iki girdi eklersiniz. - Hedef dil başına çiftler. Bir sözlük girdisi tek bir çıktı diline bağlıdır. «source=勇者, targets=Hero (en) + Héroe (es) + Held (de)» ifadesini tek bir satırda tanımlayamazsınız — üç satır eklersiniz. CSV biçimi bunu doğal olarak destekler.
- Yalnızca Supporter / Pro katmanı. Ücretsiz katman sözlük kartını gösterir ama girdiler çeviri çalışmalarını etkilemez. Keşif iletişim kutusu Patreon'a yönlendirir.
Toparlarken
Makine çevirisindeki tüm kalite kaldıraçları arasında sözlük, en yüksek çaba/etki oranına sahiptir — onu oluşturmak için harcanan on dakika, sonradan tutarsız adları elle düzeltmenin saatlerini size kazandırır. Kadroyla başlayın, bir ilk geçiş yayımlayın ve sonucu okuyup kaymayı fark ettikçe terim ekleyin.
Bunu tonu iyi idare eden bir sağlayıcıyla (görsel romanlarda benim varsayılanım Anthropic Claude) eşleştirin; çıktınız «okunabilir makine çevirisi» eşiğini çoktan aşıp «hafif elle düzenlemeyle hayran çevirisi olarak yayımlanabilir» bölgesine girmiş olur.
Gerçek bir projede sözlüğü denemek için RuneTranslate'i indirin. Bu bir Supporter ($3/mo) özelliğidir; ücretsiz katman motorlar + sağlayıcılar için tamamen açık kalır.
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