Add turkish language support

This commit is contained in:
fed 2024-01-06 16:37:56 +01:00
parent 608b690104
commit b01f02dfc7
10 changed files with 5234 additions and 5 deletions

View File

@ -33,3 +33,4 @@ sna_h2_mod_common
sna_h2_mod_patch_af_caves sna_h2_mod_patch_af_caves
spa_h2_mod_common spa_h2_mod_common
tch_h2_mod_common tch_h2_mod_common
tur_h2_mod_common

View File

@ -0,0 +1,2 @@
localize,turkish
stringtable,video/subtitles.csv
1 localize turkish
2 stringtable video/subtitles.csv

View File

@ -9,3 +9,4 @@ russian,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold
russian_partial,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold russian_partial,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold
simplified_chinese,h2_mod_font_default,h2_mod_font_default_bold simplified_chinese,h2_mod_font_default,h2_mod_font_default_bold
traditional_chinese,h2_mod_font_default,h2_mod_font_default_bold traditional_chinese,h2_mod_font_default,h2_mod_font_default_bold
turkish,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold

1 *,h2_mod_font_mix
9 russian_partial,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold
10 simplified_chinese,h2_mod_font_default,h2_mod_font_default_bold
11 traditional_chinese,h2_mod_font_default,h2_mod_font_default_bold
12 turkish,h2_mod_font_bank,h2_mod_font_default,h2_mod_font_default_bold

View File

