/** * Gets the translator required for checking the DoubleLocale tests (en_UK etc) */ private function getNonRedirectingHostMapRouter($config = 'routing.yml') { $container = new Container(); $container->set('routing.loader', new YamlFileLoader(new FileLocator(__DIR__ . '/Fixture'))); $translator = new Translator('en_UK', new MessageSelector()); $translator->setFallbackLocales(array('en')); $translator->addLoader('yml', new TranslationLoader()); $translator->addResource('yml', __DIR__ . '/Fixture/routes.en_UK.yml', 'en_UK', 'routes'); $translator->addResource('yml', __DIR__ . '/Fixture/routes.en_US.yml', 'en_US', 'routes'); $translator->addResource('yml', __DIR__ . '/Fixture/routes.nl.yml', 'nl', 'routes'); $translator->addResource('yml', __DIR__ . '/Fixture/routes.en.yml', 'en', 'routes'); $container->set('i18n_loader', new I18nLoader(new DefaultRouteExclusionStrategy(), new DefaultPatternGenerationStrategy('custom', $translator, array('en_UK', 'en_US', 'nl_NL', 'nl_BE'), sys_get_temp_dir(), 'routes', 'en_UK'))); $router = new I18nRouter($container, $config); $router->setRedirectToHost(false); $router->setI18nLoaderId('i18n_loader'); $router->setDefaultLocale('en_UK'); $router->setHostMap(array('en_UK' => 'uk.test', 'en_US' => 'us.test', 'nl_NL' => 'nl.test', 'nl_BE' => 'be.test')); return $router; }
private function getRouter($config = 'routing.yml', $translator = null) { $container = new Container(); $container->set('routing.loader', new YamlFileLoader(new FileLocator(__DIR__ . '/Fixture'))); if (null === $translator) { $translator = new Translator('en', new MessageSelector()); $translator->setFallbackLocale('en'); $translator->addLoader('yml', new TranslationLoader()); $translator->addResource('yml', file_get_contents(__DIR__ . '/Fixture/routes.de.yml'), 'de', 'routes'); $translator->addResource('yml', file_get_contents(__DIR__ . '/Fixture/routes.en.yml'), 'en', 'routes'); } $container->set('i18n_loader', new I18nLoader($translator, array('en', 'de', 'fr'), 'en', 'routes', 'custom', sys_get_temp_dir())); $router = new I18nRouter($container, $config); $router->setI18nLoaderId('i18n_loader'); $router->setDefaultLocale('en'); return $router; }