<?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'";
?>
