Несколько возможных подходов:
- Использование
gettext
(или программного обеспечения, такого как Poedit ) для извлечения данных из содержимого.Возможно с переменной интерполяцией. - Создание фильтра представления, как описано в: Zend Framework and Translation
- Раздельное содержание данных в базе данных.
Если вы хранитесодержимое в формате разметки (например, Markdown ), любой может легко перевести его.Создать поисковик на разных языках легко.
Кажется, что третий подход требует больше всего усилий, но он того стоит.
Обновление после комментария
Я предполагаю, что вы храните данные о вашем продукте в базе данных, втакие поля, как:
- product_data
-- id
-- price
-- name
-- description
-- etc…
Поэтому вы должны изменить его, чтобы добавить поля для переведенных строк на каждом языке:
- product_data
-- id
-- price
- product_data_translations
-- product_id
-- language (e.g. en)
-- name
-- description
-- etc
Затем вы можете легко создавать запросы SQL для извлечения переведенных данных where product_id=x and language="fr"
.
Вы также можете использовать Doctrine I18N , чтобы сделать это для вас автоматически.
Вам необходимо перевести контент вручную (или автоматизировать перевод с помощью Google API),но затем вы можете легко проиндексировать его, используя, например, Zend_Search_Lucene .