@ -17,6 +17,8 @@
"LOCALE_15": "Korean", "LOCALE_15": "Korean",
"LOCALE_16": "English (Safe)", "LOCALE_16": "English (Safe)",
"LOCALE_17": "Russian (Partial)", "LOCALE_17": "Russian (Partial)",
"LOCALE_18": "Turkish",
"LUA_MENU_FALLBACK_DISABLE": "Apply built-in fonts", "LUA_MENU_FALLBACK_DISABLE": "Apply built-in fonts",
"LUA_MENU_FALLBACK_ENABLE": "Apply h2-mod fonts", "LUA_MENU_FALLBACK_ENABLE": "Apply h2-mod fonts",
@ -90,6 +92,7 @@
"MENU_KOREAN": "한국어", "MENU_KOREAN": "한국어",
"MENU_ENGLISH_SAFE": "English (Safe)", "MENU_ENGLISH_SAFE": "English (Safe)",
"MENU_RUSSIAN_PARTIAL": "Русский (Англ. озвучка)", "MENU_RUSSIAN_PARTIAL": "Русский (Англ. озвучка)",
"MENU_TURKISH": "Türkçe",
"MENU_CREDITS_1": "momo5502", "MENU_CREDITS_1": "momo5502",
"MENU_CREDITS_2": "Vlad", "MENU_CREDITS_2": "Vlad",

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,187 @@
af_caves_load,14,17.5,"^2MacTavish: ^7Bizim bir tane iyi UMP'miz var. Onların bin tane var.",
af_caves_load,18,21,"^2MacTavish: ^7Makarov'un istihbaratının iyi olup olmadığını bile bilmiyoruz.",
af_caves_load,21.3,22.3,"^2MacTavish: ^7Price.",
af_caves_load,23.3,24.3,"^2MacTavish: ^7...Price?",
af_caves_load,25,30.2,"^2Price: ^7Sağlıklı bir insan zihni sabah uyandığında bunun dünyadaki son günü olduğunu düşünmez.",
af_caves_load,30.5,33.5,"^2Price: ^7Ama bence bu bir lüks. Bir lanet değil.",
af_caves_load,33.5,36.7,"^2Price: ^7Sona yaklaştığınızı bilmek bir tür özgürlüktür.",
af_caves_load,37.5,40,"^2Price: ^7Envanter çıkarmak için iyi bir zaman.",
af_caves_load,41,46,"^2Price: ^7Silahsız. Sayıca üstün. Aklımızı kaçırdık. İntihar görevinde.",
af_caves_load,46,50,"^2Price: ^7Ama buradaki kum ve kayalar, binlerce yıllık savaşla lekelenmiş...",
af_caves_load,51.2,54,"^2Price: ^7Bizi hatırlayacaklar. Bunun için.",
af_caves_load,54.5,60,"^2Price: ^7Çünkü tüm kâbuslarımız arasında kendimiz için seçtiğimiz kâbus bu.",
af_caves_load,60,63.4,"^2Price: ^7Dünya'dan verilen bir nefes gibi ilerliyoruz.",
af_caves_load,64,66.7,"^2Price: ^7Kalplerimizde dinçlik ve görünürde tek bir hedefle:",
af_caves_load,67.8,69.5,"^2Price: ^7Biz. Will.",
af_caves_load,70,72,"^2Price: ^7Öldürün onu.",
af_chase_load,16.3,18,"^2Price: ^7Bu kayıt için.",
af_chase_load,18.3,21,"^2Price: ^7Tarih galipler tarafından yazılır.",
af_chase_load,22,24,"^2Price: ^7Tarih yalancılarla doludur.",
af_chase_load,25,30,"^2Price: ^7Eğer o yaşar ve biz ölürsek, onun gerçeği yazılı hâle gelir -",
af_chase_load,30,32,"^2Price: ^7- ve bizimki kayboldu.",
af_chase_load,32,39,"^2Price: ^7Shepherd bir kahraman olacak. Çünkü dünyayı değiştirmek için ihtiyacınız olan tek şey iyi bir yalan ve bir nehir dolusu kan.",
af_chase_load,40,45,"^2Price: ^7Bir yalancının tarih üzerinde oynadığı en büyük oyunu tamamlamak üzere.",
af_chase_load,45.7,48,"^2Price: ^7Onun gerçeği gerçek olacak.",
af_chase_load,48,52.2,"^2Price: ^7Ama sadece o yaşarsa ve biz ölürsek.",
airport_load,7.5,11,"^2Shepherd: ^7Görev Gücü 141'in geri kalanı ACS'yi getirdi, Allen.",
airport_load,12,16,"^2Shepherd: ^7İki adam koca bir üssü yerle bir etti. Şimdi senden çok daha fazlasını istiyorum.",
airport_load,18,23,"^2Shepherd: ^7Dün ön saflarda bir askerdin. Ama bugün ön saflar tarih oldu.",
airport_load,23,29,"^2Shepherd: ^7Üniformalar birer kalıntı. Savaş her yerde devam ediyor. Ve kayıplar olacak.",
airport_load,36,41,"^2Shepherd: ^7Bu Makarov denen adam kendi savaşını veriyor ve kuralları yok. Sınırları yok.",
airport_load,41,44.3,"^2Shepherd: ^7İşkenceden, insan kaçakçılığından ya da soykırımdan çekinmiyor.",
airport_load,45,52,"^2Shepherd: ^7Bir bayrağa, bir ülkeye ya da herhangi bir ideale sadık değil. Para için kan ticareti yapıyor.",
airport_load,53,55,"^2Shepherd: ^7O senin yeni en iyi arkadaşın.",
airport_load,56,59.3,"^2Shepherd: ^7Seni onun yanına koymanın şimdiden neye mal olduğunu bilmek istemezsin.",
airport_load,60,62.6,"^2Shepherd: ^7Bu sana kendinden bir parçaya mal olacak.",
airport_load,64,67,"^2Shepherd: ^7Kurtaracağın her şeyle karşılaştırıldığında hiçbir maliyeti olmayacak.",
arcadia_load,25,27.2,"^2Shepherd: ^7Biri şu lanet televizyonu kapatsın.",
arcadia_load,29,33,"^2Shepherd: ^7Görev gücüm ülke dışında. Senin birliğine el koyuyorum, Çavuş Foley.",
arcadia_load,34,36,"^2Çvş. Foley: ^7Emredersiniz efendim. Hepsi sizin efendim.",
arcadia_load,37,40,"^2Shepherd: ^7Sekizinci Zırhlı'dan bir Stryker talep ettim.",
arcadia_load,46,48,"^2Çvş. Foley: ^7Bal Porsuğu kötü bir kaltak, efendim.",
arcadia_load,48,52,"^2Shepherd: ^7Sizi içeri götürecek. Ruslar savunmamızı ve istihbaratımızı yakıp yıkıyorlar.",
arcadia_load,52,54,"^2Shepherd: ^7Bu köşeyi almalarına izin veremeyiz.",
arcadia_load,54.6,58.3,"^2Çvş. Foley: ^7Sadece haritada gösterin, efendim. Orayı alamayacaklar.",
boneyard_load,16.7,20,"^2MacTavish: ^7Roach? Ghost? Cevap ver, Ghost! Duyuyor musun? Beni duyan var mı?",
boneyard_load,20,25,"^2Price: ^7Onlar öldü, Soap. Shepherd evi temizliyor. Sana geri dönmeye çalışıyorum.",
boneyard_load,26,28,"^2MacTavish: ^7Shepherd bize ihanet etti.",
boneyard_load,28,31,"^2Price: ^7İhanete uğramak için birine güvenmek gerekir. Ben hiç güvenmedim.",
boneyard_load,31.3,34,"^2Price: ^7Nikolai, içeri gel. Yerimizi biliyor musun?",
boneyard_load,34,38,"^2Nikolai: ^7Da. Geliyor, Price. Ama ben tek değilim.",
boneyard_load,38,41,"^2Nikolai: ^7Bir tarafta Shepherd'ın adamları, diğer tarafta Makarov'un adamları var.",
boneyard_load,43,45,"^2Price: ^7O zaman hepsini halletmemiz gerekecek.",
boneyard_load,45,47,"^2Nikolai: ^7Ya da bırakın birbirlerini haklasınlar.",
boneyard_load,47,50,"^2Nikolai: ^7Her iki şekilde de, diğer tarafta görüşürüz dostum.",
cliffhanger_load,23.3,25,"^2PFC Allen: ^7Nasıl görünüyorum?",
cliffhanger_load,25,27,"^2Shepherd: ^7Kötü adamlardan biri gibi.",
cliffhanger_load,27,29,"^2Shepherd: ^7Gizli görevin için mükemmel.",
cliffhanger_load,29,31,"^2PFC Allen: ^7Yani ödül Makarov.",
cliffhanger_load,31,36,"^2Shepherd: ^7Makarov ödül falan değil. O bir fahişe. En yüksek teklifi veren için bir deli köpek katili.",
cliffhanger_load,37,40,"^2Shepherd: ^7Sadece yeni kimliğini hatırla. Bu seni hayatta tutacaktır.",
cliffhanger_load,41,45.5,"^2Shepherd: ^7141'e hoş geldiniz. Gezegendeki en iyi seçilmiş savaşçı grubu.",
cliffhanger_load,46,49,"^2Er Allen: ^7Benim için bir onurdur, efendim. Takımın geri kalanıyla ne zaman tanışacağım?",
cliffhanger_load,49.3,53.5,"^2Shepherd: ^7Düşman hattının gerisinde düşen bir ACS modülünü kurtarma görevindeler.",
cliffhanger_load,54,56,"^2Er Allen: ^7Ayakları ıslak mı?",
cliffhanger_load,56,59,"^2Shepherd: ^7Şu anda donmak üzere olduklarını hayal edin.",
contingency_load,12,14,"^2Yzb. MacTavish: ^7Bağlantı neredeyse tamamlandı.",
contingency_load,16.3,19,"^2Yzb. MacTavish: ^7General Shepherd, Yüzbaşı Price ile çevrimiçisiniz.",
contingency_load,20,22,"^2Shepherd: ^7Uçurumun kenarından döndük, Kaptan.",
contingency_load,22,24,"^2Yzb. Price: ^7\"Kızartma tavasından\" demek daha doğru olur.",
contingency_load,24,27,"^2Yzb. Price: ^7Bu dünya az önce terk ettiğimden daha çok cehenneme benziyor.",
contingency_load,28,31,"^2Shepherd: ^7Ruslar kırmadan önce ACS'yi kurtardığımızı sanıyorduk.",
contingency_load,32,33,"^2Shepherd: ^7Yanılmışız.",
contingency_load,33.6,38,"^2Shepherd: ^7Sonra Makarov ABD'yi günah keçisi haline getirdi. Sonra bir baktık ki her yer alevler içinde.",
contingency_load,39,41,"^2Shepherd: ^7Bana gönderdiğin bu görüntü nedir?",
contingency_load,41.6,46,"^2Yzb. Price: ^7Bir petrol yangınını söndürmek istiyorsanız, efendim, hemen yanında daha büyük bir patlamaya yol açarsınız.",
contingency_load,46,48.2,"^2Yzb. Price: ^7Oksijeni emer. Alevi söndürür.",
contingency_load,49,54,"^2Shepherd: ^7Price, çok uzun zamandır kilit altındasın. Aklını başına alsan iyi olur evlat.",
contingency_load,55,58,"^2Yzb. Price: ^7Shepherd, kazanmak için ne gerekiyorsa yapmaya hazır mısın?",
contingency_load,58.6,60,"^2Shepherd: ^7Her zaman.",
contingency_load,60.5,65,"^2Yzb. Price: ^7Oldukça büyük bir yangınımız var. Büyük bir patlamaya ihtiyacımız olacak.",
contingency_load,66,70.2,"^2Shepherd: ^7Gulag'da çok uzun süre kaldın Price. Makarov'u indirmeye odaklan.",
contingency_load,71,73,"^2Yzb. Price: ^7Zaman yok, efendim. Bu savaşı bugün bitirmeliyiz.",
contingency_load,73,76,"^2Shepherd: ^7Sana sormuyorum, Price. Bu bir emirdir! Sen...",
contingency_load,79,82,"^2Yzb. Price: ^7Görünüşe göre bağlantımızı kaybettik.",
dcburning_load,8,18,"^2 ^7PRINCE GEORGE'S COUNTY SAKİNLERİNİN DOĞRUDAN 147 KIRKWOOD AVE'DEKİ SAĞLIK DEPARTMANINA GİTMELERİ GEREKMEKTEDİR.",
dcburning_load,18,27,"^2 ^7ÜNIVERSITE KAMPÜSÜNDEN HER 15 DAKIKADA BIR TOPLANIYOR. /// ACİL DURUM TAHLİYESİ DEVAM EDİYOR. ///",
dcburning_load,27,36,"^2 ^7DERHAL EN YAKIN SERVIS SIĞINAĞINA GIDIN. ASKERLER SIZI KARŞILAMAK IÇIN ORADA OLACAKLAR.",
dcburning_load,36,44,"^2 ^7FOTOĞRAFLI BİR KİMLİK GETİRİN VE KİŞİ BAŞINA BİRDEN FAZLA EŞYA TAŞIMAYIN. /// ÇEVRENİZİN FARKINDA OLUN. TEYAKKUZDA KALIN.",
dcemp_load,27,31.5,"^2SecDef: ^7Beyler, füzenin vektörü onu doğu kıyısına doğru yönlendiriyor. Beyaz Saray'ı kaybedeceğiz.",
dcemp_load,32,35,"^2Shepherd: ^7Daha önce yeniden inşa ettik, yine inşa edeceğiz.",
dcemp_load,36,37,"^2SecDef: ^7Kayıplar?",
dcemp_load,37.8,45,"^2Shepherd: ^7Muhtemelen 30.000 ila 50.000 arası. Patlamanın tam konumuna bağlı. Tüm sistemler çökecek.",
dcemp_load,46,49,"^2SecDef: ^7General Shepherd, bizi uyarmıştınız. Dinlemeliydik.",
dcemp_load,49.5,55,"^2Shepherd: ^7Bu andan bahsettiklerinde, Amerika ölürken nöbet tutan biz olmayacağız.",
dcemp_load,55.2,61,"^2Shepherd: ^7Tüm bunlardan tek bir adam sorumlu. Makarov gün ışığına çıkarılmalı.",
dcemp_load,61.8,65,"^2SecDef: ^7Neye ihtiyacınız varsa, General. Açık çekiniz var.",
estate_load,7,12,"^2Shepherd: ^7Zor bir hafta oldu beyler. Hayal ettiğimizden daha fazlasını kaybettik. Ama toparlanacağız.",
estate_load,16,20.3,"\n^2Shepherd: ^7Elimde boş bir çek var. Ve her kuruşunu Makarov'u öldürmek için kullanacağız.",
estate_load,22,28,"^2Shepherd: ^7Dünya ne derse desin, biz vahşi değiliz, sivilleri öldürmeyiz. Hassas kullanırız.",
estate_load,30,34,"^2Shepherd: ^7Bu gölgelerde saklanan kötü bir adam var ve biz onu ışığa çıkaracağız.",
estate_load,34.7,38,"^2Shepherd: ^7Yüzü ortaya çıktığında, tarih yazacağız beyler.",
estate_load,42.5,46.2,"^2Shepherd: ^7Bunlar Makarov ve adamları için Dünya'da kalan son güvenli sığınaklar.",
estate_load,47,49.3,"^2Yzb. Price: ^7Aynı anda iki yerde birden olmamız gerekecek gibi görünüyor.",
estate_load,50,51,"^2Shepherd: ^7İmkansız mı?",
estate_load,51,53,"^2Yzb. Price: ^7Bir-Dört-Bir için değil.",
estate_load,53,55.4,"^2Ghost: ^7Makarov'u alt etmek için yarı yarıya şans, ha?",
estate_load,56,59,"^2Ghost: ^7Yüzbaşı Price, Roach'la birlikte güvenli eve girmek için izin istiyorum.",
estate_load,59.8,63,"^2Yzb. Price: ^7İzin verildi. Soap ve ben Afganistan'daki mezarlığı alacağız.",
estate_load,63.3,69,"^2Shepherd: ^7Pekâlâ. Tüm kaçış yollarını keseceğiz. Bu iş şimdi bitiyor.",
estate_load,70,74,"^2Yzb. Price: ^7Garip. Bu savaşı dün bitirdiğimize yemin edebilirim.",
favela_escape_load,28.3,30.5,"^2Ghost: ^7Kimseye ulaşamıyorum.",
favela_escape_load,38,42.5,"^2Yzb. MacTavish: ^7Ruslar ACS modülünü kopyalamış olmalı. Amerika'daki her kilidin anahtarı var.",
favela_escape_load,42.5,48,"^2Ghost: ^7Ve Moskova'da ölen her sivil için bin Amerikalı öldürüyorlar. Görünüşe göre hepimizin arkadaşı kalmadı.",
favela_escape_load,49.2,52,"^2Yzb. MacTavish: ^7Birini tanıyorum. Hadi bir ankesörlü telefon bulalım, eğer hâlâ varsa.",
favela_escape_load,53.3,59,"^2Ghost: ^7Rojas'tan öğrendiğimiz tek şey Makarov'un Amerikalılardan daha çok nefret ettiği tek kişinin Gulag'da kilitli olduğu.",
favela_escape_load,59.5,65,"^2Yzb. MacTavish: ^7Elimizdeki tek şey bu. Eğer bu dolandırıcı o psikopatı yakalamak için yemse, onu bir ağaca asalım.",
favela_load,13,16.5,"\n^2Ghost: ^7Ruslar bu katliamın cevapsız kalmasına izin vermeyecektir. Kanlı olacak.",
favela_load,17,20,"\n^2Yzb. MacTavish: ^7Çok haklısın, dostum. Şimdi, dünyanın gözünde, onlar kurban.",
favela_load,20,24.3,"^2Yzb. MacTavish: ^7Ruslar ulaşabildikleri her Amerikalıyı sopaladığında kimse tek kelime etmeyecek.",
favela_load,24.3,30,"^2Shepherd: ^7Makarov bir adım öndeydi. Şimdi binlerce cesedi bir Amerikalının ayakları altına bıraktı.",
favela_load,31,36.6,"^2Yzb. MacTavish: ^7Makarov'un operasyonu olduğunu bir tek biz biliyoruz. Güvenilirliğimiz Allen'la birlikte öldü. Kanıta ihtiyacımız var.",
favela_load,37.3,39.3,"^2Shepherd: ^7Mermiyi takip et.",
favela_load,45,47,"^2Shepherd: ^7Alejandro Rojas.",
favela_load,48.5,50,"^2Yzb. MacTavish: ^2 ^7Onu hiç duymadım, efendim.",
favela_load,50,53,"^2Shepherd: ^7Onu Kızıl Alex olarak tanıyorsun. Saldırıyı o sağladı.",
favela_load,54.5,59,"^2Yzb. MacTavish: ^7Bütün bir ulusun öfkesini serbest bırakmak için tek bir kurşun. Bu da demek oluyor ki.",
favela_load,59,61,"^2Shepherd: ^7Makarov'a giden biletimiz o.",
gulag_load,16,19,"^2Yzb. MacTavish: ^7Altıncı Filo toparlanıyor. Harekete geçme zamanı.",
gulag_load,20.7,24,"^2Yzb. MacTavish: ^7Bu binanın uzun bir geçmişi var. Pek güzel değil.",
gulag_load,24,28,"^2Yzb. MacTavish: ^7Bir kale olarak başladı. Gerçek bir zindanı var. Her türlü kuşatmaya dayanacak şekilde inşa edilmiş.",
gulag_load,28.8,33.2,"^2Yzb. MacTavish: ^7Bina her acımasız kışı atlattı. İçindekiler o kadar şanslı değildi.",
gulag_load,34,37,"^2Yzb. MacTavish: ^7Manastır. Tasfiyelerden sağ çıkamadı.",
gulag_load,37,41,"^2Yzb. MacTavish: ^7Geçen yüzyıl boyunca hükümetin istemediği ama öldüremediği herkese ev sahipliği yaptı.",
gulag_load,43,48,"^2Yzb. MacTavish: ^7Burası son savaşın yaşayan kayıplarıyla dolu... Yemin ederim ki kazandığımızı sanıyordum.",
gulag_load,48,53,"^2Yzb. MacTavish: ^7Ama sanırım hepsi yarışlarda bir gün: Kaybeden atı destekliyorsunuz ve sonunda geldiğiniz yer burası.",
gulag_load,53.8,58,"^2Yzb. MacTavish: ^7Altı-İki-Yedi Makarov'un istediği et parçası, o yüzden onu serbest bırakalım.",
intro_credits_load,20,22,"^2Gaz: ^7Bu FNG efendim.",
intro_credits_load,25,27,"^2Yzb. Price: ^7Soap da ne biçim bir isim?",
intro_credits_load,48.5,51.5,"^2Yzb. Price: ^7Nikolai şu anda cehennemde. Onu dışarı çıkaracağız...",
intro_credits_load,52,54,"^2Yzb. Price: ^7Biz arkadaşlarımızla ilgileniriz.",
intro_credits_load,64,67,"^2Yzb. Price: ^7Zakhaev. Imran Zakhaev.",
intro_credits_load,78,82,"^2Zakhaev: ^7Oğlumun kanı onların ellerinde.",
intro_credits_load,89,93.5,"^2Yzb. Price: ^7Delta Bir X-Ray, bir füze fırlatıldı, tekrar ediyorum bir füze fırlatıldı...",
invasion_load,22,26,"^2NORAD Karargâhı: ^7Sand Bravo, bölgenizde 70 öcü tespit ettik, lütfen doğrulayın.",
invasion_load,27,31.5,"^2Nome AFB: ^7Çok komik, İstasyon. Bu büyük bir olumsuzluk, tamam.",
invasion_load,31.8,33.9,"^2NORAD Denetleyicisi: ^7Evet, ACS modüllerinden birinde bir aksaklık olabilir.",
invasion_load,34,38,"^2NORAD Karargâhı: ^7Sand Bravo, bilginize, arıza taraması için tanılama çalıştırılıyor.",
invasion_load,39,42.2,"^2Nome AFB: ^7Gökyüzü açık, istasyon. Ghost noktalarınız var. Tamam.",
invasion_load,43,48,"^2NORAD Karargâhı: ^7Zulu X-Ray 6. Bölgenizde 100 kadar öcü işareti var, lütfen bilgi verin.",
invasion_load,49,55,"^2Vandenberg AFB: ^7Olumsuz, İstasyon. Kapsam temiz. Ne diyeceğimi bilemiyorum. Güneş paraziti mi? Bugün yoğun güneş lekesi aktivitesi var.",
invasion_load,55.8,61,"^2NORAD Karargâhı: ^7Sierra Delta, burada küçük bir ACS arızası olabilir. Dürbününüzde bir şey var mı?",
invasion_load,61.3,63,"^2Hava Trafik Denetleyicisi: ^7Her yerdeler!",
invasion_load,63,65,"^2NORAD Karargâhı: ^7Sierra Delta, tekrar ediyorum!",
invasion_load,65,69,"^2Hava Trafik Denetleyicisi: ^7I-95 üzerinde savaş uçakları görüyorum! Nasıl geçebildiler?",
invasion_load,69,73,"^2NORAD Karargâhı: ^7Beklemede kalın! O bölgedeki en yakın birimle bağlantı kurmaya çalışıyorum.",
invasion_load,73,79,"^2Çvş. Foley: ^7Sizi duyuyorum. Ben Birinci Tabur, 75. Korucu Alayı, Çavuş Foley, Avcı İki-Bir'in vekil komutanı. Anlaşıldı mı?",
invasion_load,79,87,"^2NORAD Karargâhı: ^7Tüm istasyonlar, haberiniz olsun - uydu gözetimi devre dışı bırakıldı. SOSUS ve Pave Paws dizileri şu anda çalışmıyor.",
oilrig_load,20.8,24,"^2Yzb. MacTavish: ^7Görünüşe göre yanlış yöne gidiyoruz, efendim. Savaşa geri dönmemiz gerekmiyor mu?",
oilrig_load,24,26,"^2Shepherd: ^7Etrafta bolca savaş var, MacTavish.",
oilrig_load,27,33,"^2Shepherd: ^7Güney Amerika'dan çıkabildiğinize sevindim. 6'ncı Filo ile buluşacaksın. Karşı saldırıyı yönetiyorsun.",
oilrig_load,35,42,"^2Shepherd: ^7Mahkûm 6-2-7. Makarov'un deli olduğunu düşünüyoruz. Ama ona ulaşamıyoruz.",
oilrig_load,45,47,"^2Yzb. MacTavish:^7Petrol kuleleri mi efendim?",
oilrig_load,47,49,"^2Shepherd: ^7Ruslar onları FÜZE sahası olarak kullanıyorlar.",
oilrig_load,50,56,"^2Shepherd: ^7Petrol işçileri canlı kalkan, bu yüzden kuleleri toptan havaya uçuramayız. Ve bu en az savunulanı.",
oilrig_load,58.8,62,"^2Shepherd: ^7Çocuklar, sizi bu sefer kıyma makinesine gönderdiğimi biliyorum...",
oilrig_load,62,67,"^2Yzb. MacTavish: ^7Onu savunuyorlar, bu da onu istediğimiz anlamına geliyor. Özellikle de bizi Altı-İki-Yedi'ye ulaştıracaksa.",
roadkill_load,8,12.3,"^2Shepherd: ^7Biz insanlık tarihinin en güçlü askerî gücüyüz.",
roadkill_load,13,15,"^2Shepherd: ^7Her savaş bizim savaşımızdır.",
roadkill_load,16,21,"^2Shepherd: ^7Çünkü burada olanlar orada da önemli. Birini dışarıda bırakamayız.",
roadkill_load,22,30,"^2Shepherd: ^7Modern savaş araçlarını kullanmayı öğrenmek, halkınızın refahı ile tamamen yok olması arasındaki farktır.",
roadkill_load,30.5,37,"^2Shepherd: ^7Size özgürlük veremeyiz. Ama onu elde etmeniz için gerekli bilgiyi verebiliriz.",
roadkill_load,37,41.0,"^2Shepherd: ^7Ve bu, dostlarım, bütün bir çelik ordu üssünden daha değerlidir.",
roadkill_load,42.5,48,"^2Shepherd: ^7Elbette kimin en büyük sopaya sahip olduğu önemlidir, ama onu kimin salladığı çok daha önemlidir.",
roadkill_load,49,53,"^2Shepherd: ^7Şimdi kahramanların zamanı. Efsanelerin zamanı.",
roadkill_load,54,56,"^2Shepherd: ^7Tarih galipler tarafından yazılır.",
roadkill_load,57,59,"^2Shepherd: ^7Hadi işe koyulalım.",
trainer_load,10.7,14,"^2Shepherd: ^7Her şey ne kadar değişirse, o kadar aynı kalır.",
trainer_load,15,21,"^2Shepherd: ^7Sınırlar değişir, yeni oyuncular devreye girer, ancak güç her zaman başını dinlendirecek bir yer bulur.",
trainer_load,24,29,"^2Shepherd: ^7Ruslarla birlikte savaştık ve kan döktük. Bunun için bizden nefret edeceklerini bilmeliydik.",
trainer_load,30,35,"^2Shepherd: ^7Tarih galipler tarafından yazılır. Ve işte buradayım, kazandığımızı sanıyordum.",
trainer_load,37,41,"^2Shepherd: ^7Ama bir düşmanı devirirsiniz ve onun yerine daha kötü birini bulurlar.",
trainer_load,43.8,48,"^2Shepherd: ^7Lokasyon değişikliği, gerekçe, hedef.",
trainer_load,49,52,"^2Shepherd: ^7Dünün düşmanları bugünün acemileridir.",
trainer_load,52,59,"^2Shepherd: ^7Onları seninle birlikte savaşmaları için eğit ve sonunda senden nefret etmeye karar vermemeleri için dua et.",
trainer_load,70,72,"^2Shepherd: ^7Hep aynı şeyler, ama farklı gün.",
trainer_load,72.8,77,"^2Shepherd: ^7Ne aradığımı biliyorsun, Çavuş Foley. Gözlerini açık tut.",
trainer_load,78,82,"^2Çvş. Foley: ^7Bugün yeni bir parti var efendim. Bulduklarımın en iyisini size göndereceğim.",
Can't render this file because it contains an unexpected character in line 69 and column 42.

