2017-08-04 11 views
0

私はtitle_en、title_ru、content_en、content_ruであるデータベースに4つの列を作成しました。しかし、私は次に何をすべきか分かりません。データは正常にデータベースに送られますが、言語を切り替える方法とコントローラとモデルとビューで何を書き込むのか分かりません。Yii2基本フレームワークメッセージ言語

+0

こんにちは男、ちょうど公式ドキュメントを読んで:これは一般的なガイドですhttp: //www.yiiframework.com/doc-2.0/guide-tutorial-i18n.htmlこれはデータベースメッセージソースhttp://www.yiiframework.com/doc-2.0/yii-i18n-dbmessagesource.html – soovorow

+0

broです。 、私は公式の文書を理解することができなかった、bあなたがそれをする方法を知っているなら、私を助けてください、私はすぐにデータベースの多言語を作る方法を見つける必要があります –

答えて

-1

このチュートリアルから学びます。

https://code.tutsplus.com/tutorials/how-to-program-with-yii2-localization-with-i18n--cms-23140

あなたはjqueryのAjaxのリクエストで言語をswtichことがあります。

public function actionChangelang(){ 
     $language = $_GET['lang']; 
     if($language =='en' || $language == 'uz' || $language == 'ru'){ 
      Yii::$app->language = $language ; 
      Yii::$app->session->set('lang', $language); //or $_GET['lang'] 
     } 

     $this->redirect('/'); // redirecting user to somewhere 
    } 

その後、あなたはこのように、コントローラにクエリを記述可能性があります

ビューで
... 
$model = Yourmodel::find()->all(); 
... 
//TODO 

$lang = 'ru'; 
if (Yii::$app->language == 'uz') 
    $lang = 'uz'; 
if($lang=='uz'){ 
    $title = $model->title_uz ; 
    $content = $model->content_uz ; 
}else{ 
    $title = $model->title_ru; 
    $content = $model->content_ru; 
    } 

... 
//TODO 

echo $title; 
echo $content; 
+0

親愛なるサルドール、別名yolini yordam.uz da menga o'rgattiz :-)、endi databaza yoli bilan qilishni bilmayapmanda 、マサランdatabazada table_uz、kegin table_ru deganコラムochib、kegin sayt rus tilida bo'lsa、ruscha chiqadigon qilishni bimayapman :-) –

+0

mana tepada shu bo'yicha savol beribsizku! sizda qanday kiritiladigan datalar bo'lsa hammasi uchun 2 taコラムqilishiz mumkin bu bitta usul。 2 - usul:misol uchun post deganテーブルbor、タイトル、コンテンツ、言語、スラッグ、デュガンウスルラリボウラディ、スラグ - イキキタティルダハムビルキルビームズベラシズヴァシュウorqali postni 'language' ustuni bo'yicha zapros berib olaverasiz –