国際化を使用してページを変更しようとすると、高度なテンプレートに問題があります。 私は説明しようとします。私は、この手順に従う必要があり、私のサイト上で国際化を使用するには:Yii2 - 言語の変更
<?php
return [
'adminEmail' => '[email protected]',
'languages' => [
'en' => 'English',
'it' => 'Italian',
],
];
私は私のフロントエンド\ビュー\レイアウトでこれを追加した\にmain.php:params.phpで
を、私は、この追加しました私はmain.js.という名前の新しいファイルを作成した後
<?php
foreach(Yii::$app->params['languages'] as $key => $language){
echo '<span class="language" id ="'.$key.'">'.$language.' | </span>';
}
?>
:言語は、上記挿入私のウェブサイト上で呼び出しますyii2がmain.jsファイルを見ることを許可するために、AppAsset.phpにこれを追加しました(これは正しいですか?)。私はコンポーネントでこれを追加したのconfig \のmain.phpで後
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);
}
}
:
私はこれを追加した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'));
});
});
:このファイルでは、私はこれを挿入します
'components' => [
'i18n' => [
'translations' => [
'app' => [
'class' => 'yii\i18n\PhpMessageSource',
//'basepath' => @app/messages,
'sourceLanguage' => 'it',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
],
最後に私は、メッセージ\ itとmessages \ enというフォルダを作成し、app.phpという2つのファイル(フォルダごとに1つ)を作成しました。このテキストを挿入しました:
すべてです<?php
return [
'Benvenuto' => 'Welcome'
];
...しかし、私は、言語の1(イタリア語または英語)をクリックしたとき、私のホーム・ページ(正しく)をロードした後、私は次のメッセージを参照してください。版= 1.11
jquery.jsを? 0.3:4 POST http://localhost/mdf/frontend/web/index.php?r=site/language 400(不正なリクエスト)
そして、私が直接このURLを貼り付けしようとすると、私は空白のページを取得: http://localhost/mdf/frontend/web/index.php?r=site/language
AJAXを管理しようと自然に私は常にエラー400不正なリクエストに関する他の問題を抱えている...私は空白のページの問題を解決し...ありがとう... – Carlo