[gelöst] .po Dateien

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

[gelöst] .po Dateien

Beitrag von fliegermichl »

Hallo zusammen,

ich habe vor einiger Zeit ein Programm mit Lazarus erstellt, bei dem i18n aktiviert war und auch funktioniert hat.
Nun war mein Rechner in die ewigen Jagdgründe eingegangen und ich habe einen neuen.
Darauf habe ich mittels fpcupdeluxe eine aktuelle Version von Lazarus und FPC installiert.
Lazarus 2.2.5 (rev lazarus_2_2_4-28-gcbedc5ddf0) FPC 3.2.2 i386-win32-win32/win64

Dann das Projekt aus dem git Repo neu geclont.
In den Projekteinstellungen ist i18n aktiviert und auch die Option .po Datei beim speichern einer .lfm Datei erstellen/aktualisieren sowie der Speicherordner sind
aktiviert bzw. eingestellt.

Wenn ich nun aber neue Resourcenstrings erzeuge oder z.B. Menüeinträge, dann werden diese nicht mehr in der .po Datei angelegt (obwohl das Dateidatum aktualisiert wird)
Wenn ich die Option "Force update PO files on next build" aktiviere, so hat das lediglich zur Folge, daß die Inhalte meiner .po Dateien gelöscht werden.

Kann mir jemand einen Tip geben wie ich dem auf die Spur kommen kann?

Danke und liebe Grüße
Michael
Zuletzt geändert von fliegermichl am Mo 6. Mär 2023, 16:59, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: .po Dateien

Beitrag von wp_xyz »

Ja, das Übersetzungssystem ist teilweise recht störrisch...

Nur auf Verdacht folgende Ideen: Wenn deine bisherige Installation "sehr alt" war, gibt es vielleicht noch keine pot-Datei, die von ein paar Jahren eingeführt wurde. Sie ersetzt die alte <project>.po-Datei (also <project>.pot). Evtl. hilft es, die <project>.po-Datei in <project>.pot umzubenennen. Oder ein Schalter, den ich gerne übersehe: "Projekt" > "Formulare mit i18n neu speichern".

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

Danke erst mal für den Beitrag.

Ich habe jetzt testhalber mal ein neues Projekt angelegt und i18n aktiviert.
Beim ersten speichern oder compilieren wird die pot Datei angelegt.

Diese hab ich mit poedit geöffnet und eine neue Übersetzung mit der Bezeichnung de_DE angelegt und übersetzt.

Wenn ich jetzt Lazarus neu öffne und Resourcestrings oder andere Dinge anlege (wie z.B. Menüeinträge), dann wird die pot Datei aktualisiert. Meine Übersetzung jedoch nicht.
Bei meinem vorhandenen Projekt hat sich im Verzeichnis languages gar nichts getan.
Testhalber habe ich die projekt.po und projekt.pot vorher mal gelöscht. Tut sich nix.

Dann habe ich das komplette Verzeichnis languages gelöscht, i18n aus und wieder eingeschaltet.
Jetzt wird languages\projekt.pot angelegt, enthält aber nur 4 Einträge.

Ich schätze, daß ganze Ding ist buggy.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: .po Dateien

Beitrag von wp_xyz »

Ach ja noch: Hast du die lrj-Dateien im Repository? Die werden vom Übersetzungssystem benötigt. Wenn ich mich recht erinnere, kannst du die mit "Formulare mit i18n neu speichern" neu anlegen, wenn sie einmal gelöscht worden sind.
Diese hab ich mit poedit geöffnet und eine neue Übersetzung mit der Bezeichnung de_DE angelegt und übersetzt.
Bedeutet das, dass die deutsche Sprachdatei den Namen "de_DE.po" hat? Weiß nicht, ob das erkannt wird. Normalerweise heißen die Übersetzungsdateien <project>.<sprache>.po, also z.B. "EinSuperProject.de.po" für das Projekt "MeinSuperProjekt"

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

wp_xyz hat geschrieben:
Mo 6. Mär 2023, 12:35
Ach ja noch: Hast du die lrj-Dateien im Repository? Die werden vom Übersetzungssystem benötigt. Wenn ich mich recht erinnere, kannst du die mit "Formulare mit i18n neu speichern" neu anlegen, wenn sie einmal gelöscht worden sind.
Ich habe testweise mal Projekt -> Projekteinstellungen -> Verschiedenes die Option Resourcentyp des Projektes von .res auf .lrs umgestellt. Hat aber nichts geändert.
Diese hab ich mit poedit geöffnet und eine neue Übersetzung mit der Bezeichnung de_DE angelegt und übersetzt.
Bedeutet das, dass die deutsche Sprachdatei den Namen "de_DE.po" hat? Weiß nicht, ob das erkannt wird. Normalerweise heißen die Übersetzungsdateien <project>.<sprache>.po, also z.B. "EinSuperProject.de.po" für das Projekt "MeinSuperProjekt"
Auch das hatte ich getestet, leider ohne Erfolg.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: .po Dateien

Beitrag von wp_xyz »

Ist das alles auf einem öffentlichen git? Dann könnte ich mir das mal ansehen...

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

Nein, das ist ein privates.

Aber eben fällt mir ein, wieso gibt es den Punkt "Formulare mit i18n neu speichern"?
Was besagt, daß ein Formular i18n hat?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

Eben habe ich nochmal das neue Testprojekt geladen und einen Menüeintrag sowie einen Resourcestring hinzugefügt, daß Projekt gespeichert und neu compiliert.
Lazarus hat die Datei languages\potest.pot aktualisiert.

Dann habe ich mit poedit die Datei potest_de.po geöffnet.
Jetzt kann man den Menüpunkt Übersetzung -> Aus POT-Datei aktualisieren wählen und nachdem ich die pot Datei gewählt habe, wurden die fehlenden Strings geladen.

Also muß ich bei meinem vorhandenen Projekt nur rausfinden, weshalb die pot Datei nur 4 Einträge hat.

Ich werde mal Lazarus im Debugger laden...

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: .po Dateien

Beitrag von wp_xyz »

fliegermichl hat geschrieben:
Mo 6. Mär 2023, 13:42
Also muß ich bei meinem vorhandenen Projekt nur rausfinden, weshalb die pot Datei nur 4 Einträge hat.
Wiegesagt, die lrj-Dateien... Falls sie vorhanden sind, lösche sie und erzeugt sie durch "Datei" > "Alles speichern" bei vorher "Formulare mit i18n neu speichern" neu. Dann "Start" > "Aufräumen und neu kompilieren" - das hilft auch manchmal bei Problemen mit den po-Dateien.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

Er hat von einer Formulardatei eine lrj Datei erstellt.
Deren Inhalt erscheint auch in der .pot Datei.
Von den anderen Formularen aber nicht!
Muß in dem Formular noch eine Property gesetzt werden?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: .po Dateien

Beitrag von fliegermichl »

Ich habe die Ursache gefunden.

Ich hatte die lpi Datei nicht mit im Repository gesichert und deshalb neu erstellt.
Dabei hatte ich im Projektinspektor nur die von meiner Anwendung benötigten Packages eingetragen.

Die lrj Dateien werden nur von den Formularen erstellt, die auch in der Liste der Formulare des Projektes hinterlegt sind.
Also einfach nur mit uses einbinden reicht nicht.

Antworten