<?php 
 
/** 
 * 
 * LICENSE 
 * 
 * This source file is subject to the new BSD license 
 * It is  available through the world-wide-web at this URL: 
 * http://www.petala-azul.com/bsd.txt 
 * If you did not receive a copy of the license and are unable to 
 * obtain it through the world-wide-web, please send an email 
 * to [email protected] so we can send you a copy immediately. 
 * 
 * @package    Bvb_Grid 
 * @copyright  Copyright (c)  (http://www.petala-azul.com) 
 * @license    http://www.petala-azul.com/bsd.txt   New BSD License 
 * @version    $Id$ 
 * @author     Bento Vilas Boas <[email protected] > 
 */ 
class Bvb_Grid_Translator 
{ 
 
    /** 
     * Class Instance 
     * 
     * @var mixed 
     */ 
    protected static $_instance = null; 
 
    /** 
     * @var Zend_Translate 
     */ 
    protected $_translator = null; 
 
 
    /** 
     * Protect from instantiation 
     * 
     * @return void 
     */ 
    final protected function __construct () 
    { 
    } 
 
 
    /** 
     * Translator instante 
     * 
     * @return Zend_Translate 
     */ 
    public static function getInstance () 
    { 
        if ( self::$_instance === null ) { 
            self::$_instance = new self(); 
        } 
        return self::$_instance; 
    } 
 
 
    /** 
     * Defines translator 
     * 
     * @param Zend_Translate $translator 
     * 
     * @return Zend_Translate 
     */ 
    public function setTranslator (Zend_Translate $translator) 
    { 
        $this->_translator = $translator; 
        return $this; 
    } 
 
 
    /** 
     * Returns current translator 
     * 
     * @return Zend_Translate 
     */ 
    public function getTranslator () 
    { 
        if ( $this->_translator instanceof Zend_Translate ) { 
            return $this->_translator; 
        } elseif ( Zend_Registry::isRegistered('Zend_Translate') ) { 
            $this->_translator = Zend_Registry::get('Zend_Translate'); 
        } 
        return $this->_translator; 
    } 
 
 
    /** 
     * Translate a string 
     * 
     * @param string $message 
     * 
     * @return string 
     */ 
    public function __ ($message) 
    { 
        if ( strlen($message) == 0 ) { 
            return $message; 
        } 
        if ( $this->getTranslator() ) { 
            return $this->getTranslator() 
                ->translate($message); 
        } 
        return $message; 
    } 
 
 
    /** 
     * Checks if a string is translatable 
     * 
     * @param string $message 
     * 
     * @return mixed 
     */ 
    public function isTranslated ($message) 
    { 
        if ( strlen($message) == 0 ) { 
            return false; 
        } 
        if ( $this->getTranslator() ) { 
            return $this->_translator 
                ->isTranslated($message); 
        } 
        return false; 
    } 
 
    /** 
     * Protect from instantiation 
     * 
     * @return void 
     */ 
    final protected function __clone () 
    { 
    } 
} 
 
 |