' schrieb:Vorstellen kann ich mirs zwar nicht, daß es auf meine Frage ein befriedigende Antwort gibt, aber in der Not klammert man sich eben an jeden Strohalm.
Gibt es eine pfiffige Möglichkeit, mit vertretbarem Aufwand alle Texte, oder wenigstens die Benennungen aller Bedienelemente, variabel zu machen, z.B Deutsch/Englisch, so daß man in einem Voreinstellungsmenü ein Auswahl treffen kann?
Die Alternative wären 2 getrennte Programme. Der Aufwand für ein solches zusätzliches Programm wäre nicht allzu hoch, aber das ist keine elegante Lösung, weil man dann leicht in Schwierigkeiten bei der Versionspflege kommt.
nicht, verzweifeln, ich hab sowas schonmal gemacht, das geht gut, ist aber n büschen Arbeit ...
Der Trick ist folgender: Jedes Control hat eine Caption. Die Caption kann ein und ausgeblendet werden und
zur Laufzeit per Eigenschaftsknoten geändert werden. Ich hab mir ein Tool erstellt, dass alle Controls in einem VI mit
eingeblendeter Caption "einsammelt" und in eine Text-Datei schreibt. Damit hab ich mir quasi eine Liste der Controls erzeugt, die zur Laufzeit übersetzt werden können.
Das Format dieser Textdatei kannst du dir nun nach deinen Bedürfnissen zusammenbasteln, ich glaube ich hatte 6 Spalten pro Sprache für Caption, Tipstrip, Boolean Text, blablabla ... Die Datei wurde bei Bedarf (=Umschaltung der Sprache) eingelesen und die Strings aus den entsprechenden Spalten wurden auf die Controls "angewandt".
Vorab gibt es folgendes zu überlegen: Ist es wirklich nötig die Sprache zu Laufzeit umzuschalten? Es ist nämlich einfacher die VIs "offline" zu übersetzen und eine deutsche, englische, spanische, etc ... *.exe rauszugeben, das könnte man auf die gleiche Art erledigen, nur, dass man eben die "ich änder mein Control soundso" VIs nicht mit einkompilieren muss - eine Fehlerquelle weniger.
Vermutlich wirst du auf die Frage stoßen: was mach ich mit String-Konstanten, die z.B. als Format-Specifyer oder als Input für eine DLG-Box dienen, usw ... ich hab den schmutzigen Trick verwendet, dass ich aus den Konstanten Controls gemacht habe, mit dem Prefix CONST_ in der Caption und bei diesen Controls auch den Text (Value) geändert habe und als Standardwert festgelegt habe ... klappt ganz gut
zum Thema Versionspflege: man kann das ganze auch noch so aufbohren, dass man die Übersetzungen in einer DB pflegt und die Versionsnummer mitschleppt ...
elegant ... hmm ... naja, gut äh ... das Problem haben alle Programmierer, bei C/C++ schleppt man dann halt seine Ressourcen-Datei mit, auch nicht schön und pflegen muss man das Ding auch ...