I18n Routing Service Provider
Silex i18n routing service provider inspired by JMSI18nRoutingBundle, (*1)
Installation
Recommended installation is through composer. Just add
the following to your composer.json
file:, (*2)
Silex 1.3
{
"require": {
"jenyak/i18n-routing-service-provider": "~1.0"
}
}
Silex 2
{
"require": {
"jenyak/i18n-routing-service-provider": "dev-master"
}
}
Registering
$app->register(new Jenyak\I18nRouting\Provider\I18nRoutingServiceProvider());
Parameters
-
i18n_routing.translation_domain: Translation domain for routes. The default value is
routes
.
-
i18n_routing.locales: Routing locales. The default value is
array(en)
.
-
locale: Default routing locale. The default value is
en
.
Example
$app = new Application();
//...
$app->register(new Jenyak\I18nRouting\Provider\I18nRoutingServiceProvider());
$app['locale'] = 'en';
$app['i18n_routing.locales'] = array('en', 'hu', 'ua');
// You can translate patterns
$app['translator.domains'] = array('routes' => array(
'hu' => array('test_route' => '/teszt'),
));
// There's no need to put {_locale} in route pattern
$app->get('/test', function () {
//...
})->bind('test_route');
Matched URLs will be:, (*3)
/test
- url for default locale without prefix, (*4)
/hu/teszt
- url with prefix and translated, (*5)
/ua/test
- url with prefix, (*6)