Я работаю над сайтом, чтобы включить поддержку многоязычия. Я могу переводить строки с помощью Zend_Translate, но как насчет контента? Например, мне нужно добавить несколько записей для одного и того же продукта для каждого языка? Или есть другой способ? Я новичок в многоязычном, пожалуйста, помогите. Заранее спасибо.
— Дополнение —————————–
Хорошо, я решил использовать смешанное решение для использования google translation api и хранения его в базе данных для дальнейшего редактирования. Итак, что может быть структурой базы данных для хранения переводов ???
следует сохранять записи в связанных таблицах
Немногие возможные подходы:
gettext
(или программного обеспечения, такого как Poedit ) для извлечения данных из содержимого. Возможно с переменной интерполяцией. Кажется, что третий подход требует больших усилий, но он того стоит.
Я предполагаю, что вы храните данные о продуктах в базе данных в таких полях, как:
- product_data -- id -- price -- name -- description -- etc…
Поэтому вы должны изменить его, чтобы добавить поля для переведенных строк на каждом языке:
- product_data -- id -- price - product_data_translations -- product_id -- language (eg en) -- name -- description -- etc
Затем вы можете легко создавать SQL-запросы для извлечения переведенных данных, where product_id=x and language="fr"
.
Вы можете использовать также Doctrine I18N, чтобы сделать это для вас автоматически.
Вам нужно перевести содержимое вручную (или автоматизировать перевод с использованием Google API), но затем вы можете легко проиндексировать его, например, Zend_Search_Lucene .