>백엔드 개발 >PHP 튜토리얼 >Thinkphp는 JS multi-언어_php 예제를 포함한 다중 언어 프로젝트 구현 방법을 구축합니다.

Thinkphp는 JS multi-언어_php 예제를 포함한 다중 언어 프로젝트 구현 방법을 구축합니다.

WBOY
WBOY원래의
2016-05-16 20:30:231265검색

이 기사의 예에서는 JS 다국어를 포함한 다국어 프로젝트를 빌드하기 위한 Thinkphp의 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

1. 질문:

프로젝트를 영어 버전으로 개발해야 하므로 다국어 프로젝트를 빌드해야 합니다.

이 프로젝트는 Thinkphp 프레임워크를 사용합니다. Thinkphp에는 여러 언어 설정이 있다는 것이 어렴풋이 기억났습니다. 도움말 매뉴얼을 살펴보고 거기에 있다는 것을 알았습니다.

2. 구현 방법:

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 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.