AGB  ·  Datenschutz  ·  Impressum  







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

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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 09: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
915 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 10: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.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 10: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
59 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 10: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
135 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 11: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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 27. Mär 2022, 14:20
Der Vorteil des Pure-DLL Ansatz, der halt einen Neustart erfordert, ist halt, dass man außer dem Eintrag in der Registry keinerlei sprach-relevanten Code benötigt. Das eliminiert zumindest diese eine Dependency, sei es nun eigener oder 3rd-Party Code. Das Built-in Verfahren funktioniert immerhin für alle (relevanten) Delphi Versionen gleichermaßen und wird dies vermutlich auch in Zukunft tun (übrigens auch für Non-Windows).

Obwohl sich der Anpassungsaufwand für externe Lösungen in den meisten Fällen wohl im Rahmen bleibt, sind je nach Implementierung irgendwelche Hickups nicht auszuschließen. Gerade bei Projekten, wo externe Lösungen erst genehmigt werden müssen oder dies wegen Sicherheitsbedenken eher schwierig ist, bietet die mitgelieferte Funktionalität eine gute und billige Alternative.

BTM mit seiner Fähigkeit, die DLLs direkt zu erzeugen, ist eine willkommene Ergänzung, mit dem die Nutzung der Delphi-Funktionalität deutlich vereinfacht wird. Wäre schön, wenn eine zukünftige Version auch andere Plattformen als Windows unterstützen würde.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie wechsele ich die Sprache zur Laufzeit?

  Alt 28. Mär 2022, 05:17
Zur Vollständigkeit halber:

https://www.delphipraxis.net/146618-...swerkzeug.html

1. klein
2. Sprachumstellung zur Laufzeit
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz