专业网站建设品牌,18年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> CodeIgniter多语言
CodeIgniter多语言
来源:网络整理 时间:2023/2/14 0:09:21 共
3684
浏览
CI应用目录下有一个language语言包目录,用来配置多种不同的语言。语言的配置位于config文件中,配置格式如下:
PHP
复制代码
$config
[
'language'
]
=
'english'
;
复制代码
定义语言文件
language下有个空的english目录,即上面定义的系统默认语言目录,系统会从该目录加载语言包文件。如果要定义不同的语言包,如zh_cn,则创建zh_cn目录并配置相应语言包文件即可。需要注意的是,语言文件的后缀必须为_lang.php,语言翻译通过数组的键值对来实现,为防止出现重复的键名,可以为键名增加统一的前缀。
配置的方式可参考下面:
PHP
复制代码
$lang
[
'menu_system_title'
]
=
'系统设置'
;
$lang
[
'menu_system_user_admin'
]
=
'用户管理'
;
$lang
[
'menu_system_user_list'
]
=
'用户列表'
;
$lang
[
'menu_system_user_detail'
]
=
'用户详情'
;
$lang
[
'menu_system_setting'
]
=
'配置管理'
;
/* End of file user_menu_lang.php */
/* Location: ./system/language/zh_tw/user_menu_lang.php */
复制代码
语言包的使用
使用语言包之前需要先加载语言包,加载和使用方式如下:
PHP
复制代码
//加载方式一,加载时不需要传入_lang
$this
->
load
->
language
(
array
(
'user_menu'
,
'user_message'
)
)
;
//加载方式二
$this
->
lang
->
load
(
'user_menu'
)
;
//使用方式一
echo
$this
->
lang
->
line
(
'language_key'
)
;
//使用方式二(需先加载language帮助函数)
$this
->
load
->
helper
(
'language'
)
;
echo
lang
(
'menu_system_title'
)
;
复制代码
可以说语言包的使用相当简单,前不久也做了个台湾版的系统,顺便说下CI中的语言包的使用及需要注意的问题。
1、$config['language'] 直接配置成 zh_cn 会怎么样?
系统中有一些默认的语言包位于system/language/english目录下,当使用系统中提供的一些类报错时会加载对应的语言包。此时系统会先到language/zh_cn目录下去查找,然后去system/language/zh_cn目录下查找,都找不到就提示找不到语言包的错误。所以若更改了language配置,最好拷贝system/language/english下的文件到对应的语言目录下。
这里看起来有点奇怪,为什么不是这种思维:先到language/zh_cn目录下去找,找不到就到system/language/english目录下去找。叫english可能不合适,应该称呼为系统默认的语言包。
2、是否需要使用语言包?
在某个系统中发现这样子的情况, 有些错误提示用的语言包,有些直接用的中文,可能因为多人开发的原因,键的命名也不太规范,经常需要去对比对应的语言文件,导致程序阅读起来相对麻烦,而中文的则没该问题,个人在系统中使用语言包也觉得有点麻烦。所以,不需要考虑多语言的程序尽量还是不要使用语言包的好。
3、如何自动检测语言包?
通常情况下可以根据浏览器的语言类型来判断,PHP中的$_SERVER['HTTP_ACCEPT_LANGUAGE']可以获取到该值,然后根据字符串分隔或者正则匹配等方式即可获取到客户端浏览器默认语言类型。获取到之后通过$this->config->set_item('language', 'zh_cn');设置即可。
关于是否确实使用了语言包,可以重写lang函数,带^_^即为使用了语言包,参考如下:
PHP
复制代码
function
lang
(
$line
,
$param
=
array
(
)
)
{
$CI
=&
get_instance
(
)
;
$line
=
$CI
->
lang
->
line
(
$line
)
;
if
(
is_array
(
$param
)
&&
count
(
$param
)
>
0
)
{
array_unshift
(
$param
,
$line
)
;
$line
=
call_user_func_array
(
'sprintf'
,
$param
)
;
}
return
'^_^'
.
$line
;
}
复制代码
很多情况下多语言的实现都是通过数组的形式来实现,还有一些是.mo的格式,l18n多语言的实现方式,php中需要php_gettext扩展支持,详情可查阅相关资料。
版权说明:
本网站凡注明“广州松河 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
肇庆小语种网站建设公司
公司网站建设软件下载安装
山东网站建设项目管理平台
河北正规网站建设电话多少
泰州网站建设服务公司电话
重庆做网站建设推荐哪家好
惠州网站建设公司价位查询
手机网站建设优化诊断方法
东莞网站建设的总结报告
娄底网站建设平台分析研究
·上一条:
CodeIgniter扩展核心类
|
·下一条:
CodeIgniter钩子
同类资讯
如何自学PLC与自动化_服务器
DCC系统是什么_服务器
six和nine发音相同吗_python
csgo一按esc就跳ping_服务器
5g基站建设施工流程_服务器
我的世界为什么显示正在维护_服务器
电脑上的验证码显示不出来_服务器
魔兽世界怀旧服最终压力测试开放不到一小时就有玩家达到了15级_服务器
女朋友人长的一般_服务器
4g直播卡怎么解决_服务器
电信手机wlan接入点名称如何设置_服务器
iphone手机连电脑的4种方法_服务器
surface3虚拟内存怎么设置_服务器
公司电脑怎么取消访问限制_服务器
mainloop函数作用_python
pythonBeautifulSoup怎么获取无标签文本_python
如何用python表示三角函数_python
实际感受难度最大的BOSS是哪一个_服务器
协助网络犯罪量刑标准_服务器
我的世界手机版怎么做海洋堡垒传送门_服务器
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2026 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com