В библиотеке Globalize короткая форма используется для отображения данных в максимально сжатом виде, ориентированном на интерфейсы с ограниченным пространством: списки, карточки, таблицы, мобильные элементы. Основная цель — передать смысл значения без избыточной детализации.
Для числовых значений короткая форма чаще всего реализуется через компактное представление (compact notation), где большие числа заменяются на сокращённые обозначения порядков.
Пример поведения:
Globalize использует CLDR-данные, поэтому правила сокращений зависят от локали.
Типичный пример:
Globalize.locale("en");
Globalize.formatNumber(1200, {
style: "decimal",
compactDisplay: "short"
});
// "1.2K"
Особенность короткой формы заключается в том, что она допускает потерю точности ради компактности. Например, 12 345 может быть отображено как 12.3K.
Короткая форма дат применяется для интерфейсов, где важно быстрое восприятие без лишних деталей:
Globalize опирается на шаблоны CLDR и форматирует даты в зависимости от локали:
Globalize.locale("ru");
Globalize.formatDate(new Date(2026, 4, 27), {
date: "short"
});
// "27.05.2026"
Ключевой принцип: короткая форма исключает текстовые элементы (например, название месяца), заменяя их числовыми эквивалентами.
Для времени короткая форма минимизирует детализацию, часто исключая секунды:
Globalize.formatDate(new Date(), {
time: "short"
});
Подобный формат используется в расписаниях, уведомлениях и интерфейсных панелях.
Длинная форма ориентирована на максимальную читаемость и полноту информации. Она применяется в отчётах, документах, аналитических интерфейсах и любых контекстах, где важна однозначность и отсутствие интерпретационных потерь.
В длинной форме числа отображаются без сокращений, с сохранением всех разрядов и локализованных разделителей.
Пример:
Globalize.locale("en");
Globalize.formatNumber(1200000, {
style: "decimal",
useGrouping: true
});
// "1,200,000"
Здесь принципиально сохраняется точное значение, без округления до тысяч или миллионов.
В некоторых локалях дополнительно применяются специфические разделители:
Длинная форма дат включает полное название месяца, иногда дня недели и дополнительные элементы локализации:
Globalize.locale("ru");
Globalize.formatDate(new Date(2026, 4, 27), {
date: "full"
});
// "среда, 27 мая 2026 г."
Такая форма исключает неоднозначность и ориентирована на человеческое чтение, а не на компактное отображение.
Полная форма времени может включать секунды и дополнительные уточнения:
Globalize.formatDate(new Date(), {
time: "medium"
});
// "14:05:33"
В расширенных форматах возможно включение часового пояса:
Различие между короткой и длинной формой проявляется не только в длине строки, но и в уровне абстракции:
В Globalize выбор формы тесно связан с локалями CLDR, поскольку разные языки по-разному трактуют сокращения и полные представления.
Например:
Globalize.locale("ru");
Globalize.formatNumber(1000, {
style: "decimal",
compactDisplay: "short"
});
// "1 тыс."
Это означает, что короткая форма не является универсальной — она семантически зависит от языкового окружения.
Длинные и короткие формы даты используют разные уровни шаблонов CLDR:
Пример различий:
Globalize.formatDate(date, { date: "short" });
// 27.05.2026
Globalize.formatDate(date, { date: "medium" });
// 27 мая 2026 г.
Globalize.formatDate(date, { date: "long" });
// 27 мая 2026
Globalize.formatDate(date, { date: "full" });
// среда, 27 мая 2026 г.
Каждый уровень расширяет предыдущий, добавляя элементы контекста.
Выбор между короткой и длинной формой влияет на структуру интерфейса:
В сложных системах часто используется динамическое переключение: