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

Hotfix/4879 #5108

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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();
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should likely do this for the MvcTranslator service, too.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NM, this is the MvcTranslator service factory.


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