Yii2 学习日志------多语言

网上有许多的方法,这里只是自己总结一下。

大致分为3种吧。

1.用cookie保存,在服务端操作。

2.用cookie保存,在本地浏览器操作。

3.用session保存。

方法:

设置message文件夹

里面文件

然后

方式一:在index.php页面添加

$application->language = \Yii::$app->request->cookies->get(‘locale‘)?\Yii::$app->request->cookies->get(‘locale‘):‘en-US‘;

方式二:在配置文件中添加

‘on beforeRequest‘ => function ($event) {
        $l_saved = null;
        $l_saved = Yii::$app->request->cookies->get(‘locale‘);
        $l = ($l_saved)?$l_saved:‘en-US‘;
        Yii::$app->sourceLanguage = ‘en‘;
        Yii::$app->language = $l;
        return;
    }。上述都是用cookie操作。session一样的。

还差一步 就是设置cookie或者session

cookie可以在浏览器或者服务端操作。session在服务的

浏览器cookie:<script>    function changeLanguage(lang){        $.cookie(‘language‘,lang);        window.location.reload();    }</script>

服务器cookie:

public function actionLanguage()
{
$language= \Yii::$app->request->get(‘language‘);
if(isset($language)){
$l_cookie = new yii\web\Cookie([‘name‘ => ‘locale‘, ‘value‘ => $language, ‘expire‘ => 3600*24*30,]);
$l_cookie->expire = time() + 3600*24*30;
Yii::$app->response->cookies->add($l_cookie);
}
//切换完语言哪来的返回到哪里
$this->goBack(\Yii::$app->request->headers[‘Referer‘]);
}

服务器session和cookie类似。

在页面上加上 
<a href="<?php echo Yii::$app->urlManager->createUrl([‘/ebay/user/language‘,‘lang‘=>‘zh-CN‘]);?>">中文</a>
<a href="<?php echo Yii::$app->urlManager->createUrl([‘/ebay/user/language‘,‘lang‘=>‘en‘]);?>">英文</a>  

测试。。。。


时间: 2024-08-08 12:04:58

Yii2 学习日志------多语言的相关文章

Yii2 学习日志------view form标签

yii2 的form标签可以用系统内置的方法. 此方法包含许多,类似实时验证.直接提交用model处理,很方便. 但是要把这个改成我们需要的方式,如前端已经写好模板了,再去改比较困难. 查看资料总结: 重点的:template; 我们需要改动这个就可以改动所有的显示了. 这个是改所有的,单个的在

【C语言】【数据结构】菜鸟学习日志(四) 用二叉树实现非递归排序

唉,由于要备战考研,这篇博文可能是我这一年最后一次更新啦! 其实断断续续的也没有写很多,而且大多都是很初级.很简单的东西,没有和大家分享什么高阶的东西.这也正应了我们<菜鸟学习日志>的标题嘛! 不过说回来我还是很喜欢写博文的.一方面总结学到的知识,以后也可以自己看看别做了就忘了:另一方面,写博文也让我在学习的过程中更加认真,以免分享了错误的知识. 写的东西好不好呢是一说,好像有一些点击量,不过看的人估计也不多.只是我还算乐在其中吧! 大学生活说到底过得有点浪了,导致我苦逼地走向了考研的不归路-

5月YII2学习总结

5月份YII2学习任务基本上告一段落了,总体感觉只是简单学习了YII2,可以进行基本的应用开发,文档没有全部看完,自己简单做了一个QA问答系统进行练手. QA问答系统功能: 1.登陆.注册.收藏.关注 2.问答 3.文章 4.标签 5.评论 6.其他小功能 一.QA问答系统使用了的特性 模块modules:后台采用模块开发 Url管理:部分a标签使用了url管理,因为时间有限,很多地方是直接硬编码 ActiveRecord的运用:开发QA系统,使用这个就能完成所有数据交互功能了,比如多表关联ge

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来

一个新菜鸟的ACM 感想及学习日志

感想:忘记了是什么时候喜欢上ACM的,也许是被坑上来的,也许是自己默默地喜欢上的.我忘不了第一次来我们学校的培训基地的时候,打的是洪菊学姐(虽然她不是ACMer)的电话,第一个见到的是我们集训队的队长周海.第一次敲成功的代码是军哥教会我敲得算1-50的累加.第一次训练是军训完之后国庆假期期间.那一周之后,我从从来没接触过编程语言到一个学期都不用担心C语言了! 本来老师宣传ACM的时候,我是想和班上的胡灿明(数学不错).左太平(英语大神)组一个队的,但是他们都表示对这个没兴趣.国庆后,跟花姐谈了谈

JAVA学习日志——Ajax和Json

# JAVA学习日志--Ajax和Json # Ajax和Json在一个web项目中可以说是经常用到了,Ajax是一种用于创建快速动态网页的技术,而Json则是一种与语言无关的数据交换的格式.以下是个人在学习过程中的总结. 一.Ajax 1.同步与异步 在学习Ajax之前我们要先知道什么是同步,什么是异步. 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态. 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随    意做其他事情,不会被卡

我的游戏学习日志31——(对)游戏性的分析(5)

我的游戏学习日志31——(对)游戏性的分析(5) 5. 社会文化层 (1)深入的探究游戏游戏者与所在群体的关系,将游戏者作为社会的一部分去考察剖析,方能更宏观地看清游戏的本质. (2)在游戏的传播和推广时,我们也看到了集体文化的力量,玩家常常因为群体的选择而放弃自己的偏好,义无反顾的加入群聚的欢乐之中. (3)游戏中的社会性最高的体现在MMORPG游戏中. (4)人类学家Gregory Bateson提出,游戏可以被看做“元交流”的特有语境之一,即游戏本身就是某种意义或信息交流和理解方式. (5

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件