mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
435 lines
17 KiB
XML
435 lines
17 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<section xml:id="intl.collator-constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
&reftitle.constants;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="collator.constants.french-collation">
|
||
<term>
|
||
<constant>Collator::FRENCH_COLLATION</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Сортировка строк с акцентами с конца строки. Этот атрибут автоматически проставляется
|
||
в <emphasis>On</emphasis> для французской и некоторых других локалей.
|
||
Обычно пользователям нет необходимости специально задавать этот параметр.
|
||
Есть некоторая просадка производительности если этот параметр
|
||
установлен как <emphasis>On</emphasis>, но никак не влияет
|
||
на длину ключа сортировки. Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::ON</constant></member>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Правила FRENCH_COLLATION</title>
|
||
<para>
|
||
<simplelist>
|
||
<member>F=OFF cote < coté < côte < côté </member>
|
||
<member>F=ON cote < côte < coté < côté</member>
|
||
</simplelist>
|
||
</para>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.alternate-handling">
|
||
<term>
|
||
<constant>Collator::ALTERNATE_HANDLING</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Аттрибут "Alternate" используется для контроля обработки
|
||
так называемых "переменных символов" в UCA: пробельные символы, знаки
|
||
пунктуации и символы. Если "Alternate" установлен как <emphasis>NonIgnorable</emphasis> (N),
|
||
то различия в этих символах будут считаться такими же значимыми, как и различия
|
||
между буквами. Если "Alternate" установлен как <emphasis>Shifted</emphasis> (S),
|
||
то эти символы будут иметь низкую значимость. Значение
|
||
<emphasis>Shifted</emphasis> зачастую используется в комбинации с
|
||
<emphasis>Strength</emphasis> установленным в "Quaternary". В таких случаях подобные символы
|
||
будут учитываться при сортировке, но только если все остальные аспекты строк
|
||
(буквы, акценты, регист) идентичны. Если "Alternate" не установлен как "Shifted", то разницы
|
||
между "Strength" равным 3 и 4 не будет. Более подробно и с примерами читайте в разделе
|
||
"Variable_Weighting" на сайте <link xlink:href="&url.icu.uca;">UCA</link>.
|
||
Причина, по которой значения для "Alternate" не используются просто
|
||
<emphasis>On</emphasis> в <emphasis>Off</emphasis> в том, что в будущем
|
||
могут быть добавлены дополнительные варианты. Опция UCA "Blanked" выражается с помощью
|
||
"Strength" установленного в и "Alternate" установленного в "Shifted".
|
||
Для большинства локалей этот параметр по умолчанию равен "NonIgnorable". Если
|
||
задано "Shifted", то обработка может быть медленнее в случае если у вас
|
||
много строк, отличающихся только пунктуацией. Длина ключа сортировки не затрагивается
|
||
только если также не увеличивался уровень "Strength".
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::NON_IGNORABLE</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::SHIFTED</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>ALTERNATE_HANDLING rules</title>
|
||
<para>
|
||
<simplelist>
|
||
<member>
|
||
S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
|
||
</member>
|
||
<member>
|
||
S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
|
||
</member>
|
||
<member>
|
||
S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA
|
||
</member>
|
||
</simplelist>
|
||
</para>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.case-first">
|
||
<term>
|
||
<constant>Collator::CASE_FIRST</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Аттрибут "Case_First" используется для определения порядка сортировки в зависимости от
|
||
регистра символов при отсутствии других различий в строках.
|
||
Возможные значения: <emphasis>Uppercase_First</emphasis>(U),
|
||
<emphasis>Lowercase_First</emphasis> (L), <emphasis>Default</emphasis>
|
||
и <emphasis>Off</emphasis>.
|
||
Между "Off" и "Lowercase_First" практически нет разницы, так что пользователи
|
||
обычно не используют "Lowercase_First", а только Off или Uppercase_First. (Те, кому действительно
|
||
интересна разница между X и L могут обратиться к <literal>Настройке Collation</literal>).
|
||
Задание L или U не сказывается на скорости сравнения, но влияет на длину ключа сортировки.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::LOWER_FIRST</constant></member>
|
||
<member><constant>Collator::UPPER_FIRST</constant></member>
|
||
<member><constant>Collator:DEFAULT</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Правила CASE_FIRST</title>
|
||
<para>
|
||
<simplelist>
|
||
<member>C=X or C=L "china" < "China" < "denmark" < "Denmark"</member>
|
||
<member>C=U "China" < "china" < "Denmark" < "denmark"</member>
|
||
</simplelist>
|
||
</para>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.case-level">
|
||
<term>
|
||
<constant>Collator::CASE_LEVEL</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Аттрибут "Case_Level" используется, когда акценты не важны, а регист важен.
|
||
В таких случаях установите "Strength" в значение <emphasis>Primary</emphasis>,
|
||
и "Case_Level" в <emphasis>On</emphasis>.
|
||
В большинстве локалей по умолчанию задано значение "Off". Оказывает незначительное
|
||
влияние на скорость сравнения и длину ключа сортировки если установлено как
|
||
<emphasis>On</emphasis>.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::ON</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>CASE_LEVEL rules</title>
|
||
<para>
|
||
<simplelist>
|
||
<member>S=1, E=X role = Role = rôle</member>
|
||
<member>S=1, E=O role = rôle < Role</member>
|
||
</simplelist>
|
||
</para>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.normalization-mode">
|
||
<term>
|
||
<constant>Collator::NORMALIZATION_MODE</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Настройка "Normalization" определяет, будет ли текст тщательно нормализован
|
||
в сравнении или нет. Даже если данная настройка отключена (по умолчанию для
|
||
многих локалей), текст в общем случае будет сравниваться корректно (подробности в UTN #5).
|
||
Проблемы могут быть только с отметками акцентов расположенными в неканоничном порядке.
|
||
Если установлено как <emphasis>On</emphasis>, то будет гарантирован наилучший результат
|
||
для всех возможных вариантов текста. Однако, если установлено как
|
||
<emphasis>On</emphasis> - это скажется на скорости сравнения, в
|
||
зависимости от количества последовательностей, который необходимо нормализовать.
|
||
Какого-либо заметного влияния на длину ключа сортировки оказано не будет.
|
||
Если заранее известно, что текст уже нормализован как NFD или NFKD, необходимости
|
||
в использовании этой настройки нет.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::ON</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.strength">
|
||
<term>
|
||
<constant>Collator::STRENGTH</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
ICU Collation Service поддерживает множество уровней сравнения (они называются
|
||
"Levels", но также известны как "Strengths"). Использование этих настроек
|
||
позволяет ICU сортировать строки точно в соответствии с правилами локали.
|
||
Однако, разрешая выборочное использование этих уровней, поиск
|
||
строки в тексте можно производить с использованием различных условий.
|
||
Больше информации описано в главе посвящённой <function>collator_set_strength</function>.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::PRIMARY</constant></member>
|
||
<member><constant>Collator::SECONDARY</constant></member>
|
||
<member><constant>Collator::TERTIARY</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::QUATERNARY</constant></member>
|
||
<member><constant>Collator::IDENTICAL</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.hiragana-quaternary-mode">
|
||
<term>
|
||
<constant>Collator::HIRAGANA_QUATERNARY_MODE</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Совместимость с JIS x 4061 требует введения дополнительного уровня
|
||
для выделения символов Hiragana и Katakana. Если требуется совместимость со
|
||
стандартом, то данный аттрибут необходимо задать как
|
||
<emphasis>On</emphasis>, а "Strength" как "Quaternary".
|
||
Это скажется на длине ключа сортировки и скорости сравнения.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::ON</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.numeric-collation">
|
||
<term>
|
||
<constant>Collator::NUMERIC_COLLATION</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если включён, этот аттрибут генерирует ключ сравнения для числового значения
|
||
подстроки состоящей из цифр. Это позволяет при сортировке помещать '100' после '2'.
|
||
</para>
|
||
<para>
|
||
Возможные значения:
|
||
<simplelist>
|
||
<member><constant>Collator::OFF</constant>(по умолчанию)</member>
|
||
<member><constant>Collator::ON</constant></member>
|
||
<member><constant>Collator::DEFAULT_VALUE</constant></member>
|
||
</simplelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.default-value">
|
||
<term>
|
||
<constant>Collator::DEFAULT_VALUE</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.primary">
|
||
<term>
|
||
<constant>Collator::PRIMARY</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.secondary">
|
||
<term>
|
||
<constant>Collator::SECONDARY</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.tertiary">
|
||
<term>
|
||
<constant>Collator::TERTIARY</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.default-strength">
|
||
<term>
|
||
<constant>Collator::DEFAULT_STRENGTH</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.quaternary">
|
||
<term>
|
||
<constant>Collator::QUATERNARY</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.identical">
|
||
<term>
|
||
<constant>Collator::IDENTICAL</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.off">
|
||
<term>
|
||
<constant>Collator::OFF</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.on">
|
||
<term>
|
||
<constant>Collator::ON</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.shifted">
|
||
<term>
|
||
<constant>Collator::SHIFTED</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.non-ignorable">
|
||
<term>
|
||
<constant>Collator::NON_IGNORABLE</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.lower-first">
|
||
<term>
|
||
<constant>Collator::LOWER_FIRST</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="collator.constants.upper-first">
|
||
<term>
|
||
<constant>Collator::UPPER_FIRST</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|