Yii 多語言

Yii 多語言

YII有三種翻譯類型

  1. CPhpMessageSource : Translations are stored as key-value pairs in a PHP array.
  2. CGettextMessageSource : Translations are stored as GNU Gettext files. (PO Files)
  3. CDbMessageSource : Message translations are stored in database tables.

這裡用的CPhpMessageSource翻譯類型(YII默認的翻譯類型)..CDbMessageSource試了半天(不知道怎麼去實現..),還是實現不了.后來想了下,在default文件中.寫SQL語句然後返回數據亦可得到同樣的效果.~


views/layouts/main.php

<?php echo CHtml:: link ( ' 中文 ' , array ( 'site/index' , 'lang' => 'zh_cn' )) . ' | ' . CHtml:: link ( '繁體' , array ( 'site/index' , 'lang' => 'zh_tw' )) .' | '. CHtml:: link ( 'English' , array ( 'site/index' , 'lang' => 'en_us' ));?>

Controller.php 

public function init() { if(isset($_GET['lang'])&&$_GET['lang']!=""){ //當點擊轉換語言時 Yii::app()->user->setState("yuyan",$_GET['lang']); //相當於與設置一個cookie Yii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言 } if(Yii::app()->user->getState("yuyan")){ //如果設置了有session記錄 Yii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言 }else{ Yii::app()->user->setState("yuyan","en_us"); //沒有session則設置一個session.默認語言為en_us Yii::app()->language = Yii::app()->user->getState("yuyan"); //轉換成相應的記錄語言 } }

messages/zh_cn/default.php

<?php return array( 'username'=>'用戶名', 'password'=>'用戶密碼', } //此處亦可以使用SQL語句,加載數據庫中的翻譯數據.偽CDbMessageSource方式啊- - #

site/index

<?php echo "username =>".Yii::t('default','username')."<br>";     echo "password =>".Yii::t('default', 'password'); ?>

output:

username =>用戶名 password =>用戶密碼

转载于:https://my.oschina.net/resory/blog/84852

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110298.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【9】进大厂必须掌握的面试题-DevOps面试

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。DevOps和Agile之间的根本区别是什么? 下表中列出了两者之间的差异。 特征 DevOps–…

    2021年6月23日
    116
  • 微信公众号网页分享功能开发

    微信公众号网页分享功能开发现在每天都可以看到很多微信分享的链接上面有网站或者商家的自定义的分享标题,和分享链接的描述及分享出去的图像,例如下面的分享出去的链接:              上面这个是微信的js-SDK页面分享给微信好友在聊天列表中显示的视觉效果。   微信JS-SDKDemo:这个是微信网页分享出去的标题。   微信JS-SDK,帮助第三方为用户提供更优质的移动web服务:这个…

    2022年6月4日
    120
  • ElasticSearch分布式搜索引擎安装教程

    ElasticSearch分布式搜索引擎安装教程ElasticSearch分布式搜索引擎安装教程​专注小Du博客,每天分享干货知识。CSDN博客地址:在正式开始安装教程之前,小Du先带大家来了解什么是ElasticSearch。一.Hr:ElasticSearch是什么?​答:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级

    2022年6月17日
    25
  • 八大排序算法

    八大排序算法概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分…

    2022年4月26日
    37
  • http返回错误状态_状态码返回0

    http返回错误状态_状态码返回0状态码为405表示请求的方式不对,请求的方式有get、post、head、put……常用的为post和get。代码里面我刚刚开始的时候使用的是HttpPost发的请求,另外一边呢,刚刚开始的时候只有一个get请求在那等着呢。等我看到405之后,哦,类型,没对上,又在controller一边加了个post请求的这么一下就OK了。问题不大,简单记录一下。为的是下次…

    2025年8月3日
    2
  • 【Python】解决使用 plt.savefig 保存图片时一片空白

    【Python】解决使用 plt.savefig 保存图片时一片空白问题当使用如下代码保存使用plt.savefig保存生成的图片时,结果打开生成的图片确实一片空白。importmatplotlib.pyplotasplt”””一些画图代码”””plt.show()plt.savefig(“filename.png”)原因其实产生这个现象的原因很简单:在plt.show()后调用了plt.savefig(),在plt.show()后实际上已经创建

    2022年5月27日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号