当前日期时间
当前时间:
网站标志
Logo
全站搜索
广告位
phpweb图片广告
广告位
phpweb图片广告
自定内容

phpweb已经是国内最强的的开源电子商务系统了,但并非完美,因为任何...

互联网3年一轮回,京东凡客等电商品牌在三年之前也不过是小打小闹,而如...

电商已经成为趋势,传统行业的竞争已经逐渐演变到网络上,也有不少用Weboss...

phpweb系统是固定的模式,适用于大部分行业与需求。但有一些行业还是有自己...

当前位置
文章正文

Thinkphp5增加语言包进行多语言切换?

发表:管理员  发表时间:2020-09-02 17:35:51   阅读:(3763)次  

Thinkphp5增加语言包进行多语言切换?

这里以Thinkphp5.0.5举例,5.x版本大同小异。

以登录模块为例子,涉及到修改的页面如下:

1、/application/config.php

image.png

查看是否存在以下配置,如果没有,就自己复制添加进去。

// 是否开启多语言功能

 'lang_switch_on'         => true,

// 多语言包列表(可以自己添加多个,可自定义根据语言包文件同名)

'lang_list' => ['zh-cn','en-us','id-id'],

// 打开站点默认调用的语言包

'default_lang'           => 'zh-cn',

2、/application/index/view/head.html(这里我直接添加到了统一的头部)

image.png

添加前端切换代码:

  <div style="color:#FFF;width:100%;height:20px;padding-right:20px;;padding-top:10px;">

  <span style="color:#FFF;display:block;float:right;" ><img  alt="" src="/img/indonesian.jpg" style="width:16px;vertical-align:middle;" ></span>

  <span style="color:#FFF;display:block;float:right;width:25px" ><img  alt="" src="/img/eng.png" style="width:16px;vertical-align:middle;" ></span>

  </div>

 <script>

    $('.btnClick').click(function(){

        var data={'lang':$(this).attr('lang')};

        $.get("{:url('Index/lang')}",data,function(){

            location.reload();  //重新加载下语言包   

        })

    })

</script>

3、/application/index/controller/ 中对应的php控制器也要对应添加一下;

假如你的是登录页面,那就是login.php

image.png

代码如下:

    public function lang()

    {

        switch ($_GET['lang']) {

            case 'cn':

                cookie('think_var', 'zh-cn');

                break;

            case 'en':

                cookie('think_var', 'en-us');

                break;

        }

    }

4、/application/lang/ 增加语言包,以英文语言包en-us.php 为例

return array(

    // 添加下面一行定义即可

 'dlzx'   => 'Login center', //中文意思是登录中心,这里自己

 'dlcg'   => 'Login successful!',

  );

5、需要去前端对应html 里面将 对应变量进行替换,以/application/index/view/login/login.html 为例

image.png

{$Think.lang.dlzx} 这个变量中的dlzx就是语言包中的 dlzx;


6、/application/index/controller/控制器中的文字怎么改为变量调用?

以/application/index/controller/Login.php为例

image.png

hinkLang::get('dlcg') 变量中的dlcg 就是对应语言包中的 dlcg。

到这里就整个流程结束了,最大的工作量在于对整个输出的文字的变量替换,一个页面可能十几二十个变量,搬砖工作是蛮大的。

 

假如我们资讯/文章对您有所帮助,您可以通过扫描捐赠二维码支持一下我们~

感谢您对我们的支持,您的小小支持让我们有信心走得更远!

脚注信息
© 2005-2015 草莓互联(100cm.cn) 广州同福信息科技有限公司 版权所有,并保留所有权利。

广州市东莞庄一横路116号 粤ICP备11046216号

经营性网站备案信息 广州网络警察报警平台 不良信息举报中心  百度信誉档案 广州工商红盾网 可信网站认证