2017-08-04 118 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请求的语言。

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

亲爱的萨多尔aka,bu yolini yordam.uz da menga o'rgattiz :-),endi databaza yoli bilan qilishni bilmayapmanda ,masalan databazada table_uz,kegin table_ru degan column 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 column qilishiz mumkin bu bitta usul。 2-usul:misol uchun post degan table bor,'title','content','language','slug' degan ustunlariz bo'ladi,'slug' - ikkita tilda ham bir xil qiymat berasiz va shu orqali postni'language' ustuni bo'yicha zapros berib olaverasiz –