Commit c8718a32 authored by Taylor Otwell's avatar Taylor Otwell

added option for URI languages.

parent 1879e657
......@@ -84,7 +84,7 @@ return array(
/*
|--------------------------------------------------------------------------
| Application Language
| Default Application Language
|--------------------------------------------------------------------------
|
| The default language of your application. This language will be used by
......@@ -94,6 +94,19 @@ return array(
'language' => 'en',
/*
|--------------------------------------------------------------------------
| Supported Languages
|--------------------------------------------------------------------------
|
| These languages may also be supported by your application. If a request
| enters your application with a URI beginning with one of these values
| the default language will automatically be set to that language.
|
*/
'languages' => array('fr', 'sp'),
/*
|--------------------------------------------------------------------------
| SSL Link Generation
......
......@@ -107,6 +107,46 @@ Routing\Router::register('*', '(:all)', function()
return Event::first('404');
});
/*
|--------------------------------------------------------------------------
| Gather The URI And Locales
|--------------------------------------------------------------------------
|
| When routing, we'll need to grab the URI and the supported locales for
| the route so we can properly set the language and route the request
| to the proper end-point in the application.
|
*/
$uri = URI::current();
$locales = Config::get('application.languages', array());
$locales[] = Config::get('application.language');
/*
|--------------------------------------------------------------------------
| Set The Locale Based On Route
|--------------------------------------------------------------------------
|
| If the URI starts with one of the supported languages, we will set
| the default language to match that URI segment and shorten the
| URI we'll pass to the router to not include the lang segment.
|
*/
foreach ($locales as $locale)
{
if (starts_with($uri, $locale))
{
Config::set('application.language', $locale);
$uri = trim(substr($uri, strlen($locale)), '/'); break;
}
}
if ($uri === '') $uri = '/';
/*
|--------------------------------------------------------------------------
| Route The Incoming Request
......@@ -118,8 +158,6 @@ Routing\Router::register('*', '(:all)', function()
|
*/
$uri = URI::current();
Request::$route = Routing\Router::route(Request::method(), $uri);
$response = Request::$route->call();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment