public function register(Application $app) { $app['translator'] = $app->share(function ($app) { $translator = new Translator($app, $app['translator.message_selector'], $app['translator.cache_dir'], $app['debug']); // Handle deprecated 'locale_fallback' if (isset($app['locale_fallback'])) { $app['locale_fallbacks'] = (array) $app['locale_fallback']; } $translator->setFallbackLocales($app['locale_fallbacks']); $translator->addLoader('array', new ArrayLoader()); $translator->addLoader('xliff', new XliffFileLoader()); foreach ($app['translator.domains'] as $domain => $data) { foreach ($data as $locale => $messages) { $translator->addResource('array', $messages, $locale, $domain); } } return $translator; }); $app['translator.message_selector'] = $app->share(function () { return new MessageSelector(); }); $app['translator.domains'] = array(); $app['locale_fallbacks'] = array('en'); $app['translator.cache_dir'] = null; }
public function register(Application $app) { $app['translator'] = $app->share(function ($app) { $translator = new Translator($app, $app['translator.message_selector'], $app['translator.cache_dir'], $app['debug']); // Handle deprecated 'locale_fallback' if (isset($app['locale_fallback'])) { $app['locale_fallbacks'] = (array) $app['locale_fallback']; } $translator->setFallbackLocales($app['locale_fallbacks']); $translator->addLoader('array', new ArrayLoader()); $translator->addLoader('xliff', new XliffFileLoader()); if (isset($app['validator'])) { $r = new \ReflectionClass('Symfony\\Component\\Validator\\Validation'); $file = dirname($r->getFilename()) . '/Resources/translations/validators.' . $app['locale'] . '.xlf'; if (file_exists($file)) { $translator->addResource('xliff', $file, $app['locale'], 'validators'); } } if (isset($app['form.factory'])) { $r = new \ReflectionClass('Symfony\\Component\\Form\\Form'); $file = dirname($r->getFilename()) . '/Resources/translations/validators.' . $app['locale'] . '.xlf'; if (file_exists($file)) { $translator->addResource('xliff', $file, $app['locale'], 'validators'); } } // Register default resources foreach ($app['translator.resources'] as $resource) { $translator->addResource($resource[0], $resource[1], $resource[2], $resource[3]); } foreach ($app['translator.domains'] as $domain => $data) { foreach ($data as $locale => $messages) { $translator->addResource('array', $messages, $locale, $domain); } } return $translator; }); $app['translator.resources'] = function ($app) { return array(); }; $app['translator.message_selector'] = $app->share(function () { return new MessageSelector(); }); $app['translator.domains'] = array(); $app['locale_fallbacks'] = array('en'); $app['translator.cache_dir'] = null; }