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 相关文章推荐
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
php 自定义错误日志实例详解
Nov 12 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
用php定义一个数组最简单的方法
Oct 04 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 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中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PDO实现学生管理系统
2020/03/21 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Python join()函数原理及使用方法
2020/11/14 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
企业安全标语
2014/06/07 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
日元符号 ¥
2022/02/17 杂记
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