2016-05-06 9 views
1

ブラウザのフロントエンド部分でlaravel言語のデータを使いたいです。laravel言語(ローカリゼーション)データ全体を表示するにはどうすればよいですか?

したがって、フロントエンド部分で同じ翻訳を表示するために、jsにsprintfを使用することができます。

私はそれが大きなjavascriptオブジェクトであることを望みます。それは非常に簡単で使いやすいでしょう。

ありがとうございます。

答えて

1

これは私が自分で処理した状況であり、答えは少し厄介です。

Lang::get('file')を使用してファイル全体を配列として出力できます。json_encodeと一緒に使用すると、まったく同じことができます。 しかし、は、知っている限り、すべての言語ファイルを取得することはできません。これはおそらく、Laravelが多くのディスクリソースを消費せずにすべてのファイル名のディレクトリをスキャンすることができないため、正常に実行されません。言語はすべての該当するケースで遅延読み込みで処理されます。

しかし!あなたができることは、すべてのJavaScript関連の言語を1つのファイルに入れておくことです。私は私のwidgets.phpと呼ばれ、json_encode(Lang::get('widget'))を実行して、1つのオブジェクトでJavaScript関連の言語を取得します。

また、実際にすべてが必要な場合は、手動で構築することもできます。

$lang = ['auth', 'validation', 'etc']; 

for ($files as $file) 
{ 
    $lang[$file] = Lang::get($file); 
} 

return json_encode($lang); 
+1

感謝を。私はこの 'view() - > share( 'lang'、Lang :: get($ lang));'のように 'AppServiceProvider.php'に登録しました。 – shrekuu

0

私は、クッキーを使用するのが最も簡単な方法だと思います。 Set coockie with Laravel

$cookie = Cookie::make($name, $value); 

その後JSでそれを読み、解析:

var x = document.cookie; 
関連する問題