{ "card.title": "House plan", "count.devices": "{n} dev.", "empty.no_spaces": "No spaces yet.", "empty.add_first": "Add the first space and upload a floor plan.", "empty.install": "Install the House Plan integration and add it in \"Devices & services\".", "btn.add_space": "Add space", "btn.cancel": "Cancel", "btn.save": "Save", "btn.close": "Close", "btn.delete": "Delete", "btn.remove": "Remove", "btn.edit": "Edit", "btn.open_in_ha": "Open in HA", "btn.reset": "Reset", "btn.attach": "Attach…", "btn.upload": "Upload…", "btn.replace": "Replace…", "btn.no_area": "No area", "title.zoom_in": "Zoom in", "title.zoom_out": "Zoom out", "title.zoom_reset": "Reset zoom", "title.add_device": "Add a device to the plan", "title.show_all": "Show all area devices (no curation)", "title.reset_layout": "Reset icon positions to auto layout", "title.markup": "Room markup: grid, lines, outlines", "title.configure_space": "Configure space", "title.add_space": "Add space", "title.markup_add": "Add a room: connect grid dots with lines until the outline closes", "title.markup_merge": "Merge rooms: click one room, then the neighbour it shares a wall with", "title.markup_split": "Split a room: click the room, then two points on its walls", "title.markup_delroom": "Delete a room: click inside the room", "title.no_area_room": "Decorative room without an HA area (e.g. a hallway)", "title.choose_area": "Select a Home Assistant area", "title.need_plan": "Upload a floor-plan image", "markup.add": "Add", "markup.merge": "Merge", "markup.split": "Split", "markup.opening": "Opening", "title.markup_opening": "Doors & windows: click a wall to place, click an opening to edit", "opening.new": "New opening", "opening.edit": "Door / window", "opening.door": "Door", "opening.window": "Window", "opening.type_label": "Type", "opening.length_label": "Length, cm", "opening.contact_label": "Open/close sensor", "opening.lock_label": "Lock", "opening.none": "— none —", "opening.invert": "Invert open/closed", "opening.flip_h": "Hinge on the other jamb", "opening.flip_v": "Opens to the other side", "opening.open": "Open", "opening.closed": "Closed", "opening.locked": "Locked", "opening.unlocked": "Unlocked", "opening.state_unknown": "unavailable", "opening.no_entities": "No sensors bound — a static symbol on the plan.", "toast.opening_no_wall": "Click next to a room wall — openings sit on walls", "markup.delete": "Delete", "markup.hint_points": "points: {n} · Esc/Ctrl+Z — undo a dot · close the outline by clicking the first one", "markup.hint_start": "click a grid dot to start the outline", "tip.room": "room — open the area", "tip.lqi": "average zigbee signal:", "info.device_header": "Device on the plan", "info.model": "Model", "info.state": "State", "info.link": "Link", "info.manuals": "Manuals", "info.none": "No additional information", "marker.new_device": "New device", "marker.name_label": "Name (shown on the plan)", "marker.name_ph": "Name", "marker.binding_label": "Bind to an HA device", "marker.virtual_option": "Virtual device (no binding)", "marker.search_ph": "Search device / group…", "marker.nothing_found": "nothing found", "marker.room_label": "Room", "marker.room_override": " (override placement)", "marker.room_choose": "— select a room —", "marker.room_auto": "— by device area (auto) —", "marker.icon_label": "Icon", "marker.icon_ph": "mdi:… (empty = auto)", "marker.display_label": "Display", "display.badge": "Icon badge", "display.ripple": "Ripple only", "display.icon_ripple": "Icon + ripple", "marker.ripple_size": "Ripple size", "marker.size_label": "Icon size / rotation", "marker.angle_label": "Rotate", "marker.model_label": "Model", "marker.model_ph": "e.g. Aqara T&H", "marker.link_label": "Link", "marker.desc_label": "Description", "marker.desc_ph": "Notes, specs…", "marker.manuals_label": "Manuals (PDF etc.)", "marker.sub_device": "device", "marker.sub_z2m_group": " · Z2M group", "marker.sub_group": "group", "marker.sub_helper": "helper", "space.new": "New space", "space.header": "Space", "space.title_label": "Title", "space.title_ph": "e.g. Garage", "space.plan_label": "Floor plan (background)", "space.no_plan": "no plan image", "space.plan_alt": "plan", "room.new": "New room", "room.name_label": "Display name", "room.name_ph": "e.g. Terrace", "room.area_label": "Home Assistant area (unassigned)", "room.no_area_option": "— no area —", "room.default_name": "Room", "device.unnamed": "unnamed", "device.light_group": "light group", "device.fallback": "device", "device.virtual": "virtual device", "confirm.reset_layout": "Reset all icon positions to the auto layout?", "confirm.delete_room": "Delete room \"{name}\"?", "confirm.remove_marker": "Remove \"{name}\" from the plan?", "confirm.delete_space": "Delete space \"{title}\" with all its rooms and markup?", "toast.pos_save_failed": "Failed to save position: {err}", "toast.no_entity": "The device has no suitable entity", "toast.markup_needs_server": "Markup is available after the config is moved to the server", "toast.conflict": "Config was changed in another window — data refreshed, repeat your last action", "toast.cfg_save_failed": "Failed to save config: {err}", "toast.point_in_room": "That point is inside room “{name}” — rooms must not overlap", "toast.room_overlap": "The outline overlaps room “{name}” — rooms must not overlap", "toast.merge_not_adjacent": "Only rooms that share a wall can be merged", "toast.rooms_merged": "Rooms merged into “{name}”", "toast.split_pick_wall": "Start the cut on the room’s wall", "toast.split_bad_cut": "The cut must run wall to wall inside the room, without crossing walls or itself", "merge.header": "Merge rooms", "merge.hint": "The merged room keeps one name and one area. The other area is released — its devices leave the plan until another room claims it.", "merge.keep": "Keep", "merge.no_area": "no area", "room.split_header": "New room from the split", "toast.room_saved": "Room saved ({n}). Devices added: {added}. Outline the next one or exit markup.", "toast.room_saved_no_area": "Room saved ({n}, no area). Outline the next one or exit markup.", "toast.marker_needs_server": "Device editing is available after the config is moved to the server", "toast.virtual_name_required": "Enter a name for the virtual device", "toast.marker_saved": "Device saved", "toast.marker_removed": "Device removed from the plan", "toast.integration_missing": "The House Plan integration is not installed — management unavailable", "toast.plan_formats": "Supported formats: SVG, PNG, JPG, WebP", "toast.plan_required": "Upload a floor plan — it is required", "toast.space_added_onboard": "Space added. Outline the rooms: click grid dots and close the contour.", "toast.space_added": "Space added", "toast.space_saved": "Space saved", "toast.space_deleted": "Space deleted", "toast.delete_failed": "Delete failed: {err}", "toast.error": "Error: {err}", "toast.file_failed": "File \"{name}\" was not uploaded: {err}", "toast.files_attached": "Files attached: {n}", "err.unknown": "unknown error", "err.code": "code {code}", "err.too_large": "file larger than {mb} MB", "err.bad_ext": "unsupported type (PDF/image expected)", "err.unauthorized": "administrator rights required", "editor.title": "Title", "editor.default_floor": "Default space", "editor.icon_size": "Icon size, % of plan width", "editor.show_temperature": "Show temperature", "editor.live_states": "Live states (on/off, open…)", "editor.show_signal": "Show zigbee signal (LQI)", "editor.language": "Interface language", "editor.lang_auto": "Auto (HA profile)", "editor.lang_en": "English", "editor.lang_ru": "Русский", "title.icon_rules": "Icon rules: which MDI icon devices get by name", "rules.title": "Icon rules", "rules.hint": "Rules are checked top-down against “device name + model” (case-insensitive regex); the first match wins. When nothing matches, the entity device class decides, then the generic chip icon.", "rules.pattern_ph": "regex, e.g. plug|socket", "rules.icon_ph": "mdi:power-socket-de", "rules.add": "Add rule", "rules.reset": "Reset to defaults", "rules.test_ph": "Try a device name…", "rules.invalid": "invalid regex", "rules.saved": "Icon rules saved", "btn.up": "Up", "btn.down": "Down", "editor.tap_action": "Tap on a device", "tap.info": "Info card", "tap.more_info": "HA more-info dialog", "tap.toggle": "Toggle (lights/switches)", "tap.auto": "As the card default", "marker.tap_label": "Tap action for this device", "tap.toggle_note": "Toggle never applies to locks and alarms; hold the icon to open the info card.", "import.title": "Create spaces from HA floors", "import.hint": "Your Home Assistant already knows these floors. Pick the ones to turn into plan spaces — you will upload a floor-plan image for each one next. Rooms are then outlined by hand on the plan.", "import.start": "Create {n} space(s)", "import.manual": "Start from scratch", "import.progress": "Floor {i} of {n}", "import.done": "Spaces created. Outline the rooms: click grid dots and close the contour.", "btn.skip": "Skip", "space.scale_label": "Scale (grid cell size)", "space.scale_unit": "cm per cell", "space.display_section": "Display", "space.show_borders": "Always show room borders", "space.show_names": "Show room names (drag to move)", "space.room_color": "Border & name color", "space.opacity": "Opacity", "space.fill_label": "Room fill", "fill.none": "None", "fill.lqi": "Zigbee signal", "fill.light": "Lights", "space.source_file": "I have a floor-plan image", "space.source_draw": "No image — I'll outline rooms by hand", "space.orientation": "Canvas", "orient.landscape": "Landscape", "orient.portrait": "Portrait", "orient.square": "Square", "fill.temp": "Temperature", "space.temp_min": "Comfort from", "space.temp_max": "to", "tip.temp_avg": "average temperature:", "space_card.button": "Open the space plan", "space_card.not_found": "Space “{id}” not found", "space_card.loading": "Loading…", "editor.space": "Space", "editor.show_button": "Show button", "editor.button_label": "Button label", "editor.button_target": "Target dashboard path", "editor.aspect_ratio": "Aspect ratio (e.g. 16:9 or auto)", "marker.sub_entity": "entity", "title.general_settings": "General settings", "gs.title": "General settings", "gs.hint": "Fill colors apply to every space; each color has its own opacity. Which fill mode a space uses is set in that space's dialog.", "gs.light_group": "Fill: lights", "gs.light_on": "Lights on", "gs.light_off": "All lights off", "gs.temp_group": "Fill: temperature", "gs.temp_cold": "Cold", "gs.temp_ok": "Comfortable", "gs.temp_hot": "Hot", "gs.lqi_group": "Fill: zigbee signal", "gs.lqi_low": "Weak signal", "gs.lqi_high": "Strong signal", "gs.reset": "Reset to defaults", "gs.saved": "General settings saved", "space.show_lqi": "Show zigbee signal (LQI) next to devices", "gs.light_none": "No light sources", "mode.plan": "Plan editor", "mode.devices": "Device editor", "display.value": "Value instead of an icon", "marker.subarea": "no area, manual", "device.new": "New device — open its editor to dismiss", "opening.unlock_action": "Unlock", "opening.lock_action": "Lock", "opening.lock_pending": "Working…", "title.close_editor": "Close editor (back to view)", "devbar.add": "Add", "devbar.show_all": "Show all", "devbar.reset": "Reset", "devbar.rules": "Icon rules", "space.roomcard_section": "Room card shows:", "space.label_temp": "Temperature", "space.label_hum": "Humidity", "space.label_lqi": "Average Zigbee signal", "space.label_light": "Lights on/off", "roomcard.light_on": "On", "roomcard.light_off": "Off", "roomcard.light_partial": "{on} of {total}", "toast.split_pick_inside": "Intermediate cut points must be inside the room", "mode.decor": "Background editor", "decor.select": "Select", "decor.line": "Line", "decor.rect": "Rectangle", "decor.ellipse": "Oval", "decor.text": "Text", "decor.erase": "Erase", "decor.color": "Color", "decor.width": "Line width", "decor.w_thin": "Thin", "decor.w_mid": "Medium", "decor.w_thick": "Thick", "decor.fill": "Fill", "decor.text_title": "Text label", "decor.text_label": "Text", "decor.text_size": "Size", "decor.size_s": "Small", "decor.size_m": "Medium", "decor.size_l": "Large" }