protected function extractMessages($resultset, $offset, $limit) { $messages = $documents = $ret = array(); $language = $this->params['language']; foreach ($resultset->getResults() as $document) { $data = $document->getData(); if (!$this->server->isLocalSuggestion($data)) { continue; } $title = Title::newFromText($data['localid']); if (!$title) { continue; } $handle = new MessageHandle($title); if (!$handle->isValid()) { continue; } $key = $title->getNamespace() . ':' . $title->getDBKey(); $messages[$key] = $data['content']; } $definitions = new MessageDefinitions($messages); $collection = MessageCollection::newFromDefinitions($definitions, $language); $filter = $this->params['filter']; if ($filter === 'untranslated') { $collection->filter('hastranslation', true); } elseif (in_array($filter, $this->getAvailableFilters())) { $collection->filter($filter, false); } $total = count($collection); $offset = $collection->slice($offset, $limit); $left = count($collection); $offsets = array('start' => $offset[2], 'left' => $left, 'total' => $total); if ($filter === 'translated' || $filter === 'fuzzy') { $collection->loadTranslations(); } foreach ($collection->keys() as $mkey => $title) { $documents[$mkey]['content'] = $messages[$mkey]; if ($filter === 'translated' || $filter === 'fuzzy') { $documents[$mkey]['content'] = $collection[$mkey]->translation(); } $handle = new MessageHandle($title); $documents[$mkey]['localid'] = $handle->getTitleForBase()->getPrefixedText(); $documents[$mkey]['language'] = $language; $ret[] = $documents[$mkey]; } return array($ret, $offsets); }
/** * @param string $code Language code. * @return MessageCollection */ public function initCollection($code) { $namespace = $this->getNamespace(); $messages = array(); $cache = new MessageGroupCache($this, $this->getSourceLanguage()); if (!$cache->exists()) { wfWarn("By-passing message group cache for {$this->getId()}"); $messages = $this->getDefinitions(); } else { foreach ($cache->getKeys() as $key) { $messages[$key] = $cache->get($key); } } $definitions = new MessageDefinitions($messages, $namespace); $collection = MessageCollection::newFromDefinitions($definitions, $code); $this->setTags($collection); return $collection; }
public function initCollection($code) { $messages = $this->loadMessagesFromCache($this->getGroups()); $namespace = $this->getNamespace(); $definitions = new MessageDefinitions($messages, $namespace); $collection = MessageCollection::newFromDefinitions($definitions, $code); $this->setTags($collection); return $collection; }
/** * Creates a new MessageCollection for this group. * * @param $code \string Language code for this collection. * @param $unique \bool Whether to build collection for messages unique to this * group only. * @return MessageCollection */ public function initCollection($code, $unique = false) { if (!$unique) { $definitions = $this->getDefinitions(); } else { $definitions = $this->getUniqueDefinitions(); } $defs = new MessageDefinitions($definitions, $this->getNamespace()); $collection = MessageCollection::newFromDefinitions($defs, $code); foreach ($this->getTags() as $type => $tags) { $collection->setTags($type, $tags); } return $collection; }
public function initCollection( $code ) { $messages = array(); foreach ( $this->getGroups() as $group ) { $cache = new MessageGroupCache( $group ); if ( $cache->exists() ) { foreach ( $cache->getKeys() as $key ) { $messages[$key] = $cache->get( $key ); } } else { // BC for MessageGroupOld $messages += $group->load( $this->getSourceLanguage() ); } } $namespace = $this->getNamespace(); $definitions = new MessageDefinitions( $messages, $namespace ); $collection = MessageCollection::newFromDefinitions( $definitions, $code ); $this->setTags( $collection ); return $collection; }
/** * Creates a new MessageCollection for this group. * * @param $code \string Language code for this collection. * @param $unique \bool Whether to build collection for messages unique to this * group only. * @return MessageCollection */ public function initCollection( $code, $unique = false ) { if ( !$unique ) { $definitions = $this->getDefinitions(); } else { $definitions = $this->getUniqueDefinitions(); } $defs = new MessageDefinitions( $definitions, $this->namespaces[0] ); $collection = MessageCollection::newFromDefinitions( $defs, $code ); $bools = $this->getBools(); $collection->setTags( 'ignored', $bools['ignored'] ); $collection->setTags( 'optional', $bools['optional'] ); return $collection; }