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中使用Oracle数据库(1)
Oct 09 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
Symfony2 session用法实例分析
Feb 04 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP生成二维码的两个方法和实例
2014/07/01 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
Python生成随机MAC地址
2015/03/10 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
大学校运会广播稿
2014/02/03 职场文书
清扬洗发水广告词
2014/03/14 职场文书
职工代表大会主持词
2014/04/01 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
主题实践活动总结
2014/05/08 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
初中体育教学随笔
2015/08/15 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
公开致歉信
2019/06/24 职场文书
人生感悟经典句子
2019/08/20 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
Python实现拼音转换
2021/06/07 Python