View File

@ -191,7 +191,7 @@ namespace fonts
} }
const auto lang = language::current(); const auto lang = language::current();
const std::string lang_name = game::languages[lang].name; const std::string lang_name = language::languages[lang].name;
for (auto row = 0; row < table->rowCount; row++) for (auto row = 0; row < table->rowCount; row++)
{ {
if (table->columnCount < 3) if (table->columnCount < 3)

View File

@ -12,6 +12,8 @@
namespace language namespace language
{ {
game::language_values languages[game::LANGUAGE_COUNT + 1]{};
namespace namespace
{ {
std::unordered_set<game::language_t> non_latin_languages = std::unordered_set<game::language_t> non_latin_languages =
@ -48,6 +50,7 @@ namespace language
std::unordered_set<game::language_t> custom_languages = std::unordered_set<game::language_t> custom_languages =
{ {
{game::LANGUAGE_CZECH}, {game::LANGUAGE_CZECH},
{game::LANGUAGE_TURKISH},
}; };
const char* get_loc_language_string() const char* get_loc_language_string()
@ -75,7 +78,7 @@ namespace language
const auto lower = utils::string::to_lower(name); const auto lower = utils::string::to_lower(name);
for (auto i = 0; i < game::LANGUAGE_COUNT; i++) for (auto i = 0; i < game::LANGUAGE_COUNT; i++)
{ {
if (game::languages[i].name == lower) if (languages[i].name == lower)
{ {
return true; return true;
} }
@ -88,7 +91,7 @@ namespace language
{ {
for (const auto& language : custom_languages) for (const auto& language : custom_languages)
{ {
if (game::languages[language].name == name || game::languages[language].shortname == name) if (languages[language].name == name || languages[language].shortname == name)
{ {
return true; return true;
} }
@ -140,7 +143,7 @@ namespace language
return; return;
} }
const auto language = game::languages[index]; const auto language = languages[index];
set(language.name); set(language.name);
} }
@ -158,9 +161,57 @@ namespace language
utils::io::remove_file(OLD_LANGUAGE_FILE); utils::io::remove_file(OLD_LANGUAGE_FILE);
} }
std::memcpy(languages, game::languages.get(), sizeof(game::language_values) * game::LANGUAGE_COUNT_ORIGINAL);
languages[game::LANGUAGE_TURKISH].name = "turkish";
languages[game::LANGUAGE_TURKISH].shortname = "tur";
languages[game::LANGUAGE_TURKISH].prefix1 = "tr";
languages[game::LANGUAGE_TURKISH].prefix2 = "tr";
languages[game::LANGUAGE_TURKISH].prefix3 = "tr";
languages[game::LANGUAGE_TURKISH].is_supported = 1;
utils::hook::inject(0x1405E3B67 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E5217 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E5223 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E524D + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E5398 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E53AB + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E53E8 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E6273 + 3, &languages[game::LANGUAGE_ENGLISH].name);
utils::hook::inject(0x1405E5197 + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E51A3 + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E58B2 + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E58BF + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E6144 + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E6189 + 3, &languages[game::LANGUAGE_ENGLISH].shortname);
utils::hook::inject(0x1405E51E7 + 3, &languages[game::LANGUAGE_ENGLISH].prefix2);
utils::hook::inject(0x1405E51F3 + 3, &languages[game::LANGUAGE_ENGLISH].prefix2);
utils::hook::inject(0x1405E5157 + 3, &languages[game::LANGUAGE_ENGLISH].prefix3);
utils::hook::inject(0x1405E5163 + 3, &languages[game::LANGUAGE_ENGLISH].prefix3);
utils::hook::inject(0x1405E5470 + 3, &languages[game::LANGUAGE_ENGLISH].is_supported);
utils::hook::inject(0x1405E57FA + 3, &languages[game::LANGUAGE_ENGLISH].is_supported);
utils::hook::inject(0x1405E612F + 3, &languages[game::LANGUAGE_ENGLISH].is_supported);
utils::hook::inject(0x1405E5D79 + 3, &languages[game::LANGUAGE_GERMAN].is_supported);
utils::hook::inject(0x1405E5E3B + 3, &languages[game::LANGUAGE_ENGLISH_SAFE].is_supported);
utils::hook::inject(0x1405E5257 + 3, &languages[game::LANGUAGE_COUNT].name);
utils::hook::set<std::uint8_t>(0x140342B59 + 2, game::LANGUAGE_COUNT);
utils::hook::set<std::uint8_t>(0x1405E5390 + 2, game::LANGUAGE_COUNT - 1);
utils::hook::set<std::uint8_t>(0x1405E518B + 2, game::LANGUAGE_COUNT - 1);
utils::hook::set<std::uint8_t>(0x1405E520B + 2, game::LANGUAGE_COUNT - 1);
utils::hook::set<std::uint32_t>(0x1405E556C + 4, game::LANGUAGE_COUNT - 1);
utils::hook::set<std::uint32_t>(0x1403D7480 + 4, game::LANGUAGE_COUNT - 1);
for (const auto& language : custom_languages) for (const auto& language : custom_languages)
{ {
game::languages[language].is_supported = 1; languages[language].is_supported = 1;
} }
} }
}; };

View File

@ -4,6 +4,8 @@
namespace language namespace language
{ {
extern game::language_values languages[game::LANGUAGE_COUNT + 1];
std::string get_default_language(); std::string get_default_language();
bool is_valid_language(const std::string& name); bool is_valid_language(const std::string& name);
bool is_custom_language(const std::string& name); bool is_custom_language(const std::string& name);

View File

@ -941,6 +941,8 @@ namespace game
LANGUAGE_KOREAN = 15, LANGUAGE_KOREAN = 15,
LANGUAGE_ENGLISH_SAFE = 16, LANGUAGE_ENGLISH_SAFE = 16,
LANGUAGE_RUSSIAN_PARTIAL = 17, LANGUAGE_RUSSIAN_PARTIAL = 17,
LANGUAGE_COUNT_ORIGINAL = 18,
LANGUAGE_TURKISH = 18,
LANGUAGE_COUNT LANGUAGE_COUNT
}; };