《PHP編程:Thinkphp搭建包括JS多語言的多語言項目實現方法》要點:
本文介紹了PHP編程:Thinkphp搭建包括JS多語言的多語言項目實現方法,希望對您有用。如果有疑問,可以聯系我們。
PHP應用本文實例講述了Thinkphp搭建包括JS多語言的多語言項目實現辦法.分享給大家供大家參考.具體實現辦法如下:
PHP應用一、問題:
PHP應用項目需要開發英文版,于是需要搭建多語言項目.
PHP應用項目使用Thinkphp框架,隱約記得Thinkphp有多語言設置,翻看了贊助手冊,果然有,這就邊實驗邊開始:
PHP應用二、實現辦法:
PHP應用Thinkphp采用app_begain來檢測和切換語言包,語言包和項目相關,構架等都比較簡單,具體的這里:http://www.thinkphp.cn/info/188.html
PHP應用搭建好了,就可以使用URL."?l=en-us"來動態切換和調試,很不錯的.
PHP應用這邊發現js內的多語言不好處理,總不能全部assign過去,反正多語言也不會總是配置,干脆自動生成對應的多語言js文件,然后頁面根據LANG_SET來動態哀求對應的多語言文件,在基礎Action類的_initialize()方法內調用下面的生成函數:
代碼如下:
public function _generateJsLanguageFile(){?
??????? if(C("LANG_SWITCH_ON")){?
??????????? $jsLangFilePath = "./Public/v2/js/lang";?
??????????? $langList = L();?
??????????? $jsLangFileName = $jsLangFilePath."/".LANG_SET.".js";?
???????????
//@unlink($jsLangFileName);//測試,不永久緩存語言包?
??????????? //已存在語言包?
??????????? if(is_file($jsLangFileName)){?
??????????????? return;?
??????????? }?
??????????? $str = "var \$LANG={";
??????????? $total = count($langList);
??????????? $k = 1;
??????????? foreach ($langList as $key => $value) {
??????????????? $str .=$key.":'".$value."'";
??????????????? if($k < $total){
??????????????????? $str .=",";
??????????????? }
??????????????? // $str .="\r\n";
??????????????? $k++;
??????????? }
??????????? if(!emptyempty($str)){
??????????????? $str .= "}";
??????????????? $file_handel = fopen($jsLangFileName, "w+");//打開文件,重寫模式
??????????????? fwrite($file_handel, $str);
??????????????? fclose($file_handel);
??????????? }
??????? }
}
這樣,每次拜訪前都會生成當前的語言包,然后在Tpl內調用.
PHP應用這樣,每次都會自動載入,這個js是永久緩存的,如果有語言包的更改,只需要修改Thinkphp的語言包,然后刪除舊的js語言包,讓他自動重新生成.
PHP應用js內就可以這么使用:top10_title = $LANG._NEW_LANGUAGE;這樣整個項目就等于是雙語的,并且是一處配置即可.
PHP應用希望本文所述對大家的ThinkPHP框架程序設計有所贊助.
歡迎參與《PHP編程:Thinkphp搭建包括JS多語言的多語言項目實現方法》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/13821.html