Skip to content

Локализация ​

Карточка Dreame Vacuum изначально поддерживает несколько языков. Она динамически использует языковые файлы, предоставленные интеграцией бэкенда dreame_vacuum, вместо того чтобы поддерживать отдельные файлы локализации.

Карточка получает локализованные текстовые значения из раздела entity_component внутри dreame_vacuum файлы перевода интеграции.

Ключи перевода ​

В языковых файлах карточка в основном использует несколько категорий ключей, начинающихся с frontend_, для отображения своего интерфейса:

  • frontend_action: Этот раздел содержит весь текст, используемый внутри кнопок действий на основной панели управления карточкой, таких как Старт, Пауза или Док.

  • frontend_config: Этот раздел содержит все текстовые метки, описания и настройки, используемые в интерфейсе визуального конфигуратора карточки.

  • frontend_message: Содержит сообщения о состоянии, оповещения, отчеты об ошибках и предупреждения, отображаемые на карточке.

  • frontend_title: Охватывает заголовки и названия разделов, используемые в меню карточки, такие как Управление картой или Настройки уборки.

  • entity: Этот блок охватывает домены сущностей Home Assistant, такие как select, sensor, switch, number, time и input. Карточка динамически получает имена и состояния этих сущностей, такие как Уровень всасывания или Тихо, прямо из интеграции, чтобы обеспечить согласованность.

    • Состояния, специфичные для карточки: Предоставляет переводы для внутренних состояний, используемых исключительно интерфейсом карточки, а не сущностями Home Assistant. Это включает названия комнат (полученные из сущности segment_name), а также конкретные идентификаторы, такие как task_type, edit_type, map_type, object_type, furniture_type, obstacle_type, obstacle_reason, task_end_type, task_interrupt_reason, startup_method, cleanup_method и recovery_map_type.

Форматирование даты, времени и единиц ​

В дополнение к переводу текста, карточка автоматически адаптируется к локальным предпочтениям форматирования без необходимости ручной настройки:

  • Язык и локаль: Карточка отдает приоритет языку, выбранному в профиле Home Assistant. Если язык явно не установлен, она автоматически использует язык по умолчанию веб-браузера.
  • 12/24-часовой формат времени: Карточка отображает время в формате, настроенном в профиле Home Assistant. Если формат не указан, она автоматически использует стандартный формат времени для региона устройства.
  • Первый день недели: Карточка считывает настройку первого дня недели напрямую из Home Assistant. Если значение не определено, она динамически определяет, должен ли календарь начинаться с воскресенья или с понедельника в зависимости от местного региона.
  • Система единиц: Карточка постоянно проверяет глобальные настройки Home Assistant. Если система использует имперскую систему единиц, карточка автоматически пересчитывает площади и расстояния, отображая их в футах, квадратных футах или ярдах.
  • Переводы родных единиц: Общие суффиксы и сокращения единиц, такие как метр, километр, фут, ярд, минута и час, не требуют ручного перевода. Карта переводит их на лету, используя встроенные функции браузера, специально настроенные для активного языка.

Исправить или улучшить переводы ​

Если обнаружена опечатка или неправильный перевод, либо требуется поддержка нового языка, вклад вносится в основной dreame_vacuum интеграционный репозиторий.

Обобщение перевода

Официальное приложение часто использует разную терминологию для идентичных параметров на различных поколениях устройств. Переводы должны использовать логические, обобщенные наименования, а не строго копировать точную формулировку из приложения. Это предотвращает конфликты перевода, когда исправление, предназначенное для одного конкретного поколения, впоследствии перезаписывается пользователями с другими поколениями устройств.

Процесс обновления включает следующие шаги:

  1. Форкнуть репозиторий: Создание форка репозитория интеграции Dreame Vacuum для Home Assistant на GitHub.
  2. Найти файл перевода: Переход в каталог custom_components/dreame_vacuum/translations/ в форкнутом репозитории, чтобы найти файл перевода, соответствующий языковому коду, например de.json или it.json.
  3. Внести изменения: Обновление некорректного текста. Блоки frontend_action, frontend_config, frontend_message и frontend_title управляют текстом, связанным с пользовательским интерфейсом. Блок entity управляет именами сенсоров, вариантами выбора и их состояниями.
  4. Отправить Pull Request: Создание Pull Request в основной репозиторий. После того как Pull Request будет рассмотрен и объединен в новую версию интеграции, Dreame Vacuum Card автоматически получает обновленные переводы.