GNU gettext PO (Portable Object)¶
Das am weitesten verbreitete Format für die Übersetzung von Freier Software.
In der Datei gespeicherte Kontextinformationen werden durch Anpassen des Headers oder durch Verlinken mit entsprechenden Quelldateien unterstützt.
Siehe auch
Änderung der Ausgangszeichenkette anzeigen¶
Weblate kann vorherige Ausgangszeichenketten aus den PO-Dateien extrahieren, falls vorhanden, und die Zeichenketten, die bearbeitet werden müssen, auf dieser Grundlage anzeigen. Um diese einzubeziehen, muss msgmerge mit --previous ausgeführt werden und die resultierende PO-Datei enthält dann Zeilen wie:
#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"
This is controlled by the po_keep_previous Dateiformat-Parameter
parameter. It does not affect obsolete entries marked with #~.
Veraltete Zeichenketten¶
msgmerge keeps strings removed from the POT file as obsolete #~
entries by default. Enable the po_remove_obsolete Dateiformat-Parameter
parameter to remove obsolete entries when Weblate saves PO files.
PO-Dateiheader¶
The header of the PO file is automatically maintained by Weblate.
It can be configured to include the Language-Team, Last-Translator,
X-Generator and Report-Msgid-Bugs-To headers using the Dateiformat-Parameter.
Contributor comments¶
Use the po_contributor_comments Dateiformat-Parameter parameter to add
contributor names and years to PO header comments. Choose gettext for
traditional comments or spdx for SPDX copyright entries. The default,
none, disables contributor updates without removing existing comments.
This setting works independently of the Last-Translator header setting.
With gettext, contributor comments look like this:
# Jane Doe <jane@example.com>, 2024, 2026.
With spdx, the same entry becomes:
# SPDX-FileCopyrightText: 2024, 2026 Jane Doe <jane@example.com>
On the next commit by an eligible contributor, SPDX mode converts all recognized contributor comments, preserves historical contribution years, and adds the current year for that contributor. Anonymous Weblate authors are skipped. Unrelated comments and copyright notices are preserved. Weblate does not infer copyright claims from translated credit strings or add project-specific notices or license identifiers; handle these in custom tooling.
Zeilenumbruch¶
Der Zeilenumbruch entspricht weitgehend dem Verhalten von GNU gettext. Sowohl der Umbruchalgorithmus in GNU gettext als auch die Unicode-Daten, auf denen der Umbruch basiert, entwickeln sich weiter, was in einigen Ausnahmefällen zu Unterschieden führen kann.
Die Umbruchbreite kann mit dem Parameter po_line_wrap konfiguriert werden, siehe Dateiformat-Parameter.
Erzeugen passender MO-Dateien¶
Falls MO-Dateien zusammen mit PO-Dateien im Repository aufbewahrt werden, kann MO-Dateien erzeugen verwendet werden, um sie mit den PO-Dateien auf dem neuesten Stand zu halten.
Aktualisieren von PO-Dateien aus der POT-Datei¶
PO-Dateien auf POT aktualisieren (msgmerge) kann verwendet werden, um PO-Dateien aus der POT-Datei zu aktualisieren, siehe Zielsprachedateien aktualisieren.
Gettext einsprachig¶
Einige Projekte entscheiden sich, gettext als einsprachiges Format zu verwenden – sie kodieren nur die IDs in ihrem Quellcode und die Zeichenkette muss dann in alle Sprachen, einschließlich Englisch, übersetzt werden. Dies wird unterstützt, allerdings müssen Sie dieses Dateiformat beim Importieren von Komponenten in Weblate explizit auswählen.
Beispieldateien¶
Die zweisprachige gettext-PO-Datei sieht in der Regel wie folgt aus:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "Tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgctxt "No known user"
msgid "None"
msgstr "Žádný"
Die einsprachige gettext-PO-Datei sieht normalerweise wie folgt aus:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Pondělí"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Úterý"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "Žádný"
Während die Basissprachdatei wie folgt aussieht:
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-monday"
msgstr "Monday"
#: weblate/media/js/bootstrap-datepicker.js:1421
msgid "day-tuesday"
msgstr "Tuesday"
#: weblate/accounts/avatar.py:163
msgid "none-user"
msgstr "None"
Dateiendungen |
|
|---|---|
Linguistik: ⓘ |
Einsprachig |
Unterstützt Pluralformen ⓘ |
|
Unterstützt Beschreibungen ⓘ |
|
Unterstützt Erklärung ⓘ |
|
Unterstützt Kontext ⓘ |
|
Unterstützt Ort ⓘ |
|
Unterstützt Markierungen ⓘ |
|
Zusätzliche Status ⓘ |
|
API-Kennung |
|
Unterstützt schreibgeschützte Zeichenketten ⓘ |
|
Supports removing obsolete strings ⓘ |
|
Dateiendungen |
|
|---|---|
Linguistik: ⓘ |
Zweisprachig |
Unterstützt Pluralformen ⓘ |
|
Unterstützt Beschreibungen ⓘ |
|
Unterstützt Erklärung ⓘ |
|
Unterstützt Kontext ⓘ |
|
Unterstützt Ort ⓘ |
|
Unterstützt Markierungen ⓘ |
|
Zusätzliche Status ⓘ |
|
API-Kennung |
|
Unterstützt schreibgeschützte Zeichenketten ⓘ |
|
Supports removing obsolete strings ⓘ |
|
Weblate-Konfiguration¶
Typische Weblate-Komponentenkonfiguration für zweisprachigen gettext |
|
|---|---|
Dateimaske |
|
Einsprachige Basissprachdatei |
Leer |
Vorlage für neue Übersetzungen |
|
Dateiformat |
Gettext-PO-Datei |
Typische Weblate-Komponentenkonfiguration für einsprachigen gettext |
|
|---|---|
Dateimaske |
|
Einsprachige Basissprachdatei |
|
Vorlage für neue Übersetzungen |
|
Dateiformat |
Gettext-PO-Datei (einsprachig) |
Dateiformat-Parameter¶
Dateiformat-Parameter mit dem Muster po_* kann verwendet werden, um das Verhalten des gettext-Formats zu konfigurieren.