Çok dilli php script soru

4 Cevap php

Ben bu PHP komut dosyası var. Bu gerçekten benim için çalıştı tek kişi:

<?php
/*Check_if_user_has_changed_language: */
if(isset($lang)){/*If_so:*/
    setcookie("ling",$lang,time()-60*60*24*365,"/",".sayip.info",0);/*Wipe_previous_cookie*/
    setcookie("ling",$lang,time()+60*60*24*365,"/",".sayip.info",0);/*Whatever_the_means_lang_has_been_stored,_store_latest_lang_in_new_cookie:*/
    //echo "<script language=\"JavaScript\">alert('Selected language=$lang')</script>";/*UnComment_to_check*/
}else{/*If_user_has_NOT_changed_language:*/
    if(isset($_COOKIE['ling'])){/*Check_if_user-language_cookie_is_set._If_so:*/
        $lang=$_COOKIE['ling'];
        setcookie("ling",$lang,time()-60*60*24*365,"/",".sayip.info",0);/*Wipe_previous_cookie*/
        setcookie("ling",$lang,time()+60*60*24*365,"/",".sayip.info",0);
        //echo "<script language=\"JavaScript\">alert('Cookie language=$lang')</script>";/*UnComment_to_check*/
    }else{/*If_user-language_neither_selected_nor_in_cookie,_choose_browser_language:*/
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
        setcookie("ling",$lang,time()+60*60*24*365,"/",".sayip.info",0);
        //echo "<script language=\"JavaScript\">alert('Your browser language=$lang')</script>";/*UnComment_to_check*/
    }
}
?>

İlk kod kullanıcının tarayıcı dilini algılar. Bu ok bulunuyor.

Sonra bir tanımlama bilgisi saklar. Bu ok bulunuyor.

Peki kod onun her şeyi tamam bu parça. Ne gerçekten ihtiyacınız ziyaretçiler dilini değiştirmek için bir seçenek yaratmak için olduğunu. Birisi dilini değiştirir bayrağa tıklayın, ben çok bağlantılı bayrağı görüntüleri gibi bir şey düşünüyordum.

Birisi bir örnek üzerinden ya da temiz, tam bir çözüm bana açıklayabilir misiniz? PHP Benim becerileri zayıftır.

Şimdiden teşekkürler.

4 Cevap

Ben, URL seçilen dili koymak istiyorum mesela http://example.com/ en /foo/bar. Bu, seçilen dil şeffaf ve değiştirmek kolaylaştırır.

Birisi bayrağa tıkladığınızda i bu script daha fazla veya daha az 10 farklı alfabeler test ettikten sonra çalışma var yana, im back düşen gibi değil, sadece bayrak koymak için nasıl bir örnek nasıl ihtiyaç lol ... biliyordu ve eğer ben koymak istiyorum Bu tanımlama bilgisinin de değerini değiştirir ...

Ben soru hakkı var eğer ben emin değilim

if your gonna place a link for each language in your page, make the link something like http://www.example.com/?lang=jp

sonra eklentiyi yayınlanmıştır komut önce php kodu

if (isset($_GET['lang'])) $lang = $_GET['lang'];

Bu ne ment nedir?

Daha zarif bir çözüm kullanıcının başlıklarını kontrol etmek olabilir. Most tarayıcıları kullanıcıların tercihlerine tercih ettikleri dili ayarlamak için izin verecektir. Bu da isteği ile bir HTTP başlığı gönderir. Başlığı bu gibi görünüyor.

Accept-Language: en-us, tr, q = 0.8, ar-ly; q = 0.5, id; q = 0.3

Değeri tercihinize göre sipariş kabul edilen dillerin bir virgülle ayrılmış listesi, (q = x parçası tercihtir) 'dir. Bu şekilde, otomatik olarak kullanıcının web görmek için seçmiştir hangi dili algılamak ve bunu varsa görüntüleyebilirsiniz.