Aynen hocam mantık aynı.
________________
Arkadaşlar yukarıda bahsettiğim gibi
gettext i kurmak vesaite hem meşakatli hem de bir geliştiricinin istemeyeceği bir durum...
Bu nedenle bu sorunları aşmak adına (Aynı mantıkla çalışan)
Class yazdıklarından bahsetmiştim.
İçlerinden en beğendiğimi epey araştırdım.
".ini"
ve
".json"
üzerinde çalışabiliyor.
Ağaç mantığı ile değişkenler atamanıza olanak sağlıyor.
Otomatik dil algılaması yapabiliyor.
Manuel olarak
(?lang=en) gibi dil ayarlaması yapmanıza olanak veriyor.
Gene manuel olarak
SESSION üstünde bir
"lang" değeri kayıt etmişseniz onu da destekliyor.
Yukarıda yazdığım sıraya göre son yazılan bir öncekine baskın geliyor.
Bununla birlikte algıladığı diller arasında sizin dil dosyanız yok ise, otomatik destek sağlıyor (
Fallback ) mesela ingilizceyi ayarlarsan default olarak onu gösteriyor.
Ayrıca diyelim ki İnglizceyi geliştirmeye başladınız ama bazı değişkenler eksik. Böyle bir durumda eksik olan yeri default dilden çekme özelliği de var.
Belirli koşullarda (şartlar kullanarak) bir dil'i zorlayabiliyorsun. Mesela adam Türk ama Amerika da, ona illa ingilizce dil gösterebiliyorsun.
En güzeli de yeni diller ekleyebiliyor veya çıkarabiliyorsun.
Bir başka beğendiğim nokta ise (
CACHE) özelliği mevcut.
Yani bir kişi default olmayan bir dil seçtiğinde (HER SEFERİNDE FONKSİYON ÇALIŞIP .JSON çalışmıyor. Ön bellekten çekiyor. Eğer .json dosyası değişirse otomatik olarak cache'i yeniliyor.
Tabi eklemezsek ayıp olur, çalışma mantığı tıpkı gettext deki gibi.
PO MO yerine json kullanıyorsun veya .ini .yml gibi formatları destekliyor.
Ben çok beğendim.
İsterseniz bir inceleyin.
Konuyu açmaktaki amacıma da kısmen de olsa ulaştım. Biraz klasik metodlara benzeyen biraz da
gettext 'İ andıran, Yani Hybirt bir sistem kullanmış olacağım ki bu da benim için yeterli
Şimdi
SESSION 'u
COOKIE' e çevirmeyi deniyeceğim. Bir lang tercih kaydı için boştan yere sunucuyu yormaya gerek yok, browserde kalsın kişinin tercihi...
Bu arada bu saydıklarımı Wordpress'e entegre ettim az önce.
Bunun için wp nin (endpoint) özelliğini kullanıp
ornek.com/merhaba-dunya/en gibi bir url yapısı oluşturdum.
Fork ladığım projeyi paylaşayım isterseniz orijinaline ulaşırsınız. Çünkü eğer yapabilirsem COOKIE li versiyonunu da oraya yüklerim.
https://github.com/ionurboz/php-i18n
Bu da en.json dan basit bir örnek:
"site": {
"title": "Site Title"
},
"header": {
"navbar": {
"products": "Products",
"productsmarketplace": "Marketplace"
}
}
}Esenlikler.