首頁 後端開發 php教程 thinkphp实现多语言功能(语言包)_php实例

thinkphp实现多语言功能(语言包)_php实例

Jun 07, 2016 pm 05:21 PM
thinkphp 多語言 語言包

1.在Home(你取的项目名)的config.php中添加如下配置

复制代码 代码如下:

return array(
    //'配置项'=>'配置值'
        'LANG_SWITCH_ON'     =>     true,    //开启语言包功能       
        'LANG_AUTO_DETECT'     =>     true, // 自动侦测语言
        'DEFAULT_LANG'         =>     'zh-cn', // 默认语言       
        'LANG_LIST'            =>    'en-us,zh-cn,zh-tw', //必须写可允许的语言列表
        'VAR_LANGUAGE'     => 'l', // 默认语言切换变量
);
?>

2.Home的conf文件夹里添加一个php文件(tag.php),添加如下代码:

复制代码 代码如下:

return array(
    // 添加下面一行定义即可
    'app_begin' => array('CheckLang')
);

3.把Extend/Behavior/CheckLangBehavior.class.php 文件复制到Home/lib/Behavior/中(完整版的thinkphp包才有,没有的话请自行创建)

CheckLangBehavior.class.php代码:

复制代码 代码如下:

defined('THINK_PATH') or exit();
/**
 * 语言检测 并自动加载语言包
 * @category   Extend
 * @package  Extend
 * @subpackage  Behavior
 */
class CheckLangBehavior extends Behavior {
    // 行为参数定义(默认值) 可在项目配置中覆盖
    protected $options   =  array(
            'LANG_SWITCH_ON'        => false,   // 默认关闭语言包功能
            'LANG_AUTO_DETECT'      => true,   // 自动侦测语言 开启多语言功能后有效
            'LANG_LIST'             => 'zh-cn', // 允许切换的语言列表 用逗号分隔
            'VAR_LANGUAGE'          => 'l',        // 默认语言切换变量
        );

    // 行为扩展的执行入口必须是run
    public function run(&$params){
        // 开启静态缓存
        $this->checkLanguage();
    }

    /**
     * 语言检查
     * 检查浏览器支持语言,并自动加载语言包
     * @access private
     * @return void
     */
    private function checkLanguage() {
        // 不开启语言包功能,仅仅加载框架语言文件直接返回
        if (!C('LANG_SWITCH_ON')){
            return;
        }
        $langSet = C('DEFAULT_LANG');
        // 启用了语言包功能
        // 根据是否启用自动侦测设置获取语言选择
        if (C('LANG_AUTO_DETECT')){
            if(isset($_GET[C('VAR_LANGUAGE')])){
                $langSet = $_GET[C('VAR_LANGUAGE')];// url中设置了语言变量
                cookie('think_language',$langSet,3600);
            }elseif(cookie('think_language')){// 获取上次用户的选择
                $langSet = cookie('think_language');
            }elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){// 自动侦测浏览器语言
                preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
                $langSet = $matches[1];
                cookie('think_language',$langSet,3600);
            }
            if(false === stripos(C('LANG_LIST'),$langSet)) { // 非法语言参数
                $langSet = C('DEFAULT_LANG');
            }
        }
        // 定义当前语言
        define('LANG_SET',strtolower($langSet));

        $group = '';
        $path    =   (defined('GROUP_NAME') && C('APP_GROUP_MODE')==1) ? BASE_LIB_PATH.'Lang/'.LANG_SET.'/' : LANG_PATH.LANG_SET.'/';
        // 读取项目公共语言包
        if(is_file(LANG_PATH.LANG_SET.'/common.php'))
            L(include LANG_PATH.LANG_SET.'/common.php');    
        // 读取分组公共语言包
        if(defined('GROUP_NAME')){
            if(C('APP_GROUP_MODE')==1){ // 独立分组
                $file = $path.'common.php';
            }else{ // 普通分组
                $file = $path.GROUP_NAME.'.php';
                $group = GROUP_NAME.C('TMPL_FILE_DEPR');
            }
            if(is_file($file))
                L(include $file);
        }
        // 读取当前模块语言包
        if (is_file($path.$group.strtolower(MODULE_NAME).'.php'))
            L(include $path.$group.strtolower(MODULE_NAME).'.php');
    }
}

