From 24f6b76f0650c9647d5f70d4b89c4919281fbc09 Mon Sep 17 00:00:00 2001 From: karim Date: Sat, 6 Jun 2026 12:19:10 +0200 Subject: [PATCH] Translate remaining internal log messages to English - EBENEN: drawing levels updated, sublayer not found, saved/verified - GESTALTUNG: Linetypes before/after, fill field, opened/focused - CLIP: disabled done - ELEMENTE: Bulk-op, Listener bail - Global: not found, not available, unchanged, failed, present --- rhino/_inspect_plan_mode.py | 2 +- rhino/aliases/cmd/smart_join.py | 4 +- rhino/aliases/dossier_view_mode.py | 2 +- rhino/aliases/loader.py | 4 +- rhino/ausschnitte.py | 8 ++-- rhino/begin_cmd_hook.py | 2 +- rhino/elemente.py | 76 +++++++++++++++--------------- rhino/inspect_section.py | 2 +- rhino/layer_builder.py | 20 ++++---- rhino/layers_panel.py | 22 ++++----- rhino/layouts.py | 10 ++-- rhino/library.py | 4 +- rhino/massstab.py | 6 +-- rhino/overrides.py | 2 +- rhino/panel_base.py | 22 ++++----- rhino/startup.py | 2 +- rhino/styles.py | 6 +-- rhino/swisstopo.py | 6 +-- rhino/text_editor.py | 6 +-- rhino/toolbar.py | 16 +++---- rhino/welcome.py | 2 +- 21 files changed, 112 insertions(+), 112 deletions(-) diff --git a/rhino/_inspect_plan_mode.py b/rhino/_inspect_plan_mode.py index 29fcc21..e2efc2d 100644 --- a/rhino/_inspect_plan_mode.py +++ b/rhino/_inspect_plan_mode.py @@ -23,7 +23,7 @@ for dm in DisplayModeDescription.GetDisplayModes(): dmd = dm; break if dmd is None: - print("[INSPECT] 'Dossier Plan' nicht gefunden") + print("[INSPECT] 'Dossier Plan' not found") else: attrs = dmd.DisplayAttributes print("[INSPECT] Mode gefunden: {} (Id={})".format(dmd.EnglishName, dmd.Id)) diff --git a/rhino/aliases/cmd/smart_join.py b/rhino/aliases/cmd/smart_join.py index 4d2cb60..b2c0258 100644 --- a/rhino/aliases/cmd/smart_join.py +++ b/rhino/aliases/cmd/smart_join.py @@ -165,7 +165,7 @@ def _t_join_attempt(doc, sel): """T-Join: 2 OFFENE Kurven wobei der EINE Endpunkt der einen Kurve nahe (< 1m) auf der ANDEREN Kurve mitten landet (zwischen deren Endpunkten). Schiebt diesen Endpunkt exakt auf die andere Kurve. - Die andere Kurve bleibt unveraendert. + Die andere Kurve bleibt unchanged. Auch 1-Wand-Modus: wenn nur 1 wand_axis selektiert, sucht automatisch die naechste andere Wand und snappt diese eine. @@ -407,7 +407,7 @@ def _run(): curves = [o.Geometry for o in objs] result = rg.Curve.CreateBooleanUnion(curves, tol) except Exception as ex: - print("[SMART-JOIN] BooleanUnion in Gruppe fehlgeschlagen:", ex) + print("[SMART-JOIN] BooleanUnion in Gruppe failed:", ex) continue if not result: continue # C) Pre-Check Overlap: wenn result-Anzahl gleich input-Anzahl diff --git a/rhino/aliases/dossier_view_mode.py b/rhino/aliases/dossier_view_mode.py index 8b23517..71d8e21 100644 --- a/rhino/aliases/dossier_view_mode.py +++ b/rhino/aliases/dossier_view_mode.py @@ -57,7 +57,7 @@ def _apply(mode_name): if d.EnglishName == dm_name or d.LocalName == dm_name: target = d; break if target is None: - print("[VIEW-MODE] Display-Mode nicht gefunden:", dm_name) + print("[VIEW-MODE] Display-Mode not found:", dm_name) return view.ActiveViewport.DisplayMode = target view.Redraw() diff --git a/rhino/aliases/loader.py b/rhino/aliases/loader.py index 7c2650e..5d79fab 100644 --- a/rhino/aliases/loader.py +++ b/rhino/aliases/loader.py @@ -75,7 +75,7 @@ _SPECIAL_KEY_NAMES = { def _normalize_key_part(key_part): """Mapped Sonderzeichen wie '-' auf Enum-Namen ('Minus'). Buchstaben/F-Keys - bleiben unveraendert (Case-preserved).""" + bleiben unchanged (Case-preserved).""" if key_part in _SPECIAL_KEY_NAMES: return _SPECIAL_KEY_NAMES[key_part] return key_part @@ -156,7 +156,7 @@ def _xml_persist_shortcut(xml_key, macro, verbose=False): r'|>[^<]*)') m = pat.search(content) if m: - # Check Line-Kontext: nur diese Entry auf Zeile + unveraendert? + # Check Line-Kontext: nur diese Entry auf Zeile + unchanged? line_start = content.rfind("\n", 0, m.start()) + 1 line_end = content.find("\n", m.end()) if line_end < 0: line_end = len(content) diff --git a/rhino/ausschnitte.py b/rhino/ausschnitte.py index 056845a..69daffe 100644 --- a/rhino/ausschnitte.py +++ b/rhino/ausschnitte.py @@ -243,7 +243,7 @@ def apply_snapshot_to_detail(doc, detail, snap_id): Liefert True bei Erfolg.""" snap = next((s for s in _load_snapshots(doc) if s.get("id") == snap_id), None) if not snap: - print("[AUSSCHNITTE] apply_to_detail: snap nicht gefunden", snap_id) + print("[AUSSCHNITTE] apply_to_detail: snap not found", snap_id) return False # Page-View ermitteln (fuer SetActiveDetail/SetPageAsActive) page_view = None @@ -611,7 +611,7 @@ class AusschnittBridge(panel_base.BaseBridge): vp.Name = new_name except Exception as ex: print("[AUSSCHNITTE] Rename:", ex) - # Gespeicherten Massstab anwenden (z.B. "1:50") — falls vorhanden und + # Gespeicherten Massstab anwenden (z.B. "1:50") — falls present und # Viewport parallel ist (in Perspective ignoriert massstab._apply_scale). try: scale_str = (snap.get("scale") or "").strip() @@ -668,7 +668,7 @@ class AusschnittBridge(panel_base.BaseBridge): doc = Rhino.RhinoDoc.ActiveDoc snap = next((s for s in self._load(doc) if s.get("id") == snap_id), None) if not snap: - print("[AUSSCHNITTE] Snap nicht gefunden:", snap_id) + print("[AUSSCHNITTE] Snap not found:", snap_id) return snap_by_id = {} for ls in (snap.get("layers") or []): @@ -773,7 +773,7 @@ class AusschnittBridge(panel_base.BaseBridge): doc = Rhino.RhinoDoc.ActiveDoc snap = next((s for s in self._load(doc) if s.get("id") == snap_id), None) if not snap: - print("[AUSSCHNITTE] open_settings: snap nicht gefunden", snap_id) + print("[AUSSCHNITTE] open_settings: snap not found", snap_id) return outer = self bridge_holder = {"form": None, "id": snap_id} diff --git a/rhino/begin_cmd_hook.py b/rhino/begin_cmd_hook.py index 8ee362c..8a6ff4d 100644 --- a/rhino/begin_cmd_hook.py +++ b/rhino/begin_cmd_hook.py @@ -44,7 +44,7 @@ def _on_begin_command(sender, e): Rhino.UI.Panels.FocusPanel(guid) except Exception: pass if sc.sticky.get(_VERBOSE_KEY): - print("[BEGIN-CMD] Gestaltung-Panel opened/fokussiert") + print("[BEGIN-CMD] Gestaltung-Panel opened/focused") except Exception as ex: print("[BEGIN-CMD] OpenPanel:", ex) try: diff --git a/rhino/elemente.py b/rhino/elemente.py index ebe7744..0a59348 100644 --- a/rhino/elemente.py +++ b/rhino/elemente.py @@ -488,7 +488,7 @@ def _build_sia_preset_rules(): def _ensure_sia_preset(force=False): """Stellt sicher dass das SIA-Preset im cross-doc Presets-File existiert. force=True: ueberschreibt bestehendes Preset (Single-Source-of-Truth aus - elemente.py). force=False: nur anlegen wenn noch nicht vorhanden — so + elemente.py). force=False: nur anlegen wenn noch not present — so bleiben User-Anpassungen aus dem Overrides-Panel erhalten.""" try: import overrides as _ov @@ -726,7 +726,7 @@ def _resolve_decke_z(doc, gid, dicke, uk_over, ok_over): def _find_ebene_sublayer_name(doc, keywords, default_code, default_name, default_color="#888888", default_lw=0.35): """Findet aus der Ebenen-Liste den ersten Sublayer der einem der Keywords - entspricht. Wenn nicht gefunden, wird der Sublayer mit den Default-Werten + entspricht. Wenn not found, wird der Sublayer mit den Default-Werten AUTOMATISCH in die Ebenen-Liste eingetragen (damit er auch im Ebenen- Manager-UI erscheint) und der Rhinopanel-Bridge ein State-Refresh getriggert. Ergebnis: 'CODE_NAME' wie 'WAENDE'.""" @@ -747,7 +747,7 @@ def _find_ebene_sublayer_name(doc, keywords, default_code, default_name, if kw in low: return "{}_{}".format(e.get("code", default_code), name or default_name) - # 2) Auto-Add: weder Keyword noch Code vorhanden → Eintrag anlegen + # 2) Auto-Add: weder Keyword noch Code present → Eintrag anlegen if ebenen and not any(isinstance(e, dict) and e.get("code") == default_code for e in ebenen): ebenen.append({ @@ -821,7 +821,7 @@ def _ensure_referenz_child_in_doc(doc, parent_code, parent_keywords, parent_code + 'r' (z.B. '20r'). Liefert (parent_sub_name, child_sub_name) fuer Pfad-Konstruktion. - Idempotent: legt nur an wenn nicht vorhanden, triggert dann + Idempotent: legt nur an wenn not present, triggert dann build_layers + broadcast_state.""" parent_sub = _find_ebene_sublayer_name( doc, parent_keywords, parent_code, parent_default_name, @@ -1491,7 +1491,7 @@ def _make_treppe_preview_handler(p0, breite, referenz, n_stufen, - `fixed_length`: Mausvektor wird genau auf diese Laenge reskaliert - `min_length` / `max_length`: Mausvektor wird in dieser Range geclampt (frei innerhalb, Stop bei den Grenzen) - - sonst: Mausvektor wird unveraendert benutzt""" + - sonst: Mausvektor wird unchanged benutzt""" import System.Drawing as SD color_axis = SD.Color.FromArgb(255, 95, 200, 180) color_edge = SD.Color.FromArgb(180, 140, 215, 200) @@ -4933,7 +4933,7 @@ def _read_meta(obj): def _find_objects_by_wall_id(doc, wall_id, type_filter=None): """Findet alle Rhino-Objekte mit der gegebenen wall_id. Hidden+Locked werden mit-iteriert — sonst werden Treppen-Volumes auf hidden 3D-Layer - nicht gefunden + Regen-Replace schlaegt fehl → Duplikate.""" + not found + Regen-Replace schlaegt fehl → Duplikate.""" out = [] try: _s = Rhino.DocObjects.ObjectEnumeratorSettings() @@ -4959,7 +4959,7 @@ def _find_axis(doc, wall_id): def _wall_group_index(doc, wall_id, create_if_missing=True): """Liefert den Rhino-Group-Index fuer eine Wand (Group enthaelt axis + alle volumes). Wenn noch keine existiert + create_if_missing: erstelle - eine neue Gruppe und ordne die Achse zu. -1 wenn axis nicht gefunden.""" + eine neue Gruppe und ordne die Achse zu. -1 wenn axis not found.""" axis_obj = _find_axis(doc, wall_id) if axis_obj is None: return -1 try: @@ -6570,7 +6570,7 @@ def _make_decke_volume(outline_curve, dicke, uk, ok, hole_curves=None): rg.Point3d(0, 0, ok)) result = face.CreateExtrusion(path, True) if result is None or not result.IsValid: - print("[ELEMENTE] BrepFace.CreateExtrusion fehlgeschlagen — " + print("[ELEMENTE] BrepFace.CreateExtrusion failed — " "Fallback ohne Loch.") return _make_decke_volume(outline_curve, dicke, uk, ok, None) return result @@ -6790,7 +6790,7 @@ def _make_raum_stamp_text(centroid, name, nummer, funktion, area, rundung, elif align == "rechts": te.Justification = rg.TextJustification.MiddleRight else: te.Justification = rg.TextJustification.MiddleCenter except Exception: pass - # Font/Style — nur wenn doc + font_name vorhanden, sonst Doc-Default + # Font/Style — nur wenn doc + font_name present, sonst Doc-Default if doc is not None and font: try: f = Rhino.DocObjects.Font.FromQuartetProperties( @@ -9481,7 +9481,7 @@ def _regenerate_element_body(doc, element_id, src_obj, meta, geom, geschoss_name Rhino.DocObjects.ObjectColorSource.ColorFromObject) attrs.ObjectColor = SD.Color.FromArgb(255, 0, 0, 0) except Exception: pass - # Faces via Material — wenn voll-dict mit PBR vorhanden, PBR- + # Faces via Material — wenn voll-dict mit PBR present, PBR- # Material mit Texturen bauen, sonst einfaches Diffuse-Material. mat_idx = -1 if full_mat_dict is not None: @@ -10087,7 +10087,7 @@ def _regen_treppe_2d_symbol(doc, element_id, meta, geom, g_start, geschoss_name, def _ensure_linetype_dashed(doc): - """Liefert Index der 'Dashed'-Linetype. Wenn nicht vorhanden, laedt sie + """Liefert Index der 'Dashed'-Linetype. Wenn not present, laedt sie via LoadDefaultLinetypes nach. Fallback -1 (= By Layer continuous).""" def _find(): try: @@ -11033,7 +11033,7 @@ class ElementeBridge(panel_base.BaseBridge): try: with _TimedBlock("Wand AddCurve + Regen"): if doc.Objects.AddCurve(axis, attrs) == System.Guid.Empty: - print("[ELEMENTE] Wand AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Wand AddCurve failed"); return # Joint-Cache invalidieren — neue Wand-Achse ist im Doc. _invalidate_joints_cache(geschoss_id) _regenerate_element(doc, wall_id) @@ -11186,7 +11186,7 @@ class ElementeBridge(panel_base.BaseBridge): dicke, uk_over, ok_over, "mid") outline_id = doc.Objects.AddCurve(outline, attrs) if outline_id == System.Guid.Empty: - print("[ELEMENTE] Decke AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Decke AddCurve failed"); return _regenerate_element(doc, element_id) doc.Views.Redraw() print("[ELEMENTE] Decke erzeugt: {}".format(element_id)) @@ -11294,7 +11294,7 @@ class ElementeBridge(panel_base.BaseBridge): 0.0, "", "", "mid", aussp_parent=decke_id) new_id = doc.Objects.AddCurve(outline, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] Aussparung AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Aussparung AddCurve failed"); return _save_last(aussp_modus=modus) # Eltern-Decke regenerieren — das Loch wird abgezogen _regenerate_element(doc, decke_id) @@ -11458,7 +11458,7 @@ class ElementeBridge(panel_base.BaseBridge): dach_variante=dach_variante) outline_id = doc.Objects.AddCurve(outline, attrs) if outline_id == System.Guid.Empty: - print("[ELEMENTE] Dach AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Dach AddCurve failed"); return _regenerate_element(doc, element_id) doc.Views.Redraw() print("[ELEMENTE] Dach erzeugt: {} ({}, neigung={}°)".format( @@ -11725,7 +11725,7 @@ class ElementeBridge(panel_base.BaseBridge): pt_at_brueest = rg.Point3d(on_axis.X, on_axis.Y, wall_uk + float(brueest)) new_id = doc.Objects.AddPoint(pt_at_brueest, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] AddPoint fehlgeschlagen"); return + print("[ELEMENTE] AddPoint failed"); return # Last-used if typ == "fenster": @@ -11762,7 +11762,7 @@ class ElementeBridge(panel_base.BaseBridge): geschosse = _load_geschosse(doc) gs = _geschoss_by_id(doc, geschoss_start) if gs is None: - print("[ELEMENTE] Startgeschoss nicht gefunden"); return + print("[ELEMENTE] Startgeschoss not found"); return geschoss_end = p.get("geschossEnd") or "" if not geschoss_end: # naechstes Geschoss > start_okff @@ -12287,7 +12287,7 @@ class ElementeBridge(panel_base.BaseBridge): treppe_art=treppe_art) new_id = doc.Objects.AddCurve(line, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] AddCurve fehlgeschlagen"); return + print("[ELEMENTE] AddCurve failed"); return save_kwargs = dict(treppe_breite=breite, treppe_n=n_stufen, treppe_referenz=referenz, treppe_modus=modus_def, @@ -12415,7 +12415,7 @@ class ElementeBridge(panel_base.BaseBridge): trag_angle=angle, trag_z_over=z_over) new_id = doc.Objects.AddPoint(pt3, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] Stuetze AddPoint fehlgeschlagen"); return + print("[ELEMENTE] Stuetze AddPoint failed"); return _save_last(stuetze_profil=profil, stuetze_b=B, stuetze_h=H, stuetze_d=D, stuetze_t=t_wall, stuetze_angle=angle) _regenerate_element(doc, element_id) @@ -12546,7 +12546,7 @@ class ElementeBridge(panel_base.BaseBridge): trag_angle=angle, trag_z_over=z_over) new_id = doc.Objects.AddCurve(line, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] Traeger AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Traeger AddCurve failed"); return _save_last(traeger_profil=profil, traeger_b=B, traeger_h=H, traeger_d=D, traeger_t=t_wall, traeger_angle=angle) _regenerate_element(doc, element_id) @@ -12649,7 +12649,7 @@ class ElementeBridge(panel_base.BaseBridge): raum_txt_h=txt_h) new_id = doc.Objects.AddCurve(outline_curve, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] Raum AddCurve fehlgeschlagen"); return + print("[ELEMENTE] Raum AddCurve failed"); return _save_last(raum_modus=modus, raum_name_last=name, raum_rundung=rundung, raum_funktion=funktion, raum_txt_h=txt_h) @@ -12701,7 +12701,7 @@ class ElementeBridge(panel_base.BaseBridge): stempel_scope=scope, stempel_txt_h=txt_h) new_id = doc.Objects.AddText(te, attrs) if new_id == System.Guid.Empty: - print("[ELEMENTE] Stempel AddText fehlgeschlagen"); return + print("[ELEMENTE] Stempel AddText failed"); return _save_last(stempel_txt_h=txt_h) doc.Views.Redraw() print("[ELEMENTE] Stempel erzeugt: {} (scope={})".format(stempel_id, scope)) @@ -12970,7 +12970,7 @@ class ElementeBridge(panel_base.BaseBridge): stile = load_raum_stempel_stile(doc) stil = next((s for s in stile if s.get("id") == sid), None) if stil is None: - print("[ELEMENTE] APPLY_RAUM_STIL: Stil {} nicht gefunden".format(sid)) + print("[ELEMENTE] APPLY_RAUM_STIL: Stil {} not found".format(sid)) return # Stil-Felder → Patch fuer _update_wall-Pfad patch_base = {} @@ -13069,7 +13069,7 @@ class ElementeBridge(panel_base.BaseBridge): stile = load_stempel_stile(doc) stil = next((s for s in stile if s.get("id") == sid), None) if stil is None: - print("[ELEMENTE] APPLY_STEMPEL_STIL: {} nicht gefunden".format(sid)) + print("[ELEMENTE] APPLY_STEMPEL_STIL: {} not found".format(sid)) return # Stil-Felder → Patch fuer _update_wall stempel-Branch patch_base = {} @@ -13214,7 +13214,7 @@ class ElementeBridge(panel_base.BaseBridge): subprocess.Popen(["open", url]) print("[ELEMENTE] Swisstopo Karte geoeffnet:", url) except Exception as ex: - print("[ELEMENTE] Karte oeffnen fehlgeschlagen:", ex) + print("[ELEMENTE] Karte oeffnen failed:", ex) def _cmd_import_swisstopo(self, p): """File-Picker -> Rhino _-Import -> bewege neue Objekte auf den @@ -13224,7 +13224,7 @@ class ElementeBridge(panel_base.BaseBridge): doc = Rhino.RhinoDoc.ActiveDoc if doc is None: return kind = (p.get("kind") or "buildings").lower() - # Target-Sublayer ableiten (auto-anlegen wenn nicht vorhanden) + # Target-Sublayer ableiten (auto-anlegen wenn not present) if kind == "buildings": sub_name = _find_ebene_sublayer_name( doc, ["gebaeude", "gebäude", "buildings"], @@ -13275,7 +13275,7 @@ class ElementeBridge(panel_base.BaseBridge): try: Rhino.RhinoApp.RunScript(cmd, False) except Exception as ex: - print("[ELEMENTE] _-Import fehlgeschlagen:", ex); return + print("[ELEMENTE] _-Import failed:", ex); return # Differenz: neu hinzugekommene Objekte new_objs = [] @@ -13298,13 +13298,13 @@ class ElementeBridge(panel_base.BaseBridge): import layer_builder parent_idx = layer_builder._find_top_by_id(doc, z_id) if parent_idx < 0: - print("[ELEMENTE] Swisstopo: Parent-Layer nicht gefunden") + print("[ELEMENTE] Swisstopo: Parent-Layer not found") return parent_id = doc.Layers[parent_idx].Id code = sub_name.split("_", 1)[0] sub_idx = layer_builder._find_sublayer_by_code(doc, parent_id, code) if sub_idx < 0: - print("[ELEMENTE] Swisstopo: Sublayer {} nicht gefunden " + print("[ELEMENTE] Swisstopo: Sublayer {} not found " "— bitte erst Ebenen-Apply ausloesen".format(code)) return moved = 0 @@ -13646,7 +13646,7 @@ class ElementeBridge(panel_base.BaseBridge): len(grids), len(merged["points"]), len(merged["es"]), len(merged["ns"]))) except Exception as ex: - self._push_log("Grid-Merge fehlgeschlagen: {}".format(ex)) + self._push_log("Grid-Merge failed: {}".format(ex)) # Terrain-Volumize-Option: aus Opts lesen. depth in # METERN aus UI → in Doc-Units konvertieren. @@ -13676,7 +13676,7 @@ class ElementeBridge(panel_base.BaseBridge): if vol_obj is not None: obj = vol_obj if obj: mesh_objects.append((obj, merged_grid["bbox"])) except Exception as ex: - self._push_log("Mesh-Bau fehlgeschlagen: {}".format(ex)) + self._push_log("Mesh-Bau failed: {}".format(ex)) # Contours sind die Grundlage fuer vier moegliche Outputs: # 'contours' → flache 2D-Curves auf OKFF @@ -14157,7 +14157,7 @@ class ElementeBridge(panel_base.BaseBridge): base_idx = layer_builder._find_sublayer_by_code( doc, parent_id, "80") if base_idx < 0: - self._push_log(" 80_swisstopo nicht gefunden") + self._push_log(" 80_swisstopo not found") return base_id = doc.Layers[base_idx].Id moved = 0 @@ -14165,7 +14165,7 @@ class ElementeBridge(panel_base.BaseBridge): sub_idx = layer_builder._find_sublayer_by_code( doc, base_id, tile_id) if sub_idx < 0: - self._push_log(" Sub-Layer fuer {} nicht gefunden".format(tile_id)) + self._push_log(" Sub-Layer fuer {} not found".format(tile_id)) continue try: attrs = obj.Attributes.Duplicate() @@ -14342,7 +14342,7 @@ class ElementeBridge(panel_base.BaseBridge): doc, with_children=not solid) parent_idx = layer_builder._find_top_by_id(doc, z_id) if parent_idx < 0: - self._push_log(" Geschoss nicht gefunden"); return + self._push_log(" Geschoss not found"); return parent_id = doc.Layers[parent_idx].Id base_idx = layer_builder._find_sublayer_by_code( doc, parent_id, target_code) @@ -16255,7 +16255,7 @@ def _on_object_deleted(sender, e): wenn die Source mit gleicher ID zurueckkommt (= Transform, kein User- Delete). """ - # Waehrend Swisstopo-Import: keine DOSSIER-Metas vorhanden, nur Overhead + # Waehrend Swisstopo-Import: keine DOSSIER-Metas present, nur Overhead if sc.sticky.get("dossier_swisstopo_busy"): return # Waehrend Move/Rotate/Mirror/Scale: CommandEnd-Pfad uebernimmt das # Re-Sync. Sonst queued der Delete-Event ueberfluessige Regen-Calls die @@ -16628,7 +16628,7 @@ def _migrate_plangrafik_60_to_80_once(doc): e["code"] = "80" changed = True break - # RAEUME / GF / AGF proaktiv eintragen wenn noch nicht vorhanden — damit + # RAEUME / GF / AGF proaktiv eintragen wenn noch not present — damit # sie im Ebenen-Manager sichtbar sind ohne erst einen Raum erstellen zu # muessen. existing_codes = {e.get("code") for e in ebenen if isinstance(e, dict)} @@ -16970,7 +16970,7 @@ def _on_idle_selection(sender, e): # One-shot: alte wand_outline Curves entfernen (Feature deaktiviert # wegen Technical-Drawing Konflikt) _migrate_strip_wand_outlines_once(doc) - # Oeffnungen-Tree in dossier_ebenen anlegen falls noch nicht vorhanden + # Oeffnungen-Tree in dossier_ebenen anlegen falls noch not present # (sonst erscheinen die neuen Sublayer nicht im Ebenen-Panel). _ensure_oeff_ebenen_once(doc) @@ -17360,7 +17360,7 @@ def _on_command_begin(sender, e): # Listener bail-out — am Ende einmal redrawn. if name in _USER_BULK_CMDS: sc.sticky[_BULK_ACTIVE_KEY] = name - print("[ELEMENTE] Bulk-Op start: '{}' — Listener bail aktiv".format(name)) + print("[ELEMENTE] Bulk-op start: '{}' — Listener bail active".format(name)) try: sc.sticky["_dossier_bulk_redraw_prev"] = bool(doc.Views.RedrawEnabled) doc.Views.RedrawEnabled = False diff --git a/rhino/inspect_section.py b/rhino/inspect_section.py index 8d30926..18dcbf3 100644 --- a/rhino/inspect_section.py +++ b/rhino/inspect_section.py @@ -56,7 +56,7 @@ for n in dir(layer): except Exception as ex: print(" layer.{} -> err: {}".format(n, ex)) -# layer.SectionStyle dumpen wenn vorhanden +# layer.SectionStyle dumpen wenn present try: if hasattr(layer, "SectionStyle"): dump("layer.SectionStyle", layer.SectionStyle) diff --git a/rhino/layer_builder.py b/rhino/layer_builder.py index 97e790e..a2b359a 100644 --- a/rhino/layer_builder.py +++ b/rhino/layer_builder.py @@ -102,7 +102,7 @@ def _find_linetype_index(doc, name): def _try_set(obj, prop_names, value): - """Versucht den Wert auf das erste vorhandene Property zu setzen. + """Versucht den Wert auf das erste presente Property zu setzen. Liefert den Property-Namen bei Erfolg, sonst None.""" if isinstance(prop_names, str): prop_names = (prop_names,) @@ -170,7 +170,7 @@ def _apply_section_style(doc, layer, section_cfg, layer_color): layer.RemoveCustomSectionStyle() print(diag, "removed (kein Hatch + kein Boundary)") except Exception as ex: - print(diag, "remove fehlgeschlagen:", ex) + print(diag, "remove failed:", ex) return style = SS() @@ -384,7 +384,7 @@ def build_layers(doc, zeichnungsebenen, ebenen): diag_prefix=z_name + "/") doc.Views.Redraw() n_total = len(walk_ebenen(ebenen)) - print("[EBENEN] {} Zeichnungsebenen x {} Ebenen aktualisiert (inkl. {} Sub)".format( + print("[EBENEN] {} drawing levels x {} layers updated (incl. {} sub)".format( len(zeichnungsebenen), len(ebenen), max(0, n_total - len(ebenen)))) @@ -532,7 +532,7 @@ def update_clipping_plane(doc, active_z, enabled): is_geschoss = bool(active_z and active_z.get("isGeschoss") and active_z.get("okff") is not None) - # IMMER vorhandene Plane loeschen — bei Re-Enable wollen wir frische + # IMMER presente Plane loeschen — bei Re-Enable wollen wir frische # vp_ids (alte koennten leer/falsch sein, dann clippt das Replace zwar # die Geometrie aber keinen Viewport). if existing is not None: @@ -540,15 +540,15 @@ def update_clipping_plane(doc, active_z, enabled): doc.Objects.Delete(existing.Id, True) print("[CLIP] alte Plane geloescht") except Exception as ex: - print("[CLIP] Delete fehlgeschlagen:", ex) + print("[CLIP] Delete failed:", ex) if (not enabled) or (not is_geschoss): - print("[CLIP] disabled — fertig (enabled={}, isGeschoss={})".format(enabled, is_geschoss)) + print("[CLIP] disabled — done (enabled={}, isGeschoss={})".format(enabled, is_geschoss)) doc.Views.Redraw() return # dict.get(k, default) liefert default NUR wenn Key fehlt — bei - # Key-vorhanden-aber-None gibt's None zurueck. float(None) crasht. + # Key-present-aber-None gibt's None zurueck. float(None) crasht. # Daher explizit None-faangen: okff_raw = active_z.get("okff") sh_raw = active_z.get("schnitthoehe") @@ -656,7 +656,7 @@ def cleanup_default_layers(doc): except Exception: pass if deleted: - print("[EBENEN] Default-Layer entfernt: {}".format(", ".join(deleted))) + print("[EBENEN] Default layer removed: {}".format(", ".join(deleted))) def _find_sublayer_by_code_recursive(doc, parent_id, code): @@ -682,14 +682,14 @@ def set_active_sublayer(doc, zeichnungsebene_id, code): 7101_Strassen liegt zwei Ebenen tief).""" parent_idx = _find_top_by_id(doc, zeichnungsebene_id) if parent_idx < 0: - print("[EBENEN] Parent-Layer fuer Zeichnungsebene {} nicht gefunden".format(zeichnungsebene_id)) + print("[EBENEN] Parent-Layer fuer Zeichnungsebene {} not found".format(zeichnungsebene_id)) return parent_id = doc.Layers[parent_idx].Id sub_idx = _find_sublayer_by_code_recursive(doc, parent_id, code) if sub_idx >= 0: doc.Layers.SetCurrentLayerIndex(sub_idx, True) else: - print("[EBENEN] Sublayer mit Code {} unter Parent {} nicht gefunden".format(code, doc.Layers[parent_idx].Name)) + print("[EBENEN] Sublayer with code {} under parent {} not found".format(code, doc.Layers[parent_idx].Name)) def apply_visibility(doc, zeichnungsebenen, ebenen, active_z_id, active_code, z_mode, e_mode): diff --git a/rhino/layers_panel.py b/rhino/layers_panel.py index 6c239ae..0188168 100644 --- a/rhino/layers_panel.py +++ b/rhino/layers_panel.py @@ -234,7 +234,7 @@ def _read_launcher_schema(): data = json.loads(f.read().decode("utf-8")) schema = (data or {}).get("layerSchema") if isinstance(schema, list) and schema: - # Sanity: alle vier Pflichtfelder vorhanden + # Sanity: alle vier Pflichtfelder present clean = [r for r in schema if isinstance(r, dict) and r.get("code") and r.get("name") @@ -673,7 +673,7 @@ def apply_layer_preset_by_name(doc, name): presets = load_layer_presets(doc) preset = next((p for p in presets if p.get("name") == name), None) if preset is None: - print("[EBENEN] apply_layer_preset_by_name: '{}' nicht gefunden".format(name)) + print("[EBENEN] apply_layer_preset_by_name: '{}' not found".format(name)) return False payload = { "layers": preset.get("layers") or [], @@ -1621,7 +1621,7 @@ class EbenenBridge(panel_base.BaseBridge): def _send_library(self): """Sendet aktuelle Library-Items ans Frontend (LIBRARY_ITEMS-Message). Items kommen mit - previewDataUri (base64 PNG) wenn Vorschau vorhanden.""" + previewDataUri (base64 PNG) wenn Vorschau present.""" try: import library m = library.load_manifest() @@ -1952,7 +1952,7 @@ class EbenenBridge(panel_base.BaseBridge): replaced = True break if not replaced: - print("[EBENEN] save_geschoss: id {} nicht gefunden".format(gid)) + print("[EBENEN] save_geschoss: id {} not found".format(gid)) return # Build_layers + Save via _apply (durchlaeuft ohne save_e) e_raw = doc.Strings.GetValue("dossier_ebenen") @@ -2055,7 +2055,7 @@ class EbenenBridge(panel_base.BaseBridge): return False replaced = _replace_in_tree(e_list, orig_code, updated) if not replaced: - print("[EBENEN] save_ebene: code {} nicht gefunden".format(orig_code)) + print("[EBENEN] save_ebene: code {} not found".format(orig_code)) return z_raw = doc.Strings.GetValue("dossier_zeichnungsebenen") try: z_list = json.loads(z_raw) if z_raw else [] @@ -2191,10 +2191,10 @@ class EbenenBridge(panel_base.BaseBridge): n_with_fill = sum(1 for e in ebenen if isinstance(e, dict) and isinstance(e.get("fill"), dict) and e["fill"].get("pattern") not in (None, "None")) - print("[EBENEN] dossier_ebenen gespeichert: {} Ebenen, davon {} mit fill, JSON-len={}".format( + print("[EBENEN] dossier_ebenen saved: {} layers, of which {} with fill, JSON-len={}".format( len(ebenen), n_with_fill, len(e_json))) re_read = doc.Strings.GetValue("dossier_ebenen") - print("[EBENEN] dossier_ebenen verifiziert: len={}".format(len(re_read) if re_read else 0)) + print("[EBENEN] dossier_ebenen verified: len={}".format(len(re_read) if re_read else 0)) print("[EBENEN] _apply: cleanup_default_layers ...") layer_builder.cleanup_default_layers(doc) print("[EBENEN] _apply: ensure_active_sublayer ...") @@ -2208,7 +2208,7 @@ class EbenenBridge(panel_base.BaseBridge): if fill_changed: gestaltung.refresh_layer_fills(doc) else: - print("[EBENEN] _apply: fill-Signatur unveraendert -> kein Hatch-Refresh") + print("[EBENEN] _apply: fill signature unchanged -> no hatch refresh") # Plot-Color Repair laeuft immer (no-op falls schon synchron) gestaltung.repair_plot_colors(doc) except Exception as ex: @@ -2600,12 +2600,12 @@ class EbenenBridge(panel_base.BaseBridge): return parent_idx = layer_builder._find_top_by_id(doc, z_id) if parent_idx < 0: - print("[EBENEN] Parent fuer aktive Zeichnungsebene nicht gefunden") + print("[EBENEN] Parent fuer aktive Zeichnungsebene not found") return parent_id = doc.Layers[parent_idx].Id sub_idx = layer_builder._find_sublayer_by_code(doc, parent_id, code) if sub_idx < 0: - print("[EBENEN] Sublayer {} unter {} nicht gefunden".format(code, doc.Layers[parent_idx].Name)) + print("[EBENEN] Sublayer {} unter {} not found".format(code, doc.Layers[parent_idx].Name)) return objs = list(doc.Objects.GetSelectedObjects(False, False)) moved = 0 @@ -2749,7 +2749,7 @@ class EbenenBridge(panel_base.BaseBridge): pe_states = None pz_states = None - # --- Eye-State-Pfad (wenn vorhanden) --- + # --- Eye-State-Pfad (wenn present) --- if pe_states is not None or pz_states is not None: try: e_raw = doc.Strings.GetValue("dossier_ebenen") or "[]" diff --git a/rhino/layouts.py b/rhino/layouts.py index 1aae9f2..2a47c52 100644 --- a/rhino/layouts.py +++ b/rhino/layouts.py @@ -389,7 +389,7 @@ class LayoutsBridge(panel_base.BaseBridge): try: page = doc.Views.AddPageView(name, w, h) if page is None: - print("[LAYOUTS] AddPageView fehlgeschlagen"); return + print("[LAYOUTS] AddPageView failed"); return print("[LAYOUTS] '{}' angelegt ({}x{})".format(name, w, h)) except Exception as ex: print("[LAYOUTS] AddPageView Fehler:", ex) @@ -414,7 +414,7 @@ class LayoutsBridge(panel_base.BaseBridge): done = True print("[LAYOUTS] SetPageSize -> {}x{}".format(w, h)) except Exception as ex: - print("[LAYOUTS] SetPageSize fehlgeschlagen:", ex) + print("[LAYOUTS] SetPageSize failed:", ex) # 2) Fallback: Properties (haengt von Rhino-Version ab) if not done: try: @@ -423,7 +423,7 @@ class LayoutsBridge(panel_base.BaseBridge): done = True print("[LAYOUTS] PageWidth/Height-Properties -> {}x{}".format(w, h)) except Exception as ex: - print("[LAYOUTS] Property-Setter fehlgeschlagen:", ex) + print("[LAYOUTS] Property-Setter failed:", ex) if not done: print("[LAYOUTS] Konnte Seiten-Groesse nicht setzen — bitte ueber Rhinos Layout-Dialog aendern") try: page.Redraw() @@ -515,7 +515,7 @@ class LayoutsBridge(panel_base.BaseBridge): pdf.Write(path) print("[LAYOUTS] PDF geschrieben: {} ({} Seite(n))".format(path, n_added)) except Exception as ex: - print("[LAYOUTS] PDF-Export fehlgeschlagen:", ex) + print("[LAYOUTS] PDF-Export failed:", ex) finally: # Vorherige View wieder aktivieren if prev_view is not None: @@ -538,7 +538,7 @@ class LayoutsBridge(panel_base.BaseBridge): if doc.Path: base = os.path.splitext(os.path.basename(doc.Path))[0] + "_Layouts" dlg.FileName = "{}.pdf".format(base) - # Default-Folder — neben der .3dm wenn vorhanden + # Default-Folder — neben der .3dm wenn present if doc.Path: try: dlg.Directory = System.Uri(os.path.dirname(doc.Path)) except Exception: pass diff --git a/rhino/library.py b/rhino/library.py index 862bcc1..9b24be9 100644 --- a/rhino/library.py +++ b/rhino/library.py @@ -698,7 +698,7 @@ def _read_3dm_geometry(abs_path): """Liest alle Top-Level-Objekte aus einer .3dm-Datei. Returns Liste von (GeometryBase, ObjectAttributes). Bei Fehler leere Liste.""" if not abs_path or not os.path.isfile(abs_path): - print("[LIBRARY] _read_3dm: Datei nicht gefunden:", abs_path) + print("[LIBRARY] _read_3dm: Datei not found:", abs_path) return [] try: from Rhino.FileIO import File3dm @@ -840,7 +840,7 @@ def import_item(doc, item_id, at_point=None, layer2d=-1, layer3d=-1): symbol/object → InstanceDefinition im Doc via File3dm.Read. at_point + layer2d/3d nur fuer symbol/object.""" item = find_item(item_id) - if item is None: return False, "Item nicht gefunden: " + str(item_id) + if item is None: return False, "Item not found: " + str(item_id) t = item.get("type") if t == "material": return import_material(doc, item) diff --git a/rhino/massstab.py b/rhino/massstab.py index a904bee..c0124db 100644 --- a/rhino/massstab.py +++ b/rhino/massstab.py @@ -104,7 +104,7 @@ def _detect_dpi(): try: from System.Diagnostics import Process, ProcessStartInfo except Exception as ex: - print("[MASSSTAB] auto-detect: .NET Process nicht verfuegbar:", ex) + print("[MASSSTAB] auto-detect: .NET Process not available:", ex) return None if not os.path.isfile("/usr/bin/osascript"): # Vermutlich nicht macOS -> nichts zu detecten @@ -162,7 +162,7 @@ def _detect_dpi(): lpx, float(data.get("lpy") or 0))) return dpi except Exception as ex: - print("[MASSSTAB] auto-detect fehlgeschlagen:", ex) + print("[MASSSTAB] auto-detect failed:", ex) return None finally: if script_path: @@ -875,7 +875,7 @@ def _apply_scale(doc, vp, ratio): Rhino.RhinoApp.RunScript("_-Zoom _Factor {:.6f} _Enter".format(factor), False) applied = True except Exception as ex3: - print("[MASSSTAB] _apply_scale alle Varianten fehlgeschlagen:", + print("[MASSSTAB] _apply_scale alle Varianten failed:", ex1, ex2, ex3) if not applied: return False diff --git a/rhino/overrides.py b/rhino/overrides.py index 4a92bfb..b748cd0 100644 --- a/rhino/overrides.py +++ b/rhino/overrides.py @@ -257,7 +257,7 @@ def delete_rule_template(name): def set_active_preset(doc, name): """Aktiviert ein gespeichertes Preset: kopiert dessen Rules ins Doc-Config und markiert es als activePreset. Wenn name leer/None: aktives Preset - geclear-t, Rules bleiben unveraendert (User waehlt "kein Preset"). Bei + geclear-t, Rules bleiben unchanged (User waehlt "kein Preset"). Bei aktivem enabled-Flag wird sofort neu applied. True bei Erfolg.""" if doc is None: return False cfg = load_config(doc) diff --git a/rhino/panel_base.py b/rhino/panel_base.py index 429d41f..5ed927c 100644 --- a/rhino/panel_base.py +++ b/rhino/panel_base.py @@ -113,7 +113,7 @@ def migrate_to_dossier(doc): new = "dossier_" + suffix try: if doc.Strings.GetValue(new): - continue # Dossier-Variante vorhanden -> nicht ueberschreiben + continue # Dossier-Variante present -> nicht ueberschreiben for prefix in _LEGACY_PREFIXES: old_v = doc.Strings.GetValue(prefix + suffix) if old_v: @@ -327,7 +327,7 @@ def load_inline(wv, mode, params=None): if _INLINE_TEMPLATE is None or _INLINE_TEMPLATE[0] != cur_mtime: sig, tmpl = _build_inline_template() if tmpl is None: - print("[{}] dist nicht gefunden".format(mode.upper())) + print("[{}] dist not found".format(mode.upper())) return _INLINE_TEMPLATE = (sig, tmpl) @@ -741,7 +741,7 @@ def make_panel_icon(name_or_letter, bg_hex): except Exception as ex: print("[panel_base] Icon path check error:", ex) - # 1) Material-Icon-Font (wenn keine SVG vorhanden) + # 1) Material-Icon-Font (wenn keine SVG present) mat_cp = _MATERIAL_CODEPOINTS.get(name_or_letter) if not used_svg and mat_cp is not None: font_family_name = _try_material_font() @@ -815,7 +815,7 @@ def make_panel_icon(name_or_letter, bg_hex): print("[panel_base] Icon erzeugt via Eto.Drawing.Icon(path) [{}]".format(tag)) return ic except Exception as ex: - print("[panel_base] Eto.Drawing.Icon(path) fehlgeschlagen:", ex) + print("[panel_base] Eto.Drawing.Icon(path) failed:", ex) # Bitmap-Fallback (in-memory) — wenn alles vorherige fehlschlaegt try: ic = drawing.Icon(1.0, bmp) @@ -825,7 +825,7 @@ def make_panel_icon(name_or_letter, bg_hex): print("[panel_base] Icon Fallback: Eto.Bitmap zurueck ({})".format(tag)) return bmp except Exception as ex: - print("[panel_base] Icon-Erstellung fehlgeschlagen:", ex) + print("[panel_base] Icon-Erstellung failed:", ex) return None @@ -860,7 +860,7 @@ def register_and_open(mode, caption, guid_str, bridge_factory, icon_spec=None, m t_reg = time.time() plugin = find_plugin() if plugin is None: - print("[{}] Plugin nicht gefunden".format(mode.upper())) + print("[{}] Plugin not found".format(mode.upper())) return try: type_name = "DynPanel_" + mode @@ -900,7 +900,7 @@ def register_and_open(mode, caption, guid_str, bridge_factory, icon_spec=None, m registered_with_icon = False # Erst mit Icon versuchen, dann stillschweigend ohne (Mac Rhino-Panels # akzeptieren auf manchen Versionen nur System.Drawing.Icon, das auf - # Mac nicht verfuegbar ist - die Registrierung ohne Icon ist OK). + # Mac not available ist - die Registrierung ohne Icon ist OK). attempts = [(icon, True)] if icon is not None else [] attempts.append((None, False)) for arg, with_icon in attempts: @@ -914,10 +914,10 @@ def register_and_open(mode, caption, guid_str, bridge_factory, icon_spec=None, m break except Exception as ex: if with_icon: - print("[{}] RegisterPanel mit Icon fehlgeschlagen: {}".format( + print("[{}] RegisterPanel mit Icon failed: {}".format( mode.upper(), ex)) else: - print("[{}] RegisterPanel fehlgeschlagen: {}".format( + print("[{}] RegisterPanel failed: {}".format( mode.upper(), ex)) if registered and not registered_with_icon and icon is not None: print("[{}] Panel ohne Icon registriert (Fallback)".format(mode.upper())) @@ -927,7 +927,7 @@ def register_and_open(mode, caption, guid_str, bridge_factory, icon_spec=None, m sc.sticky[sticky_guid] = System.Guid(guid_str) print("[{}] Panel registered".format(mode.upper())) except Exception as ex: - print("[{}] Registrierung fehlgeschlagen: {}".format(mode.upper(), ex)) + print("[{}] Registrierung failed: {}".format(mode.upper(), ex)) return _t_mark("register", mode, t_reg) @@ -938,5 +938,5 @@ def register_and_open(mode, caption, guid_str, bridge_factory, icon_spec=None, m _t_mark("OpenPanel", mode, t_open) print("[{}] Panel opened".format(mode.upper())) except Exception as ex: - print("[{}] OpenPanel fehlgeschlagen: {}".format(mode.upper(), ex)) + print("[{}] OpenPanel failed: {}".format(mode.upper(), ex)) _t_mark("register_and_open", mode, t_outer) diff --git a/rhino/startup.py b/rhino/startup.py index ae394a7..6601cc4 100644 --- a/rhino/startup.py +++ b/rhino/startup.py @@ -362,7 +362,7 @@ def _load_all(sender, e): print("[STARTUP] unit-check active doc error:", ex) # Aliases + Shortcuts (Defaults aus rhino/aliases/shortcuts_default.json # + User-Overrides aus dossier_settings.json) registrieren. Idempotent — - # SetMacro/SetMacro ueberschreibt vorhandene Eintraege. Wenn Bridge noch + # SetMacro/SetMacro ueberschreibt presente Eintraege. Wenn Bridge noch # nicht in sticky liegt (elemente-Panel noch nicht geladen) ist das ok, # die Aliases zeigen auf das Dispatch-Skript das die Bridge lazy aus # sticky liest. diff --git a/rhino/styles.py b/rhino/styles.py index 3175a27..780e474 100644 --- a/rhino/styles.py +++ b/rhino/styles.py @@ -191,7 +191,7 @@ def _hex_to_color(h): def _force_load_linetypes(doc): """Rhinos Linetype-Tabelle wird lazy initialisiert — wir triggern es.""" - # 1) Eingebaute Methode (falls vorhanden) + # 1) Eingebaute Methode (falls present) for method_name in ("LoadDefaultLinetypes", "LoadDefaults", "LoadStandardLinetypes"): try: getattr(doc.Linetypes, method_name)() @@ -320,7 +320,7 @@ def _ebene_fill_for_layer(doc, layer): if True: f = e.get("fill") if not isinstance(f, dict): - print("[GESTALTUNG] _ebene_fill_for_layer: Ebene code={} hat KEIN fill-Feld".format(code)) + print("[GESTALTUNG] _ebene_fill_for_layer: Ebene code={} has NO fill field".format(code)) return None # lw: Strichstaerke der Hatch-Linien in mm. None = "wie Stift der Ebene" # (ColorSource/PlotWeightSource bleibt auf FromLayer). @@ -737,7 +737,7 @@ def refresh_layer_fills(doc): if updated or color_updated or added: doc.Views.Redraw() - print("[GESTALTUNG] refresh_layer_fills: pattern={}, farbe={}, neu={}, unveraendert={}".format( + print("[GESTALTUNG] refresh_layer_fills: pattern={}, farbe={}, neu={}, unchanged={}".format( updated, color_updated, added, skipped)) return updated + color_updated + added diff --git a/rhino/swisstopo.py b/rhino/swisstopo.py index 012e323..b9c5bf9 100644 --- a/rhino/swisstopo.py +++ b/rhino/swisstopo.py @@ -899,7 +899,7 @@ def generate_patch_from_contours(doc, contour_curves, progress=None): brep = rg.Brep.CreatePatch( geom_list, u_spans, v_spans, doc.ModelAbsoluteTolerance) if brep is None: - if progress: progress("Patch fehlgeschlagen (None zurueck)") + if progress: progress("Patch failed (None zurueck)") return None gid = doc.Objects.AddBrep(brep) if gid and gid != System.Guid.Empty: @@ -1027,7 +1027,7 @@ def volumize_terrain_object(doc, top_obj, depth_doc, progress=None): old_id = top_obj.Id new_gid = doc.Objects.AddMesh(vol, attrs) if new_gid is None or new_gid == System.Guid.Empty: - if progress: progress("Volumize: AddMesh fehlgeschlagen") + if progress: progress("Volumize: AddMesh failed") return None doc.Objects.Delete(old_id, True) new_obj = doc.Objects.Find(new_gid) @@ -1137,7 +1137,7 @@ def _geotiff_to_png(tif_path, max_dim=2048): img.width, img.height)) return png_path except ImportError: - print("[SWISSTOPO] Pillow nicht verfuegbar — versuche Eto.Drawing") + print("[SWISSTOPO] Pillow not available — versuche Eto.Drawing") except Exception as ex: print("[SWISSTOPO] Pillow-convert fail:", ex) # --- Variante 2: Eto.Drawing (Mac NSImage liest TIFF) diff --git a/rhino/text_editor.py b/rhino/text_editor.py index 5e7441c..4b16180 100644 --- a/rhino/text_editor.py +++ b/rhino/text_editor.py @@ -95,7 +95,7 @@ class TextEditorBridge(panel_base.BaseBridge): self._form_ref = None self._edit_obj_id = edit_obj_id # bei Doppelklick-Edit set self._initial_text = initial_text - self._initial_runs = initial_runs # rich-format-Runs falls vorhanden + self._initial_runs = initial_runs # rich-format-Runs falls present self._initial_html = initial_html # 1:1 Editor-HTML beim Reopen def set_form(self, form): @@ -274,7 +274,7 @@ class TextEditorBridge(panel_base.BaseBridge): break except Exception: pass if applied_scale is None: - print("[TEXT-EDITOR] AnnotationScaling-Property nicht gefunden") + print("[TEXT-EDITOR] AnnotationScaling-Property not found") attrs = Rhino.DocObjects.ObjectAttributes() col = st.get("color") # [r,g,b] oder None @@ -573,7 +573,7 @@ def open_for_edit(obj): if rj: initial_runs = json.loads(rj) except Exception as ex: print("[TEXT-EDITOR] read runs:", ex) - # Editor-innerHTML (Round-Trip-Konservierung): wenn vorhanden, + # Editor-innerHTML (Round-Trip-Konservierung): wenn present, # wird der Editor exakt mit diesem HTML geoeffnet initial_html = None try: diff --git a/rhino/toolbar.py b/rhino/toolbar.py index 078801b..b92b620 100644 --- a/rhino/toolbar.py +++ b/rhino/toolbar.py @@ -133,7 +133,7 @@ def _apply_viewport_colors(cfg): try: appset = Rhino.ApplicationSettings.AppearanceSettings except Exception as ex: - print("[OBERLEISTE] AppearanceSettings nicht verfuegbar:", ex) + print("[OBERLEISTE] AppearanceSettings not available:", ex) return False applied = [] for key, attr in _VIEWPORT_COLOR_ATTRS: @@ -162,7 +162,7 @@ def _import_display_modes(paths): try: DMD = Rhino.Display.DisplayModeDescription except Exception as ex: - print("[OBERLEISTE] DisplayModeDescription nicht verfuegbar:", ex) + print("[OBERLEISTE] DisplayModeDescription not available:", ex) return 0 for p in paths: try: @@ -340,7 +340,7 @@ def _ensure_dossier_display_mode(target_name, target_guid, template_basename, try: from Rhino.Display import DisplayModeDescription except Exception as ex: - print("[OBERLEISTE] {}: DMD nicht verfuegbar: {}".format(target_name, ex)) + print("[OBERLEISTE] {}: DMD not available: {}".format(target_name, ex)) return False import re template_ini_path = os.path.join(_TEMPLATES_DIR, template_basename) @@ -349,7 +349,7 @@ def _ensure_dossier_display_mode(target_name, target_guid, template_basename, target_guid_obj = System.Guid(target_guid) except Exception: target_guid_obj = None - # Template-Datei vorhanden? Wenn ja, Hash davon als "version key" + # Template-Datei present? Wenn ja, Hash davon als "version key" # benutzen — wir nur neu importieren wenn sich die Template-Datei # geaendert hat. template_exists = os.path.isfile(template_ini_path) @@ -553,7 +553,7 @@ def _ensure_dossier_display_mode(target_name, target_guid, template_basename, dmd = dm; break except Exception: pass if dmd is None: - print("[OBERLEISTE] Plan-Mode: nach Import nicht gefunden") + print("[OBERLEISTE] Plan-Mode: nach Import not found") return False # KEIN _apply_dossier_plan_attrs() hier — der wuerde # UpdateDisplayMode() aufrufen und die ini-Werte (ClipSectionUsage, @@ -882,7 +882,7 @@ def _apply_window_layout_impl(name): else: print("[OBERLEISTE] No Rhino.UI API candidates (Mac Rhino " "exposed das nicht statisch). Falling back to scripted commands.") - # Args zum Probieren: GUID zuerst (falls vorhanden) dann Name. + # Args zum Probieren: GUID zuerst (falls present) dann Name. # Beide als 1-arg Tuple. Doppelte Klammern haben in der alten Version # zu mix von String/Tuple gefuehrt — hier sauber als Liste of Tuples. arg_variants = [] @@ -948,7 +948,7 @@ def open_settings_dialog(): import Eto.Forms as _ef import Eto.Drawing as _ed except Exception as ex: - print("[OBERLEISTE] Eto-Import fehlgeschlagen:", ex); return + print("[OBERLEISTE] Eto-Import failed:", ex); return cfg = _settings_load() layouts = _list_window_layouts() @@ -1803,7 +1803,7 @@ class OberleisteBridge(panel_base.BaseBridge): elif t == "RUN_COMMAND": cmd = (p.get("cmd") or "").strip() if cmd: - # Auto-Praefix mit "_" falls nicht vorhanden, damit auch + # Auto-Praefix mit "_" falls not present, damit auch # lokalisierte Rhino-Installationen die EN-Namen verstehen. if not (cmd.startswith("_") or cmd.startswith("'")): cmd = "_" + cmd diff --git a/rhino/welcome.py b/rhino/welcome.py index 31079be..d533528 100644 --- a/rhino/welcome.py +++ b/rhino/welcome.py @@ -420,7 +420,7 @@ def _show_html_form(title, html, width=620, height=720, on_navigating=None, import Eto.Forms as ef import Eto.Drawing as ed except Exception as ex: - print("[WELCOME] Eto.Forms nicht verfuegbar:", ex) + print("[WELCOME] Eto.Forms not available:", ex) return None try: