1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/strings/functions/setlocale.xml
2024-03-19 14:10:07 +03:00

256 lines
11 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 54ff7bf8e0f8fa90988cccf6b583517366605f6d Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.setlocale">
<refnamediv>
<refname>setlocale</refname>
<refpurpose>Устанавливает региональные настройки</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>setlocale</methodname>
<methodparam><type>int</type><parameter>category</parameter></methodparam>
<methodparam><type>string</type><parameter>locales</parameter></methodparam>
<methodparam rep="repeat"><type>string</type><parameter>rest</parameter></methodparam>
</methodsynopsis>
<simpara>Альтернативная сигнатура (не поддерживается с именованными аргументами):</simpara>
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>setlocale</methodname>
<methodparam><type>int</type><parameter>category</parameter></methodparam>
<methodparam><type>array</type><parameter>locale_array</parameter></methodparam>
</methodsynopsis>
<para>
Функция устанавливает региональные параметры, или локаль.
</para>
<warning>
<para>
Информация о локали сохраняется для процесса, а не отдельно
для каждого потока процесса.
Программисты сталкиваются с внезапными изменениями настроек локали
во время работы скрипта, если PHP работает с API многопоточного
сервера, даже когда сам скрипт не вызывал функцию <function>setlocale</function>.
Это делают другие скрипты, которые работают в отдельных потоках одного процесса
и одновременно функцией <function>setlocale</function> изменяют региональные параметры
целого процесса.
Информация о региональных настройках в ОС Windows
поддерживается для каждого потока с PHP 7.0.5.
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>category</parameter></term>
<listitem>
<para>
Параметр <parameter>category</parameter> — именованная константа,
которая определяет категорию функций, на которые будет влиять установка локали:
<itemizedlist>
<listitem>
<simpara>
<constant>LC_ALL</constant> — всё нижеперечисленное
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_COLLATE</constant> — сравнение строк, смотрите
описание функции <function>strcoll</function>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_CTYPE</constant> — классификация и преобразование символов, например,
функция <function>ctype_alpha</function>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_MONETARY</constant> — функция <function>localeconv</function>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_NUMERIC</constant> — десятичный разделитель, смотрите
описание функции <function>localeconv</function>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_TIME</constant> — форматирование даты или времени функцией
<function>strftime</function>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LC_MESSAGES</constant> — системные сообщения;
доступна, если PHP скомпилировали с поддержкой модуля <literal>libintl</literal>
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>locales</parameter></term>
<listitem>
<para>
Функция возьмёт имена локалей из одноимённых переменных окружения
или переменной с именем «LANG», если в параметр
<parameter>locales</parameter> передали пустую строку
<literal>""</literal> или &null;.
</para>
<para>
Функция не изменит локаль, а вернёт текущее значение,
если в параметр <parameter>locales</parameter> передали <literal>"0"</literal>.
</para>
<para>
Функция будет перебирать элементы массива или аргументы по порядку
как имена локали до тех пор, пока не установит локаль успешно,
если в параметр <parameter>locales</parameter> передали массив или
после этого аргумента следуют дополнительные аргументы.
Этим пользуются, когда в разных системах имена одной и той же локали не совпадают,
или когда требуется создать запасной вариант на случай отсутствия локали в системе.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>rest</parameter></term>
<listitem>
<para>
Необязательные аргументы в виде строк или массивов для установки настроек локали
до первой успешной попытки.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>locale_array</parameter></term>
<listitem>
<para>
Каждый элемент массива совершает попытки установить новую локаль
до первой успешной попытки. Это полезно, если в разных системах локаль
известна под разными именами, или на случай запасного варианта
при недоступности региональных настроек.
</para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para>
На ОС Windows вызов setlocale(LC_ALL, '') устанавливает имена локалей из системных
региональных или языковых настроек, которые доступны в «Панели управления».
</para>
</note>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает имя вновь установленной локали или &false;, если
система не поддерживает установку заданной локали, локаль
не существует или передали недопустимое имя категории.
</para>
<para>
Недопустимое имя категории также вызывает предупреждение. Имена
локалей и категорий описывают стандарты <link xlink:href="&url.rfc;1766">RFC 1766</link>
и <link xlink:href="&url.iso-639;">ISO 639</link>.
В разных системах схемы именования локалей разные.
</para>
<note>
<para>
Значение, которое возвращает функция <function>setlocale</function>,
зависит от системы, на которой запустили PHP. Функция возвращает то же
значение, которое возвращает системная функция <literal>setlocale</literal>.
</para>
</note>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Примеры использования функции <function>setlocale</function></title>
<programlisting role="php">
<![CDATA[
<?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'";
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Примеры использования функции <function>setlocale</function> в ОС Windows</title>
<programlisting role="php">
<![CDATA[
<?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'";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<tip>
<para>
Полезную информацию о значениях параметра <parameter>locales</parameter>
пользователям платформ Windows даёт раздел
<acronym>MSDN</acronym> на сайте Microsoft. Языки, которые поддерживает ОС, перечисляет
<link xlink:href="&url.setlocale.lang.win32;">документация по языковым строкам</link>,
а значения стран и регионов —
<link xlink:href="&url.setlocale.country.win32;">документация по строкам стран и регионов</link>.
</para>
</tip>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->