2012-05-10 3 views
0

Насколько я понял, Zend_Translate использует строки как ключи для файлов перевода. Это означает, что если я изменю исходную строку (например, исправлю некоторую опечатку), все переводы для этой строки будут потеряны.Zend_Translate: не строка, а перевод на основе ID - или как обрабатывать изменения в исходной строке

Есть ли способ обновить эти переводы автоматически? Моя идея - отметить эти переводы как «TODO», когда исходная строка изменилась.

Чтобы достичь этого, я предполагаю, что мне нужно использовать систему перевода на основе идентификатора вместо строчной системы перевода. Каждая строка имеет уникальный идентификатор.

Я знаю, что система перевода на основе строк имеет то преимущество, что равные строки не нужно переводить дважды. Это очень редкий случай использования в моем приложении, поэтому дважды равные строки перевода были бы абсолютно точными.

Я думал об осуществлении этого самостоятельно, но я не знаю, как это сделать с хорошей производительностью.

Любые предложения по этому вопросу? Может ли Zend_Translate обрабатывать изменения в исходной строке? Существуют ли другие системы перевода, которые могут обрабатывать этот прецедент?

ответ

0

Нельзя обрабатывать автоматически. По крайней мере, не легко. (это может быть сделано при анализе кода, генерации кода и т. д.). Мы использовали «заглушки» для перевода - $this->translate('please-register') // Please register. Отлично работает, но добавляет больше работы для разработчиков - им нужно создавать файлы переводов даже для родного языка. :)

+0

Спасибо за ваш ответ. Это не работает в нашем случае использования, хотя, поскольку пользователь определяет предложения, которые позже будут переведены. Вероятно, мы разработаем нашу собственную систему, которая опирается на таблицу базы данных, в которой первичными ключами являются строки, состоящие из конкатенированных идентификаторов таблиц (вся иерархия вниз от идентификатора проекта пользователя до таблицы, в которой находится текст), и имя столбца текст, который мы хотим перевести. Надеюсь, что говорить MySQL о том, чтобы использовать Hash для таблицы базы данных переводов, обеспечивает достаточную скорость. Я бы тепло приветствовал любой другой подход. –

+0

Это действительно сложно помочь вам без конкретного примера :(Я все еще могу понять, что вы пытаетесь перевести. Page UI? Или пользовательский ввод? –

 Смежные вопросы

  • Нет связанных вопросов^_^