多语言设置

一. 系统信息
ThinkPHP 内置多语言支持,如果涉及到国际化的支持,那么可以定义相关的语言包文
件。任何字符串形式的输出,都可以定义语言常量。
要启用多语言功能,需要配置开启多语言行为,在应用配置目录中:

1 //在应用模块 Weibo 下 Common/Conf 建立 tags.php
2  return  array(
3 ‘app_begin‘=> array(‘Behavior\CheckLangBehavior‘),
4 );

PS:这个行为主要是检测多语言功能。

在 WeiBo/Common/Conf/config.php 中进行语言配置:

1 //开启语言包功能
2 ‘LANG_SWITCH_ON‘ =>  true,
3 //自动侦测语言 开启多语言功能后有效
4 ‘LANG_AUTO_DETECT‘ =>  true,
5 //允许切换的语言列表 用逗号分隔
6 ‘LANG_LIST‘ => ‘zh-cn,en-us‘,
7 //默认语言切换变量
8 ‘VAR_LANGUAGE‘ => ‘lang‘,

这时我们开始检测,首先在 WeiBo/Home/Controller/UserController.class.php 中是没有 test 的:

 1 <?php
 2
 3 namespace Home\Controller;
 4 use Think\Controller;
 5
 6 class UserController extends Controller {
 7     public function index() {
 8
 9     }
10  }

然后我们在浏览器的地址栏中输入: http://localhost/demo39/user/test?lang=en-us ,出现的为:

这时我们改地址栏为: http://localhost/demo39/user/test ,这时出现的还是上面的英文显示信息,

这时因为这时输出的错误信息是保存在cookie里面的,我们把地址栏改为: http://localhost/demo39/user/test?lang=zh-cn

这时显示就为中文了:

ThinkPHP 系统提供了三个默认语言包,分别是简体中文、英文、繁体中文。而这三种
语言包保存在:Think\Lang 下。

我们想显示系统提示信息,可以通过 L()方法来传入多语言变量。

在 WeiBo/Home/Controller/UserController.class.php 中写入代码:

1 //设置语言定义的键值对
2 L(‘name‘, ‘Lee‘);
3  echo L(‘name‘);

这时可输出: Lee ;

1 public function index() {
2         echo L(‘_MODULE_NOT_EXIST_‘);
3     }

这是在 WeiBo/Home/Controller/UserController.class.php 中新建函数:

1 public function lang() {
2         setcookie(‘think_language‘,‘zh-cn‘);
3     }

然后在浏览器地址栏输入 http://localhost/demo39/user/lang 对lang函数编译,然后在 http://localhost/demo39/user/ 中

对index函数编译一次,会输出: 无法加载模块 ,这时改变 setcookie(‘think_language‘,‘en-us‘);

这时再编译lang函数后再编译index函数,则输出: Module can‘t be loaded

如果配置好多语言,会自动生成一个 think_language 的 cookie,默认的值是 zh-cn,
我们在开发网站的时候,一旦遇到错误,显示中文提示的错误信息。
如果想显示其它的的语言包,那么可以采用 URL 的方式来切换:
http://localhost/demo39/User/?lang=en-us

二.应用信息

除了系统开发信息的语言包,我们用的更多的是项目应用中的语言定义切换。比如,一
个表单支持中英文双语结构。
除了以上的配置外,实现应用信息中英文切换需要在应用目录进行配置。
第一步:在 Home 目录下建立 Lang 目录;
第二步:分别建立 zh-cn.php 和 en-us.php 两个文件;
第三步:分别在两个语言包编写语言常量

在 zh-cn.php  中的代码:

1 <?php
2 return array(
3     ‘form_user‘=>‘用户‘,
4     ‘form_pass‘=>‘密码‘,
5     ‘form_email‘=>‘邮箱‘,
6     ‘form_submit‘=>‘提交‘,
7 );

在 en-us.php  中的代码:

1 <?php
2 return array(
3     ‘form_user‘=>‘user‘,
4     ‘form_pass‘=>‘pass‘,
5     ‘form_email‘=>‘email‘,
6     ‘form_submit‘=>‘submit‘,
7 );

然后在 WeiBo/Home/View/User/index.html 的代码为:

1 <form >
2 <p>{$Think.lang.form_user}:<input type="text" name="user" /></p>
3 <p>{$Think.lang.form_pass}:<input type="password" name="pass" /></p>
4 <p>{$Think.lang.form_email}:<input type="text" name="email" /></p>
5 <p><input type="submit" value="{$Think.lang.form_submit}" /></p>
6 </form>

