Neler yeni

PHP Ile Basit Bir Çoklu Dil Sistemi (1 Kişi)

[WebAbisi] Konu Bilgileri

Konu Hakkında Merhaba, tarihinde PHP kategorisinde oxcakmak tarafından oluşturulan PHP Ile Basit Bir Çoklu Dil Sistemi başlıklı konuyu okuyorsunuz. Bu konu şimdiye dek 203 kez görüntülenmiş, 1 yorum ve 1 tepki puanı almıştır...
Kategori Adı PHP
Konu Başlığı PHP Ile Basit Bir Çoklu Dil Sistemi
Konuyu başlatan oxcakmak
Başlangıç tarihi
Cevaplar
Görüntüleme
İlk mesaj tepki puanı
Son Mesaj Yazan MasTErROq

oxcakmak

Kayıtlı Kullanıcı
Katılım
7 Ara 2020
Mesajlar
15
Tepkime puanı
9
Web sitesi
oxcakmak.com
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:

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.



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:
Etiketler: php çoklu dil desteğini, çoklu dil desteği, php çoklu dil sistemi, çoklu dil sistemi
 

MasTErROq

Kayıtlı Kullanıcı
Katılım
3 Kas 2020
Mesajlar
56
Tepkime puanı
18
güzel mantık eline sağlık veritabından da çekim yapılabilir