// English dictionary — proves translatability. Same keys as de.ts; only the
// values differ. Identifiers/keys stay English (DOSSIER namespacing); values are
// the translated, user-visible text.

import type { TranslationKey } from "./de";

export const en: Record<TranslationKey, string> = {
  // Brand / Topbar.
  "brand.tag": "Document model",

  "topbar.viewGroup": "View",
  "topbar.grundriss": "Plan",
  "topbar.perspektive": "Perspective",

  "view3d.group": "3D view",
  "view3d.front": "Front",
  "view3d.front.hint": "Front view (frontal)",
  "view3d.top": "Top",
  "view3d.top.hint": "Top view (straight down)",
  "view3d.side": "Side",
  "view3d.side.hint": "Side view (90° to front)",
  "view3d.perspective": "Perspective",
  "view3d.perspective.hint": "Free perspective (3/4 view)",
  "view3d.iso": "Isometric",
  "view3d.iso.hint": "Isometric view (equiangular from front-top-right)",
  "view3d.camera": "Camera",
  "view3d.camera.hint": "Camera settings (field of view)",
  "view3d.fov": "Field of view",
  "view3d.fov.hint": "Field of view (FOV) of the perspective camera in degrees",

  "topbar.detailGroup": "Detail level",
  "topbar.detail": "Detail level",
  "topbar.detail.hint": "Detail level of the plan (symbols, hatches, lines)",
  "topbar.detail.hintDisabled": "Detail level applies in the plan (not yet in perspective)",
  "topbar.detail.grob": "coarse",
  "topbar.detail.mittel": "medium",
  "topbar.detail.fein": "fine",

  "topbar.scaleGroup": "Scale and zoom",
  "topbar.scale": "Scale",
  "topbar.scale.apply": "Apply paper scale 1:N",
  "topbar.scale.custom": "custom …",
  "topbar.scale.live": "Current paper scale (live)",
  "topbar.scale.prompt": "Enter scale (e.g. 1:35 or 35):",
  "topbar.zoom100": "100%",
  "topbar.zoom100.hint": "Zoom exactly to the chosen scale 1:{n}",
  "topbar.fit": "Fit",
  "topbar.fit.hint": "Fit to plan",
  "topbar.fitSelection": "Selection",
  "topbar.fitSelection.hint": "Fit to selection (otherwise to plan)",
  "topbar.exportPdf": "PDF",
  "topbar.exportPdf.hint": "Export the floor plan as a vector PDF",
  "topbar.exportDxf": "DXF",
  "topbar.exportDxf.hint": "Export the floor plan as DXF (model space in meters)",
  "topbar.zoom.current": "Current zoom",

  "topbar.renderGroup": "Render mode",
  "topbar.render.shaded": "Shaded",
  "topbar.render.shaded.hint": "Shaded",
  "topbar.render.wireframe": "Wire",
  "topbar.render.wireframe.hint": "Wireframe",
  "topbar.render.hidden": "Edges",
  "topbar.render.hidden.hint": "Hidden line",
  "topbar.render.hintDisabled": "Render mode applies in perspective",
  // Display style (context-dependent dropdown): plan = Color/Mono,
  // perspective = Shaded/White/Wireframe/Hidden.
  "display.style": "Display",
  "display.style.group": "Display style",
  "display.style.hint": "Display style of the active view",
  "display.style.color": "Color",
  "display.style.mono": "Black & white",
  "display.style.shaded": "Shaded",
  "display.style.white": "White",
  "display.style.textured": "Textured",
  "display.style.wireframe": "Wireframe",
  "display.style.hidden": "Hidden line",

  "topbar.referenceLinesGroup": "Reference lines",
  "topbar.referenceLines": "Reference lines",
  "topbar.referenceLines.hint": "Show/hide reference lines (wall axes)",
  "topbar.referenceLines.hintDisabled": "Reference lines apply in the plan",

  "topbar.resources": "Resources",
  "topbar.resources.hint": "Show/hide the resources window",

  // Layout menu.
  "layout.title": "Layout",
  "layout.placeholder": "Layout …",
  "layout.saveCurrent": "＋ Save current …",
  "layout.loadGroup": "Load",
  "layout.deleteGroup": "Delete",
  "layout.savePrompt": "Save layout as:",

  // Visibility combinations (topbar).
  "combo.layers": "Layer comb.",
  "combo.drawings": "Drawing comb.",
  "combo.placeholder": "Combination …",
  "combo.saveCurrent": "＋ Save current …",
  "combo.loadGroup": "Load",
  "combo.deleteGroup": "Delete",
  "combo.layers.title": "Layer combinations",
  "combo.drawings.title": "Drawing combinations",
  "combo.layers.savePrompt": "Save layer combination as:",
  "combo.drawings.savePrompt": "Save drawing combination as:",

  // Drawing tools (topbar toolbar + status hints).
  "tool.group": "Tools",
  "tool.select": "Select",
  "tool.wall": "Wall",
  "tool.ceiling": "Ceiling",
  "tool.window": "Window",
  "tool.door": "Door",
  "tool.stair": "Stair",
  "tool.line": "Line",
  "tool.polyline": "Polyline",
  "tool.rect": "Rectangle",
  "tool.select.hint": "Select — click/drag elements",
  "tool.window.hint": "Window: pick a wall, then set the position",
  "tool.door.hint": "Door: pick a wall, then set the position",
  "tool.stair.hint": "Stair: set start point, then run direction/end",
  "tool.room": "Room",
  "tool.room.hint": "Room: click inside an enclosed area (or draw an outline)",
  "tool.wall.firstPoint": "Wall: set first axis point",
  "tool.wall.nextPoint": "Wall: next point — double/right-click to finish",
  "tool.ceiling.firstPoint": "Ceiling: set first outline point",
  "tool.ceiling.nextPoint": "Ceiling: next point — click start to close, Enter finishes",
  "tool.line.firstPoint": "Line: set start point",
  "tool.line.secondPoint": "Line: set end point",
  "tool.polyline.firstPoint": "Polyline: set first point",
  "tool.polyline.nextPoint": "Polyline: next point — click start to close, double-click to finish",
  "tool.rect.firstCorner": "Rectangle: set first corner",
  "tool.rect.secondCorner": "Rectangle: set opposite corner",
  "tool.wallType": "Wall type",
  "tool.ceilingType": "Ceiling type",
  "tool.layer": "Layer",
  "tool.layer.hint": "Active layer — everything drawn goes onto this category",
  "tool.floorOnlyDisabled": "Walls can only be drawn on a floor",
  "tool.snap": "Snap",
  "tool.snap.hint": "Snap to endpoints/grid; Shift = ortho, Ctrl = snap off",
  "snap.enabled": "Snap on",
  "snap.endpoint": "Endpoint",
  "snap.midpoint": "Midpoint",
  "snap.intersection": "Intersection",
  "snap.onEdge": "On edge (perp.)",
  "snap.grid": "Grid",
  "snap.ortho": "Ortho (Shift)",
  "snap.gridSize": "Grid size (m)",
  "snap.angleStep": "Angle step",

  // Transform (move/mirror/rotate) + mode bar.
  "transform.bar": "Transform",
  "transform.cancel": "Cancel (Esc)",
  "transform.countPrompt": "Number of copies:",
  "transform.move": "Move (M)",
  "transform.mirror": "Mirror (S)",
  "transform.rotate": "Rotate (D)",
  "transform.mode.move": "Move",
  "transform.mode.copy": "Copy",
  "transform.mode.array": "N copies",
  "transform.mode.distribute": "Distribute",
  "transform.hint.move.0": "Click base point",
  "transform.hint.move.1": "Click destination point",
  "transform.hint.rotate.0": "Click rotation centre",
  "transform.hint.rotate.1": "Click reference point (start angle)",
  "transform.hint.rotate.2": "Click target angle",
  "transform.hint.mirror.0": "First point of mirror axis",
  "transform.hint.mirror.1": "Second point of mirror axis",

  // Line display (Display/Print).
  "topbar.lineModeGroup": "Line display",
  "topbar.lineMode.display": "Display",
  "topbar.lineMode.print": "Print",
  "topbar.lineMode.display.hint": "Display: all lines as constant hairlines (calm editing)",
  "topbar.lineMode.print.hint": "Print: real mm line weights (paper/print look)",

  // Status bar.
  "status.selection": "Selection",
  "status.selectionN": "Selection: {n} {noun}",
  "status.wall": "wall",
  "status.walls": "walls",
  "status.xy": "X/Y",
  "status.unit": "Unit",
  "status.scale": "Scale",
  "status.zoom": "Zoom",
  "status.floor": "Floor",
  "status.layer": "Layer",
  "status.none": "—",
  "status.renderer": "Renderer",
  "status.rendererWebgl": "WebGL2",
  "status.rendererWasm": "Engine",
  "status.rendererWasmUnavailable": "WebGPU unavailable",

  // Navigator panels.
  "nav.drawingLevels": "Drawing levels",
  "nav.layers": "Layers",
  "nav.tools": "Tools",
  "nav.attributes": "Attributes",
  "nav.objectInfo": "Object Info",

  // Attribute-Palette (AttributesPanel)
  "attr.title": "Attributes",
  "attr.empty": "No selection",
  "attr.stroke": "Pen",
  "attr.color": "Color",
  "attr.weight": "Line weight (mm)",
  "attr.lineStyle": "Line style",
  "attr.fill": "Fill",
  "attr.fillColor": "Fill color",
  "attr.clearFill": "Remove fill color",
  "attr.hatch": "Hatch",
  "attr.none": "none",
  "attr.inheritedFromLayer": "Walls inherit line weight from the layer",
  "attr.fillNeedsClosed": "Fill only for closed shapes",
  "attr.size": "Size",
  "attr.width": "Width",
  "attr.height": "Height",

  // Objekt-Info-Palette (ObjectInfoPanel)
  "objinfo.title": "Object Info",
  "objinfo.empty": "No object selected",
  "objinfo.refpoint": "Reference point",
  "objinfo.setRefpoint": "Set reference point",
  "objinfo.x": "X",
  "objinfo.y": "Y",
  "objinfo.z": "Z",
  "objinfo.zHint": "2D layer – elements have no height",
  "objinfo.dimensions": "Dimensions",
  "objinfo.width": "Width",
  "objinfo.height": "Height",
  "objinfo.type": "Type",
  "objinfo.kind.wall": "Wall",
  "objinfo.kind.ceiling": "Ceiling",
  "objinfo.kind.drawing2d": "2D object",
  "objinfo.kind.door": "Door",
  "objinfo.kind.opening": "Opening",
  "objinfo.kind.stair": "Stair",
  "objinfo.kind.room": "Room",
  // ── Wall attributes (object info panel) ──────────────────────────────────
  "objinfo.wall.section": "Wall",
  "objinfo.wall.refLine": "Reference line",
  "objinfo.wall.refLine.left": "Exterior (left)",
  "objinfo.wall.refLine.center": "Center",
  "objinfo.wall.refLine.right": "Interior (right)",
  "objinfo.wall.buildup": "Build-up",
  "objinfo.wall.single": "Single layer",
  "objinfo.wall.multi": "Multi layer",
  "objinfo.wall.thickness": "Thickness",
  "objinfo.wall.preset": "Wall style",
  "objinfo.wall.presetLabel": "{name} · {thickness} m",
  "objinfo.wall.refFloor": "Reference floor",
  "objinfo.wall.linkAbove": "Bind to floor above",
  "objinfo.wall.bottom": "Bottom (UK)",
  "objinfo.wall.top": "Top (OK)",
  "objinfo.wall.anchorFloor": "Bound to floor",
  "objinfo.wall.anchorCustom": "Custom height",
  "objinfo.wall.height": "Height",
  "objinfo.wall.floorAboveNone": "No floor above",
  // ── Ceiling attributes (object info panel) ───────────────────────────────
  "objinfo.ceiling.section": "Ceiling",
  "objinfo.ceiling.buildup": "Build-up",
  "objinfo.ceiling.thickness": "Thickness",
  "objinfo.ceiling.preset": "Ceiling style",
  "objinfo.ceiling.refFloor": "Reference floor",
  "objinfo.ceiling.top": "Top (OK)",
  "objinfo.ceiling.bottom": "Bottom (UK)",
  "objinfo.ceiling.height": "Thickness (OK−UK)",
  "objinfo.ceiling.area": "Area",
  "objinfo.ceiling.anchorFloor": "Bound to floor",
  "objinfo.ceiling.anchorCustom": "Custom height",
  // ── Opening attributes (object info panel) ──────────────────────────────
  "objinfo.opening.section": "Opening",
  "objinfo.opening.kind": "Type",
  "objinfo.opening.kind.window": "Window",
  "objinfo.opening.kind.door": "Door",
  "objinfo.opening.hostWall": "Host wall",
  "objinfo.opening.position": "Position (from wall start)",
  "objinfo.opening.width": "Width",
  "objinfo.opening.height": "Height",
  "objinfo.opening.sill": "Sill height",
  "objinfo.opening.swingAngle": "Swing angle",
  "objinfo.opening.hinge": "Hinge",
  "objinfo.opening.hinge.start": "Start",
  "objinfo.opening.hinge.end": "End",
  "objinfo.opening.swing": "Swing side",
  "objinfo.opening.swing.left": "Left",
  "objinfo.opening.swing.right": "Right",
  "objinfo.opening.dir": "Direction",
  "objinfo.opening.dir.in": "In",
  "objinfo.opening.dir.out": "Out",
  "objinfo.opening.bottom": "Bottom (UK)",
  "objinfo.opening.top": "Top (OK)",
  "objinfo.stair.section": "Stair",
  "objinfo.stair.shape": "Shape",
  "objinfo.stair.shape.straight": "Straight",
  "objinfo.stair.shape.L": "L-shaped",
  "objinfo.stair.shape.spiral": "Spiral",
  "objinfo.stair.width": "Run width",
  "objinfo.stair.steps": "Step count",
  "objinfo.stair.rise": "Total rise",
  "objinfo.stair.riser": "Riser height",
  "objinfo.stair.tread": "Tread depth",
  "objinfo.stair.direction": "Run direction",
  "objinfo.stair.direction.up": "Upwards",
  "objinfo.stair.direction.down": "Downwards",
  "objinfo.stair.refFloor": "Reference floor",
  "objinfo.stair.bottom": "Bottom (UK)",
  "objinfo.stair.top": "Top (OK)",
  // ── Room attributes (object info panel) ──────────────────────────────────
  "objinfo.room.section": "Room",
  "objinfo.room.name": "Name",
  "objinfo.room.sia": "SIA category",
  "objinfo.room.area": "Area",
  "objinfo.room.perimeter": "Perimeter",
  "objinfo.room.refFloor": "Reference floor",
  "objinfo.room.editStamp": "Edit stamp …",
  "levels.addFloor": "+ Floor",
  "levels.addDrawing": "+ Drawing",
  "layers.addCategory": "+ Layer",
  "nav.visibility": "Visibility",
  "nav.hide": "Hide",
  "nav.show": "Show",
  "nav.categoryVisible": "{name} visible",
  "nav.categorySelect": "Make {name} the active layer (drawing target)",

  // Badges.
  "badge.floor": "Floor",
  "badge.section": "Section",
  "badge.elevation": "Elevation",
  "badge.drawing": "Drawing",

  // Display mode select.
  "display.title": "Display mode",
  "display.all_force": "Show all",
  "display.all": "Selected",
  "display.active": "Active only",
  "display.grey": "Others grey",
  "display.grey_locked": "Others grey & locked",

  // Dock.
  "dock.resize": "Adjust width",
  "dock.dock": "Dock",
  "dock.close": "Close",
  "dock.float": "Float",
  "dock.redock": "Dock",
  "dock.resizePanel": "Resize",
  "dock.dropLeft": "Dock left",
  "dock.dropRight": "Dock right",

  // Context menu.
  "ctx.layerSettings": "Layer settings…",
  "ctx.addSubLayer": "Add sub-layer…",
  "ctx.assignSelection": "Assign selection here",
  "ctx.assignSelection.disabled": "No wall selected — first click a wall in the plan/3D.",
  "ctx.duplicate": "Duplicate",
  "ctx.copyProps": "Copy properties",
  "ctx.pasteProps": "Paste properties",
  "ctx.pasteProps.disabled": "Clipboard empty — first use “Copy properties”.",
  "ctx.delete": "Delete",
  "ctx.delete.lastLayer": "The last layer cannot be deleted.",
  "ctx.delete.lastLevel": "The last drawing level cannot be deleted.",
  "ctx.levelSettings": "Settings…",
  "ctx.fitSelection": "Fit to selection",
  "ctx.clearSelection": "Clear selection",
  "ctx.fit": "Fit view",
  "ctx.union": "Union",
  "ctx.subtract": "Subtract",
  "ctx.intersect": "Intersect",
  "ctx.boolean.disabled":
    "Select at least two closed areas (rectangle or closed polyline).",
  "ctx.noWallHit": "No wall hit",
  "ctx.noWallHit.hint": "Right-clicking a wall selects it and shows wall actions.",

  "ctx.title.level": "Drawing level",
  "ctx.title.wall": "Wall",
  "ctx.title.view": "View",

  // Inline editor.
  "editor.close": "Close",
  "editor.layerTitle": "Layer {code}",
  "editor.name": "Name",
  "editor.color": "Color",
  "editor.lineWeight": "Line weight",
  "editor.floorHeight": "Floor height",
  "editor.cutHeight": "Cut height",
  "editor.unit.mm": "mm",
  "editor.unit.m": "m",
  "editor.noHeightDrawing": "Drawings have no floor/cut height.",
  "editor.noHeightSection": "Sections/elevations have no floor/cut height.",

  // Main content.
  "content.perspektiveTitle": "Perspective · {name}",
  "content.grundrissTitle": "Plan · {name}",
  "content.grundrissLegend": "Plan · {name} · Cut height {cutHeight}",
  "content.drawingTitle": "Drawing · {name}",
  "content.drawingCanvas": "Drawing canvas",
  "content.drawingLegend": "Free 2D drawing",
  "props.floorHeight": "Floor height",
  "props.cutHeight": "Cut height",
  "props.okff": "FFL",
  "props.okffValue": "+{value} m",

  // Stub.
  "stub.section": "Section",
  "stub.elevation": "Elevation",
  "stub.note": "{kind} — derived projection follows in a later phase",

  // Default names.
  "default.floorName": "Floor {n}",
  "default.drawingName": "Drawing {n}",
  "default.categoryName": "New layer",
  "default.subCategoryName": "New sub-layer",
  "default.componentName": "New component",
  "default.hatchName": "New hatch",
  "default.lineStyleName": "New line style",
  "default.hatchNone": "None",
  "default.copySuffixLevel": "{name} copy",
  "default.copySuffixLayer": "{name} COPY",
  "default.wallTypeSingle": "Wall {thickness} m",

  // Alerts.
  "alert.layerInUse": "Layer “{code} {name}” is used by components and cannot be deleted.",
  "alert.componentInUse": "Component “{name}” is used by a wall type and cannot be deleted.",
  "alert.hatchInUse": "Hatch “{name}” is used by a component and cannot be deleted.",
  "alert.lineStyleInUse": "Line style “{name}” is used by a hatch and cannot be deleted.",

  // Resource manager.
  "resources.title": "Resources",
  "resources.label": "Resource manager",
  "resources.close": "Close",
  "resources.tab.components": "Components",
  "resources.tab.hatches": "Hatches",
  "resources.tab.lines": "Lines",
  "resources.tab.materials": "Materials",

  "resources.materials.hint":
    "Sphere preview of the built-in PBR material library — browse and compare. Assign to a component still via its “Material …” column.",
  "resources.materials.searchPlaceholder": "Search materials …",
  "resources.materials.categoryLabel": "Category",
  "resources.materials.categoryAll": "All",
  "resources.materials.selected": "Selected: {name} ({category})",
  "resources.materials.empty": "No materials found.",
  "resources.materials.count": "{shown} of {total} materials",
  "resources.add": "New",
  "resources.import.lin": "⤓ Import .lin",
  "resources.import.pat": "⤓ Import .pat",

  "resources.components.hint": "Higher priority runs through at the join (intersects first); lower butts against the side.",
  "resources.components.empty": "No components yet.",
  "resources.components.placeholder": "Component",
  "resources.col.name": "Name",
  "resources.col.color": "Color",
  "resources.col.hatch": "Hatch",
  "resources.col.prio": "Prio",
  "resources.col.prio.hint": "Higher priority runs through at the join",
  "resources.col.texture": "Texture",
  "resources.col.material": "Material",
  "resources.delete.component": "Delete component “{name}”",

  // 3D material (PBR) — built-in library + upload.
  "material.assign": "Material …",
  "material.none": "— none —",
  "material.dialog.title": "Assign 3D material",
  "material.dialog.hint": "Pick a built-in material or upload your own textures. Applies in the 3D “Textured” mode.",
  "material.library": "Library (ambientCG, CC0)",
  "material.upload": "Own textures",
  "material.upload.hint": "Upload images as maps (at least color). Size = physical tile size in meters.",
  "material.upload.color": "Color (albedo)",
  "material.upload.normal": "Normal",
  "material.upload.roughness": "Roughness",
  "material.upload.displacement": "Height",
  "material.upload.ao": "AO",
  "material.upload.choose": "Image …",
  "material.upload.apply": "Assign",
  "material.size": "Tile size (m)",
  "material.current": "Current",
  "material.clear": "Remove material",
  "material.close": "Close",
  "material.uploaded": "Uploaded",
  // ── Browse ambientCG library (live) ──────────────────────────────────────
  "material.browse": "Browse library",
  "material.browse.starter": "Quick pick",
  "material.browse.hint":
    "Search the full CC0 ambientCG library (~2000+ materials). One click downloads the textures at runtime and assigns them.",
  "material.browse.search": "Search …",
  "material.browse.searchPlaceholder": "e.g. wood, concrete, tiles …",
  "material.browse.category.all": "All categories",
  "material.browse.resolution": "Resolution",
  "material.browse.more": "Load more",
  "material.browse.loading": "Loading …",
  "material.browse.downloading": "Downloading texture …",
  "material.browse.empty": "No materials found.",
  "material.browse.count": "{shown} of {total}",
  "material.browse.error":
    "Library unreachable. A proxy for ambientCG is required at runtime (dev: Vite proxy active; prod: set VITE_AMBIENTCG_PROXY).",
  "material.browse.downloadError": "Download failed (check CORS/proxy).",

  "resources.hatches.hint": "Pattern, scale and angle drive the section hatch; the line style sets the weight of the pattern lines.",
  "resources.hatches.empty": "No hatches yet.",
  "resources.hatches.placeholder": "Hatch",
  "resources.col.pattern": "Pattern",
  "resources.col.scale": "Scale",
  "resources.col.angle": "Angle °",
  "resources.col.lineStyle": "Line style",
  "resources.lineStyle.none": "— none —",
  "resources.delete.hatch": "Delete hatch “{name}”",

  "pattern.none": "None",
  "pattern.solid": "Solid",
  "pattern.insulation": "Insulation",
  "pattern.diagonal": "Diagonal",
  "pattern.crosshatch": "Crosshatch",

  "resources.lines.hint": "Line weight in millimetres (paper space). Stroke: solid, dashed or dotted.",
  "resources.lines.empty": "No line styles yet.",
  "resources.lines.placeholder": "Line style",
  "resources.col.weight": "Weight (mm)",
  "resources.col.stroke": "Stroke",
  "resources.col.preview": "Preview",
  "resources.delete.lineStyle": "Delete line style “{name}”",
  "resources.texture.empty": "—",

  "dash.solid": "Solid",
  "dash.dashed": "Dashed",
  "dash.dotted": "Dotted",

  // Command line / commands (Rhino-style command system).
  "cmd.aria": "Command line",
  "cmd.idle.prompt": "Command:",
  "cmd.idle.placeholder": "Type a command … (Tab)",
  "cmd.wall.label": "Wall",
  "cmd.wall.start": "Start of wall:",
  "cmd.wall.next": "Next point:",
  "cmd.ceiling.label": "Ceiling",
  "cmd.ceiling.start": "First outline point of ceiling:",
  "cmd.ceiling.next": "Next point ( Close ):",
  "cmd.opening.label": "Opening",
  "cmd.opening.windowLabel": "Window",
  "cmd.opening.doorLabel": "Door",
  "cmd.opening.wall": "Pick a wall for the opening:",
  "cmd.opening.pos": "Position along the wall ( type distance ):",
  "cmd.opening.kind": "Type",
  "cmd.opening.hinge": "Hinge",
  "cmd.opening.side": "Side",
  "cmd.opening.dir": "Direction",
  "cmd.opening.sillField": "Sill",
  "cmd.opening.swingField": "Angle",
  "cmd.stair.label": "Stair",
  "cmd.stair.start": "Start point of the stair:",
  "cmd.stair.run": "Run direction / end ( Shape · Up/Down ):",
  "cmd.stair.shape": "Shape",
  "cmd.stair.updown": "Up/Down",
  "cmd.stair.stepsField": "Steps",
  "cmd.stair.riseField": "Rise",
  "cmd.line.label": "Line",
  "cmd.line.start": "Start of line:",
  "cmd.line.end": "End of line:",
  "cmd.polyline.label": "Polyline",
  "cmd.polyline.start": "Start point:",
  "cmd.polyline.next": "Next point:",
  "cmd.polyline.close": "Close",
  "cmd.polyline.undo": "Undo",
  "cmd.polyline.closedOpt": "Closed",
  "cmd.rect.label": "Rectangle",
  "cmd.rect.first": "First corner:",
  "cmd.rect.second": "Opposite corner:",
  "cmd.rect.method": "Method",
  "cmd.rect.center": "Center:",
  "cmd.rect.corner": "Corner:",
  "cmd.rect.baseEnd": "Second corner (base edge):",
  "cmd.rect.rise": "Height:",
  "cmd.circle.label": "Circle",
  "cmd.circle.center": "Center:",
  "cmd.circle.radius": "Radius:",
  "cmd.move.label": "Move",
  "cmd.move.base": "Base point:",
  "cmd.move.target": "Target point:",
  "cmd.move.empty": "Nothing selected (select objects first).",
  "cmd.mirror.label": "Mirror",
  "cmd.mirror.first": "First point of mirror axis:",
  "cmd.mirror.second": "Second point of mirror axis:",
  "cmd.mirror.empty": "Nothing selected (select objects first).",
  "cmd.join.prompt": "Joining selected elements …",
  "cmd.copy.label": "Copy",
  "cmd.copy.base": "Base point:",
  "cmd.copy.target": "Target point (Enter to finish):",
  "cmd.copy.empty": "Nothing selected (select objects first).",
  "cmd.offset.label": "Offset",
  "cmd.offset.pick": "Select curve:",
  "cmd.offset.side": "Side or distance:",
  // Trim (quick-trim): click the part to cut away; repeats until Esc.
  "cmd.trim.label": "Trim",
  "cmd.trim.pick": "Click the part to trim away (Esc to finish):",
  // Edit tools Split / Join / Delete segment (keyboard: Ctrl+S / Ctrl+J /
  // Alt+Click). Labels for the command line / menus.
  "edit.split.label": "Split",
  "edit.join.label": "Join",
  "edit.cutSegment.label": "Delete segment",
  // Tab field cycle (precision input): ordered numeric fields per step.
  "cmd.field.length": "Length",
  "cmd.field.angle": "Angle",
  "cmd.field.width": "Width",
  "cmd.field.height": "Height",
  "cmd.field.radius": "Radius",
  "cmd.field.distance": "Distance",
  "cmd.field.thickness": "Thickness",
  "cmd.edit.point": "Drag grip (Tab: length/angle):",

  // Commands: import / terrain.
  "cmd.import.label": "Import",
  "cmd.import.prompt": "Choose DXF file …",
  "cmd.terrain.label": "Terrain",
  "cmd.terrain.prompt": "Generate terrain from contours …",

  // Area balance (SIA 416).
  "nav.roomBalance": "Area balance",
  "balance.title": "Area balance (SIA 416)",
  "balance.rooms": "Rooms",
  "balance.summary": "Balance",
  "balance.export": "Export CSV",
  "balance.empty": "No rooms yet. Create one with the room tool.",
  // Room stamp editor.
  "room.stamp.editTitle": "Edit room stamp",
  "room.stamp.close": "Close",

  // Site / context panel (SitePanel).
  "nav.site": "Terrain",
  "site.title": "Terrain & Context",
  "site.import": "⤓ Import DXF",
  "site.generateTerrain": "Generate terrain",
  "site.contourSet": "Contour set",
  "site.empty": "No context loaded. Import a DXF file (contour lines or mesh).",
  "site.delete": "Remove",
  "site.type.mesh": "Mesh",
  "site.type.contours": "Contours",
  "site.type.terrain": "Terrain",
  "site.dwgHint": "DWG? Convert it to DXF first with the free ODA File Converter.",
  "site.terrainFailed": "No terrain could be generated (too few/collinear contour points).",

  // Import dialog.
  "import.title": "Import DXF",
  "import.close": "Close",
  "import.file": "File",
  "import.summary.heading": "Contents",
  "import.summary.contours": "{n} contours",
  "import.summary.meshes": "{n} meshes",
  "import.summary.layers": "Layers: {layers}",
  "import.summary.noLayers": "no layer names",
  "import.summary.empty": "No importable 2D geometry found.",
  "import.target.heading": "Target drawing level",
  "import.target.existing": "Import into existing drawing level",
  "import.target.new": "Create new drawing",
  "import.target.newNamePlaceholder": "New drawing name",
  "import.layers.heading": "Layer handling (DXF layers)",
  "import.layers.asCategories": "Keep DXF layers as categories",
  "import.layers.toActive": "Everything onto the active category ({code})",
  "import.mesh.heading": "Meshes",
  "import.mesh.asContext": "Import meshes as context geometry (3D)",
  "import.mesh.note": "Meshes are not 2D drawings — they go into the context layer.",
  "import.dwg.heading": "DWG file",
  "import.dwg.loading": "Reading DWG …",
  "import.dwg.hint":
    "DWG could not be read. Alternatively, convert the file to DXF with the free ODA File Converter, then import the DXF.",
  "import.confirm": "Import",
  "import.cancel": "Cancel",
  "import.badge.floor": "Floor",
  "import.badge.section": "Section",
  "import.badge.elevation": "Elevation",
  "import.badge.drawing": "Drawing",

  // PDF export.
  "export.title": "Export PDF",
  "export.close": "Close",
  "export.plan": "Plan",
  "export.scale": "Scale",
  "export.paper": "Paper size",
  "export.orientation": "Orientation",
  "export.orientation.portrait": "Portrait",
  "export.orientation.landscape": "Landscape",
  "export.warnFit":
    "At the chosen scale the plan does not fully fit the sheet — pick a larger format or a smaller scale.",
  "export.confirm": "Export",
  "export.cancel": "Cancel",

  // DXF export.
  "exportDxf.title": "Export DXF",
  "exportDxf.hatches": "Hatches",
  "exportDxf.hatches.yes": "Include",
  "exportDxf.hatches.no": "Outlines only",
  "exportDxf.unitsNote":
    "Model space in meters (1:1). Layers mirror the project's categories; scale freely on plot.",

  // Drag & drop (app-wide file drop).
  "drop.hint": "Drop a DXF/DWG file here",

  // Error boundary.
  "error.console": "Unexpected error:",
  "error.title": "Something went wrong",
  "error.body": "An unexpected error occurred. Details in the console.",
  "error.reload": "Reload",

  // Location import (geo.admin / OSM).
  "site.importLocation": "Import location",
  "ctxImport.title": "Import location",
  "ctxImport.close": "Close",
  "ctxImport.location": "Place / address",
  "ctxImport.searchPlaceholder": "e.g. Bundesplatz Bern",
  "ctxImport.search": "Search",
  "ctxImport.searching": "Searching…",
  "ctxImport.noResults": "No matches.",
  "ctxImport.searchError": "Search failed.",
  "ctxImport.radius": "Radius",
  "ctxImport.sources": "Sources",
  "ctxImport.src.swissBuildings": "Swisstopo buildings",
  "ctxImport.src.osmBuildings": "OSM buildings",
  "ctxImport.src.osmRoads": "OSM roads",
  "ctxImport.src.osmWater": "OSM water",
  "ctxImport.src.osmGreen": "OSM greenery",
  "ctxImport.cancel": "Cancel",
  "ctxImport.confirm": "Import",
  "ctxImport.importing": "Importing…",
  "ctxImport.working": "Loading geodata…",
  "ctxImport.empty": "No geometry found in the selected area.",
  "ctxImport.importError": "Import failed.",
  "ctxImport.imported": "Imported {count} objects in {sets} sets.",

  // Room command.
  "cmd.room.label": "Room",
  "cmd.room.mode": "Mode",
  "cmd.room.inside": "Click inside room:",
  "cmd.room.first": "Set first room point:",
  "cmd.room.next": "Set next point ( Enter/Start closes ):",

  // Rich-text editor.
  // Text group (top bar).
  "text.group": "Text",
  "text.style": "Style",
  "text.style.none": "— Style —",
  "text.font": "Font",
  "text.size": "Size",
  "text.size.custom": "Custom …",
  "text.size.customPrompt": "Font size in pt:",
  "text.bold": "Bold",
  "text.italic": "Italic",
  "text.underline": "Underline",
  "text.align.left": "Align left",
  "text.align.center": "Center",
  "text.align.right": "Align right",
  "text.add": "Text",
  "text.add.hint": "Text tool — place new text (coming soon)",
  "text.editTitle": "Edit text",
  "text.apply": "Apply",
  "text.cancel": "Cancel",
  "roomStamp.title": "Edit room stamp",
  "roomStamp.number": "Room number",
  "roomStamp.name": "Room name",
  "roomStamp.nameLine2": "Room name line 2",
  "roomStamp.showFloorArea": "Show floor area",
  "roomStamp.floorAreaPrefix": "Floor area prefix",
  "roomStamp.showUsage": "Show usage",
  "text.selectedHint": "Formatting applies to the selected text",

  "rt.bold": "Bold",
  "rt.italic": "Italic",
  "rt.underline": "Underline",
  "rt.strike": "Strikethrough",
  "rt.strikethrough": "Strikethrough",
  "rt.fontSize": "Font size",
  "rt.color": "Color",
  "rt.preset": "Preset",
  "rt.preset.none": "— Preset —",

  // ── 3D viewport (native engine, WASM/WebGPU) ────────────────────────────────
  "viewport3d.engineUnavailable": "3D engine unavailable",
  "viewport3d.engineUnavailableHint":
    "WebGPU could not be initialized. Switch to WebGL2 in the status bar to keep using the 3D view.",
};
