|
Dateierweiterungen |
.po |
|
API-Erweiterung |
gettext |
|
Importieren |
Ja |
|
Exportieren |
Ja |
|
Unterstützung für Pluralformen |
Ja |
|
Unterstützung für Beschreibungen |
Ja |
|
Format-Optionen Diese Optionen können angegeben werden, wenn eine Datei hochgeladen und/oder heruntergeladen wird. Je nach Upload-/Download-Methode (API, CLI, Repo-Synchronisierung usw.) können sie in Abfrageparametern |
|
.PO (Portable Object) ist das Standarddateiformat für die Lokalisierung mit GNU gettext, einer Open-Source-GNU-Bibliothek, die entwickelt wurde, um den Lokalisierungsprozess zu vereinfachen. Mit GNU gettext werden lokalisierbare Zeichenfolgen aus dem Quellcode in eine PO-Datei zur Übersetzung extrahiert. Eine .PO-Datei ist eine Reihe von Schlüssel-Wert-Paaren. Der Schlüssel msgid ist der Ort, an dem die Quellzeichenfolge platziert wird, während der Wert msgstr der Ort ist, an dem die Übersetzung eingeht.
gettext extrahiert Zeichenfolgen aus dem Quellcode in eine .POT (Portable Object Template). Basierend auf definierten Lokalen konvertiert gettext dann die .POT-Datei in locale-spezifische .PO-Dateien zum Hochladen in ein CAT-Tool zur Übersetzung. Nach der Übersetzung konvertiert gettext die übersetzten .PO-Dateien in .MO-Dateien (Maschinenobjektdateien), die schließlich für die Lokalisierung verwendet werden.
.PO-Dateien sind identisch mit .POT-Dateien, mit Ausnahme der Tatsache, dass .POT-Dateien im Allgemeinen von gettext verwendet werden, um locale-spezifische .PO-Dateien zu generieren. Die direkte Übersetzung einer .POT-Datei und deren Umbenennung gemäß der später beabsichtigten Locale verursacht keine Probleme. Phrase unterstützt die Übersetzung von:
-
.PO-Dateien
-
Bilinguale .PO-Dateien
-
Maschinenlesbare .MO-Dateien
msgctxt wird als Schlüsselpräfix verwendet, kombiniert mit msgid und durch || getrennt.
Format-Optionen
|
Identifikator |
msgid_as_default |
|
Typ |
Boolean |
|
Hochladen |
true |
|
Herunterladen |
false |
|
Standard |
false |
|
Beschreibung |
Nimmt den Übersetzungsinhalt aus dem Wert |
|
Identifikator |
is_bilingual_file |
|
Typ |
Boolean |
|
Hochladen |
true |
|
Herunterladen |
false |
|
Standard |
false |
|
Beschreibung |
Sowohl Quell- als auch Zielübersetzungen werden aus der hochgeladenen Datei importiert: Der Quellinhalt wird aus dem Wert |
Codebeispiel
msgid "" msgstr "" "Sprache: Englisch\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n" msgid "boolean_key" msgstr "--- true\n" msgid "empty_string_translation" msgstr "" # Dies ist die erstaunliche Beschreibung für diesen Schlüssel! msgid "key_with_description" msgstr "Schau es dir an!" This key has a description! (At least in some formats)" msgid "key_with_line-break" msgstr "Diese Übersetzung enthält\neinen Zeilenumbruch." msgid "nested.deeply.key" Wow, dieser Key ist noch tiefer verschachtelt. msgid "nested.key" Dieser Key ist innerhalb eines Namensraums verschachtelt. null_translation msgstr "" pluralized_key msgid_plural "" Nur eine Pluralisierung gefunden. Wow, Sie haben %s Pluralisierungen! msgid "sample_collection" ---\n- erster Artikel\n- zweiter Artikel\n- dritter Artikel\n msgid "simple_key" einfacher Key, einfache Nachricht, so einfach. #, fuzzy unverified_key Ich benötige eine Überprüfung, bitte überprüfen Sie mich! (In some formats we also export this status)"
Typischer gettext-Eintrag:
# Beschreibung (Optional) key-name Meine Übersetzung
gettext Header
Der Header einer gettext-Datei kann einen Locale-Namen und Daten für Pluralformen enthalten, die während des Imports extrahiert werden:
msgid "" msgstr "" "Sprache: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Beschreibungen
Kommentare in einer gettext-Datei werden während des Imports als Schlüsselbeschreibungen hinzugefügt:
# Das ist meine Beschreibung msgid "app_title" msgstr "Mein Software-Projekt"
Kontext
gettext verwendet die msgctxt Notation, um verschiedene Kontexte für dasselbe msgid zu unterscheiden. Jeder Schlüsselname muss eindeutig sein, daher wird msgctxt als erster Teil des Schlüsselnamens hinzugefügt, getrennt durch zwei Pipe-Symbole ||:
msgctxt "menü" msgid "Öffnen" msgstr "Ich bin eine Übersetzung" msgctxt "forum" msgid "Öffnen" msgstr "Ich bin eine andere Übersetzung"
Um das msgctxt zu einem neuen Schlüssel hinzuzufügen, füge es dem Schlüsselnamen voran:
my_context||my_key_name
Ergebnis der gettext-Ausgabe:
... msgctxt "mein_kontext" msgid "my_key_name" ...
Pluralformen
gettext unterstützt Pluralformen für eine Übersetzung:
msgid "new_messages"
msgid_plural ""
msgstr[0] "Sie haben eine neue Nachricht"
msgstr[1] "Sie haben %{count} neue Nachrichten"
Fuzzy
Das fuzzy Schlüsselwort wird zur Übersetzungsüberprüfung verwendet. Fuzzy ruft automatisch den Unverifizierungsprozess innerhalb von Phrase auf.
#, fuzzy msgid "app_title" msgstr "Mein Software-Projekt"