2017-06-16 28 views
0

我有一個多語種的網站,我不知道有多少語言纔會有。我使用的是codemix/yii2-localeurls擴展名,字段名由inputName_languageCode組成。例如:title_fr,title_en,content_fr,content_en等,所以我怎麼能在我的模型水木清華這樣做:如何設置多語言網站自動屬性標籤在Yii2

public function attributeLabels() 
{ 
    return [ 
     'title_*' => 'Title', 
     'content_*' => 'Content', 
    ]; 
} 

凡(*) - 是任何語言代碼

回答

0
return [ 
    'title_'.yii::$app->language => 'Title', 
    'content_'.yii::$app->language => 'Content', 
]; 

根據您的OP。仍然使用Yii 2國際化建議

+0

它不起作用。 –

+0

是什麼問題? –

+0

其實yii :: $ app->語言始終是默認語言。所以在屬性標籤中,我們總是會像'title_en'那樣得到smtn(如果默認語言爲EN)。但我認爲文件有同時字段哪個名稱這樣的: '''$形式 - >字段($模型, '標題') - >爲textInput([ '的maxlength'=> 255]);''' '''$形式 - >字段($模型, 'title_en') - >爲textInput([ '的maxlength'=> 255]);''' '''$形式 - >字段($模型, 'title_fr') - >爲textInput([「MAXLENGTH」 => 255]);'''同時 –

1

此數組中的關鍵是列名稱,所以不應該重命名。要多語言的翻譯,你應該使用Yii::t('category', 'text_to_translate') - 文檔瀏覽:Yii 2 Internationalization

例如:

return [ 
    'title' => Yii::t('app', 'title_label'), 
    'content' => Yii::t('app', 'content_label'), 
]; 
+0

是的。我知道這種方式,但我認爲有另一種方式來完成我的任務 –

+0

顯然它是最簡單的方法。 – Yupik

+0

有更多的想法嗎? –