當我嘗試使用國際化更改頁面時,我的高級模板出現問題。 我試着解釋一下。要使用國際化在我的網站我有遵循這個步驟:Yii2 - 更改語言
在params.php,我已經加入這個:
<?php
return [
'adminEmail' => '[email protected]',
'languages' => [
'en' => 'English',
'it' => 'Italian',
],
];
我在前臺\意見\佈局添加該\ main.php到請撥打我的網站上面的語言插入:
<?php
foreach(Yii::$app->params['languages'] as $key => $language){
echo '<span class="language" id ="'.$key.'">'.$language.' | </span>';
}
?>
我創建了一個名爲main.js的新文件後。爲了允許yii2查看main.js文件,我在AppAsset.php中添加了這個(是否正確?)。在這個文件我插入這樣的:之後,在sitecontroller.php我加入
$(function(){
$(document).on('click','.language', function(){
var lang = $(this).attr('id');
$.post('index.php?r=site/language', {'lang':lang},function(data){
location.reload();
});
});
$(document).on('click','.fc-day', function(){
var date = $(this).attr('data-date');
$get('index.php?r=event/create',{'date':date},function(data){
$('#modal').modal(show)
.find('#modalContent')
.html(data);
});
});
$('#modalButton').click(function(){
$('#modal').modal(show)
.find('#modalContent')
.load($(this).attr('value'));
});
});
這樣的:
:public function actionLanguage()
{
if(isset($_POST['lang'])){
Yii::$app->language = $_POST['lang'];
$cookie = new Yii\web\cookie([
'name'=>'lang',
'value'=>$_POST['lang']
]);
Yii::$app->getResponse()->getCookies()->add($cookie);
}
}
後配置\ main.php我在成分中添加此
'components' => [
'i18n' => [
'translations' => [
'app' => [
'class' => 'yii\i18n\PhpMessageSource',
//'basepath' => @app/messages,
'sourceLanguage' => 'it',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
],
最後我在根上創建了一個名爲messages \ it和messages \ en的文件夾,並在兩個文件(每個文件夾一個)內部創建了一個名爲app.php的文件夾:
<?php
return [
'Benvenuto' => 'Welcome'
];
這一切......但是當我在語言之一單擊加載我的主頁(正確)後(意大利語或英語),我看到以下消息:
的jquery.js版本= 1.11 0.3:4 POST http://localhost/mdf/frontend/web/index.php?r=site/language 400(錯誤請求)
,如果我嘗試直接將這個網址貼,我只能得到一個空白頁: http://localhost/mdf/frontend/web/index.php?r=site/language
謝謝......我解決了這個空白頁的問題......當然我也經常約400錯誤的要求的其他問題... – Carlo