Habe in diesem Forum einen älteren Beitrag gelesen, der die Menüanpassungen für mehrsprachige User zum Thema hatte. Da ich (Schweizer) oft für Kunden AutoCAD LT- Applikationen schreibe, die mehrsprachig sein müssen, gehe ich dieses Problem folgendermassen an:
Das Menü in deutsch enthält z.B.
***POP1
**Test
//Version deutsch
[Deutsch]
ID_rC01 [Massstab]^c^c^p
ID_rC02 [Layer]^c^c^p
ID_rC03 [Liste]^c^c^p
ID_rC04 [Text]^c^c^p
[--]
Das Menü in französisch enthält z.B.
***POP1
**Test
//Version französisch
[Française]
ID_rC01 [Échelle]^c^c^p
ID_rC02 [calque]^c^c^p
ID_rC03 [Liste]^c^c^p
ID_rC04 [Texte]^c^c^p
[--]
Weshalb zwei Menüdateien pflegen?
***POP1
**Test
//Version multilanguage
[$(eval,$(getenv,STRING01))]
ID_rC01 [$(eval,$(getenv,STRING02))]^c^c^p
ID_rC02 [$(eval,$(getenv,STRING03))]^c^c^p
ID_rC03 [$(eval,$(getenv,STRING04))]^c^c^p
ID_rC04 [$(eval,$(getenv,STRING05))]^c^c^p
[--]
Die Variablen fülle ich mit einer Skriptdatei ab:
_.setenv STRING01 English
_.setenv STRING02 Scale
etc.
Somit lässt sich meine Menüdatei mittels übersetzten Skriptdateien mehrsprachig verwenden. Ja und der Übersetzer muss nicht in meiner Menüdatei rumbasteln.
Ich kann natürlich auch Eigene Variablen mit Systemvariablen mischen um beispielsweise einen eingestellten Massstab anzeigen zu lassen. Dafür verwende ich hier die Variable LTSCALE und setze mittels \t den Wert tabulatorisch vom ersten Text ab:
ID_rC01 [$(eval,$(getenv,STRING02))\t$(eval,"1 : "$(eval,$(getvar,ltscale)))]^c^c^p
Resultat: Scale (tab) 1 : X wovon X den Wert von LTSCALE enthält.
Ja und die Funktionen die ich danach aufrufe schreibe ich natürlich immer englisch: Nicht ^c^c^pLinie; sondern ^c^c^p_.line. Somit ist gewährleistet, dass meine Funktionen auch in anderssprachigen AutoCAD LT- Versionen funktionieren.
Eine Einschränkung hat mein Menü jedoch: Die Einträge in ***HELPSTRINGS lassen sich nicht mit DIESEL übergeben. Deshalb sind diese Einträge mehrsprachig.
------------------
Auch für LT gibt es Lösungen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP