Zend_Translate: как сделать перевод revserse - PullRequest
0 голосов
/ 30 июля 2011

мой сайт построен на Zend Framework и по умолчанию на английском языке. У меня есть CSV-файл для перевода с английского на французский : fr.csv

однако данные в моей базе данных на английском языке. Поэтому я хочу перевести пользовательский ввод с французского на английский, чтобы взаимодействовать с моей базой данных. Как я могу использовать Zend_translate для обратного поиска, то есть с французского на английский ? Или есть другие способы добиться этого?

Ответы [ 2 ]

1 голос
/ 30 июля 2011

Обычно вы переводите не с английского на другой язык, а с идентификаторов (включая английский), даже если идентификаторы на английском языке. Причина в том, что идентификаторы должны быть не полными предложениями или фразами, а короткими и осмысленными утверждениями, такими как Forbidden (с английским переводом «У вас нет доступа к этому ресурсу» или чем-то в этом роде). С короткими ключами опечатки менее вероятны.

Если вы хотите показать формуляр для переводов (насколько я понимаю, это то, что вы пытаетесь сделать), я рекомендую просто указать внутренние идентификаторы и показать предпочтительный / текущий перевод в виде метки

<?= $this->translate($id) ?><input type="text" name="<?= $id?>" />

Вы можете получить текущие идентификаторы с помощью Zend_Translate_Adapter::getMessageIds()

<?php foreach ($adapter->getMessageIds() as $id) : ?>
  <?= $this->translate($id) ?><input type="text" name="<?= $id ?>" />
<?php endforeach; ?>
0 голосов
/ 22 августа 2013

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

// returns all the complete translation data
$source = $this->translate->getMessages();

$trnslt_id = array_search($qc, $source);

Результаты:

 print_r($source);
 /* [VETERINARY] => Veterinaria
 [VIDEOGAMES] => Videogiochi
 [VISUALBASIC] => Visual Basic
 [VITICULTURE] => Viticoltura
 [WEBDESIGN] => Web design */

 echo $trnslt_id;
 // WEBDESIGN

Ресурс: http://framework.zend.com/manual/1.12/en/zend.translate.additional.html

Надеюсь, это поможет кому-то, но у меня есть один вопрос, это хорошая идея с большим файлом перевода, или лучше создать несколько массивов для этой цели?Спасибо и извините за плохой английский.

...