Как бы справиться с приложением l10n с Zend Framework? - PullRequest
0 голосов
/ 12 марта 2011

Привет, скажем, у меня есть следующее приложение:

  • Не локализовано
  • Одна база данных, независимая от языка

Мне нужно сделать это приложение l10n и i18n.

Каждый веб-сайт будет доступен через один домен (domain.co.uk, domain.fr, domain.it или, возможно, с субдомена fr.domain.com, en.domain.com, it.domain.com, который является более отношение к языку, чем локализация).

Например, как вы поступите с базой данных?

Одна база данных с информацией о локали для каждой сущности?

как id, article_title, article_body, article_locale? или отдельная база данных?

  • domain_fr
  • domain_en
  • и т.д.

Как вы будете развертывать приложение?

  • Один на каждого хозяина?
  • То же самое указание везде, но локализовано на начальной загрузке? Может быть, здесь будет сложно выбрать БД.

Как насчет обратной совместимости с текущим приложением?

Мои мысли:

  • Использование разных vhosts / server для языков
  • Использование application.ini для определения локального
  • Используя application.ini, выбрать БД для использования

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

Единственный плохой момент, который я вижу здесь, - это развитие db, так как это несколько баз данных, если мне нужно добавить столбец, мне придется делать это везде. Поэтому, возможно, центральная база данных с опцией локали, где это необходимо, будет лучше, но, вероятно, потребует больше работы.

Что такое отзывы? Это решающее решение, и я хочу выбрать правильный путь.

1 Ответ

0 голосов
/ 12 марта 2011

Вы можете использовать различное мышление для удовлетворения ваших требований:

  1. Поскольку вы используете разные vHost для каждого языка, вы можете установить Local в переменной environement. ИЛИ с использованием определенного маршрута на основе имени хоста.
  2. После того, как у вас есть локаль, вам необходимо указать i18n, используя Zend_Translate
  3. Далее я рекомендую вам создать дополнительныйполе в БД для выбора языка (самое простое решение) ИЛИ иметь другую базу данных, выбранную по Иностранному языку в начальной загрузке (проще в обслуживании)

Для примера таблицы pagecontent, у вас будет:

  • PageID (основной)
  • Язык (основной)
  • Заголовок
  • Резюме
  • Содержание

С одним кортежем "content and language".

...