При код-ревью проектов, использующих Globalize, первым блоком проверок становится корректность загрузки CLDR-данных и инициализации локали. Ошибки на этом этапе приводят к каскадным сбоям форматирования чисел, дат и сообщений.
Ключевые пункты проверки:
Наличие CLDR-данных для всех поддерживаемых локалей
supplemental данные
(likelySubtags, numberingSystems)main данные для каждой используемой локали
(en, ru, kk и т.д.)Единая точка инициализации Globalize
Контроль глобального состояния
Типовая ошибка, выявляемая на ревью: использование форматирования до завершения загрузки CLDR, что приводит к падению или возврату «сырого» значения.
Форматирование чисел — одна из наиболее чувствительных зон, где Globalize часто используется неправильно.
Контрольный список:
Явное указание формата числа
Проверка валютных форматов
"1000 ₽")Стабильность округления
Граничные случаи
Частая ошибка: форматирование числа вне Globalize с последующей локализацией только символа валюты, что ломает региональные правила отображения.
Работа с датами в Globalize требует строгого соответствия локали и формату отображения.
Пункты ревью:
Использование единых шаблонов
Date.toString() или кастомные
форматтерыСогласованность временных зон
Форматы дат
Временные интервалы
Граничные даты
Типовая проблема: использование new Date() без
нормализации в сочетании с локализованным форматированием, что даёт
разные результаты на клиенте и сервере.
Globalize активно используется для работы с pluralization rules и message formatting.
Контрольный список:
Корректное использование CLDR plural rules
count === 1 ? ... : ...Полнота форм сообщений
Согласованность ключей сообщений
Fallback поведение
Интерполяция значений
Частая ошибка: смешивание plural-логики Globalize с ручной интерполяцией строк, что приводит к некорректным формам в славянских языках.
Код-ревью должно выявлять архитектурные нарушения, которые усложняют поддержку интернационализации.
Ключевые моменты:
Разделение ответственности
Отсутствие дублирования форматтеров
Модульность загрузки локалей
Предсказуемость API
При использовании Globalize важно учитывать стоимость операций форматирования.
Чеклист:
Кэширование форматтеров
Отсутствие лишних пересборок CLDR
Минимизация операций в render path
Профилирование тяжелых страниц
Типовая ошибка: создание нового formatter-а внутри React/Vue render-функции, что приводит к деградации производительности.
Локализация часто ломается на границе frontend/backend.
Контроль:
Единые правила форматирования
Сериализация данных
Детерминированность вывода
Тестирование контрактов
Хотя Globalize не занимается переводами напрямую, он часто используется совместно с message bundles.
Чеклист:
Отсутствие «битых» ключей
Контроль длины строк
Семантическая корректность
Система должна выдерживать добавление новых языков без переписывания логики.
Проверяется:
Типовой анти-паттерн:
if (locale === 'ru') { ... } else { ... }, который
блокирует масштабирование.
Код-ревью должно выявлять возможность автоматического тестирования локализационных сценариев.
Пункты:
Критичная проблема: невозможность воспроизвести одинаковый результат форматирования в тестовой среде из-за неполной загрузки CLDR.