Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 104 из 114 · 8 мин
Intl.NumberFormat formatToParts, formatRange, formatRangeToParts; Intl.PluralRules select и selectRange; resolvedOptions и supportedLocalesOf у всех служб Intl.
«1 задач», «2 задач», «21 задач»! Русский язык — моя стихия. Хе-хе.
Intl знает правила множественного числа для любого языка: one, few, many, other.
Intl.PluralRules · select()new Intl.PluralRules("ru").select(n) → "one" (1, 21), "few" (2–4, 22), "many" (5–20) или "other" (дроби).const pr = new Intl.PluralRules("ru");
const forms = { one: "задача", few: "задачи", many: "задач", other: "задачи" };
for (const n of [1, 3, 5, 21, 1.5]) console.log(n, forms[pr.select(n)]);selectRange()pr.selectRange(2, 5) — форма слова для «от 2 до 5».console.log(new Intl.PluralRules("ru").selectRange(2, 5));formatToParts(){ type, value }: целое, группы, дробная часть, валюта — чтобы стилизовать отдельно.const f = new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB" });
console.log(f.formatToParts(1250.5).map((p) => p.type).join(" "));formatRange() · formatRangeToParts()formatRange(200, 300) → «200–300 ₽» по правилам языка; …ToParts — по частям.const f = new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB", maximumFractionDigits: 0 });
console.log(f.formatRange(200, 300), f.formatRangeToParts(200, 300).length > 0);resolvedOptions() · supportedLocalesOf()resolvedOptions() — какие настройки и язык реально применены; статический supportedLocalesOf(list) — какие языки из списка поддерживаются.console.log(new Intl.NumberFormat("ru").resolvedOptions().locale, Intl.DateTimeFormat.supportedLocalesOf(["ru", "xx"]));Никогда не пиши склонения через if (n === 1): правила языков сложнее. Есть Intl.PluralRules.
Напиши tasks(n): ` ${n} задача , задачи или задач по Intl.PluralRules("ru")`.
Выберите один ответ.
Какую категорию вернёт new Intl.PluralRules("ru").select(22)?
Проверяем состояние обучения…