Source of file Translator.php
Size: 3,145 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Config/Processor/Translator.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Config\Processor; use Zend\Config\Config; use Zend\Config\Exception; use Zend\I18n\Translator\Translator as ZendTranslator; class Translator implements ProcessorInterface { /** * @var ZendTranslator */ protected $translator; /** * @var string|null */ protected $locale = null; /** * @var string */ protected $textDomain = 'default'; /** * Translator uses the supplied Zend\I18n\Translator\Translator to find * and translate language strings in config. * * @param ZendTranslator $translator * @param string $textDomain * @param string|null $locale */ public function __construct(ZendTranslator $translator, $textDomain = 'default', $locale = null) { $this->setTranslator($translator); $this->setTextDomain($textDomain); $this->setLocale($locale); } /** * @param ZendTranslator $translator * @return Translator */ public function setTranslator(ZendTranslator $translator) { $this->translator = $translator; return $this; } /** * @return ZendTranslator */ public function getTranslator() { return $this->translator; } /** * @param string|null $locale * @return Translator */ public function setLocale($locale) { $this->locale = $locale; return $this; } /** * @return string|null */ public function getLocale() { return $this->locale; } /** * @param string $textDomain * @return Translator */ public function setTextDomain($textDomain) { $this->textDomain = $textDomain; return $this; } /** * @return string */ public function getTextDomain() { return $this->textDomain; } /** * Process * * @param Config $config * @return Config * @throws Exception\InvalidArgumentException */ public function process(Config $config) { if ($config->isReadOnly()) { throw new Exception\InvalidArgumentException('Cannot process config because it is read-only'); } /** * Walk through config and replace values */ foreach ($config as $key => $val) { if ($val instanceof Config) { $this->process($val); } else { $config->{$key} = $this->translator->translate($val, $this->textDomain, $this->locale); } } return $config; } /** * Process a single value * * @param $value * @return mixed */ public function processValue($value) { return $this->translator->translate($value, $this->textDomain, $this->locale); } } |