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初学者头疼问题总结
Oct 09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
微信自定义分享php代码分析
Nov 24 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
PHP关于foreach复制知识点总结
Jan 28 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 04 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简介
2006/10/09 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
javascript中this关键字详解
2016/12/12 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
高中三年学习生活的自我评价
2013/10/10 职场文书
大学生蛋糕店创业计划书
2014/01/13 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
课程改革实施方案
2014/03/16 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
远程教育学习心得体会
2016/01/23 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
JavaScript文档对象模型DOM
2021/11/20 Javascript
spring boot实现文件上传
2022/08/14 Java/Android