AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alle Units mit GetText übersetzen, oder nur Unit1?
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Units mit GetText übersetzen, oder nur Unit1?

Ein Thema von AlexII · begonnen am 7. Mär 2012 · letzter Beitrag vom 7. Mär 2012
Antwort Antwort
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Alle Units mit GetText übersetzen, oder nur Unit1?

  Alt 7. Mär 2012, 13:46
Hallo,

ich übersetze mein Programm mit GNU gettext. Nun die Frage muss ich in allen Units folgendes aufrufen

Delphi-Quellcode:
Unit2
....

If (Language='German') or (GetCurrentLanguage()='de_DE') or (GetCurrentLanguage()='de_AT') or (GetCurrentLanguage()='de_CH') then
begin
UseLanguage('de_DE');
ReTranslateComponent(Self);
end;
wenn bei mir alle Units in dem Implementation-Abschnitt der Unit1 eingebunden sind?

Delphi-Quellcode:
implementation

uses Unit2, Unit3, Unit4;
....
Reicht es wenn ich die ganze Übersetzung in Unit1 realisiere? Ich denke ja, oder? Bin mir da aber nicht sicher.

Danke!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Alle Units mit GetText übersetzen, oder nur Unit1?

  Alt 7. Mär 2012, 18:50
Reicht es wenn ich die ganze Übersetzung in Unit1 realisiere? Ich denke ja, oder? Bin mir da aber nicht sicher.
Danke!
Nein. Die Übersetzung (also mindestens das "TranslateComponent()") muss für jedes erzeugte Formular durchgeführt werden.

Es bietet sich daher an, alle Formulare von einer gemeinsamen Basisklasse abzuleiten und die Sprachverwaltung (welche Sprache soll benutzt werden) und die eigentliche Übersetzung in dieser Basisklasse zu machen. So muss man sich nicht in jeden neuen Formular darum kümmern.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Alle Units mit GetText übersetzen, oder nur Unit1?

  Alt 7. Mär 2012, 19:27
Danke!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Alle Units mit GetText übersetzen, oder nur Unit1?

  Alt 7. Mär 2012, 19:40
In Delphi-Referenz durchsuchenScreen werden auch alle VCL-Forms aufgelistet.
Diese könnte man durchlaufen und dann für jedes Fenster das TranslateComponent aufrufen, ohne es überall einbauen zu müssen.

Die automatisch erzeugten Fenster (über CreateForm in der DRP) besitzen Delphi-Referenz durchsuchenApplication, so daß man dort notfalls auch über Application.Components an diese renkommen könnte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Alle Units mit GetText übersetzen, oder nur Unit1?

  Alt 7. Mär 2012, 20:01
Das setzt aber voraus, dass zum Zeitpunkt wenn man übersetzen will schon alle Formulare erzeugt sind, was wohl normalerweise nicht so oft der Fall ist. Meistens wird man ein Hauptformular haben und die anderen Formulare nur erzeugen wenn man sie benötigt.

Da halte ich es für günstiger eine Basisklasse zu haben die "sich selbst" dann übersetzt wenn das jeweilige Formular erzeugt wird.
Ralf Kaiser
  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 08:39 Uhr.
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