AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie wechsele ich die Sprache zur Laufzeit?

Wie wechsele ich die Sprache zur Laufzeit?

Ein Thema von softtouch · begonnen am 25. Mär 2022 · letzter Beitrag vom 28. Mär 2022
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.942 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 26. Mär 2022, 09:44
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
106 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 26. Mär 2022, 10:49
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.
  Mit Zitat antworten Zitat
kompi

Registriert seit: 27. Apr 2012
Ort: Duisburg
53 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 26. Mär 2022, 14:52
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
Detlef Schmitz
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
106 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 26. Mär 2022, 17:09
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!
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
802 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 08:40
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?
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.942 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 10:49
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.

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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
802 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 11:19
Ja, und das hat durchaus seine Vorteile.
Ok, danke.

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.
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.568 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 11:23
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)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
kompi

Registriert seit: 27. Apr 2012
Ort: Duisburg
53 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 11:50
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
Detlef Schmitz
  Mit Zitat antworten Zitat
Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
73 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 12:23
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
Renate
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf