我设计了一个Web应用程序,它适用于两个不同的用户,分别为user1
和user2
,并且这两个用户需要使用不同语言的view
。如何切换不同用户的语言环境/语言
我已经学习了关于yii:t()
,但通过该方法,我们必须在main.config
中定义语言,它为两个用户设置相同的语言。
如何以两种用户的不同语言翻译我的视图?
我设计了一个Web应用程序,它适用于两个不同的用户,分别为user1
和user2
,并且这两个用户需要使用不同语言的view
。如何切换不同用户的语言环境/语言
我已经学习了关于yii:t()
,但通过该方法,我们必须在main.config
中定义语言,它为两个用户设置相同的语言。
如何以两种用户的不同语言翻译我的视图?
我希望这可以帮助你: 你需要在你的组件中编辑urlmanager.php,如果没有文件,你需要创建一个。
检查这个网址:Multilingual
感谢。
public function actionChangeLocale($locale) {
// (OPTIONAL) if is registered user (not guest), save preferred locale in database
if (!Yii::app()->user->isGuest) {
// Update user settings
$uid = Yii::app()->user->id;
User::model()->updateByPk($uid, array('locale' => $locale));
}
// change locale
Yii::app()->user->setState('_locale', $locale);
// redirect to previous page, in the new locale
if(isset($_SERVER["HTTP_REFERER"]))
$referrer = $_SERVER["HTTP_REFERER"];
else
$referrer = Yii::app()->getBaseUrl(true) . '/';
$this->redirect($referrer);
}
编辑您的main.php配置URL经理规则:
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'caseSensitive' => false,
'rules' => array(
'lang/<id:\w+>' => 'site/changeLocale',
要更改语言环境,创建一个链接指向用户
在SiteController.php将这个到所需区域:
http://www.mysite.com/myapp/lang/en
http://www.mysite.com/myapp/lang/zh
http://www.mysite.com/myapp/lang/ja
http://www.mysite.com/myapp/lang/in
...
如果您保存在数据库中的登录用户的首选区域,将它添加到SiteController.php登录操作:
$uid = Yii::app()->user->id;
$user = User::model()->findbypk($uid);
$userLocale = isset($user->locale) ? $model->locale : Yii::app()->language;
Yii::app()->user->setState('_locale', $userLocale);
以上用途是使用htaccess的重写这些。确保基础的.htaccess文件是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] # Remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
相关文章:
相关模块:
伟大的工作谢谢, –
嘿Sameuel,当我使用url http:// localhost/Snitch-appointpress/Appointpress/lang/en那么我收到错误在此服务器上未找到请求的URL/Snitch-appointpress/Appointpress/lang/en。 –
是否实现了url管理器规则?另外,执行htaccess重写。更新了答案。 –
感谢编码器,它的工作 –
嘿编码器,我正在工作的那个链接,当我点击我的用户界面中的语言的任何链接,然后它给出了一个错误,如:url:site/logout not found,my url is在?r = site/logout,我应该怎么做 –
你是否实现了urlmanager? 已经提到你需要创建一个.. –