Spore Türkçe Yama 2.0 Nasıl Hazırlandı? — 24.303 Metin, DBPF/Locale, PatchData ve QA Süreci

Geliştirme günlüğü #spore#yerellestirme#dbpf#galactic-adventures#ceviri-gelistirme 0 cevap 11 okunma

Spore Türkçe Yama 2.0.0'ın arkasında yalnızca metinleri İngilizceden Türkçeye çevirmekten çok daha büyük bir çalışma vardı.

Bu konuda sürecin teknik tarafını merak edenler için nasıl ilerlediğimizi paylaşmak istiyorum.

İlk olarak oyunun veri yapısını çıkardık

Çalışmaya mevcut Spore Collection kurulumunu envanterleyerek başladık.

Kurulumda toplam 82 .package dosyası ve bu paketlerin içerisinde 158.720 DBPF kaydı tespit edildi.

Spore'un ana yerelleştirme sistemi Text.package dosyalarını kullanıyor.

Ancak Galactic Adventures tarafında durum biraz daha farklı.

GA metinleri doğrudan normal locale klasörlerinde bulunmak yerine Spore_EP1_Locale_01.package ve Spore_EP1_Locale_02.package içerisinde bulunan iç içe DBPF paketlerinde saklanıyor.

Bu nedenle yalnızca ana oyunun Text.package dosyasını çevirmek yeterli değildi.

Temiz çeviri kataloğu oluşturuldu

Ana oyun ve Galactic Adventures kaynakları çıkarıldıktan sonra yalnız gerçek çeviri hedeflerini içeren temiz bir katalog hazırlandı.

Nihai hedef:

Ana oyun: 18.443

Galactic Adventures: 5.860

Toplam: 24.303

metin oldu.

Ana kaynakta bulunmayan ancak İngilizce en-GB paketinde bulunan 301 kayıt da fallback kaynak olarak kataloğa dahil edildi.

Böylece yalnız en-US paketine bağlı kalınmadı.

Diyalog bağlamları ayrıca incelendi

Bir oyun çevirisinde en büyük problemlerden biri tek başına görülen cümlelerin bağlamıdır.

Bu nedenle Spore'un CNV konuşma kaynakları da ayrıştırıldı.

114 CNV kaynağından toplam 14.694 konuşma/metin referansı çıkarıldı.

Ayrıca property kaynakları üzerinde yapılan taramada 50.714 kaynak ayrıştırıldı.

Bu veriler sayesinde bazı metinlerin:

  • diyalogda,
  • görevde,
  • arayüzde,
  • araç açıklamasında,
  • yetenekte,
  • oyun nesnesinde

nerede kullanıldığı konusunda daha fazla bağlam elde edildi.

Özel tokenlar korundu

Spore metinleri yalnız düz yazıdan oluşmuyor.

Bazı satırlarda oyunun kullandığı:

~p~

~br~

değişkenler, format belirteçleri ve benzeri özel tokenlar bulunuyor.

Nihai 24.303 satırın tamamında bu yapıların çeviri sırasında kaybolup kaybolmadığı otomatik olarak kontrol edildi.

Son QA sonucunda:

  • boş Türkçe hedef: 0
  • çift record ID: 0
  • atlanan kayıt: 0
  • protected token hatası: 0

olarak doğrulandı.

İlk paket yetmedi

İlk oluşturulan Türkçe paket teknik QA'dan geçmesine rağmen gerçek oyun testinde bazı ekranlarda İngilizce metinler kaldığını gördük.

Özellikle Ayarlar ve bazı Sporepedia/Rehber alanlarında sorun vardı.

İlk olarak en-GB katmanı tespit edildi ve Türkçeleştirildi.

Ancak Ayarlar ekranındaki bazı içerikler hâlâ İngilizceydi.

Daha derin taramada PatchData.package içerisinde ayrı ve daha yüksek öncelikli locale paketleri bulundu.

Bu katmanlar ana Text.package dosyalarının önüne geçebiliyordu.

PatchData içerisindeki aktif en-US/en-GB dil paketleri de Türkçeleştirildikten sonra oyun yeniden temiz şekilde başlatıldı.

İkinci oyun içi QA'da:

  • Grafik Ayarları,
  • Ses Ayarları,
  • Oyun/Yakalama Ayarları,
  • Sporepedia,
  • Spore Rehberi,
  • ORGA çeviri etiketi

Türkçe olarak doğrulandı.

Paketler tekrar okunarak doğrulandı

Yama dosyalarının yalnız oluşturulması yeterli görülmedi.

Oluşturulan DBPF paketleri tekrar ayrıştırıldı ve Türkçe katalogla karşılaştırıldı.

18.443 ana oyun ve 5.860 Galactic Adventures kaydının tamamının doğru paketlere yazıldığı tekrar doğrulandı.

Yani QA yalnız TSV üzerinde değil, oluşturulmuş gerçek oyun paketleri üzerinde de yapıldı.

Bu çalışma sırasında hazırlanan araçların ve araştırmanın önemli bir bölümü Spore'un eski ama oldukça ilginç yerelleştirme mimarisini çözmeye yönelikti.

İleride 2.0.0 üzerinde bir düzeltme veya yeni bir sürüm gerekirse artık elimizde aynı işlemleri yeniden gerçekleştirebileceğimiz tekrarlanabilir bir çıkarma, paketleme ve QA hattı bulunuyor.

Teknik tarafla ilgilenen veya Spore modlama/yerelleştirme konusunda sorusu olanlar bu konu altında yazabilir. 🛠️

Cevap yazmak için giriş yapmalısın. Okumak için giriş gerekmez.

Giriş yap