• Merhaba arkadaşlar, Sizlere daha iyi hizmet verebilmek için forumdaki değişiklikler hızla devam ediyor. İstek ve önerilerinizi Bize Ulaşın kısmından gönderebilirsiniz. Bizi bu yolda yanlız bırakmadığınız için teşekkür ederiz.

PHP Ile Basit Bir Çoklu Dil Sistemi

bursa kiralık vinç
Katılım
7 Ara 2020
Mesajlar
14
Tepki puanı
9
Puanları
3
Yaş
24
Konum
Kocaeli
Bazı siteler, bu tür sitelerde sadece İngilizce konuşulan dilden daha fazlasına hitap eder, çok dilli içeriğe ihtiyaç vardır, desteklemek istediğiniz her dil için farklı siteler oluşturabilirsiniz, ancak bu web sitenizi yönetilemez hale getirebilir.

Daha iyi veya en basit bir yol olarak dil dosyalarının tüm site içeriğinin dil dosyalarında saklanmasını sağlamak ve ardından talep üzerine ilgili dili kullanmaktır.

Dil sistemi örneği için yandaki bağlantıya tıklayın: dil sistemi örneği

Bu eğitim size tam olarak bunu nasıl yapacağınızı gösterecek ve çok basit bir şekilde dil dosyaları oluşturacak ve istek üzerine belirli bir dili çağıracaktır.

İlk önce bu klasörde 'lang' adlı bir klasör oluşturun, orada tüm diller saklanacak. Lang klasöründe her dil için bir tane yeni bir dosya oluşturun, örneğin ingilizce için en_EN.php, fransızca için fr_FR.php, almanca de_DE.php vb.

Dil değiştirici için, anında tanınabilir lang kullanmaya karar verdim, lang adlı bir klasör oluşturdum ve kullanacağım dil için bir dosyam var.

proje dosyalarını indir

Dil değiştiriciyi kullanmak istediğiniz sayfada (benim durumumda index.php) aşağıdaki kodu doctype'ın üzerine yerleştirin:
Kod:
<code class="language-php">session_start();
if($_GET['la']){
	$_SESSION['la'] = $_GET['la'];
	header('Location:'.$_SERVER['PHP_SELF']);
	exit();
}

switch($_SESSION['la']){
 case "en":
	require('lang/en_EN.php');
break;
case "fr":
	require('lang/fr_FR.php');
break;
case "de":
	require('lang/de_DE.php');
break;
default:
	require('lang/tr_TR.php');
}</code>

Bu, oturumları session_start() açar ve ardından bir if ifadesi gerçekleştirilir, eğer $_GET['la'], get değişkeni la'nın istendiği anlamına gelirse, onu la oturumuna ekler ve ardından sayfayı yeniden yükler.

Daha sonra, la oturumuna bakan bir switch ifadesi gerçekleştirilir, eğer hiçbiri eşleşmezse, istenen dil dosyasına yükleyeceği durumlardan birine eşitse, varsayılan bir dil dosyası yüklenecektir. La oturumu 'en' içeriyorsa, ingilizce dili yüklenecektir.

Bu dil dosyaları, yüklendikten sonra sayfanın içeriğini içerir. Bu, bir $ lang dizisine başvurarak ve ardından hangi bölümün istendiğini belirleyerek çalışır.

Örneğin php'deki sayfa başlığı için lang dizisi adını veriyoruz ve sonra peşinde olduğumuz şeyin indeks başlığı bölümünü belirtiyoruz.
Kod:
<title><?php echo $lang['index-title'];?></title>

Dizin başlığı, dil dosyası içindeki bir dizi öğesini ifade eder, burada ingilizce dil dosyasının tüm içeriği bulunmaktadır.
Kod:
<code class="language-php">//english lang

//nav
$lang['lang-en'] = 'English';
$lang['lang-fr'] = 'French';
$lang['lang-de'] = 'German';
$lang['lang-tr'] = 'Turkish';

//index
$lang['index-title'] = 'Language Demo';
$lang['index-welcome'] = 'Welcome to the language demo';
$lang['index-text-1'] = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";
$lang['demo'] = 'Return to the tutorial';</code>

Gördüğünüz gibi $lang['index-title'] = 'Dil Demosu'; sayfa başlığını bir Fransızca dosyasında saklar ve bu şekilde kolayca birden çok dile sahip olabilirsiniz.

Tek bir dil dosyasında aynı adı iki kez kullanmadığınız sürece, dizinin dil bölümlerini nasıl ön eklediğiniz önemli değildir, öğelerin amaçlandıkları sayfanın önüne eklemeyi tercih ederim, bu nedenle dizin ve ardından $lang['index-welcome'] gibi bu şeyleri takip etmeyi çok daha kolay hale getirir.

Bu yüzden, dili değiştirin, yeni bir dili kolayca çağırabilmemiz için bir yola ihtiyacımız var ve daha önce söylediğim gibi, farklı dilleri temsil etmek için bayrakları kullanmayı seçtim. Her dil için bir bağlantı oluşturuyorum, bağlantı yolu index.php'ye bağlanıyor, ardından istenen dili bağlantıya ?la=eng Fransızca kullanım için ?la=fr bağlantının içinde alt ve başlık etiketleri için bayraklar, dilden içerik alma çağrılarıdır, bu nedenle görüntüler herhangi bir nedenle gösterilemezse, kullanıcı hangi bağlantının hangi dili temsil ettiğini yine de bilecektir.

Kaynak: PHP Ile Basit Bir Çoklu Dil Sistemi
Etiketler: php çoklu dil desteğini, çoklu dil desteği, php çoklu dil sistemi, çoklu dil sistemi
 
Şu an forumumuzda
27 Kullanıcı Aktif
Konu 3,038
Cevaplar 4,357
Kullanıcılar 1,191
Son Üye BUZMAVİSİ
Webdebul.net; 5651 Sayılı Kanun kapsamında BTK tarafından onaylı Yer Sağlayıcı'dır.

Bu sebeple içerikleri kontrol etme ya da araştırma yükümlülüğü yoktur.
Hukuka ve mevzuata aykırı olduğunu düşündüğünüz içeriği. BURADAN bildirebilirsiniz.
Kısa sürede dönüş yapmaya çalışacağız.
Webmaster Forumu ® Güvenli Alışverişin Yeni Adresi Webdebul.net altyapı gücünü Netwebo'dan alır.
Reklam vermek için: reklam@webdebul.net
Ban sorunları için: ban@webdebul.net
Hukuksal sorunlar için: hukuk@webdebul.net
Diğer sorunlar için: bilgi@webdebul.net
Üst Alt