Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Sorry, falls ich hier in der faschen Rubrik bin, habe nichts besseres gefunden.
Hallo zusammen,
ich würde gern meine Applikation mehrsprachig gestalten. Also z.B. die GUI in deutsch, englisch, spanisch. Gibt es hierzu käufliche Tools oder muss man das alles per Hand machen?
Es handelt sich in etwa um 300-400 Wörter pro Sprache.
Hat jemand von euch Erfahrung damit und kann mir Tipps geben?
LG. Hubert
Anzeige
18.06.2013, 12:33 (Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2013 12:40 von Kasi.)
Ich hatte das mal im Ansatz nach einem White-Paper von NI versucht, aber das war mir insgesamt doch etwas zu frickelig, vielleicht findest du dich da besser zurecht rein als ich
***edit***
Achja, käuflich gibt's das ganze natürlich auch, sieht wesentlich komfortabler aus, habe aber keinerlei Erfahrung damit: Localization Toolkit 2 for LabVIEW
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Danke für die Info, ich werde mir mal das käufliche Toolkit näher ansehen.
Wenn ich etwas mehr Erfahrung damit habe gebe ich hier später einen Kommentar dazu ab.
Das Toolkit von SEA ist gut, ich habs mir letztes Jahr mal auf der VIP angeschaut. Wenn man das häufiger benötigt, macht das Sinn. Es kostet aber meines Wissens pro Applikation Lizenzgebühren...
Es gibt hier im Forum aber diverse Threads zu dem Thema, da hab ich auch schon mal was beigetragen.
Zur Ergänzung: Ich hab das bei meiner jetzigen Firma erst einmal gemacht. Da hab ich alle notwendigen Texte fest in ein VI geschrieben: Ein TabControl...eine Seite entspricht einem (sichtbaren) Frontpanel...auf jeder Seite ein 2D-String-Array...die Zeilen enthalten die Begriffe, pro Sprache eine Spalte.
Dann hab ich dieses "Multi-Language-VI" an allen Stellen im Programm einsetzen können...das hatte die Eingänge "Sprache", "FrontPanel" und "Begriff" und als Ausgang einen String-Indicator für den jeweils aktuellen Begriff.
Vorteil dieser Variante: Keinerlei Verzögerung beim Umschalten der Sprache, weil alle Texte schon beim Starten der Applikation geladen werden (was jeder User hinnimmt, weil er es von nahezu allen Applikationen (Word, LabVIEW, Photoshop,...) kennt) und nicht erst später aus einer Datei.
Ein ähnliches Prinzip hat meines Wissens auch SEA angewendet.
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Man kann je Typ des Anzeige- oder Bedienelementes sehr viele Sachen direkt mittels VI-Server Eigenschaften übersetzen. Dies kann man z.B. beim Start der Anwendung für alle relevanten VIs im Vorfeld der ersten Ausführung machen und muss dies auch nur einmal machen bzw. bei Sprachwechsel. Besondere Behandlung benötigen im Normalfall Strings die direkt als Daten irgendwo drin stehen und übersetzt werden müssen (Dialogmeldungen etc.). Der skizzierte Ansatz hat den Vorteil, dass die VIs die übersetzt werden müssen nicht mit speziellen Code versehen werden müssen. Mal abgesehen von genannter Ausnahme.
Meines Wissens macht das SEA-Toolkit dies so weil sonst müsste man ja alle Stellen an denen übersetzt werden soll mit entsprechenden Code versehen.
(18.06.2013 20:40 )Holy schrieb: Man kann je Typ des Anzeige- oder Bedienelementes sehr viele Sachen direkt mittels VI-Server Eigenschaften übersetzen. Dies kann man z.B. beim Start der Anwendung für alle relevanten VIs im Vorfeld der ersten Ausführung machen und muss dies auch nur einmal machen bzw. bei Sprachwechsel.
Aha...was meinst du damit?
(18.06.2013 20:40 )Holy schrieb: ...dass die VIs die übersetzt werden müssen nicht mit speziellen Code versehen werden müssen...
What? Was für spezieller Code?
(18.06.2013 20:40 )Holy schrieb: Besondere Behandlung benötigen im Normalfall Strings...
Es geht doch immer nur um Strings ("Text")...auch ein "Caption" ist doch nichts anderes!
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Anzeige
19.06.2013, 15:19 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2013 15:20 von Holy.)
Wenn ich dich richtig verstehe hast du für jedes zu übersetzendes GUI-VI dies explizit in dem VI getan mit deinem Multilanguage-VI. D.h. du musst VIs die dieses Multilanguage-VI noch nicht benutzen, um eine Sprachunterstützung zu bewerkstelligen, anpassen.
Über den VI-Server Ansatz ist das aber nicht notwendig. Hiermit kannst du auch VIs übersetzen die dies orginal nie direkt unterstützen sollten.
Mit spezieller Behandlung meine ich Strings die als Daten verwendet werden. Also z.B. den Inhalt einer Textbox und nicht deren Caption. Da der Inhalt typischerweise dynamisch ist während die Caption statisch ist.
(19.06.2013 15:19 )Holy schrieb: Über den VI-Server Ansatz ist das aber nicht notwendig. Hiermit kannst du auch VIs übersetzen die dies orginal nie direkt unterstützen sollten.
Ah...du meinst "alle Captions im VI per VI Server lesen/schreiben", und es wird nur der "Pfad" zum VI angegeben, richtig? Würdest du da alle Strings auf eine Schlag laden (z.B. in ein Array), oder jeweils bei Bedarf aus einer Datei?
Das würdest du dann auch beim "Aufstarten" des Programms (der Exe) machen, oder? Ansonsten würde es ja evtl. ein wenig dauern. Ebenso beim Umschalten während der Laufzeit, da müssten die entsprechenden Strings ja jeweils geschrieben werden.
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
(19.06.2013 15:41 )Achim schrieb: Ah...du meinst "alle Captions im VI per VI Server lesen/schreiben", und es wird nur der "Pfad" zum VI angegeben, richtig? Würdest du da alle Strings auf eine Schlag laden (z.B. in ein Array), oder jeweils bei Bedarf aus einer Datei?
Das würdest du dann auch beim "Aufstarten" des Programms (der Exe) machen, oder? Ansonsten würde es ja evtl. ein wenig dauern. Ebenso beim Umschalten während der Laufzeit, da müssten die entsprechenden Strings ja jeweils geschrieben werden.
A.
Genau, man muss noch nichtmal den Pfad zum VI angeben. Typischerweise reichen statische Referenzen oder es geht auch komplett ohne Angabe über den Inhalt der Sprachdatei (VIs die nicht in der Sprachdatei sind werden nicht übersetzt). Weiterhin kann man das über Captions hinaus auch ohne Probleme noch auf weitere Sachen ausdehnen wie Rings, Boolean Text bei Buttons oder auch Header in MCLs.
Da die Übersetzung beim "Aufstarten" geschieht kann man gleich alles auf einmal lesen. Eine Übersetzung bei Sprachwechsel geht dann auch wieder für die ganze Anwendung und ist auch relativ schnell.
ich habe mir da auch eigene VIs geschrieben .... und nicht eingesetzt, da die Texte in der "anderen" Sprache einfach oft nicht auf den Platz passen. Wir schreiben daher alle GIUs in Englisch.