Перевод ярлыков формы Zend

Я не могу получить рабочие переводы меток в Zend. Я все еще могу перевести строку в представлениях.

В файле module.config.php у меня есть следующее:

'service_manager' => array(
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
),
),
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),

В файле Module.php я спрашиваю пользователей lang из базы данных и устанавливаю это на язык var:

$langTableGateway = new \Zend\Db\TableGateway\TableGateway('users', $dbAdapter);
$this->select = new Select();
$this->select->from('users')
->where(array('id' => $userdata['user_id']));
$resultSet = $langTableGateway->selectWith($this->select);
$row = $resultSet->current();
$user_lang = $row->language;
$e->getViewModel()->setVariable('user_lang', $user_lang);

В контроллерах у меня есть следующее:

    public function indexAction() {

$loc = $this->getServiceLocator();
$translator = $loc->get('translator');
$loc->get('ViewHelperManager')->get('translate')
->setTranslator($translator);
...

Строки в представлениях успешно переведены с $this->translate('data');

Как мне нужно изменить файлы форм, чтобы метки тоже переводились? Теперь у меня есть:

class ItemsForm extends Form {

public $itemsTable;
public $list;

public function __construct($name = null) {

// we want to ignore the name passed
parent::__construct('items');$this->setAttribute('method', 'post')
->setAttribute('enctype', 'multipart/form-data');

$this->add(array(
'name' => 'id',
'attributes' => array(
'type' => 'hidden',
),
));

$this->add(array(
'name' => 'target',
'attributes' => array(
'type' => 'hidden',
),
));$this->add(array(
'name' => 'title',
'attributes' => array(
'type' => 'text',
'id' => 'title',
'class' => 'span12',
),
'options' => array(
'label' => _('Item title'),
),
));

Что странно, так это то, что если я вручную изменю локаль файла «module.config.php» на «fi_FI», то перевод форм будет работать. Поэтому я думаю, что проблема в том, что установка языка пользователя в «Module.php» или в файле контроллера не повлияет на формы.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]