PHP Как работать с разными языками в конфигурационном файле? - PullRequest
0 голосов
/ 20 декабря 2011

Я работаю над проектом, и будет 3 разных языка: Английский, Французский и Испанский. Это будет определено, когда пользователь зарегистрируется.

Теперь в моем конфигурационном файле у меня есть следующее:

define("DEFAULT_SLOGAN", "The default slogan will go here.");

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

Пользователь имеет назначенный код языка (EN, FR, SP). Как мне использовать разные языковые строки для каждой страницы? Должен ли я иметь что-то вроде этого:

define("DEFAULT_SLOGAN_EN", "Slogan in english");
define("DEFAULT_SLOGAN_FR", "Slogan in french");
define("DEFAULT_SLOGAN_SP", "Slogan in spanish");

А для каждой строки просто есть 3 разные версии? Не слишком уверен, что лучший способ подойти к этому.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 20 декабря 2011

Простая стратегия, которая часто используется, это массивы:

$lang['en'] = array(
    'DEFAULT_SLOGAN' => 'The default slogan will go here.',
);
// Same for other languages

Затем в вашем фактическом коде убедитесь, что $ lang доступен (вы можете использовать для этого ключевое слово global) и использоватьэти массивы.

3 голосов
/ 20 декабря 2011

Лучшим подходом было бы создать

  • locale_definitions_EN.php, содержащий

    define ("DEFAULT_SLOGAN", "Здесь будет использоваться слоган по умолчанию на английском языке.");

  • local_definitions_FR.php, содержащий

    define ("DEFAULT_SLOGAN", "Здесь пойдет слоган по-французски по умолчанию.");

и т.д..и затем сделайте что-то вроде

include "locale_definitions_$userLocale.php";

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...