2013-12-07 4 views
0

Я делаю константы в своем приложении PHP для организации своих ответов, и я планирую добавить поддержку иностранного языка в ближайшее время. Вот что я делаю прямо сейчас: define('SOME_SYSTEM_MESSAGE',array('EN' => 'This is the system message!') [USER_LANGUAGE]); (Я знаю, что синтаксис [] поддерживается только в PHP 5.5, у меня есть функция обратной совместимости для более старых версий). Это хорошая практика для кодирования, или я должен хранить сообщения в массиве (например, $ en для английских сообщений или $ fr для французских сообщений) или каким-то другим способом?Хорошая практика - сделать постоянную, которая зависит от языка пользователя?

ответ

1

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

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

+0

На данный момент я просто работаю над этим. Я не знал, что файлы PO являются официальной частью PHP. Я отмечаю ваш ответ как принятый. – iggyvolz

0

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

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

Как пример: Symfony Framework содержит (автономный) Translation-Component.

+0

Константы могут содержать сериализованные массивы - которые могут быть неэтериализованы при использовании;) – Jimbo

+0

Сериализованные массивы - это строки. Вы не можете перезаписывать константы. – tr0y

+0

Я ничего не упоминал о переписывающих константах. Ваше первое предложение не имеет смысла - конечно, массивы могут меняться, но так же могут быть строки. В PHP у нас нет неизменяемых скалярных типов. – Jimbo

Смежные вопросы