Unterstützte Dateiformate#

Weblate supports a wide range of translation formats. Each format is slightly different and provides a different set of capabilities.

Hinweis

When choosing a file format for your application, it’s better to stick some well established format in the toolkit/platform you use. This way your translators can additionally use whatever tools they are used to, and will more likely contribute to your project.

Automatische Erkennung#

Weblate tries to detect file format during Übersetzungsprojekte und Komponenten hinzufügen. The detection might be wrong for different variants of the same serialization format (JSON, YAML, properties) or file encoding, so please verify that Dateiformat is correct before creating the component.

Fähigkeiten der Übersetzungstypen#

Fähigkeiten aller unterstützten Formate#

Format

Lingualität [1]

Pluralformen [2]

Beschreibungen [3]

Kontext [4]

Ort [5]

Markierungen [8]

Zusätzliche Status [6]

GNU gettext

zweisprachig

ja

ja

ja

ja

ja [9]

bearbeitungsbedürftig

Monolingual gettext

einsprachig

ja

ja

ja

ja

ja [9]

bearbeitungsbedürftig

XLIFF

beides

ja

ja

ja

ja

ja

bearbeitungsbedürftig, genehmigt

Java-Eigenschaften

beides

nein

ja

nein

nein

nein

mi18n lang-Dateien

einsprachig

nein

ja

nein

nein

nein

GWT-Eigenschaften

einsprachig

ja

ja

nein

nein

nein

Joomla-Übersetzungen

einsprachig

nein

ja

nein

ja

nein

Qt Linguist .ts

beides

ja

ja

nein

ja

ja

bearbeitungsbedürftig

Android String-Ressourcen

einsprachig

ja

ja [7]

nein

nein

ja

Apple iOS-Zeichenketten

beides

nein

ja

nein

nein

nein

PHP-Zeichenketten

einsprachig

nein [10]

ja

nein

nein

nein

JSON-Dateien

einsprachig

nein

nein

nein

nein

nein

i18next-JSON-Dateien

einsprachig

ja

nein

nein

nein

nein

go-i18n-JSON-Dateien

einsprachig

ja

ja

nein

nein

nein

gotext-JSON-Dateien

einsprachig

ja

ja

nein

ja

nein

ARB-Datei

einsprachig

ja

ja

nein

nein

nein

WebExtension-JSON

einsprachig

ja

ja

nein

nein

nein

RESX.NET-Ressourcendateien

einsprachig

nein

ja

nein

nein

ja

ResourceDictionary-Dateien

einsprachig

nein

nein

nein

nein

ja

CSV-Dateien

beides

nein

ja

ja

ja

nein

bearbeitungsbedürftig

YAML-Dateien

einsprachig

nein

nein

nein

nein

nein

Ruby YAML-Dateien

einsprachig

ja

nein

nein

nein

nein

DTD-Dateien

einsprachig

nein

nein

nein

nein

nein

Flat XML-Dateien

einsprachig

nein

nein

nein

nein

ja

Windows RC-Dateien

einsprachig

nein

ja

nein

nein

nein

Excel Open XML

einsprachig

nein

ja

ja

ja

nein

bearbeitungsbedürftig

App-Store-Metadatendateien

einsprachig

nein

nein

nein

nein

nein

Untertiteldateien

einsprachig

nein

nein

nein

ja

nein

HTML-Dateien

einsprachig

nein

nein

nein

nein

nein

Markdown-Dateien

einsprachig

nein

nein

nein

nein

nein

OpenDocument-Format

einsprachig

nein

nein

nein

nein

nein

IDML-Format

einsprachig

nein

nein

nein

nein

nein

INI-Übersetzungen

einsprachig

nein

nein

nein

nein

nein

Inno Setup INI-Übersetzungen

einsprachig

nein

nein

nein

nein

nein

TermBase eXchange-Format

zweisprachig

nein

ja

nein

nein

ja

Textdateien

einsprachig

nein

nein

nein

nein

nein

Stringsdict-Format

einsprachig

ja

nein

nein

nein

nein

Fluent-Format

einsprachig

no [11]

ja

