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 根据IP地址控制访问的代码
Apr 22 PHP
PHP开发负载均衡指南
Jul 17 PHP
php 短链接算法收集与分析
Dec 30 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
PHP CURL中传递cookie的方法步骤
May 09 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存储过程调用实例代码
2013/02/03 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python 不同对象比较大小示例探讨
2014/08/21 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python实现远程控制电脑
2019/05/23 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
如何真正的了解python装饰器
2020/08/14 Python
Python和Bash结合在一起的方法
2020/11/13 Python
python中xlrd模块的使用详解
2021/02/01 Python
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
医学生求职自荐信
2013/10/25 职场文书
自我评价优秀范文分享
2013/11/30 职场文书
小学生评语集锦
2014/04/18 职场文书
酒店管理求职信
2014/06/09 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS