2017-10-04 68 views
1

我的網站正在使用2種語言。muib語言網站

我爲此目的使用了會話。當用戶點擊語言圖標時,語言會發生變化並且一切正常,但是當網站第一次打開而未選擇語言時,默認語言不會被加載,並且不會顯示文字。

這是我language.inc.php文件

<?php 
 
session_start(); 
 
$langForSelection = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en'; //default to english language 
 
if(isset($_GET['langSelect'])){ 
 
    //allow only 2 for now (english/turkish) 
 
    $langForSelection = ""; 
 
    switch($_GET['langSelect']){ 
 
     case 'en': 
 
     $langForSelection = 'en'; 
 
     break; 
 
     case 'tr': 
 
     $langForSelection = 'tr'; 
 
     break; 
 
     default: 
 
     break; 
 
    } 
 
    if(isset($langForSelection)){ 
 
\t \t $langForSelection2=$_SESSION['lang']=$langForSelection; 
 
     // setcookie('lang',$langForSelection,time()+24*7*60*60);//set cookie to expire in 7 days 
 
    } 
 
}

這裏是其中的圖標用戶選擇的語言

<div><a href="?langSelect=en" title="English" id="English" class="active_lang"><img src="images/united-kingdom.png" class= "active" style="float: right; width: 24px;height:24px ;padding: 4px"> </a> 

<a href="?langSelect=tr" title="Turkish" id="Turkish"><img src="images/turkey.png" style="float: right; width: 24px;height:24px; padding: 4px"> </a> 

這裏我打印翻譯的話 這是一個例子

require_once('inc/languages.inc.php'); 
require_once('Languages/common.inc.php'); 
$langForSelection2=$_SESSION['lang']; 


    <li><a href="Logs.php?id=access" class="details" data-ajax="false"><?php echo $arrLang[$langForSelection2]['log_login']; ?></a></li> 

我的問題再次出現在網頁加載時,用戶點擊語言圖標前未出現單詞,但當他點擊語言時,單擊一切正常。

回答

0

你可以改變你的交換機默認爲英語:

switch($_GET['langSelect']){ 
    case 'en': 
    $langForSelection = 'en'; 
    break; 
    case 'tr': 
    $langForSelection = 'tr'; 
    break; 
    default: 
    $langForSelection = 'en'; 
    break; 
} 

你的問題的原因可能就是你的$_SESSIONlang價值,這是與你的期望不同,像'en-us'。如果你想知道確切的原因,你可以用新的會話重現問題,並致電var_dump($_SESSION);如果它有一個lang,那麼這就是你的問題的確切原因。

編輯:

這裏顯示的解決方案是不夠的,因爲這部分

if(isset($langForSelection)){ 
    $langForSelection2=$_SESSION['lang']=$langForSelection; 
    // setcookie('lang',$langForSelection,time()+24*7*60*60);//set cookie to expire in 7 days 
} 

if內。您需要將此移至if之外。

+0

謝謝你的回覆,但它不起作用 –

+0

@ M.Bwe是的,你有代碼處理if中的語言,也就是說,如果你沒有相應的GET參數,這個部分將不會運行。在初始負載情況下。 –

+0

我該怎麼做? –