snipplets.dev/code/PHP/setlocale.php

56 lines
3.7 KiB
PHP
Raw Normal View History

2022-04-03 11:36:54 +03:00
<?php
/*
setlocale(int $category, string $locales, string ...$rest): string|false
Альтернативная сигнатура (не поддерживается с именованными аргументами):
setlocale(int $category, array $locale_array): string|false
*/
/*
category
Параметр category - это именованная константа, определяющая категорию функций,
на которые будет влиять установка локали:
LC_ALL - все нижеперечисленное
LC_COLLATE - функции сравнения строк, смотрите strcoll()
LC_CTYPE - функции преобразования и классификации строк, например strtoupper()
LC_MONETARY - для функции localeconv()
LC_NUMERIC - задаёт символ десятичного разделения (смотрите также localeconv())
LC_TIME - форматирование даты/времени функцией strftime()
LC_MESSAGES - для системных сообщений (доступна, если PHP был скомпилирован с поддержкой libintl)
locales
Если в качестве locales передана пустая строка "" или null,
имена локалей будут взяты из одноимённых переменных окружения
или переменной с именем "LANG".
Если в качестве locales передан "0", локаль изменена не будет,
а будет возвращено текущее значение.
Если в качестве locales передан массив, или после этого аргумента следуют
дополнительные аргументы, функция будет использовать элементы массива
или аргументы по порядку в качестве имён локали до тех пор,
пока установка локали не будет успешной. Это удобно, если одна и та же локаль
имеет разное имя в различных системах, или для создания запасного варианта
при отсутствии какой-либо локали в системе.
rest
Необязательные аргументы в виде строк или массивов
для установки настроек локали до первой успешной попытки.
locale_array
Каждый элемент массива пытается установить новую локаль
до первой успешной попытки. Это полезно,
если локаль известна под разными именами в разных системах
или для обеспечения запасного варианта для возможно недоступного
языкового стандарта.
Замечание:
На Windows setlocale(LC_ALL, '') устанавливает имена локалей из системных
региональных/языковых настроек (доступных через Панель Управления).
*/
setlocale(LC_ALL, 'nl_NL');
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
?>