Oyunun tüm diyalogları ve hikaye içeriği çevrildi. Ancak menüdeki new game gibi kısımlar çeviri dosyasında olmadığı için çeviremedim. Çok basit bir ingilizceyle bile o kısımlarda sorun yaşamazsınız.
3.0.1 kurulumu: İndirdiğiniz zip içindeki sharedassets0.assets dosyasını Suzerain_Data içine atın, mevcut dosyanın üzerine yazmalısınız. 3.1.0 Build 134 kurulumu: İndirdiğiniz zip içindeki database_assets_all_73aa7c5ecc05b96ba2b5d829a9c4ebdb.bundle dosyasını Suzerain_Data/StreamingAssets/aa/StandaloneWindows64 içine atın, mevcut dosyanın üzerine yazmalısınız. 3.1.0 Build 137 kurulumu: İndirdiğiniz zip içindeki database_assets_all_cdee62dca20a6884cb4eb8342e8e4ff8.bundle dosyasını Suzerain_Data/StreamingAssets/aa/StandaloneWindows64 içine atın, mevcut dosyanın üzerine yazmalısınız.
Olası bir hataya karşı, eski dosyaların yedeğini tutmanızı öneririm.
Çeviri Detayları
Yaklaşık 2 milyon kelime var ve oyunun çok fazla terimi var. Parti isimleri, ülke isimleri, bir takım takma adlar, vs.
Kullanılan LLM'ler
- Çoğunlukla Gemini Flash 2.0 (%95+) - Hatalı/eksik kısımlar için Gemini Flash 2.5 Preview - Hala hata varsa, Gemini Flash 2.5 Preview Thinking
Neden Gemini Flash 2.0?
Ucuz, hızlı ve kalitesi iyi. Fiyat/kalite konusunda Gemini Flash 2.0 ile kapışacak bir model bulamadım. Daha önceden de çeviri amaçlı kullandığım için buna güvendim.
Neden DeepL değil de, LLM kullandım?
DeepL ne kadar kaliteli olursa olsun, content-aware değil, yani space yazdığımızda boşluk ya da uzay diyebilir. Çeviri diyalogları arasında bir tutarlılık yok. Örneğin United Sordland Party e bir yerde Birleşmiş Sordland Partisi, diğer yerde Birleşik Sordland Partisi diyebilir. Benim gözümde DeepL, Google Translate'in sadece çok gelişmiş bir versiyonu. Tüm resmi göremediği için Google Translate ile aynı hatalara düşüyor.
Peki ben neyi farklı yaptım? Örneğin diyalog çeviriyorken, yapay zeka, konuşan 2 kişinin kim olduğunu, onların açıklamasını biliyor. Diyalogdan önceki 3 metni biliyor. Hazırladığım oyun çeviri dosyasından bir örnek. { "id": "conversation_445_entry_134_field_en", "type": "DialogueLine", "conversationTitle": "Rizia/Turn 8/Notes/Notes Conversation", "conversationId": 445, "entryId": 134, "speakerId": 8796, "speakerName": "Wiktor Smolak", // başka bir yerde bunun codex bilgisi de var, onu da getiriyoruz "conversantId": 1, "conversantName": "Ciara Walda", // başka bir yerde bunun codex bilgisi de var, onu da getiriyoruz "lineType": "NPC", "nextEntryIds": [ 135 ], "originalLanguage": "en", "originalText": "“But come, let us take our leave so we can talk somewhere more comfortably.”", "originalFieldTitle": "en", "translation": "", "previousLines": [ "Narrator: \"The lights came up, and it was then that I noticed a baby, who couldn’t have been more than a year old, happily sitting next to Smolak.\"", "Player: \"\"Is someone there?\"\"", "Player: \"\"Smolak, is that you?\"\"" ] }
Çeviri Süreci
Oyun otomatize bir şekilde çevrilirken, arkaplanda bir oyun terimleri sözlüğü sistemi oluşarak çeviriyi tamamladım. Örneğin United Sordland Party (USP) nin her yerde Birleşik Sordland Partisi (BSP) olması için.
Oyunun tüm diyalogları tek seferde çevrildikten sonra, tutarlılık için bir post processing sistemi yazdım. Sonuçta LLM kullanmanın dezavantajı, orjinal formata mükemmel uyum sağlayamaması. Yapılan kontroller: - Orjinal metin kaç paragraf içeriyor, çeviri kaç satır içeriyor. - Kısaltma kontrolleri. Mesela orjinal metin sadece USP içeriyorsa, çeviri metni de BSP olmalı. Bu kontrolü iyi hale getirmek, oyunun çevirisinden bile uzun zaman aldı. - Orjinal metindeki <, {, ( gibi özel karakterlerin çeviride de korunması. - Çok fazla küçük kontrol var.
Post processing oyunu tek seferde çevirmeye oranla çok zaman aldı. Tüm metinleri 4 saatte çevirdim. Çeviri sonrası en az 20 saat kontrollere, hatalı metinlerin otomatize bir şekilde yeniden çevrilmesine vs harcadım. Orjinal metinde imla hataları vardı, onlar beni daha da yavaşlattı, üstüne elle düzelttiğim noktalar da oldu.
- Kısaltma ve ayraçlarda imla hataları olabilir. Mesela Büyük Millet Meclisinde yerine Büyük Millet Meclisi'nde yazabilir. Bunun sebebini anlatmam uzun sürer, özetle, çeviri sonrası otomatize kontrolleri yaparken fedakarlıkta bulundum.
DeepL'yi o kadar kötüledim, peki bu çeviri kalitesi gerçekten farkettirecek mi? Emin değilim. Oyunun tamamını test etmek çok zor, artık geri bildirime göre karar vereceğim. Benim için güzel bir yan proje oldu.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Hocam 3.0.1 ile 3.1.0 ı karıştırıyor olabilir misiniz? Neyse, oyunun 3.1.0(steam) versiyonunu kontrol ettim, oradaki dosya sistemi farklı. Onun için ayrı bir link hazırlayacağım. Bu yamanın çalışması için şimdilik yelkenlere açılıp bu şarkı eşliğinde oynayabilirsiniz.
https://www.gog.com/en/game/suzerain şu an GOG'da indirim var almayı düşünen varsa eğer. Yama GOG sürümünde çalıştı (giriş kısmının Türkçe olduğunu gördüm daha detaylı bakmadım henüz).
Ben mevcut steam sürümü(3.1.0 Build 134) için çeviri dosyasını yayınlamadan 1 saat önce 1GB boyutunda 3.1.0 Build 135 yaması gelmiş. Yeni sürümü yayınlasam bile, muhtemelen 1 hafta sonra tekrar bozulacak. Peki buna çözüm yok mu?
Çeviri dosyası basit bir dosya değil. Yani welcome_message: "Hoşgeldin" gibi basit, her versiyonda çalışan bir dosya değil. Oyunun diyalogları, seçimleri, diyalog gidişatı, vs tüm diyalog sistemi bilgisini(çevirilebilir kısımlar, çevrilemez kısımlar...) içeriyor. İstersem, eski hazırladığım dosyayı yeni versiyonda çalışmasını sağlayabilirim ancak oyunun gidişatı bozulur. Çünkü tekrardan belirteyim, çeviri dosyası dediğimiz dosya sadece çeviri değil, her şeyi içeriyor. Yani o dosyayı eski versiyon dosyası ile ezersek, bu sefer oyun bir noktada crash verebilir ya da bug olabilir. O yüzden eski versiyon dosyasını yeni sürümde çalıştırmanın bir mantığı yok.
Tavsiyem, oyunu Steam ya da GOG'dan satın alıp gönlünüzü rahatlattıktan sonra, yelkenlere yönelmeniz.
Yeni sürümü kontrol ettim, 100~ kadar yeni metin eklenmiş. Yama notunda belirttikleri gibi bu içerikten çok, daha çok teknik(bug fix ve unity upgrade) bir güncelleme. Gene de uğraşmak istemiyorum. 3.1.1'e geçsinler, ardından 3.1.0 final için dosya hazırlarım.
Merhaba. Ben şu %70 kadar ilerlenip sonra rafa kaldırılan çeviri projesinin başındaki elemanım mümkünse discord üzerinden yazabilir misin bana nickim: khajit31 ya da çeviri sunucusunun linki: https://discord.com/invite/Zs4jrCZRkY
< Bu mesaj bu kişi tarafından değiştirildi khajit31 -- 6 Haziran 2025; 21:30:19 >
- 3.0.1
- 3.1.0 Build 134
- 3.1.0 Build 137
Emeğe Geçen: requizm
Çeviri sürümü: 1.0
Oyunun tüm diyalogları ve hikaye içeriği çevrildi. Ancak menüdeki new game gibi kısımlar çeviri dosyasında olmadığı için çeviremedim. Çok basit bir ingilizceyle bile o kısımlarda sorun yaşamazsınız.
Görseller
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
Kurulum
3.0.1: https://drive.google.com/file/d/1o9tanffU7HpaHYAJajWBvIMxLUnMsxDn/view?usp=drive_link
3.1.0 Build 134: https://drive.google.com/file/d/1MO3vxE1QiiKd1-32zeLP04kjKWagkfNH/view?usp=drive_link
3.1.0 Build 137: https://drive.google.com/file/d/1rPqQSR5KAv5e23tEAHqlnByHTKdNAu_w/view?usp=sharing
3.0.1 kurulumu: İndirdiğiniz zip içindeki sharedassets0.assets dosyasını Suzerain_Data içine atın, mevcut dosyanın üzerine yazmalısınız.
3.1.0 Build 134 kurulumu: İndirdiğiniz zip içindeki database_assets_all_73aa7c5ecc05b96ba2b5d829a9c4ebdb.bundle dosyasını Suzerain_Data/StreamingAssets/aa/StandaloneWindows64 içine atın, mevcut dosyanın üzerine yazmalısınız.
3.1.0 Build 137 kurulumu: İndirdiğiniz zip içindeki database_assets_all_cdee62dca20a6884cb4eb8342e8e4ff8.bundle dosyasını Suzerain_Data/StreamingAssets/aa/StandaloneWindows64 içine atın, mevcut dosyanın üzerine yazmalısınız.
Olası bir hataya karşı, eski dosyaların yedeğini tutmanızı öneririm.
Çeviri Detayları
Yaklaşık 2 milyon kelime var ve oyunun çok fazla terimi var. Parti isimleri, ülke isimleri, bir takım takma adlar, vs.
Kullanılan LLM'ler
- Çoğunlukla Gemini Flash 2.0 (%95+)
- Hatalı/eksik kısımlar için Gemini Flash 2.5 Preview
- Hala hata varsa, Gemini Flash 2.5 Preview Thinking
Neden Gemini Flash 2.0?
Ucuz, hızlı ve kalitesi iyi. Fiyat/kalite konusunda Gemini Flash 2.0 ile kapışacak bir model bulamadım. Daha önceden de çeviri amaçlı kullandığım için buna güvendim.
Neden DeepL değil de, LLM kullandım?
DeepL ne kadar kaliteli olursa olsun, content-aware değil, yani space yazdığımızda boşluk ya da uzay diyebilir. Çeviri diyalogları arasında bir tutarlılık yok. Örneğin United Sordland Party e bir yerde Birleşmiş Sordland Partisi, diğer yerde Birleşik Sordland Partisi diyebilir. Benim gözümde DeepL, Google Translate'in sadece çok gelişmiş bir versiyonu. Tüm resmi göremediği için Google Translate ile aynı hatalara düşüyor.
Peki ben neyi farklı yaptım? Örneğin diyalog çeviriyorken, yapay zeka, konuşan 2 kişinin kim olduğunu, onların açıklamasını biliyor. Diyalogdan önceki 3 metni biliyor. Hazırladığım oyun çeviri dosyasından bir örnek.
{
"id": "conversation_445_entry_134_field_en",
"type": "DialogueLine",
"conversationTitle": "Rizia/Turn 8/Notes/Notes Conversation",
"conversationId": 445,
"entryId": 134,
"speakerId": 8796,
"speakerName": "Wiktor Smolak", // başka bir yerde bunun codex bilgisi de var, onu da getiriyoruz
"conversantId": 1,
"conversantName": "Ciara Walda", // başka bir yerde bunun codex bilgisi de var, onu da getiriyoruz
"lineType": "NPC",
"nextEntryIds": [
135
],
"originalLanguage": "en",
"originalText": "“But come, let us take our leave so we can talk somewhere more comfortably.”",
"originalFieldTitle": "en",
"translation": "",
"previousLines": [
"Narrator: \"The lights came up, and it was then that I noticed a baby, who couldn’t have been more than a year old, happily sitting next to Smolak.\"",
"Player: \"\"Is someone there?\"\"",
"Player: \"\"Smolak, is that you?\"\""
]
}
Çeviri Süreci
Oyun otomatize bir şekilde çevrilirken, arkaplanda bir oyun terimleri sözlüğü sistemi oluşarak çeviriyi tamamladım. Örneğin United Sordland Party (USP) nin her yerde Birleşik Sordland Partisi (BSP) olması için.
Oyunun tüm diyalogları tek seferde çevrildikten sonra, tutarlılık için bir post processing sistemi yazdım. Sonuçta LLM kullanmanın dezavantajı, orjinal formata mükemmel uyum sağlayamaması. Yapılan kontroller:
- Orjinal metin kaç paragraf içeriyor, çeviri kaç satır içeriyor.
- Kısaltma kontrolleri. Mesela orjinal metin sadece USP içeriyorsa, çeviri metni de BSP olmalı. Bu kontrolü iyi hale getirmek, oyunun çevirisinden bile uzun zaman aldı.
- Orjinal metindeki <, {, ( gibi özel karakterlerin çeviride de korunması.
- Çok fazla küçük kontrol var.
Post processing oyunu tek seferde çevirmeye oranla çok zaman aldı. Tüm metinleri 4 saatte çevirdim. Çeviri sonrası en az 20 saat kontrollere, hatalı metinlerin otomatize bir şekilde yeniden çevrilmesine vs harcadım. Orjinal metinde imla hataları vardı, onlar beni daha da yavaşlattı, üstüne elle düzelttiğim noktalar da oldu.
Bahsettiğim oyun sözlüğünden bir örnek:
{
"keywords": [
{
"value": "SEC",
"ignore_case": false
},
{
"value": "State Educators Corps"
}
],
"type": "abbreviations",
"game_term_translation": {
"original": {
"short_forms": [
"SEC"
],
"full_forms": [
"State Educators Corps"
]
},
"translated": {
"short_forms": [
"DEB"
],
"full_forms": [
"Devlet Eğitimcileri Birliği"
]
}
},
"description": null,
"ignore_case": true,
"match_whole_word": true
}
Ortalama $30 harcamış oldum.
Bilinen sorunlar
- Kısaltma ve ayraçlarda imla hataları olabilir. Mesela Büyük Millet Meclisinde yerine Büyük Millet Meclisi'nde yazabilir. Bunun sebebini anlatmam uzun sürer, özetle, çeviri sonrası otomatize kontrolleri yaparken fedakarlıkta bulundum.
DeepL'yi o kadar kötüledim, peki bu çeviri kalitesi gerçekten farkettirecek mi? Emin değilim. Oyunun tamamını test etmek çok zor, artık geri bildirime göre karar vereceğim. Benim için güzel bir yan proje oldu.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi requizm -- 14 Temmuz 2025; 19:58:23 >