Насколько я понял, Zend_Translate использует строки как ключи для файлов перевода. Это означает, что если я изменю исходную строку (например, исправлю некоторую опечатку), все переводы для этой строки будут потеряны.Zend_Translate: не строка, а перевод на основе ID - или как обрабатывать изменения в исходной строке
Есть ли способ обновить эти переводы автоматически? Моя идея - отметить эти переводы как «TODO», когда исходная строка изменилась.
Чтобы достичь этого, я предполагаю, что мне нужно использовать систему перевода на основе идентификатора вместо строчной системы перевода. Каждая строка имеет уникальный идентификатор.
Я знаю, что система перевода на основе строк имеет то преимущество, что равные строки не нужно переводить дважды. Это очень редкий случай использования в моем приложении, поэтому дважды равные строки перевода были бы абсолютно точными.
Я думал об осуществлении этого самостоятельно, но я не знаю, как это сделать с хорошей производительностью.
Любые предложения по этому вопросу? Может ли Zend_Translate обрабатывать изменения в исходной строке? Существуют ли другие системы перевода, которые могут обрабатывать этот прецедент?
Спасибо за ваш ответ. Это не работает в нашем случае использования, хотя, поскольку пользователь определяет предложения, которые позже будут переведены. Вероятно, мы разработаем нашу собственную систему, которая опирается на таблицу базы данных, в которой первичными ключами являются строки, состоящие из конкатенированных идентификаторов таблиц (вся иерархия вниз от идентификатора проекта пользователя до таблицы, в которой находится текст), и имя столбца текст, который мы хотим перевести. Надеюсь, что говорить MySQL о том, чтобы использовать Hash для таблицы базы данных переводов, обеспечивает достаточную скорость. Я бы тепло приветствовал любой другой подход. –
Это действительно сложно помочь вам без конкретного примера :(Я все еще могу понять, что вы пытаетесь перевести. Page UI? Или пользовательский ввод? –