From 6b74e4e297ec5088e041f69da6e5e5be063fb9e8 Mon Sep 17 00:00:00 2001 From: Leonid Vinogradov Date: Sat, 20 Jan 2024 22:55:56 +0300 Subject: [PATCH] [ru] update `Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat` translation (#17980) [ru] update 'Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat' translation --- .../date/tolocaledatestring/index.md | 2 +- .../date/tolocalestring/index.md | 2 +- .../date/tolocaletimestring/index.md | 2 +- .../intl/datetimeformat/index.md | 4 +- .../global_objects/intl/numberformat/index.md | 157 ++++++++---------- .../string/localecompare/index.md | 2 +- 6 files changed, 77 insertions(+), 92 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/date/tolocaledatestring/index.md b/files/ru/web/javascript/reference/global_objects/date/tolocaledatestring/index.md index eedecefa146815..e24666df68e511 100644 --- a/files/ru/web/javascript/reference/global_objects/date/tolocaledatestring/index.md +++ b/files/ru/web/javascript/reference/global_objects/date/tolocaledatestring/index.md @@ -43,7 +43,7 @@ toLocaleDateString(locales, options) ### Использование метода `toLocaleDateString()` -При базовом использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию. +При использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию. ```js var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); diff --git a/files/ru/web/javascript/reference/global_objects/date/tolocalestring/index.md b/files/ru/web/javascript/reference/global_objects/date/tolocalestring/index.md index 6ddfcf3fa00137..895703e047bc93 100644 --- a/files/ru/web/javascript/reference/global_objects/date/tolocalestring/index.md +++ b/files/ru/web/javascript/reference/global_objects/date/tolocalestring/index.md @@ -53,7 +53,7 @@ toLocaleString(locales, options) ### Использование `toLocaleString()` -При базовом использовании без указания `locale` возвращается строка, отформатированная в соответствии с локалью и настройками по умолчанию. +При использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и настройками по умолчанию. ```js const date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); diff --git a/files/ru/web/javascript/reference/global_objects/date/tolocaletimestring/index.md b/files/ru/web/javascript/reference/global_objects/date/tolocaletimestring/index.md index 697fa8338dc302..0d36b806d2863c 100644 --- a/files/ru/web/javascript/reference/global_objects/date/tolocaletimestring/index.md +++ b/files/ru/web/javascript/reference/global_objects/date/tolocaletimestring/index.md @@ -53,7 +53,7 @@ toLocaleTimeString(locales, options) ### Использование `toLocaleTimeString()` -При базовом использовании без указания `locale` возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию. +При использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию. ```js const date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.md b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.md index efcbbc7c9e37d9..14ee1816642cbb 100644 --- a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.md +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.md @@ -39,7 +39,7 @@ l10n: - {{jsxref("Intl/DateTimeFormat/formatRangeToParts", "Intl.DateTimeFormat.prototype.formatRangeToParts()")}} - : Этот метод принимает две [даты](/ru/docs/Web/JavaScript/Reference/Global_Objects/Date) и возвращает массив объектов, которые содержат специфичные для локали токены, представляющие каждую часть отформатированного диапазона дат. - {{jsxref("Intl/DateTimeFormat/formatToParts", "Intl.DateTimeFormat.prototype.formatToParts()")}} - - : Возвращает {{jsxref("Array")}} объектов, представляющих части даты, которые могут быть использованы для пользовательского форматирования с учётом локали. + - : Возвращает {{jsxref("Array", "массив")}} объектов, представляющих части даты, которые могут быть использованы для пользовательского форматирования с учётом локали. - {{jsxref("Intl/DateTimeFormat/resolvedOptions", "Intl.DateTimeFormat.prototype.resolvedOptions()")}} - : Возвращает новый объект со свойствами, представляющими локаль и настройки форматирования, определённые во время инициализации объекта. @@ -47,7 +47,7 @@ l10n: ### Использование `DateTimeFormat` -При базовом использовании без определения локали `DateTimeFormat` использует локаль и опции по умолчанию. +При использовании без указания локали `DateTimeFormat` использует локаль и настройки по умолчанию. ```js const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); diff --git a/files/ru/web/javascript/reference/global_objects/intl/numberformat/index.md b/files/ru/web/javascript/reference/global_objects/intl/numberformat/index.md index eedce8f1a5a6c2..6f8451158d74cb 100644 --- a/files/ru/web/javascript/reference/global_objects/intl/numberformat/index.md +++ b/files/ru/web/javascript/reference/global_objects/intl/numberformat/index.md @@ -1,136 +1,100 @@ --- title: Intl.NumberFormat slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +l10n: + sourceCommit: 70f09675ddcfc75a3bb66d2dce4cf82738948a37 --- -{{JSRef("Global_Objects", "NumberFormat", "Intl,Collator,DateTimeFormat")}} +{{JSRef}} -## Сводка +Объект **`Intl.NumberFormat`** предоставляет возможности форматирования чисел в соответствии с языковыми правилами. -Объект **`Intl.NumberFormat`** является конструктором объектов, включающих языка-зависимое форматирование чисел. +{{EmbedInteractiveExample("pages/js/intl-numberformat.html")}} -## Синтаксис +## Constructor -``` -new Intl.NumberFormat([locales[, options]]) -Intl.NumberFormat.call(this[, locales[, options]]) -``` - -### Параметры - -- `locales` - - - : Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента `locales` смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_identification_and_negotiation", 1)}}. Разрешены следующие ключи расширения Unicode: - - - `nu` - - : Используемая система нумерации. Возможные значения включают в себя: `"arab"`, `"arabext"`, `"bali"`, `"beng"`, `"deva"`, `"fullwide"`, `"gujr"`, `"guru"`, `"hanidec"`, `"khmr"`, `"knda"`, `"laoo"`, `"latn"`, `"limb"`, `"mlym"`, `"mong"`, `"mymr"`, `"orya"`, `"tamldec"`, `"telu"`, `"thai"`, `"tibt"`. - -- `options` - - - : Необязательный параметр. Объект с некоторыми или всеми из следующих свойств: - - - `localeMatcher` - - : Используемый алгоритм сопоставления локалей. Возможными значениями являются `"lookup"` и `"best fit"`; значением по умолчанию является `"best fit"`. Информацию по этой опции смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_negotiation", 1)}}. - - `style` - - : Используемый стиль форматирования. Возможными значениями являются `"decimal"` для простого форматирования числа, `"currency"` для форматирования валюты и `"percent"` для форматирования процентов; значением по умолчанию является `"decimal"`. - - `currency` - - : Валюта, используемая при форматировании валют. Возможными значениями являются коды валют ISO 4217, например, `"USD"` для доллара США, `"EUR"` для евро или `"CNY"` для китайского юаня — смотрите [список кодов текущих валют и денежных средств](http://www.currency-iso.org/en/home/tables/table-a1.html). Свойство не имеет значения по умолчанию; если свойство `style` равно `"currency"`, свойство `currency` также должно присутствовать. - - `currencyDisplay` - - : Определяет, как отображать валюту при форматировании валют. Возможными значениями являются `"symbol"` для использования локализованного символа валюты, например € для евро, `"code"` для использования кода валюты ISO, `"name"` для использования локализованного названия валюты, например `"доллар США"` для доллара; значением по умолчанию является `"symbol"`. - - `useGrouping` - - : Определяет, использовать ли разделители групп разрядов, например, разделители тысяч или тысяч/лакх/крор. Возможными значениями являются `true` и `false`; значением по умолчанию является `true`. - - Следующие свойства разбиваются на две группы: `minimumIntegerDigits`, `minimumFractionDigits` и `maximumFractionDigits` входят в одну группу, а `minimumSignificantDigits` и `maximumSignificantDigits` — в другую. Если определено хотя бы одно свойство из второй группы, свойства первой группы будут проигнорированы. - - - `minimumIntegerDigits` - - : Минимальное используемое количество цифр целой части числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является 1. - - `minimumFractionDigits` - - : Минимальное используемое количество цифр дробной части числа. Возможными значениями являются значения от 0 до 20; значением по умолчанию для простого и процентного форматирования является 0; значением по умолчанию для форматирования валюты является число цифр младших единиц, определяемое в [списке кодов валют ISO 4217](http://www.currency-iso.org/en/home/tables/table-a1.html) (2, если данный список не предоставляет такой информации). - - `maximumFractionDigits` - - : Максимальное используемое количество цифр дробной части числа. Возможными значениями являются значения от 0 до 20; значением по умолчанию для простого форматирования является наибольшее значение из `minimumFractionDigits` и 3; значением по умолчанию для форматирования валюты является число цифр младших единиц, определяемое в [списке кодов валют ISO 4217](http://www.currency-iso.org/en/home/tables/table-a1.html) (2, если данный список не предоставляет такой информации); значением по умолчанию для процентного форматирования является наибольшее значение из `minimumFractionDigits` и 0. - - `minimumSignificantDigits` - - : Минимальное используемое количество значащих цифр числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является 1. - - `maximumSignificantDigits` - - : Максимальное используемое количество значащих цифр числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является `minimumSignificantDigits`. - -## Описание +- {{jsxref("Intl/NumberFormat/NumberFormat", "Intl.NumberFormat()")}} + - : Создаёт новый объект `NumberFormat`. -### Свойства +## Статические методы -- {{jsxref("NumberFormat.prototype", "Intl.NumberFormat.prototype")}} - - : Позволяет добавлять свойства ко всем объектам. +- {{jsxref("Intl/NumberFormat/supportedLocalesOf", "Intl.NumberFormat.supportedLocalesOf()")}} + - : Возвращает массив, содержащий локали, которые поддерживаются без необходимости возврата к локали по умолчанию. -## Методы +## Свойства экземпляра -- {{jsxref("NumberFormat.supportedLocalesOf", "Intl.NumberFormat.supportedLocalesOf()")}} - - : Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без отката к локали по умолчанию среды выполнения. +Эти свойства определены в `Intl.NumberFormat.prototype` и есть у всех экземпляров `Intl.NumberFormat`. -## Экземпляры объекта `NumberFormat` +- {{jsxref("Object/constructor", "Intl.NumberFormat.prototype.constructor")}} + - : Функция-конструктор, создающая экземпляр объекта. Для экземпляров `Intl.NumberFormat` начальным значением является конструктор {{jsxref("Intl/NumberFormat/NumberFormat", "Intl.NumberFormat")}}. +- `Intl.NumberFormat.prototype[@@toStringTag]` + - : Начальным значением свойства [`@@toStringTag`](/ru/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag) является строка `"Intl.NumberFormat"`. Это свойство используется в {{jsxref("Object.prototype.toString()")}}. -### Свойства +## Методы экземпляра -Экземпляры `NumberFormat` наследуют следующие свойства из своего прототипа: - -{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Properties')}} - -### Методы - -Экземпляры `NumberFormat` наследуют следующие методы из своего прототипа: - -{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Methods')}} +- {{jsxref("Intl/NumberFormat/format", "Intl.NumberFormat.prototype.format()")}} + - : Функция-геттер, которая форматирует число в соответствии с локалью и настройками форматирования этого объекта {{jsxref("Intl.NumberFormat")}}. +- {{jsxref("Intl/NumberFormat/formatRange", "Intl.NumberFormat.prototype.formatRange()")}} + - : Функция-геттер, которая форматирует диапазон чисел в соответствии с локалью и настройками форматирования объекта {{jsxref("Intl.NumberFormat")}}, метод которого был вызван. +- {{jsxref("Intl/NumberFormat/formatRangeToParts", "Intl.NumberFormat.prototype.formatRangeToParts()")}} + - : Возвращает {{jsxref("Array", "массив")}} объектов, представляющих диапазон числовых строк по частям, которые можно использовать для пользовательского форматирования с учетом локали. +- {{jsxref("Intl/NumberFormat/formatToParts", "Intl.NumberFormat.prototype.formatToParts()")}} + - : Возвращает {{jsxref("Array", "массив")}} объектов, представляющих части числа, которые могут быть использованы для пользовательского форматирования с учётом локали. +- {{jsxref("Intl/NumberFormat/resolvedOptions", "Intl.NumberFormat.prototype.resolvedOptions()")}} + - : Возвращает новый объект со свойствами, представляющими локаль и настройки форматирования, определённые во время инициализации объекта. ## Примеры -### Пример: базовое использование +### Использование `NumberFormat` -При базовом использовании без определения локали возвращается строка, отформатированная с помощью локали по умолчанию с опциями по умолчанию. +При использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и настройками по умолчанию. ```js -var number = 3500; +const number = 3500; console.log(new Intl.NumberFormat().format(number)); -// → '3,500' в локали US English +// '3,500' в локали US English ``` -### Пример: использование аргумента `locales` +### Использование параметра `locales` -Этот пример показывает некоторые локализованные числовые форматы. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент `locales`: +Этот пример показывает некоторые локализованные форматы чисел. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) используя параметр `locales`: ```js -var number = 123456.789; +const number = 123456.789; // В Германии в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - точка console.log(new Intl.NumberFormat("de-DE").format(number)); -// → 123.456,789 +// 123.456,789 // В России в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - пробел console.log(new Intl.NumberFormat("ru-RU").format(number)); -// → 123 456,789 +// 123 456,789 -// В большинстве арабоговорящих стран используют настоящие арабские цифры +// В большинстве арабоязычных стран используют настоящие арабские цифры console.log(new Intl.NumberFormat("ar-EG").format(number)); -// → ١٢٣٤٥٦٫٧٨٩ +// ١٢٣٤٥٦٫٧٨٩ // В Индии используют разделители для тысяч/лакх/крор console.log(new Intl.NumberFormat("en-IN").format(number)); -// → 1,23,456.789 +// 1,23,456.789 // Ключ расширения nu запрашивает систему нумерации, например, китайскую десятичную console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number)); -// → 一二三,四五六.七八九 +// 一二三,四五六.七八九 // Если запрашиваемый язык может не поддерживаться, например // балийский, откатываемся на запасной язык, в данном случае индонезийский console.log(new Intl.NumberFormat(["ban", "id"]).format(number)); -// → 123.456,789 +// 123.456,789 ``` -### Пример: использование аргумента `options` +### Использование параметра `options` -Результат может быть настроен с помощью аргумента `options`: +Результат может быть настроен с помощью параметра `options`: ```js -var number = 123456.789; +const number = 123456.789; // Запрашиваем формат валюты console.log( @@ -138,14 +102,14 @@ console.log( number, ), ); -// → 123.456,79 € +// 123.456,79 € console.log( new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB" }).format( number, ), ); -// → 123 456,79 руб. +// 123 456,79 руб. // Японская йена не использует младшие единицы console.log( @@ -153,7 +117,7 @@ console.log( number, ), ); -// → ¥123,457 +// ¥123,457 // Ограничиваем до трёх значащих цифр console.log( @@ -161,9 +125,29 @@ console.log( number, ), ); -// → 1,23,000 +// 1,23,000 + +// Форматирование с единицами измерения +console.log( + new Intl.NumberFormat("pt-PT", { + style: "unit", + unit: "kilometer-per-hour", + }).format(50), +); +// 50 km/h + +console.log( + (16).toLocaleString("en-GB", { + style: "unit", + unit: "liter", + unitDisplay: "long", + }), +); +// 16 litres ``` +Полный список настроек смотрите на странице [`Intl.NumberFormat()` constructor](/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options). + ## Спецификации {{Specifications}} @@ -174,4 +158,5 @@ console.log( ## Смотрите также -{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}} +- [Полифил `Intl.NumberFormat` в FormatJS](https://formatjs.io/docs/polyfills/intl-numberformat/) +- {{jsxref("Intl")}} diff --git a/files/ru/web/javascript/reference/global_objects/string/localecompare/index.md b/files/ru/web/javascript/reference/global_objects/string/localecompare/index.md index f59dad646760d8..692766ccdf5987 100644 --- a/files/ru/web/javascript/reference/global_objects/string/localecompare/index.md +++ b/files/ru/web/javascript/reference/global_objects/string/localecompare/index.md @@ -7,7 +7,7 @@ l10n: {{JSRef}} -Метод **`localeCompare()`** {{jsxref("String", "строковых значений")}} возвращает число, указывающее, где должна находиться при сортировке (до, после или в том же самом месте, что и строка, переданная в качестве параметра). В реализациях с поддержкой [`Intl.Collator` API](/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator) этот метод просто вызывает `Intl.Collator`. +Метод **`localeCompare()`** {{jsxref("String", "строковых значений")}} возвращает число, указывающее, где должна находиться эта строка при сортировке (до, после или в том же самом месте, что и строка, переданная в качестве параметра). В реализациях с поддержкой [`Intl.Collator` API](/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator) этот метод просто вызывает `Intl.Collator`. При сравнении большого количества строк, например при сортировке больших массивов, лучше создать объект {{jsxref("Intl.Collator")}} и использовать предоставляемый им метод {{jsxref("Intl/Collator/compare", "compare()")}}.