GNU gettext PO (Portable Object)

Najpoužívanejší formát na preklad slobodného softvéru.

Kontextové informácie uložené v súbore sú podporované úpravou jeho hlavičiek alebo prepojením s príslušnými zdrojovými súbory.

Zobrazenie zmeny zdrojového reťazca

Weblate môže extrahovať predchádzajúce zdrojové reťazce zo súborov PO, ak sú prítomné, a na ich základe zobraziť rozdiel reťazcov pre reťazce vyžadujúce úpravu. Aby ste ich zahrnuli, msgmerge sa musí spustiť s --previous a výsledný súbor PO potom obsahuje riadky, ako napr.:

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

Toto je ovládané parametrom po_keep_previous Parametre formátu súboru. Nemá to vplyv na zastarané položky označené #~.

Zastarané reťazce

msgmerge predvolene ponecháva reťazce odstránené zo súboru POT ako zastarané položky #~. Povoľte parameter po_remove_obsolete Parametre formátu súboru na odstránenie zastaraných položiek pri ukladaní súborov PO vo Weblate.

Hlavička súboru PO

Hlavička súboru PO je automaticky udržiavaná systémom Weblate. Pomocou Parametre formátu súboru ju možno nakonfigurovať tak, aby obsahovala hlavičky Language-Team, Last-Translator, X-Generator a Report-Msgid-Bugs-To.

Komentáre prispievateľov

Použite parameter po_contributor_comments Parametre formátu súboru na pridanie mien prispievateľov a rokov do komentárov hlavičky PO. Vyberte gettext pre tradičné komentáre alebo spdx pre položky autorských práv SPDX. Predvolená hodnota none zakazuje aktualizácie prispievateľov bez odstránenia existujúcich komentárov. Toto nastavenie funguje nezávisle od nastavenia hlavičky Last-Translator.

S gettext vyzerajú komentáre prispievateľov takto:

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

S spdx sa rovnaká položka zmení na:

# SPDX-FileCopyrightText: 2024, 2026 Jane Doe <jane@example.com>

Pri ďalšom zápise od oprávneného prispievateľa režim SPDX konvertuje všetky rozpoznané komentáre prispievateľov, zachováva historické roky príspevkov a pridáva aktuálny rok pre daného prispievateľa. Anonymní autori Weblate sa preskakujú. Nesúvisiace komentáre a oznámenia o autorských právach sa zachovávajú. Weblate neodvodzuje nároky na autorské práva z preložených reťazcov poďakovania ani nepridáva oznámenia špecifické pre projekt alebo identifikátory licencií; tieto riešte vo vlastných nástrojoch.

Zalamovanie riadkov

Zalamovanie riadkov väčšinou zodpovedá správaniu GNU gettext. Algoritmus zalamovania v GNU gettext aj údaje Unicode, na ktorých je zalamovanie založené, sa vyvíjajú, čo môže spôsobiť rozdiely v niektorých hraničných prípadoch.

Šírku zalamovania možno konfigurovať pomocou parametra po_line_wrap, pozri Parametre formátu súboru.

Generovanie zodpovedajúcich súborov MO

Ak sa súbory MO uchovávajú v repozitári spolu so súbormi PO, Generovať súbory MO možno použiť na ich udržiavanie v aktuálnom stave so súbormi PO.

Aktualizácia súborov PO zo súboru POT

Aktualizovať súbory PO tak, aby zodpovedali POT (msgmerge) možno použiť na aktualizáciu súborov PO zo súboru POT, pozri Aktualizácia súborov cieľového jazyka.

Jednojazyčný gettext

Niektoré projekty sa rozhodnú používať gettext ako jednojazyčný formát – v svojom zdrojovom kóde kódujú iba ID a reťazec potom treba preložiť do všetkých jazykov vrátane angličtiny. Toto je podporované, hoci musíte tento formát súboru explicitne vybrať pri importe komponentov do Weblate.

Príkladové súbory

Dvoj-jazyčný súbor gettext PO zvyčajne vyzerá takto:

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

Jednojazyčný súbor gettext PO zvyčajne vyzerá takto:

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

Zatiaľ čo súbor základného jazyka bude:

#: 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"
Podporované funkcie

Prípony súborov

.po, .pot

Jazykovosť ⓘ

Jednojazyčné

Podporuje množné číslo ⓘ

Yes

Podporuje popisy ⓘ

Yes

Podporuje vysvetlenie ⓘ

No

Podporuje kontext ⓘ

Yes

Podporuje umiestnenie ⓘ

Yes

Podporuje príznaky ⓘ

Yes

Ďalšie stavy ⓘ

Needs editing

Identifikátor API

po-mono

Podporuje reťazce iba na čítanie ⓘ

No

Podporuje odstraňovanie zastaraných reťazcov ⓘ

Yes

Podporované funkcie

Prípony súborov

.po, .pot

Jazykovosť ⓘ

Dvojjazyčné

Podporuje množné číslo ⓘ

Yes

Podporuje popisy ⓘ

Yes

Podporuje vysvetlenie ⓘ

No

Podporuje kontext ⓘ

Yes

Podporuje umiestnenie ⓘ

Yes

Podporuje príznaky ⓘ

Yes

Ďalšie stavy ⓘ

Needs editing

Identifikátor API

po

Podporuje reťazce iba na čítanie ⓘ

No

Podporuje odstraňovanie zastaraných reťazcov ⓘ

Yes

Konfigurácia Weblate

Typický Weblate Konfigurácia komponentu pre dvoj-jazyčný gettext

Maska súboru

po/*.po

Jednojazyčný súbor základného jazyka

Prázdne

Šablóna pre nové preklady

po/messages.pot

Formát súboru

Súbor Gettext PO

Typický Weblate Konfigurácia komponentu pre jednojazyčný gettext

Maska súboru

po/*.po

Jednojazyčný súbor základného jazyka

po/en.po

Šablóna pre nové preklady

po/messages.pot

Formát súboru

Súbor Gettext PO (jednojazyčný)

Parametre formátu súboru

Parametre formátu súboru so vzorom po_* možno použiť na konfiguráciu správania formátu gettext.