Laravel 5.4、login.blade.phpには
私はプレーンテキストをhtmlコードに入れたくないのですが、すべてのテキストを個別のlangファイルに作成して動的に使用する解決策はありますか?
ありがとうございました
_resources/lang
_フォルダーには、ローカライズファイルが含まれています。ファイル名は、使用されるビューに対応しています。このファイルから値を取得するには、次のコードを使用するだけです。
Lang::get('localization_file_name.variable_name');
言語選択の可能性を実現したい場合は、いくつかの簡単な手順を適用するだけで済みます。
_config/app.php
_に次のコードを追加します。
_'locale' => 'ru',
'locales' => ['ru', 'en'],
_
ロケールの名前は任意です。
_app/Http/Middleware
_で、_Locale.php
_という名前の新しいファイルを作成します。ファイルの内容は次のようになります。
_<?php
namespace App\Http\Middleware;
use Closure;
use App;
use Config;
use Session;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
//$raw_locale = Session::get('locale');
$raw_locale = $request->session()->get('locale');
if (in_array($raw_locale, Config::get('app.locales'))) {
$locale = $raw_locale;
}
else $locale = Config::get('app.locale');
App::setLocale($locale);
return $next($request);
}
}
_
_app/Http/Kernel.php
_の_$middlewareGroups=[ ... ]
_に次の行を追加します。
_\App\Http\Middleware\Locale::class,
_
_routes/web.php
_に追加:
_Route::get('setlocale/{locale}', function ($locale) {
if (in_array($locale, \Config::get('app.locales'))) {
session(['locale' => $locale]);
}
return redirect()->back();
});
_
これを試して!
_{{ @lang('messages.login') }}
_
次のように、言語ファイルの下に値を持つログインキーを追加します
_return['login'=>'Login']; // write inside messages file
_
_'en','nl','us'
_のようなAPP Configローカル変数を設定します
App::setLocale(language name); like 'en','nl','us'
Laravelには localization モジュールがあります。
基本的に、ファイルを作成します。例:_resources/lang/en/login.php
_およびput
_return [
'header' => 'Login'
];
_
テンプレートでは、Login
の代わりに@lang('login.header')
を使用します。
_/resources/lang/en
_ディレクトリにいくつでもファイルを作成し、_@lang
_ブレードディレクティブを使用して、ファイル名(拡張子なし)と目的の値をドットで区切って配置できます。