4.在Home里的lang文件夹下创建3个语言文件夹。分别是zh-cn  en-us  zh-tw,

在这三个文件夹里各创建一个common.php文件,如图:

在common.php 里对应写上

复制代码 代码如下:

return array(
        'welcome'=>'Welcome to use thinkphp',
);
?>

复制代码 代码如下:

return array(
    'welcome'=>'欢迎使用ThinkPHP',
);
?>

复制代码 代码如下:

return array(
    'welcome'=>'歡迎使用ThinkPHP',
);
?>

5.在tpl/Index/文件夹下创建视图 index.html

复制代码 代码如下:



 
 
  ThinkPHP示例:多语言
 
 
 

切换语言:简体中文 | 繁体中文 | 英文

 
{$Think.lang.welcome}


 

大功告成!

后台语言要进行语言切换的话, 在每句话之前加L,如:

复制代码 代码如下:

public function index(){
print  L('add_user_error');  //add_user_error只是语言变量,具体的语言要到语言包里写
$this->display();
}

这一点我觉得cakephp做的就比较好,不需要给每句话都给予一个变量。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

針對Win11無法安裝中文語言包的解決方案 針對Win11無法安裝中文語言包的解決方案 Mar 09, 2024 am 09:15 AM

Win11是微軟推出的最新作業系統,相較於先前的版本,Win11在介面設計和使用者體驗上有了很大的提升。然而,一些用戶反映他們在安裝Win11後遇到了無法安裝中文語言套件的問題,這就給他們在系統中使用中文帶來了困擾。本文將針對Win11無法安裝中文語言套件的問題提供一些解決方案,幫助使用者順利使用中文。首先,我們要明白為什麼無法安裝中文語言包。一般來說,Win11

Win11無法安裝中文語言套件的因應策略 Win11無法安裝中文語言套件的因應策略 Mar 08, 2024 am 11:51 AM

Win11無法安裝中文語言套件的因應策略隨著Windows11的推出,許多使用者迫不及待地想要升級到這個全新的作業系統。然而,一些用戶在嘗試安裝中文語言套件時遇到了困難,導致他們無法正常使用中文介面。在這篇文章中,我們將討論Win11無法安裝中文語言套件的問題,並提出一些應對策略。首先,讓我們探討為什麼在Win11上安裝中文語言包會出現問題。這可能是由於系統的

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

win10系統怎麼刪除已安裝語言包 win10系統怎麼刪除已安裝語言包 Jan 06, 2024 pm 10:37 PM

我們在使用win10作業系統的時候,有些情況下可能會需要將系統中的語言包進行刪除操作。這時候只要先找到語言選項,然後選擇新增語言包,在這個過程中將準備刪除的語言包勾選取消然後刪除即可。 win10系統怎麼刪除已安裝語言包:1、使用win+i開啟設置,找到時間和語言選項。 2、在時間和語言選項中選擇「語言」選項。 3、選擇「新增語言」下一步4、在新增語言時取消勾選語言包,等待新增完成後可以單獨下載語言包和語音包;

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

laravel和thinkphp哪個好 laravel和thinkphp哪個好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的效能比較:ThinkPHP 效能通常優於 Laravel,專注於最佳化和快取。 Laravel 性能良好,但對於複雜應用程序,ThinkPHP 可能更適合。

win7語言包存放的位置在哪裡? win7語言包存放的位置在哪裡? Jan 16, 2024 pm 03:06 PM

如果我們的電腦安裝的是win7作業系統,想要更換自己的語言套件或是對其進行相關修改的話,我們首先需要找到電腦語言欄的資料夾所在位置。但是對於語言欄資料夾位置在哪裡還有很多人不知道。據小編所知我們可以在系統的fonts資料夾中進行相關的修改即可。詳細步驟就來看下小編是怎麼做的吧~win7語言包在哪個資料夾1、開啟開始選單,找到控制面板,並點選進入。 2.在跳轉的控制面板介面中,找到時鐘、語言和區域選項,並點選進入。 3.在跳轉的介面中,點選安裝或解除安裝顯示語言選項。 4.在跳轉的介面中,點選安裝顯示語言選

See all articles