Skip to content
This repository has been archived by the owner on May 26, 2020. It is now read-only.

Latest commit

 

History

History
68 lines (55 loc) · 2.22 KB

File metadata and controls

68 lines (55 loc) · 2.22 KB

Новые возможности JavaScript — Интернационализация

Интернационализация — это задача, которую, в большинстве случаев, решить непросто, но радует то, что в JavaScript имеется API интернационализации, хорошо поддерживаемое большинством браузеров.

Примеры:

Числовой формат

// ECMAScript 6
const i18nEN = new Intl.NumberFormat("en-US");
const i18nDE = new Intl.NumberFormat("de-DE");
const i18nRU = new Intl.NumberFormat("ru-RU");

console.log(i18nEN.format(1234567.89));
// Ожидаемый результат: "1,234,567.89"
console.log(i18nDE.format(1234567.89));
// Ожидаемый результат: "1.234.567,89"
console.log(i18nRU.format(1234567.89));
// Ожидаемый результат: "1 234 567,89"

Денежный формат

// ECMAScript 6
const i18nUSD = new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
});
const i18nEUR = new Intl.NumberFormat("de-DE", {
  style: "currency",
  currency: "EUR",
});
const i18nRUR = new Intl.NumberFormat("ru-RU", {
  style: "currency",
  currency: "RUR",
});

console.log(i18nUSD.format(100200300.40));
// Ожидаемый результат: "$100,200,300.40"
console.log(i18nEUR.format(100200300.40));
// Ожидаемый результат: "100.200.300,40 €"
console.log(i18nRUR.format(100200300.40));
// Ожидаемый результат: "100 200 300,40 р."

Формат даты

// ECMAScript 6
const i18nEN = new Intl.DateTimeFormat("en-US");
const i18nDE = new Intl.DateTimeFormat("de-DE");
const i18nRU = new Intl.DateTimeFormat("ru-RU");

console.log(i18nEN.format(new Date("2018-04-05")));
// Ожидаемый результат: "4/5/2018"
console.log(i18nDE.format(new Date("2018-04-05")));
// Ожидаемый результат: "5.4.2018"
console.log(i18nRU.format(new Date("2018-04-05")));
// Ожидаемый результат: "05.04.2018"

Подробнее на learn.javascript.ru.