TP多语言

来源:互联网 发布:js return 多个值 编辑:程序博客网 时间:2024/05/19 23:14

一、行为扩展

多语言:同样的内容,由于在不同的地区我们显示不同的翻译结果

总结一下:ThinpPHP给我们提供了哪些扩展

1,给我们封装好的功能类:Image.class.php   UploadFile.class.php

2,驱动扩展类:类似于smarty, assign display驱动扩展类,

行为扩展:CBD  Core  +  Behavior  + Driver

行为:在那些时刻需要执行哪些动作,这些动作就称之为行为,时刻就称之为标签

所以我们还可以理解成在哪些标签上,执行哪些行为()

当我们打开index.php的时候:做了哪些动作?

定义常量   加载ThinkPHP.php 

反映到代码中,是如何实现的?

1),在我们的项目配置文件目录中,创建一个标签配置文件(在某个时刻点执行哪些动作)

2)要想实现多语言,我们首先要保证在项目中存在词库(不同的文字的翻译结果)

那么这些词库(翻译结果保存到哪里呢?)

保存到项目的Lang目录下面

Lang语言包分为多个子目录,例如中文  zh-cn存在一个zh-cn的目录,在这个子目录里面写的是翻译的结果,便于管理

 

3)词库也有了,我们如何在控制器层和视图层使用:

 控制器使用:L(‘变量名‘)

 在视图层使用:

4)要想使用翻译的结果,需要先在配置文件中开启语言检测的功能

如何开启:

5)快捷方式,用来告诉系统采用的是哪个语言包

 

在视图层中,如何使用翻译的结果

 1,可以采用  {:L()}

     2,使用ThinkPHP系统变量来表示:

$Think.lang.变量名称

例:

1、在D:\wamp\www\Think_php\App\Conf中创建tags.php文件写上

<?php

return array(

   //时刻点=》执行的动作

   'app_begin'=>array('CheckLang'),

);

?>

2、在config.php中写上

/*开启语言检查功能*/

         'LANG_SWITCH_ON'  =>true,//开启语言检测

         'LANG_LIST'    =>'zh-cn,en-us',

3、在D:\wamp\www\Think_php\App\Lang中创建文件夹en-us英文,zh-cn中文,en-us中新建文件common.php写上

<?php

return array(

'welcome'=>'welcome to china',

'message'=>'This is a test message',

)

?>

zh-cn中创建common.php写上

<?php

return array(

'welcome'=>'欢迎来到中国',

'message'=>'这是一条测试信息',

)

?>

4、在LangActino.class.php

public function show(){

//echo L('welcome');

$this->display();

}

show.html中写

<a href="?l=zh-cn">简体中文</a>

<a href="?l=en-us">English</a>

{:L('welcome')}<br />

<!--{$Think.lang.welcome}-->

 

{:L('message')}<br />

<!--{$Think.lang.message}-->s

 

 

 

原创粉丝点击