nein

nein

nein

Zweisprachige und einsprachige Formate#

Both monolingual and bilingual formats are supported. Bilingual formats store two languages in single file—source and translation (typical examples are GNU gettext, XLIFF or Apple iOS-Zeichenketten). On the other side, monolingual formats identify the string by ID, and each language file contains only the mapping of those to any given language (typically Android String-Ressourcen). Some file formats are used in both variants, see the detailed description below.

For correct use of monolingual files, Weblate requires access to a file containing complete list of strings to translate with their source—this file is called Einsprachige Basissprachdatei within Weblate, though the naming might vary in your paradigm.

Additionally this workflow can be extended by utilizing Zwischensprachedatei to include strings provided by developers, but not to be used as is in the final strings.

Zeichenkettenstatus#

Many file formats only differentiate „Untranslated“ and „Translated“ strings. With some formats it is possible to store more fine-grained state information, such as „Needs editing“ or „Approved“.

Beschreibung der Ausgangszeichenkette#

Source string descriptions can be used to pass additional info about the string to translate.

Several formats have native support for providing additional info to translators (for example XLIFF, GNU gettext, WebExtension-JSON, CSV-Dateien, Excel Open XML, Qt Linguist .ts, go-i18n-JSON-Dateien, gotext-JSON-Dateien, ARB-Datei, RESX.NET-Ressourcendateien). Many other formats extract closest comment as source string description.

Erklärung#

The Erklärung on strings can be stored and parsed from a few file formats.

Wird derzeit nur in TermBase eXchange-Format unterstützt.

Ort der Ausgangszeichenkette#

Location of a string in source code might help proficient translators figure out how the string is used.

This information is typically available in bilingual formats where strings are extracted from the source code using tools. For example GNU gettext and Qt Linguist .ts.

Übersetzungsmarkierungen#

Translation flags allow customizing Weblate behavior. Some formats support defining those in the translation file (you can always define them in the Weblate interface, see Anpassen des Verhaltens mit Markierungen).

This feature is modelled on flags in GNU gettext.

Additionally, for all XML based format, the flags are extracted from the non-standard attribute weblate-flags. Additionally max-length:N is supported through the maxwidth attribute as defined in the XLIFF standard, see Specifying translation flags.

Kontext#

Der Kontext wird verwendet, um identische Zeichenketten in einem zweisprachigen Format zu unterscheiden, die in verschiedenen Bereichen verwendet werden (z. B. kann Sun als abgekürzter Name des Tages „Sonntag“ oder als Name unseres nächstgelegenen Sterns verwendet werden).

Bei einsprachigen Formaten kann die Zeichenkettenkennung (oft als Schlüssel bezeichnet) denselben Zweck erfüllen und ein zusätzlicher Kontext ist nicht erforderlich.

Zeichenketten mit Pluralformen#

Pluralformen sind notwendig, um Zeichenketten mit variabler Anzahl richtig zu lokalisieren. Die Regeln hängen von der Zielsprache ab und viele Formate folgen der CLDR-Spezifikation für diese Sprache.

Hinweis

Die Pluralbildung von Zeichenketten muss auch vom Anwendungsframework ordnungsgemäß unterstützt werden. Wählen Sie das native Format Ihrer Plattform wie GNU gettext, Android String-Ressourcen oder Stringsdict-Format.

Schreibgeschützte Zeichenketten#

Schreibgeschützte Zeichenketten aus Übersetzungsdateien werden einbezogen, können aber in Weblate nicht bearbeitet werden. Diese Funktion wird nur von wenigen Formaten (XLIFF und Android String-Ressourcen) nativ unterstützt, kann aber in anderen Formaten durch Hinzufügen einer read-only-Markierung emuliert werden, siehe Anpassen des Verhaltens mit Markierungen.

Unterstützung anderer Formate#

Most formats supported by translate-toolkit which support serializing can be easily supported, but they did not (yet) receive any testing. In most cases some thin layer is needed in Weblate to hide differences in behavior of different translate-toolkit storages.

To add support for a new format, the preferred approach is to first implement support for it in the translate-toolkit.