|
Dateierweiterungen |
.po |
|
API Extension |
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 erfolgt.
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 der Ausnahme, dass .POT-Dateien in der Regel von gettext verwendet werden, um locale-spezifische .PO-Dateien zu generieren. Das direkte Übersetzen einer .POT-Datei und das Umbenennen nach der später beabsichtigten Sprache verursacht keine Probleme. Phrase unterstützt die Übersetzung von:
-
.PO-Dateien
-
Zweisprachige .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 von |
|
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 von |
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 "--- wahr\n" msgid "empty_string_translation" msgstr "" # Dies ist die erstaunliche Beschreibung für diesen Key! msgid "key_with_description" msgstr "Schau es dir an!" Dieser Key hat eine Beschreibung! (Mindestens in einigen Formaten)" msgid "key_with_line-break" msgstr "Diese Übersetzung enthält\neinen Zeilenumbruch." msgid "nested.deeply.key" msgstr "Wow, dieser Key ist noch tiefer verschachtelt." msgid "nested.key" msgstr "Dieser Key ist innerhalb eines Namensraums verschachtelt." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" "Nur eine Pluralisierung gefunden." "Wow, Sie haben %s Pluralisierungen!" msgid "sample_collection" "---\n- erster Eintrag\n- zweiter Eintrag\n- dritter Eintrag\n" msgid "simple_key" "einfacher Schlüssel, einfache Nachricht, so einfach.2" #, fuzzy msgid "unverified_key" "Ich benötige eine Überprüfung, bitte überprüfen Sie mich!" "(In einigen Formaten exportieren wir auch diesen Status)"
"Typischer gettext-Eintrag:"
"# Beschreibung (Optional)" msgid "key-name" "Meine Übersetzung"
"gettext-Header"
"Der Header einer gettext-Datei kann einen Sprachcode und Daten für Pluralformen enthalten, die während des Imports extrahiert werden:"
msgid "" msgstr "" "Sprache: de\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" "Mein Softwareprojekt"
"Kontext"
gettext verwendet die msgctxt Notation, um verschiedene Kontexte für dasselbe msgid zu unterscheiden. Jeder Schlüsselname muss einzigartig sein, daher wird msgctxt als erster Teil des Schlüsselnamens hinzugefügt, getrennt durch zwei Pipe-Symbole ||:
msgctxt "menu" 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 "my_context" 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 Überprüfung von Übersetzungen verwendet. Fuzzy ruft automatisch den Unverifizierungsprozess innerhalb von Phrase auf.
#, fuzzy msgid "app_title" "Mein Softwareprojekt"