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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 非局部均值滤波算法[通俗易懂]

    非局部均值滤波算法[通俗易懂]2016.09.09更新,修改了SSIM中值太大的问题首先谈一下什么是非局部均值滤波。在此之前,我们先来看一下均值滤波的原理。均值滤波均值滤波的计算非常简单,将图像像素点灰度记录在数组中,然后设置方框半径的值,然后将方框中的所有点的像素求和取平均,得到的结果就是均值滤波后对应像素点的灰度值。优点:计算很快而且简单从算法可以看出,只是求了平均,并没有很复杂的计算缺点:得到的图像很模

    2022年5月21日
    47
  • 玩客云 青龙面板_青龙京东签到

    玩客云 青龙面板_青龙京东签到玩客云安装青龙面板实现京东签到薅羊毛

    2022年9月18日
    2
  • 深入浅出JVM调优,看完你就懂

    深入浅出JVM调优,看完你就懂深入浅出JVM调优基本概念:JVM把内存区分为堆区(heap)、栈区(stack)和方法区(method)。由于本文主要讲解JVM调优,因此我们可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的。其他的都无需GC。下图文JVM的内存模型从图中我们可以看到,1、JVM实质上分为三大块,年轻代(YoungGen),年老代(OldMemory…

    2022年6月1日
    35
  • IDEA自动导包配置总结

    IDEA自动导包配置总结IDEA 实用功能之自动导包设置自动导包是什么意思 原本我们在 eclipse 中 如果要引用一个方法 发现缺少这个方法所需要的包 需要手工去输入 比如我们要用到 FileInputStr 流 需要在前面输入 importjava io 而在 IDEA 中 通过简单的设置不但会帮你解决自动导入你想要的包 即你只要自己用方法就行 所依赖的包 IDEA 会帮你搞定 除此之外 IDEA 还会帮你优化引入包的结构 即删除一些没有的 import 的语句 下面是 AutoImport 设置步骤详解 Setting

    2025年7月17日
    6
  • Spring Boot Vue全栈开发实战_java web前端

    Spring Boot Vue全栈开发实战_java web前端构建SpringBoot项目并通过登录DEMO打通前后端的联系,为下一步开发打下基础。

    2022年10月12日
    4
  • 无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪

    无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪前言:随着深度学习近几年来的突破性进展,无人驾驶汽车也在这些年开始不断向商用化推进。很显然,无人驾驶汽车已经不是遥不可及的“未来技术”了,未来10年必将成为一个巨大的市场。本系列博客将围绕当前使用的最先进的无人驾驶汽车相关技术,一步一步地带领大家学习并且掌握无人驾驶系统的每一个模块的理论基础和实现细节。由于无人驾驶汽车系统构成及其复杂,本系列博客仅讨论软件部分的内容,关于汽车,传感器和底层的硬件,不

    2022年6月18日
    27

发表回复

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

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