本文介绍了Yii1.x版本的国际化方案及相关问题解决办法

一 、Yii 国际化配置

找到main.php并按照如下修改配置

return ['sourceLanguage'=>'zh_cn', // 源语言、即不需要翻译的默认语言'language'=>'zh_cn', // 当前默认语言'components' => [ // 组件配置]
];

配置中sourceLanguage一般指定zh_cn就好,中文是不需要翻译的;而language默认跟他一样,需要注意的是:二者一样时是不会翻译文本而是原样输出。

二、 代码处理

这里主要指view的代码

// 1. 普通
Yii::t('app', '要翻译的文字');
// 输出:要翻译的文字// 2. 替换关键字
Yii::t('app', ' {0},你好!', ['0'=>'世界']);
// 输出:世界,你好!// 3. 选择符
Yii::t('app', '1#有效|2#无效', 2); // 注意第三个参数必须是数字
// 输出:无效// 4. 高级范
Yii::t('app', '1#有效|0#无效|n>1#神秘数字n', 5); // 此处n表示输入的第三个变量
// 输出:神秘数字n

其中app表示文件名,可以根据需要自行分类。切换语言可以这样:

$targetLang = 'en_us';
Yii:app()->setLanguage($targetLang); // 切换后相当于配置中的language变为此语音

其实名字可以随便起,只需要确保有相关配置即可

三、生成翻译文件

大家都过yii的命令行吧,其中有一个 yiic message [option]就可以用来自动生成配置文件,步骤如下:

  1. 复制/framework/messages/config.php到项目路径下/protected/messages/config.php,其中config.php也可以叫别的
  2. 输入命令 yiic message config.php,等几秒后便根据配置自动生成了代码中用Yii::t方法输出的翻译文件,连文件名都区分了

接下来我们看下config.php都有什么

<?php
<?php
return array('sourcePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', // 源语言目录// 其他语言目录,sourcePath同级'messagePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'messages', 'languages'=>array('zh_cn','en_us','ko_kr'), // 待翻译的语言'fileTypes'=>array('php'), // 检测的文件扩展名'overwrite'=>true, // 是否覆盖源文件,开启后生成快'exclude'=>array( // 要排除的文件或目录'.svn','.gitignore','yiilite.php','yiit.php','/i18n/data','/messages','/vendors','/web/js',),
);

FAQ

1. 语言不能正常切换

检查下sourceLanguage是否为英文en_us,即当languagesourceLanguage一样时不会进行翻译

以后翻译直接写好代码,完事通过命令自动刷新翻译文件就行了。至于最终由谁来将中文译成其他文字那不在讨论范围了。

Yii1.x 国际化三步走相关推荐

  1. ai皮肤检测分数_智能AI皮肤检测仪三步走话术

    智能 AI 皮肤检测仪三步走话术 第一步:仪器介绍 话术: 某某小姐,您好!我们现在用了是 德国进口智能 AI 皮肤检测仪 给您的皮肤做拍照 测试. 我们这台仪器是国外引起的一台专业皮肤定量分析仪器, ...

  2. 软件需求分析--三步走

    软件项目如何进行需求分析,要解决这个问题,我们要分三步走 第一步:通过什么方式去了解需求 了解需求的方式有好几种: (1)直接与客户交谈.如果分析人员生有足球评论员的那张"大嘴", ...

  3. Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务

    短网址顾名思义就是使用比较短的网址代替很长的网址.维基百科上面的解释是这样的: 短网址又称网址缩短.缩短网址.URL 缩短等,指的是一种互联网上的技术与服务,此服务可以提供一个非常短小的 URL 以代 ...

  4. 经验分享:三步走教你升级企业NAS设备

       前几年凡是对于数据存储有需求的企业都已经购买了相关的NAS产品,不过电脑和网络升级换代是比较频繁的,几年过去了中小企业对数据存储的需求也水涨船高,然而面对当初的NAS存储设备该如何处理呢?扔掉可 ...

  5. 搞定面试算法系列 | 分治算法三步走

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 江子抑 转自 | 编程拯救世界 主要思想 分治算法,即分而治之:把一个复杂问题分成两个或更多的相同或相似子问题,直到最后子问题可以简 ...

  6. 开发经验分享_01_遇到问题三步走(思路+实战)

    企业内部开发经验系列,由gblfy根据自己在公司的亲身经历总结而成,会讲述开发的思路和开发技巧,帮助更多开发人员思路明确.高效率的开发!!! 目前总结章节如下: 章节 链接 (企业内部)开发经验分享_ ...

  7. 首个教育部印发的人工智能行动计划出炉:规划三步走,大学有三任务

    安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI 近日,教育部印发了<高等学校人工智能创新行动计划>,从科研.教学.成果转化三个方面给高等教育体系下了"任务" ...

  8. 系统 应用 数据缺一不可 云优化三步走

    本文讲的是系统 应用 数据缺一不可 云优化三步走,2012年9月13日消息,由盛拓传媒旗下的IT168.ChinaUnix.ITPUB联合主办为期三天(2012年9月13日~2012年9月15日)的第 ...

  9. 施耐德电气:“三步走”实现配电数字化,制胜可持续未来

    当前,工业.公共建筑和商业楼宇消耗了全世界 63%的电能,二氧化碳排放量占全球碳排放的 43%,楼宇行业的建设和运营优劣都将成为全球应对气候变化成功与否的关键.然而,这些行业中的绝大多数设施能效水平较 ...

最新文章

  1. 【错误记录】VMware 虚拟机报错 ( Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off )
  2. ARM学习方法大杂烩,高手经验之谈,内容完全来自互联网
  3. Java EE 课程作业(second)-- 企业级应用和互联网应用的区别
  4. 计算机里什么文件无法删除,电脑上的文件删不掉怎么办
  5. 游戏开发使用的各个主流引擎对比
  6. 【10分钟】入门人工智能
  7. Ubuntu 12.04下jdk的安装与配置
  8. java对象说明 PO,BO,VO,DTO,POJO,DAO,Entity
  9. 第一回合:.net与 C#基本概念
  10. 如何在arcgis中制作土地利用转移矩阵
  11. MATLAB中cfl,教程合集 | MATLAB绘图基本操作与属性
  12. WIN10家庭版+ANSYS/AUTODYN安装学习
  13. ubuntu 自带录屏功能
  14. psd2html 阿里,psd2html
  15. 第九章 姜小白大难不死登君位 公子纠迟来一步梦成空
  16. 眼花缭乱中看Metro Style—MS Apps Store—Desktop Apps以及Win-Runtime和Win32
  17. 百度CEO李彦宏:百度将来会进行专门投资
  18. etf基金代码大全_什么是ETF(场内基金)?
  19. 35. 并行和并发有什么区别?
  20. arduino烧录_ASP烧录Bootloder

热门文章

  1. js中数组增加添加元素的push方法
  2. 2019中东迪拜电子通讯展Gitex
  3. 快递100查询地图轨迹API接口案例代码
  4. 鸿蒙系统的手机哪款最好,鸿蒙系统发布时间 华为鸿蒙系统手机两千元年底推出?...
  5. IPhone手机页面中点击输入框,弹出键盘网页会放大的解决方法
  6. html基础标签学习
  7. java sleep 失效_java:Thread.sleep()导致同步失效
  8. HTML5系列代码:设置页面背景图像
  9. 竞技场积分系统ELO详解
  10. python 串口助手 简书_python 制作串口工具(二)