(PHP 4, PHP 5, PHP 7, PHP 8)
setlocale — Устанавливает региональные настройки
Альтернативная сигнатура (не поддерживается с именованными аргументами):
Функция устанавливает региональные параметры, или локаль.
Информация о локали сохраняется для процесса, а не отдельно для каждого потока процесса. Программисты сталкиваются с внезапными изменениями настроек локали во время работы скрипта, если PHP работает с API многопоточного сервера, даже когда сам скрипт не вызывал функцию setlocale(). Это делают другие скрипты, которые работают в отдельных потоках одного процесса и одновременно функцией setlocale() изменяют региональные параметры целого процесса. Информация о региональных настройках в ОС Windows поддерживается для каждого потока с PHP 7.0.5.
category
Параметр category
— именованная константа, которая определяет категорию функций, на которые будет влиять установка локали:
LC_ALL
— всё нижеперечисленное LC_COLLATE
— сравнение строк, смотрите описание функции strcoll()LC_CTYPE
— классификация и преобразование символов, например, функция ctype_alpha()LC_MONETARY
— функция localeconv()LC_NUMERIC
— десятичный разделитель, смотрите описание функции localeconv()LC_TIME
— форматирование даты или времени функцией strftime()LC_MESSAGES
— системные сообщения; доступна, если PHP скомпилировали с поддержкой модуля libintl
locales
Функция возьмёт имена локалей из одноимённых переменных окружения или переменной с именем «LANG», если в параметр locales
передали пустую строку ""
или null
.
Функция не изменит локаль, а вернёт текущее значение, если в параметр locales
передали "0"
.
Функция будет перебирать элементы массива или аргументы по порядку как имена локали до тех пор, пока не установит локаль успешно, если в параметр locales
передали массив или после этого аргумента следуют дополнительные аргументы. Этим пользуются, когда в разных системах имена одной и той же локали не совпадают, или когда требуется создать запасной вариант на случай отсутствия локали в системе.
rest
Необязательные аргументы в виде строк или массивов для установки настроек локали до первой успешной попытки.
locale_array
Каждый элемент массива совершает попытки установить новую локаль до первой успешной попытки. Это полезно, если в разных системах локаль известна под разными именами, или на случай запасного варианта при недоступности региональных настроек.
Замечание:
На ОС Windows вызов setlocale(LC_ALL, '') устанавливает имена локалей из системных региональных или языковых настроек, которые доступны в «Панели управления».
Функция возвращает имя вновь установленной локали или false
, если система не поддерживает установку заданной локали, локаль не существует или передали недопустимое имя категории.
Недопустимое имя категории также вызывает предупреждение. Имена локалей и категорий описывают стандарты » RFC 1766 и » ISO 639. В разных системах схемы именования локалей разные.
Замечание:
Значение, которое возвращает функция setlocale(), зависит от системы, на которой запустили PHP. Функция возвращает то же значение, которое возвращает системная функция
setlocale
.
Пример #1 Примеры использования функции setlocale()
<?php
setlocale(LC_ALL, 'nl_NL');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Предпочтительная локаль для немецкого языка в этой системе: '$loc_de'";
?>
Пример #2 Примеры использования функции setlocale() в ОС Windows
<?php
setlocale(LC_ALL, 'nld_nld');
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Предпочтительная локаль для немецкого языка в этой системе: '$loc_de'";
?>
Полезную информацию о значениях параметра locales
пользователям платформ Windows даёт раздел MSDN на сайте Microsoft. Языки, которые поддерживает ОС, перечисляет » документация по языковым строкам, а значения стран и регионов — » документация по строкам стран и регионов.