Files
houseplan-card/src/i18n/en.json
T

724 lines
40 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"editor.context_actions": "Actions: {object}",
"editor.tool_options": "Tool options: {tool}",
"editor.palette": "Palette: {tool}",
"editor.open_group": "Tool group: {group}",
"editor.group_active": "{group} — active: {item}",
"editor.disabled_action": "{action} is unavailable: {reason}",
"btn.properties": "Properties",
"btn.keep_as_walls": "Keep as closed walls",
"title.markup_partition": "Partition: draw one independent physical wall",
"title.markup_select": "Select and edit walls, columns and saved outlines",
"title.markup_column": "Column: click a grid point to place a square column",
"markup.partition": "Partition",
"markup.column": "Column",
"markup.hint_partition": "two clicks draw one partition · Shift locks to 45°",
"markup.hint_column": "click a grid point to place a square column",
"history.draft_segment": "Add room-draft segment",
"history.draft_merge": "Join unfinished room outlines",
"history.draft_segment_delete": "Remove room-draft segment",
"history.partition_add": "Add partition",
"history.column_add": "Add column",
"history.physical_edit": "Change physical object",
"history.physical_delete": "Delete physical object",
"history.physical_move": "Move physical object",
"history.contour_to_partitions": "Convert contour to closed walls",
"toast.column_duplicate": "A column with the same centre and outer size already exists",
"confirm.delete_draft": "Delete the whole unfinished room contour?",
"confirm.delete_draft_segment": "Delete this draft segment? The remaining contour may split in two.",
"physical.partition_properties": "Partition properties",
"physical.column_properties": "Column properties",
"physical.draft_properties": "Draft segment properties",
"physical.shape": "Shape",
"physical.square": "Square",
"physical.circle": "Circle",
"physical.diameter": "Diameter",
"physical.side": "Side",
"physical.rotation": "Rotation angle",
"physical.length": "Length",
"physical.allowed_range": "Allowed: 1–{max} {unit}",
"physical.delete_segment": "Delete segment",
"physical.delete_draft": "Delete entire outline",
"physical.partition_size_title": "Thickness of the partition created by the second click (1–100 cm).",
"physical.column_size_title": "Outer side of the square column placed by the click (1–150 cm).",
"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.edit": "Edit",
"btn.open_in_ha": "Open in HA",
"btn.reset": "Reset",
"btn.attach": "Attach…",
"btn.upload": "Upload…",
"btn.replace": "Replace…",
"title.zoom_in": "Zoom in",
"title.zoom_out": "Zoom out",
"title.zoom_fit": "Fit all",
"title.add_device": "Add a device to the plan",
"title.show_all": "Show hidden and disabled devices as service markers (this tab only)",
"title.markup": "Room markup: grid, lines, outlines",
"title.configure_space": "Configure space",
"title.add_space": "Add space",
"title.markup_add": "Room outline: connect grid dots until the room closes; Shift locks the direction in 45° steps",
"title.markup_merge": "Merge: 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 room: click inside a room and confirm",
"title.markup_boundary": "Boundary: click two points on a solid shared wall to make that stretch virtual; click a dashed stretch to restore it",
"title.need_plan": "Upload a floor-plan image",
"markup.add": "Room outline",
"markup.merge": "Merge",
"markup.split": "Split",
"markup.resize": "Resize",
"title.markup_resize": "Resize rooms: drag a wall handle; click a room for a corner scale frame",
"markup.hint_resize": "drag a wall handle · click a room — corner frame · Esc cancels a drag · Ctrl+Z — undo a step",
"markup.opening": "Opening",
"markup.boundary": "Boundary",
"markup.delete_room": "Delete room",
"history.undo": "Undo",
"history.redo": "Redo",
"history.undo_named": "Undo: {name} (Ctrl+Z)",
"history.redo_named": "Redo: {name} (Ctrl+Shift+Z / Ctrl+Y)",
"history.undo_empty": "Nothing to undo",
"history.redo_empty": "Nothing to redo",
"history.undone": "Undone: {name}",
"history.redone": "Redone: {name}",
"history.add_room": "Create room",
"history.split_room": "Split room",
"history.merge_rooms": "Merge rooms",
"history.resize_room": "Resize room",
"history.open_boundary": "Open boundary",
"history.close_boundary": "Restore wall",
"history.wall_thickness": "Change wall thickness",
"history.add_opening": "Add door or window opening",
"history.edit_opening": "Edit opening",
"history.move_opening": "Move opening",
"history.delete_opening": "Delete opening",
"history.delete_room": "Delete room",
"history.decor_add": "Add decor object",
"history.decor_edit": "Edit decor object",
"history.decor_move": "Move decor object",
"history.decor_transform": "Transform decor object",
"history.decor_delete": "Delete decor object",
"history.backdrop_transform": "Transform plan backdrop",
"title.markup_opening": "Openings: click a wall to place, click an opening to edit",
"opening.new": "New opening",
"opening.edit": "Opening",
"opening.door": "Door",
"opening.window": "Window",
"opening.gate": "Gate",
"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} · Shift — 45° steps · Esc/Ctrl+Z — undo a dot · first point or Ctrl/Cmd+click — close",
"markup.hint_start": "click a grid dot to start the outline",
"tip.lqi": "average zigbee signal:",
"tip.area": "area: {value}",
"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.binding_disabled": "disabled in Home Assistant",
"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 + dynamic plate",
"display.icon_ripple": "Icon + activity",
"display.static_icon": "Always static icon",
"marker.display_hint": "The dynamic plate shows work, open, alarm and unavailable states. Icon + activity also shows events and motion. Value instead of an icon shows one unambiguous HA state. A static icon does not react to device states.",
"marker.static_alarm_warning": "This device can report alarms. Static display hides the marker's visual alarm indication.",
"marker.preview.title": "Display preview",
"marker.preview.actual": "Now",
"marker.preview.example": "Example",
"marker.preview.integration": "Provided by",
"marker.preview.source": "Display source",
"marker.preview.current_state": "Current state",
"marker.preview.result": "On the plan",
"marker.preview.details": "Source details",
"marker.preview.select_source": "Choose a Home Assistant device or entity to see its actual display.",
"marker.preview.unknown_provider": "Unknown integration",
"marker.preview.virtual_provider": "House Plan · virtual device",
"marker.preview.no_source": "No active source",
"marker.preview.no_state": "No current state",
"marker.preview.mixed_states": "Several different states",
"marker.preview.multiple_sources": "{n} sources",
"marker.preview.more_sources": "+{n} more",
"marker.preview.scaled": "The preview is scaled to {n}% to fit. The saved size is unchanged.",
"marker.preview.demo_activity": "Show activity example",
"marker.preview.demo_notice": "Temporary activity example; the actual device state is unchanged.",
"marker.preview.demo_already_visible": "The current state already shows a real activity or alarm effect.",
"marker.preview.reduced_motion": "System reduced-motion is enabled, so the effect is shown as a static ring.",
"marker.preview.reason.neutral": "Neutral dark plate",
"marker.preview.reason.working": "Yellow plate: the device is working now",
"marker.preview.reason.working_activity": "Yellow plate and activity effect: the device is working now",
"marker.preview.reason.open": "Orange plate: physically open or unlocked",
"marker.preview.reason.cover_icon_state": "Neutral plate; the cover entity controls the displayed state and icon",
"marker.preview.reason.presence": "Activity effect while presence is detected",
"marker.preview.reason.event": "Short activity effect after a detected event",
"marker.preview.reason.transition": "Activity effect while the device is moving or changing state",
"marker.preview.reason.media_neutral": "Media devices stay on a neutral dark plate while available",
"marker.preview.reason.unavailable": "Subdued neutral plate: unavailable or off",
"marker.preview.reason.alarm": "Red alarm plate; alarm indication is always shown",
"marker.preview.reason.live_states_disabled": "Live-state styling is disabled for this card",
"marker.preview.reason.value_no_state": "No usable state value; the icon is shown instead",
"marker.preview.reason.value_ambiguous_sources": "Several possible value sources; the icon is shown instead",
"marker.preview.reason.value_non_scalar": "The source did not return a simple value; the icon is shown instead",
"marker.preview.reason.value_virtual": "A virtual device has no Home Assistant value; the icon is shown instead",
"marker.preview.reason.vacuum_live_plan_only": "Live vacuum position and trail are available only on the full plan",
"marker.preview.reason.hidden_design_preview": "The device is hidden on the plan; this design preview remains visible",
"marker.preview.reason.composite_power_source": "State comes from the device Power entity; auxiliary switches are ignored",
"marker.preview.reason.activity_display_disabled": "The selected display mode does not show ordinary activity effects",
"marker.preview.reason.ha_disabled": "The Home Assistant binding is disabled and will be hidden on the plan",
"marker.preview.reason.orphaned": "The saved Home Assistant binding can no longer be found",
"marker.preview.reason.static_icon": "Static mode: device state does not change the icon",
"marker.activity_color": "Effect color",
"marker.ripple_size": "Effect 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.delete_room": "Delete room \"{name}\"?",
"confirm.merge_rooms": "Merge rooms \"{a}\" and \"{b}\"?",
"confirm.remove_marker": "Delete \"{name}\" from the plan? The device will disappear completely and stop contributing to plan data. You can add it again later.",
"confirm.erase_decor": "Erase the {kind} object? You can undo this action from the editor history.",
"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.ha_disabled_action": "A Home Assistant object that is disabled cannot be used on the plan.",
"toast.ha_disabled_show_device": "A device disabled in Home Assistant cannot be shown on the plan. Enable it in Home Assistant first.",
"toast.ha_disabled_show_entity": "An entity disabled in Home Assistant cannot be shown on the plan. Enable it in Home Assistant first.",
"toast.ha_disabled_add": "A disabled Home Assistant object cannot be added to the plan. Enable it in Home Assistant first.",
"toast.ha_binding_unverified": "The object status could not be verified through the Home Assistant registry. Display and actions are temporarily unavailable.",
"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.room_overlap": "The outline overlaps room “{name}” — rooms must not overlap",
"toast.contour_min_edges": "Draw at least two edges before closing the outline",
"toast.contour_cannot_close": "The outline cannot close because it is degenerate or intersects itself",
"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 deleted 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",
"tap.info": "Device card",
"tap.more_info": "HA more-info dialog",
"tap.toggle": "Toggle (lights/switches)",
"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",
"fill.custom": "Custom color",
"space.custom_fill": "Fill color",
"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…",
"continuity.restore_plan": "Restoring floor plan…",
"continuity.restore_connection": "Restoring device connection…",
"continuity.retry": "Try again",
"editor.space": "Space",
"editor.show_button": "Show button",
"editor.button_label": "Button label",
"editor.button_target": "Target dashboard path",
"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",
"space.hide_decor": "Hide the decorative layer",
"space.hide_decor_tip": "Lines, shapes, labels and furniture stay where they are — visible in the backdrop editor, not on the plan.",
"space.hide_openings": "Hide openings",
"space.hide_openings_tip": "Door, window and gate symbols are not drawn, but the openings keep working: light passes through, the sun comes in at a window, contact sensors still open them. The plan editor always shows them.",
"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": "Hidden and disabled",
"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.erase_confirm_title": "Erase object?",
"decor.color": "Color",
"decor.width": "Line width",
"decor.line_style": "Line style",
"decor.line_style_solid": "Solid",
"decor.line_style_dashed": "Dashed",
"decor.fill": "Fill",
"decor.fill_color": "Fill color",
"decor.length": "Length",
"decor.size": "Size",
"decor.angle": "Rotation angle, °",
"decor.text_size": "Text size",
"decor.backdrop_properties": "Plan backdrop properties",
"decor.text_title": "Text label",
"decor.object_title": "Edit {kind}",
"decor.text_label": "Text",
"decor.live_group": "Insert HA variable",
"decor.live_entity": "Entity",
"decor.live_entity_ph": "choose an entity",
"decor.live_attr": "Value",
"decor.live_attr_ph": "choose state or attribute",
"decor.live_state": "State",
"decor.backdrop": "Backdrop image",
"decor.backdrop_hint": "Drag to move; pull a corner to resize; use the top handle to rotate. Shift changes proportions or frees the angle.",
"decor.backdrop_reset": "Reset the picture",
"decor.backdrop_reset_done": "The picture is back at its original place and size",
"marker.icon_auto": "Auto: {icon} (by icon rules; pick one to override)",
"marker.icon_pin_auto": "Pin",
"mode.plan_tip": "Plan editor — the geometry of the home: draw and split/merge rooms, bind them to HA areas, place doors, windows and gates, move room cards, set the scale",
"mode.devices_tip": "Device editor — everything about icons: drag to position, click to edit binding/icon/display, add virtual devices, icon rules",
"mode.decor_tip": "Background editor — purely visual decor under the plan: lines, rectangles, ovals and text labels that never react to clicks",
"space.glow_enabled": "Light-source glow",
"gs.glow_group": "Light-source glow",
"gs.glow_base": "House darkness",
"gs.glow_light": "Default light color / intensity",
"gs.wall_group": "Walls",
"gs.wall_fill": "Wall fill",
"gs.glow_radius": "Glow radius",
"gs.unit_m": "m",
"gs.unit_ft": "ft",
"marker.controls_label": "Controls other light sources",
"marker.controls_hint": "With tap action “Toggle”, a click flips every source added here. The marker’s own bound entity is controlled directly and cannot be added; use the switch below to classify it as a light.",
"marker.controls_filter": "Search lights and switches…",
"info.controls": "Controls",
"marker.glow_radius_label": "Glow radius",
"marker.glow_radius_hint": "empty = default from general settings",
"markup.wallthick": "Thickness",
"markup.select": "Select",
"title.markup_wallthick": "Thickness — click a wall to set how thick it is. Empty or zero removes the thickness.",
"markup.hint_wallthick": "click a wall · Esc closes without applying",
"wallthick.field": "Thickness",
"wallthick.unit_cm": "cm",
"wallthick.unit_in": "in",
"wallthick.apply_room": "Apply to all walls of this room",
"markup.draw_wall_title": "Thickness of each new room-wall segment (1–100 cm). Shared walls keep the neighbour's value.",
"toast.wallthick_pick": "Click a wall (not an open boundary)",
"toast.wallthick_open": "Open boundaries have no thickness",
"toast.wallthick_set": "Wall thickness set",
"toast.wallthick_cleared": "Wall thickness removed",
"toast.physical_range": "Enter a value from 1 to {max} {unit}",
"toast.physical_angle": "Enter a rotation angle from 0° up to, but not including, 90°",
"toast.physical_limit": "The space has reached the limit for this type of geometry",
"markup.boundary_hint": "Select a shared room boundary or a dashed stretch",
"markup.boundary_hint_open": "Click the start of the open stretch",
"markup.boundary_hint_second": "Choose the end on the selected boundary · Esc to cancel",
"markup.boundary_hint_retry": "Choose the end on the selected boundary",
"markup.boundary_hint_restore": "Click to restore the wall",
"markup.boundary_hint_outer": "Only a boundary shared by two rooms can be opened",
"markup.boundary_hint_blocked": "a partition, column or unfinished contour is above this boundary",
"markup.boundary_hint_ambiguous": "Choose a stretch farther from the junction",
"markup.boundary_cancel": "Cancel the unfinished Boundary action",
"toast.openwall_pick": "This tool works with room boundaries",
"toast.openwall_shared_only": "Only a shared wall between two rooms can be opened",
"toast.openwall_short": "Stretch too short — pick a farther point",
"toast.boundary_opened": "Boundary stretch opened",
"toast.boundary_restored": "Wall restored on this stretch",
"toast.boundary_same_edge": "Choose the end point on the selected wall",
"toast.boundary_ambiguous": "Choose a stretch slightly farther from the junction",
"toast.boundary_blocked": "This boundary is covered by independent masonry. Move or delete it with Select first",
"toast.delete_room_pick": "Click inside the room you want to delete",
"toast.openwall_openings_removed": "Openings on the virtual stretch were removed",
"toast.openwall_opened": "Boundary “{a}” ↔ “{b}” is now open",
"toast.openwall_closed": "Boundary “{a}” ↔ “{b}” is closed again",
"toast.opening_on_virtual": "Openings cannot sit on a virtual wall",
"marker.from_ha_option": "Pick from the HA list",
"marker.show_entities": "Show entities",
"marker.show_entities_tip": "Adds not only devices to the list, but all their entities too",
"marker.pick_ph": "Choose a device…",
"room.open_area": "Open the HA area",
"kiosk.title": "This screen's sizes",
"kiosk.hint": "Stored on this device only — every wall tablet or TV can have its own comfortable sizes.",
"kiosk.icon_scale": "Device icon size",
"kiosk.font_scale": "Room card text size",
"editor.kiosk": "Wall device (kiosk) mode",
"editor.cycle": "Auto-switch spaces every N seconds (kiosk, 0 = off)",
"room.settings_title": "Room settings",
"room.settings_section": "Room settings (override the space)",
"room.fill_label": "Fill in THIS room",
"fill.inherit": "As the space",
"room.custom_fill_space": "Space color",
"room.custom_fill_own": "Room color",
"room.temp_src_label": "Temperature source",
"room.hum_src_label": "Humidity source",
"room.src_average": "Average over the room's sensors (default)",
"room.src_pick": "A specific HA device or entity",
"room.src_ph": "Choose a source…",
"toast.room_updated": "Room updated",
"space.card_font": "Room-card font size (whole space)",
"room.sizes_section": "Font sizes",
"room.name_scale": "Room name size",
"room.label_scale": "Metrics size",
"preview.room_name": "Living room",
"toast.cfg_reload_failed": "Could not reload the plan from the server: {err}",
"room.settings_short": "Room settings",
"room.unnamed": "Unnamed room",
"marker.use_climate_temp": "Use the device's temperature sensor",
"marker.use_climate_temp_tip": "Air conditioners and thermostats know the room temperature (current_temperature). Shows it as a badge next to the icon and counts it in the room average — like a regular thermometer.",
"marker.light_role_label": "Is this device a light source?",
"marker.light_role_tip": "Controls whether this marker itself is a spatial light source. Linked lights above remain independent room-light controls.",
"marker.light_role_auto_yes": "Auto (light source)",
"marker.light_role_auto_no": "Auto (not a light source)",
"marker.light_role_always": "Always a light source",
"marker.light_role_never": "Never a light source",
"marker.glow_color_label": "Glow colour and brightness",
"marker.glow_color_tip": "Use live source values, override only its colour, or fix both colour and brightness.",
"marker.glow_mode_auto": "From source",
"marker.glow_mode_color": "Set colour",
"marker.glow_mode_fixed": "Set colour and brightness",
"marker.glow_color": "Glow colour",
"marker.glow_brightness": "Brightness",
"marker.glow_brightness_hint": "Minimum 1%. To disable this marker as a light source, choose “Never” above.",
"marker.glow_disabled_never": "Glow settings are unavailable because this marker is explicitly not a light source.",
"marker.glow_disabled_auto": "Auto mode found no spatial light source for this marker.",
"marker.glow_disabled_no_entity": "No active controllable Home Assistant entity is available for this spatial source.",
"confirm.unlock": "Unlock “{name}”?",
"toast.files_migrate_failed": "Attachments could not be moved to the new binding, links keep pointing at the old files: {err}",
"space.pick_saved": "Already uploaded",
"space.pick_saved_hint": "Plans stored on the server, including ones you detached earlier",
"space.no_saved": "No plans stored on the server yet.",
"space.loading": "Loading…",
"space.used_by": "in use: {list}",
"space.in_use": "A space still uses this plan — detach it first",
"btn.use": "Use",
"confirm.delete_plan": "Delete the plan file \"{name}\" from the server? This cannot be undone.",
"toast.plans_list_failed": "Could not list the stored plans: {err}",
"toast.plan_delete_failed": "Could not delete the plan: {err}",
"marker.hide": "Hide",
"marker.hide_tip": "The device will disappear from the plan after saving but will still count toward the room signal. Restore it through \"Hidden and disabled\" in the device editor.",
"marker.show": "Show",
"marker.show_tip": "The device will appear on the plan again after saving.",
"marker.hidden_ghost": "Device hidden by the user",
"marker.ha_disabled_device": "The device is disabled in Home Assistant and hidden from the plan.",
"marker.ha_disabled_entity": "The entity is disabled in Home Assistant and hidden from the plan.",
"marker.ha_disabled_all_entities": "The device has no active Home Assistant entities, so it is hidden from the plan.",
"marker.ha_registry_limited": "The full Home Assistant registry is unavailable to this user. The unverified object cannot be shown or used for now.",
"marker.delete_tip": "Completely delete the device from the plan and every aggregate. You can add it again later.",
"tap.run": "Run automation/script/scene",
"tap.cover": "Open/close (curtains/blinds)",
"marker.run_target_label": "What to run",
"marker.run_search_ph": "Search: automation, script or scene…",
"marker.run_target_gone": "Target {id} not found — pick again",
"marker.tap_confirm": "Ask for confirmation",
"marker.tap_confirm_tip": "Show a confirmation dialog before acting — a guard against accidental taps.",
"run.automation": "automation",
"run.script": "script",
"run.scene": "scene",
"confirm.tap_run": "Run \"{name}\"?",
"confirm.tap_toggle": "Toggle \"{name}\"?",
"confirm.tap_cover": "Open/close \"{name}\"?",
"toast.run_started": "Started: {name}",
"toast.run_target_missing": "Run target not found — check the device settings",
"toast.run_target_required": "Pick an automation, script or scene",
"btn.run": "Run",
"vac.section": "Robot vacuum: live position",
"vac.autocal": "Set up automatically",
"vac.live": "Live position on the plan",
"vac.trail": "Show the robot's path",
"vac.cal_maps": "Calibrated maps: {maps}",
"vac.autocal_no_rooms": "The integration reports no room list — open “Fit manually”",
"vac.autocal_no_match": "Room names did not match (need ≥3 in common) — open “Fit manually”",
"vac.autocal_done": "Done: bound via {rooms} rooms. Start a cleanup and check",
"vac.cal_need_pos": "The robot is not reporting coordinates — start a cleanup and pause it",
"vac.cal_done": "Calibration saved. Start a cleanup and check",
"vac.cal_cancelled": "Calibration cancelled",
"vac.fit": "Fit manually",
"vac.fit_hint": "Drag the robot map into place, stretch by the corners",
"vac.fit_rotate": "Rotate 90°",
"vac.fit_mirror": "Mirror",
"vac.trail_never": "Never",
"vac.trail_cleaning": "While cleaning",
"vac.trail_always": "Always",
"gs.bg_group": "Stage background",
"gs.bg_color": "Background around the plan",
"gs.bg_default": "Theme default",
"gs.bg_theme": "theme default",
"gs.bg_mode": "Plan background",
"gs.bg_static": "Static color",
"gs.bg_daynight": "Follows the sun (day/night)",
"gs.bg_daynight_hint": "The stage follows the sun: neutral day, warm golden hour, deep night. Needs the compass below.",
"gs.sun_group": "Sun",
"gs.sun_missing": "The sun.sun entity was not found — the sun features stay off.",
"gs.north": "North on the plan",
"gs.north_ph": "not set",
"gs.north_hint": "Point the arrow at north (1° steps, 15° with Shift) or type the degrees — until then the sun features stay off.",
"gs.north_clear": "Clear",
"gs.north_letter": "N",
"gs.sun_rays": "Sunlight through windows",
"gs.about_group": "About",
"gs.about_version": "Houseplan Card v{v}",
"gs.about_github": "GitHub · docs & issues",
"gs.about_telegram": "Telegram chat",
"space.bg_color": "Background around the plan",
"space.bg_inherit": "Inherit general",
"space.bg_inherited": "inherits general settings",
"space.bg_mode": "Plan background",
"space.north": "North on the plan (override)",
"space.north_inherited": "inherited: {v}",
"space.sun_rays": "Sunlight through windows",
"space.sun_inherit": "Inherit general",
"space.sun_on": "On",
"space.sun_off": "Off",
"canvas.far_objects": "{n} object(s) far from the plan",
"canvas.show_far": "Show",
"canvas.home_tip": "The plan is over there — click to fit it",
"gs.grid_group": "Plan maintenance",
"gs.grid_hint": "Updates data models, aligns plan elements to the grid and merges redundant wall fragments. An exact report is shown before anything is stored.",
"gs.align_all": "Optimize plans",
"gs.align_title": "Optimize plans",
"gs.align_none": "All plans already use the current optimized data model.",
"gs.align_count": "{n} of {total} elements will move, by at most {cm} cm.",
"gs.align_where": "The largest shift is in “{s}”.",
"gs.align_turned": "Openings whose angle is corrected: {n}.",
"gs.align_removed_drafts": "Invalid outlines collapsed by the grid and removed: {n}.",
"gs.optimize_changes": "Model migrations: {m}; plans canonicalized: {c}; merged real-wall fragments: {w}; virtual fragments: {s}.",
"gs.optimize_glow_migration": "Legacy Glow: {spaces} spaces → no data fill + independent Glow; {rooms} rooms → inherited data fill + independent Glow.",
"gs.align_warn": "Elements deliberately placed between grid nodes will move. One undo is available after the operation, only until the next plan edit.",
"gs.align_run": "Optimize",
"gs.align_done": "Plans optimized: {n} elements moved, {m} records maintained",
"gs.optimize_undo": "Undo last optimization",
"gs.optimize_undone": "The last optimization was undone",
"decor.furniture": "Furniture",
"furn.title": "Furniture library",
"furn.symbol": "Symbol",
"furn.group_furniture": "Furniture",
"furn.group_appliance": "Appliances",
"furn.group_sanitary": "Plumbing",
"furn.group_other": "Other",
"furn.width": "Width",
"furn.depth": "Depth",
"furn.pick_hint": "Pick a symbol, then click on the plan.",
"furn.place_hint": "Click on the plan — the piece lands against the nearest wall. Shift places it free.",
"furn.sym_sofa": "Sofa",
"furn.sym_armchair": "Armchair",
"furn.sym_coffee_table": "Coffee table",
"furn.sym_table_dining": "Dining table",
"furn.sym_table_round": "Round table",
"furn.sym_chair": "Chair",
"furn.sym_desk": "Desk",
"furn.sym_bed_double": "Double bed",
"furn.sym_bed_single": "Single bed",
"furn.sym_nightstand": "Nightstand",
"furn.sym_wardrobe": "Wardrobe",
"furn.sym_bookshelf": "Bookshelf",
"furn.sym_fridge": "Fridge",
"furn.sym_stove": "Cooker",
"furn.sym_dishwasher": "Dishwasher",
"furn.sym_washer": "Washing machine",
"furn.sym_dryer": "Tumble dryer",
"furn.sym_tv": "TV",
"furn.sym_ac": "Air conditioner",
"furn.sym_water_heater": "Water heater",
"furn.sym_toilet": "Toilet",
"furn.sym_bathtub": "Bathtub",
"furn.sym_shower": "Shower",
"furn.sym_sink": "Washbasin",
"furn.sym_kitchen_sink": "Kitchen sink",
"furn.sym_bidet": "Bidet",
"furn.sym_stairs": "Stairs",
"furn.sym_fireplace": "Fireplace",
"furn.sym_plant": "Plant",
"furn.sym_rug": "Rug",
"common.yes": "Yes",
"common.no": "No",
"vac.diag_source": "Source",
"vac.diag_platform": "Integration",
"vac.diag_status": "Status",
"vac.diag_position": "Position",
"vac.diag_rooms": "Rooms",
"vac.diag_rooms_value": "{total} · {matched} names match · {readiness}",
"vac.autocal_ready": "auto-calibration available",
"vac.autocal_not_ready": "need 3 matching names",
"vac.diag_path": "Integration path",
"vac.diag_map": "Map ID",
"vac.source_none": "not selected",
"vac.source_status_ok": "Ready",
"vac.source_status_missing": "Missing",
"vac.source_status_disabled": "Disabled in Home Assistant",
"vac.source_status_unavailable": "Unavailable",
"vac.source_status_unverified": "Cannot verify with current permissions",
"vac.source_status_unsupported": "No position data",
"vac.source_status_none": "No source",
"vac.source_banner_missing": "The saved source no longer exists. It was not replaced automatically; choose another source or restore it in Home Assistant.",
"vac.source_banner_disabled": "The saved source is disabled in Home Assistant. Enable it there or choose another source.",
"vac.source_banner_unverified": "Current Home Assistant permissions cannot verify this saved source. It remains pinned and will not be replaced automatically.",
"vac.choose_source": "Choose source",
"vac.source_auto": "Automatic",
"vac.source_auto_hint": "Use a compatible entity from this device",
"vac.all_cameras": "All cameras",
"vac.all_cameras_warn": "A camera may not provide robot data. Choose one only if it is your vacuum map.",
"vac.all_cameras_empty": "No other camera entities found.",
"vac.platform_unknown": "unknown integration",
"vac.cap_position": "position",
"vac.cap_rooms_short": "rooms",
"vac.cap_path": "path",
"vac.cap_map": "map ID",
"vac.cap_none": "no robot data detected",
"vac.xcme_hint": "Enable these Xiaomi Cloud Map Extractor attributes:",
"vac.documentation": "Documentation",
"vac.residual_title": "Check automatic calibration",
"vac.residual_message": "The matched rooms disagree by up to {error}. Apply this approximate calibration, refine it manually, or cancel without changing the saved setup.",
"vac.apply_proposal": "Apply"
}