Co to jest format pliku PO?
Pliki .po to pliki GNU gettext Portable Object - edytowalny przez człowieka format źródłowy tłumaczeń oprogramowania. Format ten jest używany w ogromnej liczbie projektów: narzędziach GNU/Linux, aplikacjach PHP, pakietach Python, motywach i wtyczkach WordPress oraz wielu innych aplikacjach open-source.
Plik .po to zwykły tekst UTF-8 zorganizowany w pary wpisów: msgid (oryginalny ciąg w języku źródłowym) i msgstr (przetłumaczony odpowiednik). Linie komentarzy zaczynające się od # zawierają notatki tłumacza, komentarze wyodrębnione z kodu źródłowego, odniesienia do plików i flagi fuzzy. Wpisy z formami liczby mnogiej używają wariantów msgid_plural oraz indeksowanych msgstr[n], którymi zarządza wyrażenie Plural-Forms w nagłówku pliku.
Przepływ pracy tłumaczeniowej obejmuje trzy typy plików: programiści wyodrębniają ciągi do przetłumaczenia do szablonu .pot, tłumacze kopiują go dla danego języka i wypełniają wartości msgstr, a następnie msgfmt kompiluje każdy plik .po do binarnego pliku .mo, który aplikacja ładuje podczas działania. Plik .mo jest czytelny tylko dla maszyny - zawsze edytuje się plik .po, nigdy skompilowany wynik.
Pliki .po można edytować w zwykłym edytorze tekstu, ale dedykowane narzędzia, takie jak Poedit, zapewniają sprawdzanie błędów, sugestie dopasowań rozmytych (fuzzy) i pomocników form liczby mnogiej. Platformy internetowe, takie jak Weblate, wspierają tłumaczenie grupowe. Format jest stabilny i kompatybilny wstecznie od czasu wprowadzenia GNU gettext w 1995 roku.
Bezpieczeństwo
RYZYKO: LOWPlik .po zawiera wyłącznie tekst tłumaczeń i komentarze - nie ma w nim kodu wykonywalnego, więc sam plik jest nieszkodliwy. Jedyna praktyczna uwaga: złośliwy plik tłumaczenia umieszczony w motywie/wtyczce mógłby wstrzyknąć wprowadzający w błąd tekst interfejsu (np. zmienione linki lub instrukcje), dlatego należy używać plików językowych tylko z oficjalnych źródeł motywu/wtyczki, a nie z przypadkowych stron.
Szczegóły formatu
w pigułce- Obraz dysku / obraz partycji (rzadkie) - Historyczna nazwa w bazie danych „Disk image file” odzwierciedla rzadkie lub błędne oznaczenie; .po nie jest standardowym rozszerzeniem obrazu dysku.
Programy otwierające pliki PO
Szczegóły techniczne
specyfikacja| Typ formatu | Tekstowy, zorientowany liniowo (składnia GNU gettext PO) |
| Kodowanie | UTF-8 (zestaw znaków zadeklarowany w polu nagłówka Content-Type); starsze katalogi mogą używać kodowań ISO-8859-x |
| Typ MIME | text/x-gettext-translation |
| Struktura wpisu | Pary msgid / msgstr; opcjonalny msgctxt dla rozróżnienia kontekstowego identycznych ciągów źródłowych |
| Wpis nagłówka | Pierwszy wpis ma pusty msgid; jego blok msgstr zawiera Project-Id-Version, Content-Type, Plural-Forms i inne metadane katalogu |
| Formy liczby mnogiej | msgid_plural z indeksowanymi wariantami msgstr[0], msgstr[1], ...; wyrażenie nagłówka Plural-Forms kontroluje, która forma ma zastosowanie dla danej liczby |
| Typy komentarzy | # (komentarz tłumacza), #. (wyodrębniony komentarz źródłowy), #: (odniesienie do pliku źródłowego), #, (flagi takie jak fuzzy lub c-format) |
| Flaga fuzzy | #, fuzzy oznacza tłumaczenie wymagające przeglądu po zmianie ciągu źródłowego; msgfmt wyklucza wpisy fuzzy ze skompilowanego pliku .mo |
| Skompilowany wynik | Konwertowany do binarnego .mo (Machine Object) przez msgfmt; plik .mo jest tym, co uruchomiona aplikacja ładuje przez gettext() |
| Plik szablonu | .pot (Portable Object Template) - nieprzetłumaczony szkielet; wszystkie pliki .po dla języków są z niego generowane przez msginit lub msgmerge |
| Typowy rozmiar pliku | 5 KB - 5 MB; skaluje się wraz z liczbą ciągów do przetłumaczenia w projekcie |
| Łańcuch narzędzi | xgettext (wyodrębnianie ciągów ze źródła), msginit (tworzenie nowego .po), msgmerge (aktualizacja istniejącego .po), msgfmt (kompilacja do .mo) |
| Platforma | Dowolna - Linux, macOS, Windows, BSD; wszędzie tam, gdzie dostępny jest GNU gettext lub kompatybilna implementacja libintl |
| Ekosystem | Używany przez WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext i wiele innych frameworków do internacjonalizacji (i18n) |
| Wydano | 1995 (GNU gettext) |
| Najnowsza wersja | PO file syntax is stable; defined in the current GNU gettext manual |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.gnu.org |
Konwersje PO
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PO.