Files
dxfmakros/lang/de_DE.json
T
s.ayadi 45044cdcba Add TRO marker editing to SSG_LIB
The TRO markers written by sps_skel (lib/tro_annotate.py) are blocks
TRO_SYM_<type> carrying ID and TYPE as attributes. This wires them into the
existing SSG_LIB mechanisms rather than adding new ones.

The double-click hook and the EATTEDIT override already exist: ***DOUBLECLICK
routes [INSERT] to SSG_BLOCKEDIT, and c:EATTEDIT is undefined and forwarded to
the same dispatcher. So all that was missing was a branch:

  Blockname TRO_*  ->  c:TRO_EDIT (Lisp/Tro_Edit.lsp)  ->  dcl/tro_edit.dcl

Tro_Edit.lsp follows the conventions of the other edit commands: DCL path from
DXFM_DCL, ssg-start/ssg-end around the command, ssg-attrib-read and
ssg-attrib-set-on for the attributes, all user-visible text via ssg-text/
ssg-textf with keys in lang/de_DE.json and en_GB.json. Implied selection is read
before ssg-start, since ssg-start clears it - the same note Gefaellestrecke.lsp
carries.

TYPE is a picklist rather than free text so it cannot drift from the type
catalogue. The list comes from Lisp/tro_types.lsp, generated on the sps_skel side
by "tro_annotate.py --emit-lisp" into DXFM_LISP. If that file is absent the
dialog offers the block's current type and still works.

Loading is lazy: the module is not preloaded in the MNL. The menu macros and the
dispatcher pull it with (ssg-ensure "Tro_Edit") on first use, and the dispatcher
falls back to native EATTEDIT if the module cannot be found. ssg_load.lsp loads
it for the non-menu path.

Menu: SSG_LIB > TRO with "Marker bearbeiten" and "Bearbeiten (Auto)", plus an
entry in the POP501 edit context menu.

The dialog changes attributes only. The marker shape belongs to the block
definition of the type and FB_BLOCK is derived from it, so both follow on the next
tro_annotate.py run; the dialog states this and the command prints a reminder when
the type was changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 15:41:06 +02:00

665 lines
47 KiB
JSON

