PHP / 16. Интернационализация и локализация

Каждый, кто пишет программы на PHP, должен, в конце концов, изучить английский язык как минимум в объеме, необходимом для работы с именами функций и конструкциями языка, но сам PHP может создавать приложения, разговаривающие практически на любом языке. Некоторые приложения предназначены для пользователей, разговаривающих на нескольких языках. Поддержка интернационализации и локализации в PHP облегчает работу с приложением, написанным для англоговорящих, пользователям, говорящим по-немецки. Интернационализация (часто ее сокращенно называют I18N1) – это процесс, в ходе которого приложение, разработанное только для одного региона, перестраивается таким образом, чтобы с ним можно было работать в различных регионах. Локализация (ее часто сокращенно называют L10N2) – это процесс добавления поддержки нового региона в интернациональное приложение.
Статьи раздела '16. Интернационализация и локализация':
Использование определенной локали
Задача Необходимо указать PHP, что следует использовать настройки определенной локали. Решение Вызовите функцию setlocale() с соответствующей категорией и локалью. Покажем, как указать локаль es_US (испанский язык, США) для в...
Локализация включаемых файлов
Задача Необходимо включить в страницу файлы, имеющие локальные особенности. Решение Определив соответствующую локаль, измените include_path: $base = '/usr/local/php-include'; $LANG = 'en_US'; $include_path = ini_get('inc...
Локализация дат и времени
Задача Необходимо отображать даты и значения времени в соответствии с настройками локали. Решение Это делается при помощи строки формата %c функции strftime(): print strftime('%c'); Можно также хранить строки формата фу...
Локализация денежных значений
Задача Необходимо показать денежную сумму в формате, соответствующем локали. Решение Для получения соответствующим образом отформатированной строки предназначена функция pc_format_currency(), показанная в примере 16.1. Наприм...
Локализация изображений
Задача Необходимо показать изображения, в которых имеется текст, причем это должен быть текст на языке, соответствующем локали. Решение Создайте каталог изображений для каждой локали, которую собираетесь поддерживать, а также...
Локализация текстовых сообщений
Задача Необходимо отображать текстовые сообщения на языке, соответствующем установленной локали. Решение Заведите каталог сообщений, состоящий из слов и фраз, из которого будете извлекать подходящие строки, перед тем как выво...
Перечень допустимых локалей
Задача Необходимо определить, какие локали поддерживает ваша система. Решение Cписок допустимых локалей можно получить с помощью программы locale; команда locale -a напечатает локали, поддерживаемые вашей системой. Обсужде...
Расширение gettext
Задача Необходима комплексная система для работы с каталогами сообщений. Решение Задействуйте расширение PHP gettext, позволяющее применять утилиты GNU gettext: bindtextdomain('gnumeric','/usr/share/locale'); textdomain('...
Управление ресурсами локализации
Задача Необходимо отслеживать различные каталоги сообщений и изображения. Решение Есть два приема, позволяющих упростить управление ресурсами локализации. Первый заключается в создании нового объекта языка, например канадског...
Установка локали по умолчанию
Задача Необходимо установить локаль, которую смогут использовать все ваши программы на PHP. Решение В начале файла, загруженного конфигурационной директивой auto_prepend_file, вызовите функцию setlocale() для установки требуе...
Чтение и запись символов Unicode
Задача Необходимо читать символы в кодировке Unicode из файла, базы данных или формы; или требуется записать символы в кодировке Unicode. Решение Однобайтовые символы в кодировке ISO-8859-1 преобразуются в код UTF-8 с помощью...

Страницы: 1