Intl.Collator
=============

Объект **`Intl.Collator`** обеспечивает сравнение строк с учётом языка.

Интерактивный пример
--------------------

Конструктор
-----------

`Intl.Collator()` (en-US)

Создаёт новый объект `Collator`.

Статические методы
------------------

`Intl.Collator.supportedLocalesOf()`

Возвращает массив, содержащий локали, которые поддерживаются без необходимости возврата к локали по умолчанию.

Свойства экземпляра
-------------------

Эти свойства определены в `Intl.Collator.prototype` и есть у всех экземпляров `Intl.Collator`.

`Intl.Collator.prototype.constructor`

Функция-конструктор, создающая экземпляр объекта. Для экземпляров `Intl.Collator` начальным значением является конструктор `Intl.Collator` (en-US).

`Intl.Collator.prototype[@@toStringTag]`

Начальным значением свойства `@@toStringTag` является строка `"Intl.Collator"`. Это свойство используется в `Object.prototype.toString()`.

Методы экземпляра
-----------------

`Intl.Collator.prototype.compare()`

Функция-геттер, которая сравнивает две строки в соответствии с правилами сортировки этого объекта `Intl.Collator`.

`Intl.Collator.prototype.resolvedOptions()`

Возвращает новый объект со свойствами, отражающими локаль и настройки сравнения, полученные при инициализации объекта.

Примеры
-------

### Использование `Collator`

Этот пример демонстрирует возможные результаты для строки, которая встречается до, после или на том же самом уровне, что и другая строка:


```js
console.log(new Intl.Collator().compare("a", "c")); // -1 или другое отрицательное значение
console.log(new Intl.Collator().compare("c", "a")); // 1 или другое положительное значение
console.log(new Intl.Collator().compare("a", "a")); // 0
```


Обратите внимание, что результат, показанный в коде выше, может отличаться в зависимости от браузера и его версии, потому что возвращаемые значения зависят от реализации. Спецификация требует только чтобы для строки, встречающиеся до, значение было отрицательным, а после — положительным.

### Использование параметра `locales`

Результаты, предоставляемые функцией `Collator.prototype.compare()` отличаются в зависимости от языка. Для получения порядка сортировки языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) используя параметр `locales`:


```js
// В немецком языке буква ä идёт рядом с буквой a
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1 или другое отрицательное значение

// В шведском языке буква ä следует после буквы z
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1 или другое положительное значение
```

### Использование параметра `options`

Результат, предоставляемый функцией `Collator.prototype.compare()`, может быть настроен с помощью параметра `options`:


```js
// В немецком языке буква a является базовой для буквы ä
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0

// В шведском языке буквы ä и a являются двумя разными базовыми буквами
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1 или другое положительное значение
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # collator-objects |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Intl`