Zend framework 2 多语言配置

Zend Framework 2 默认支持国际化I18n,直接在Zend Studio里建的工程,也是默认就开启了多语言配置,只需要更改 ‘locale’ => ‘en_US’ 就可以修改网站显示language目录下面的.mo里的语言。但是没有找到语言切换相关的配置,比如根据浏览器的语言自动切换语言显示,或者根据用户指定的语言显示…

配置 module.config.php:

语言初始化在框架加载的时就可以做了,所以可以直接在 Module.php bootstrap里写。这里有一个优先级的问题:

语言可以通过三种途径方式获得:

  1. 用户主动设置时
  2. 用户主动设置过,已保存在Session中
  3. 用户未主动设置,Session中也未保存语言,此时可从 Http协议头里拿到 Accept-Language 的值作为首选语言项

优先级别最高的是用户主动设置,其次是Session中已保存的语言,当前两者都没有的时候才选择 协议头里的值作为语言参考项。而当这三项都拿不到的时候,则会使用默认配置 local 填写的值。

当这里配置完成,在URL上使用?language=zh-CN或者 ?language=zh-TW即可切换语言。切换失败也就是传入参数无法与配置里的匹配时,默认使用配置 local 的值

 

转载自:https://www.fourfire.cc/zend-framework-2-%E5%A4%9A%E8%AF%AD%E8%A8%80%E9%85%8D%E7%BD%AE/

评论关闭

return top