Uzun süredir üzerinde çalıştığım Caravan SandWitch Türkçe Yama artık hazır. 🇹🇷🏜️
Bu projede yalnızca oyunun birkaç localization dosyasını bulup metinleri Türkçeye çevirmekle yetinmedim.
Caravan SandWitch’in Unreal Engine tabanlı dosya yapısını detaylı şekilde inceleyerek oyunun içerisinde Türkçeleştirilmesi gereken içeriğin nerelerde bulunduğunu mümkün olduğunca baştan sona haritaladım.
Çalışma boyunca 24.000’den fazla oyun içi dosya tarandı ve yaklaşık 6.000 metin elle Türkçeleştirildi.
Otomatik çeviri servisleri kullanılmadı.
Çeviri: ORGA
Bu konuyu Türkçe yamanın ana duyuru ve bilgilendirme konusu olarak kullanacağım.
🇹🇷 Neden Caravan SandWitch?
Caravan SandWitch hikâyesini ve atmosferini büyük ölçüde:
Karakter diyalogları
Görevler
Çevre anlatımı
Oyun içi etkileşimler
Arayüz metinleri
Keşif sırasında karşılaşılan bilgiler
üzerinden aktaran bir oyun.
Dolayısıyla oyunda yalnızca görev işaretlerini takip etmek yerine karakterlerin ne söylediğini ve dünyanın size ne anlattığını anlamak deneyimin önemli bir parçası.
Bu yüzden oyunu Türkçe oynamak isteyenler için kapsamlı bir yerelleştirme hazırlamak istedim.
🔍 Çeviriye Başlamadan Önce Oyunun Yapısını İnceledim
Bir oyuna Türkçe yama hazırlarken ilk yapılması gereken şey aslında çeviri değil.
Önce:
Metinler nerede?
sorusunun cevabını bulmak gerekiyor.
Caravan SandWitch Unreal Engine kullanıyor ve metinlerin tamamı tek bir dosyada bulunmuyor.
Bu nedenle oyunun paket yapısını detaylı şekilde inceleyerek 24.000’den fazla oyun dosyasını taradım.
Bu taramada özellikle:
Localization kaynakları
Diyalog dosyaları
Görev metinleri
Arayüz öğeleri
StringTable yapıları
Oyun içi etkileşim metinleri
Metin içerebilecek ilgili assetler
ayrı ayrı incelendi.
Amaç yalnızca kolay bulunan ana localization paketini çevirmek değil, oyun içerisinde oyuncunun karşılaşabileceği metinlerin mümkün olduğunca tamamını tespit etmekti.
🧩 Metinler Tek Bir Yerde Değildi
Caravan SandWitch tarafında çeviri kaynaklarını incelerken metinlerin farklı sistemler arasında dağıldığını gördüm.
Bir bölüm klasik localization yapısında bulunurken başka bir bölüm:
StringTable
Asset
Diyalog kaynağı
Görev sistemi
UI öğesi
içerisinden gelebiliyordu.
Bu yüzden:
Localization dosyasını çevirdim, yama tamamdır.
demek yeterli değildi.
Her kaynak türünün ayrı ayrı tespit edilmesi ve oyun içerisinde nerede kullanıldığının anlaşılması gerekiyordu.
✍️ Yaklaşık 6.000 Metin Elle Türkçeleştirildi
Yama kapsamında toplamda yaklaşık 6.000 metni elle Türkçeleştirdim.
Burada özellikle altını çizmek istediğim nokta şu:
Google Translate, DeepL veya benzeri otomatik çeviri servisleriyle toplu çeviri yapılmadı.
Her metni çeviri içerisinde değerlendirmeye çalıştım.
Çünkü Caravan SandWitch gibi atmosferi ve karakter ilişkileri önemli olan bir oyunda:
İngilizce metni makineye ver → Türkçeyi dosyaya yapıştır
yaklaşımının ortaya çıkaracağı sonucu yeterli bulmuyorum.
🇫🇷 Oyunun Ana Kaynak Dili Fransızca
Bu projedeki önemli ayrıntılardan biri de oyunun ana kaynak dilinin Fransızca olması.
Bu nedenle çeviri sırasında yalnızca resmi İngilizce metinlere bağlı kalmadım.
Mümkün olan yerlerde:
Fransızca ana kaynak
Resmi İngilizce çeviri
Oyunun içindeki gerçek bağlam
birlikte değerlendirildi.
Bu benim için özellikle önemliydi.
Çünkü İngilizce metin zaten Fransızca kaynağın bir çevirisi.
Türkçe yamayı yalnızca İngilizceden hazırlarsak bazı bölümlerde:
Fransızca → İngilizce → Türkçe
şeklinde iki aşamalı anlam kaybı oluşması mümkün.
🧠 İngilizce ve Fransızca Birbirinden Farklıysa Ne Yaptım?
Bazı metinlerde kaynak Fransızca ile resmi İngilizce çeviri arasında ifade farkları bulunabilir.
Böyle bir durumda doğrudan:
İngilizce ne yazıyorsa onu çevireyim.
demek yerine metnin oyun içerisindeki kullanımına baktım.
Önceliğim Türkçe oyuncunun:
Doğru anlamı
Doğru karakter tonunu
Doğru görev bilgisini
Doğru oyun mekaniğini
almasıydı.
Bu yüzden gerektiğinde Fransızca kaynak daha belirleyici olurken bazı yerlerde resmi İngilizce yerelleştirmenin tercih ettiği oyun terimini korumak daha mantıklı olabiliyordu.
🎭 Karakterlerin Konuşma Tarzlarını Korumaya Çalıştım
Oyundaki karakterlerin hepsi aynı şekilde konuşmuyor.
Bu nedenle bütün diyalogları aynı düz Türkçeyle çevirmek istemedim.
Karakterin:
Konuşma tarzı
Samimiyeti
Cümle yapısı
Bulunduğu durum
Diğer karakterlerle ilişkisi
mümkün olduğunca dikkate alındı.
Hedefim:
Türkçe olduğu belli olan bir çeviri
değil,
karakter Türkçe konuşsaydı buna yakın konuşurdu
hissi verebilmekti.
📜 Görev Metinleri
Görev çevirilerinde güzel cümle kurmanın yanında anlam doğruluğu çok daha önemli.
Bir görev:
Şu karakterle konuş.
diyorsa bunu yanlış karaktere,
Şu bölgeye git.
diyorsa yanlış konuma yönlendiremeyiz. 😄
Bu nedenle görev açıklamalarında özellikle:
Karakter adları
Konumlar
Hedefler
Eylemler
Görev sıralaması
gibi bölümlere dikkat ettim.
🖥️ Arayüz Metinleri
UI çevirilerinin de kendi problemi var.
İngilizce veya Fransızcada kısa olan bir ifade Türkçeye çevrildiğinde çok daha uzun hale gelebiliyor.
Bu nedenle menülerde yalnızca anlamı değil:
Metin uzunluğunu
Buton yapısını
Ekrandaki kullanımını
Aynı terimin diğer menülerdeki karşılığını
da dikkate almaya çalıştım.
Amaç metni doğru çevirirken arayüzü de gereksiz şekilde bozacak ifadeler oluşturmamak.
🧩 StringTable Yapıları da İncelendi
Unreal Engine oyunlarında metinlerin bir kısmı StringTable sistemleri üzerinden yönetilebiliyor.
Caravan SandWitch tarafında da bu yapıları ayrıca analiz ettim.
Metnin yalnızca kendisini değil, gerektiğinde hangi anahtar üzerinden çağrıldığını da kayıt altında tutmak önemli.
Çünkü ileride oyun güncellendiğinde:
Bu cümle eskiden neredeydi?
sorusunun cevabını tekrar 24.000 dosyanın içerisinde aramak istemiyorum. 😄
🗺️ Terminoloji Sistemi Oluşturdum
6.000 metinlik bir çeviride en büyük problemlerden biri tutarlılık.
Örneğin bir terimi oyunun başında:
X
olarak çevirdiyseniz 4 saat sonra başka bir görevde:
Y
olarak çevirmemelisiniz.
Özellikle:
Özel isimler
Konum isimleri
Karakter isimleri
Oyun içi sistemler
Tekrar eden ifadeler
Etkileşim terimleri
için ayrı bir terminoloji düzeni oluşturdum.
Böylece aynı kavramın oyunun farklı bölümlerinde gereksiz yere farklı isimlerle görünmesini azaltmaya çalıştım.
🔁 Tekrar Eden Metinler
Oyunlarda aynı cümle veya ifade birçok farklı yerde kullanılabiliyor.
Örneğin aynı etkileşim metni farklı objelerde bulunabilir.
Bu tür tekrarları değerlendirirken aynı metnin gerçekten aynı bağlamda kullanılıp kullanılmadığını da kontrol etmek gerekiyor.
Çünkü İngilizcede aynı görünen bir kelimenin iki farklı ekranda Türkçe karşılığı farklı olabilir.
Bu nedenle tekrar eden içeriklerde de mümkün olduğunca bağlam kontrolü yaptım.
🧱 Placeholder Yapılarını Korudum
Oyun metinlerinde her gördüğünüz şey çevrilecek normal yazı değildir.
Örneğin metin içerisinde:
Değişkenler
Placeholder'lar
Sayısal değerler
Oyuncu veya karakter isimleri
Sistem tarafından sonradan doldurulan alanlar
bulunabilir.
Bunlardan birini yanlışlıkla çevirir veya yapısını bozarsanız oyun:
Türkçe metni yanlış gösterebilir
hatta bazı durumlarda ilgili metni hiç oluşturamayabilir.
Bu nedenle placeholder yapıları teknik kontrolden geçirildi ve korunması gereken bölümler değiştirilmedi.
🧾 Biçimlendirme İşaretleri
Metinlerin içerisinde yalnızca düz karakterler bulunmuyor.
Bazı bölümlerde oyun tarafından yorumlanan biçimlendirme yapıları olabiliyor.
Bunların:
Silinmemesi
Yanlış yere taşınmaması
Yapısının bozulmaması
gerekiyor.
Çeviri sonrasında metinlerin teknik yapısını ayrıca kontrol etmemin nedenlerinden biri de bu.
↩️ Satır Sonları
Diyalog ve arayüz metinlerinde satır sonlarının yapısı da önemli.
Yanlış bir line break:
Cümlenin ortasında kopmasına
UI'nın bozulmasına
Metnin gereksiz uzamasına
Görsel düzenin değişmesine
neden olabilir.
Bu yüzden çeviri sonrasında satır sonları da kontrol edildi.
🔤 Türkçe Karakter Kontrolü
Yamada doğal olarak:
ç, ğ, ı, İ, ö, ş, ü
karakterlerini yoğun şekilde kullanıyoruz.
Bu yüzden yalnızca:
Dosyada Türkçe karakter yazıyor.
demek yeterli değil.
Oyunun:
Font
Encoding
UI
Runtime metin sistemi
tarafında da bunları doğru göstermesi gerekiyor.
Türkçe karakter desteğini teknik kontrollerin bir parçası olarak değerlendirdim.
🧪 Çeviri Sonrası Teknik QA
Çeviri tamamlandıktan sonra sadece:
6.000 satırın hepsi Türkçe, tamamdır.
deyip paketlemedim.
Metinlerde teknik olarak:
Placeholder yapıları
Biçimlendirme
Satır sonları
Metin biçimi
Türkçe karakterler
Dosya yapısı
gibi alanlar da kontrol edildi.
Çünkü güzel çevrilmiş bir cümle oyunun okuyamayacağı formatta bulunuyorsa kullanıcı açısından hiçbir anlamı yok.
🔄 Yamanın Gelecekteki Güncellemelerini Baştan Düşündüm
Caravan SandWitch Türkçe Yama’yı hazırlarken yalnızca bugünkü oyun sürümünü düşünmedim.
Bir oyun yaması hazırlarken benim için artık önemli konulardan biri de:
6 ay sonra oyun güncellendiğinde ne yapacağız?
sorusu.
Bu yüzden proje içerisinde güncelleme sürecinde kullanılabilecek ayrı bir teknik harita oluşturdum.
🔑 Localization Anahtarları Kayıt Altında
Çevrilen içeriklerin ilgili localization anahtarlarını mümkün olduğunca kayıt altında tutuyorum.
Böylece yeni oyun sürümünde:
Anahtar hâlâ var mı?
Silinmiş mi?
Yeni anahtar eklenmiş mi?
Mevcut metin değişmiş mi?
gibi kontroller yapılabilir.
Bu, yamayı güncelleme süresini ciddi şekilde azaltabilecek bir yapı.
🔗 Asset Bağlantıları da Takip Ediliyor
Sadece localization key tutmak bazı durumlarda yeterli değil.
Metnin hangi asset veya oyun sistemiyle bağlantılı olduğu da önemli olabilir.
Bu nedenle gerekli yerlerde asset ilişkileri de kayıt altına alındı.
Amaç yeni sürüm geldiğinde projeyi tekrar sıfırdan reverse engineering yapmak zorunda kalmamak.
🔐 Sürüm ve Hash Bilgileri
Yamada kullanılan önemli oyun kaynaklarının sürüm ve hash bilgilerini de kayıt altında tutuyorum.
Bu sayede yeni oyun sürümü geldiğinde:
Eski dosya ile yeni dosya gerçekten aynı mı?
sorusuna yalnızca dosya adına bakarak cevap vermek zorunda değilim.
Dosyanın içeriği değiştiyse bunu daha sistematik şekilde tespit edebiliriz.
🔄 Oyun Güncellenirse Ne Olacak?
İdeal süreç şu şekilde olacak:
Eski oyun sürümü
↓
Yeni oyun sürümü
↓
Dosya ve kaynak karşılaştırması
↓
Değişmeyen metinleri koru
↓
Değişen metinleri tespit et
↓
Yeni metinleri çıkar
↓
Yalnızca gerekli çevirileri yap
↓
Yeni yama sürümünü hazırla
Yani oyun güncellendiğinde tekrar:
24.000+ dosyayı sıfırdan incele
ve
6.000 metni yeniden çevir
noktasına dönmek istemiyorum.
Bütün bu kayıt sistemini bunun için oluşturdum.
🆕 Yeni İçerikler İngilizce Kalırsa
Gelecekte oyun yeni görev, diyalog veya arayüz metni eklerse mevcut Türkçe yama eski içerikleri Türkçe göstermeye devam ederken yeni bölümlerin İngilizce kalması mümkün.
Böyle bir durumda ekran görüntüsüyle bildirim yapabilirsiniz.
Yeni içeriği ilgili kaynak üzerinden tespit edip sonraki yama sürümüne ekleyebilirim.
🐛 Hata Görürseniz Bildirin
Yaklaşık 6.000 metin elle çevrildiği için ne kadar kontrol yapılırsa yapılsın:
Yazım hatası
Yanlış bağlam
İngilizce kalan satır
Terim tutarsızlığı
UI taşması
Teknik görüntüleme problemi
gözden kaçabilir.
Böyle bir şey bulursanız forum üzerinden bildirmeniz gerçekten yardımcı olur.
Mümkünse ekran görüntüsü paylaşın.
Ekran görüntüsünün yanında:
Görev adı
Karakter
Menü
Bölge
Oyun sürümü
gibi bilgiler verirseniz ilgili metni çok daha hızlı bulabilirim.
💬 Çeviri Önerilerine Açığım
Bazı terimler için tek bir doğru Türkçe karşılık olmayabilir.
Daha doğal veya oyunun atmosferine daha uygun olduğunu düşündüğünüz bir çeviri varsa paylaşabilirsiniz.
Önerileri değerlendirirken yalnızca tek satıra değil, aynı terimin oyun genelindeki kullanımına da bakacağım.
Çünkü bir yerde yapılan değişikliğin onlarca başka metni etkileyebileceği durumlar olabiliyor.
🎯 Bu Yamadaki Temel Hedefim
Caravan SandWitch Türkçe Yama’yı hazırlarken üç şeye özellikle önem verdim:
1. Çeviri kalitesi
Yaklaşık 6.000 metni otomatik çeviri servislerine vermek yerine elle hazırlamak.
2. Teknik bütünlük
Placeholder, StringTable, asset, format ve Unreal Engine kaynak yapılarını bozmadan oyuna uygulamak.
3. Güncellenebilirlik
Oyun güncellendiğinde her şeyi sıfırdan yapmak yerine değişen kaynakları tespit edebilecek bir proje yapısı bırakmak.
Benim için artık iyi bir Türkçe yama sadece:
Bugün çalışan yama
değil,
yarın güncellemek gerektiğinde nasıl güncelleneceği de belli olan yama.
❤️ Son Olarak
Caravan SandWitch Türkçe Yama’nın hazırlanması, görünen 6.000 satırlık çeviriden çok daha büyük bir çalışma oldu.
Öncesinde:
24.000+ oyun dosyasının taranması
ardından:
localization, diyalog, görev, UI, StringTable ve asset kaynaklarının ayrıştırılması
sonrasında:
Fransızca + resmi İngilizce + oyun bağlamının birlikte değerlendirilmesi
ve en sonunda:
yaklaşık 6.000 metnin elle Türkçeleştirilmesi
gerekti.
Bunun yanında yamanın teknik yapısını ve gelecekteki güncellemelerini de mümkün olduğunca kayıt altına aldım.
Umarım Caravan SandWitch’i Türkçe oynamak isteyenler için düzgün ve uzun süre sürdürülebilir bir çeviri ortaya çıkmıştır.
Kullandıktan sonra karşılaştığınız hata veya önerileri forum üzerinden paylaşabilirsiniz.
Herkese iyi oyunlar. 🏜️🚐🇹🇷
🇹🇷 Kısaca
Oyun: Caravan SandWitch
İçerik: Türkçe Yama
Çeviri: ORGA
Motor: Unreal Engine
Taranan oyun dosyası: 24.000+
Elle Türkçeleştirilen metin: Yaklaşık 6.000
Otomatik çeviri servisi: Kullanılmadı
Kaynak diller: Ana Fransızca kaynak + resmi İngilizce yerelleştirme
İncelenen sistemler: Localization, diyaloglar, görevler, UI, StringTable, asset ve oyun içi etkileşim metinleri
Güncelleme altyapısı: Localization anahtarları, asset bağlantıları ve sürüm/hash bilgileri kayıt altında
Yamayı oyun güncellemelerine karşı mümkün olduğunca sürdürülebilir bir yapıda tutmaya devam edeceğim. 🇹🇷
Gringos