Я хочу добавить многоязычную поддержку на свой сайт, но я не знаю, как реализовать ее лучше всего. Документация Laravel (https://laravel.com/docs/5.3/localization) очень редка, поэтому я провел некоторое исследование, но все, похоже, используют другое решение и используют URL-адреса с языком внутри него - например, example.com/en/pagename
.Как добавить многоязычный язык в Laravel 5.3 с помощью СЕССИИ
Я хочу схему URL без тега языка. Что-то вроде этого: example.com/pagename
Теперь, в зависимости от языка пользователей, URL должны быть переведены:
example.com/pagename (english)
example.com/seitenname (german)
Исходный язык должен быть обнаружен с помощью настроек браузера/языка. Пользователь также должен иметь возможность переключаться между предоставленными языками.
На моем сайте пользователь может зарегистрироваться для учетной записи. Он сможет сохранить свой предпочтительный язык в базе данных - скажем, в таблице users
в поле pref_lang
. Чтобы это было просто в этом случае, это просто строка типа «en» (английский) или «de» (немецкий).
Переводя маршрутов легко путем создания языковых файлов, как это:
// resources/lang/de/routes.php
return array(
'contact' => 'kontakt',
'pagename' => 'seitenname'
);
... и один для EN:
// resources/lang/en/routes.php
return array(
'contact' => 'contact',
'pagename' => 'pagename'
);
... combinded с такими маршрутами, например:
// routes/web.php
Route::get('/', function() {
return view('pages.dashboard');
});
Route::get('/{contact}', function() {
return view('pages.contact');
});
Route::get('/{pay2gether-system}', function() {
return view('pages.pagename');
});
Теперь только вопрос, как я могу создать такую кнопку «языкового переключателя», сохранить язык с настройки браузера/действие переключателя или из базы данных на СЕССИИ и как я могу повторно использовать ее для маршрутов и URL-адресов в тегах HTML <a href="#">
?
Спасибо, но где Laravel читает первый/по умолчанию язык из браузера, если он еще не установлен в базе данных? Это пропало, или? Кроме того: я не хочу хранить язык в подобном '{{url ('/'). '? language ='. $ language}} ', но в файле cookie/session. Разве это невозможно? – user2966991
В базе данных есть значение по умолчанию, оно установлено в 'en'. Вы можете изменить его на все, что захотите. – tomirons