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 不同编码下的字符串长度区分
Sep 26 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
php 过滤器实现代码
Aug 09 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
百度实时推送api接口应用示例
Oct 21 PHP
PHP加密解密实例分析
Dec 25 PHP
分享php邮件管理器源码
Jan 06 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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调用Google translate_tts api实现代码
2013/08/07 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
python通过socket查询whois的方法
2015/07/18 Python
在Python中移动目录结构的方法
2016/01/31 Python
怎样使用Python脚本日志功能
2016/08/14 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python实现学生信息管理系统
2020/04/05 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
高三体育教学反思
2014/01/29 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android