// Deutsches Wörterbuch (Default-Sprache). Die Werte hier sind EXAKT die bisher // sichtbaren UI-Texte — die i18n-Umstellung darf optisch nichts ändern. // // Identifier/Keys sind englisch und namespaced wie bei DOSSIER // (z. B. `topbar.grundriss`); nur die Werte sind übersetzbarer Text. // Platzhalter in geschweiften Klammern (`{name}`) werden von t(...) ersetzt. export const de = { // ── Marke / Topbar ─────────────────────────────────────────────────────── "brand.tag": "Dokumentmodell", "topbar.viewGroup": "Ansicht", "topbar.viewGroup.disabled": "Ansichten nur für Geschosse", "topbar.grundriss": "Grundriss", "topbar.perspektive": "Perspektive", "view3d.group": "Ansicht 3D", "view3d.front": "Vorne", "view3d.front.hint": "Frontalansicht von vorne", "view3d.back": "Hinten", "view3d.back.hint": "Rückansicht von hinten", "view3d.top": "Oben", "view3d.top.hint": "Draufsicht (senkrecht von oben)", "view3d.side": "Rechts", "view3d.side.hint": "Rechte Seitenansicht (90° zur Front)", "view3d.left": "Links", "view3d.left.hint": "Linke Seitenansicht (90° zur Front, gegenüber Rechts)", "view3d.perspective": "Perspektive", "view3d.perspective.hint": "Freie Perspektive (3/4-Blick)", "view3d.iso": "Isometrie", "view3d.iso.hint": "Isometrische Ansicht (gleichwinklig von vorne-oben-rechts)", "view3d.isoFrontLeft": "Vorne-Links", "view3d.isoFrontLeft.hint": "Isometrische Ansicht (gleichwinklig von vorne-oben-links)", "view3d.isoBackRight": "Hinten-Rechts", "view3d.isoBackRight.hint": "Isometrische Ansicht (gleichwinklig von hinten-oben-rechts)", "view3d.isoBackLeft": "Hinten-Links", "view3d.isoBackLeft.hint": "Isometrische Ansicht (gleichwinklig von hinten-oben-links)", "view3d.iso.menu": "Weitere Iso-Ansichten", "view3d.iso.menu.hint": "Einen der vier oberen Iso-Oktanten wählen", "view3d.camera": "Kamera", "view3d.camera.hint": "Kamera-Einstellungen (Sichtwinkel)", "view3d.fov": "Sichtwinkel", "view3d.fov.hint": "Sichtwinkel (FOV) der Perspektivkamera in Grad", "topbar.detailGroup": "Detailgrad", "topbar.detail": "Detailgrad", "topbar.detail.hint": "Detailgrad der Plandarstellung (Symbole, Schraffuren, Linien)", "topbar.detail.hintDisabled": "Detailgrad wirkt im Grundriss (in der Perspektive noch nicht)", "topbar.detail.grob": "grob", "topbar.detail.mittel": "mittel", "topbar.detail.fein": "fein", "topbar.scaleGroup": "Massstab und Zoom", "topbar.scale": "Massstab", "topbar.scale.apply": "Papier-Massstab 1:N anwenden", "topbar.scale.custom": "frei …", "topbar.scale.live": "Aktueller Papier-Massstab (live)", "topbar.scale.prompt": "Massstab eingeben (z. B. 1:35 oder 35):", "topbar.zoom100": "100%", "topbar.zoom100.hint": "Zoom exakt auf den gewählten Massstab 1:{n}", "topbar.fit": "Einpassen", "topbar.fit.hint": "Auf Plan einpassen", "topbar.fitSelection": "Auswahl", "topbar.fitSelection.hint": "Auf Auswahl einpassen (sonst auf Plan)", "topbar.exportPdf": "PDF", "topbar.exportPdf.hint": "Grundriss als Vektor-PDF exportieren", "topbar.exportDxf": "DXF", "topbar.exportDxf.hint": "Grundriss als DXF (Modell-Space in Metern) exportieren", "topbar.zoom.current": "Aktueller Zoom", "topbar.renderGroup": "Render-Modus", "topbar.render.shaded": "Schattiert", "topbar.render.shaded.hint": "Schattiert", "topbar.render.wireframe": "Draht", "topbar.render.wireframe.hint": "Drahtgitter", "topbar.render.hidden": "Kanten", "topbar.render.hidden.hint": "Verdeckte Kanten (Hidden-Line)", "topbar.render.hintDisabled": "Render-Modus wirkt in der Perspektive", // Darstellungsart (kontextabhängiger Dropdown): Grundriss = Farbig/SW, // Perspektive = Schattiert/Weiss/Draht/Kanten. "display.style": "Darstellung", "display.style.group": "Darstellungsart", "display.style.hint": "Darstellungsart der aktiven Ansicht", "display.style.color": "Farbig", "display.style.mono": "Schwarz-Weiss", "display.style.shaded": "Schattiert", "display.style.white": "Weiss", "display.style.textured": "Texturiert", "display.style.wireframe": "Drahtgitter", "display.style.hidden": "Kanten", "topbar.referenceLinesGroup": "Referenzlinien", "topbar.referenceLines": "Referenzlinien", "topbar.referenceLines.hint": "Referenzlinien (Wandachsen) ein-/ausblenden", "topbar.referenceLines.hintDisabled": "Referenzlinien wirken im Grundriss", "topbar.resources": "Ressourcen", "topbar.resources.hint": "Ressourcen-Fenster ein-/ausblenden", // ── Layout-Menü (Topbar) ───────────────────────────────────────────────── "layout.title": "Arbeitsumgebung", "layout.placeholder": "Arbeitsumgebung …", "layout.saveCurrent": "+ Aktuelle speichern …", "layout.loadGroup": "Laden", "layout.deleteGroup": "Löschen", "layout.savePrompt": "Arbeitsumgebung speichern als:", // ── Sichtbarkeits-Kombinationen (Topbar) ───────────────────────────────── "combo.layers": "Ebenen-Komb.", "combo.drawings": "Zeichn.-Komb.", "combo.placeholder": "Kombination …", "combo.saveCurrent": "+ Aktuelle speichern …", "combo.loadGroup": "Laden", "combo.deleteGroup": "Löschen", "combo.layers.title": "Ebenenkombinationen", "combo.drawings.title": "Zeichnungskombinationen", "combo.layers.savePrompt": "Ebenenkombination speichern als:", "combo.drawings.savePrompt": "Zeichnungskombination speichern als:", // ── Zeichenwerkzeuge (Topbar-Werkzeugleiste + Statushinweise) ──────────── "tool.group": "Werkzeuge", "tool.select": "Auswahl", "tool.wall": "Wand", "tool.ceiling": "Decke", "tool.window": "Fenster", "tool.door": "Tür", "tool.stair": "Treppe", "tool.line": "Linie", "tool.polyline": "Polylinie", "tool.rect": "Rechteck", "tool.circle": "Kreis", "tool.circle.hint": "Kreis: Mittelpunkt setzen, dann Radius", "tool.arc": "Bogen", "tool.arc.hint": "Bogen: Mittelpunkt, Startpunkt, dann Endpunkt (CCW)", "tool.text": "Text", "tool.text.hint": "Text: Ankerpunkt setzen, dann Text eintippen", "tool.textbox": "Textspalte", "tool.textbox.hint": "Textspalte: Anker, dann Spaltenbreite ziehen, dann Text eintippen", // Ribbon-Oberleiste (Tabs + Gruppen) "ribbon.tab.2d": "2D", "ribbon.tab.3d": "3D", "ribbon.tab.bim": "BIM", "ribbon.tab.views": "Ansichten", "ribbon.tab.custom": "Eigene", "ribbon.group.draw": "Zeichnen", "ribbon.group.modify": "Ändern", "ribbon.group.components": "Bauteile", "ribbon.group.custom": "Eigene Leiste", "ribbon.custom.add": "+ Hinzufügen", "ribbon.custom.empty": "Elemente über + Hinzufügen wählen", "ribbon.empty": "Noch keine Werkzeuge in diesem Tab", "tool.select.hint": "Auswahl — Elemente klicken/aufziehen", "tool.window.hint": "Fenster: Wand wählen, dann Position setzen", "tool.door.hint": "Tür: Wand wählen, dann Position setzen", "tool.stair.hint": "Treppe: Startpunkt, dann Laufrichtung/Ende setzen", "tool.room": "Raum", "tool.room.hint": "Raum: in umschlossenen Bereich klicken (oder Umriss zeichnen)", "tool.wall.firstPoint": "Wand: ersten Achspunkt setzen", "tool.wall.nextPoint": "Wand: nächsten Punkt — Doppelklick/Rechtsklick beendet", "tool.ceiling.firstPoint": "Decke: ersten Umrisspunkt setzen", "tool.ceiling.nextPoint": "Decke: nächster Punkt — Klick auf Start schließt, Enter beendet", "tool.line.firstPoint": "Linie: Startpunkt setzen", "tool.line.secondPoint": "Linie: Endpunkt setzen", "tool.polyline.firstPoint": "Polylinie: ersten Punkt setzen", "tool.polyline.nextPoint": "Polylinie: nächster Punkt — Klick auf Start schließt, Doppelklick beendet", "tool.rect.firstCorner": "Rechteck: erste Ecke setzen", "tool.rect.secondCorner": "Rechteck: gegenüberliegende Ecke setzen", "tool.wallType": "Wandtyp", "tool.ceilingType": "Deckentyp", "tool.layer": "Ebene", "tool.layer.hint": "Aktive Ebene — alles Gezeichnete kommt auf diese Kategorie", "tool.floorOnlyDisabled": "Wand nur auf einem Geschoss zeichenbar", "tool.snap": "Fang", "tool.snap.hint": "Fang an Endpunkten/Raster; Shift = Ortho, Ctrl = Fang aus", "snap.enabled": "Fang aktiv", "snap.endpoint": "Endpunkt", "snap.midpoint": "Mittelpunkt", "snap.intersection": "Schnittpunkt", "snap.onEdge": "Auf Kante (Lot)", "snap.grid": "Raster", "snap.ortho": "Ortho (Shift)", "snap.gridSize": "Rasterweite (m)", "snap.angleStep": "Winkelraster", // ── Transformation (Bewegen/Spiegeln/Drehen) + Modusleiste ─────────────── "transform.bar": "Transformation", "transform.cancel": "Abbrechen (Esc)", "transform.countPrompt": "Anzahl Kopien:", "transform.move": "Bewegen (M)", "transform.mirror": "Spiegeln (S)", "transform.rotate": "Drehen (D)", "transform.mode.move": "Bewegen", "transform.mode.copy": "Kopie", "transform.mode.array": "N Kopien", "transform.mode.distribute": "Verteilen", "transform.hint.move.0": "Basispunkt klicken", "transform.hint.move.1": "Zielpunkt klicken", "transform.hint.rotate.0": "Drehzentrum klicken", "transform.hint.rotate.1": "Bezugspunkt (Startwinkel) klicken", "transform.hint.rotate.2": "Zielwinkel klicken", "transform.hint.mirror.0": "Erster Punkt der Spiegelachse", "transform.hint.mirror.1": "Zweiter Punkt der Spiegelachse", // ── Linien-Darstellung (Display/Print) ─────────────────────────────────── "topbar.lineModeGroup": "Linien-Darstellung", "topbar.lineMode.display": "Display", "topbar.lineMode.print": "Print", "topbar.lineMode.display.hint": "Display: alle Linien als konstante Haarlinie (ruhiges Arbeiten)", "topbar.lineMode.print.hint": "Print: echte mm-Strichstärken (Papier-/Druckbild)", // ── Statusleiste ───────────────────────────────────────────────────────── "status.selection": "Auswahl", "status.selectionN": "Auswahl: {n} {noun}", "status.wall": "Wand", "status.walls": "Wände", "status.xy": "X/Y", "status.unit": "Einheit", "status.scale": "Massstab", "status.zoom": "Zoom", "status.referenceLines": "Achsen", "status.referenceLines.hint": "Referenzlinien (Wandachsen) ein-/ausblenden", "status.referenceLines.hintDisabled": "Referenzlinien wirken im Grundriss", "status.floor": "Geschoss", "status.layer": "Ebene", "status.none": "—", "status.renderer": "Renderer", "status.rendererWebgl": "WebGL2", "status.rendererWasm": "Nordstern", "status.rendererWasmUnavailable": "WebGPU nicht verfügbar", // ── Dokument-Tabs (Zeichnungen/Blätter) ───────────────────────────────── "tabs.drawings": "Zeichnungen", // ── Navigator-Panels ───────────────────────────────────────────────────── "nav.drawingLevels": "Zeichnungsebenen", "nav.layers": "Ebenen", "nav.tools": "Werkzeuge", "nav.attributes": "Attribute", "nav.objectInfo": "Objekt-Info", // Attribute-Palette (AttributesPanel) "attr.title": "Attribute", "attr.empty": "Keine Auswahl", "attr.newComponent": "Neues Bauteil", "attr.stroke": "Stift", "attr.color": "Farbe", "attr.weight": "Strichstärke (mm)", "attr.lineStyle": "Linienstil", "attr.lineStyle.none": "Standard", "attr.fill": "Füllung", "attr.fillColor": "Füllfarbe", "attr.clearFill": "Füllfarbe entfernen", "attr.pickColor": "Farbe wählen", "attr.foreground": "Vordergrund", "attr.background": "Hintergrund", "attr.bySystem": "Nach System", "attr.hatch": "Schraffur", "attr.none": "keine", "attr.source.layer": "Nach Ebene", "attr.source.object": "Nach Bauteil", "attr.source.custom": "eigener Wert", "attr.size": "Maße", "attr.width": "Breite", "attr.height": "Höhe", // Objekt-Info-Palette (ObjectInfoPanel) "objinfo.title": "Objekt-Info", "objinfo.empty": "Kein Objekt gewählt", "objinfo.refpoint": "Bezugspunkt", "objinfo.setRefpoint": "Bezugspunkt wählen", "objinfo.x": "X", "objinfo.y": "Y", "objinfo.z": "Z", "objinfo.zHint": "2D-Ebene – keine Höhe am Element", "objinfo.dimensions": "Maße", "objinfo.width": "Breite", "objinfo.height": "Höhe", "objinfo.type": "Typ", "objinfo.kind.wall": "Wand", "objinfo.kind.ceiling": "Decke", "objinfo.kind.drawing2d": "2D-Objekt", "objinfo.kind.door": "Tür", "objinfo.kind.opening": "Öffnung", "objinfo.kind.stair": "Treppe", "objinfo.kind.room": "Raum", "objinfo.kind.extrudedSolid": "Extrusion", "objinfo.kind.column": "Stütze", "objinfo.kind.roof": "Dach", // ── Dach-Attribute (Object-Info-Panel) ────────────────────────────────── "objinfo.roof.section": "Dach", "objinfo.roof.shape": "Dachform", "objinfo.roof.shape.flach": "Flachdach", "objinfo.roof.shape.pult": "Pultdach", "objinfo.roof.shape.sattel": "Satteldach", "objinfo.roof.shape.walm": "Walmdach", "objinfo.roof.shape.mansarde": "Mansarddach", "objinfo.roof.shape.zelt": "Zeltdach", "objinfo.roof.ridgeAxis": "Firstrichtung", "objinfo.roof.ridgeAxis.x": "entlang X", "objinfo.roof.ridgeAxis.y": "entlang Y", "objinfo.roof.pitch": "Neigung (°)", "objinfo.roof.pitchUpper": "Obere Neigung (°)", "objinfo.roof.width": "Breite (m)", "objinfo.roof.depth": "Tiefe (m)", "objinfo.roof.overhang": "Überstand (m)", "objinfo.roof.thickness": "Dachdicke (m)", "objinfo.roof.baseElevation": "Traufhöhe (m)", "objinfo.roof.ridgeHeight": "Firsthöhe", "objinfo.roof.area": "Grundfläche", // ── Stützen-Attribute (Object-Info-Panel) ─────────────────────────────── "objinfo.column.section": "Stütze", "objinfo.column.profile": "Profil", "objinfo.column.profile.rect": "Rechteck", "objinfo.column.profile.round": "Rund", "objinfo.column.width": "Breite", "objinfo.column.depth": "Tiefe", "objinfo.column.radius": "Radius", "objinfo.column.height": "Höhe", "objinfo.column.rotation": "Drehung (°)", "objinfo.column.floor": "Geschoss", // ── Wand-Attribute (Object-Info-Panel) ────────────────────────────────── "objinfo.wall.section": "Wand", "objinfo.wall.refLine": "Referenzlinie", "objinfo.wall.refLine.left": "Außen (links)", "objinfo.wall.refLine.center": "Mitte", "objinfo.wall.refLine.right": "Innen (rechts)", "objinfo.wall.refLine.joint": "Fuge", "objinfo.wall.sliceTermination": "An Decke enden", "objinfo.wall.sliceTermination.both": "Aus", "objinfo.wall.sliceTermination.below": "Unten", "objinfo.wall.sliceTermination.above": "Oben", "objinfo.wall.buildup": "Aufbau", "objinfo.wall.single": "Solid", "objinfo.wall.multi": "Mehrschichtig", "objinfo.wall.thickness": "Dicke", "objinfo.wall.preset": "Wandaufbau", "objinfo.wall.presetLabel": "{name} · {thickness} m", "objinfo.wall.refFloor": "Referenzgeschoss", "objinfo.wall.linkAbove": "An oberes Geschoss binden", "objinfo.wall.bottom": "Unterkante (UK)", "objinfo.wall.top": "Oberkante (OK)", "objinfo.wall.anchorFloor": "Gebunden", "objinfo.wall.anchorCustom": "Eigene", "objinfo.anchor.refFloor": "Referenzgeschoss", "objinfo.anchor.customHeight": "Eigene Höhe", "objinfo.wall.length": "Länge", "objinfo.wall.volumeGross": "Brutto", "objinfo.volume": "Volumen", "objinfo.wall.height": "Höhe", // ── Decken-Attribute (Object-Info-Panel) ──────────────────────────────── "objinfo.ceiling.section": "Decke", "objinfo.ceiling.buildup": "Aufbau", "objinfo.ceiling.thickness": "Dicke", "objinfo.ceiling.preset": "Deckenaufbau", "objinfo.ceiling.refFloor": "Referenzgeschoss", "objinfo.ceiling.top": "Oberkante (OK)", "objinfo.ceiling.bottom": "Unterkante (UK)", "objinfo.ceiling.height": "Dicke (OK−UK)", "objinfo.ceiling.area": "Fläche", "objinfo.ceiling.anchorFloor": "Gebunden", "objinfo.ceiling.anchorCustom": "Eigene", // ── Öffnungs-Attribute (Object-Info-Panel) ────────────────────────────── "objinfo.opening.section": "Öffnung", "objinfo.opening.type": "Typ", "objinfo.opening.editType": "Typ bearbeiten (Ressourcen)", "objinfo.stair.type": "Typ", "objinfo.type.none": "(kein Typ)", "objinfo.opening.kind": "Art", "objinfo.opening.kind.window": "Fenster", "objinfo.opening.kind.door": "Tür", "objinfo.opening.hostWall": "Wirts-Wand", "objinfo.opening.position": "Position (ab Wandanfang)", "objinfo.opening.width": "Breite", "objinfo.opening.height": "Höhe", "objinfo.opening.sill": "Brüstung", "objinfo.opening.swingAngle": "Öffnungswinkel", "objinfo.opening.hinge": "Anschlag", "objinfo.opening.hinge.start": "Anfang", "objinfo.opening.hinge.end": "Ende", "objinfo.opening.swing": "Aufschlagseite", "objinfo.opening.swing.left": "Links", "objinfo.opening.swing.right": "Rechts", "objinfo.opening.dir": "Richtung", "objinfo.opening.dir.in": "Innen", "objinfo.opening.dir.out": "Außen", "objinfo.opening.bottom": "Unterkante (UK)", "objinfo.opening.top": "Oberkante (OK)", // Neue Öffnungs-Felder "objinfo.opening.wingCount": "Flügel", "objinfo.opening.doorType": "Typ", "objinfo.opening.doorType.normal": "Normal", "objinfo.opening.doorType.wandoeffnung": "Wandöffnung", "objinfo.opening.lintelLines": "Sturzlinien", "objinfo.opening.lintelLines.keine": "Keine", "objinfo.opening.lintelLines.innen": "Innen", "objinfo.opening.lintelLines.aussen": "Außen", "objinfo.opening.lintelLines.beide": "Beide", // ── Treppen-Attribute (Object-Info-Panel) ─────────────────────────────── "objinfo.stair.section": "Treppe", "objinfo.stair.shape": "Grundform", "objinfo.stair.shape.straight": "Gerade", "objinfo.stair.shape.L": "L-Treppe", "objinfo.stair.shape.spiral": "Wendel", "objinfo.stair.width": "Laufbreite", "objinfo.stair.steps": "Stufenanzahl", "objinfo.stair.rise": "Steighöhe (gesamt)", "objinfo.stair.riser": "Steigungshöhe", "objinfo.stair.tread": "Auftrittstiefe", "objinfo.stair.direction": "Laufrichtung", "objinfo.stair.direction.up": "Aufwärts", "objinfo.stair.direction.down": "Abwärts", "objinfo.stair.refFloor": "Referenzgeschoss", "objinfo.stair.bottom": "Unterkante (UK)", "objinfo.stair.top": "Oberkante (OK)", // Neues Treppen-Feld "objinfo.stair.referenz": "Referenz", "objinfo.stair.referenz.links": "Links", "objinfo.stair.referenz.mitte": "Mitte", "objinfo.stair.referenz.rechts": "Rechts", // ── Raum-Attribute (Object-Info-Panel) ────────────────────────────────── "objinfo.room.section": "Raum", "objinfo.room.name": "Name", "objinfo.room.sia": "SIA-Kategorie", "objinfo.room.area": "Fläche", "objinfo.room.perimeter": "Umfang", "objinfo.room.refFloor": "Referenzgeschoss", "objinfo.room.editStamp": "Stempel bearbeiten …", // ── Extrusions-Attribute (truck-Integration, Object-Info-Panel) ───────── "objinfo.extrudedSolid.section": "Extrusion", "objinfo.extrudedSolid.height": "Höhe", "objinfo.extrudedSolid.taper": "Verjüngung", "objinfo.extrudedSolid.area": "Grundfläche", "objinfo.extrudedSolid.floor": "Geschoss", "objinfo.rotate": "Drehen", "objinfo.drawing.length": "Länge", "objinfo.drawing.radius": "Radius", "objinfo.wall.floorAboveNone": "Kein oberes Geschoss", "levels.addFloor": "+ Geschoss", "levels.addSection": "+ Schnitt", "levels.addElevation": "+ Ansicht", "levels.addDrawing": "+ Zeichnung", "layers.addCategory": "+ Ebene", // ── Zeichnungsebenen: Kategorie-Titel (einklappbare Gruppen) ───────────── "levelCat.floor": "Geschosse", "levelCat.section": "Schnitte", "levelCat.elevation": "Ansichten", "levelCat.drawing": "2D-Zeichnungen", "levelCat.collapse": "Kategorie ein-/ausklappen", "nav.visibility": "Sichtbarkeit", "nav.hide": "Ausblenden", "nav.show": "Einblenden", "nav.categoryVisible": "{name} sichtbar", "nav.categorySelect": "{name} als aktive Ebene wählen (Zeichen-Ziel)", // ── Badges (Art einer Zeichnungsebene) ─────────────────────────────────── "badge.floor": "Geschoss", "badge.section": "Schnitt", "badge.elevation": "Ansicht", "badge.drawing": "Zeichnung", // ── Darstellungsmodus-Umschalter ───────────────────────────────────────── "display.title": "Darstellungsmodus", "display.all_force": "Alle anzeigen", "display.all": "Ausgewählte", "display.active": "Nur aktive", "display.grey": "Andere grau", "display.grey_locked": "Andere grau & gesperrt", // ── Dock ───────────────────────────────────────────────────────────────── "dock.resize": "Breite anpassen", "dock.dock": "Andocken", "dock.close": "Schließen", "dock.float": "Lösen", "dock.redock": "Andocken", "dock.resizePanel": "Größe ändern", "dock.dropLeft": "Links andocken", "dock.dropRight": "Rechts andocken", // ── Kontextmenü (Einträge) ─────────────────────────────────────────────── "ctx.layerSettings": "Ebeneneinstellungen…", "ctx.addSubLayer": "Sub-Ebene hinzufügen…", "ctx.assignSelection": "Selektion hierher übertragen", "ctx.assignSelection.disabled": "Keine Wand ausgewählt — zuerst im Grundriss/3D eine Wand anklicken.", "ctx.duplicate": "Duplizieren", "ctx.copyProps": "Eigenschaften kopieren", "ctx.pasteProps": "Eigenschaften einfügen", "ctx.pasteProps.disabled": "Zwischenablage leer — zuerst „Eigenschaften kopieren“.", "ctx.delete": "Löschen", "ctx.delete.lastLayer": "Die letzte Ebene kann nicht gelöscht werden.", "ctx.delete.lastLevel": "Die letzte Zeichnungsebene kann nicht gelöscht werden.", "ctx.levelSettings": "Einstellungen…", "ctx.fitSelection": "Auf Auswahl einpassen", "ctx.clearSelection": "Auswahl aufheben", "ctx.fit": "Ansicht einpassen", "ctx.union": "Vereinigen", "ctx.subtract": "Subtrahieren", "ctx.intersect": "Schneiden", "ctx.boolean.disabled": "Mindestens zwei geschlossene Flächen auswählen (Rechteck oder geschlossene Polylinie).", "ctx.arrange.front": "Ganz nach vorn", "ctx.arrange.forward": "Nach vorn", "ctx.arrange.backward": "Nach hinten", "ctx.arrange.back": "Ganz nach hinten", "ctx.arrange.disabled": "Mindestens ein 2D-Element auswählen.", "ctx.noWallHit": "Keine Wand getroffen", "ctx.noWallHit.hint": "Rechtsklick auf eine Wand wählt sie und zeigt Wand-Aktionen.", // Kontextmenü-Titel je Quelle. "ctx.title.level": "Zeichnungsebene", "ctx.title.wall": "Wand", "ctx.title.view": "Ansicht", // ── Inline-Editor (Ebene / Geschoss) ───────────────────────────────────── "editor.close": "Schließen", "editor.layerTitle": "Ebene {code}", "editor.name": "Name", "editor.color": "Farbe", "editor.lineWeight": "Linienstärke", "editor.hatch": "Schraffur", "editor.floorHeight": "Geschosshöhe", "editor.cutHeight": "Schnitthöhe", "editor.unit.mm": "mm", "editor.unit.m": "m", "editor.noHeightDrawing": "Für Zeichnungen gibt es keine Geschoss-/Schnitthöhe.", "editor.noHeightSection": "Für Schnitte/Ansichten gibt es keine Geschoss-/Schnitthöhe.", // ── Hauptinhalt (Panes / Eigenschaften) ────────────────────────────────── "content.perspektiveTitle": "Perspektive · {name}", "content.grundrissTitle": "Grundriss · {name}", "content.grundrissLegend": "Grundriss · {name} · Schnitthöhe {cutHeight}", "content.drawingTitle": "Zeichnung · {name}", "content.drawingCanvas": "Zeichenfläche", "content.drawingLegend": "Freie 2D-Zeichnung", "content.sectionTitle": "{kind} · {name}", "section.loading": "{kind} wird berechnet …", "section.empty": "{kind} — keine Schnittlinie im Grundriss gesetzt", "section.error": "{kind} — Berechnung fehlgeschlagen (render3d-WASM neu bauen?)", "section.legend": "{kind} · abgeleitete Projektion (render3d)", "props.floorHeight": "Geschosshöhe", "props.cutHeight": "Schnitthöhe", "props.okff": "OKFF", "props.okffValue": "+{value} m", // ── Stub (Schnitt / Ansicht) ───────────────────────────────────────────── "stub.section": "Schnitt", "stub.elevation": "Ansicht", "stub.note": "{kind} — abgeleitete Projektion folgt in einer späteren Phase", // ── Default-Namen neuer Elemente ───────────────────────────────────────── "default.floorName": "Geschoss {n}", "default.sectionName": "Schnitt {n}", "default.elevationName": "Ansicht {n}", "default.drawingName": "Zeichnung {n}", "default.categoryName": "Neue Ebene", "default.subCategoryName": "Neue Sub-Ebene", "default.componentName": "Neues Bauteil", "default.hatchName": "Neue Schraffur", "default.lineStyleName": "Neuer Linienstil", "default.hatchNone": "Ohne", "default.copySuffixLevel": "{name} Kopie", "default.copySuffixLayer": "{name} KOPIE", "default.wallTypeSingle": "Wand {thickness} m", "default.ceilingTypeSingle": "Decke {thickness} m", "default.wallTypeName": "Neuer Wandtyp", "default.ceilingTypeName": "Neuer Deckentyp", "default.doorTypeName": "Neuer Türtyp", "default.windowTypeName": "Neuer Fenstertyp", "default.stairTypeName": "Neuer Treppentyp", // ── Warnungen (Lösch-Schutz) ───────────────────────────────────────────── "alert.layerInUse": "Ebene „{code} {name}\" wird von Bauteilen verwendet und kann nicht gelöscht werden.", "alert.componentInUse": "Bauteil „{name}\" wird von einem Wandtyp verwendet und kann nicht gelöscht werden.", "alert.hatchInUse": "Schraffur „{name}\" wird von einem Bauteil verwendet und kann nicht gelöscht werden.", "alert.lineStyleInUse": "Linienstil „{name}\" wird von einer Schraffur verwendet und kann nicht gelöscht werden.", "alert.wallTypeInUse": "Wandtyp „{name}\" wird von einer Wand verwendet und kann nicht gelöscht werden.", "alert.ceilingTypeInUse": "Deckentyp „{name}\" wird von einer Decke verwendet und kann nicht gelöscht werden.", "alert.doorTypeInUse": "Türtyp „{name}\" wird von einer Tür verwendet und kann nicht gelöscht werden.", "alert.windowTypeInUse": "Fenstertyp „{name}\" wird von einem Fenster verwendet und kann nicht gelöscht werden.", "alert.stairTypeInUse": "Treppentyp „{name}\" wird von einer Treppe verwendet und kann nicht gelöscht werden.", // ── Ressourcen-Manager ─────────────────────────────────────────────────── "resources.title": "Ressourcen", "resources.label": "Ressourcen-Manager", "resources.close": "Schließen", "resources.tab.components": "Bauteile", "resources.tab.hatches": "Schraffuren", "resources.tab.lines": "Linien", "resources.tab.wallStyles": "Wandstile", "resources.tab.ceilingStyles": "Deckenstile", "resources.tab.doorStyles": "Türtypen", "resources.tab.windowStyles": "Fenstertypen", "resources.tab.stairStyles": "Treppentypen", "resources.tab.materials": "Materialien", "resources.tab.overrides": "Overrides", // Grafische Overrides (Regel-Engine). "resources.overrides.hint": "Regeln übersteuern Farbe/Strichstärke/Linienstil beim Rendern (Elementdaten bleiben unverändert). Reihenfolge = Priorität: pro Feld gewinnt die oberste aktive Regel.", "resources.overrides.empty": "Noch keine Override-Regeln.", "resources.overrides.placeholder": "Regel", "resources.overrides.defaultName": "Neue Regel", "resources.overrides.delete": "Regel löschen", "resources.overrides.moveUp": "Regel nach oben (höhere Priorität)", "resources.overrides.moveDown": "Regel nach unten (tiefere Priorität)", "resources.overrides.enabled": "Regel aktiv", "resources.overrides.condition": "Bedingung", "resources.overrides.condType": "Kriterium", "resources.overrides.condType.layer": "Ebene (Name/Code)", "resources.overrides.condType.object": "Objektname", "resources.overrides.operator": "Operator", "resources.overrides.op.equals": "ist gleich", "resources.overrides.op.contains": "enthält", "resources.overrides.op.startsWith": "beginnt mit", "resources.overrides.op.notEquals": "ist ungleich", "resources.overrides.value": "Wert", "resources.overrides.value.placeholder": "z. B. Wände oder 20", "resources.overrides.actions": "Aktionen", "resources.overrides.action.color": "Farbe", "resources.overrides.action.lineweight": "Strichstärke (mm)", "resources.overrides.action.linetype": "Linienstil", "resources.overrides.linetype.none": "— (unverändert)", "resources.wallStyles.hint": "Je Wandtyp die Schichtfugen (zwischen benachbarten Schichten) als wählbaren Linienstil. Ohne Zuweisung: Haarlinie 0.02 mm.", "resources.wallStyles.empty": "Noch keine Wandtypen.", "resources.ceilingStyles.hint": "Je Deckentyp (liegender Schichtaufbau, oben → unten) die Schichtfugen als wählbaren Linienstil. Ohne Zuweisung: Haarlinie 0.02 mm.", "resources.ceilingStyles.empty": "Noch keine Deckentypen.", "resources.wallStyles.placeholder": "Wandtyp", "resources.ceilingStyles.placeholder": "Deckentyp", // Bauteil-Typen (Tür/Fenster/Treppe) — Formular-Bibliotheken. "resources.doorTypes.hint": "Wiederverwendbare Türtypen mit Bauart, Blattausführung und Standardmaßen für neu platzierte Türen.", "resources.doorTypes.empty": "Noch keine Türtypen.", "resources.doorTypes.placeholder": "Türtyp", "resources.windowTypes.hint": "Wiederverwendbare Fenstertypen mit Öffnungsart, Verglasung und Standardmaßen für neu platzierte Fenster.", "resources.windowTypes.empty": "Noch keine Fenstertypen.", "resources.windowTypes.placeholder": "Fenstertyp", "resources.stairTypes.hint": "Wiederverwendbare Treppentypen mit Tragart, Stufenausbildung und Geländer für neu platzierte Treppen.", "resources.stairTypes.empty": "Noch keine Treppentypen.", "resources.stairTypes.placeholder": "Treppentyp", "resources.delete.doorType": "Türtyp „{name}\" löschen", "resources.delete.windowType": "Fenstertyp „{name}\" löschen", "resources.delete.stairType": "Treppentyp „{name}\" löschen", "resources.field.doorKind": "Bauart", "resources.field.leafCount": "Flügelzahl", "resources.field.leafStyle": "Blattausführung", "resources.field.glazingRatio": "Glasanteil", "resources.field.frameThickness": "Zargenstärke (m)", "resources.field.frameDepth": "Zargentiefe (m)", "resources.field.defaultWidth": "Lichtbreite (m)", "resources.field.defaultHeight": "Lichthöhe (m)", "resources.field.threshold": "Bodenschwelle", "resources.field.frameKind": "Rahmenart", "resources.field.frameWidth": "Rahmenbreite (m)", "resources.field.insetFromFace": "Schichteinzug (m)", "resources.field.insetFace": "Einzug ab Fläche", "resources.field.transomHeight": "Oberlicht-Höhe (m)", "resources.field.mullionRows": "Kämpfer-Zeilen", "resources.frameKind.zarge": "Zarge", "resources.frameKind.blockrahmen": "Blockrahmen", "resources.insetFace.aussen": "Aussen", "resources.insetFace.innen": "Innen", "resources.field.windowKind": "Öffnungsart", "resources.field.wingCount": "Flügelzahl", "resources.field.glazing": "Verglasung", "resources.field.defaultSillHeight": "Brüstungshöhe (m)", "resources.field.sillBoard": "Fensterbank", "resources.field.structure": "Tragart", "resources.field.closedRisers": "Setzstufen geschlossen", "resources.field.treadThickness": "Trittstufendicke (m)", "resources.field.nosing": "Trittkanten-Überstand (m)", "resources.field.railing": "Geländer", "resources.field.stairWidth": "Laufbreite (m)", "resources.doorKind.dreh": "Drehflügel", "resources.doorKind.schiebe": "Schiebe", "resources.doorKind.wandoeffnung": "Wandöffnung", "resources.leafCount.1": "1-flügelig", "resources.leafCount.2": "2-flügelig", "resources.leafStyle.glatt": "Glatt", "resources.leafStyle.kassette": "Kassette", "resources.leafStyle.glas": "Glas", "resources.windowKind.dreh": "Dreh", "resources.windowKind.kipp": "Kipp", "resources.windowKind.drehkipp": "Dreh-Kipp", "resources.windowKind.fest": "Fest", "resources.windowKind.schiebe": "Schiebe", "resources.glazing.einfach": "Einfach", "resources.glazing.zweifach": "Zweifach", "resources.glazing.dreifach": "Dreifach", "resources.sillBoard.keine": "Keine", "resources.sillBoard.innen": "Innen", "resources.sillBoard.aussen": "Außen", "resources.sillBoard.beide": "Beide", "resources.structure.massiv": "Massiv", "resources.structure.beton": "Betontreppe (Laufplatte)", "resources.structure.wange": "Wange", "resources.structure.aufgesattelt": "Aufgesattelt", "resources.structure.spindel": "Spindel", "resources.railing.keine": "Keine", "resources.railing.links": "Links", "resources.railing.rechts": "Rechts", "resources.railing.beide": "Beide", "resources.col.layer": "Schicht", "resources.col.component": "Bauteil", "resources.col.thickness": "Dicke (mm)", "resources.col.joint": "Fuge", "resources.joint.default": "— (Haarlinie)", "resources.layer.add": "Schicht hinzufügen", "resources.layer.remove": "Schicht entfernen", "resources.layer.moveUp": "Schicht nach oben", "resources.layer.moveDown": "Schicht nach unten", "resources.materials.hint": "Kugel-Vorschau der eingebauten PBR-Materialbibliothek — durchsuchen und vergleichen. Zuweisen an ein Bauteil weiterhin über dessen Spalte „Material …\".", "resources.materials.searchPlaceholder": "Material suchen …", "resources.materials.categoryLabel": "Kategorie", "resources.materials.categoryAll": "Alle", "resources.materials.selected": "Ausgewählt: {name} ({category})", "resources.materials.empty": "Keine Materialien gefunden.", "resources.materials.count": "{shown} von {total} Materialien", "resources.add": "Neu", "resources.import.lin": "⤓ .lin importieren", "resources.import.pat": "⤓ .pat importieren", // Bauteile. "resources.components.hint": "Höhere Priorität läuft am Stoß durch (verschneidet zuerst); niedrigere stößt seitlich an.", "resources.components.empty": "Noch keine Bauteile.", "resources.components.placeholder": "Bauteil", "resources.col.name": "Name", "resources.col.color": "Farbe", "resources.col.abbrev": "Kürzel", "resources.col.abbrev.hint": "Kurz-Code für Wandtyp-Dropdowns (z. B. «BET», «HLZ»)", "resources.col.abbrev.placeholder": "z. B. BET", "resources.col.hatch": "Schnittschraffur", "resources.col.viewHatch": "Ansichtsschraffur", "resources.viewHatch.none": "(keine)", "resources.col.prio": "Prio", "resources.col.prio.hint": "Höhere Priorität läuft am Stoß durch", "resources.col.texture": "Textur", "resources.col.material": "Material", "resources.col.foreground": "Vordergrund", "resources.col.foreground.hint": "Farbe der Muster-/Schraffurlinien (Vordergrund)", "resources.col.background": "Hintergrund", "resources.col.background.hint": "Füllfarbe (Poché/Hintergrund)", "resources.delete.component": "Bauteil „{name}\" löschen", // 3D-Material (PBR) — Bibliotheks-Auswahl + Upload. "material.assign": "Material …", "material.none": "— ohne —", "material.dialog.title": "3D-Material zuweisen", "material.dialog.hint": "Wähle ein eingebautes Material oder lade eigene Texturen hoch. Wirkt im 3D-Modus „Texturiert\".", "material.library": "Bibliothek (ambientCG, CC0)", "material.upload": "Eigene Texturen", "material.upload.hint": "Lade Bilder als Karten hoch (mindestens Farbe). Größe = physische Kachelgröße in Metern.", "material.upload.color": "Farbe (Albedo)", "material.upload.normal": "Normal", "material.upload.roughness": "Rauheit", "material.upload.displacement": "Höhe", "material.upload.ao": "AO", "material.upload.choose": "Bild …", "material.upload.apply": "Zuweisen", "material.size": "Kachelgröße (m)", "material.current": "Aktuell", "material.clear": "Material entfernen", "material.close": "Schließen", "material.uploaded": "Hochgeladen", // ── ambientCG-Bibliothek durchsuchen (Live) ────────────────────────────── "material.browse": "Bibliothek durchsuchen", "material.browse.starter": "Schnellauswahl", "material.browse.hint": "Durchsuche die komplette CC0-Bibliothek von ambientCG (~2000+ Materialien). Ein Klick lädt die Texturen zur Laufzeit herunter und weist sie zu.", "material.browse.search": "Suchen …", "material.browse.searchPlaceholder": "z. B. Holz, Beton, Fliesen …", "material.browse.category.all": "Alle Kategorien", "material.browse.resolution": "Auflösung", "material.browse.more": "Mehr laden", "material.browse.loading": "Lädt …", "material.browse.downloading": "Textur wird geladen …", "material.browse.empty": "Keine Materialien gefunden.", "material.browse.count": "{shown} von {total}", "material.browse.error": "Bibliothek nicht erreichbar. Zur Laufzeit ist ein Proxy für ambientCG nötig (Dev: Vite-Proxy aktiv; Prod: VITE_AMBIENTCG_PROXY setzen).", "material.browse.downloadError": "Download fehlgeschlagen (CORS/Proxy prüfen).", // Schraffuren. "resources.hatches.hint": "Muster, Maßstab und Winkel steuern die Schnitt-Schraffur; der Linienstil bestimmt die Stärke der Musterlinien.", "resources.hatches.empty": "Noch keine Schraffuren.", "resources.hatches.placeholder": "Schraffur", "resources.col.pattern": "Muster", "resources.col.scale": "Maßstab", "resources.col.angle": "Winkel °", "resources.col.relativeToWall": "Wandbezug", "resources.col.relativeToWall.hint": "Winkel relativ zur Wandachse — das Muster dreht mit der Wand mit", "resources.col.lineStyle": "Linienstil", "resources.lineStyle.none": "— ohne —", "resources.delete.hatch": "Schraffur „{name}\" löschen", "resources.delete.wallType": "Wandtyp „{name}\" löschen", "resources.delete.ceilingType": "Deckentyp „{name}\" löschen", // Schraffur-/Linien-Typ (Master-Detail-Editor). "resources.field.type": "Typ", "resources.field.lines": "Striche", "resources.field.image": "Bild", "resources.field.scaleX": "Skalierung X", "resources.field.scaleY": "Skalierung Y", "resources.field.rotation": "Rotation °", "resources.field.amplitude": "Amplitude", "resources.field.wavelength": "Wellenlänge", "resources.field.density": "Dichte", "resources.field.lengthMin": "Länge min (mm)", "resources.field.lengthMax": "Länge max (mm)", "resources.random.reroll": "Neu würfeln", "resources.stroke.solid": "Vollinie", "resources.stroke.dash": "Strich", "resources.dash.segments": "Segmente", "resources.dash.hint": "Geordnete, loopende Folge aus Strich/Punkt/Lücke (mm). Die letzte Lücke ist der Abstand zum nächsten Loop.", "resources.dash.add": "Segment", "resources.dash.remove": "Segment entfernen", "resources.linePreset.label": "Muster", "resources.linePreset.solid": "Vollinie", "resources.linePreset.dash": "Strichlinie", "resources.linePreset.dot": "Punktlinie", "resources.linePreset.dashDot": "Strich-Punkt", "resources.seg.dash": "Strich", "resources.seg.dot": "Punkt", "resources.seg.gap": "Lücke", "resources.seg.addDash": "+ Strich", "resources.seg.addDot": "+ Punkt", "resources.seg.addGap": "+ Lücke", "resources.hatchKind.vector": "Vektor", "resources.hatchKind.image": "Bild", "resources.lines.parallel": "Parallel", "resources.lines.random": "Zufällig", "resources.lineKind.dash": "Strich", "resources.lineKind.zigzag": "Zickzack", "resources.lineKind.custom": "Motiv", "resources.field.motif": "Motiv", "resources.motif.length": "Länge (mm)", "resources.motif.hint": "Klick = Punkt setzen · Ziehen = verschieben · Doppelklick = entfernen. Das Motiv wiederholt sich entlang der Linie.", // Schraffur-Muster. "pattern.none": "Ohne", "pattern.solid": "Vollfläche", "pattern.insulation": "Wärmedämmung", "pattern.diagonal": "Diagonal", "pattern.crosshatch": "Kreuzschraffur", // Linien. "resources.lines.hint": "Strichstärke in Millimetern (Paper-Space). Strichmuster: durchgezogen, gestrichelt oder gepunktet.", "resources.lines.empty": "Noch keine Linienstile.", "resources.lines.placeholder": "Linienstil", "resources.col.weight": "Stärke (mm)", "resources.col.stroke": "Strich", "resources.col.preview": "Vorschau", "resources.delete.lineStyle": "Linienstil „{name}\" löschen", "resources.texture.empty": "—", // Strichmuster. "dash.solid": "Durchgezogen", "dash.dashed": "Gestrichelt", "dash.dotted": "Gepunktet", // ── Command-Line / Befehle (Rhino-artiges Befehlssystem) ────────────────── "cmd.aria": "Befehlszeile", "cmd.idle.prompt": "Befehl:", "cmd.idle.placeholder": "Befehl eingeben … (Tab)", "cmd.wall.label": "Wand", "cmd.wall.start": "Startpunkt der Wand:", "cmd.wall.next": "Nächster Punkt:", "cmd.ceiling.label": "Decke", "cmd.ceiling.start": "Erster Umrisspunkt der Decke:", "cmd.ceiling.next": "Nächster Punkt ( Schliessen ):", "cmd.roof.label": "Dach", "cmd.roof.start": "Erste Dachecke:", "cmd.roof.corner": "Gegenecke:", "cmd.roof.shape.sattel": "Satteldach", "cmd.roof.shape.walm": "Walmdach", "cmd.roof.shape.pult": "Pultdach", "cmd.roof.shape.mansarde": "Mansarddach", "cmd.roof.shape.zelt": "Zeltdach", "cmd.roof.shape.flach": "Flachdach", "cmd.opening.label": "Öffnung", "cmd.opening.windowLabel": "Fenster", "cmd.opening.doorLabel": "Tür", "cmd.opening.wall": "Wand für die Öffnung wählen:", "cmd.opening.pos": "Position entlang der Wand ( Abstand tippen ):", "cmd.opening.kind": "Art", "cmd.opening.hinge": "Anschlag", "cmd.opening.side": "Seite", "cmd.opening.dir": "Richtung", "cmd.opening.sillField": "Brüstung", "cmd.opening.swingField": "Winkel", "cmd.column.label": "Stütze", "cmd.column.place": "Stütze setzen:", "cmd.column.profile": "Profil", "cmd.stair.label": "Treppe", "cmd.stair.start": "Startpunkt der Treppe:", "cmd.stair.run": "Laufrichtung / Ende ( Grundform · Auf/Ab ):", "cmd.stair.shape": "Grundform", "cmd.stair.updown": "Auf/Ab", "cmd.stair.stepsField": "Stufen", "cmd.stair.riseField": "Steighöhe", "cmd.stair.referenz": "Referenz", "cmd.stair.treadMode": "Trittmass", "cmd.stair.auftrittField": "Auftritt", "cmd.line.label": "Linie", "cmd.line.start": "Startpunkt der Linie:", "cmd.line.end": "Endpunkt der Linie:", "cmd.polyline.label": "Polylinie", "cmd.polyline.start": "Startpunkt:", "cmd.polyline.next": "Nächster Punkt:", "cmd.polyline.close": "Schliessen", "cmd.polyline.undo": "Zurück", "cmd.polyline.closedOpt": "Geschlossen", "cmd.rect.label": "Rechteck", "cmd.rect.first": "Erste Ecke:", "cmd.rect.second": "Gegenüberliegende Ecke:", "cmd.rect.method": "Methode", "cmd.rect.center": "Mittelpunkt:", "cmd.rect.corner": "Ecke:", "cmd.rect.baseEnd": "Zweite Ecke (Basiskante):", "cmd.rect.rise": "Höhe:", "cmd.circle.label": "Kreis", "cmd.circle.center": "Mittelpunkt:", "cmd.circle.radius": "Radius:", "cmd.arc.label": "Bogen", "cmd.arc.center": "Mittelpunkt:", "cmd.arc.start": "Startpunkt (Radius + Startwinkel):", "cmd.arc.end": "Endpunkt (Endwinkel):", "cmd.text.label": "Text", "cmd.text.point": "Ankerpunkt:", "cmd.text.enter": "Text eingeben:", "cmd.textbox.label": "Textspalte", "cmd.textbox.point": "Ankerpunkt:", "cmd.textbox.width": "Spaltenbreite (zweiter Punkt):", "cmd.textbox.enter": "Text eingeben:", // Editierbefehle (Tier 1): Move/Copy/Offset operieren auf der Auswahl. "cmd.move.label": "Verschieben", "cmd.move.base": "Basispunkt:", "cmd.move.target": "Zielpunkt:", "cmd.move.empty": "Nichts gewählt (erst Objekte wählen).", "cmd.rotate.label": "Drehen", "cmd.measure.label": "Messen", "cmd.measure.start": "Messen von:", "cmd.measure.to": "bis (Distanz · Winkel):", "cmd.measure.next": "nächster Punkt (Rechtsklick = neuer Pfad):", "objinfo.measure.title": "Messung", "objinfo.measure.segment": "Segment", "objinfo.measure.total": "Länge gesamt", "objinfo.measure.area": "Fläche", "objinfo.measure.angle": "Winkel", "objinfo.measure.hint": "Klick = Punkt · Rechtsklick = neuer Pfad · Esc = Ende", "transform.needSelection": "Erst Objekte wählen, dann drehen.", "cmd.mirror.label": "Spiegeln", "cmd.mirror.first": "Erster Punkt der Spiegelachse:", "cmd.mirror.second": "Zweiter Punkt der Spiegelachse:", "cmd.mirror.empty": "Nichts gewählt (erst Objekte wählen).", "cmd.join.prompt": "Verbinde gewählte Elemente …", "cmd.copy.label": "Kopieren", "cmd.copy.base": "Basispunkt:", "cmd.copy.target": "Zielpunkt (Enter beendet):", "cmd.copy.empty": "Nichts gewählt (erst Objekte wählen).", "cmd.offset.label": "Versatz", "cmd.offset.pick": "Kurve wählen:", "cmd.offset.side": "Seite oder Distanz:", "cmd.extrude.label": "Extrudieren", "cmd.extrude.pick": "Geschlossenes Profil wählen:", "cmd.extrude.height": "Höhe:", "cmd.extrude.taper": "Verjüngung (0–1, 1=Spitze):", // Trim (Quick-Trim): auf den wegzuschneidenden Abschnitt klicken; wiederholend. "cmd.trim.label": "Stutzen", "cmd.trim.pick": "Abschnitt zum Wegschneiden anklicken (Esc beendet):", // Editier-Werkzeuge Split / Join / Segment-Löschen (Tastatur: Ctrl+S / Ctrl+J / // Alt+Klick). Labels für Befehlsleiste/Menüs. "edit.split.label": "Teilen", "edit.join.label": "Verbinden", "edit.cutSegment.label": "Segment löschen", // Tab-Feld-Zyklus (Präzisionseingabe): geordnete Zahlenfelder je Schritt. "cmd.field.length": "Länge", "cmd.field.angle": "Winkel", "cmd.field.width": "Breite", "cmd.field.height": "Höhe", "cmd.field.radius": "Radius", "cmd.field.distance": "Distanz", "cmd.field.thickness": "Dicke", "cmd.edit.point": "Griff ziehen (Tab: Länge/Winkel):", // ── Befehle: Import / Gelände ──────────────────────────────────────────── "cmd.import.label": "Importieren", "cmd.import.prompt": "DXF-Datei wählen …", "cmd.terrain.label": "Gelände", "cmd.terrain.prompt": "Gelände aus Konturen erzeugen …", // ── Flächenbilanz (SIA 416) ────────────────────────────────────────────── "nav.roomBalance": "Flächenbilanz", "balance.title": "Flächenbilanz (SIA 416)", "balance.rooms": "Räume", "balance.summary": "Bilanz", "balance.export": "CSV exportieren", "balance.empty": "Keine Räume vorhanden. Mit dem Raum-Werkzeug erstellen.", // ── Raum-Stempel-Editor ────────────────────────────────────────────────── "room.stamp.editTitle": "Raum-Stempel bearbeiten", "room.stamp.close": "Schliessen", // ── Site-/Kontext-Panel (SitePanel) ────────────────────────────────────── "nav.site": "Gelände", "site.title": "Gelände & Kontext", "site.import": "⤓ DXF importieren", "site.generateTerrain": "Gelände erzeugen", "site.contourSet": "Kontur-Satz", "site.empty": "Kein Kontext geladen. Importiere eine DXF-Datei (Höhenlinien oder Mesh).", "site.delete": "Entfernen", "site.type.mesh": "Mesh", "site.type.contours": "Konturen", "site.type.terrain": "Gelände", "site.dwgHint": "DWG? Zuerst mit dem gratis ODA File Converter in DXF umwandeln.", "site.terrainFailed": "Kein Gelände erzeugbar (zu wenige/kollineare Konturpunkte).", // ── Import-Dialog (ImportDialog) ───────────────────────────────────────── "import.title": "DXF importieren", "import.close": "Schließen", "import.file": "Datei", "import.summary.heading": "Inhalt", "import.summary.contours": "{n} Konturen", "import.summary.texts": "{n} Texte", "import.summary.meshes": "{n} Meshes", "import.summary.layers": "Layer: {layers}", "import.summary.noLayers": "keine Layer-Namen", "import.summary.empty": "Keine importierbare 2D-Geometrie gefunden.", "import.target.heading": "Ziel-Zeichnungsebene", "import.target.existing": "In bestehende Zeichnungsebene importieren", "import.target.new": "Neue Zeichnung anlegen", "import.target.newNamePlaceholder": "Name der neuen Zeichnung", "import.layers.heading": "Ebenen-Handling (DXF-Layer)", "import.layers.asCategories": "DXF-Layer als Kategorien übernehmen", "import.layers.toActive": "Alles auf die aktive Kategorie ({code})", "import.placement.heading": "Platzierung", "import.placement.origin": "An DXF-Koordinaten (relativ zum Nullpunkt)", "import.placement.viewCenter": "In die Mitte der aktuellen Ansicht", "import.mesh.heading": "Meshes", "import.mesh.asContext": "Meshes als Kontext-Geometrie (3D) importieren", "import.mesh.note": "Meshes sind keine 2D-Zeichnung — sie landen in der Kontext-Schicht.", "import.dwg.heading": "DWG-Datei", "import.dwg.loading": "DWG wird gelesen …", "import.dwg.hint": "DWG konnte nicht gelesen werden. Wandle die Datei alternativ mit dem gratis ODA File Converter in DXF um und importiere die DXF-Datei.", "import.confirm": "Importieren", "import.cancel": "Abbrechen", "import.badge.floor": "Geschoss", "import.badge.section": "Schnitt", "import.badge.elevation": "Ansicht", "import.badge.drawing": "Zeichnung", // ── PDF-Export ─────────────────────────────────────────────────────────── "export.title": "PDF exportieren", "export.close": "Schließen", "export.plan": "Plan", "export.scale": "Massstab", "export.paper": "Papierformat", "export.orientation": "Ausrichtung", "export.orientation.portrait": "Hochformat", "export.orientation.landscape": "Querformat", "export.warnFit": "Der Plan passt im gewählten Massstab nicht ganz auf das Blatt — größeres Format oder kleineren Massstab wählen.", "export.confirm": "Exportieren", "export.cancel": "Abbrechen", // ── DXF-Export ─────────────────────────────────────────────────────────── "exportDxf.title": "DXF exportieren", "exportDxf.hatches": "Schraffuren", "exportDxf.hatches.yes": "Mitexportieren", "exportDxf.hatches.no": "Nur Umrisse", "exportDxf.unitsNote": "Modell-Space in Metern (1:1). Layer entsprechen den Ebenen des Projekts; beim Plot beliebig skalierbar.", // ── Datei-Menü (Burger, ganz rechts der Oberleiste) ────────────────────── "file.menu": "Datei", "file.save": "Projekt speichern", "file.open": "Projekt öffnen", "file.import": "DXF/DWG importieren…", "file.exportPdf": "Als PDF exportieren…", "file.exportDxf": "Als DXF exportieren…", "file.exportSchedule": "Bauteilliste (CSV)…", "file.exportIfc": "IFC exportieren", "file.exportObj": "OBJ exportieren (3D-Mesh)", "file.exportStl": "STL exportieren (3D-Mesh)", "file.export": "Exportieren", "file.openFailed": "Projekt-Datei konnte nicht gelesen werden.", // ── Lock-Konflikt (Projektdatei bereits in anderer Instanz geöffnet) ──── "lock.title": "Projekt bereits geöffnet", "lock.message": "Diese Projektdatei ist bereits in einer anderen Instanz geöffnet.", "lock.messageInfo": "Geöffnet auf {host} (Prozess {pid}).", "lock.openReadOnly": "Schreibgeschützt öffnen", "lock.forceOpen": "Trotzdem erzwingen", "lock.forceOpenWarning": "Achtung: Öffnet zum Schreiben, obwohl eine andere Instanz die Datei hält — Änderungen können sich gegenseitig überschreiben.", "exportSave.title": "Exportieren", "exportSave.format": "Format", "exportSave.filename": "Dateiname", "exportSave.locationNote": "Wird in den Standard-Download-Ordner gespeichert.", "exportSave.fmt.csv": "Bauteilliste (CSV)", "exportSave.fmt.ifc": "IFC (BIM)", "exportSave.fmt.obj": "OBJ (3D-Mesh)", "exportSave.fmt.stl": "STL (3D-Mesh)", "about.title": "Über dossier", "about.version": "Version", "about.desc": "Open-Source-CAAD (Computer Aided Architecture Design) — schöne, normgerechte Pläne aus einem semantischen Gebäudemodell. Als Desktop-App (vollständige Fassung) und im Browser zugänglich.", "about.copyright": "© 2026 Karim Gabriele Varano", "about.license": "Lizenz: AGPL-3.0-or-later", "about.suite": "Teil der openbureau-Suite", "about.licenses": "Open-Source-Lizenzen (Drittkomponenten)", "about.close": "Schließen", // ── Einstellungs-Fenster ────────────────────────────────────────────────── "topbar.settings": "Einstellungen", "topbar.settings.hint": "Einstellungen öffnen (Darstellungsfarben, Projekt)", "settings.title": "Einstellungen", "settings.section.workspace": "Arbeitsumgebung", "settings.section.display": "Darstellung", "settings.marqueeColor": "Auswahlrahmen-Farbe", "settings.marqueeColor.hint": "Farbe des Auswahlrahmens beim Aufziehen einer Auswahl (Marquee) im Grundriss.", "settings.snapColor": "Snap-/Endpunkt-Farbe", "settings.snapColor.hint": "Farbe der Snap-/Endpunkt-Hervorhebung beim Zeichnen/Editieren im Grundriss.", "settings.section.project": "Projekt", "settings.referenceElevation": "Referenzhöhe EG (m ü. M.)", "settings.referenceElevation.hint": "Nur gespeichert — wird noch nicht verwendet. Folgt für Terrain-Draping/reale Höhen relativ zum Erdgeschoss.", // ── Drag & Drop (App-weiter Datei-Drop) ────────────────────────────────── "drop.hint": "DXF/DWG-Datei hier ablegen", // ── Fehler-Boundary ────────────────────────────────────────────────────── "error.console": "Unerwarteter Fehler:", "error.title": "Etwas ist schiefgelaufen", "error.body": "Ein unerwarteter Fehler ist aufgetreten. Details in der Konsole.", "error.reload": "Neu laden", // ── Standort-Import (geo.admin / OSM) ───────────────────────────────────── "site.importLocation": "Standort importieren", "ctxImport.title": "Standort importieren", "ctxImport.close": "Schließen", "ctxImport.location": "Ort / Adresse", "ctxImport.searchPlaceholder": "z. B. Bundesplatz Bern", "ctxImport.search": "Suchen", "ctxImport.searching": "Suche…", "ctxImport.noResults": "Keine Treffer.", "ctxImport.searchError": "Suche fehlgeschlagen.", "ctxImport.radius": "Radius", "ctxImport.sources": "Quellen", "ctxImport.src.swissBuildings": "Swisstopo-Gebäude", "ctxImport.src.swissTerrain": "Swisstopo-Gelände", "ctxImport.src.osmBuildings": "OSM-Gebäude", "ctxImport.src.osmRoads": "OSM-Strassen", "ctxImport.src.osmWater": "OSM-Wasser", "ctxImport.src.osmGreen": "OSM-Grün", "ctxImport.src.osmParking": "OSM-Parkplätze", "ctxImport.src.osmRailway": "OSM-Bahn", "ctxImport.src.osmForest": "OSM-Wald", "ctxImport.cancel": "Abbrechen", "ctxImport.confirm": "Importieren", "ctxImport.importing": "Importiere…", "ctxImport.working": "Lade Geodaten…", "ctxImport.empty": "Keine Geometrie im gewählten Bereich gefunden.", "ctxImport.importError": "Import fehlgeschlagen.", "ctxImport.imported": "{count} Objekte in {sets} Sätzen importiert.", // ── Raum-Befehl ───────────────────────────────────────────────────────────── "cmd.room.label": "Raum", "cmd.room.mode": "Modus", "cmd.room.inside": "Klick in Raum setzen:", "cmd.room.first": "Ersten Raumpunkt setzen:", "cmd.room.next": "Nächsten Punkt setzen ( Enter/Start schließt ):", // ── Text-Gruppe (Oberleiste) ───────────────────────────────────────────── "text.group": "Text", "text.style": "Stil", "text.style.none": "— Stil —", "text.font": "Schrift", "text.size": "Grösse", "text.size.custom": "Eigene …", "text.size.customPrompt": "Schriftgrösse in pt:", "text.bold": "Fett", "text.italic": "Kursiv", "text.underline": "Unterstrichen", "text.align.left": "Linksbündig", "text.align.center": "Zentriert", "text.align.right": "Rechtsbündig", "text.lineHeight": "Zeilenhöhe", "text.lineHeight.hint": "Zeilenhöhe (Vielfaches der Schriftgrösse)", "text.lineHeight.increase": "Zeilenhöhe erhöhen", "text.lineHeight.decrease": "Zeilenhöhe verringern", "text.editTitle": "Text bearbeiten", "text.apply": "Übernehmen", "text.cancel": "Abbrechen", "roomStamp.title": "Raumstempel bearbeiten", "roomStamp.number": "Raumnummer", "roomStamp.name": "Raumname", "roomStamp.nameLine2": "Raumname Zeile 2", "roomStamp.showFloorArea": "Bodenfläche anzeigen", "roomStamp.floorAreaPrefix": "Präfix Bodenfläche", "roomStamp.showUsage": "Nutzung anzeigen", "roomStamp.roundingStep": "Flächen-Rundung", "roomStamp.roundingStepDefault": "Standard (2 Nachkommastellen)", "roomStamp.occupancy": "Personenzahl", "text.selectedHint": "Formatierung wirkt auf den ausgewählten Text", // ── Rich-Text-Editor ──────────────────────────────────────────────────────── "rt.bold": "Fett", "rt.italic": "Kursiv", "rt.underline": "Unterstrichen", "rt.strike": "Durchgestrichen", "rt.strikethrough": "Durchgestrichen", "rt.super": "Hochgestellt", "rt.sub": "Tiefgestellt", "rt.fontSize": "Schriftgrösse", "rt.color": "Farbe", "rt.preset": "Vorlage", "rt.preset.none": "— Vorlage —", // ── 3D-Viewport (native Engine, WASM/WebGPU) ──────────────────────────────── "viewport3d.engineUnavailable": "3D-Engine nicht verfügbar", "viewport3d.engineUnavailableHint": "WebGPU konnte nicht initialisiert werden. In der Statusleiste auf WebGL2 umschalten, um die 3D-Ansicht weiter zu nutzen.", "viewport3d.grid.show": "Bodenraster einblenden", "viewport3d.grid.hide": "Bodenraster ausblenden", "viewport3d.section.label": "Schnittebene", "viewport3d.section.show": "Schnittebene ein", "viewport3d.section.hide": "Schnittebene aus", "viewport3d.grip.vertex": "Wandende ziehen", "viewport3d.grip.height": "Höhe ziehen", "viewport3d.grip.move": "Verschieben", "viewport3d.grip.edge": "Kante ziehen", "viewport3d.grip.roofpitch": "Dachneigung ziehen", // ── Element-Baum (Elemente-Panel, ROADMAP §11) ────────────────────────────── "elements.title": "Elemente", "elements.search": "Elemente suchen…", "elements.empty": "Keine Bauteile im Projekt.", "elements.noMatch": "Keine Treffer.", "elements.kind.wall": "Wand", "elements.kind.ceiling": "Decke", "elements.kind.window": "Fenster", "elements.kind.opening": "Öffnung", "elements.kind.stair": "Treppe", "elements.kind.extrusion": "Extrusion", // Ausschnitte / View-Snapshots (DOSSIER A2). "viewsnap.title": "Ausschnitte", "viewsnap.saveCurrent": "+ Aktuellen Ausschnitt speichern …", "viewsnap.savePrompt": "Ausschnitt speichern als:", "viewsnap.renamePrompt": "Ausschnitt umbenennen:", "viewsnap.rename": "Umbenennen", "viewsnap.delete": "Löschen", "viewsnap.deleteConfirm": "Ausschnitt „{name}\" löschen?", "viewsnap.empty": "Noch keine Ausschnitte. Ansicht einrichten und speichern.", "viewsnap.applyHint": "Ausschnitt „{name}\" wiederherstellen", "viewsnap.add.folder": "Ordner erstellen", "viewsnap.add.snapshot": "Ausschnitt speichern", "viewsnap.folder.defaultName": "Neuer Ordner", "viewsnap.folder.rename": "Ordner umbenennen", "viewsnap.folder.delete": "Ordner löschen", "viewsnap.folder.empty": "Leerer Ordner", "viewsnap.tree.empty": "Noch keine Ordner oder Ausschnitte. Über „+\" anlegen.", "viewsnap.footer.scale": "Massstab", "viewsnap.footer.layerCombo": "Ebenenkombi", "viewsnap.footer.drawingCombo": "Zeichnungskombi", "viewsnap.footer.overrides": "Overrides", "viewsnap.footer.none": "—", // Layout-Blätter mit Masterlayout (DOSSIER A3). "layouts.panelTitle": "Mappe", "layouts.title": "Layouts", "layouts.new": "Anlegen", "layouts.namePlaceholder": "Blattname …", "layouts.defaultName": "Neues Layout", "layouts.rename": "Umbenennen", "layouts.delete": "Löschen", "layouts.renamePrompt": "Umbenennen:", "layouts.deleteConfirm": "„{name}\" löschen?", "layouts.openHint": "Layout „{name}\" öffnen", "layouts.empty": "Noch keine Layouts. Blatt anlegen und öffnen.", "layouts.paper": "Papierformat", "layouts.orientation": "Ausrichtung", "layouts.portrait": "Hoch", "layouts.landscape": "Quer", "layouts.border": "Rahmen", "layouts.masters": "Masterlayouts", "layouts.newMaster": "+ Master", "layouts.newMasterPrompt": "Neues Masterlayout:", "layouts.defaultMasterName": "Master", "layouts.noMasters": "Noch keine Masterlayouts.", "layouts.master": "Master", "layouts.noMaster": "Kein Master", "layouts.tb.projectName": "Projekt", "layouts.tb.sheetName": "Blattname", "layouts.tb.scale": "Massstab", "layouts.tb.date": "Datum", "layouts.tb.author": "Bearbeiter", "layouts.tb.autoPlaceholder": "(automatisch)", // Editor "layouts.editorTitle": "Layout-Editor", "layouts.fit": "Einpassen", "layouts.addViewport": "Viewport hinzufügen", "layouts.pickSnapshot": "Ausschnitt wählen …", "layouts.noSnapshots": "Keine Ausschnitte vorhanden. Zuerst einen Ausschnitt speichern.", "layouts.viewportProps": "Viewport-Eigenschaften", "layouts.noViewports": "Noch keine Viewports. Ausschnitt wählen und hinzufügen.", "layouts.selectViewport": "Viewport auf dem Blatt anklicken.", "layouts.missingSnapshot": "Ausschnitt fehlt", "layouts.xMm": "X (mm)", "layouts.yMm": "Y (mm)", "layouts.widthMm": "Breite (mm)", "layouts.heightMm": "Höhe (mm)", "layouts.scale": "Massstab", "layouts.scaleReset": "Massstab vom Ausschnitt", "layouts.removeViewport": "Viewport entfernen", "layouts.backToModel": "Zurück zum Modell", "layouts.placeViewport": "Viewport aufziehen", "layouts.placeHint": "Rechteck auf dem Blatt aufziehen, dann Ausschnitt binden.", "layouts.bindSnapshot": "Ausschnitt binden", "layouts.emptyViewports": "Noch keine Viewports. „Viewport aufziehen\" wählen und ein Rechteck auf dem Blatt ziehen.", // Annotationen (Linie/Rechteck/Text) direkt auf dem Blatt "layouts.annotLine": "Linie zeichnen", "layouts.annotRect": "Rechteck zeichnen", "layouts.annotText": "Text setzen", "layouts.annotTextTitle": "Text", "layouts.annotTextLabel": "Textinhalt:", "layouts.annotEditText": "Text ändern", "layouts.annotColor": "Farbe", "layouts.annotWeight": "Strichstärke (mm)", "layouts.annotRemove": "Annotation entfernen", "layouts.annot.line": "Linie", "layouts.annot.rect": "Rechteck", "layouts.annot.text": "Text", // Baum / „+"-Menü / Ordner "layouts.add": "Neu …", "layouts.addFolder": "Ordner erstellen", "layouts.addLayout": "Layout erstellen", "layouts.addMaster": "Masterlayout erstellen", "layouts.add.folder": "Ordner erstellen", "layouts.add.layout": "Layout erstellen", "layouts.add.master": "Masterlayout erstellen", "layouts.folder.defaultName": "Neuer Ordner", "layouts.folder.rename": "Ordner umbenennen", "layouts.folder.delete": "Ordner löschen", "layouts.folder.export": "Ordner als PDF exportieren", "layouts.folder.empty": "Leerer Ordner", "layouts.folder.exportEmpty": "Ordner enthält keine Layouts.", "layouts.tree.empty": "Noch keine Ordner oder Layouts. Über „+\" anlegen.", // Dialog „Neues Layout" "layouts.newLayout.title": "Neues Layout", "layouts.newLayout.source": "Vorlage", "layouts.newLayout.fromMaster": "Masterlayout als Vorlage", "layouts.newLayout.freeSize": "Freie Grösse", "layouts.newLayout.pickMaster": "Masterlayout wählen …", "layouts.newLayout.noMasters": "Keine Masterlayouts vorhanden.", // Dialog „Neues Masterlayout" "layouts.newMaster.title": "Neues Masterlayout", // Gemeinsame Grössen-Auswahl (beide Dialoge) "layouts.size.format": "Format", "layouts.size.custom": "Freie Grösse", "layouts.size.a4": "A4", "layouts.size.a3": "A3", "layouts.paperGroup.a": "A-Reihe", "layouts.paperGroup.b": "B-Reihe", "layouts.size.widthMm": "Breite (mm)", "layouts.size.heightMm": "Höhe (mm)", "layouts.size.create": "Erstellen", } as const; export type TranslationKey = keyof typeof de;