|
Dateierweiterungen |
.po |
|
API-Erweiterung |
gettext |
|
Import |
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 Herunterladen wird. Abhängig von der hochladen/Herunterladen-Methode (API, CLI, Repo-Sync usw.) können sie in Query-Parametern |
|
.AB (Portable Object) ist das Standard-Format 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 Strings aus dem Ausgangssprache-Code in eine AB-Datei zur Übersetzung extrahiert. Eine .AB-Datei ist eine Reihe von Key-Wert-Paaren. Der Key msgid ist der Ort, an dem die Ausgangssprache-Zeichenfolge platziert wird, während der Wert msgstr der Ort ist, an den die Übersetzung geht.
gettext extrahiert Strings aus dem Ausgangssprache-Code in eine .POT (Portable Object Vorlage). Basierend auf definierten Sprache konvertiert gettext die .POT-Datei dann in sprachspezifische .AB-Dateien zum hochladen in ein CAT-Tool zur Übersetzung. Nach der Übersetzung konvertiert gettext die übersetzten .AB-Dateien in .MO-Dateien (Machine Object Files), die schließlich für die Lokalisierung verwendet werden.
.AB-Dateien sind identisch mit .POT-Dateien, mit der Ausnahme, dass .POT-Dateien im Allgemeinen von gettext verwendet werden, um sprachspezifische .AB-Dateien zu generieren. Das direkte Übersetzen einer .POT-Datei und deren Umbenennung gemäß der später beabsichtigten Sprache führt zu keinen Problemen. Phrase unterstützt die Übersetzung von:
-
.AB-Dateien
-
Zweisprachige .AB-Dateien
-
Maschinenlesbare .MO-Dateien
msgctxt wird als Key-Präfix verwendet, kombiniert mit msgid und getrennt durch ||.
Format-Optionen
|
Identifikator |
msgid_as_default |
|
Typ |
Boolean |
|
Hochladen |
true |
|
Herunterladen |
false |
|
Standard |
false |
|
Beschreibung |
Nimmt den Content der Übersetzung aus dem |
|
Identifikator |
is_bilingual_file |
|
Typ |
Boolean |
|
Hochladen |
true |
|
Herunterladen |
false |
|
Standard |
false |
|
Beschreibung |
Sowohl die Übersetzungen der Ausgangssprache als auch der Zielsprache werden aus der hochgeladenen Datei importiert: Der Content der Ausgangssprache wird aus dem |
Codebeispiel
msgid "" msgstr "" "Language: Sprache\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 Key! 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 "This translations contains\na line-break." msgid "nested.deeply.key" msgstr "Wow, dieser Key ist noch tiefer verschachtelt." msgid "nested.key" msgstr "Dieser Key ist innerhalb eines Namespace verschachtelt." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Only one pluralization found." msgstr[1] "Wow, you have %s pluralizations!" msgid "sample_collection" msgstr "---\n- first item\n- second item\n- third item\n" msgid "simple_key" msgstr "simple key, simple message, so simple.2" #, Fuzzy msgid "unverified_key" msgstr "Ich benötige eine Überprüfung, bitte überprüfen Sie mich!" (In some formats we also export this status)"
Typischer gettext-Eintrag:
# Beschreibung (Optional) msgid "key-name" msgstr "Meine Übersetzung"
gettext-Header
Der Header einer gettext-Datei kann eine Sprache und Daten für Pluralformen enthalten, die während des importieren extrahiert werden:
msgid "" msgstr "" "Language: 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"
Key-Beschreibungen
Kommentare in einer gettext-Datei werden während des importieren als Key-Beschreibungen hinzugefügt:
# Dies ist meine Beschreibung msgid "app_title" msgstr "Mein Software-Projekt"
Kontext
gettext verwendet die msgctxt-Notation, um verschiedene Kontexte für denselben msgid zu unterscheiden. Jeder Key-Name muss eindeutig sein, daher wird msgctxt als erster Teil des Key-Namens 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 den msgctxt zu einem neuen Key hinzuzufügen, stellen Sie ihn dem Key-Namen voran:
my_context||my_key_name
Resultierender gettext-Output:
... 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-Keyword wird zur Übersetzungsüberprüfung verwendet. Fuzzy ruft automatisch den Prozess zur Aufhebung der Verifizierung innerhalb von Phrase auf.
#, Fuzzy msgid "app_title" msgstr "Mein Software-Projekt"