YII2 实现多语言配置的方法分享

发布时间 - 2026-01-10 22:27:41    点击率:

前言:

由于我的YII2版本是2.0.7, 设置多语言时和其他教程有不同的地方, 所以想着整理下,方便自己以后需要的时候和有需要的朋友参考学习。下面来一起学习学习吧。

方法如下:

1. 在一个controller里面写一个调用i18n的语句, 比如actionIndex

echo \Yii::t('app', 'whatisthis');

现在进入这个页面, 页面输出whatisthis

2. 手动创建一个文件夹messages来存放多语言相关文件, 如果是advanced版本则在frontend下面创建这个文件夹

3. 创建i18n配置文件

yii message/config frontend/messages/config.php

会自动生成一个config.php文件

然后打开frontend/messages/config.php, language行设置为

'languages' => ['en', 'zh-CN'],

4. 创建message文件, 执行

yii message frontend/messages/config.php

这样在frontend/messages里面会生成en和zh-CN文件夹

5. 打开frontend/messages/zh-CH/yii.php

添加一行

'whatisthis' => '这是啥玩意',

6. 在/yii2/frontend/config/main.php里设置

components中加入

'i18n' => [
  'translations' => [
  'app*' => [
   'class' => 'yii\i18n\PhpMessageSource',
   //'basePath' => '@app/messages',
   //'sourceLanguage' => 'en-US',
   'fileMap' => [
   'app' => 'yii.php',
   'app/error' => 'error.php',
   ],
  ],
  ],
 ],

注意, 如果想要更改validate等yii本身的翻译

需增加下面设置到 'translations' => []中:

'yii' => [ 'class' => 'yii\i18n\PhpMessageSource', 'sourceLanguage' => 'en-US', 'basePath' => '@app/messages' ],

components同等级后加入

'language' => 'zh-CN',

7. 再刷新页面, 应该会显示"这是啥玩意"了.

8. 当你需要新增其他语言时候, 执行第3,4步会重新生成文件, 之前的翻译(whatisthis)会保留, 但我试了之后发现变成了

'whatisthis' => '@@这是啥玩意@@',

很奇怪的两边多出@@.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# yii2  # 多语言  # yii2语言包配置  # 语言  # Yii2简单实现多语言配置的方法  # Yii2语言国际化自动配置详解  # Yii2语言国际化的配置教程  # Yii配置文件用法详解  # Yii学习总结之安装配置  # yii2.0实现pathinfo的形式访问的配置方法  # Yii2配置Nginx伪静态的方法  # YII中Ueditor富文本编辑器文件和图片上传的配置图文教程  # Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例  # yii2 数据库读写分离配置示例  # Yii框架多语言站点配置方法分析【中文/英文切换站点】  # 这是  # 当你  # 但我  # 这篇文章  # 很奇怪  # 设置为  # 则在  # 多出  # 试了  # 创建一个  # 自动生成  # 配置文件  # 方法如下  # 变成了  # 有疑问  # plain  # echo  # Yii  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端建站三要素:定制模板、企业官网与响应式设计优化  如何在服务器上配置二级域名建站?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  公司门户网站制作流程,华为官网怎么做?  js代码实现下拉菜单【推荐】  🚀拖拽式CMS建站能否实现高效与个性化并存?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  怎么用AI帮你为初创公司进行市场定位分析?  浅谈Javascript中的Label语句  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Python高阶函数应用_函数作为参数说明【指导】  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Swift中swift中的switch 语句  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  网站制作价目表怎么做,珍爱网婚介费用多少?  微信小程序 HTTPS报错整理常见问题及解决方案  详解阿里云nginx服务器多站点的配置  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何自定义建站之星模板颜色并下载新样式?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  移动端脚本框架Hammer.js  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  简历没回改:利用AI润色让你的文字更专业  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何在万网开始建站?分步指南解析  在线制作视频网站免费,都有哪些好的动漫网站?  如何在万网利用已有域名快速建站?  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  如何选择可靠的免备案建站服务器?  在线教育网站制作平台,山西立德教育官网?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  企业网站制作这些问题要关注  Laravel如何创建自定义中间件?(Middleware代码示例)  想要更高端的建设网站,这些原则一定要坚持!  如何在七牛云存储上搭建网站并设置自定义域名?  如何用IIS7快速搭建并优化网站站点?  深入理解Android中的xmlns:tools属性  大学网站设计制作软件有哪些,如何将网站制作成自己app?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在阿里云购买域名并搭建网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  网站制作软件免费下载安装,有哪些免费下载的软件网站?  高端建站如何打造兼具美学与转化的品牌官网?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  UC浏览器如何设置启动页 UC浏览器启动页设置方法