那麼,我只能根據我所做的事情給你我的觀點。
有到地方工作的翻譯
- 從 警予與國際化和信息系統管理的非動態字符串,這將有助於你與靜態內容。
- 使用引導類動態地處理翻譯後的路由,使您可以在構建應用程序時構建此路線。
- 並且使用支持像'title_en,title_es'這樣的翻譯並且需要翻譯的列的表格。實際上,在您的管理界面中,您可能希望使用yandex之類的內容來幫助您將內容翻譯成此字段。
現在我來解釋一下:
的國際化Message Translation是基於字符串翻譯你的意見,模型,並在某些情況下,像在自舉類。
您將使用Yii::t('app/main', 'Your name is {0}'
作爲示例來轉換存儲在消息php文件中的字符串。
現在,如果您翻譯蜇傷,您需要翻譯路線,以便在更改語言時使用/ articles和/ articulos等路線。 爲此,您將希望構建一個實現BootstrapInterface的類,該類將從引導應用程序的過程中調用。
所以這是我的設置的一個例子。我用這個的
namespace app\base;
use Yii;
use yii\base\BootstrapInterface;
class settings implements BootstrapInterface {
public function __construct() { }
public function bootstrap($app) {
/// Dynamic translated routes
$t_articles = Yii::t('app/route', 'articles');
$app->getUrlManager()->addRules([
'/'.$t_articles => '/articles',
], false);
}
}
並記住引導你的配置文件中的類«ie web.php»
'bootstrap' => [
'log',
'app\base\settings',
],
最後翻譯從數據庫中的文本,你可能想使支持像翻譯後的文本表:
CREATE TABLE articles (
id INT,
title_en VARCHAR(20),
title_es VARCHAR(20)
);
所以,當你打電話給你的應用程序,你可以拉你使用類似的動作(僅一個簡單的例子)以下數據:
$articles = ArticlesA::find()->where(['id' => 1])->one();
$lang = $this->module->language;
return $thi
S->呈現( '索引',[ '物品'=> $文章, '郎'=> $ LANG]) ;
或視圖:
<p class="lead"><?=$articles['title_'.$lang]?></p>
我希望這說明我一直在翻譯我的應用程序的方式。
引用此鏈接http://stackoverflow.com/questions/32831288/yii2-translation-does-not-work – vishuB
@vishub該答案不處理動態內容。 – TheStoryCoder
我使用yii2-translate-manager,它工作得很好,但它不處理動態內容。 – TheStoryCoder