Sprachumschaltung von DE nach EN über Menü möglich gemacht
This commit is contained in:
@@ -1069,17 +1069,17 @@
|
||||
(setq exit-hz (gf-exit-hz segmente))
|
||||
|
||||
;; Seite fuer AUS-Element (vor Winkelberechnung, da Laengenanpassung davon abhaengt)
|
||||
(princ "\n\nAUS-Element (AS_Element_90_*) - Seite waehlen:")
|
||||
(princ "\n 1 - Links")
|
||||
(princ "\n 2 - Rechts")
|
||||
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
|
||||
(princ (ssg-text "gf-seite-aus-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
|
||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
||||
|
||||
;; Seite fuer EIN-Element
|
||||
(princ "\n\nEIN-Element (ES_Element_90_*) - Seite waehlen:")
|
||||
(princ "\n 1 - Links")
|
||||
(princ "\n 2 - Rechts")
|
||||
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
|
||||
(princ (ssg-text "gf-seite-ein-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
|
||||
(setq es-seite (if (= antwort "2") "rechts" "links"))
|
||||
|
||||
(setq as-block (strcat "AS_Element_90_" as-seite))
|
||||
|
||||
+22
-1
@@ -15,7 +15,7 @@ _MENULOAD → menu/SSG_LIB.mnu auswaehlen
|
||||
```
|
||||
|
||||
BricsCAD laedt daraufhin automatisch `SSG_LIB.mnl`, welches alle Module
|
||||
per `ssg-ensure` initialisiert (Kern: ssg_core/dbg/dialog/layer, dann
|
||||
per `ssg-ensure` initialisiert (Kern: ssg_core/lang/dbg/dialog/layer, dann
|
||||
alle Feature-Module). Details: siehe `../CLAUDE.md` Abschnitt "Lademechanismus".
|
||||
|
||||
**Manuell laden (Notfall / Entwicklung):**
|
||||
@@ -133,6 +133,20 @@ Interne Parser-Funktionen (nicht direkt aufrufen):
|
||||
|
||||
---
|
||||
|
||||
### `ssg_lang.lsp` – Sprachumschaltung (Deutsch/Englisch)
|
||||
|
||||
Zentrale Textverwaltung fuer benutzersichtbare Meldungen. Kern-Modul, wird direkt nach `ssg_core` geladen. Wird schrittweise auf weitere Module ausgerollt (siehe `doc/translate.md`).
|
||||
|
||||
| Funktion | Beschreibung |
|
||||
| --- | --- |
|
||||
| `ssg-text key` | Liefert Text zu `key` in `*ssg-lang*`, Fallback `de_DE`, dann Key selbst |
|
||||
| `ssg-textf key werte` | Wie `ssg-text`, ersetzt Platzhalter `%1 %2 ...` durch `werte` (Liste) |
|
||||
|
||||
Sprache umschalten: Befehl `SSG_SPRACHE` (Menue → Konfiguration → Sprache) setzt `*ssg-lang*`
|
||||
live und persistiert via `(setenv "DXFM_LANG" ...)`. Default ohne `DXFM_LANG` ist `"de_DE"`.
|
||||
|
||||
---
|
||||
|
||||
### `ssg_dbg.lsp` – Debug-Logging
|
||||
|
||||
Dateibasiertes Debug-Log mit gepuffertem Schreiben. `dbgf`/`dbg`/`dbgmsg` puffern im Speicher, `dbgreturn` flusht auf die Platte (open/append/close).
|
||||
@@ -350,6 +364,13 @@ Registrierte Dummy-Befehle:
|
||||
|
||||
> `FOERDERANLAGE` ist nicht hier definiert – dieser Befehl ist in `VarioFoerderer.lsp` implementiert.
|
||||
|
||||
**Konfigurationsbefehle** (Menue → Konfiguration):
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
| --- | --- |
|
||||
| `SSG_DIM_SWITCH` | Schaltet zwischen 2D/3D-Bloecken um (setzt `DXFM_DIM`, `DXFM_BLOCKS`, `DXFM_OMNIFLO`) |
|
||||
| `SSG_SPRACHE` | Oeffnet Dialog `sprache.dcl`, setzt `*ssg-lang*` und persistiert via `DXFM_LANG` (siehe [`ssg_lang.lsp`](#ssg_langlsp--sprachumschaltung-deutschenglisch)) |
|
||||
|
||||
**SSG_BLOCKEDIT** – Doppelklick/Kontextmenue-Dispatcher:
|
||||
|
||||
Erkennt den Blocktyp des selektierten INSERT-Blocks und ruft den passenden Bearbeitungsbefehl auf:
|
||||
|
||||
@@ -132,9 +132,41 @@
|
||||
(setenv "DXFM_DIM" dim-neu)
|
||||
(setenv "DXFM_BLOCKS" (strcat basis "\\data\\ils\\" dim-neu))
|
||||
(setenv "DXFM_OMNIFLO" (strcat basis "\\data\\omniflo\\" dim-neu))
|
||||
(princ (strcat "\nModus umgeschaltet auf: " dim-neu))
|
||||
(princ (strcat "\n DXFM_BLOCKS = " (getenv "DXFM_BLOCKS")))
|
||||
(princ (strcat "\n DXFM_OMNIFLO = " (getenv "DXFM_OMNIFLO")))
|
||||
(princ (ssg-textf "dim-switch-modus" (list dim-neu)))
|
||||
(princ (ssg-textf "dim-switch-blocks" (list (getenv "DXFM_BLOCKS"))))
|
||||
(princ (ssg-textf "dim-switch-omniflo" (list (getenv "DXFM_OMNIFLO"))))
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; SSG_SPRACHE - Sprache umschalten (Deutsch/Englisch)
|
||||
;; Setzt *ssg-lang* live und persistiert ueber DXFM_LANG
|
||||
;; ============================================================
|
||||
|
||||
(defun ssg-sprache-init ( / idx)
|
||||
(start_list "sprache")
|
||||
(add_list "Deutsch")
|
||||
(add_list "Englisch")
|
||||
(end_list)
|
||||
(setq idx (if (= *ssg-lang* "en_GB") "1" "0"))
|
||||
(set_tile "sprache" idx)
|
||||
)
|
||||
|
||||
(defun ssg-sprache-accept ( / idx neu)
|
||||
(setq idx (get_tile "sprache"))
|
||||
(setq neu (if (= idx "1") "en_GB" "de_DE"))
|
||||
(setq *ssg-lang* neu)
|
||||
(setenv "DXFM_LANG" neu)
|
||||
)
|
||||
|
||||
(defun c:SSG_SPRACHE ()
|
||||
(ssg-dialog-run
|
||||
(strcat (getenv "DXFM_DCL") "/sprache.dcl")
|
||||
"sprache"
|
||||
'ssg-sprache-init
|
||||
'ssg-sprache-accept
|
||||
)
|
||||
(princ (ssg-textf "sprache-gewechselt" (list *ssg-lang*)))
|
||||
(princ)
|
||||
)
|
||||
|
||||
|
||||
+4
-4
@@ -85,11 +85,11 @@
|
||||
(if defa
|
||||
(progn
|
||||
(initget 1 "Yes No Yes")
|
||||
(= (getkword (strcat "\n" prompt-text " Y/N <Y>: ")) "No")
|
||||
(= (getkword (strcat "\n" prompt-text (ssg-text "ques-yn-default-yes"))) "No")
|
||||
)
|
||||
(progn
|
||||
(initget 1 "Yes No No")
|
||||
(= (getkword (strcat "\n" prompt-text " Y/N <N>: ")) "Yes")
|
||||
(= (getkword (strcat "\n" prompt-text (ssg-text "ques-yn-default-no"))) "Yes")
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -536,8 +536,8 @@
|
||||
(if (not (new_dialog dialog-name dat))
|
||||
(progn (alert "Dialog konnte nicht geladen werden.") (exit))
|
||||
)
|
||||
(if init-fn (init-fn))
|
||||
(action_tile "accept" "(if accept-fn (accept-fn)) (done_dialog 1)")
|
||||
(if init-fn (apply init-fn nil))
|
||||
(action_tile "accept" "(if accept-fn (apply accept-fn nil)) (done_dialog 1)")
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
(start_dialog)
|
||||
(unload_dialog dat)
|
||||
|
||||
+2
-1
@@ -24,6 +24,7 @@
|
||||
)
|
||||
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
|
||||
(ssg-load-config)
|
||||
(load (strcat base-path "ssg_lang.lsp") "ssg_lang.lsp nicht gefunden")
|
||||
(load (strcat base-path "ssg_dbg.lsp") "ssg_dbg.lsp nicht gefunden")
|
||||
(load (strcat base-path "ssg_dialog.lsp") "ssg_dialog.lsp nicht gefunden")
|
||||
(load (strcat base-path "ssg_layer.lsp") "ssg_layer.lsp nicht gefunden")
|
||||
@@ -34,7 +35,7 @@
|
||||
(load (strcat base-path "tests.lsp") "tests.lsp nicht gefunden")
|
||||
(load (strcat base-path "OmniModulInsert.lsp") "OmniModulInsert.lsp nicht gefunden")
|
||||
(load (strcat base-path "SSG_LIB_Commands.lsp") "SSG_LIB_Commands.lsp nicht gefunden")
|
||||
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_dbg, ssg_dialog, ssg_layer, KreiselInsert, VarioFoerderer, Gefaellestrecke, export, tests, OmniModulInsert, SSG_LIB_Commands")
|
||||
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_lang, ssg_dbg, ssg_dialog, ssg_layer, KreiselInsert, VarioFoerderer, Gefaellestrecke, export, tests, OmniModulInsert, SSG_LIB_Commands")
|
||||
(princ)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user