Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Jan 8, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library/Zend/File/Transfer/Adapter/AbstractAdapter.php
Original file line number Diff line number Diff line change
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 as Translator;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\Stdlib\ErrorHandler;
use Zend\Validator;
Expand Down
2 changes: 1 addition & 1 deletion library/Zend/I18n/Translator/Translator.php
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
12 changes: 5 additions & 7 deletions library/Zend/I18n/Translator/TranslatorAwareTrait.php
Original file line number Diff line number Diff line change
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 @@ -31,11 +29,11 @@ trait TranslatorAwareTrait
/**
* Sets translator to use in helper
*
* @param Translator $translator
* @param string $textDomain
* @param TranslatorInterface $translator
* @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 All @@ -49,7 +47,7 @@ public function setTranslator(Translator $translator = null, $textDomain = null)
/**
* Returns translator used in object
*
* @return Translator
* @return TranslatorInterface
*/
public function getTranslator()
{
Expand Down
44 changes: 44 additions & 0 deletions library/Zend/I18n/Translator/TranslatorInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?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
*/
public function translatePlural(
$singular,
$plural,
$number,
$textDomain = 'default',
$locale = null
);
}
2 changes: 1 addition & 1 deletion library/Zend/I18n/View/Helper/AbstractTranslatorHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Zend\I18n\View\Helper;

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

Expand Down
28 changes: 28 additions & 0 deletions library/Zend/Mvc/I18n/DummyTranslator.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?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 as I18nTranslatorInterface;
use Zend\Validator\Translator\TranslatorInterface as ValidatorTranslatorInterface;

class DummyTranslator implements
I18nTranslatorInterface,
ValidatorTranslatorInterface
{
public function translate($message, $textDomain = 'default', $locale = null)
{
return $message;
}

public function translatePlural($singular, $plural, $number, $textDomain = 'default', $locale = null)
{
return ($number == 1 ? $singular : $plural);
}
}
28 changes: 26 additions & 2 deletions library/Zend/Mvc/I18n/Translator.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,33 @@

namespace Zend\Mvc\I18n;

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

class Translator extends I18nTranslator implements ValidatorTranslatorInterface
class Translator implements
I18nTranslatorInterface,
ValidatorTranslatorInterface
{
/**
* @var I18nTranslator
*/
protected $translator;

/**
* @param I18nTranslator $translator
*/
public function __construct(I18nTranslatorInterface $translator)
{
$this->translator = $translator;
}

public function translate($message, $textDomain = 'default', $locale = null)
{
return $this->translator->translate($message, $textDomain, $locale);
}

public function translatePlural($singular, $plural, $number, $textDomain = 'default', $locale = null)
{
return $this->translator->translatePlural($singular, $plural, $number, $textDomain, $locale);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Zend\Mvc\Router\Http;

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

Expand Down
14 changes: 7 additions & 7 deletions library/Zend/Mvc/Service/TranslatorServiceFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@

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;

/**
* Overrides the translator factory from the i18n component in order to
* replace it with the bridge class from this namespace.
*/
class TranslatorServiceFactory extends I18nTranslatorServiceFactory
class TranslatorServiceFactory
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am getting

Zend\ServiceManager\Exception\ServiceNotCreatedException
While attempting to create mvctranslator(alias: MvcTranslator) an invalid factory was registered for this instance type.

Should you not implement FactoryInterface?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah, now it's an invalid factory.

{
public function createService(ServiceLocatorInterface $serviceLocator)
{
// Configure the translator
$config = $serviceLocator->get('Config');
$trConfig = isset($config['translator']) ? $config['translator'] : array();
$translator = Translator::factory($trConfig);
return $translator;
if (!$serviceLocator->has('translator')) {
return new DummyTranslator();
}

return new Translator($serviceLocator->get('translator'));
}
}
2 changes: 1 addition & 1 deletion library/Zend/View/Helper/HeadTitle.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Zend\View\Helper;

use Zend\I18n\Translator\Translator;
use Zend\I18n\Translator\TranslatorInterface as Translator;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\View\Exception;

Expand Down
2 changes: 1 addition & 1 deletion library/Zend/View/Helper/Navigation/AbstractHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use Zend\EventManager\EventManager;
use Zend\EventManager\EventManagerAwareInterface;
use Zend\EventManager\EventManagerInterface;
use Zend\I18n\Translator\Translator;
use Zend\I18n\Translator\TranslatorInterface as Translator;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\Navigation;
use Zend\Navigation\Page\AbstractPage;
Expand Down
6 changes: 3 additions & 3 deletions library/Zend/View/HelperPluginManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,10 @@ public function injectTranslator($helper)
{
if ($helper instanceof TranslatorAwareInterface) {
$locator = $this->getServiceLocator();
if ($locator && $locator->has('MvcTranslator')) {
$helper->setTranslator($locator->get('MvcTranslator'));
} elseif ($locator && $locator->has('translator')) {
if ($locator && $locator->has('translator')) {
$helper->setTranslator($locator->get('translator'));
} elseif ($locator && $locator->has('MvcTranslator')) {
$helper->setTranslator($locator->get('MvcTranslator'));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would argue we should prefer the MvcTranslator over the Translator service here. The assumption is that the MvcTranslator service is the "bridge" implementation, and would be the one shared between all translator-aware services.

}
}
}
Expand Down
2 changes: 1 addition & 1 deletion tests/ZendTest/View/HelperPluginManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public function testIdentityFactoryCanInjectAuthenticationServiceIfInParentServi

public function testIfHelperIsTranslatorAwareAndMvcTranslatorIsAvailableItWillInjectTheMvcTranslator()
{
$translator = new MvcTranslator();
$translator = new MvcTranslator($this->getMock('Zend\I18n\Translator\TranslatorInterface'));
$services = new ServiceManager();
$services->setService('MvcTranslator', $translator);
$this->helpers->setServiceLocator($services);
Expand Down