2014-06-09 2 views
1

오늘은 내 사이트의 다국어 시스템을 만드는 데 착수했습니다.다국어 사이트 만들기

link

내가 단순 링크 나 홈 페이지에있어

<p><a href="index.php?lang=en">English</a><a href="index.php?lang=fr">Français</a></p> 

을 만든 파일을 호출하려면 : 수행하려면 그래서 난 내 두 언어 파일이 여기에 아래 내 스위치를 생성 생성 나는 잘하는 "영어"번역을 클릭하지만 내가 영어로 남아 있어야 할 때 나는 나의 사이트에 대한 다른 링크를 클릭하면 나는 자동적으로 프랑스어로 되돌아 간다!

이 문제를 어떻게 해결할 수 있습니까?

+0

선택한 언어를 저장하는 세션? –

+0

내 영어로 죄송합니다 – tatane

+0

즉? – tatane

답변

0

문제는 언어에 대한 GET 변수를 항상 읽었으며 누락 된 경우 기본 변수 (프랑스어)로 다시 전환하여 세션 변수에 저장할 수 있다는 것입니다.

당신은 모든 링크에 ?lang=XX을 추가하고 $ _SESSION을 제거하거나 세션 변수 사용하기 위해서는 다음과 같은 변경해야한다 중 하나

}else { 
$_SESSION['lang'] = 'fr'; 
include('french.php'); 
$langage=$_SESSION['lang']; 
} 

에 :

}else { 
    if(isset($_SESSION['lang'])){ 
     if($_SESSION['lang'] == 'fr'){ 
      include('french.php'); 
     }else{ 
      include('english.php'); 
     } 
    }else{ 
     $_SESSION['lang'] = 'fr'; 
     include('french.php'); 
     $langage=$_SESSION['lang']; 
    } 
} 

을 그렇게하면 언어 변경이 요청되지 않으면 기본 언어로 전환하기 전에 스크립트에 저장된 언어 변수가 있는지 확인합니다.

2 개 이상의 언어를 사용하는 경우 이상적으로 IF 대신 대/소문자를 사용해야합니다.

}else { 
    switch($_SESSION['lang']){ 
     case 'en': 
      include('english.php'); 
      break; 
     case 'es': 
      include('spanish.php'); 
      break; 
     //insert other language cases here 
     default: 
      include('french.php'); 
      break; 
    } 
} 

제 조언은 세 번째 옵션입니다. 많은 사이트는 각 언어에 대해 별도의 디렉토리를 가지고 있으며 기본 언어는 www.domainname.ext/이고 다른 언어는 www.domainname.ext/xx/입니다. 여기서 xx는 언어의 약어입니다 (영어는 en 등)