The documentation of laravel говорит:Как реализовать локализацию, когда в URL-адресе имеется несколько динамических значений?
Вы также можете изменить активный язык во время выполнения с помощью метода Setlocale на App фасада:
Route::get('welcome/{locale}', function ($locale) { App::setLocale($locale); // });
Также он говорит:
по умолчанию язык для вашего приложения хранится в файле конфигурации
config/app.php
.
Что означает, если не любое значение, которое специфика языка, то Laravel будет использоваться язык по умолчанию (который определяется там).
Хорошо, а как насчет того, когда в URL-адресе присутствует динамическое значение? Я имею в виду, как я могу определить язык, если в URL есть или нет {locale}
. Например:
Route::get('post/{locale}/{id}', function ($locale, Request $request) {
App::setLocale($locale);
$post_id = $request->segment(2);
// search in the database based on $post_id
});
Как вы видите, я получил пост идентификатор URL с помощью segment(2)
. Но он не будет работать все время. Потому что иногда {locale}
не будет установлен (и мы ожидаем, что laravel использует язык по умолчанию). В этом случае мне нужно использовать segment(1)
для достижения идентификатора сообщения.
В любом случае, как я могу реализовать локализацию , если в URL есть другие динамические значения?
ли опечатка, что 'Route :: получить ('пост/{локали} {идентификатор}' , 'должно быть как' Route :: get ('post/{locale}/{id}', '? –