有一种简单的方法可以在Laravel 5.4中翻译我的路线。我的翻译文件位于此处:
/resources
/lang
/en
routes.php
/de
routes.php
在我的web.php中,我定义了这样的路线:
Route::get('/{locale}', function ($locale) {
App::setLocale($locale);
return view('welcome');
});
Route::get('{locale}/contact', 'ContactController@index');
我为Laravel 4找到了非常精细的解决方案或解决方案。我确信Laravel还提供了一个简单的解决方案。有人可以向我解释最好的方法吗?
感谢。
答案 0 :(得分:2)
我们通常会这样做
获取当前语言:
$request = request()->segment(1);
$language = null;
if (!empty($request) && in_array($request,config('translatable.locales'))) {
$language = $request;
App::setLocale($language);
} else {
$language = 'nl';
}
路线:
Route::group(['prefix' => $language], function () {
Route::get(trans('routes.newsletter'), array('as' => 'newsletter.index', 'uses' => 'NewsletterController@index'));
答案 1 :(得分:1)
我在配置文件夹中创建了一个文件translatable.php:
<?php
return [
'locales' => ['en', 'de'],
];
web.php:
$request = request()->segment(1);
$language = null;
if (!empty($request) && in_array($request,config('translatable.locales'))) {
$language = $request;
App::setLocale($language);
} else {
$language = 'de';
}
Route::get('/', function() {
return redirect()->action('WelcomeController@index');
});
Route::group(['prefix' => $language], function () {
/*
Route::get('/', function(){
return View::make('welcome');
});
*/
Route::get('/',
array( 'as' => 'welcome.index',
'uses' => 'WelcomeController@index'));
Route::get(trans('routes.contact'),
array('as' => 'contact.index',
'uses' => 'ContactController@index'));
});
工作正常 - 谢谢。重定向也是最佳做法吗? 最好的问候