2017-08-04 1 views
0

J'ai créé 4 colonnes dans la base de données qui sont title_en, title_ru, content_en, content_ru. Cependant, je ne sais pas quoi faire ensuite, les données vont à la base de données avec succès, mais je ne sais pas comment changer la langue et quoi écrire dans le contrôleur et les modèles et les vues, s'il vous plaît pouvez-vous aider à gérerYii2 langage de base de message de cadre

+0

Salut l'homme, de lire la documentation officielle: c'est guide commun http: //www.yiiframework.com/doc-2.0/guide-tutorial-i18n.html, et ceci est source de message de base de données http://www.yiiframework.com/doc-2.0/yii-i18n-dbmessagesource.html – soovorow

+0

bro, , je ne pouvais pas comprendre la documentation officielle, b ut si vous savez comment le faire, s'il vous plaît aidez-moi, je dois trouver comment faire multilingue dans la base de données très bientôt –

Répondre

-1

Vous pouvez apprendre de ce tutoriel.

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

Vous pouvez swtich langue avec demande ajax jquery.

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 
    } 

Après cela, vous pouvez écrire requête dans le contrôleur comme ceci:

... 
$model = Yourmodel::find()->all(); 
... 
//TODO 

Vu:

$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

Cher Sardor aka, bu yolini yordam.uz da menga o'rgattiz :-), endi databaza yoli bilan qilishni bilmayapmanda , masalan databazada table_uz, kegin table_ru degan colonne 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 colonne qilishiz mumkin bu bitta usul. 2- usul: misol uchun post degan table bor, 'titre',' contenu', 'langue',' slug' degan ustunlariz bo'ladi, 'slug' - ikkita tilda jambon bir xil qiymat berasiz va shu orqali postni' langue' ustuni bo'yicha zapros berib olaverasiz –