Get Text (po)
GNU Gettext ist eines der ältesten und am weitesten verbreiteten Internationalisierungssysteme, ursprünglich für Unix-Tools entwickelt und heute für Python (Django, Flask), PHP (Symfony, WordPress), Ruby, C und viele andere Plattformen verwendet. Gettext verwendet zwei Dateitypen: PO (Portable Object)-Dateien für menschliche Übersetzung und POT (PO Template)-Dateien, die aus dem Quellcode generiert werden.
PO-Dateien enthalten Übersetzungseinträge, die aus optionalen Kontextkommentaren, msgctxt-Kontextbezeichnungen, msgid (Quellzeichenkette) und msgstr (übersetzte Zeichenkette) bestehen. Pluralisierte Einträge verwenden msgid_plural zusammen mit msgstr[0], msgstr[1] und weiteren Pluralformen, die von der Zielsprache benötigt werden. Fuzzy-Flags markieren Einträge, die überprüft werden müssen – typischerweise automatisch übereinstimmende Zeichenketten, bei denen sich die Quelle geändert hat. Header-Metadaten definieren die Pluralformel für die Sprache.
Best Practice: Markieren Sie Zeichenketten im Quellcode mit der standardmäßigen Gettext-Unterstrich-Kurzschreibfunktion und fügen Sie stets Übersetzerkommentare hinzu, die den Kontext erklären. Führen Sie xgettext oder das Framework-äquivalente Tool während CI-Builds aus, um die POT-Vorlage aktuell zu halten. Verwenden Sie msgctxt, um Zeichenketten mit identischem Quelltext zu disambiguieren, die in verschiedenen Kontexten unterschiedliche Übersetzungen erfordern – zum Beispiel das Wort „Datei“, das als Substantiv oder als Verb verwendet wird. Language Monster unterstützt Gettext PO- und POT-Dateien, verarbeitet Pluralformdefinitionen korrekt und behandelt fuzzy-markierte Einträge.
