%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/public_html/lightingrepublic.com.au/libraries/koowa/translator/
Upload File :
Create Path :
Current File : //home1/lightco1/public_html/lightingrepublic.com.au/libraries/koowa/translator/translator.php

<?php
/**
 * @version		$Id$
 * @package		Koowa_Translator
 * @copyright	Copyright (C) 2007 - 2012 Johan Janssens. All rights reserved.
 * @license		GNU GPLv3 <http://www.gnu.org/licenses/gpl.html>
 * @link     	http://www.nooku.org
 */

/**
 * Translator Class
 *
 * @author		Ercan Ozkaya <ercan@timble.net>
 * @package		Koowa_Translator
 */
class KTranslator extends KObject
{
    protected $_locale;
    
    public function __construct(KConfig $config)
    {
        parent::__construct($config);
        
        $this->setLocale($config->locale);
    }
    
    protected function _initialize(KConfig $config)
    {
        $config->append(array(
            'locale' => 'en-GB'
        ));
        
        parent::_initialize($config);
    }
    
    /**
     * Translates a string and handles parameter replacements
     * 
     * @param string $string String to translate
     * @param array  $parameters An array of parameters
     * 
     * @return string Translated strign
     */
    public function translate($string, array $parameters = array())
    {
        return strtr($string, $parameters);
    }
    
    /**
     * Translates a string based on the number parameter passed
     *
     * @param string  $strings Strings to choose from
     * @param integer $number The umber of items
     * @param array   $parameters An array of parameters
     * 
     * @throws InvalidArgumentException
     *
     * @return string Translated string
     */
    public function choose(array $strings, $number, array $parameters = array())
    {
        if (count($strings) < 2) {
            throw new InvalidArgumentException('Choose method requires at least 2 strings to choose from');
        }
        
        $choice = KTranslatorPluralizationrules::get($number, $this->_locale);
        
        if ($choice > count($strings)-1) {
            $choice = count($strings)-1;
        }
        
        return $this->translate($strings[$choice], $parameters);
    }
    
    public function setLocale($locale)
    {
        $this->_locale = $locale;
        
        return $this;
    }
    
    public function getLocale()
    {
        return $this->_locale;
    }
}

Zerion Mini Shell 1.0