Merge origin/master: i18n-System (de/en) + 30-Grad-AS/ES-Elemente zusammenfuehren
Lokaler Stand (Modus-3 Randwert-Solver, 30/90-AS/ES, Kreisel-Attribute) mit dem Remote-Stand (Internationalisierung ssg-text, neue Bloecke, Sivas-Export) vereint. Konfliktaufloesung: - vf_linienzug.lsp: Nicht-interaktive -block-Kerne (fuer Pfad-Modi) behalten, interaktive Abfragen (GF-Bogen, Vario-Kurve, ES-Seite) auf ssg-text umgestellt. Kein doppelter defun mehr. - Gefaellestrecke.lsp: 30/90-Winkelabfrage mit den i18n-Seiten-Prompts kombiniert; gefaellestrecke-einfuegen-Aufruf mit as-/es-winkel. - vf_core.lsp: vf-frage-element-winkel nimmt jetzt einen i18n-Header-Key (vf-winkel-aus-header / vf-winkel-ein-header) statt festem Text. - lang/de_DE.json + en_GB.json: neue Keys vf-winkel-aus/ein-header, vf-winkel-90/30; gf-seite-Header ohne irrefuehrendes "_90_". - export_sivas.py: ANZAHL_SEPARATOR/ANZAHL_SCANNER mit N_*-Fallback plus Remote-Umsortierung; doppelte "Kreiselart"-Zeile entfernt. - AS_Element_30_links/rechts.dwg + Separator_SP.dwg (3D): Remote-Version (Attribut-Stand) uebernommen. Die KS_AUS-Geometrie-Korrektur der 30-Grad- AS-Elemente wird danach in BricsCAD nachgezogen. Offen (Folge-Commit): die Modus-Treiber in vf_linienzug.lsp (vf-linienzug-modus / -modus2 / -modus3) sind noch nicht i18n (ca. 110 Strings). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-4
@@ -52,6 +52,15 @@ def build_lookup(boegen, weichen):
|
||||
return lookup
|
||||
|
||||
|
||||
def format_sivasnr(sivasnr):
|
||||
"""
|
||||
Wandelt einen "+"-separierten Sivasnr-Wert (Rohformat aus den JSON-Katalogen,
|
||||
dort weiterhin benoetigt fuer Dateinamen-Referenzen) in eine reine
|
||||
kommaseparierte Liste fuer die Ausgabe (CSV/Block-Attribut) um.
|
||||
"""
|
||||
return ", ".join(p.strip() for p in str(sivasnr).split("+") if p.strip())
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Merkmale-Builder
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -80,7 +89,7 @@ def build_bogen_merkmale(block, eintrag):
|
||||
"Radius": float(eintrag.get("Radius", 0)),
|
||||
"Höhe": get_hoehe(block),
|
||||
"Drehung": get_drehung(block),
|
||||
"SivasNummer": str(eintrag.get("Sivasnr", ""))
|
||||
"SivasNummer": format_sivasnr(eintrag.get("Sivasnr", ""))
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +102,7 @@ def build_weiche_merkmale(block, eintrag):
|
||||
"Höhe": get_hoehe(block),
|
||||
"Drehung": get_drehung(block),
|
||||
"Antrieb Kurve": eintrag.get("SivasnrTEF") is not None,
|
||||
"SivasNummer": str(eintrag.get("Sivasnr", ""))
|
||||
"SivasNummer": format_sivasnr(eintrag.get("Sivasnr", ""))
|
||||
}
|
||||
|
||||
|
||||
@@ -305,7 +314,7 @@ def process_blocks(blocks, lookup):
|
||||
vf_count += 1
|
||||
items.append({
|
||||
"nr": elem_nr,
|
||||
"teileart": "VarioFoerderer",
|
||||
"teileart": "ILS 2.0 Strecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"VarioFoerderer :{vf_count}",
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
@@ -318,7 +327,7 @@ def process_blocks(blocks, lookup):
|
||||
gf_count += 1
|
||||
items.append({
|
||||
"nr": elem_nr,
|
||||
"teileart": "Gefaellestrecke",
|
||||
"teileart": "ILS 2.0 Gefaellestrecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"Gefaellestrecke :{gf_count}",
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
|
||||
Reference in New Issue
Block a user