База данных поддерживается на i18n сайта PHP - PullRequest
5 голосов
/ 10 ноября 2011

У меня есть веб-сайт, написанный на PHP, с 15-20 страницами, и у них много текста.Я должен перевести его на 3 разных языка.Во-первых, я попытался использовать строки ($text_hello = "你好";), но эта опция становится очень утомительной и трудной для управления с 50+ строками.Я также обнаружил опцию gettext, и это хорошо.Но меня особенно интересовал вариант поддержки базы данных (MySQL), при котором весь перевод будет извлекаться из базы данных.Кроме того, я могу ошибаться, но с gettext у вас должен быть этот дополнительный index.php ?lang=en_US (?) Я хочу, чтобы он изменился так же, как в Twitter или Facebook, где URL не меняется.Можете ли вы предложить мне, как это сделать, или направить меня к учебнику / статье / предыдущим вопросам по этой теме?Спасибо!

Кроме того, я видел людей, которые рекомендуют Zend_Translate, но требует ли это, чтобы я переписал свой веб-сайт в Zend Framework?

Прежде чем спрашивать, я искал его, но результаты яполучил не то, что я искал.

1 Ответ

4 голосов
/ 10 ноября 2011

Кроме того, я могу ошибаться, но с gettext вы должны иметь это дополнительное index.php? LANG = en_US

Да, вы не правы, параметр lang может быть скрыт, если вам нравится (например, используя сеанс и / или cookie). Это также может быть частью вашей стратегии SEO (url, как / en / mypage или / fr / mypage)

Многоязычность с базами данных является опцией, но я не большой поклонник добавления дополнительных запросов, если просто для того, чтобы получить перевод интерфейса.
Некоторые ссылки, которые могут быть полезны: Схема для мультиязычной базы данных
Каковы лучшие практики для проектирования многоязычных баз данных?

Кроме того, я видел людей, рекомендующих Zend_Translate, но требует ли это мне переписать мой сайт в Zend Framework?

Вы можете просто извлечь Zend_Translate (и его зависимость) и использовать его как библиотеку

...