mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 16:38:31 +00:00
feat v1.13.0: universality — floors-import wizard, editable icon rules, tap actions (phase 9)
- floors wizard: spaces from the HA floor registry, step-by-step with mandatory plan upload per floor, skip support, auto-markup after the last one - icon rules as data (settings.icon_rules) + in-card editor with live test, invalid-regex guard, bilingual defaults, device_class fallback chain - tap_action (card) + per-device override; security model: card-wide toggle only for light/switch/fan/humidifier, explicit override for covers, never lock/alarm; 600ms long-press always opens the info card - i18n dictionaries → src/i18n/*.json (+parity tests); light-theme badge fixes - frontend tests 15→28
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"card.title": "План дома",
|
||||
"count.devices": "{n} устр.",
|
||||
"empty.no_spaces": "Пространств пока нет.",
|
||||
"empty.add_first": "Добавьте первое пространство и загрузите план этажа.",
|
||||
"empty.install": "Установите интеграцию House Plan и добавьте запись в «Устройства и службы».",
|
||||
"btn.add_space": "Добавить пространство",
|
||||
"btn.cancel": "Отмена",
|
||||
"btn.save": "Сохранить",
|
||||
"btn.close": "Закрыть",
|
||||
"btn.delete": "Удалить",
|
||||
"btn.remove": "Убрать",
|
||||
"btn.edit": "Редактировать",
|
||||
"btn.open_in_ha": "Открыть в HA",
|
||||
"btn.reset": "Сброс",
|
||||
"btn.attach": "Прикрепить…",
|
||||
"btn.upload": "Загрузить…",
|
||||
"btn.replace": "Заменить…",
|
||||
"btn.no_area": "Без зоны",
|
||||
"title.zoom_in": "Приблизить",
|
||||
"title.zoom_out": "Отдалить",
|
||||
"title.zoom_reset": "Сбросить масштаб",
|
||||
"title.add_device": "Добавить устройство на план",
|
||||
"title.show_all": "Показывать все устройства зоны (без курирования)",
|
||||
"title.reset_layout": "Сбросить позиции значков к авто-раскладке",
|
||||
"title.markup": "Разметка комнат: сетка, линии, контуры",
|
||||
"title.configure_space": "Настроить пространство",
|
||||
"title.add_space": "Добавить пространство",
|
||||
"title.markup_add": "Добавить комнату: соединяйте точки сетки линиями до замкнутого контура",
|
||||
"title.markup_erase": "Стереть линию: клик по линии",
|
||||
"title.markup_delroom": "Удалить комнату: клик внутри комнаты",
|
||||
"title.no_area_room": "Декоративная комната без привязки к зоне (например, холл)",
|
||||
"title.choose_area": "Выберите зону Home Assistant",
|
||||
"title.need_plan": "Загрузите подложку (план этажа)",
|
||||
"markup.add": "Добавить",
|
||||
"markup.erase": "Стереть",
|
||||
"markup.delete": "Удалить",
|
||||
"markup.hint_points": "точек: {n} · Esc/Ctrl+Z — убрать точку · замкните контур кликом по первой",
|
||||
"markup.hint_start": "кликните точку сетки, чтобы начать контур",
|
||||
"tip.room": "комната — открыть зону",
|
||||
"tip.lqi": "средний сигнал zigbee:",
|
||||
"info.device_header": "Устройство на плане",
|
||||
"info.model": "Модель",
|
||||
"info.state": "Состояние",
|
||||
"info.link": "Ссылка",
|
||||
"info.manuals": "Инструкции",
|
||||
"info.none": "Нет дополнительной информации",
|
||||
"marker.new_device": "Новое устройство",
|
||||
"marker.name_label": "Имя (отображается на плане)",
|
||||
"marker.name_ph": "Название",
|
||||
"marker.binding_label": "Привязка к устройству HA",
|
||||
"marker.virtual_option": "Виртуальное устройство (без привязки)",
|
||||
"marker.search_ph": "Поиск устройства / группы…",
|
||||
"marker.nothing_found": "ничего не найдено",
|
||||
"marker.room_label": "Комната",
|
||||
"marker.room_override": " (переопределить размещение)",
|
||||
"marker.room_choose": "— выберите комнату —",
|
||||
"marker.room_auto": "— по зоне устройства (авто) —",
|
||||
"marker.icon_label": "Иконка",
|
||||
"marker.icon_ph": "mdi:… (пусто = авто)",
|
||||
"marker.model_label": "Модель",
|
||||
"marker.model_ph": "напр. Aqara T&H",
|
||||
"marker.link_label": "Ссылка",
|
||||
"marker.desc_label": "Описание",
|
||||
"marker.desc_ph": "Заметки, характеристики…",
|
||||
"marker.manuals_label": "Инструкции (PDF и т.п.)",
|
||||
"marker.sub_device": "устройство",
|
||||
"marker.sub_z2m_group": " · Z2M-группа",
|
||||
"marker.sub_group": "группа",
|
||||
"marker.sub_helper": "хелпер",
|
||||
"space.new": "Новое пространство",
|
||||
"space.header": "Пространство",
|
||||
"space.title_label": "Название",
|
||||
"space.title_ph": "Например: Гараж",
|
||||
"space.plan_label": "Подложка (план)",
|
||||
"space.no_plan": "нет подложки",
|
||||
"space.plan_alt": "план",
|
||||
"room.new": "Новая комната",
|
||||
"room.name_label": "Отображаемое имя",
|
||||
"room.name_ph": "Например: Терраса",
|
||||
"room.area_label": "Зона Home Assistant (свободные)",
|
||||
"room.no_area_option": "— без зоны —",
|
||||
"room.default_name": "Комната",
|
||||
"device.unnamed": "без имени",
|
||||
"device.light_group": "группа света",
|
||||
"device.fallback": "устройство",
|
||||
"device.virtual": "виртуальное устройство",
|
||||
"confirm.reset_layout": "Сбросить позиции всех иконок к авто-раскладке?",
|
||||
"confirm.delete_room": "Удалить комнату «{name}»?",
|
||||
"confirm.remove_marker": "Убрать «{name}» с плана?",
|
||||
"confirm.delete_space": "Удалить пространство «{title}» со всеми комнатами и разметкой?",
|
||||
"toast.pos_save_failed": "Не удалось сохранить позицию: {err}",
|
||||
"toast.no_entity": "У устройства нет подходящей сущности",
|
||||
"toast.markup_needs_server": "Разметка доступна после переноса конфига на сервер",
|
||||
"toast.conflict": "Конфиг изменён в другом окне — данные обновлены, повторите последнее действие",
|
||||
"toast.cfg_save_failed": "Не удалось сохранить конфиг: {err}",
|
||||
"toast.room_saved": "Комната сохранена ({n}). Устройств добавлено: {added}. Обведите следующую или выйдите из разметки.",
|
||||
"toast.room_saved_no_area": "Комната сохранена ({n}, без зоны). Обведите следующую или выйдите из разметки.",
|
||||
"toast.marker_needs_server": "Редактирование устройств доступно после переноса конфига на сервер",
|
||||
"toast.virtual_name_required": "Укажите имя виртуального устройства",
|
||||
"toast.marker_saved": "Устройство сохранено",
|
||||
"toast.marker_removed": "Устройство убрано с плана",
|
||||
"toast.integration_missing": "Интеграция House Plan не установлена — управление недоступно",
|
||||
"toast.plan_formats": "Поддерживаются SVG, PNG, JPG, WebP",
|
||||
"toast.plan_required": "Загрузите подложку — план этажа обязателен",
|
||||
"toast.space_added_onboard": "Пространство добавлено. Обведите комнаты: кликайте по точкам сетки и замкните контур.",
|
||||
"toast.space_added": "Пространство добавлено",
|
||||
"toast.space_saved": "Пространство сохранено",
|
||||
"toast.space_deleted": "Пространство удалено",
|
||||
"toast.delete_failed": "Ошибка удаления: {err}",
|
||||
"toast.error": "Ошибка: {err}",
|
||||
"toast.file_failed": "Файл «{name}» не загружен: {err}",
|
||||
"toast.files_attached": "Прикреплено файлов: {n}",
|
||||
"err.unknown": "неизвестная ошибка",
|
||||
"err.code": "код {code}",
|
||||
"err.too_large": "файл больше {mb} МБ",
|
||||
"err.bad_ext": "недопустимый тип (нужен PDF/изображение)",
|
||||
"err.unauthorized": "нужны права администратора",
|
||||
"editor.title": "Заголовок",
|
||||
"editor.default_floor": "Пространство по умолчанию",
|
||||
"editor.icon_size": "Размер иконок, % ширины плана",
|
||||
"editor.show_temperature": "Показывать температуру",
|
||||
"editor.live_states": "Живые состояния (вкл/выкл, открыто…)",
|
||||
"editor.show_signal": "Показывать сигнал zigbee (LQI)",
|
||||
"editor.language": "Язык интерфейса",
|
||||
"editor.lang_auto": "Авто (профиль HA)",
|
||||
"editor.lang_en": "English",
|
||||
"editor.lang_ru": "Русский",
|
||||
"title.icon_rules": "Правила иконок: какая MDI-иконка достаётся устройству по имени",
|
||||
"rules.title": "Правила иконок",
|
||||
"rules.hint": "Правила проверяются сверху вниз по строке «имя устройства + модель» (regex без учёта регистра); срабатывает первое совпадение. Если ничего не подошло — решает device class сущности, затем — иконка-заглушка.",
|
||||
"rules.pattern_ph": "regex, напр. розетк|plug",
|
||||
"rules.icon_ph": "mdi:power-socket-de",
|
||||
"rules.add": "Добавить правило",
|
||||
"rules.reset": "Сбросить к умолчаниям",
|
||||
"rules.test_ph": "Проверьте имя устройства…",
|
||||
"rules.invalid": "некорректный regex",
|
||||
"rules.saved": "Правила иконок сохранены",
|
||||
"btn.up": "Вверх",
|
||||
"btn.down": "Вниз",
|
||||
"editor.tap_action": "Тап по устройству",
|
||||
"tap.info": "Инфо-карточка",
|
||||
"tap.more_info": "Диалог HA (more-info)",
|
||||
"tap.toggle": "Переключить (свет/розетки)",
|
||||
"tap.auto": "Как в настройках карточки",
|
||||
"marker.tap_label": "Действие по тапу для этого устройства",
|
||||
"tap.toggle_note": "Toggle никогда не применяется к замкам и сигнализациям; долгое нажатие всегда открывает инфо-карточку.",
|
||||
"import.title": "Создать пространства из этажей HA",
|
||||
"import.hint": "Home Assistant уже знает эти этажи. Отметьте, какие превратить в пространства плана — далее для каждого попросим картинку плана. Комнаты затем обводятся вручную по плану.",
|
||||
"import.start": "Создать: {n}",
|
||||
"import.manual": "Начать с нуля",
|
||||
"import.progress": "Этаж {i} из {n}",
|
||||
"import.done": "Пространства созданы. Обведите комнаты: кликайте по точкам сетки и замкните контур.",
|
||||
"btn.skip": "Пропустить"
|
||||
}
|
||||
Reference in New Issue
Block a user