Suchergebnisse werden hervorgehoben. Suchwörter ausblenden.

Gettext

Status: ungelöst | Ubuntu-Version: Nicht angegeben
antworten |

Nilres

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 371

Hallo Ich beschäftige mich grade auch etwas mit gettext. Also ich lese mich ein. Nun fällt mir auf das man ja in der .po Datei Datei/Zeile angibt...das ist ja unpraktisch wenn sich im Code dann was ändert das man dann immer die Zeile überall anpassen muss oder ist dem nicht so?!

mfg nils

scrawl Teamicon

Supporter
Avatar von scrawl

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 1717

Wohnort: Senden

Nun fällt mir auf das man ja in der .po Datei Datei/Zeile angibt...das ist ja unpraktisch wenn sich im Code dann was ändert das man dann immer die Zeile überall anpassen muss oder ist dem nicht so?!

Also meine .po-Dateien sehen so aus:

msgid "originaler Text"
msgstr "übersetzter Text"

Datei/Zeile muss man natürlich nicht angeben, wozu auch!

Übrigens, mit dem Programm Poedit (zu finden via Hinzufügen/Entfernen) kann man ganz einfach ein Projektverzeichnis angeben, dabei werden dann automatisch alle übersetzbaren Strings aus dem Quellcode rausgelesen und in die .po-Datei geschrieben. Dann klickst du auf den entsprechenden Eintrag und übersetzt ihn. Ganz einfach :)

Lunar

Avatar von Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5737

Wohnort: Da, wo die Telefonkabel noch oberirdisch verlaufen

Nilres schrieb:

Hallo Ich beschäftige mich grade auch etwas mit gettext. Also ich lese mich ein. Nun fällt mir auf das man ja in der .po Datei Datei/Zeile angibt...das ist ja unpraktisch wenn sich im Code dann was ändert das man dann immer die Zeile überall anpassen muss oder ist dem nicht so?!

Die Referenz auf Datei und Zeile ist für die kompilierten Kataloge nicht relevant, diese Information dient einzig und allein als Hilfe für Editoren, die damit schnell zur entsprechenden Quellcode-Stelle springen können, falls sich der Übersetzer über die Bedeutung unsicher ist.

Im Übrigen sollte man diese Information nicht händisch editieren, da sie automatisch erzeugt wird. Normalerweise werden die Zeichenketten mit xgettext ausgelesen und in einem Template Katalog gespeichert (Endung: .pot). Dieser Katalog dient als Vorlage für neue Sprachen. Bereits existierende Übersetzungen in Form von .po-Dateien werden mit msgmerge anhand des Template-Katalogs aktualisiert.

Nilres

(Threadstarter)

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 371

Ok danke Leute. Hatte bisher nur das Wikipedia Beispiel gesehen.

mfg nils

Nilres

(Threadstarter)

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 371

So doch noch mal eine Frage. Wo gehören denn die po und pot dateien und so hin? Also schmeißt man die direkt zu den Sourcen oder irgend oder wo lagert man die so?

Lunar

Avatar von Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5737

Wohnort: Da, wo die Telefonkabel noch oberirdisch verlaufen

Das kommt auf die Programmiersprache an.

Bei C oder C++ gibt es im Quelltextbaum meistens ein Unterverzeichnis lang oder po, in dem die .po und .pot-Dateien liegen. Das Buildsystem übersetzt die dann in .mo und installiert sie unter ${prefix}/share/locale/${lang}/LC_MESSAGES/${programmname}.mo. ${prefix} ist dabei das Installationsprefix (meist /usr oder /usr/local), ${lang} die Sprache (extrahiert aus dem Dateinamen der .po Datei) und ${programmname} der im Buildsystem konfigurierte Name des Projekts.

Nilres

(Threadstarter)

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 371

Alles klar danke

Fredo Teamicon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 4782

Wohnort: Bochum

Hier lohnt es sich auch, sich mal intltool anzugucken. Damit kann man ein paar Sachen wie das aktualisieren der .po-Dateien etc. vereinfachen. intltool erwartet, dass die .po-Dateien im Verzeichnis po/ liegen.

Liebe Grüße
Fredo

Nilres

(Threadstarter)

Anmeldungsdatum:
7. Dezember 2006

Beiträge: 371

Verstehe ich so das wenn ich so nen src ordner habe dadrin dann client und server habe ich sowohl in client und server einen Ordner po anlege?

antworten |
Passwort vergessen?