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 相关文章推荐
PHP自动更新新闻DIY
Oct 09 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
php制作动态随机验证码
Feb 12 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
PHP addslashes()函数讲解
Feb 03 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
php在线打包程序源码
2008/07/27 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
Javascript this 的一些学习总结
2012/08/02 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
分析Python读取文件时的路径问题
2018/02/11 Python
pandas object格式转float64格式的方法
2018/04/10 Python
Python实现搜索算法的实例代码
2020/01/02 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
英国健身超市:Fitness Superstore
2019/06/17 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
全国税务系统先进集体事迹材料
2014/05/19 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
农业生产宣传标语
2014/10/08 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书