Globalize опирается на данные CLDR (Unicode Common Locale Data Repository) и предоставляет слой интернационализации, который позволяет приводить единицы измерения времени к локально корректному виду. Работа с временными единицами в этой библиотеке включает форматирование длительностей, относительного времени, а также управление грамматическими формами (plural rules), которые критичны для языков с богатой морфологией.
Временные единицы в контексте локализации представляют собой набор стандартных категорий:
Каждая из этих единиц существует в нескольких формах выражения:
Globalize не хранит собственных языковых правил. Вместо этого используется CLDR, где описаны:
Перед использованием функций форматирования временных единиц требуется загрузка соответствующих наборов CLDR-данных. Они включают:
main)supplemental/plurals)units)Без этих данных форматирование временных интервалов невозможно, так как библиотека не содержит встроенных языковых правил.
Основная операция — преобразование числового значения и единицы времени в локализованную строку.
Типичный сценарий:
Примеры логики:
Разница между языками проявляется в правилах:
Ключевой механизм работы временных единиц — plural rules.
В русском языке выделяются категории:
Globalize использует CLDR для определения категории числа и выбора правильной формы слова.
Пример логики:
Каждая единица времени имеет набор форм, связанных с этими категориями.
Относительное время выражает временные интервалы относительно текущего момента:
Внутри Globalize это реализуется через шаблоны сообщений CLDR, где используются переменные:
Структура формируется по правилам локали:
Длительность отличается от относительного времени тем, что не привязана к текущему моменту. Это чистая величина интервала:
В Globalize длительности могут формироваться:
При этом используется разбиение времени на компоненты:
Каждая временная единица имеет несколько вариантов представления:
Используется в текстах и пояснениях:
Используется в интерфейсах:
Применяется в ограниченном пространстве:
Globalize выбирает форму на основе параметров форматирования и локали.
Работа с единицами времени осуществляется через единый механизм форматирования единиц измерения.
Логика использования включает:
Внутренне библиотека обращается к CLDR-структурам:
При форматировании сложных значений используется разбиение на несколько единиц:
Пример:
Алгоритм:
В разных языках порядок может отличаться:
Работа с временными единицами включает ряд языковых особенностей:
Например:
Globalize не фиксирует эти правила, а полностью делегирует их CLDR.
Временные единицы применяются в разных сценариях:
В каждом случае требования к формату различаются:
При работе с составными временными значениями важно соблюдать согласование между компонентами:
Например, в одном языке допустимо:
В другом:
Globalize следует правилам CLDR для конкретной локали, не применяя универсальных шаблонов.
CLDR определяет:
Структура данных включает:
Globalize выступает как слой интерпретации этих данных.
В языках с развитой системой склонений:
Это требует:
При отображении временных единиц часто применяется упрощение:
Пример:
Такая нормализация зависит от локали и контекста отображения.