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同时支持GIF、png、JPEG
Oct 09 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
php存储过程调用实例代码
Feb 03 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
thinkPHP5.1框架中Request类四种调用方式示例
Aug 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.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python实现截屏的函数
2015/07/26 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python中正则表达式的用法总结
2019/02/22 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
装修设计师求职信
2014/02/26 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
工作检讨书范文
2015/01/23 职场文书
整改通知书格式
2015/04/22 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL