has('Zend\I18n\Translator\TranslatorInterface')) { return new MvcTranslator($serviceLocator->get('Zend\I18n\Translator\TranslatorInterface')); } // Load a translator from configuration, if possible if ($serviceLocator->has('Config')) { $config = $serviceLocator->get('Config'); // 'translator' => false if (array_key_exists('translator', $config) && $config['translator'] === false) { return new MvcTranslator(new DummyTranslator()); } // 'translator' => array( ... translator options ... ) if (array_key_exists('translator', $config) && ((is_array($config['translator']) && !empty($config['translator'])) || $config['translator'] instanceof Traversable) ) { $i18nTranslator = Translator::factory($config['translator']); $i18nTranslator->setPluginManager($serviceLocator->get('TranslatorPluginManager')); $serviceLocator->setService('Zend\I18n\Translator\TranslatorInterface', $i18nTranslator); return new MvcTranslator($i18nTranslator); } } // If ext/intl is not loaded, return a dummy translator if (!extension_loaded('intl')) { return new MvcTranslator(new DummyTranslator()); } // For BC purposes (pre-2.3.0), use the I18n Translator return new MvcTranslator(new Translator()); } }