{
"texts": {
"omni-alle-winkel": "alle Winkel",
"omni-grad": " Grad",
"omni-bogen-keine-gefunden": "Keine Boegen fuer %1%2 gefunden.",
"omni-weiche-keine-gefunden": "Keine Weichen fuer %1%2 gefunden.",
"vfc-ursprung": "Ursprung",
"vfc-block-eingefuegt-xyzref-ksaus": "\n '%1' eingefuegt (XY:%2 Z:%3)\n KS_AUS: X=%4 Y=%5 Z=%6",
"vfl-ja": "\n 1 - Ja",
"vfl-nein": "\n 2 - Nein",
"vfl-sep-vor-frage": "\n\nZusaetzlichen Separator VOR dem horizontalen Stueck?",
"vfl-sep-nach-frage": "\n\nZusaetzlichen Separator NACH dem horizontalen Stueck?",
"vfl-sep-an-stelle-frage": "\n\nZusaetzlichen Separator an dieser Stelle einfuegen?",
"vf-winkel-aus-header": "\n\nAUS-Element (AS_Element) - Winkel waehlen:",
"vf-winkel-ein-header": "\n\nEIN-Element (ES_Element) - Winkel waehlen:",
"vf-winkel-90": "\n 1 - 90 Grad",
"vf-winkel-30": "\n 2 - 30 Grad",
"vfl-gf-bogen-winkel-header": "\n\nGF-Bogen - Winkel waehlen:",
"vfl-gf-bogen-seite-header": "\nGF-Bogen - Seite waehlen:",
"vfl-winkel-30": "\n 1 - 30 Grad",
"vfl-winkel-60": "\n 2 - 60 Grad",
"vfl-winkel-90": "\n 3 - 90 Grad",
"vfl-variokurve-winkel-header": "\n\nVario-Kurve - Winkel waehlen:",
"vfl-opt1-90grad": "\n 1 - 90 Grad",
"vfl-opt2-60grad": "\n 2 - 60 Grad",
"vfl-opt3-30grad": "\n 3 - 30 Grad",
"vfl-prompt-wahl-1-3-def1": "\nIhre Wahl (1/2/3) [1]: ",
"vfl-variokurve-seite-header": "\nVario-Kurve - Seite waehlen:",
"vfl-variokurve-variante-header": "\nVario-Kurve - Variante waehlen:",
"vfl-variante-aussen": "\n 1 - Aussen",
"vfl-variante-innen": "\n 2 - Innen",
"vfl-ist-ziel-vergleich-header": "\n\n>>> IST-ZIEL-VERGLEICH (ES-Element):",
"vfl-soll-xyz": "\n Soll: X=%1 Y=%2 Z=%3",
"vfl-ist-xyz": "\n Ist : X=%1 Y=%2 Z=%3",
"vfl-abweichung-xyz": "\n Abweichung: dX=%1 dY=%2 dZ=%3 mm",
"vfl-m3-titel": "\n VF-LINIENZUG - Modus 2: Pfad + Ziel-Hoehe (fertig; Anker + Solver + Bau)",
"vfl-m3-alert-gf-modul": "Gefaellestrecke-Modul nicht geladen!",
"vfl-m3-pfad-waehlen": "\n\nPfad-Objekte waehlen (Linien/Boegen):",
"vfl-m3-keine-objekte": "\nKeine Objekte gewaehlt - Abbruch.",
"vfl-m3-prompt-startpunkt": "\n\nStartpunkt der Kette (hoehere Seite) waehlen: ",
"vfl-prompt-hoehe-startpunkt": "\nHoehe (Z) des Startpunkts [%1]: ",
"vfl-m3-prompt-endpunkt": "\n\nEndpunkt der Kette (Ziel) waehlen: ",
"vfl-m3-prompt-zielhoehe": "\nZiel-Hoehe (Z) des Endpunkts [%1]: ",
"vfl-m3-fehler-nicht-sortierbar": "\nFEHLER: Pfad nicht sortierbar (haengt er lueckenlos zusammen?).",
"vfl-m3-alert-eckwinkel": "Kein passender Bogen: Eck-Winkel %1 Grad ist nicht ~30/60/90.\nBitte die Winkel anpassen.",
"vfl-m3-seg-gerade": "\n\nSegment %1/%2: Gerade L=%3 mm hz=%4",
"vfl-m3-auto-vf": "\n (automatisch VF - Segment folgt direkt auf eine Vario-Kurve)",
"vfl-m3-typ-gerade": "\n Typ? 1 = GF (Eingabe-Winkel) 2 = VF (Bruecke)",
"vfl-m3-prompt-gf-neigung": "\n GF-Neigung in Grad [3]: ",
"vfl-m3-hinweis-gf-max": "\n Hinweis: GF max. 3 Grad - auf 3 begrenzt.",
"vfl-m3-seg-bogen": "\n\nSegment %1/%2: Eck/Bogen %3 Grad %4",
"vfl-m3-typ-bogen": "\n Typ? 1 = GF-Bogen 2 = Vario-Kurve",
"vfl-m3-variante-frage": "\n Vario-Kurve - Variante? 1 = Aussen 2 = Innen",
"vfl-m3-vf-laeufe": "\n\n[M3a] Gefundene VF-Laeufe: %1",
"vfl-m3-vf-lauf-noetig": "\n[M3a] Genau EIN VF-Lauf noetig (GF...VF...GF; Vario-Kurven duerfen im Lauf liegen).",
"vfl-m3-vf-lauf-m3b": "\n[M3a] Mehrere/keine VF-Laeufe -> M3b spaeter.",
"vfl-m3-vf-lauf-ohne-gerade": "\n[M3a] VF-Lauf ohne VF-Gerade - Abbruch.",
"vfl-m3-anker-vorschau-header": "\n M3a ANKER-VORSCHAU (grob geschaetzt; exakte Werte beim Bau)",
"vfl-m3-start-hoehe": "\n Start-Hoehe Z: %1 mm",
"vfl-m3-ziel-hoehe": "\n Ziel-Hoehe Z: %1 mm",
"vfl-m3-delta-h-gesamt": "\n delta-H gesamt: %1 mm (positiv = Abfall)",
"vfl-m3-vf-lauf-segmente": "\n VF-Lauf: Segment %1..%2",
"vfl-m3-front-anker-vorschau": "\n Front-Anker Z: %1 mm (vorwaerts von AS)",
"vfl-m3-junction-anker-vorschau": "\n Junction-Anker Z: %1 mm (rueckwaerts von ES)",
"vfl-m3-richtung-auf": "Auf (steigt)",
"vfl-m3-richtung-ab": "Ab (faellt)",
"vfl-m3-richtung-horizontal": "horizontal",
"vfl-m3-richtung-auf-kurz": "Auf",
"vfl-m3-richtung-ab-kurz": "Ab",
"vfl-m3-bruecke-dh": "\n --> Bruecke: delta-H = %1 mm ueber Spannweite %2 mm",
"vfl-m3-bruecke-richtung": "\n Richtung: VF-%1",
"vfl-m3-vf-angetrieben": "\n (VF ist angetrieben - kann STEIGEN und FALLEN; Vorzeichen = nur Auf/Ab)",
"vfl-m3-mittlere-neigung": "\n grobe mittlere Neigung ueber Spannweite: ~%1 Grad",
"vfl-m3-warnung-zu-steil": "\n WARNUNG: ~Neigung > 51 Grad -> zu steil fuer Vario (Magnitude infeasibel).",
"vfl-m3-vario-bereich-ok": "\n -> innerhalb Vario-Bereich (3..51 Grad), grobe Orientierung.",
"vfl-m3-anker-hinweis": "\n (Anker oben = grobe Vorschau; exakte Werte werden beim Bau GEMESSEN)",
"vfl-m3-phase-b1": "\n\n>>> Phase B1: Front-Lauf (AS + GF) bauen ...",
"vfl-m3-alert-beginnt-bogen": "Kette beginnt mit einem Bogen - bitte erst eine Gerade.",
"vfl-m3-kurve-front-uebersprungen": "\n >>> [M3a] Vario-Kurve im Front-Lauf - uebersprungen.",
"vfl-m3-standard-vario-header": "\n\n --- STANDARD-VARIO (Kletter-Segment) + flache Zone ---",
"vfl-m3-front-anker-gemessen": "\n Front-Anker (gemessen): %1 mm",
"vfl-m3-junction-exakt": "\n Junction (exakt): %1 mm",
"vfl-m3-kletter-info": "\n Kletterhoehe %1 mm | Kletterer %2 | Kurven %3 | kurze VF %4",
"vfl-m3-kein-winkel": "\n KEIN passender Vario-Winkel -> infeasibel (Front bereits gebaut).",
"vfl-m3-gf-verteilung": "\n\n GF-Verteilung: 1 - alles am Einlauf (GF1) 2 - 1/2 GF1 + 1/2 GF2",
"vfl-m3-vert-halb": "1/2 GF1 + 1/2 GF2",
"vfl-m3-vert-ganz": "alles GF1",
"vfl-m3-vario-ergebnis": "\n -> Vario %1 (%2), L_VF %3 mm, GF gesamt %4 mm, Verteilung %5 (GF2-Rest = Mess-Feinkorrektur)",
"vfl-m3-warnung-gf2-negativ": "\n WARNUNG: Koerper klettert zu wenig - GF2<0 (fehlen %1 mm). Winkel zu flach; dZ nicht exakt.",
"vfl-m3-gf2-ausgleich": "\n GF2 (gemessener Ausgleich): L=%1 mm",
"vfl-m3-kurve-back-uebersprungen": "\n >>> [M3a] Vario-Kurve im Back-Lauf - uebersprungen.",
"vfl-m3-nichts-gebaut": "\nNichts gebaut - Abbruch.",
"vfl-m3-fertig-header": "\n>>> VF-Linienzug (Modus 2) gebaut! <<<",
"vfl-m3-ziel-soll": "\n Ziel (Soll): X=%1 Y=%2 Z=%3",
"vfl-m3-es-ist": "\n ES (Ist): X=%1 Y=%2 Z=%3",
"vfl-m3-abweichung": "\n Abweichung: dX=%1 dY=%2 dZ=%3 mm",
"vfl-m3-laengs-quer": "\n Laengs KS_AUS-Achse: %1 mm | Quer zur Achse (soll ~0): %2 mm",
"vfl-m3-achse-hinweis": "\n (dZ=Ziel-Hoehe; Quer zur KS_AUS-Achse ~0 => Endpunkt liegt auf der Achse)",
"gf-fehler-block-fehlt": "\n FEHLER: Block '%1' fehlt",
"gf-fehler-block-fehlt-ausruf": "\n FEHLER: Block '%1' fehlt!",
"gf-fehler-blockdatei-fehlt": "\n FEHLER: Block-Datei nicht gefunden: %1",
"gf-fehler-keine-linie": "\n Fehler: keine Linie!",
"gf-laenge-null-uebersprungen": "\n (Laenge 0 - uebersprungen)",
"gf-prompt-linie-waehlen": "\n >> Linie waehlen: ",
"gf-status-3dlinie-z": "\n 3D-Linie: Z_start=%1 Z_end=%2",
"gf-status-block-l-z": "\n %1 L=%2 -> Z=%3",
"gf-status-bogen-masse": "\n %1: dx=%2 dz=%3",
"gf-status-gefaellebogen": "\n Gefaellebogen %1 hz=%2%3 -> Z=%4",
"gf-status-hzincl": "\n HzIncl %1 L=%2 hz=%3%4 v=%5%6 -> Z=%7",
"gf-status-hzks": "\n HzKS %1 hz=%2%3 v=%4%5 -> Z=%6",
"gf-status-ks-aus-z": "\n KS_AUS Z=%1",
"gf-warnung-block-fehlt-nullwerte": "\n WARNUNG: %1 fehlt - Nullwerte",
"gf-warnung-ks-fehlt": "\n WARNUNG: KS_EIN/KS_AUS fehlt!",
"gf-warnung-ks-fehlt-in": "\n WARNUNG: KS fehlt in '%1'",
"gf-warnung-ks-fehlt-in2": "\n WARNUNG: KS fehlt in %1",
"kreisel-abstand-ausgabe": "\n-> Abstand: %1 mm",
"kreisel-beschriftung-erzeugt": "\n-> Beschriftung: %1 (Höhe=%2mm, Arial, zentriert)",
"kreisel-bestehende-blockdef": "\n-> Verwende bestehende Blockdefinition: %1",
"kreisel-connect-zusammenfassung": "\n-> Abstand: %1 mm Rotation: %2 Grad Hoehe: %3 Kreiselart: %4",
"kreisel-eckrad-eingefuegt": "\n-> Eckrad #%1 eingefuegt: %2 bei %3,%4 Rotation=%5 Hoehe=%6",
"kreisel-edit-aktualisiert": "\nKreisel aktualisiert: Name=%1 Abstand=%2 Hoehe=%3 Rotation=%4",
"kreisel-edit-bestehend": "\n-> Bestehend: Abstand=%1 Drehung=%2 Art=%3",
"kreisel-edit-dialog-fehlt": "Dialog nicht verfuegbar: %1",
"kreisel-eingefuegt": "\n-> Kreisel #%1 eingefügt: %2 (Höhe=%3)",
"kreisel-emsg-distanz-klein": "Distanz zu klein! (%1 < %2)",
"kreisel-hoehe-aus-3dpunkt": "\n-> Hoehe aus 3D-Punkt uebernommen: %1",
"kreisel-hoehe-aus-basispunkt": "\n-> Höhe aus Basispunkt übernommen: %1",
"kreisel-hoehe-aus-startpunkt": "\n-> Hoehe aus Startpunkt uebernommen: %1",
"kreisel-hoehe-von-bestehendem": "\n-> Höhe von bestehendem Kreisel übernommen: %1",
"kreisel-insert-zusammenfassung": "\n-> Rotation: %1 Höhe: %2 Kreiselart: %3",
"kreisel-labelsetup-fertig": "\nNeue Einstellungen: Höhe=%1, Farbe=%2, Y-Versatz=%3, Schriftart=Arial",
"kreisel-neue-beschriftungsposition": "\nNeue Beschriftungsposition: X=%1 Y=%2",
"kreisel-neue-blockdef": "\n-> Neue Blockdefinition: %1",
"kreisel-neue-texthoehe": "\nNeue Texthöhe: %1",
"kreisel-params-default-hoehe": "\nDefault-Höhe: %1",
"kreisel-params-default-laenge": "\nDefault-Laenge: %1",
"kreisel-params-durchmesser": "\nDurchmesser: %1",
"kreisel-params-typ": "\nKreiselart: %1",
"kreisel-prompt-abstand": "\nAbstand (Tangentenlaenge) <%1>: ",
"kreisel-prompt-abstand-oben": "\nAbstand über Kreisel-Mitte <%1>: ",
"kreisel-prompt-hoehe-z": "\nHoehe (Z-Koordinate) <%1>: ",
"kreisel-prompt-neue-hoehe": "\nNeue Höhe <%1>: ",
"kreisel-prompt-neuer-abstand": "\nNeuer Abstand <%1>: ",
"kreisel-prompt-schriftfarbe": "\nSchriftfarbe (1=Rot,2=Gelb,3=Grün,4=Cyan,5=Blau,6=Magenta,7=Weiß) <%1>: ",
"kreisel-prompt-schrifthoehe": "\nSchrifthöhe <%1>: ",
"kreisel-prompt-texthoehe": "\nTexthöhe <%1>: ",
"kreisel-prompt-x-abstand": "\nX-Abstand von AN8-Mitte <%1>: ",
"kreisel-prompt-y-abstand": "\nY-Abstand von AN8-Mitte <%1>: ",
"kreisel-redraw-bestehend": "\n-> Bestehend: Abstand=%1 Drehung=%2 Hoehe=%3 Art=%4",
"kreisel-redraw-fertig": "\nKreisel neu gezeichnet. Abstand=%1",
"kreisel-script-distanz-klein": "\n[Connect] Distanz zu klein: %1",
"kreisel-textstil-erstellt": "\n-> Textstil '%1' mit Arial erstellt",
"kreisel-typ-prompt": "\nBitte waehlen <%1>: ",
"omni-bogen-info-antriebsart": "\n Antriebsart: %1",
"omni-bogen-info-breite": "\n Breite: %1",
"omni-bogen-info-kurvenwinkel": "\n KurvenWinkel: %1",
"omni-bogen-info-laenge": "\n Laenge: %1",
"omni-bogen-info-profiltyp": "\n ProfilTyp: %1",
"omni-bogen-info-radius": "\n Radius: %1",
"omni-bogen-nicht-gefunden": "\nKein Bogen mit SivasId '%1' gefunden.",
"omni-dxf-eingefuegt": "\n[OMNI] %1 eingefuegt. Hoehe=%2 Drehung=%3%4",
"omni-edit-aktualisiert": "\n[OMNI] Element aktualisiert: %1 Hoehe=%2 Drehung=%3",
"omni-edit-dxf-nicht-gefunden": "DXF nicht gefunden: %1",
"omni-einfuegen-info": "\n[OMNI] Einfuegen: %1 (%2)",
"omni-fehler-dxf-nicht-gefunden": "\n[OMNI] FEHLER: DXF nicht gefunden: %1",
"omni-insert-block-eingefuegt": "\n[OMNI] %1 eingefuegt. Laenge=%2 mm",
"omni-laenge-ueberschritten": "Die gewuenschte Fahrstreckenlaenge von %1 mm ueberschreitet die Maximallaenge von %2 mm des Fahrstreckenprofils.\nBitte neu definieren!",
"omni-weiche-info-breite": "\n Breite: %1",
"omni-weiche-info-kurvenrichtung": "\n KurvenRichtung: %1",
"omni-weiche-info-kurvenwinkel": "\n KurvenWinkel: %1",
"omni-weiche-info-laenge": "\n Laenge: %1",
"omni-weiche-info-profiltyp": "\n ProfilTyp: %1",
"omni-weiche-info-schaltungstyp": "\n Schaltungstyp: %1",
"omni-weiche-info-weichentyp": "\n WeichenTyp: %1",
"omni-weiche-info-wklaenge": "\n WK-Laenge: %1",
"omni-weiche-nicht-gefunden": "\nKeine Weiche mit SivasId '%1' gefunden.",
"vfc-3dlinie-start-ende": "\n 3D-Linie:\n Start: X=%1 Y=%2 Z=%3\n Ende: X=%4 Y=%5 Z=%6",
"vfc-3dpolylinie-start-ende": "\n 3D-Polylinie:\n Start Z=%1 Ende Z=%2",
"vfc-block-einfuegepunkt": "\n Block-Einfuegepunkt: X=%1 Y=%2 Z=%3",
"vfc-block-eingefuegt-ksaus": "\n '%1' eingefuegt\n KS_AUS: X=%2 Y=%3 Z=%4",
"vfc-delta-l-h-richtung": "\n %1L=%2 mm %1H=%3 mm Fahrtrichtung=%4%5",
"vfc-endpunkt-xyz": "\n Endpunkt: X=%1 Y=%2 Z=%3",
"vfc-endpunkt-xyz-dxdz": "\n Endpunkt: X=%1 Y=%2 Z=%3 (dx=%4 dz=%5)",
"vfc-fahrtrichtung-ergebnis": "\n>>> Fahrtrichtung: %1%2",
"vfc-fehler-block-datei-fehlt": "\n FEHLER: Block-Datei nicht gefunden: %1",
"vfc-fehler-block-nicht-in-bibliothek": "\n FEHLER: Block '%1' nicht in Bibliothek",
"vfc-fehler-block-nicht-in-bibliothek-abgebrochen": "\n FEHLER: Block '%1' nicht in Bibliothek - abgebrochen",
"vfc-fehler-ks-fehlen": "\n FEHLER: KS_EIN/KS_AUS fehlen in '%1'",
"vfc-fehler-ungueltiger-einfuegepunkt": "\n FEHLER: Ungueltiger Einfuegepunkt fuer '%1'",
"vfc-fuege-block-ein-hz": "\n Fuege Block '%1' ein... (hz=%2%3)",
"vfc-fuege-block-ein-rotation-hz": "\n Fuege Block '%1' ein (Rotation %2%3 hz=%4%5)",
"vfc-fuege-ein-lwhz": "\n Fuege '%1' ein (L=%2 mm, W=%3%4 hz=%5%6)",
"vfc-ks-aus-xyz": "\n KS_AUS: X=%1 Y=%2 Z=%3",
"vfc-lade-block": "\n Lade Block: %1 ...",
"vfc-laenge-uebersprungen": "\n Laenge=%1 mm -> uebersprungen",
"vfc-punkt-auf-objekt": "\n Punkt auf Objekt: Z=%1 mm",
"vfe-as30-mass": "\n AS_30_rechts: dx=%1 mm, dz=%2 mm",
"vfe-block-fehlt-abbruch": "\n FEHLER: Block '%1' nicht in Bibliothek - abgebrochen",
"vfe-bogen-nicht-vorhanden": "\n %1 -> Bogen nicht vorhanden",
"vfe-delta-info": "\n△L=%1 mm △H=%2 mm Richtung=%3",
"vfe-empfohlener-winkel": "\n>>> Empfohlener Winkel: %1",
"vfe-es30-mass": "\n ES_30_rechts: dx=%1 mm, dz=%2 mm",
"vfe-extrahiere-block-mass": "\n Extrahiere %1 Masse...",
"vfe-gefaellebogen-links-mass": "\n Gefaellebogen links: dx=%1 dz=%2 mm",
"vfe-gefaellebogen-rechts-mass": "\n Gefaellebogen rechts: dx=%1 dz=%2 mm",
"vfe-gefaellebogen-seite-dx": "\n Gefaellebogen %1: dx=%2 mm",
"vfe-hz-incl-status": "\n HzIncl %1 L=%2 hz=%3 v=%4 -> Z=%5",
"vfe-hz-rot-status": "\n HzRot %1 hz=%2 v=%3 -> Z=%4",
"vfe-hz-rotks-status": "\n HzRotKS %1 hz=%2 -> Z=%3",
"vfe-hz-scaleks-status": "\n HzScaleKS %1 %2mm hz=%3 -> Z=%4",
"vfe-ks-fehlt-startpunkt": "\n WARNUNG: KS fehlt in '%1' - verwende Startpunkt",
"vfe-step1-as30": "\n\n1/15: %1 (0 Grad)",
"vfe-step2": "\n\n2/15: Staustrecke 400mm (%1 Grad hz, 3 Grad vert, KS_EIN)",
"vfe-step3": "\n\n3/15: Separator (300mm, %1 Grad hz, 3 Grad vert)",
"vfe-step4": "\n\n4/15: %1 (Anfang, %2 Grad hz, 0 Grad vert, KS_EIN)",
"vfe-step5-strecke": "\n\n5/15: Gefaellestrecke (3 Grad, L=%1 mm)",
"vfe-step7": "\n\n7/15: %1 (3 Grad geneigt)",
"vfe-step8-ab": "\n\n8/15: Gefaellestrecke (%1 Grad, L=%2 mm)",
"vfe-step8-auf": "\n\n8/15: Steigungsstrecke (%1 Grad, L=%2 mm)",
"vfe-tabelle-zeile": "\n %1 %2 mm %3 mm ",
"vfe-tabelle-zeile-fehler": "\n %1 --- --- FEHLER",
"vfl-20m-hinweis": "\n >>> HINWEIS: Foerderer laenger als 20 m (%1 m) - Motorstation empfohlen!",
"vfl-block-erstellt": "\n>>> Block '%1' (%2) erstellt und eingefuegt.",
"vfl-fehler-rest-nicht-baubar": "\n FEHLER: Rest nicht baubar (zu steil/zu kurz fuer Schwanz Motor+GF2+Separator+ES). Bitte weiter zeichnen oder flacher planen.",
"vfl-fuege-block-ein": "\n Fuege %1 ein ...",
"vfl-hinweis-gf2-minimum": "\n HINWEIS: berechnetes GF2=%1 mm < Minimum %2 mm -> auf Minimum angehoben (ES endet dadurch etwas weiter; siehe Ist-Ziel-Report).",
"vfl-horizontale-zwischenstrecke": "\n\nHorizontale Zwischenstrecke (0 Grad, L=%1 mm)",
"vfl-kettenende-modus-ziel": "\n>>> Kettenende-Modus: Ziel dL=%1 mm, dH=%2 mm (%3). GF2 variiert mit dem Winkel.",
"vfl-prompt-hoehe-endpunkt": "\nHoehe (Z) des Endpunkts [%1]: ",
"vfl-prompt-hoehe-kettenende": "\nHoehe (Z) des Kettenendes (ES-Element) [%1]: ",
"vfl-prompt-wahl-bis-n": "\nIhre Wahl (1-%1) [1]: ",
"vfl-segment-gf-nicht-erlaubt": "\n Segment waere GF (zu steil) oder nicht baubar - innerhalb einer VF-Einheit nicht erlaubt.\n Bitte flacher/steigend zeichnen oder Foerderer beenden.",
"vfl-winkel-option": "\n %1 - %2 Grad (L_GF=%3 mm L_VF=%4 mm)",
"vfs-as90-mass": "\n AS_90: dx=%1 dz=%2",
"vfs-berechnung-parameter": "\n△L=%1 mm △H=%2 mm Richtung=%3",
"vfs-block-fehlende-item": "\n - %1",
"vfs-block-fehler-pfad": "\n FEHLER: DXFM_BLOCKS = %1",
"vfs-bogen-ab-block-fehlt": "\n FEHLER ab_%1: Block nicht geladen!",
"vfs-bogen-ab-ks-fehlt": "\n FEHLER ab_%1: KS fehlt!",
"vfs-bogen-ab-ok": "\n OK ab_%1: dx=%2 dz=%3",
"vfs-bogen-auf-block-fehlt": "\n FEHLER auf_%1: Block nicht geladen!",
"vfs-bogen-auf-ks-fehlt": "\n FEHLER auf_%1: KS fehlt!",
"vfs-bogen-auf-ok": "\n OK auf_%1: dx=%2 dz=%3",
"vfs-empfohlener-winkel": "\n>>> Empfohlener Winkel: %1%2",
"vfs-es90-mass": "\n ES_90: dx=%1 dz=%2",
"vfs-fehler-winkel-tabelle": "\n FEHLER: Winkel %1 nicht in Bogen-Tabelle!",
"vfs-schritt-as": "\n\n1/11: %1 (hz=%2%3)",
"vfs-schritt5-bogen1": "\n\n5/11: %1 (3 Grad geneigt)",
"vfs-tabelle-zeile": "\n %1%2 %3 mm %4 mm ",
"vfs-tabelle-zeile-fehler": "\n %1%2 --- --- FEHLER",
"vfs-vf-eingang-gf1": "\n\n[VF-Eingang] Gefaellestrecke GF1 (3 Grad, L=%1 mm)",
"kreisel-abbruch-befehl": "\nBefehl abgebrochen.",
"kreisel-abgebrochen": "\nAbgebrochen.",
"kreisel-connect-erfolgreich": "\nKreisel Connect erfolgreich!",
"kreisel-connect-header": "\n--- Kreisel durch Linie definieren (AN -> SP) ---",
"kreisel-eckrad-beruehrpunkt": "\nBeruehrpunkt Eckrad (Tangente): ",
"kreisel-eckrad-fehler-identisch": "\nFehler: Beruehr- und Richtungspunkt sind identisch!",
"kreisel-eckrad-richtung": "\nRichtung zum Kreismittelpunkt: ",
"kreisel-emsg-kein-block": "Kein Block ausgewaehlt!",
"kreisel-emsg-kein-kreisel-block": "Kein Kreisel-Block! (Attribut ABSTAND fehlt)",
"kreisel-fehler-keine-entities": "\nFehler: Keine Entities zum Block erstellen!",
"kreisel-insert-fertig": "\nKreisel Modul eingefuegt.",
"kreisel-params-attribute-header": "\nAttribute im Block:",
"kreisel-params-header": "\n=== Kreisel Parameter ===",
"kreisel-prompt-basispunkt": "\nBasispunkt (AN-Seite): ",
"kreisel-prompt-block-auswaehlen": "\nKreisel-Block auswaehlen: ",
"kreisel-prompt-endpunkt": "\nEndpunkt (SP-Seite aussen): ",
"kreisel-prompt-rotation": "\nRotation in Grad <0>: ",
"kreisel-prompt-startpunkt": "\nStartpunkt (AN-Seite aussen): ",
"kreisel-quick-fertig": "\nSchnell Einfuegen fertig.",
"kreisel-start-connect": "Kreisel Smart Connect",
"kreisel-start-eckrad": "Eckrad einfuegen",
"kreisel-start-edit": "Kreisel bearbeiten",
"kreisel-start-insert": "Kreisel Modul einfuegen",
"kreisel-start-quick": "Kreisel Schnell Einfuegen",
"kreisel-start-redraw": "Kreisel Neu Zeichnen",
"kreisel-start-script-connect": "Kreisel Script Connect",
"kreisel-start-script-insert": "Kreisel Script Insert",
"kreisel-typ-opt-pin": "\n[2] PIN",
"kreisel-typ-opt-standard": "\n[1] STANDARD (ohne PIN)",
"kreisel-warn-blockpfad": "\n[KreiselInsert] WARNUNG: Block-Pfad nicht ermittelbar!",
"kreisel-warn-core-fehlt": "\n[KreiselInsert] WARNUNG: ssg_core.lsp nicht gefunden - Standardwerte.",
"omni-abbruch": "\nAbgebrochen.",
"omni-abbruch-bogen": "\n[BOGEN] Abgebrochen.",
"omni-abbruch-omni": "\n[OMNI] Abgebrochen.",
"omni-abbruch-weiche": "\n[WEICHE] Abgebrochen.",
"omni-bogen-dialog-ladefehler": "Bogen-Dialog konnte nicht geladen werden.",
"omni-edit-kein-block": "Kein Block ausgewaehlt!",
"omni-edit-kein-element": "Kein Omniflo-Element erkannt! (ARTINR/Blockname nicht im Katalog)",
"omni-edit-prompt-auswahl": "\nOmniflo-Element auswaehlen: ",
"omni-fehler-dxfm-data": "\n[OMNI] FEHLER: DXFM_DATA nicht gesetzt!",
"omni-fehler-dxfm-omniflo": "\n[OMNI] FEHLER: DXFM_OMNIFLO nicht gesetzt!",
"omni-info-bogen-prompt": "\nSivasId des Bogens eingeben: ",
"omni-info-weiche-prompt": "\nSivasId der Weiche eingeben: ",
"omni-insert-keine-attribute": "\n[OMNI] Keine Attribute im Quell-Block gefunden.",
"omni-prompt-drehwinkel": "\nDrehwinkel angeben: ",
"omni-prompt-einfuegepunkt": "\nEinfuegepunkt waehlen: ",
"omni-prompt-endpunkt-fahrstrecke": "\nEndpunkt der Fahrstrecke waehlen: ",
"omni-weiche-dialog-ladefehler": "Weichen-Dialog konnte nicht geladen werden.",
"prompt-wahl-1-2-3-4": "\nIhre Wahl (1/2/3/4) [1]: ",
"vfc-alert-keine-gueltige-linie": "Keine gueltige Linie ausgewaehlt!",
"vfc-bitte-3dlinie-foerderstrecke": "\nBitte 3D-Linie fuer die Foerderstrecke auswaehlen:",
"vfc-bks-weltkoordinaten": "\n BKS auf Weltkoordinaten gesetzt.",
"vfc-eingabemodus-3dlinie": "\n 1 - 3D-Linie auswaehlen (Start- und Endpunkt mit Hoehe)",
"vfc-eingabemodus-header": "\n\nEingabemodus waehlen:",
"vfc-eingabemodus-werte": "\n 2 - Werte manuell eingeben",
"vfc-fahrtrichtung-0": "\n 1 - 0%1 (X-Achse +, Ost)",
"vfc-fahrtrichtung-180": "\n 3 - 180%1 (X-Achse -, West)",
"vfc-fahrtrichtung-270": "\n 4 - 270%1 (Y-Achse -, Sued)",
"vfc-fahrtrichtung-90": "\n 2 - 90%1 (Y-Achse +, Nord)",
"vfc-fahrtrichtung-header": "\n\nFahrtrichtung waehlen:",
"vfc-fehler-keine-linie": "\n FEHLER: Keine Linie oder Polylinie ausgewaehlt!",
"vfc-foerderrichtung-ab": "\n Foerderrichtung: AB",
"vfc-foerderrichtung-auf": "Auf",
"vfc-foerderrichtung-menu": "\nFoerderrichtung:\n 1 - AUF\n 2 - AB",
"vfc-gf-verteilung-header": "\n\nVerteilung der Gefaellestrecken (vorne/hinten):",
"vfc-gf-verteilung-1": "\n 1 - Gleichmaessig (L_GF1 = L_GF2 = L_GF/2)",
"vfc-gf-verteilung-2": "\n 2 - Vorne Minimum, hinten Rest",
"vfc-gf-verteilung-3": "\n 3 - Hinten Minimum, vorne Rest",
"vfc-gf-verteilung-4": "\n 4 - Eigene Werte eingeben",
"vfc-kein-objekt-gewaehlt": "\n Kein Objekt gewaehlt.",
"vfc-label-von-bis": ": von %1mm bis %2mm, ",
"vfc-linie-polylinie-waehlen": "\n >> 3D-Linie oder Polylinie waehlen: ",
"vfc-modus-3dlinie-fallback": "Linie",
"vfc-modus-3dlinie-header": "\n\n>>> MODUS: 3D-Linie auswaehlen <<<",
"vfc-modus-werteingabe-header": "\n\n>>> MODUS: Manuelle Werteingabe <<<",
"vfc-objekt-block-waehlen": "\n >> Objekt (Block) waehlen: ",
"vfc-prompt-delta-h": "\n%1H - Hoehenunterschied (mm): ",
"vfc-prompt-delta-l": "\n%1L - Horizontale Distanz (mm): ",
"vfc-prompt-startpunkt-aus": "\nStartpunkt fuer AUS_Element waehlen: ",
"vfc-prompt-wahl-1-2-ohne-default": "\nIhre Wahl (1/2): ",
"vfc-status-ok": " OK",
"vfc-warnung-ks-nicht-gefunden": "\n WARNUNG: KS_EIN/KS_AUS nicht gefunden!",
"vfc-block-erstellt-eingefuegt": "\n>>> Block '%1' erstellt und eingefuegt.",
"vfc-fehler-keine-entities": "\n>>> FEHLER: Keine Entities fuer Block gefunden!",
"vfc-banner-titel": "\n VARIOFOERDERER GENERATOR v26.0",
"vfc-alert-keine-typen": "Keine Typen registriert!\nvf_standard.lsp und vf_etage.lsp pruefen.",
"vfc-typ-vorgewaehlt": "\n>>> Typ vorgewaehlt: %1",
"vfc-anlagen-typ-header": "\n\nAnlagen-Typ waehlen:",
"vfc-typ-option": "\n %1 - %2",
"vfc-prompt-wahl-1-n": "\nIhre Wahl (1-%1) [1]: ",
"vfc-typ-gewaehlt": "\n>>> Typ: %1",
"vfc-naechste-vf-nummer": "\n>>> Naechste VF-Nummer: VF%1",
"vfc-seite-header": "\n\nSeite waehlen:",
"vfc-seite-rechts": "\n 1 - Rechts",
"vfc-seite-links": "\n 2 - Links",
"vfc-seite-gewaehlt": "\n>>> Seite: %1",
"vfc-hinweis-horizontal-moeglich": "\n\n>>> Hinweis: Ein horizontale Variofoerderer ( 0%1) ist bei diesem %2L/%2H zusaetzlich moeglich!",
"vfc-alert-kein-winkel": "Kein passender Winkel gefunden!\n%1L=%2 mm, %1H=%3 mm, Richtung=%4",
"vfc-einzige-variante-horizontal": "\n\n>>> Einzige gueltige Variante: Horizontale Variofoerderer",
"vfc-einziger-winkel": "\n\n>>> Einziger gueltiger Winkel: %1%2",
"vfc-mehrere-winkel-header": "\n\nMehrere gueltige Winkel verfuegbar. Bitte waehlen:",
"vfc-winkel-option-horizontal": "\n %1 - Horizontale Variofoerderer (0%2) (L_GF=%3 mm, L_VF=%4 mm)",
"vfc-winkel-option": "\n %1 - %2%3 (L_GF=%4 mm, L_VF=%5 mm)",
"vfc-prompt-winkel-waehlen": "Winkel waehlen (1-%1) [1]: ",
"vfc-zus-horizontal": "\n>>> Horizontale Variofoerderer L_GF: %1 mm L_VF: %2 mm",
"vfc-zus-winkel": "\n>>> Winkel: %1%2 L_GF: %3 mm L_VF: %4 mm",
"vfc-prompt-lgf1-vorne": "\nL_GF1 vorne (mm) [%1]: ",
"vfc-lgf2-hinten": "\n L_GF2 hinten: %1 mm",
"vfc-zus-lgf": "\n>>> L_GF1=%1 mm L_GF2=%2 mm",
"vfc-einfuegen-frage": "\n\nMoechten Sie die Foerderanlage einfuegen?",
"vfc-einfuegen-optionen": "\n 1 - Ja, Module einfuegen\n 2 - Nein, abbrechen",
"vfc-vorgang-abgebrochen": "\nVorgang abgebrochen.",
"vfs-dlg-richtung-auf": "Auf",
"vfs-dlg-richtung-ab": "Ab",
"vfs-dlg-winkel-horizontal": "Horizontal (GF=%1 mm, VF=%2 mm)",
"vfs-dlg-winkel-option": "%1%2 (GF=%3 mm, VF=%4 mm)",
"vfs-dlg-verteilung-1": "Gleichmaessig (L_GF1 = L_GF2 = L_GF/2)",
"vfs-dlg-verteilung-2": "Vorne Minimum, hinten Rest",
"vfs-dlg-verteilung-3": "Hinten Minimum, vorne Rest",
"vfs-dlg-verteilung-4": "Eigene Werte eingeben",
"vfs-edit-kein-vf": "Block %1 ist keine VarioFoerderer-Strecke.",
"vfs-edit-keine-xdata": "VarioFoerderer %1 wurde nicht mit diesem Dialog erstellt (Etage/Linienzug/Altbestand) und kann hier nicht bearbeitet werden.",
"vfs-edit-neu-aufgebaut": "\nVarioFoerderer %1 neu aufgebaut.",
"vfe-alert-bib-nicht-init": "Etage-Bibliothek nicht initialisiert!",
"vfe-berechnung-header": "\n ETAGE-BERECHNUNG FUER ALLE WINKEL",
"vfe-bib-bereits-init": "\n Etage-Bibliothek bereits initialisiert.",
"vfe-bib-init-erfolg": "\n Etage-Bibliothek erfolgreich initialisiert.",
"vfe-bib-initialisiere": "\n Initialisiere Etage-Bibliothek...",
"vfe-ergebnistabelle-header": "\n ERGEBNISTABELLE (L_GF = gesamt beider GF-Strecken)",
"vfe-extrahiere-as30": "\n Extrahiere AS_30_rechts Masse...",
"vfe-extrahiere-es30": "\n Extrahiere ES_30_rechts Masse...",
"vfe-kein-winkel-gefunden": "\n>>> KEIN passender Winkel gefunden!",
"vfe-status-gueltig": "GUELTIG",
"vfe-status-ungueltig": "UNGUELTIG (negative Laenge)",
"vfe-step5-skip": "\n\n5/15: L_GF1 (uebersprungen)",
"vfe-step6": "\n\n6/15: Umlenkstation (500mm, 3 Grad geneigt)",
"vfe-step8-skip": "\n\n8/15: L_VF (uebersprungen)",
"vfe-tabelle-spalten": "\n Winkel L_GF (mm) L_VF (mm) Status",
"vfe-warn-block-as30-fehlt": "\n WARNUNG: Block AS_Element_30_rechts fehlt - Standardwerte",
"vfe-warn-block-es30-fehlt": "\n WARNUNG: Block ES_Element_30_rechts fehlt - Standardwerte",
"vfe-warn-block-fehlt-links": "\n WARNUNG: Block fehlt - Standardwerte (links)",
"vfe-warn-block-fehlt-rechts": "\n WARNUNG: Block fehlt - Standardwerte (rechts)",
"vfe-warn-kein-ks-links": "\n WARNUNG: kein KS - Standardwerte (links)",
"vfe-warn-kein-ks-rechts": "\n WARNUNG: kein KS - Standardwerte (rechts)",
"vfe-warn-ks-fehlt-standard": "\n WARNUNG: KS fehlt - Standardwerte",
"vfe-warn-lisp-pfad": "\n[vf_etage] WARNUNG: Lisp-Pfad nicht ermittelbar - vf_core.lsp nicht ladbar!",
"vfl-abgebrochen-kein-ziel": "\n Abgebrochen - kein Zielpunkt gewaehlt.",
"vfl-bogen-ab3-uebergang": "\n\nVario_Bogen_ab_3 (Uebergang horizontal -> 3 Grad)",
"vfl-bogen-auf3-uebergang": "\n\nVario_Bogen_auf_3 (Uebergang 3 Grad -> horizontal)",
"vfl-gf-verteilung-ganz-einlauf": "\n 2 - Gesamte Staustrecke am Einlauf (GF1), kein GF2",
"vfl-gf-verteilung-haelfte": "\n 1 - 1/2GF am Ausgang (GF2), 1/2GF am Einlauf (GF1)",
"vfl-gf-verteilung-header": "\n\nStaustrecke (GF) - Verteilung waehlen:",
"vfl-ist-endpunkt-frage": "\n\nIst der Endpunkt der Foerderer?",
"vfl-ist-kettenende-frage": "\n\nIst das das Kettenende (ES-Element)?",
"vfl-ja-motorstation-kettenende": "\n 3 - Ja (Motorstation setzen, Kettenende definieren)",
"vfl-ja-nur-motorstation": "\n 1 - Ja (nur Motorstation setzen)",
"vfl-ja-separator-es": "\n 1 - Ja (Separator + ES-Element setzen)",
"vfl-linie-zu-kurz-simple": "\n Linie zu kurz - uebersprungen.",
"vfl-linie-zu-kurz-uebersprungen": "\n Linie zu kurz (oder entgegen der Fahrtrichtung) - uebersprungen.",
"vfl-mehrere-winkel-header": "\n\nMehrere gueltige Winkel - bitte gewuenschten Winkel waehlen:",
"vfl-modus1-beschreibung": "\nGemischte Gefaellestrecke/VarioFoerderer-Kette entlang eines frei",
"vfl-modus1-header": "\n VF-LINIENZUG - Modus 1: Manuelle Eingabe",
"vfl-naechstes-element-vf": "\n\nNaechstes Element im VarioFoerderer:",
"vfl-nein-weiterbauen": "\n 2 - Nein (weiterbauen)",
"vfl-opt-auf-ab-foerderer": "\n 3 - Auf/Ab-Foerderer (Linie mit Hoehendifferenz)",
"vfl-opt-horizontaler-foerderer": "\n 1 - Horizontaler Foerderer (Linie ohne Hoehendifferenz)",
"vfl-opt-vario-kurve": "\n 2 - Vario-Kurve (30/60/90 Grad)",
"vfl-prompt-wahl-1-2-def2": "\nIhre Wahl (1/2) [2]: ",
"vfl-prompt-wahl-1-3-def2": "\nIhre Wahl (1/2/3) [2]: ",
"vfl-prompt-wahl-1-3-def3": "\nIhre Wahl (1/2/3) [3]: ",
"vfl-sep-horizontal-info": "\n [horizontal] Separator (300 mm, 0 Grad)",
"vfs-berechnung-header": "\n BERECHNUNG FUER ALLE WINKEL (Standard)",
"vfs-block-fehlende-header": "\n Folgende Block-Dateien fehlen:",
"vfs-ergebnistabelle-header": "\n ERGEBNISTABELLE",
"vfs-extrahiere-aus": "\n Extrahiere AUS_Element Masse...",
"vfs-extrahiere-bogen": "\n Extrahiere Bogen-Masse...",
"vfs-extrahiere-ein": "\n Extrahiere EIN_Element Masse...",
"vfs-fehler-block-as90": "\n FEHLER: Block AS_Element_90_links nicht geladen!",
"vfs-fehler-block-es90": "\n FEHLER: Block ES_Element_90_links nicht geladen!",
"vfs-fehler-ks-as90": "\n FEHLER: KS_EIN/KS_AUS fehlt im AS_90!",
"vfs-fehler-ks-es90": "\n FEHLER: KS_EIN/KS_AUS fehlt im ES_90!",
"vfs-fehler-lib-nicht-init": "\n FEHLER: Bibliothek nicht korrekt initialisiert (AUS/EIN-Masse fehlen)!",
"vfs-kein-winkel-gefunden": "\n>>> KEIN passender Winkel gefunden!",
"vfs-lib-bereits-init": "\n Standard-Bibliothek bereits initialisiert.",
"vfs-lib-init-erfolg": "\n Standard-Bibliothek erfolgreich initialisiert.",
"vfs-lib-init-start": "\n Initialisiere Standard-Bibliothek...",
"vfs-status-gueltig": "GUELTIG",
"vfs-status-ungueltig": "UNGUELTIG (negative Laenge)",
"vfs-tabelle-spalten": "\n Winkel L_GF (mm) L_VF (mm) Status",
"vfs-vf-eingang-gf1-skip": "\n\n[VF-Eingang] Gefaellestrecke GF1 (uebersprungen)",
"vfs-vf-eingang-separator": "\n[VF-Eingang] Separator (300 mm, 3 Grad geneigt)",
"vfs-vf-eingang-umlenk": "\n[VF-Eingang] Umlenkstation (500 mm, 3 Grad geneigt)",
"vfs-warn-lisppfad": "\n[vf_standard] WARNUNG: Lisp-Pfad nicht ermittelbar - vf_core.lsp nicht ladbar!",
"dim-switch-modus": "\nModus umgeschaltet auf: %1",
"dim-switch-blocks": "\n DXFM_BLOCKS = %1",
"dim-switch-omniflo": "\n DXFM_OMNIFLO = %1",
"dim-batch-fertig": "\nUmwandlung auf %1 abgeschlossen: %2 GF, %3 VF neu aufgebaut (%4 bereits in Zieldimension).",
"sprache-gewechselt": "\nSprache umgeschaltet auf: %1",
"cmd-block-auswaehlen": "\nBlock auswaehlen: ",
"cmd-kein-block-ausgewaehlt": "\nKein Block ausgewaehlt.",
"cmd-kreisel-bearbeiten": "\nKreisel bearbeiten: %1",
"cmd-eckrad-bearbeiten": "\nEckrad bearbeiten: %1",
"cmd-gefaelle-bearbeiten": "\nGefaellestrecke bearbeiten: %1",
"cmd-variofoerderer-bearbeiten": "\nVarioFoerderer bearbeiten: %1",
"gf-edit-kein-gf": "Block %1 ist keine Gefaellestrecke.",
"gf-edit-nur-einfach": "Nur einfache Gefaellestrecken (ohne Bogen) koennen ueber den Dialog bearbeitet werden.\nTYP: %1",
"gf-edit-neu-aufgebaut": "\nGefaellestrecke %1 neu aufgebaut.",
"gf-vf-modul-fehlt": "VarioFoerderer-Modul nicht geladen!",
"gf-vf-gebaut": "\n-> Paralleler VarioFoerderer gebaut (2000 mm neben der Gefaellestrecke, gegenlaeufig, steigend).",
"cmd-omniflo-bearbeiten": "\nOmniflo Element bearbeiten: %1",
"cmd-attribute-bearbeiten": "\nAttribute bearbeiten: %1",
"layer-prompt-ziel-layer": "\nObjekt auf dem Ziel-Layer waehlen: ",
"layer-prompt-objekt": "\nObjekt waehlen: ",
"layer-prompt-referenz-objekt": "\nReferenz-Objekt waehlen (bestimmt Typ und Layer): ",
"layer-prompt-typ-ermittlung": "\nNochmals fuer Typ-Ermittlung anklicken: ",
"layer-prompt-ausblenden": "\nLayer zum Ausblenden anklicken (Enter=Ende): ",
"layer-prompt-einfrieren": "\nLayer zum Einfrieren anklicken (Enter=Ende): ",
"layer-prompt-aktiv-bleibt": "\nObjekt auf dem Layer waehlen, der AKTIV bleibt: ",
"layer-prompt-name-loeschen": "\nLayername zum Loeschen: ",
"layer-err-kein-objekt": "Kein Objekt gewaehlt.",
"layer-err-kein-ziel-layer": "Kein Ziel-Layer gewaehlt.",
"layer-err-kein-ziel-layer-kurz": "Kein Ziel-Layer.",
"layer-err-keine-passenden-objekte": "Keine passenden Objekte gefunden.",
"layer-abgebrochen": "Abgebrochen.",
"layer-err-kein-referenz-objekt": "Kein Referenz-Objekt gewaehlt.",
"layer-err-aktiv-nicht-ausschalten": "Aktiven Layer nicht ausschalten!",
"layer-err-aktiv-nicht-einfrieren": "Aktiven Layer nicht einfrieren!",
"layer-aktiver-layer": "\nAktiver Layer: %1",
"layer-objekt-auf-layer": "\nObjekt liegt auf Layer: %1",
"layer-nur-layer-sichtbar": "\nNur Layer '%1' ist sichtbar.",
"layer-geloescht": "\nLayer '%1' geloescht.",
"layer-leerer-geloescht": "\nLeerer Layer '%1' geloescht.",
"layer-existiert-nicht": "Layer '%1' existiert nicht.",
"layer-ques-typ-wechseln": "Layer dieser %1-Objekte wechseln?",
"layer-ques-alle-loeschen": "Alle Objekte auf Layer '%1' loeschen?",
"core-start-titel": "\n***** %1 *****\n",
"core-errhan-fehler": "\nFehler: ",
"core-blockname-exists": "Blockname '%1' existiert bereits - wird uebersprungen.",
"core-dwg-not-found": "\nFEHLER: Block nicht gefunden: %1",
"exp-cfg-not-found": "\n[export] WARNUNG: %1 nicht gefunden/leer, verwende Vorgaben.",
"exp-check-ids": "\n[%1] Pruefe und vergebe IDs...",
"exp-update-hoehe-drehung": "\n[%1] Aktualisiere Hoehe/Drehung...",
"exp-collect-blocks": "\n[%1] Sammle relevante Bloecke...",
"exp-no-blocks-found": "\n[%1] Keine relevanten Bloecke gefunden.",
"exp-blocks-found": "\n[%1] %2 Bloecke gefunden.",
"exp-output-dir": "\n[%1] Ausgabeordner: %2",
"exp-file-open-error": "\n[%1] FEHLER: Kann Datei nicht oeffnen: %2",
"exp-json-written": "\n[%1] JSON geschrieben: %2",
"exp-calling-python": "\n[%1] Rufe Python auf...",
"exp-export-started": "\n[%1] Export gestartet: %2",
"exp-dxfm-lib-missing": "\n[%1] FEHLER: Umgebungsvariable DXFM_LIB ist nicht gesetzt - BricsCAD wurde vermutlich nicht ueber bin/start_briscad.bat gestartet. CSV/JSON wurden geschrieben, der Python-Aufruf entfaellt.",
"exp-python-not-found": "\n[%1] FEHLER: Python-Skript nicht gefunden: %2",
"exp-python-exe": "\n[%1] Interpreter: %2",
"exp-export-done": "\n[%1] Export fertig: %2",
"exp-python-call-failed": "\n[%1] FEHLER: Python konnte nicht gestartet werden (WScript.Shell nicht verfuegbar).",
"exp-python-error": "\n[%1] FEHLER: Python endete mit Exitcode %2. Log: %3",
"exp-python-store-hint": "\n HINWEIS: Es wurde kein echter Python-Interpreter gefunden ('python' zeigt\n unter Windows 11 auf den WindowsApps-Platzhalter). Loesung: bin/install_py.bat\n ausfuehren (legt .venv an) und BricsCAD ueber bin/start_briscad.bat neu\n starten, oder in cfg/export.cfg unter [python] interpreter= den vollen Pfad\n zur python.exe setzen.",
"exp-csv-missing": "\n[%1] FEHLER: Python meldete Erfolg, aber die CSV fehlt: %2. Log: %3",
"exp-omni-no-inserts": "\n[OMNI_UPDATE] Keine INSERT-Bloecke in der Zeichnung.",
"exp-omni-updated": "\n[OMNI_UPDATE] %1 Elemente aktualisiert (HOEHE, DREHUNG).",
"id-new-assigned": "\n[ID] Neue ID zugewiesen: %1",
"id-invalid-block": "\n[ID] FEHLER: Kein gueltiger INSERT-Block!",
"id-check-no-blocks": "\n[IDSCHECK] Keine relevanten Bloecke gefunden.",
"id-check-missing-set": "\n[IDSCHECK] Fehlende ID gesetzt: %1 (Block %2)",
"id-check-duplicate": "\n[IDSCHECK] Duplikat ID %1 -> neue ID %2 (Block %3)",
"id-check-done": "\n[IDSCHECK] Fertig. %1 Duplikate korrigiert.",
"id-check-corrected": "\n[IDSCHECK] %1 IDs korrigiert.",
"id-select-block-prompt": "\nBlock waehlen: ",
"id-generate-invalid": "\n[IDGENERATE] Kein gueltiger Block gewaehlt.",
"dialog-nicht-verfuegbar": "Dialog nicht verfuegbar.",
"dialog-einfuegepunkt-waehlen": "\nEinfuegepunkt waehlen: ",
"extcall-python-rueckgabe": "\n[SSG_LIB] Python Rueckgabe: %1",
"extcall-keine-rueckgabe": "\n[SSG_LIB] WARNUNG: Keine Rueckgabe von Python erhalten.",
"extcall-skript-nicht-gefunden": "\n[SSG_LIB] FEHLER: %1 nicht gefunden!",
"vfstart-core-nicht-gefunden": "\n[VarioFoerderer] WARNUNG: vf_core.lsp nicht gefunden - Befehle nicht verfuegbar.",
"vfstart-etage-core-nicht-gefunden": "\n[EtageVarioFoerderer] WARNUNG: vf_core.lsp nicht gefunden - Befehle nicht verfuegbar.",
"gf-seite-aus-header": "\n\nAUS-Element (AS_Element_*) - Seite waehlen:",
"gf-seite-ein-header": "\n\nEIN-Element (ES_Element_*) - Seite waehlen:",
"gf-seite-links": "\n 1 - Links",
"gf-seite-rechts": "\n 2 - Rechts",
"prompt-wahl-1-2": "\nIhre Wahl (1/2) [1]: ",
"prompt-wahl-1-2-3": "\nIhre Wahl (1/2/3) [1]: ",
"geruest-typ-header": "\n\nGeruestoption waehlen:",
"geruest-typ-opt": "\n %1 - %2",
"geruest-typ-prompt": "\nGeruestoption (1-4) [%1]: ",
"kreisel-eckrad-geruest-frage": "Geruest fuer Einzelmodul?",
"gf-lade-block": "\n Lade Block: %1 ...",
"gf-status-ok": " OK",
"gf-warnung-kette-unterbrochen": "\n WARNUNG: Kette unterbrochen!",
"gf-status-nennlaenge": "\n Gesamte Nennlaenge (inkl. Bogen-dx): %1 mm",
"gf-status-feste-hoehenanteile": "\n Feste Hoehenanteile (AS/ES-dz + Bogen-dz): %1 mm",
"gf-status-dz-detail": "\n aus-dz=%1 ein-dz=%2 Bogen-dz=%3",
"gf-status-resthoehe": "\n Effektive Resthoehe fuer Grade: %1 mm",
"gf-warnung-keine-geraden": "\n WARNUNG: keine geraden Strecken -> Fallback 3 Grad",
"gf-warnung-feste-anteile": "\n WARNUNG: feste Anteile > deltaH -> Fallback 1 Grad",
"gf-status-naeherungswinkel": "\n>>> Naeherungswinkel: %1%2",
"gf-status-linie-staustrecke": "\n\n%1/%2: Staustrecke L=%3 mm hz=%4%5 v=%6%7",
"gf-status-separator-vor-bogen": "\n\n%1S/%2: Separator 300mm (vor Bogen) hz=%3%4 v=%5%6",
"gf-status-bogen-einfuegen": "\n\n%1/%2: %3 hz=%4%5",
"gf-status-linienzug-eingefuegt": "\n>>> Linienzug-Gefaellestrecke eingefuegt! <<<",
"gf-modus3-header": "\n\n>>> MODUS 3: Linienzug auswaehlen <<<",
"gf-modus3-hinweis1": "\nBitte alle Linien (LINE) und Boegen (ARC) des Pfades auswaehlen,",
"gf-modus3-hinweis2": "\ndann ENTER druecken:",
"gf-fehler-keine-objekte": "\nKeine Objekte ausgewaehlt!",
"gf-status-objekte-ausgewaehlt": "\n %1 Objekte ausgewaehlt.",
"gf-prompt-startpunkt-kette": "\nStartpunkt (3D) waehlen - KS_EIN AUS-Element / Kettenanfang: ",
"gf-fehler-kein-startpunkt": "\nKein Startpunkt!",
"gf-prompt-endpunkt-kette": "\nEndpunkt (3D) waehlen - KS_AUS EIN-Element / Kettenende: ",
"gf-fehler-kein-endpunkt": "\nKein Endpunkt!",
"gf-status-deltah-3dpunkte": "\n %1H aus 3D-Punkten: %2 mm",
"gf-status-sortiere-segmente": "\n Sortiere Segmente ...",
"gf-alert-keine-kette": "Keine verbundene Kette gefunden!",
"gf-status-segmente-gefunden": " %1 Segmente gefunden.",
"gf-status-segment-analyse-header": "\n\n--- Segment-Analyse (Laengen nach Kuerzung) ---",
"gf-status-segment-linie": "\n %1. Linie L=%2 mm hz=%3%4",
"gf-status-segment-bogen": "\n %1. Bogen %2%3 %4 hz-Eingang=%5%6",
"gf-status-seg-erste-linie": "\n Seg %1 (1. Linie): -%2 mm (AUS-Element)",
"gf-status-linie-vor-bogen": "\n Jede Linie vor Bogen: -300 mm (Bogen-Separator)",
"gf-status-seg-letzte-linie": "\n Seg %1 (letzte Linie): -300 mm (EIN-Sep) -%2 mm (EIN-Element)",
"gf-status-eintrittsrichtung": "\n Eintrittsrichtung: %1%2",
"gf-status-austrittsrichtung": "\n Austrittsrichtung: %1%2",
"gf-status-berechne-winkel": "\n\n Berechne Gefaellewinkel aus Geometrie ...",
"gf-prompt-winkel-verwenden": "\nBerechneten Winkel %1%2 verwenden? (j/n) [j]: ",
"gf-prompt-gefaellewinkel": "\nGefaellewinkel (Grad): ",
"gf-status-messe-absenkung": "\n Messe tatsaechliche AS/ES-Absenkung (iterativ) ...",
"gf-warnung-korrektur-bereich": "\n WARNUNG: Korrektur ausserhalb Bereich, Winkel unveraendert",
"gf-status-as-es-mm": "\n AS: %1 mm ES: %2 mm",
"gf-status-korrigierter-winkel": "\n>>> Korrigierter Gefaellewinkel: %1%2 (nach %3 Iter.)",
"gf-status-zus-segmente": "\n>>> Segmente: %1",
"gf-status-zus-deltah": "\n>>> %1H: %2 mm",
"gf-status-zus-deltal": "\n>>> %1L: %2 mm",
"gf-status-zus-winkel": "\n>>> Gefaellewinkel: %1%2",
"gf-status-zus-eintrittswinkel": "\n>>> Eintrittswinkel: %1%2",
"gf-status-zus-austrittswinkel": "\n>>> Austrittswinkel: %1%2",
"gf-status-zus-aus-element": "\n>>> AUS-Element: %1",
"gf-status-zus-ein-element": "\n>>> EIN-Element: %1",
"gf-prompt-einfuegen": "\nEinfuegen? (1=Ja / 2=Nein) [1]: ",
"gf-status-aus-element-detail": "\n\n>>> AUS-Element: %1 Fahrtrichtung=%2%3 KS_EIN-hz=%4%5 Z=%6",
"gf-status-separator-vor-ein": "\n>>> Separator vor EIN-Element",
"gf-status-ein-element-detail": "\n>>> EIN-Element: %1 Ziel-Z=%2",
"gf-status-z-hoehe-ks-aus": "\n Z-Hoehe KS_AUS: %1 mm",
"gf-status-fertig": "\n>>> Fertig! <<<",
"gf-status-abgebrochen": "\nAbgebrochen.",
"gf-alert-dialog-fehlt": "Dialog-Datei nicht gefunden:\n%1",
"gf-dlg-richtung-0": "0%1 (X+, Ost)",
"gf-dlg-richtung-90": "90%1 (Y+, Nord)",
"gf-dlg-richtung-180": "180%1 (X-, West)",
"gf-dlg-richtung-270": "270%1 (Y-, Sued)",
"gf-dlg-links": "Links",
"gf-dlg-rechts": "Rechts",
"gf-status-gf-block-erstellt": "\n>>> GF-Block erstellt: %1 (%2)",
"gf-status-schritt1-aus": "\n\n1/4: %1 Fahrtrichtung=%2%3 KS_EIN-hz=%4%5 v=%6%7",
"gf-status-schritt2-staustrecke": "\n\n2/4: Staustrecke L=%1 mm hz=%2%3 v=%4%5",
"gf-status-schritt3-separator": "\n\n3/4: Separator 300mm hz=%1%2 v=%3%4",
"gf-status-schritt4-ein": "\n\n4/4: %1",
"gf-status-erfolgreich-eingefuegt": "\n>>> Gefaellestrecke erfolgreich eingefuegt! <<<",
"gf-banner-titel": "\n GEFAELLESTRECKE GENERATOR v2.0",
"gf-banner-richtung": "\n Richtung: immer AB (nach unten)",
"gf-alert-init-fehler": "Fehler beim Initialisieren der Bibliothek!\nBitte DXFM_DATA pruefen.",
"gf-eingabemodus-header": "\n\nEingabemodus waehlen:",
"gf-eingabemodus-1": "\n 1 - Werte manuell eingeben (einfache Strecke)",
"gf-eingabemodus-2": "\n 2 - 3D-Linie auswaehlen (einfache Strecke)",
"gf-eingabemodus-3": "\n 3 - Linienzug (LINE + ARC) auswaehlen mit Gefaellebogen",
"gf-modus1-header": "\n\n>>> MODUS 1: Manuelle Werteingabe <<<",
"gf-prompt-startpunkt-aus": "\nStartpunkt fuer AUS-Element waehlen: ",
"gf-prompt-deltal-abstand": "\n%1L - Abstand (mm): ",
"gf-modus2-header": "\n\n>>> MODUS 2: 3D-Linie auswaehlen <<<",
"gf-status-bks-welt": "\n BKS auf Weltkoordinaten gesetzt.",
"gf-prompt-3dlinie-richtung": "\nBitte 3D-Linie fuer Richtung und Laenge auswaehlen:",
"gf-alert-keine-linie": "Keine gueltige Linie ausgewaehlt!",
"gf-status-fahrtrichtung-linie": "\n Fahrtrichtung: %1%2 (aus Linie)",
"gf-status-deltal-mm": "\n %1L = %2 mm",
"gf-prompt-gefaellewinkel-def3": "\n\nGefaellewinkel (Grad) [3]: ",
"gf-status-winkel": "\n>>> Winkel: %1%2",
"gf-status-fahrtrichtung": "\n>>> Fahrtrichtung: %1%2",
"gf-alert-staustrecke-ungueltig": "Berechnete Staustreckenlaenge ungueltig: %1 mm\nBitte groesseres deltaL oder kleineren Winkel waehlen.",
"gf-status-zus2-winkel": "\n>>> Winkel: %1%2",
"gf-status-zus2-aus-seite": "\n>>> AUS-Seite: %1",
"gf-status-zus2-ein-seite": "\n>>> EIN-Seite: %1",
"gf-status-zus2-lstau": "\n>>> L_stau: %1 mm",
"ques-yn-default-yes": " Y/N <Y>: ",
"ques-yn-default-no": " Y/N <N>: ",
"tefl-fehler-dxfm-omniflo": "\n[TEF] FEHLER: DXFM_OMNIFLO nicht gesetzt (bin/setenv.bat ausfuehren).",
"tefl-fehler-dxf-nicht-gefunden": "\n[TEF] FEHLER: Element-DXF nicht gefunden: %1",
"tefl-prompt-startpunkt": "\nStartpunkt der Foerderstrecke waehlen: ",
"tefl-prompt-endpunkt": "\nEndpunkt der Foerderstrecke waehlen: ",
"tefl-abgebrochen": "\n[TEF] Abgebrochen.",
"tefl-fehler-laenge-null": "\n[TEF] FEHLER: Start- und Endpunkt liegen zu nah beieinander.",
"tefl-fertig": "\n[TEF] %1 Element(e) eingefuegt, Streckenlaenge=%2 mm.",
"vfl-kette-titel": "\n Vario_Kette_Merge - mehrere Vario-Foerderer-Bausteine (einzeln oder bereits gewickelt) zu einem Gesamt-Block verschmelzen",
"vfl-kette-start-waehlen": "\n\nStart-Baustein der Kette waehlen (erstes Element - AS-Element oder VF_n): ",
"vfl-kette-kein-objekt": "\nKein Objekt gewaehlt - Abbruch.",
"vfl-kette-kein-vf-block": "\nGewaehltes Objekt ('%1') ist kein bekannter Vario-Kette-Baustein (AS-/ES-Element, GF-Bogen, Vario-Kurve, Umlenk-/Motorstation, Vertikalbogen, Staustrecke/Separator oder VF_n).",
"vfl-kette-start-nicht-gefunden": "\nFEHLER: Start-Baustein nicht in der Ketten-Erfassung gefunden (interner Fehler).",
"vfl-kette-start-nicht-gefunden-diag": "\nFEHLER: Start-Baustein nicht in der Ketten-Erfassung gefunden (interner Fehler).\n Diagnose: %1 Bausteine insgesamt erfasst, gewaehlter Blockname='%2', davon %3 mit gleichem Blocknamen erfasst.",
"vfl-kette-start-ohne-ks-ein": "\nFEHLER: Am gewaehlten Baustein konnte kein KS_EIN gefunden werden - Kette kann nicht verfolgt werden.",
"vfl-kette-nur-ein-baustein": "\nAb dem gewaehlten Baustein wurde kein weiterer angeschlossener VF_n-Baustein gefunden - nichts zum Zusammenfuehren.",
"vfl-kette-gefunden": "\n\nKette erkannt: %1 Baustein(e) werden zusammengefuehrt:",
"vfl-kette-luecke-warnung": "\n\n WARNUNG: Nach '%1' wurde ein visuell nahes, aber nicht sauber verbundenes VF_n ('%2') gefunden (KS-Abstand %3 mm) - Kette wurde dort beendet, dieser und alle weiteren Bausteine bleiben unangetastet.",
"vfl-kette-fertig": "\n\n>>> Fertig: neuer Gesamt-Block '%1' aus %2 Baustein(en) erstellt.",
"cmd-tro-bearbeiten": "\nTRO-Marker bearbeiten: %1",
"tro-edit-kein-tro": "Block %1 ist kein TRO-Marker (erwartet TRO_*).",
"tro-edit-kein-id-attribut": "Block %1 hat kein Attribut ID - bitte neu beschriften lassen (tro_annotate.py).",
"tro-edit-dialog-fehlt": "Dialogdatei nicht gefunden:\n%1\nDXFM_DCL pruefen (setenv.bat).",
"tro-edit-modul-fehlt": "%1 nicht geladen - Attribute werden mit EATTEDIT bearbeitet.",
"tro-edit-block": "Block: %1",
"tro-edit-fb": "Funktionsbaustein: %1",
"tro-edit-hinweis": "Symbol und FB folgen erst beim naechsten Lauf von tro_annotate.py.",
"tro-edit-id-leer": "Die TRO-Kennung darf nicht leer sein - nichts geaendert.",
"tro-edit-gespeichert": "\nTRO gespeichert: ID = %1, TYP = %2",
"tro-edit-typ-geaendert": "\nTyp geaendert - tro_annotate.py neu laufen lassen, damit Symbol und FB passen."
}
}