Обработка пунктуации с использованием Zend_Translate - PullRequest
2 голосов
/ 26 января 2012

В настоящее время я пытаюсь применить Zend_Translate к проекту, над которым я работаю.Обычный текст работает отлично, но я столкнулся с проблемой перевода форм.

Адаптер перевода зарегистрирован в Zend_Registry с использованием Zend_Translate в качестве ключа.Это прекрасно работает в большинстве случаев, за исключением случая, когда перевод должен произойти до отображения формы.

Пример кода:

$subformBusiness->setLegend(_('Bedrijfsgegevens') . ':');
$subformBusiness->setLegend(_('Bedrijfsgegevens'));

Предполагается, что Bedrijfsgegevens переведен в соответствующий источник переводафайлы, верхняя строка будет выводиться как «Bedrijfsgegevens:», а нижняя строка выводит «Деловая информация».

Насколько я знаю, есть три способа решения этой проблемы.Это можно решить, вызвав сохраненный Zend_Translate_Adapter перед конкатенацией с двоеточием, но это дает много ненужного кода.Другой вариант - включить пунктуацию в файлы перевода, но это будет означать, что для каждого типа пунктуации должен быть перевод.Вариант thrid - просто удалить двоеточие из легенды, но это не то, что я ищу.

Мой вопрос: есть ли способ заставить Zend_Translate игнорировать пунктуацию?

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Почему бы вам не добавить пунктуацию в строки? Хорошо, вам придется перевести и «Легенда», и «Легенда:», но это прекрасно работает для меня.

например:.

$subformBusiness->setLegend(_('Bedrijfsgegevens:'));
$element->setLabel('This is a great label:');
0 голосов
/ 26 января 2012

Насколько я знаю, Zend_Translate работает только с литеральными строками и не содержит никаких знаков препинания.Я бы просто удалил двоеточие из легенды (ваш третий вариант) и каким-то образом впоследствии добавил его (например, с помощью свойства :after CSS).

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...