mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 00:32:15 +01:00
256 lines
11 KiB
XML
256 lines
11 KiB
XML
<?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
|
||
-->
|