/** * Load a particular message catalogue. Use read() to * to get the array of messages. The catalogue loading sequence * is as follows * * # [1] call getCatalogeList($catalogue) to get a list of * variants for for the specified $catalogue. * # [2] for each of the variants, call getSource($variant) * to get the resource, could be a file or catalogue ID. * # [3] verify that this resource is valid by calling isValidSource($source) * # [4] try to get the messages from the cache * # [5] if a cache miss, call load($source) to load the message array * # [6] store the messages to cache. * # [7] continue with the foreach loop, e.g. goto [2]. * * @param string a catalogue to load * @return boolean true if loaded, false otherwise. * @see read() */ function load($catalogue = 'messages') { $variants = $this->getCatalogueList($catalogue); $this->messages = array(); foreach ($variants as $variant) { $source = $this->getSource($variant); if ($this->isValidSource($source) == false) { continue; } $loadData = true; if ($this->cache) { $data = $this->cache->get($variant, $this->culture, $this->getLastModified($source)); if (is_array($data)) { $this->messages[$variant] = $data; $loadData = false; } unset($data); } if ($loadData) { $data =& $this->loadData($source); if (is_array($data)) { $this->messages[$variant] = $data; if ($this->cache) { $this->cache->save($data, $variant, $this->culture); } } unset($data); } } return true; }