Skip to content

Instantly share code, notes, and snippets.

@burakerdem
Created February 25, 2014 12:11
Show Gist options
  • Save burakerdem/9207714 to your computer and use it in GitHub Desktop.
Save burakerdem/9207714 to your computer and use it in GitHub Desktop.
Laravel 4 multilanguage site
App::before(function($request)
{
// default browser language
$language = substr($request->server->get('HTTP_ACCEPT_LANGUAGE'), 0, 2);
// language set from route
if (null !== $request->segment(1)) {
$routeLanguage = $request->segment(1);
if (! in_array($routeLanguage, Config::get('site.languages'))) {
return Redirect::to('en');
}
} else {
return Redirect::to('en');
}
});
// default browser language
$language = substr(Request::server('HTTP_ACCEPT_LANGUAGE'), 0, 2);
// language set from route
if (null !== Request::segment(1)) {
$locale = Request::segment(1);
if (in_array($locale, Config::get('site.languages'))) {
$language = $locale;
}
}
// set the language
Config::set('app.locale', $language);
App::setLocale($language);
Route::group(array('prefix' => $locale), function()
{
Route::get('/', array('as' => 'homepage', 'uses' => 'HomeController@index'));
Route::group(array('before' => 'auth'), function()
{
Route::get('dashboard', array('as' => 'user.dashboard', 'uses' => 'UserController@dashboard'));
});
Route::group(array('prefix' => 'admin'), function()
{
Route::get('/', array('as' => 'admin.dashboard', 'uses' => 'admin\DashboardController@index'));
});
Route::when('*/admin/*', 'admin.auth');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment