я просто начать использовать Laravel 5.4, В login.blade.php я естьИзменить язык Laravel 5
Я не хотел поставить простой текст в HTML коде, есть решение, чтобы все тексты в отдельных файлах lang использовали их динамически?
Спасибо
я просто начать использовать Laravel 5.4, В login.blade.php я естьИзменить язык Laravel 5
Я не хотел поставить простой текст в 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');
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
в $ middlewareGroupsarray добавить следующую строку:
\App\Http\Middleware\Locale::class,
В routes/web.php
добавить:
Route::get('setlocale/{locale}', function ($locale) {
if (in_array($locale, \Config::get('app.locales'))) {
Session::put('locale', $locale);
}
return redirect()->back();
});
Laravel имеет модуль localization.
В основном вы создаете файл, например: resources/lang/en/login.php
и положить
return [ 'header' => 'Login' ];
И в шаблоне вы используете @lang('login.header')
вместо Login
.
У вас может быть столько файлов в вашем каталоге /resources/lang/en
и с помощью директивы @lang
blade вы поместите свое имя файла (без расширения) и нужное значение, разделенное точкой.
https://laravel.com/docs/5.4/localization – Sebastian