我設計了一個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? 已經提到你需要創建一個.. –