在浏览器地址栏输入: http://localhost/demo39/user/index?lang=en-us ,则显示为:

在浏览器中输入: http://localhost/demo39/user/index?lang=zh-cn ,则显示为:

该功能可用来改变网页显示中文还是英文界面

时间: 2024-10-11 20:40:15

多语言设置的相关文章

yii2多语言设置

yii2的多语言切换功能 1.页面添加语言切换按钮,如下图: 代码如下: <ul>       <li>           <a href="javascript:;" onclick="changeLanguage('en_US');">               <span><?php echo \Yii::t('app','English')?></span>           &l

jquery.datatables中文语言设置

/* * sErrMode * 错误信息显示方式 * 分别为alert和throw,默认为alert */ "sErrMode": "throw", /* * sDom * 布局方式,可以自定义,布局项,也可以调换布局顺序 * 详解: * <> 表示一个闭合的div 例如:<> = <div></div> * <"类名称"> 表示一个class="类名称"的闭合的di

VS2012+C语言+设置程序开机自动启动+示例

#include <stdio.h> #include <windows.h> #include <stdlib.h> char* ReplaceString(const char *srcStr, const char *src, const char *dest) //替换字符串,获得文件路径 { char *ptr; int len = strlen(srcStr); ptr = (char*)malloc(sizeof(char)*len+1); strcpy(

笑男手札:SharePoint 2013到底显示什么语言(多语言设置)

SharePoint 2013可以安装多语言包,不过在客户端显示的是何种语言,其实是一个挺耐人回味的问题. SharePoint 2013显示的语言,由安装的语言包.网站的语言设置以及客户端IE的语言设置共同生效.(多么的让人崩溃) 测试结果: 浏览器 SharePoint 页面语言 安装语言 可替换 EN CN / CN CN EN / EN EN EN CN EN CN EN CN CN EN CN EN EN CN CN EN CN 可以参考上面表格:例如, 浏览器设置为英语,ShareP

(转)firefox火狐浏览器语言设置

一.自动安装法: 在mozilla的FTP上找到的:http://ftp.mozilla.org/ 选择版本和对应操作系统http://releases.mozilla.org/pub/mozilla.org/firefox/releases/ ,语言包在xpi目录下,自己找,简体(zh-CN.xpi)/ 繁体(zh-TW.xpi) 好像不同操作系统对应的语言包也没什么区别,个人测试,通用.还是你自己决定吧. 点击下面链接可直接安装(简体中文): 最新版(latest/ ): Linux:htt

Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解

博文说明[前言]: 本文将通过个人口吻介绍Linux字符集和系统语言设置,包括LANG,locale,LC_ALL,POSIX等命令及参数详解的相关知识,在目前时间点[2017年6月21号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 本文参考文献引用链接: 1.http://blog.csdn.net/z4213489/article/details/7937894[好文,必看]

Debian 系统修改语言设置成英文

Debian 系统修改语言设置成英文 2012 年 6 月 19 日 / 东东东 / 3条评论 今天安装了一个Debian的虚拟机,安装的时候本来想选英语的,但是时区只能用美国的时区,于是就换上了中文的,没有提示选择时区. 发现在shell中文还是乱码,于是毅然的把语言更改成英语的.打开文件locale sudo vi /etc/default/locale 显示 LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" 将其内容更改成 LANG

桌面支持--outlook默认中文语言设置

outlook默认中文语言设置

CSLA多语言设置

1.在程序运行文件夹例如“\Bin\Debug\”中包含csla生成的资源文件: 2.在程序运行时,设置CSLA的当前语言为你想要的语言,例如:Csla.Properties.Resources.Culture = new System.Globalization.CultureInfo("uk-ua"); 3.检查你想要使用的资源文件是否成功应用 改变前: 4.如果是想要中文,则需要自己翻译或下载翻译后的CSLA的Resources.zh-Hans.resx,因为CSLA有些字符串没

c语言设置cpu affinity (设置程序需要使用的cpu内核) cpu mask

最近打算写个小程序, 需要控制使用的是哪个 cpu 内核,所以做了一些调查, 整理一下分享给大家. ps: 因为毕业季很久没有写博客了, 以后继续. 顺便鄙视一下那些转载不声明出处的, by watkins.song pps: 最近有了个新的id, 因为在Oracle, wei.x.song, 不知到以后用哪个id比较酷一点 主要参考: http://www.gnu.org/software/libc/manual/html_node/CPU-Affinity.html/ http://stac