#php #laravel #laravel-5 #laravel-blade #lang
Вопрос:
Я новичок в laravell и хотел бы понять, как лучше всего переключаться между двумя языками.
Мой сайт использует только два языка. Я хочу создать простой переключатель языков. Вот мой HTML ->, который должен отображать язык, на который я хочу переключиться. Не показывать текущий язык.
Например. Если я нахожусь на www.test.com/en мой html говорит
<a class="lang-switch">German</a>
Поэтому, когда я нажимаю на него, я приземляюсь на
И теперь мой html должен сказать
<a class="lang-switch">English</a>
Вот как я выполняю свою языковую маршрутизацию.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) amp;amp; in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('home');
});
Route::get('/{locale?}/contact/', function ($locale = null) {
if (isset($locale) amp;amp; in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('contact');
});
Мне нужен этот переключатель для работы на обоих веб-сайтах, так как это статическая панель навигации.
Я регистрирую свои локали в своем app.php
файле
'available_locales' => [
'English' => 'en',
'German' => 'de',
],
Я создал языковой контроллер, но я не уверен, как его правильно реализовать или использовать.
class LanguageController extends Controller
{
public function switchLang($lang)
{
if (array_key_exists($lang, Config::get('languages'))) {
Session::put('applocale', $lang);
}
return Redirect::back();
}
}
Ответ №1:
app()->setLocale("de")
чтобы задать язык приложения
app()->getLocale()
чтобы получить язык приложения
возможно, вам потребуется проверить документацию laravel для получения подробного описания