Screenshot

Image

Description

Версия Superset: 5.0

Окружение: ОС: Ubuntu 20.04 Браузер: Chrome 120

Ожидаемое поведение В виджете "Календарная тепловая карта" названия месяцев должны отображаться на русском языке (например, "Январь", "Февраль") в соответствии с настройками локализации, заданными в superset_config.py: BABEL_DEFAULT_LOCALE = "ru" D3_TIME_FORMAT настроен с использованием русских названий месяцев.

Фактическое поведение Названия месяцев в виджете "Календарная тепловая карта" отображаются на английском языке (например, "January", "February"), несмотря на указанные настройки локализации.

Comment From: dosubot[bot]

Hi @zmeygarinich! I'm Dosu and I’m helping the superset team.

Виджет "Календарная тепловая карта" в Superset 5.0 отображает названия месяцев на английском языке, потому что его реализация использует d3.time.format без поддержки локализации — в коде не происходит установка русской локали для D3.js, и настройки BABEL_DEFAULT_LOCALE или D3_TIME_FORMAT из superset_config.py не передаются в компонент календаря. Даже если вы указали русские месяцы в D3_TIME_FORMAT, при использовании формата "adaptive" или по умолчанию, месяц всегда будет на английском, так как d3.time.format использует только встроенную (английскую) локаль, если явно не задана другая подробнее.

В коде виджета (Calendar.js и cal-heatmap.js) нет механизма для передачи локали или пользовательских названий месяцев в D3.js — все форматирование дат происходит через d3.time.format('%B'), который всегда возвращает английские месяцы, если не использовать d3.timeFormatLocale с нужной локалью см. детали реализации.

На данный момент нет штатного способа добиться русских названий месяцев в этом виджете только через конфиг. Для поддержки локализации потребуется доработка: нужно добавить возможность передавать d3.timeFormatLocale с русскими месяцами в компонент календаря и использовать его для форматирования дат. В качестве временного обходного пути можно попробовать явно задать формат даты (например, %m или %Y), чтобы избежать вывода английских названий, но полноценная локализация требует изменений в коде подробнее.

Похожие проблемы с локализацией дат и месяцев обсуждаются в issue #31790.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

Comment From: rusackas

Maybe @TechAuditBI has some insight/experience here?