Ozzy' Alıntı:
Merhaba Arkadaşlar bugün sizler için bir video hazırladım. 2 video şeklinde atıcam çünkü hem internet hızım hem de vaktimin az olmasından dolayı 1-2 gün içinde diğer video da gelecektir meraklanmayın.Grip olduğumdan dolayı sesim kötü çıkabilir kusura bakmayın.Localization olayını anlattım işinize yarar umarım.
Emeğine sağlık. Ancak benim değinmek ve sormak istediğim bazı şeyler var.
Localization bulunmasaydı ve karmaşık tekstler içeren oyun yapmıyor, basitçe menü gibi az miktardaki kelimeleri çeviriyor olsaydık, iş gören bir yöntem. Ancak ne var ki uygulaman "Localization" kullanmıyor. Tamamen kendi ürettiğin bir yöntem olmuş. Bunu sen de belirtmişsin zaten. Yine de söyleyelim. Bunun yerine hiçbir eklenti kullanmadan UE4 üzerindeki Localization sistemi kullanabilirsiniz. Sistem ise, tasarım sırasında çevrilebilir olarak işaretlediğiniz her teksti, çevirisi ile beraber bir yerelleştirme klasöründe saklar. Sistem dili(yada bölgesi) her değiştirildiğinde bütün çevrilebilir tekstleri hedef dile çevirir (bunun için JSON yada binary kaynağı oluşturmalısınız). Böylece çevrilebilir kelime her kullanılışında tek tek çevrilmez.
Diğer taraftan tasarım açısından önemli bir problem var. Çevirisi yapılacak her kelime "DataTable" içerisinde aranacak ve dil bir switch-case yapılacak. Bu, böyle bir tasarımla her çeviri anında yapılmak zorunda. Elbette part2 yi görmedik henüz ancak tasarımın öyle devam ettiği açık. UE4de yer alan Localization sistemi gibi çevriyi, bölge değiştirildiğinde bütün olarak yapmak çok daha mantıklıdır. Bir de bu sistemde açıkça dil sınırımız var. Yeni bir dil eklemek için oluşturulan yapılara yeni bir alan daha ekleyip, çeviri yapıp, cook edilmiş içeriği patch etmek / güncelleme ile vermek gerekecek.
Çok önemli olmasa da sırf merakımdan da birkaç sorum ve önerim var. Enum örneği oluştururken "enum..." demeni anlıyorum ama neden struct oluştururken "F", üstelik "fonksiyonun f'i"? Bir de fonksiyonlar isimlendirilirken, iş yaptıkları için buna uygun bir isim vermek, kafa karıştırmayı engeller. Örneğin fonksiyona Localizer(yerelleştirici?) demek yerine Localize(yerelleştir) yada Translate(çevir) demek daha uygun, "Localizer" ismini BPnin kendisine vermek daha uygun. Tabiki bu takım çalışması yapılmıyorsa bir önemi yok ama başkaları da işin içindeyken standartları takip etmek yararlıdır.