Skip to content
This repository has been archived by the owner on Jan 8, 2020. It is now read-only.

Commit

Permalink
Merge pull request #5108 from DASPRiD/hotfix/4879
Browse files Browse the repository at this point in the history
Hotfix/4879
  • Loading branch information
weierophinney committed Oct 22, 2013
2 parents c23c250 + 23d79c4 commit 6565aac
Show file tree
Hide file tree
Showing 13 changed files with 163 additions and 59 deletions.
18 changes: 9 additions & 9 deletions library/Zend/Config/Processor/Translator.php
Expand Up @@ -11,12 +11,12 @@

use Zend\Config\Config;
use Zend\Config\Exception;
use Zend\I18n\Translator\Translator as ZendTranslator;
use Zend\I18n\Translator\TranslatorInterface;

class Translator implements ProcessorInterface
{
/**
* @var ZendTranslator
* @var TranslatorInterface
*/
protected $translator;

Expand All @@ -34,29 +34,29 @@ class Translator implements ProcessorInterface
* 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
* @param TranslatorInterface $translator
* @param string $textDomain
* @param string|null $locale
*/
public function __construct(ZendTranslator $translator, $textDomain = 'default', $locale = null)
public function __construct(TranslatorInterface $translator, $textDomain = 'default', $locale = null)
{
$this->setTranslator($translator);
$this->setTextDomain($textDomain);
$this->setLocale($locale);
}

/**
* @param ZendTranslator $translator
* @param TranslatorInterface $translator
* @return Translator
*/
public function setTranslator(ZendTranslator $translator)
public function setTranslator(TranslatorInterface $translator)
{
$this->translator = $translator;
return $this;
}

/**
* @return ZendTranslator
* @return TranslatorInterface
*/
public function getTranslator()
{
Expand Down
16 changes: 8 additions & 8 deletions library/Zend/File/Transfer/Adapter/AbstractAdapter.php
Expand Up @@ -14,7 +14,7 @@
use Zend\File\Transfer\Exception;
use Zend\Filter;
use Zend\Filter\Exception as FilterException;
use Zend\I18n\Translator\Translator;
use Zend\I18n\Translator\TranslatorInterface;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\Stdlib\ErrorHandler;
use Zend\Validator;
Expand Down Expand Up @@ -73,7 +73,7 @@ abstract class AbstractAdapter implements TranslatorAwareInterface
protected $messages = array();

/**
* @var Translator
* @var TranslatorInterface
*/
protected $translator;

Expand Down Expand Up @@ -1004,13 +1004,13 @@ public function getDestination($files = null)
/**
* Sets translator to use in helper
*
* @param Translator $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @param TranslatorInterface $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @return AbstractAdapter
*/
public function setTranslator(Translator $translator = null, $textDomain = null)
public function setTranslator(TranslatorInterface $translator = null, $textDomain = null)
{
$this->translator = $translator;
if (null !== $textDomain) {
Expand All @@ -1022,7 +1022,7 @@ public function setTranslator(Translator $translator = null, $textDomain = null)
/**
* Retrieve localization translator object
*
* @return Translator|null
* @return TranslatorInterface|null
*/
public function getTranslator()
{
Expand Down
2 changes: 1 addition & 1 deletion library/Zend/I18n/Translator/Translator.php
Expand Up @@ -23,7 +23,7 @@
/**
* Translator.
*/
class Translator
class Translator implements TranslatorInterface
{
/**
* Event fired when the translation for a message is missing.
Expand Down
12 changes: 6 additions & 6 deletions library/Zend/I18n/Translator/TranslatorAwareInterface.php
Expand Up @@ -14,18 +14,18 @@ interface TranslatorAwareInterface
/**
* Sets translator to use in helper
*
* @param Translator $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @param TranslatorInterface $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @return TranslatorAwareInterface
*/
public function setTranslator(Translator $translator = null, $textDomain = null);
public function setTranslator(TranslatorInterface $translator = null, $textDomain = null);

/**
* Returns translator used in object
*
* @return Translator|null
* @return TranslatorInterface|null
*/
public function getTranslator();

Expand Down
6 changes: 2 additions & 4 deletions library/Zend/I18n/Translator/TranslatorAwareTrait.php
Expand Up @@ -9,12 +9,10 @@

namespace Zend\I18n\Translator;

use Zend\I18n\Translator\Translator;

trait TranslatorAwareTrait
{
/**
* @var Translator
* @var TranslatorInterface
*/
protected $translator = null;

Expand All @@ -35,7 +33,7 @@ trait TranslatorAwareTrait
* @param string $textDomain
* @return mixed
*/
public function setTranslator(Translator $translator = null, $textDomain = null)
public function setTranslator(TranslatorInterface $translator = null, $textDomain = null)
{
$this->translator = $translator;

Expand Down
45 changes: 45 additions & 0 deletions library/Zend/I18n/Translator/TranslatorInterface.php
@@ -0,0 +1,45 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/

namespace Zend\I18n\Translator;

/**
* Translator interface.
*/
interface TranslatorInterface
{
/**
* Translate a message.
*
* @param string $message
* @param string $textDomain
* @param string $locale
* @return string
*/
public function translate($message, $textDomain = 'default', $locale = null);

/**
* Translate a plural message.
*
* @param string $singular
* @param string $plural
* @param int $number
* @param string $textDomain
* @param string|null $locale
* @return string
* @throws Exception\OutOfBoundsException
*/
public function translatePlural(
$singular,
$plural,
$number,
$textDomain = 'default',
$locale = null
);
}
16 changes: 8 additions & 8 deletions library/Zend/I18n/View/Helper/AbstractTranslatorHelper.php
Expand Up @@ -9,7 +9,7 @@

namespace Zend\I18n\View\Helper;

use Zend\I18n\Translator\Translator;
use Zend\I18n\Translator\TranslatorInterface;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\View\Helper\AbstractHelper;

Expand All @@ -19,7 +19,7 @@ abstract class AbstractTranslatorHelper extends AbstractHelper implements
/**
* Translator (optional)
*
* @var Translator
* @var TranslatorInterface
*/
protected $translator;

Expand All @@ -40,13 +40,13 @@ abstract class AbstractTranslatorHelper extends AbstractHelper implements
/**
* Sets translator to use in helper
*
* @param Translator $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @param TranslatorInterface $translator [optional] translator.
* Default is null, which sets no translator.
* @param string $textDomain [optional] text domain
* Default is null, which skips setTranslatorTextDomain
* @return AbstractTranslatorHelper
*/
public function setTranslator(Translator $translator = null, $textDomain = null)
public function setTranslator(TranslatorInterface $translator = null, $textDomain = null)
{
$this->translator = $translator;
if (null !== $textDomain) {
Expand All @@ -59,7 +59,7 @@ public function setTranslator(Translator $translator = null, $textDomain = null)
/**
* Returns translator used in helper
*
* @return Translator|null
* @return TranslatorInterface|null
*/
public function getTranslator()
{
Expand Down
54 changes: 54 additions & 0 deletions library/Zend/Mvc/I18n/DummyTranslator.php
@@ -0,0 +1,54 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/

namespace Zend\Mvc\I18n;

use Zend\I18n\Translator\TranslatorInterface;
use Zend\Validator\Translator\TranslatorInterface as ValidatorTranslatorInterface;

class DummyTranslator implements
TranslatorInterface,
ValidatorTranslatorInterface
{
/**
* translate(): defined by ValidatorTranslatorInterface()
*
* @see ValidatorTranslatorInterface::translate()
* @param string $message
* @param string $textDomain
* @param string $locale
* @return string
*/
public function translate($message, $textDomain = 'default', $locale = null)
{
return $message;
}

/**
* translatePlural(): defined by TranslatorInterface()
*
* @see TranslatorInterface::translatePlural()
* @param string $singular
* @param string $plural
* @param int $number
* @param string $textDomain
* @param string|null $locale
* @return string
* @throws Exception\OutOfBoundsException
*/
public function translatePlural(
$singular,
$plural,
$number,
$textDomain = 'default',
$locale = null
) {
return ($number === 1 ? $singular : $plural);
}
}
12 changes: 6 additions & 6 deletions library/Zend/Mvc/Router/Http/TranslatorAwareTreeRouteStack.php
Expand Up @@ -9,7 +9,7 @@

namespace Zend\Mvc\Router\Http;

use Zend\I18n\Translator\Translator;
use Zend\I18n\Translator\TranslatorInterface;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\Stdlib\RequestInterface as Request;

Expand All @@ -21,7 +21,7 @@ class TranslatorAwareTreeRouteStack extends TreeRouteStack implements Translator
/**
* Translator used for translatable segments.
*
* @var Translator
* @var TranslatorInterface
*/
protected $translator;

Expand Down Expand Up @@ -88,11 +88,11 @@ public function assemble(array $params = array(), array $options = array())
* setTranslator(): defined by TranslatorAwareInterface.
*
* @see TranslatorAwareInterface::setTranslator()
* @param Translator $translator
* @param string $textDomain
* @param TranslatorInterface $translator
* @param string $textDomain
* @return TreeRouteStack
*/
public function setTranslator(Translator $translator = null, $textDomain = null)
public function setTranslator(TranslatorInterface $translator = null, $textDomain = null)
{
$this->translator = $translator;

Expand All @@ -107,7 +107,7 @@ public function setTranslator(Translator $translator = null, $textDomain = null)
* getTranslator(): defined by TranslatorAwareInterface.
*
* @see TranslatorAwareInterface::getTranslator()
* @return Translator
* @return TranslatorInterface
*/
public function getTranslator()
{
Expand Down
8 changes: 7 additions & 1 deletion library/Zend/Mvc/Service/TranslatorServiceFactory.php
Expand Up @@ -10,6 +10,7 @@
namespace Zend\Mvc\Service;

use Zend\I18n\Translator\TranslatorServiceFactory as I18nTranslatorServiceFactory;
use Zend\Mvc\I18n\DummyTranslator;
use Zend\Mvc\I18n\Translator;
use Zend\ServiceManager\ServiceLocatorInterface;

Expand All @@ -22,7 +23,12 @@ class TranslatorServiceFactory extends I18nTranslatorServiceFactory
public function createService(ServiceLocatorInterface $serviceLocator)
{
// Configure the translator
$config = $serviceLocator->get('Config');
$config = $serviceLocator->get('Config');

if (!isset($config['translator'])) {
return new DummyTranslator();
}

$trConfig = isset($config['translator']) ? $config['translator'] : array();
$translator = Translator::factory($trConfig);
return $translator;
Expand Down

0 comments on commit 6565aac

Please sign in to comment.