避免不同语言的多条路线
Avoiding Multiple Routes for Different Languages
我正在将我的网站翻译成不同的语言。默认情况下,语言为英语,我使用以下路径到达 return“欢迎”视图:
Route::get('welcome', function ()
{
return view('welcome');
});
对于我的其他语言,我正在使用其他途径:
Route::get('welcome/{locale}', function ($locale)
{
App::setLocale($locale);
return view('welcome');
});
有什么办法可以将这两条路线合二为一吗?例如,如果路由是“welcome”或“welcome/en”,return 英文的“welcome”视图,默认语言。
但是,如果路线是“welcome/fr”,“欢迎”视图应该return用法语编辑。
我将有数百条路线,所以我希望能够合并我的路线。
您的应用程序的默认语言存储在 config/app.php
配置文件中。您可以修改此值以满足您的应用程序的需要。您还可以使用 App
外观上的 setLocale
方法在运行时更改活动语言:
Route::get('welcome/{locale}', function ($locale) {
if (! in_array($locale, ['en', 'es', 'fr'])) {
abort(400);
}
App::setLocale($locale);
//
});
您可以配置“后备语言”,当活动语言不包含给定的翻译字符串时将使用该语言。和默认语言一样,回退语言也在config/app.php
配置文件中配置:
'fallback_locale' => 'en',
有时您可能需要指定路由参数,但该路由参数的存在是可选的。您可以通过在参数名称后放置一个 ?
标记来实现。确保给路由对应的变量一个默认值:
Route::get('welcome/{locale?}', function ($locale = null) {
//
});
我正在将我的网站翻译成不同的语言。默认情况下,语言为英语,我使用以下路径到达 return“欢迎”视图:
Route::get('welcome', function ()
{
return view('welcome');
});
对于我的其他语言,我正在使用其他途径:
Route::get('welcome/{locale}', function ($locale)
{
App::setLocale($locale);
return view('welcome');
});
有什么办法可以将这两条路线合二为一吗?例如,如果路由是“welcome”或“welcome/en”,return 英文的“welcome”视图,默认语言。
但是,如果路线是“welcome/fr”,“欢迎”视图应该return用法语编辑。
我将有数百条路线,所以我希望能够合并我的路线。
您的应用程序的默认语言存储在 config/app.php
配置文件中。您可以修改此值以满足您的应用程序的需要。您还可以使用 App
外观上的 setLocale
方法在运行时更改活动语言:
Route::get('welcome/{locale}', function ($locale) {
if (! in_array($locale, ['en', 'es', 'fr'])) {
abort(400);
}
App::setLocale($locale);
//
});
您可以配置“后备语言”,当活动语言不包含给定的翻译字符串时将使用该语言。和默认语言一样,回退语言也在config/app.php
配置文件中配置:
'fallback_locale' => 'en',
有时您可能需要指定路由参数,但该路由参数的存在是可选的。您可以通过在参数名称后放置一个 ?
标记来实现。确保给路由对应的变量一个默认值:
Route::get('welcome/{locale?}', function ($locale = null) {
//
});