专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
CodeIgniter多语言
当前位置:
网站建设
>
技术支持
CodeIgniter多语言
资料来源:网络整理
时间:
2023/2/14 0:09:21
共计:
3643
浏览
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扩展支持,详情可查阅相关资料。
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
网页设计界面布局有哪些
芜湖网页设计师报名
网页红色白色搭配设计理念
电商用什么网页设计软件
网页设计鼠标经过边框变色
网页设计的旋转相册代码
江门网页设计师报名
css属性有哪些网页设计
学校官网网页设计介绍
西安网页设计制作有哪些
·上一条:
CodeIgniter扩展核心类
|
·下一条:
CodeIgniter钩子
同类资讯
CodeIgniter扩展核心类
CodeIgniter心得体会
CodeIgniter配置之URL
CodeIgniter配置之XSS和CSRF
CodeIgniter配置之SESSION
CodeIgniter配置之config
CodeIgniter配置之router
CodeIgniter配置之database
CodeIgniter控制器之MY_Controller
CodeIgniter控制器之业务逻辑
CodeIgniter控制器
CodeIgniter模型
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_affected
sqlsrv_send_stream_data
sqlsrv_server_info
解决在IIS6中asp站点设置启用默认内容文档*.asp无效的方法
CodeIgniter项目初始化之目录结构
CodeIgniter项目初始化之环境配置、SVN配置
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-683-0016
邮箱:sales@gzit.cn
QQ:250211130
微信:18520775521
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有
粤ICP备16019765号
广州京杭网络科技有限公司 版权所有
返回顶部
400-683-0016
在线咨询
微信二维码