मैं अपनी वेबसाइट के लिए अनुक्रमणिका के रूप में निम्न PHP स्क्रिप्ट का उपयोग करता हूं।
इस स्क्रिप्ट में ब्राउज़र की भाषा (स्वचालित रूप से पाया गया) के आधार पर एक विशिष्ट पृष्ठ शामिल होना चाहिए।
यह स्क्रिप्ट सभी ब्राउज़रों के साथ अच्छी तरह से काम नहीं करती है, इसलिए इसमें हमेशा index_en.php
किसी भी ज्ञात भाषा को शामिल किया जाता है (समस्या का कारण संभवतः सबसे अधिक समस्या है जिसमें कुछ एक्सेप्ट-लैंग्वेज हेडर पर विचार नहीं किया जाता है)।
क्या आप कृपया मुझे अधिक मजबूत समाधान सुझा सकते हैं?
<?php
// Open session var
session_start();
// views: 1 = first visit; >1 = second visit
// Detect language from user agent browser
function lixlpixel_get_env_var($Var)
{
if(empty($GLOBALS[$Var]))
{
$GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?
$GLOBALS['_SERVER'][$Var] : (!empty($GLOBALS['HTTP_SERVER_VARS'][$Var])) ? $GLOBALS['HTTP_SERVER_VARS'][$Var]:'';
}
}
function lixlpixel_detect_lang()
{
// Detect HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.
lixlpixel_get_env_var('HTTP_ACCEPT_LANGUAGE');
lixlpixel_get_env_var('HTTP_USER_AGENT');
$_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);
$_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);
// Try to detect Primary language if several languages are accepted.
foreach($GLOBALS['_LANG'] as $K)
{
if(strpos($_AL, $K)===0)
return $K;
}
// Try to detect any language if not yet detected.
foreach($GLOBALS['_LANG'] as $K)
{
if(strpos($_AL, $K)!==false)
return $K;
}
foreach($GLOBALS['_LANG'] as $K)
{
//if(preg_match("/[[( ]{$K}[;,_-)]/",$_UA)) // matching other letters (create an error for seo spyder)
return $K;
}
// Return default language if language is not yet detected.
return $GLOBALS['_DLANG'];
}
// Define default language.
$GLOBALS['_DLANG']='en';
// Define all available languages.
// WARNING: uncomment all available languages
$GLOBALS['_LANG'] = array(
'af', // afrikaans.
'ar', // arabic.
'bg', // bulgarian.
'ca', // catalan.
'cs', // czech.
'da', // danish.
'de', // german.
'el', // greek.
'en', // english.
'es', // spanish.
'et', // estonian.
'fi', // finnish.
'fr', // french.
'gl', // galician.
'he', // hebrew.
'hi', // hindi.
'hr', // croatian.
'hu', // hungarian.
'id', // indonesian.
'it', // italian.
'ja', // japanese.
'ko', // korean.
'ka', // georgian.
'lt', // lithuanian.
'lv', // latvian.
'ms', // malay.
'nl', // dutch.
'no', // norwegian.
'pl', // polish.
'pt', // portuguese.
'ro', // romanian.
'ru', // russian.
'sk', // slovak.
'sl', // slovenian.
'sq', // albanian.
'sr', // serbian.
'sv', // swedish.
'th', // thai.
'tr', // turkish.
'uk', // ukrainian.
'zh' // chinese.
);
// Redirect to the correct location.
// Example Implementation aff var lang to name file
/*
echo 'The Language detected is: '.lixlpixel_detect_lang(); // For Demonstration
echo "<br />";
*/
$lang_var = lixlpixel_detect_lang(); //insert lang var system in a new var for conditional statement
/*
echo "<br />";
echo $lang_var; // print var for trace
echo "<br />";
*/
// Insert the right page iacoording with the language in the browser
switch ($lang_var){
case "fr":
//echo "PAGE DE";
include("index_fr.php");//include check session DE
break;
case "it":
//echo "PAGE IT";
include("index_it.php");
break;
case "en":
//echo "PAGE EN";
include("index_en.php");
break;
default:
//echo "PAGE EN - Setting Default";
include("index_en.php");//include EN in all other cases of different lang detection
break;
}
?>
locale_accept_from_http()
यह है कि आप सबसे अच्छे परिणाम का समर्थन नहीं कर सकते हैं ताकि आप अभी भी अगले-सर्वोत्तम को खोजने के लिए हेडर को अपने पास रख सकें ।
locale_accept_from_http()
जिसमेंAccept-Language
हेडर से पसंदीदा भाषा मिलती है । आपको हमेशा इस विधि को स्व-लिखित विधि के लिए पसंद करना चाहिए। नियमित अभिव्यक्तियों की एक सूची के खिलाफ परिणाम की जांच करें जो आप कोशिश करते हैं और उस तरह से पृष्ठ भाषा निर्धारित करते हैं। उदाहरण के लिए PHP-I18N देखें ।