文章目录
前言
记录thinkphp5.1下面lang包的详细用法
一.下载thinkphp5.1
1.compoer下载安装
composer create-project topthink/think=5.1.* test
2.修改配置
【修改config/app.php文件】
// 是否开启多语言
'lang_switch_on' => true,
// 默认语言
'default_lang' => 'zh-cn',
开启后,系统会自动检测当前语言(主要是指浏览器访问的情况下)会对两种情况进行检测:
是否有
G
E
T
[
′
l
a
n
g
′
]
识
别
_GET['lang'] 识别
GET[′lang′]识别_SERVER[‘HTTP_ACCEPT_LANGUAGE’]中的第一个语言
检测到任何一种情况下采用Cookie缓存
如果检测到的语言在允许的语言列表内认为有效,否则使用默认设置的语言
如果不希望浏览器自动侦测语言,请关闭lang_switch_on后设置默认语言。
如果在自动侦测语言的时候,希望设置允许的语言列表,不在列表范围的语言则仍然使用默认语言,可以使用:
// 设置允许的语言
Lang::setAllowLangList(['zh-cn','en-us']);
2.创建语言包目录
对应语言文件名如下,放在lang目录下即可
简体中文(中国)
zh-cn
繁体中文(台湾地区)
zh-tw
繁体中文(香港)
zh-hk
英语(香港)
en-hk
英语(美国)
en-us
英语(英国)
en-gb
英语(全球)
en-ww
英语(加拿大)
en-ca
英语(澳大利亚)
en-au
英语(爱尔兰)
en-ie
英语(芬兰)
en-fi
芬兰语(芬兰)
fi-fi
英语(丹麦)
en-dk
丹麦语(丹麦)
da-dk
英语(以色列)
en-il
希伯来语(以色列)
he-il
英语(南非)
en-za
英语(印度)
en-in
英语(挪威)
en-no
英语(新加坡)
en-sg
英语(新西兰)
en-nz
英语(印度尼西亚)
en-id
英语(菲律宾)
en-ph
英语(泰国)
en-th
英语(马来西亚)
en-my
英语(阿拉伯)
en-xa
韩文(韩国)
ko-kr
日语(日本)
ja-jp
荷兰语(荷兰)
nl-nl
荷兰语(比利时)
nl-be
葡萄牙语(葡萄牙)
pt-pt
葡萄牙语(巴西)
pt-br
法语(法国)
fr-fr
法语(卢森堡)
fr-lu
法语(瑞士)
fr-ch
法语(比利时)
fr-be
法语(加拿大)
fr-ca
西班牙语(拉丁美洲)
es-la
西班牙语(西班牙)
es-es
西班牙语(阿根廷)
es-ar
西班牙语(美国)
es-us
西班牙语(墨西哥)
es-mx
西班牙语(哥伦比亚)
es-co
西班牙语(波多黎各)
es-pr
德语(德国)
de-de
德语(奥地利)
de-at
德语(瑞士)
de-ch
俄语(俄罗斯)
ru-ru
意大利语(意大利)
it-it
希腊语(希腊)
el-gr
挪威语(挪威)
no-no
匈牙利语(匈牙利)
hu-hu
土耳其语(土耳其)
tr-tr
捷克语(捷克共和国)
cs-cz
斯洛文尼亚语
sl-sl
波兰语(波兰)
pl-pl
瑞典语(瑞典)
sv-se
西班牙语(智利)
es-cl
3.添加apache配置文件.access
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Rewritebase /index.php
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
4.语言包案例
请求示例:获取中文语言包
获取英文语言包
5.判断语言包里面是否包含key
6 获取英文提示
//获取语言包中的英文
public function getEnglist()
{
var_dump(Lang::get("Message",[],'en-us'));
}
7.语言文件定义
框架语言包: thinkphp\lang\当前语言.php
应用语言包: application\lang\当前语言.php
模块语言包: application\模块\lang\当前语言.php
如果你还需要加载其他的语言包,可以在设置或者自动检测语言之后,用load方法进行加载
Lang::load( '../application/common/lang/zh-cn.php');
如果要在模板中输出语言变量不需要在控制器中赋值,可以直接使用模板引擎特殊标签来直接输出语言定义的值
{$Think.lang.lang_var}
# 总结 thinkphp5.1 语言包配置的详细用法