Hallo zusammen,
icher versuche nun schon seit einiger Zeit das Handling mit den PO dateien irgendwie in den Griff zu bekommen.
vieleicht mache ich ja was falsch. die Dokumente im Wiki kenne ich.
Prinzipiell funktioniert das Ganze auch.
Jetzt kommen die "Abers":
Meine PO Datei wird IMMER neu erzeugt, dabei wird auch die Übersetzngsdatei(en) .de.po .en.po usw. jedesmal komplett überschrieben.
Das heisst alle Übersetzungen sind nach einem kompilieren weg.
Muss ich nun, sobald eien PO Datei erzeugt ist und ich sichere alle änderungen an den PO Dateien komplett perHand nachstellen, weil sonst alle meine Übersetzungen weg sind?
Wie In den Projetkeinstellugnen kann ich einstellen welche Sprache ich kompilieren möchte.
Projekteinstellungen->Versionsinformationen dort Sprachauswahl.
Kann ich es irgendwie einstellen das mir die Sprache kompiliert wird die ich dort einstelle?
Ich arbeite nicht mit externen po Dateien, sondern will die Dateien als Resource einbinden, so wie es im Wiki beschrieben ist.
Im Wiki liest es sich aber so das man nur eine Sprache kompilieren kann, dann den Resourcenkompiler wieder starten , in der Unit mit
LazarusResources.Find('meinprogramm.de','PO'); das "de durch die andere Sprache ersetzen und dann neu kompilieren muss.
Aus den Dialogen werden immer ALLE Resourcen (über die lrt Dateien) in die PO Datei exportiert. Auch leere Eingabefelder und Labels die nicht übersetzt werden sollen. Ein Rauslöschen dieser unnutzen resozurcestrings aus den po oder lrt Dateine bringt leider nix, da sie sofort wieder angelegt werden. Gibt es hier ein Möglichkeit sich nur auf die Resourcen festzulegen die auch tatsächlich übersetzt werden sollen?
Eine weitere Frage,
Mein Projekt besteht aus fünf EXE Dateien und separaten Projektdateien die sich ein Verzeichnis teilen und über die gleiche Unit alle Resourcenstrings. Kann ich irgendwie ein "Makefile" erzeugen, das mir alle fünf Projekte hintereinander in einer Sprachversion kompiliert.
Ich verwende Lazarus Version 9.30.2 unter Windows XP.
Viele Grüße
Rob
Mehrsprachige Anwendungen po Dateien usw.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Mehrsprachige Anwendungen po Dateien usw.
Meines Wissens: Nein.Rob hat geschrieben:Aus den Dialogen werden immer ALLE Resourcen (über die lrt Dateien) in die PO Datei exportiert. Auch leere Eingabefelder und Labels die nicht übersetzt werden sollen. Ein Rauslöschen dieser unnutzen resozurcestrings aus den po oder lrt Dateine bringt leider nix, da sie sofort wieder angelegt werden. Gibt es hier ein Möglichkeit sich nur auf die Resourcen festzulegen die auch tatsächlich übersetzt werden sollen?
Wäre toll, wenn du die Wiki-Seite verlinken können, damit Leute, die dir helfen möchten nicht erst lange danach suchen müssen, welche Seite du denn meinst.Rob hat geschrieben:Wie In den Projetkeinstellugnen kann ich einstellen welche Sprache ich kompilieren möchte.
Projekteinstellungen->Versionsinformationen dort Sprachauswahl.
Kann ich es irgendwie einstellen das mir die Sprache kompiliert wird die ich dort einstelle?
Ich arbeite nicht mit externen po Dateien, sondern will die Dateien als Resource einbinden, so wie es im Wiki beschrieben ist.
Im Wiki liest es sich aber so das man nur eine Sprache kompilieren kann, dann den Resourcenkompiler wieder starten , in der Unit mit
LazarusResources.Find('meinprogramm.de','PO'); das "de durch die andere Sprache ersetzen und dann neu kompilieren muss.
In den Ressourcen-Strings wird immer die "Sprache" abgelegt, die du im Quelltext verwendest. Diese kannst du zur Laufzeit dann mit den lokalisierten Zeichenketten aus den PO-Dateien (oder auch Exe-Ressourcen) überschreiben. Du kannst eine Sprache beim kompilieren also nicht festlegen oder ändern.
Das, was du in den Projekteinstellungen festlegst, ist nur eine Information, die Windows auslesen, anzeigen und ggf. irgendwie anders weiter verwerten kann. Lazarus oder der Free Pascal Compiler tun damit gar nichts.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 34
- Registriert: Fr 8. Jul 2011, 10:45
- OS, Lazarus, FPC: Win7, Ubuntu 64 und 32bit Lazarus (immer aktuellstes Release) FPC 2.6.4
- CPU-Target: amd_64 und i386
- Kontaktdaten:
Re: Mehrsprachige Anwendungen po Dateien usw.
Ok, sorry, ich dachte das Wiki von lazarus.freepascal.org wäre soweit bekannt.Socke hat geschrieben:Wäre toll, wenn du die Wiki-Seite verlinken können, damit Leute, die dir helfen möchten nicht erst lange danach suchen müssen, welche Seite du denn meinst.Rob hat geschrieben:Wie In den Projetkeinstellugnen kann ich einstellen welche Sprache ich kompilieren möchte.
Projekteinstellungen->Versionsinformationen dort Sprachauswahl.
Kann ich es irgendwie einstellen das mir die Sprache kompiliert wird die ich dort einstelle?
Ich arbeite nicht mit externen po Dateien, sondern will die Dateien als Resource einbinden, so wie es im Wiki beschrieben ist.
Im Wiki liest es sich aber so das man nur eine Sprache kompilieren kann, dann den Resourcenkompiler wieder starten , in der Unit mit
LazarusResources.Find('meinprogramm.de','PO'); das "de durch die andere Sprache ersetzen und dann neu kompilieren muss.
Hier die eine Seite
und Getting translation strings right/de
Umgesetzt habe ich ".po Dateien in die Programmdatei kompilieren "
sowie alle relevanten Strings in Resourcen ausgelagert.
Soweit funktioniert das auch. ist aber extrem unkomfortabel für jede Version am Sourcecode was zu ändern und vor allen Dingen jede einmal übersetzte PO-Datei dann von Hand pflegen zu müssen.
Ja, doch, indem ich die PO Datei als Resource kompiliere. Sicherlich wird das dann beim Programmstart erst ausgetauscht, ist aber fest mit dem Programm verbunden und das meinte ich. War etwas unglücklich von mir formuliertSocke hat geschrieben: In den Ressourcen-Strings wird immer die "Sprache" abgelegt, die du im Quelltext verwendest. Diese kannst du zur Laufzeit dann mit den lokalisierten Zeichenketten aus den PO-Dateien (oder auch Exe-Ressourcen) überschreiben. Du kannst eine Sprache beim kompilieren also nicht festlegen oder ändern.

Das hatte ich mir schon gedacht.Socke hat geschrieben: Das, was du in den Projekteinstellungen festlegst, ist nur eine Information, die Windows auslesen, anzeigen und ggf. irgendwie anders weiter verwerten kann. Lazarus oder der Free Pascal Compiler tun damit gar nichts.
So wirklich befriedigend ist das allerdings nicht wenn man sein Programm mehrsprachig bauen möchte.
Vieleicht ist eine entsprechende make Datei die Lösung. Aber dann habe ich auch das problem das wenn ich über bedingte Kompilierung eine deutsche und eine italienische Programmversion kompilieren möchte, das die Sprachinfo aus der Projektdatei nicht verstellt wird.
Entweder hab ich das Thema lokalisieren wie Lazarus es vorsieht noch nciht kapiert, oder es ist noch ein wenig "unfertig".
Grüße
Rob