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');
 }