Prado\I18N\core\MessageSource_gettext::delete PHP 메소드

delete() 공개 메소드

Delete a particular message from the specified catalogue.
public delete ( $message, $catalogue = 'messages' ) : boolean
리턴 boolean true if deleted, false otherwise.
    function delete($message, $catalogue = 'messages')
    {
        $variants = $this->getVariants($catalogue);
        if ($variants) {
            list($variant, $MOFile, $POFile) = $variants;
        } else {
            return false;
        }
        if (is_writable($MOFile) == false) {
            throw new TIOException("Unable to modify file {$MOFile}, file must be writable.");
        }
        if (is_writable($POFile) == false) {
            throw new TIOException("Unable to modify file {$POFile}, file must be writable.");
        }
        $po = TGettext::factory('PO', $POFile);
        $po->load();
        $result = $po->toArray();
        foreach ($result['strings'] as $string => $value) {
            if ($string == $message) {
                $result['meta']['PO-Revision-Date'] = @date('Y-m-d H:i:s');
                unset($result['strings'][$string]);
                $po->fromArray($result);
                $mo = $po->toMO();
                if ($po->save() && $mo->save($MOFile)) {
                    if (!empty($this->cache)) {
                        $this->cache->clean($variant, $this->culture);
                    }
                    return true;
                } else {
                    return false;
                }
            }
        }
        return false;
    }