Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Übersetzungstexte werden nur in der default.mo gesucht (https://www.delphipraxis.net/204658-uebersetzungstexte-werden-nur-der-default-mo-gesucht.html)

charly52 16. Jun 2020 18:00

Übersetzungstexte werden nur in der default.mo gesucht
 
Hi

ich habe eine SW mit den Tools von J.Rathlev bearbeitet.

Schablone erstellen, Schablone und Übersetzten Text mergen und alles ins EXE - Verzeichnis kopieren.

Die SW besteht aus 3 Teilen
- einem generellen Block wo u.a. auch das Main-Form enthalten ist (Domain Name = Default)
- ein Block der Reports enthält (Domain Name = Reports) und
- ein Block der für mehrere Progr. gemeinsam ist. (Domain Name = Base)

Jetzt das Problem: z.B. der Texte mm/dd/YYYY hh:mm AM/PM steht
mit seiner Übersetzung dd.mm.YYYY hh:mm nur in Base.po

und so wie es aussieht wird aber nur in der default domain gesucht.



----------------------------------------------------------------------------
Ein Stück Logfile:
Found in .mo (default): "IP-Cam - "->"IP-Kamera - "
Found in .mo (default): "mm/dd/yyyy"->"dd.mm.yyyy"
Translation not found in .mo file (default) : "hh:mm AM/PM" <---- hier wird nur in 1 Domain gesucht?
Found in .mo (default): "mm/dd/yyyy"->"dd.mm.yyyy"

.................
.................

Loaded resourcestring: RTF Datei
Translation not found in .mo file (default) : "RTF Datei"
Translation not found in .mo file (Reports) : "RTF Datei" <---- hier wird in allen 3 Domains gesucht?
Translation not found in .mo file (Base) : "RTF Datei"

----------------------------------------------------------------------------

Etwas Info zum Programm

In xxxxx.dpr steht:

uses
GnuGetText in '..\xxx\Src\GnuGetText.pas', //1. Reihenfolge
gginitializer in '..\xxx\Src\gginitializer.pas', //2. ist wichtig
Windows,
usw.

begin

UseLanguage(aktLng); //und per Param. eine bestimmte Sprache setzen.

usw. usw.

end.

----------------------------------------------------------------------------

In gginitializer.pas steht genau und nur das folgende:

unit gginitializer;

interface

implementation

uses gnugettext;

initialization

AddDomainForResourceString('Reports');
AddDomainForComponent('Reports');
AddDomainForResourceString('Base'); //Texte aus dem xxxx Verzeichnis
AddDomainForComponent('Base');

end.


hat jemand eine Idee?
Schon mal Danke!

Charly

Bbommel 18. Jun 2020 08:21

AW: Übersetzungstexte werden nur in der default.mo gesucht
 
Hallo Charly,

kleiner Tipp: wenn du hier im Forum die Delphi-Tags um deinen Quellcode setzt, dann wird das Ganze etwas lesbarer. Die bekommst du, wenn du im Editor für einen Beitrag oben auf das Delphi-Icon klickst.

Zur eigentlichen Frage: wo steht denn der nicht übersetzte Text? Auf dem Formular oder kommt der im Quellcode vor und wird mit der "_"-Funktion übersetzt?

Du könntest jedenfalls testen, ob zusätzlich zu deinem bisherigen
Delphi-Quellcode:
AddDomainForResourceString('Base'); //Texte aus dem xxxx Verzeichnis

nicht vielleicht noch ein
Delphi-Quellcode:
textdomain('Base');

nötig ist, um die Suche für solche Texte auf die andere Datei umzustellen. Der sucht dann allerdings nicht zusätzlich in der Base.mo, sondern nur dort.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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