이 기사의 예에서는 JS 다국어를 포함한 다국어 프로젝트를 빌드하기 위한 Thinkphp의 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.
프로젝트를 영어 버전으로 개발해야 하므로 다국어 프로젝트를 빌드해야 합니다.
이 프로젝트는 Thinkphp 프레임워크를 사용합니다. Thinkphp에는 여러 언어 설정이 있다는 것이 어렴풋이 기억났습니다. 도움말 매뉴얼을 살펴보고 거기에 있다는 것을 알았습니다.
Thinkphp는 app_begain을 사용하여 언어 팩을 감지하고 전환합니다. 언어 팩은 프로젝트와 관련이 있으며 아키텍처는 비교적 간단합니다. http://www.thinkphp.cn/info/188.html
설정한 후에는 URL."?l=en-us"를 사용하여 동적으로 전환하고 디버깅할 수 있는데, 이는 매우 좋습니다.
JS에서 다중 언어를 처리하기가 어렵다는 것을 알았습니다. 어쨌든 다중 언어가 항상 해당 다중 언어 js 파일을 자동으로 생성하는 것은 아닙니다. 페이지는 LANG_SET에 따라 해당 항목을 동적으로 요청합니다. 다국어 파일의 경우 기본 Action 클래스의 _initialize() 메서드에서 다음 생성 함수를 호출합니다.
공용 함수 _generateJsLanguageFile(){
If(C("LANG_SWITCH_ON")){
$jsLangFilePath = "./Public/v2/js/lang"
$langList = L()
$jsLangFileName = $jsLangFilePath."/".LANG_SET.".js"
|
//언어 팩이 이미 존재합니다
If(is_file($jsLangFileName)){
반품
~
$str = "var $LANG={";
$total = 개수($langList);
$k = 1;
foreach ($langList as $key => $value) {
$str .=$key.":'".$value."'";
If($k < $total){
$str .=",";
}
// $str .="rn";
}
If(!emptyempty($str)){
$str .= "}";
$file_handel = fopen($jsLangFileName, "w ");//파일 열기, 다시 쓰기 모드
fwrite($file_handel, $str);
fclose($file_handel);
}
}
}
이러한 방식으로 각 방문 전에 현재 언어 패키지가 생성된 다음 Tpl 내에서 호출됩니다.
이렇게 하면 매번 자동으로 로드됩니다. 이 js는 영구적으로 캐시됩니다. 언어 패키지에 변경 사항이 있는 경우 Thinkphp 언어 패키지만 수정한 다음 이전 js 언어 패키지를 삭제하고 그대로 두시면 됩니다. 자동으로 재생성됩니다.
js에서는 다음과 같이 사용할 수 있습니다. top10_title = $LANG._NEW_LANGUAGE 이렇게 하면 전체 프로젝트가 이중 언어로 구성되며 한 곳에서 구성할 수 있습니다.
이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.