麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 多語言配置

2024-09-09 15:20:09
字體:
來源:轉載
供稿:網友

ThinkPHP 內置了對多語言的支持,如果應用項目涉及到國際化,那么可以定義相關的語言包文件以實現多語言支持,這里涉及的多語言支持是指模板語言,數據的多語言轉換(翻譯)不在這個范疇之內.

在項目配置文件里添加如下參數以開啟多語言的支持:

  1. 'LANG_SWITCH_ON' => true, //開啟多語言支持開關 
  2. 'DEFAULT_LANG' => 'zh-cn'// 默認語言 
  3. 'LANG_AUTO_DETECT' => true, // 自動偵測語言 

ThinkPHP 會自動判斷當前用戶的瀏覽器支持語言來定位該使用何種語言包,如果找不到相關的語言包文件,會使用默認語言,如果瀏覽器支持多種語言,那么取第一種支持語言.

除了自動偵測當前用戶的瀏覽器語言之外,也可以在 URL 中指定使用何種語言,詳細見下面例子.

與多語言有關的文件包或目錄如下:

ThinkPHP系統簡體中文語言包:ThinkPHP系統目錄/Lang/zh-cn.php

ThinkPHP系統繁體中文語言包:ThinkPHP系統目錄/Lang/zh-tw.php

ThinkPHP系統美國英語語言包:ThinkPHP系統目錄/Lang/en-us.php

項目簡體中文語言包目錄:項目目錄/Lang/<項目分組/>zh-cn/

項目繁體中文語言包目錄:項目目錄/Lang/<項目分組/>zh-tw/

項目美國英語中文語言包目錄:項目目錄/Lang/<項目分組/>en-us/

如果有更多語言,可以按照例子依次創建文件或目錄即可。

項目多語言實例

下面以一個中英雙語的例子來看項目多語言支持的具體實現.

在項目目錄/Lang/zh-cn/ 下創建 common.php 文件,并在內設定簡體中文語言定義:

  1. <?php 
  2. return array
  3. 'welcome'=>'歡迎使用 ThinkPHP !'
  4. 'message'=>'這是一條測試消息!'
  5. ); 
  6. ?> 

在項目目錄/Lang/en-us/ 下創建 common.php 文件,并在內設定美國英語語言定義:

  1. <?php 
  2. return array
  3. 'welcome'=>'Welcome to ThinkPHP!'
  4. 'message'=>'This is a test message!'
  5. ); 
  6. ?> 

在操作中(如 Index 模塊 lang 操作)中:

  1. public function lang(){ 
  2. $this->assign('message', L('message')); 
  3. $this->display(); 
  4. 對應的模板(Tpl/default/Index/lang.html): 
  5. <p>{$Think.lang.welcome}</p> 
  6. <p>{$message}</p> 
  7. <p>切換到:<a href="?l=zh-cn">簡體中文</a> | <a href="?l=en-us">English</a></p> 

當我們訪問該操作時,系統會根據當前瀏覽器語言來自動獲取對應的語言包內容,上面的例子中,直接在模板中顯示的內容使用 {$Think.lang.welcome} 來輸出,而在操作中獲取語言包內容時,需要使用 L 快捷方法,當點擊 English 鏈接時,由于 URL 中傳入了 l=en-us 參數,系統會獲取對應的英語語言包,從而顯示:

Welcome to ThinkPHP!This is a test message!

L 快捷方法

L 快捷方法用于獲取和設置語言定義,語法如下:

L(name,value)

如果 name 和 value 參數都存在時,表示設定語言變量名 name=value,當 value 省略時,表示獲取 name 語言變量對應的值,若 name 未定義時,將 name 以大寫返回.

模塊定義語言包

當項目比較大時,可能需要按照模塊來定義語言包,按照模塊定義語言包時,語言包名字就是對應的模塊名字(小寫),如給 User 模塊定義語言包時,對應的語言包文件為:項目目錄/Lang/zh-cn/user.php.

對模塊定義語言包時,使用上與上面普通定義方式完全一致,當模塊語言包與普通語言包有相同的語言定義項時,模塊語言包的定義會覆蓋普通方式的定義.

項目模型里使用語言包

項目多語言支持中除了模板和模塊操作要用到語言包之外,在模型類里也可能需要用到語言包(如自動驗證的提示信息),要在項目模型里使用語言包,只需將原來寫入驗證規則的提示信息更改為:

array('title','require','{%vali_title}',1),

vali_title 是項目語言包里面定義的語言變量,如同例子上面定義 welcome 和 message 一樣,如果想測試多語言的效果,可以在表單提交的時候傳入 l 參數:

<form action="__URL__/insert/l/en-us" method="post">

注意:在提交表單里不可像前面列子使用 __URL__/insert?l=en-us 這種參數傳入形式,否則會導致“表單令牌錯誤”.

由于 ThinkPHP 具有自動檢測瀏覽器使用語言的功能,因此一般不需要在 URL 中傳入 l 參數,當然這不是絕對的,可以根據實際情況來決定.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: chinesehdxxxx无套 久久另类视频 | 视频一区二区三区视频 | av成人免费观看 | 成人国产高清 | 亚洲第一精品在线 | 激情视频在线播放 | 久久成人免费网 | 成人福利电影在线观看 | www.99热视频 | 深夜影院一级毛片 | 国产一区二区三区网站 | 亚洲国产精品500在线观看 | 手机在线看片国产 | 成人在线观看地址 | 性欧美极品xxxx欧美一区二区 | 在线免费观看精品 | 成人偷拍片视频在线观看 | 日日鲁一鲁视频 | 99视频观看| 成人毛片100部 | 亚洲精品aaaaa | 黄色伊人网站 | 国产精品久久久久永久免费 | 久久成人综合视频 | 一级毛片在线观看免费 | 羞羞的视频在线免费观看 | 特级黄色一级毛片 | 欧美人与性禽动交精品 | 久久久久久久久淑女av国产精品 | 色天天综合网 | 在线成人一区二区 | 色人阁导航 | 亚洲影院在线播放 | 国产精品久久久久久久久久妇女 | 午夜精品影院 | 国产成人高清在线观看 | 香蕉久久久 | 欧洲狠狠鲁 | 999久久国产 | 天堂精品 | 色综合欧美 |