J5_10多語言
多語言
/Public/console/common/language/sel_lang.jtbc
增加節(jié)點
不同語言不同模板
Public/common/diplomat/index.php
修改return Jtbc::take('index.index');這一句為:
$lang = intval($this -> getParam('lang'));
if(!empty($lang)) return Jtbc::take('index.index_'.$lang);
else return Jtbc::take('index.index');
然后添加對應的模板節(jié)點 index_1,默認模板依然是index不用改。
切換到英文添加分類跑到中文解決方法:
數(shù)據(jù)庫universal_category分類模塊的字段lang注釋{"required":false,"format":"int"}
改成 {"mode":"manual","required":false,"format":"int"}
{$=$take('index.banner-slogan', 'lng')}
調用當前模塊index.jtbc語言文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
默認語言是中文,怎么讓非當前語言的鏈接發(fā)給客戶能自動判斷訪問
現(xiàn)在是中文,發(fā)給客戶這個鏈接是英文的數(shù)據(jù),中文是沒有這個數(shù)據(jù)會報錯。
/Public/product/common/diplomat/index.php文件
1、第3行增加
use Jtbc\Env;
2、第77行$model -> where -> lang = $lang;前面加//屏蔽掉
//$model -> where -> lang = $lang;
3、第88行$rsTitle = strval($rs -> title);上面增加以下代碼
$res -> cookie -> set('language', Env::getLanguageByID($rs -> lang));
if($lang != $rs -> lang){
$res -> cookie -> set('language', Env::getLanguageByID($rs -> lang));
$res -> header -> set('location', './?type=detail&id=' . $id);
}
另外,你的多語言要注意這個文件里的語言對應關系。/Config/Env.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~