Предположим, у меня есть контроллер, и я хочу определить некоторые константные переменные, которые содержат некоторые сообщения (например, сообщения об ошибках и т. Д.).Переведите переменные класса контроллера в zend framework 2
Есть ли способ сделать так, чтобы они были переведены? Пример класс определен ниже:
<?php
namespace Test\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class AccountController extends AbstractActionController
{
protected $testError = 'There was an error while testing some stuff';
public function testAction(){
// I know i can use the following approach but I don't want to
// since I want to use a variable for readability issues.
// $testError = $this->getTranslator()->translate('There was an error..');
return new ViewModel();
}
/**
* Retrieve the translator
*
* @return \Zend\I18n\Translator\Translator
*/
public function getTranslator()
{
if (!$this->translator) {
$this->setTranslator($this->getServiceLocator()->get('translator'));
}
return $this->translator;
}
/**
* Set the translator
*
* @param $translator
*/
public function setTranslator($translator)
{
$this->translator = $translator;
}
}
Так что я хочу иметь testError перевода. Я знаю, что могу просто использовать сообщение и перевести его с помощью zend-переводчика, не используя переменную, но все же хочу сохранить ее в переменной для удобства чтения. Любая помощь или другие подходы к этому?
I хотите сохранить его в переменной класса, а не просто переменной в функции. Как и в моем примере, я хочу перевести переменную класса $ testError. Будет ли он работать так же, как локальная переменная? – Systemfreak
О, geez, да, ZF2 не меняет родной PHP, поэтому, конечно, вы можете сделать что-то вроде '$ translator-> translate ($ this-> someClassVar)' – Sam
. Моя проблема в том, что я не могу заставить это быть «читать» poedit, должен ли я вручную добавить его, и все будет хорошо? Извините за неудобства. – Systemfreak