Thinkphp搭建包括JS多语言的多语言项目实现方法


Posted in PHP onNovember 24, 2014

本文实例讲述了Thinkphp搭建包括JS多语言的多语言项目实现方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

项目需要开发英文版,于是需要搭建多语言项目.

项目使用Thinkphp框架,隐约记得Thinkphp有多语言设置,翻看了帮助手册,果然有,这就边实验边开始:

二、实现方法:

Thinkphp采用app_begain来检测和切换语言包,语言包和项目相关,构架等都比较简单,具体的这里:http://www.thinkphp.cn/info/188.html

搭建好了,就可以使用URL."?l=en-us"来动态切换和调试,很不错的.

这边发现js内的多语言不好处理,总不能全部assign过去,反正多语言也不会总是配置,干脆自动生成对应的多语言js文件,然后页面根据LANG_SET来动态请求对应的多语言文件,在基础Action类的_initialize()方法内调用下面的生成函数:

public function _generateJsLanguageFile(){  

        if(C("LANG_SWITCH_ON")){  

            $jsLangFilePath = "./Public/v2/js/lang";  

            $langList = L();  

            $jsLangFileName = $jsLangFilePath."/".LANG_SET.".js";  

            //@unlink($jsLangFileName);//测试,不永久缓存语言包  

            //已存在语言包  

            if(is_file($jsLangFileName)){  

                return;  

            }  

            $str = "var \$LANG={";

            $total = count($langList);

            $k = 1;

            foreach ($langList as $key => $value) {

                $str .=$key.":'".$value."'";

                if($k < $total){

                    $str .=",";

                }

                // $str .="\r\n";

                $k++;

            }

            if(!emptyempty($str)){

                $str .= "}";

                $file_handel = fopen($jsLangFileName, "w+");//打开文件,重写模式

                fwrite($file_handel, $str);

                fclose($file_handel);

            }

        }

}

这样,每次访问前都会生成当前的语言包,然后在Tpl内调用.

这样,每次都会自动载入,这个js是永久缓存的,如果有语言包的更改,只需要修改Thinkphp的语言包,然后删除旧的js语言包,让他自动重新生成.

js内就可以这么使用:top10_title = $LANG._NEW_LANGUAGE;这样整个项目就等于是双语的,并且是一处配置即可.

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
几个学习PHP的网址
Nov 25 PHP
php数组总结篇(一)
Sep 30 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
thinkPHP分页功能实例详解
May 05 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
Aug 30 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 #PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 #PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 #PHP
thinkphp循环结构用法实例
Nov 24 #PHP
thinkphp特殊标签用法概述
Nov 24 #PHP
PHP中mysql_field_type()函数用法
Nov 24 #PHP
thinkphp模板输出技巧汇总
Nov 24 #PHP
You might like
thinkphp学习笔记之多表查询
2014/07/28 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
php 常用的系统函数
2017/02/07 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
zookeeper python接口实例详解
2018/01/18 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python字典底层实现原理详解
2019/12/18 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
经典大学生求职信范文
2014/01/06 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
金融管理应届生求职信
2014/02/20 职场文书
工程采购员岗位职责
2014/03/09 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
办理护照工作证明
2014/10/10 职场文书
实习指导教师评语
2014/12/30 职场文书
Python中的tkinter库简单案例详解
2022/01/22 Python