PHP’de çoklu dil desteği sağlamak için birkaç farklı yöntem vardır. İşte, bu yöntemlerden bazıları:
setlocale()
ve gettext()
gibi fonksiyonlar, PHP’de çoklu dil desteği sağlamanın yaygın kullanılan yöntemlerindendir.
setlocale()
: Dil ayarlarını yapmanızı sağlar. Örneğin, Türkçe için tr_TR.utf8
gibi bir ayarlama yapılabilir.setlocale(LC_ALL, 'tr_TR.utf8');
gettext()
: Belirli bir dizeyi, belirli bir dile göre çevirmenizi sağlar.// Çeviri dosyasının yüklenmesi
$domain = "messages";
bindtextdomain($domain, "locales");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
echo gettext("Merhaba dünya!");
Yukarıdaki örnekte, gettext()
fonksiyonu kullanarak “Merhaba dünya!” dizesinin çevirisini alıyoruz. bindtextdomain()
fonksiyonu ile çeviri dosyasının konumunu belirliyoruz.
Başka bir yöntem de URL’nin get parametrelerini kullanarak çoklu dil desteği sağlamaktır.
$lang = isset($_GET["lang"]) ? $_GET["lang"] : "tr";
if ($lang == "tr") {
// Türkçe içerik
} else if ($lang == "en") {
// İngilizce içerik
}
Yukarıdaki örnekte, $_GET
dizisi kullanılarak lang
parametresine göre farklı içerikler üretilebilir.
Bir başka seçenek de, JSON dosyaları kullanmaktır. Bu yöntemde, her bir dil için ayrı bir JSON dosyası oluşturulur ve PHP kodu bu dosyalardan gerekli metinleri çeker.
$lang = isset($_GET["lang"]) ? $_GET["lang"] : "tr";
$jsonString = file_get_contents("lang/" . $lang . ".json");
$data = json_decode($jsonString, true);
echo $data["hello"];
Yukarıdaki örnekte, file_get_contents()
fonksiyonu kullanılarak ilgili JSON dosyası okunuyor ve json_decode()
fonksiyonu ile dizi olarak çözülüyor. Daha sonra, $data
dizisi kullanılarak ilgili metin ekrana yazdırılıyor.
Bu şekilde, PHP’de çoklu dil desteği sağlayabilirsiniz. Seçtiğiniz yöntem, uygulamanızın gereksinimlerine ve ihtiyaçlarına uygun olmalıdır.