| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | CIDEON Whitepaper: Elektronik und Mechanik redundanzfrei vereinen: Der Weg zur mechatronischen Stückliste, ein Whitepaper
|
Autor
|
Thema: Mehrsprachigkeit (1329 mal gelesen)
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 12:44 <-- editieren / zitieren --> Unities abgeben:
Ich muss meine Applikation in 3 Sprachen ausliefern (Deutsch, Englisch, Französisch) Lisp und C#.net ist ja kein Problem. Alle möglichen Texte einfach in eine Resourcendatei auslagern, und je nach Acad Version auf die entsprechende Resource zugreifen. Aber immer diese 3 fach Pflege der CUIs ärgert einen. Auch würde ich ganz gerne dynamische Blöcke verwenden. Aber die sind ja leider auch nicht mehrsprachig möglich, und somit 3 fach zu warten. Hat da wer Ideen, oder bleibt mir nichts anderes übrig, als alles 3 fach zu pflegen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Aug. 2010 13:18 <-- editieren / zitieren -->
Hi, ich verzichte sogar bei den Forms und Controls in VS.NET auf die Führung einer RES-Datei. Mein Ansatz führt über eine Datenbank, in der englische Begriffe (ganze Wortgruppen/-phrasen) als Basis, daneben die Spalten für die Entsprechungen in anderen Sprachen. Meine Basisauslegung der Controls etc sind dann auch in englisch gehalten. In meinen Apps gibt's dann einen Schalter, den sich der Anwender für seine Sprache auswählen kann und meine App hat dann definierte Vorgänge, was danach alles auszutauschen ist. Als solches kann der Anwender sogar im Lauf alles umdrehen ohne AutoCAD neu starten zu müssen. Mit Forms und Controls funkt das problemlos (ev. ein wenig Reserve lassen für Phrasen, die in anderen Sprachen länger sind, so Du fixe Label- oder TextControl-längen hast). Mit CUI nehme ich mal genaus an, wobei unsere Benutzerführungen da nicht untergebracht sind, als solches hab ich's auch noch nicht probiert, die Texte, Hilfeteile etc. im CUI im Lauf umzudrehen. Im Notfall einen Übersetzer schreiben, der sich die englische CUI holt und eine Kopie der CUI für deutsch und französisch anlegt, die Texte dabei ebenfalls von der DB holt. Mit Blöcken und Attributen ist es etwas dumm, da oft über Attributsbezeichnungen weitere Automatismen laufen, oder bei Blockaktualisierungen ja nicht die ganze Symbolbibliothek umzukrempeln ist. Hier halte ich es so, dass die Attributsbezeichnungen englisch (weil eher anerkannt als deutsch) gebaut werden und nur der PromptString übersetzt wird. Meine Arbeit für eine weitere Sprache ist damit soweit automatisiert, dass ich in der DB lediglich eine Spalte mit dem Ländercode hinzufügen muß, die Übersetzungen der Phrasen darf dann ein wissender machen und fertig. Mit DCL kann ich Dir da leider nicht helfen, denn die sind für mich nicht deutsch, englisch oder .... sondern immer noch spanisch (tschuldigung gleich vorweg an Marita). HTH, - alfred - ------------------ www.hollaus.at |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 13:29 <-- editieren / zitieren --> Unities abgeben:
Yepp, so ähnlich arbeite ich eigentlich auch. Da meine Übersetzungstexte alle in einer zentralen DB liegen, auf der Lisp und C#.net gemeinsam zugreifen, verwende ich auch nicht die eigentlich Resourcendateien. Ein Laufzeitumschalten ist bei mir eigentlich auch möglich. Aber egal. Hier habe ich nicht das Problem. Die CUI in einer Sprache zu erstellen, und automatisiert übersetzt erstellen zu lassen, habe ich auch schon überlegt. Aber irgendwie mag Autocad selbst erstellte CUIs nicht so richtig. Irgendwie bringe ich da verdammt viele Systemabstürze beim Verwenden dieser selbst erstellen CUIs zusammen. Attribute sind eigentlich immer englischsprachig. Der Promptstring interessiert eigentlich meine benutzer nicht. Im Prinzip haben wir leidlgich die Positionsnummer als Attribut, und die wird automatisch vergeben. DCL verwende ich nicht mehr. Früher wurden die DCL Dateien sowieso dynamsich zur Laufzeit aus einem Template erstellt und verwendet. Das heisst. Das Label Attribut hatte im Template einen Platzhalter, der beim Erstellen gegen den Text getauscht wurde.
Aber wie gesagt, gestorben. Da gefallen mir die C#-net Formulare weit besser. [Diese Nachricht wurde von fuchsi am 10. Aug. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 10. Aug. 2010 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für fuchsi
Mal eine ganz andere Idee. Schlag mich bitte nicht, wenn ich vollkommen falsch liege. ACAD erzeugt doch beim Start aus *.mnu Dateien automatisch eine *.cui. Die mnu Dateien sind nicht so kompliziert aufgebaut. Kann man nicht beim beenden (oder starten) von ACAD die vorhandene cui löschen lassen und aus einer DB die sprachspezifische mnu erzeugen lassen? Beim nächsten Start wird daraus automatisch eine cui. So, und nun werft mit Steinen... ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Aug. 2010 13:44 <-- editieren / zitieren -->
Hi, arbeitest Du die CUI's mit ASCII-Funktionen um oder verwendest Du was XML-artiges für die Bearbeitung? In zweiterem Fall hätte ich es (fast) verstanden, im ersteren Fall, wenn Du eine funktionierende CUI nimmst und wirklich die Texte austauscht, dann glaube ich weniger an Probleme. Da würde mir als Handicap nur die Text-Kodierung einfallen, worüber AutoCAD stolpern könnte. - alfred - ------------------ www.hollaus.at |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 13:49 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Dig15: Mal eine ganz andere Idee. Schlag mich bitte nicht, wenn ich vollkommen falsch liege. ACAD erzeugt doch beim Start aus *.mnu Dateien automatisch eine *.cui. Die mnu Dateien sind nicht so kompliziert aufgebaut. Kann man nicht beim beenden (oder starten) von ACAD die vorhandene cui löschen lassen und aus einer DB die sprachspezifische mnu erzeugen lassen? Beim nächsten Start wird daraus automatisch eine cui. So, und nun werft mit Steinen...
Nun ja. MNUs unterstützen halt keine Ribbons. Ich mag die zwar eh nicht, aber meine Planer fahren daruf tierisch darauf ab.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 10. Aug. 2010 13:52 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von a.n.: Hi,arbeitest Du die CUI's mit ASCII-Funktionen um oder verwendest Du was XML-artiges für die Bearbeitung? In zweiterem Fall hätte ich es (fast) verstanden, im ersteren Fall, wenn Du eine funktionierende CUI nimmst und wirklich die Texte austauscht, dann glaube ich weniger an Probleme. Da würde mir als Handicap nur die Text-Kodierung einfallen, worüber AutoCAD stolpern könnte. - alfred -
Mal überlegen. Ist schon ein Weilchen her. Meine Versuche waren damals Ascii basieren, soweit ich mich erinnere. Eventuell wars irgendso ein ANSI/ASCII/UTF Codierungsklump bei der Dateierzeugung. Soweit ich mich erinnere, habe ich die CUI Zeilenweise eingelsen, und dabei nachd en Platzhaltern gesucht, und eine neue Datei zeilenweis geschrieben. [EDIT] Notepad++ sagt mir, dass eine original CUI eine UTF8 ohne ByteOrderMark ist.
[Diese Nachricht wurde von fuchsi am 10. Aug. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|