public function testCollectMergesWithExisting() { i18n::set_locale('en_US'); i18n::config()->update('default_locale', 'en_US'); i18n::include_by_locale('en'); i18n::include_by_locale('en_US'); $c = new i18nTextCollector(); $c->setWriter(new i18nTextCollector_Writer_RailsYaml()); $c->basePath = $this->alternateBasePath; $c->baseSavePath = $this->alternateBaseSavePath; $entitiesByModule = $c->collect(null, true); $this->assertArrayHasKey('i18nTestModule.ENTITY', $entitiesByModule['i18ntestmodule'], 'Retains existing entities'); $this->assertArrayHasKey('i18nTestModule.NEWENTITY', $entitiesByModule['i18ntestmodule'], 'Adds new entities'); }
/** * @param Zend_Translate $translator Needs to implement {@link i18nTranslateAdapterInterface} * @param string $name If left blank will override the default translator. * @param int $priority */ public static function register_translator($translator, $name, $priority = 10) { if (!is_int($priority)) { throw new InvalidArgumentException("register_translator expects an int priority"); } // Ensure it's not there. If it is, we're replacing it. It may exist in a different priority. self::unregister_translator($name); // Add our new translator if (!isset(self::$translators[$priority])) { self::$translators[$priority] = array(); } self::$translators[$priority][$name] = $translator; // Resort array, ensuring highest priority comes first krsort(self::$translators); i18n::include_by_locale('en_US'); i18n::include_by_locale('en'); }