(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');
/* Выводит: vrijdag 22 december 1978 */
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');
/* Выводит: vrijdag 22 december 1978 */
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. Языки, которые поддерживает ОС, перечисляет
» документация по языковым строкам,
а значения стран и регионов —
» документация по строкам стран и регионов.