Dateierweiterungen |
.po |
API-Erweiterung |
Gettext |
Importieren |
Ja |
Exportieren |
Ja |
Unterstützung für Pluralformen |
Ja |
Unterstützung für Beschreibungen |
Ja |
Format-Optionen |
|
AB (Portable Object) ist das Standard-Format für die Lokalisierung von Dateien mit GNU-Gettext, einer Open-Source-Bibliothek für GNU-Ausgangssprachen, die den Lokalisierungsprozess vereinfachen soll. Mit GNU gettext werden Localizable Strings zur Übersetzung aus der Ausgangssprache in eine AB extrahiert. Eine .AB-Datei ist eine Reihe von Key-Value-Paaren. Der Key msgstr
ist die Zeichenfolge der Ausgangssprache, während der Wert msgstr
die Zeichenfolge der Übersetzung ist.
gettext extrahiert Strings aus Ausgangssprache in einen .POT (portable object Vorlage). Basierend auf definierten Sprachen konvertiert gettext dann die .AB-Datei in eine sprachenspezifische .PO-Datei, die zur Übersetzung in ein CAT-Tool hochgeladen wird. 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 normalerweise von gettext verwendet werden, um sprach-spezifische .AB Dateien zu generieren. Die direkte Übersetzung einer .POT-Datei und deren Umbenennung nach der später vorgesehenen Sprache führt nicht zu 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 |
Übernimmt den Inhalt der Übersetzung aus dem |
Identifikator |
is_bilingual_file |
Typ |
Boolean |
Hochladen |
true |
Herunterladen |
false |
Standard |
false |
Beschreibung |
Übersetzungen in Ausgangssprache und Zielsprache werden aus der hochgeladenen Datei importiert: Inhalte in Ausgangssprache werden vom |
Codebeispiel
msgid "" msgstr "" „Sprache: Englisch\n" "MIME-Version: 1.0\n" "Inhalt-Typ: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Pluralformen: 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 "Schaut euch das an! This key has a description! (At least in some formats)" msgid "key_with_line-break" msgstr "Diese Übersetzungen enthalten\na Zeilenumbrüche." msgid "nested.deeply.key" msgstr "Wow, dieser Key ist noch tiefer verschachtelt." msgid "nested.key" msgstr "Dieser Key ist in einem Namespace verschachtelt." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Nur eine Pluralisierung gefunden." 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 "einfacher Key, einfache Nachricht, so einfach.2" #, Fuzzy msgid "unverified_key" msgstr „Ich brauche eine Verifizierung, bitte überprüfe mich! (In some formats we also export this status)"
Typischer Eintrag gettext:
# Beschreibung (optional) msgstr "Key" msgstr "Meine Übersetzung"
gettext Header
Der Header einer Gettext-Datei kann einen Namen in der Sprache und Daten für Pluralformen enthalten, die beim importieren extrahiert werden:
msgid "" msgstr "" "Sprache: en\n" "MIME-Version: 1.0\n" "Inhalt-Typ: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Pluralformen: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Beschreibungen
Kommentare in einer Gettext-Datei werden beim 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 dasselbe msgid
zu unterscheiden. Jeder Key Name muss eindeutig sein, daher wird msgctxt
als erster Teil des Key Names hinzugefügt, getrennt durch zwei Pipe Symbole ||
:
msgctxt „Menü“ msgstr "Öffnen" msgstr "Ich bin eine Übersetzung" msgctxt "forum" msgstr "Öffnen" msgstr "Ich bin eine andere Übersetzung"
Um das msgctxt
zu einem neuen Key hinzuzufügen, stelle es dem Key Name voran:
my_context||my_key_name
Ergebnis gettext Output:
... msgctxt "my_context" msgid "my_key_name" ...
Pluralformen
gettext unterstützt Pluralformen für eine Übersetzung:
msgstr "new_messages" msgid_plural "" msgstr[0] "Du hast eine neue Nachricht" msgstr[1] "Du hast %{count} neue Nachrichten"
Fuzzy
Das Fuzzy Keyword wird für die Überprüfung der Übersetzung verwendet. Fuzzy ruft automatisch den Verifizierungsprozess in phrase auf.
#, Fuzzy msgid "app_title" msgstr „Mein Software Projekt“