Files
DOSSIER-STANDALONE/src/i18n/de.ts
T
karim d81d7d7353 Dach-3D-Griffe: Eckpunkt-Resize + Verschieben + First-Griff für Neigung
Gewählte Dächer bekommen im wgpu-Viewport Ziehgriffe wie Wände/Decken:
Eckpunkte (achsparalleles Resize, Gegenecke fix), Verschiebe-Griff im
Schwerpunkt und ein First-Griff am höchsten Dachpunkt — vertikales Ziehen
rechnet aus der neuen First-Höhe die Dachneigung (behält die Firstlage).

- projectSlice: moveRoofGrip/moveRoofBy (coalescing pro Dach)
- Wasm3DViewport: roofpitch-Griff (Render + vertikaler Drag auf Apex-Achse)
- App: edit3dRoofs + roofId-Routing in onEdit3dVertex/Body + onEdit3dRoofPitch
- Viewport3D: editRoofs/onEditRoofPitch durchgereicht
- Tests: roofGrips.test.ts (Resize/Verschieben/Coalescing)
2026-07-10 01:02:47 +02:00

1385 lines
65 KiB
TypeScript
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.
// 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;