Unterstützte Dateitypen (Strings)

.PO - gettext files (Strings)

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

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 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 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

  • .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 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 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 "--- 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"
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.