Unterstützte Dateitypen (Strings)

.PO - gettext-Dateien (Strings)

Inhalte werden von Phrase Language AI maschinell aus dem Englischen übersetzt.

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 Hochladen, Herunterladen oder in der phrase.yml Konfigurationsdatei angegeben werden.

  • msgid_as_default

  • is_bilingual_file

.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

  • .POT-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 msgid anstelle von msgstr

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 msgid entnommen, das Ziel aus dem Wert von msgstr

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"
War dieser Beitrag hilfreich?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.