I18N, L10N и база данных, как? - PullRequest
       21

I18N, L10N и база данных, как?

0 голосов
/ 05 апреля 2011

Я собираюсь обновить / переписать существующие жестко закодированные сайты.

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

Чтобыло бы лучшим способом для работы с этим?

Я хотел бы добавить столбец в моей базе данных для каждого локализованного созданного содержимого, такого как "locale = en_GB", или использовать разные базы данных для каждого приложения.

Есть какие-либо отзывы?


Редактировать

Допустим, приложение.Хорошо.

Я хочу, чтобы это приложение имело те же функции, но в разных странах.

Содержимое предоставляется сообществом, поэтому его невозможно перевести и оно не распространяется на все приложения., доступно только для приложения, настроенного для работы со страной C.

Страна = Одно доменное имя = Конкретный контент = Те же функции, что и у других.

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

Если я добавлю столбец для локализации контента, я смогуполучить локализованный контент, независимо от приложения, указав используемый в настоящее время языковой стандарт.

Я собираюсь использовать Zend_Locale & Zend_Translate / gettext, поэтому я знаю, как это сделать в php.

ОбаУ решения есть свои плюсы и минусы, но у меня недостаточно опыта в таком приложении, чтобы выбрать правильный путь.

Ответы [ 2 ]

3 голосов
/ 05 апреля 2011

Языковой стандарт редко часть базы данных.

Локаль является частью представления данных в базе данных.

Таким образом, каждый пользователь предоставляет свою локаль.

Ваше приложение использует обычную локализацию для перевода чисел и дат.

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

0 голосов
/ 05 апреля 2011

Я бы выбрал первый подход: пометить каждый язык определенным столбцом. Проще управлять и более гибко, чем управлять разными базами данных / таблицами.

На макетах: вы можете использовать PHP gettext () функции или вы можете создавать различные шаблоны для каждого языка, если хотите.

...