thinkphp5.0中英文切換


首先來看下它的配置:

// 是否開啟多語言
'lang_switch_on' => true,

//語音列表
'lang_list' => ['zh-cn','en-us'],

// 獲取當前選擇語言的方法類

GetLang.php

<?php
namespace app\index\controller;
use think\Cookie;
use think\Lang;
use think\Request;
class GetLang{
  public function get_lang(){
    $lang = null;
    if(input('?lang')){
      $lang = input('lang');
    }
    if($lang==null){
      if(Cookie::has('think_var')){
        $lang = Cookie::get('think_var');
      }else{
        $lang = 'zh-cn';
      }
    }
    $lang = Lang::range($lang);//設定當前語言
    Lang::load(APP_PATH.DS.'index'.DS.'lang'.DS.$lang.EXT,$lang);//加載當前語言包
    Cookie::set('think_var',$lang);
    return $lang;
  }
}
?>

  

// 顯示效果的控制器類

Index.php

<?php
namespace app\index\controller;
use think\Controller; 
class Index extends Controller 
{
  public function index(){
    $lang = new \app\index\controller\GetLang;
    $now_lang = $lang->get_lang();//獲取當前語言
    if($now_lang=='zh-cn'){
      $now_lang='en-us';
    }elseif($now_lang=='en-us'){
      $now_lang='zh-cn';
    } 
    $this->assign('set_lang',$now_lang);
    return $this->fetch();
  }
}
?>

  

// 視圖頁

index.html

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>{:lang('TITLE')}</title>
  </head>
  <body>
    <a href="?lang={$set_lang}">{:lang('NOW_LANG')}</a>    
  </body>
</html>

  

//語言包文件

zh-cn.php

<?php
return [
  'TITLE'=>'語言切換',
  'NOW_LANG'=>'切換',
]
?>

  

en-us.php

<?php
return [
  'TITLE'=>'Language switching',
  'NOW_LANG'=>'Switch',
];
?>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM