2010-03-10 3 views
3

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

В настоящее время все сообщения, которые я выводил (например, ошибки и т. Д.), Находятся на английском языке.

Каков наилучший способ хранения языковых констант и их получения?

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

Например, мы могли бы иметь ошибку:

The email address '[email protected]' was not a valid email address. 

ответ

0

Я бы хранить их в базе данных и получать по языку. Например,

SELECT сообщение FROM сообщений WHERE key = 'error_email' AND lang = 'de';

Просто очень общее представление с верхней части моей головы

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

+0

Приложение не на основе баз данных, так что я не очень хочу для добавления базы данных только для языковых констант. – Camsoft

+0

В этом случае я использовал xml. Однако другие предложения могут работать лучше, я сейчас читаю эти ссылки. Не знаю раньше :) – Sejanus

0

Вы изучали XLIFF? Я думаю, что this article особенно информативен.

+0

Это выглядит интересно, но немного переполнено для моего проекта. – Camsoft

4

Обычный подход к закачиваемой информации использует Е() коды, как правило,% s:

The email address '%s' was not a valid email address. 

Кроме того, у вас есть несколько вариантов:

  • В gettext функции позволяют использовать конкретные инструменты для создания исходных файлов строк и отслеживать статус перевода

  • Хорошие старые PHP-константы очень удобны, если вы только есть несколько строк для перевода

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

  • Дата и цифровые форматы
  • Множественное/вырожденных форм
  • Алфавитный порядок