GNU gettext PO (Portable Object)

De meest gebruikte indeling voor het vertalen van vrije software.

Contextuele informatie opgeslagen in het bestand wordt ondersteund door het aanpassen van zijn kop of koppeling naar corresponderende bronbestanden.

Wijziging brontekenreeks weergeven

Weblate kan eerder brontekenreeksen uitnemen uit de PO-bestanden indien aanwezig en het verschil weergeven voor tekenreeksen die op basis daarvan bewerken nodig hebben. msgmerge moet, om deze op te nemen, worden uitgevoerd met --previous en het resulterende PO-bestand bevat dan regels zoals:

#, fuzzy
#| msgid "previous-untranslated-string"
msgid "untranslated-string"
msgstr "translated-string"

Dit wordt beheerd door de parameter po_keep_previous Parameters bestandsindeling. Het beïnvloedt geen overbodige items die zijn gemarkeerd met #~.

Overbodige tekenreeksen

msgmerge behoudt standaard tekenreeksen die als overbodige items #~ zijn verwijderd uit het POT-bestand. Schakel de parameter po_remove_obsolete Parameters bestandsindeling in om overbodige items te verwijderen als Weblate PO-bestanden opslaat.

Kop PO-bestand

De header van het PO-bestand wordt automatisch onderhouden door Weblate. Dat kan worden geconfigureerd door de headers Language-Team, Last-Translator, X-Generator en Report-Msgid-Bugs-To op te nemen met de Parameters bestandsindeling.

Opmerkingen van medewerkers

Use the po_contributor_comments Parameters bestandsindeling 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.

Met gettext zien medewerkersopmerkingen er zo uit:

# Jane Doe <jane@example.com>, 2024, 2026.

Met spdx wordt ditzelfde item:

# 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.

Regelafbreking

De regeldoorloop komt meestal overeen met het gedrag van GNU gettext. Zowel het algoritme voor doorloop in de GNU gettext als de Unicode-gegevens in de doorloop is gebaseerd op ontwikkelen, wat in sommige randgevallen verschillen zou kunnen veroorzaken.

De breedte voor de doorloop kan worden geconfigureerd met de parameter po_line_wrap, bekijk Parameters bestandsindeling.

Overeenkomende MO-bestanden genereren

In het geval dat MO-bestanden samen in de opslagruimte worden gehouden met PO-bestanden, kan MO-bestanden genereren worden gebruikt om ze up-to-date te houden met PO-bestanden.

PO-bestanden bijwerken uit het POT-bestand

PO-bestanden bijwerken om te laten overeenkomen met pot (msgmerge) kan worden gebruikt om PO-bestanden bij te werken vanuit het POT-bestand, bekijk Bestanden doeltaal bijwerken.

Eentalige gettext

Sommige projecten besluiten om gettext te gebruiken als eentalige indeling—zij coderen slechts de ID’s in hun broncode en de tekenreeks moet dan worden vertaald in alle talen, inclusief Engels. Dit wordt ondersteund, hoewel u deze bestandsindeling expliciet moet kiezen bij het importeren van onderdelen in Weblate.

Voorbeeldbestanden

Het tweetalige gettext PO-bestand ziet er gewoonlijk zo uit:

#: 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ý"

Het eentalige gettext PO-bestand ziet er gewoonlijk zo uit:

#: 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ý"

Waarbij het basis taalbestand zal zijn:

#: 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"
Ondersteunde mogelijkheden

Bestandsextensies

.po, .pot

Taalgebied ⓘ

Enkeltalig

Ondersteunt meervoud ⓘ

Yes

Ondersteunt beschrijvingen ⓘ

Yes

Ondersteunt uitleg ⓘ

No

Ondersteunt context ⓘ

Yes

Ondersteunt locatie ⓘ

Yes

Ondersteunt vlaggen ⓘ

Yes

Extra statussen ⓘ

Needs editing

API-identificatie

po-mono

Ondersteunt tekenreeksen alleen-lezen ⓘ

No

Ondersteunt verplaatsen van overbodige tekenreeksen ⓘ

Yes

Ondersteunde mogelijkheden

Bestandsextensies

.po, .pot

Taalgebied ⓘ

Tweetalig

Ondersteunt meervoud ⓘ

Yes

Ondersteunt beschrijvingen ⓘ

Yes

Ondersteunt uitleg ⓘ

No

Ondersteunt context ⓘ

Yes

Ondersteunt locatie ⓘ

Yes

Ondersteunt vlaggen ⓘ

Yes

Extra statussen ⓘ

Needs editing

API-identificatie

po

Ondersteunt tekenreeksen alleen-lezen ⓘ

No

Ondersteunt verplaatsen van overbodige tekenreeksen ⓘ

Yes

Weblate-configuratie

Typisch Weblate Configuratie onderdeel voor tweetalige gettext

Bestandsmasker

po/*.po

Enkeltalig basistaalbestand

Leeg

Sjabloon voor nieuwe vertalingen

po/messages.pot

Bestandsformaat

Gettext PO-bestand

Typisch Weblate Configuratie onderdeel voor eentalige gettext

Bestandsmasker

po/*.po

Enkeltalig basistaalbestand

po/en.po

Sjabloon voor nieuwe vertalingen

po/messages.pot

Bestandsformaat

Gettext PO-bestand (eentalig)

Parameters bestandsindeling

Parameters bestandsindeling met het patroon po_* kan worden gebruikt om het gedrag voor de indeling gettext te configureren.