ThinkPHP支持多语言,采用的是语言文件的方式。如果你的应用涉及到多个">语言版本和国际化的支持,那么可以定义相关的语言包文件。任何字符串形式的输出,都可以定义语言常量。
启用多语言
要启用多语言功能,首先要下载多语言行为扩展(http://www.thinkphp.cn/extend/186.html),或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含多语言行为扩展了,把下载后解压到的CheckLangBehavior.class.php 文件放入ThinkPHP/Extend/Behavior(如果没有请手动创建)目录下面。然后在项目的行为配置文件(Conf/tags.php)中启用多语言行为,添加如下配置项:
return array( // 添加下面一行定义即可 'app_begin' => array('CheckLang') );
表示在app_begin标签位置执行多语言检测行为。
由于多语言默认是关闭的,我们还要在项目配置文件(Conf/config.php)中开启语言包功能:
'LANG_SWITCH_ON' => true, // 开启语言包功能
其他的多语言相关配置参数包括:
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效 'DEFAULT_LANG' => 'zh-cn', // 默认语言 'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔 'VAR_LANGUAGE' => 'l', // 默认语言切换变量
如果开启了LANG_AUTO_DETECT,表示会自动侦测当前语言,否则就采用DEFAULT_LANG的语言设置。
语言包的使用由系统自动判断当前用户的浏览器支持语言来定位,如果浏览器支持多种语言,那么取第一种支持语言。
也可以在URL地址中使用参数来切换多语言,例如:
http://localhost/Lang/index.php/?l=en-us
多语言切换采用了Cookie机制,因此会记住当前的语言选择。
多语言的切换受LANG_LIST参数控制,如果浏览器自动侦测的语言或者用户切换的语言在LANG_LIST之外则无效,系统会采用默认语言。
例如,上面的设置参数情况下,访问:
http://localhost/Lang/index.php/?l=zh-tw
由于zh-tw语言未在多语言列表中,所以将会采用115.html">简体中文zh-cn语言包。