Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie wechsele ich die Sprache zur Laufzeit? (https://www.delphipraxis.net/210257-wie-wechsele-ich-die-sprache-zur-laufzeit.html)

Uwe Raabe 26. Mär 2022 08:44

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von softtouch (Beitrag 1503939)
Danke, das hilft ja ungemein...

Sollte es gar nicht. Ich finde es nur bezeichnend, wenn auf eine Frage zu Better Translation Manager auf einen Post verweisen wird, in dem gerade dieser Better Translation Manager vorgestellt wird.

softtouch 26. Mär 2022 09:49

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1503942)
Zitat:

Zitat von softtouch (Beitrag 1503939)
Danke, das hilft ja ungemein...

Sollte es gar nicht. Ich finde es nur bezeichnend, wenn auf eine Frage zu Better Translation Manager auf einen Post verweisen wird, in dem gerade dieser Better Translation Manager vorgestellt wird.

Es ging mir ja gar nicht um BTM, da gibt es andere, es ging mir eigentlich darum, wie ich die erzeugte .DEU resource (womit auch immer erzeugt) während der Laufzeit laden kann, sodass user eine Sprache auswählen können, das Program dann neu started und dann die resource geladen wird. Ich bin eigentlich davon ausgegangen, das es mit plain Delphi gehen würde, ohne andere Komponenten, aber das scheint ja wohl nicht so ganz der Fall zu sein. Damit hat sich mein Post sowieso erledigt.

kompi 26. Mär 2022 13:52

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Das geht mit Delphi ohne andere Komponenten.

Man muss nur in der Registry unter HKCU/Software/Embarcadero/Locales einen entsprechenden Eintrag hinzufügen, z.B.

als Name das Programm oder Package mit kompletten Pfad (als Beispiel: c:\Programme\Test\Test.exe) und als Wert DE für Deutsch, ENG für Englisch usw.

Startet man das Programm anschließend neu, so wird die eingestellte Sprache verwendet.

Funktioniert auch mit BTM problemlos.

Gruß Kompi

softtouch 26. Mär 2022 16:09

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von kompi (Beitrag 1503949)
Das geht mit Delphi ohne andere Komponenten.

Man muss nur in der Registry unter HKCU/Software/Embarcadero/Locales einen entsprechenden Eintrag hinzufügen, z.B.

als Name das Programm oder Package mit kompletten Pfad (als Beispiel: c:\Programme\Test\Test.exe) und als Wert DE für Deutsch, ENG für Englisch usw.

Startet man das Programm anschließend neu, so wird die eingestellte Sprache verwendet.

Funktioniert auch mit BTM problemlos.

Gruß Kompi

Ach, das ist ja cool und einfach! Vielen Dank!

Gausi 27. Mär 2022 07:40

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Ich hänge mich hier kurz ran für eine Nachfrage, weil ich gelegentlich überlege, für Mehrsprachigkeit auf das Delphi-interne Konzept umzusteigen:

Verstehe ich das richtig, dass für eine Änderung der GUI-Sprache des Programms ein Neustart des Programms notwendig ist? D.h. die Sprache kann zwar zum Start des Programms festgelegt werden (bzw. wird automatisch bestimmt), kann dann aber während der Laufzeit nicht mehr geändert werden? Und das Festlegen einer Sprache geht nur über einen "Embarcadero-Key" in der Registry, nicht unter einem anderen Key wie HKCU/Software/MyProgram/Locales oder über eine Konfig-Datei?

Uwe Raabe 27. Mär 2022 09:49

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von Gausi (Beitrag 1503962)
Verstehe ich das richtig, dass für eine Änderung der GUI-Sprache des Programms ein Neustart des Programms notwendig ist? D.h. die Sprache kann zwar zum Start des Programms festgelegt werden (bzw. wird automatisch bestimmt), kann dann aber während der Laufzeit nicht mehr geändert werden?

Ja, und das hat durchaus seine Vorteile.

Zitat:

Zitat von Gausi (Beitrag 1503962)
Und das Festlegen einer Sprache geht nur über einen "Embarcadero-Key" in der Registry, nicht unter einem anderen Key wie HKCU/Software/MyProgram/Locales oder über eine Konfig-Datei?

Du kannst den Key in deinem Programm über SetLocaleOverride selber bestimmen. Das muss halt nur vor dem Laden der Forms und Resource-Strings geschehen.

Gausi 27. Mär 2022 10:19

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1503965)
Ja, und das hat durchaus seine Vorteile.

Ok, danke. :thumb:

Dass das auch Vorteile hat (Performance?) kann gut sein, aber für mich wäre das dann gegenüber meines aktuellen Systems mit GNU gettext ein Feature weniger. Wie hoch ich dafür die Priorität setzen soll, weiß ich nicht so ganz, aber wenigstens habe ich an der Stelle jetzt Klarheit, falls die Frage mal akuter wird.

KodeZwerg 27. Mär 2022 10:23

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1503965)
Ja, und das hat durchaus seine Vorteile.

Was wäre denn ein Vorteil wenn man nur um Captions aufzufrischen das Programm neu starten muss? (Ich mach das während der Laufzeit und frage mich was ich verpasst habe)

kompi 27. Mär 2022 10:50

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Laut Dokumentation unter https://docwiki.embarcadero.com/RADS...misch_wechseln kann man die Ressourcen DLL auch während der Laufzeit wechseln und damit eine andere Sprache verwenden. Ich habe dies bisher noch nicht probiert, da der Neustart des Programms für mich ausreichend war. Ich kann mir auch keine Anwendung vorstellen, bei der man ständig die Sprache umschaltet.

Der Vorteil ist hier ganz klar: Die Verwaltung verschiedener Sprachen ist in VCL Anwendungen schon eingebaut. Ich brauche keine zusätzlichen Komponenten.

Und mit dem BTM wird die Sache zu einem Kinderspiel, da man z.B. den Microsoft Translation Dienst verwenden kann.

Gruß Kompi

Renate Schaaf 27. Mär 2022 11:23

AW: Wie wechsele ich die Sprache zur Laufzeit?
 
Es geht auch zur Laufzeit (sehr bedingt). Neu kreierte Formulare werden übersetzt angezeigt. Alle auto-kreierten Formulare müsste man wieder neu einlesen, und die sind dann im Design-Zustand. Scheint mir auch ein zu großer Aufwand zu sein.

Siehe hier: https://stackoverflow.com/questions/...ntime/14435962

Renate


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz