PTC (Private Translation Cloud) unterstützt verschiedene Ressourcen-Dateiformate, die übersetzbaren Text wie App-Bezeichnungen, Fehlermeldungen und Benutzerinhalte speichern.
Nachfolgend finden Sie detaillierte Beispiele unterstützter Ressourcen-Dateiformate, die Ihnen bei der Vorbereitung für die Übersetzung helfen.
Unterstützte Ressourcen-Dateiformate
Gettext (POT, PO)
Technischer Überblick
Dateierweiterungen:
- .pot (Portable Object Template): Diese Datei dient als Vorlage und listet alle übersetzbaren Zeichenketten in der Originalsprache auf.
- .po (Portable Object): Diese Datei enthält die tatsächlichen Übersetzungen sowohl in der Original- als auch in der Zielsprache.
Häufige Anwendungsfälle:
- Open-Source-Projekte, wie WordPress-Themes und -Plugins
- Python-Internationalisierung
Struktur:
Jede .po-Datei enthält Schlüsselelemente:
- msgid: Die Originalzeichenkette in der Quellsprache
- msgstr: Die entsprechende Übersetzung in der Zielsprache
Beispiel
po
msgid "Hello, world!"
msgstr "Hola, mundo!"
JSON (JavaScript Object Notation)
Technischer Überblick
Dateierweiterung:
- .json
Häufige Anwendungsfälle:
- Webanwendungen (React, Angular, Vue.js)
- Mobile Apps (iOS, Android)
Struktur:
- Schlüssel-Wert-Paare
JSON-Dateien speichern Text oft in einfachen Schlüssel-Wert-Paaren. Jeder Schlüssel repräsentiert die Originalzeichenkette, und jeder Wert enthält die Übersetzung.
Beispiel
Quellsprachendateijson
json
{
"welcome_message": "Welcome to our app!",
"error_message": "Something went wrong. Please try again."
}
In einer übersetzten Datei ändern sich die Werte in die Zielsprache:
json
{
"welcome_message": "¡Bienvenido a nuestra aplicación!",
"error_message": "Algo salió mal. Inténtalo de nuevo."
}
JSON-Array
JSON unterstützt auch Arrays zum Speichern mehrerer zusammengehöriger Zeichenketten, wie z. B. Listen von Schritten oder Optionen. Jedes Element im Array repräsentiert eine übersetzbare Zeichenkette.
Quellsprachendatei:
json
{
"steps": [
"Open the app.",
"Log in to your account.",
"Select your profile."
]
}
Datei mit Übersetzungen:
json
{
"steps": [
"Abre la aplicación.",
"Inicia sesión en tu cuenta.",
"Selecciona tu perfil."
]
}
YAML (YAML Ain’t Markup Language)
Technischer Überblick
Dateierweiterung:
.yaml oder .yml
Häufige Anwendungsfälle:
- Ruby on Rails-Anwendungen (zum Verwalten übersetzbarer Zeichenketten)
- Webanwendungen und statische Seitengeneratoren (z. B. Jekyll, Hugo)
- Konfigurationsdateien für CI/CD-Pipelines und Softwareprojekte
Struktur:
YAML verwendet eine saubere, eingerückte Struktur für Schlüssel-Wert-Paare. Jeder Schlüssel repräsentiert die Originalzeichenkette, und der Wert enthält die Übersetzung.
Beispiel
Quellsprachendatei
yml
welcome_message: "Welcome to our app!"
error_message: "Something went wrong. Please try again."
In einer übersetzten YAML-Datei ändern sich die Werte in die Zielsprache:
yml
welcome_message: "¡Bienvenido a nuestra aplicación!"
error_message: "Algo salió mal. Inténtalo de nuevo."
Android-Strings (XML)
Technischer Überblick
Dateierweiterung:
.xml
Häufige Anwendungsfälle:
- Android-Mobil-Apps (UI-Strings und Nachrichten)
Struktur:
Android-XML-String-Dateien folgen einem strukturierten Format, wobei jede Zeichenkette in <string>-Tags eingeschlossen und durch einen eindeutigen Schlüssel identifiziert wird.
Beispiel
Quellsprachendatei
xml
<resources>
<string name="welcome_message">Welcome to our app!</string>
<string name="error_message">Something went wrong. Please try again.</string>
</resources>
Bei der Übersetzung ändern sich nur die Werte innerhalb der Tags, während die Schlüssel gleich bleiben:
xml
<resources>
<string name="welcome_message">¡Bienvenido a nuestra aplicación!</string>
<string name="error_message">Algo salió mal. Inténtalo de nuevo.</string>
</resources>
Apple-Strings
Technischer Überblick
Dateierweiterung:
.strings
Häufige Anwendungsfälle:
- iOS- und macOS-Anwendungen (UI-Strings, Systemmeldungen usw.)
Struktur:
Jede .strings-Datei verwendet ein einfaches Schlüssel-Wert-Format, bei dem der Schlüssel der Originaltext in der App ist und der Wert die Übersetzung enthält. Sie können Kommentare hinzufügen, um Übersetzern Kontext zu geben.
Kodierung:
UTF-16-Kodierung standardmäßig, mit der Option, .strings-Dateien in UTF-8-Kodierung zu konvertieren
Beispiel
Quellsprache:
strings
/* Welcome message shown on the home screen */
"welcome_message" = "Welcome to our app!";
/* Error message when something goes wrong */
"error_message" = "Something went wrong. Please try again.";
In einer übersetzten Datei ändern sich die Werte, um die Zielsprache widerzuspiegeln, während die Schlüssel in der Quellsprache bleiben:
strings
/* Welcome message shown on the home screen */
"welcome_message" = "¡Bienvenido a nuestra aplicación!";
/* Error message when something goes wrong */
"error_message" = "Algo salió mal. Inténtalo de nuevo.";
Apple stringsdict
Technischer Überblick
Dateierweiterung:
.stringsdict
Häufige Anwendungsfälle:
- iOS- und macOS-Anwendungen (Verwaltung von Pluralformen, dynamischen Inhalten oder geschlechtsbasierter Sprache)
Struktur:
Eine .stringsdict-Datei verwendet verschachtelte Dictionaries, um mehrere Versionen einer Zeichenkette basierend auf den Werten von Variablen zu definieren. Sie ermöglicht es Ihnen, sowohl Singular- als auch Pluralversionen einer Nachricht basierend auf einem numerischen Wert bereitzustellen.
Beispiel
Quellsprachendatei:
xml
<plist version="1.0">
<dict>
<key>apples_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@apples@</string>
<key>apples</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d apple</string>
<key>other</key>
<string>%d apples</string>
</dict>
</dict>
</dict>
</plist>
In der übersetzten Version ändern sich nur die Werte für die Pluralformen in die Zielsprache, während die Schlüssel gleich bleiben:
xml
<plist version="1.0">
<dict>
<key>apples_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@apples@</string>
<key>apples</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d manzana</string>
<key>other</key>
<string>%d manzanas</string>
</dict>
</dict>
</dict>
</plist>
Apple-String-Kataloge (XCStrings)
Technischer Überblick
Dateierweiterung:
.xcstrings
Häufige Anwendungsfälle:
- Jede Apple-Plattform-App, die auf iOS 15/macOS 12/tvOS 15/watchOS 8/visionOS 1 oder höher abzielt
Struktur:
XCStrings speichern alle Übersetzungen in einer einzigen JSON-basierten Datei. Die Stammebene definiert Metadaten wie Quellsprache und Katalogtyp. Jeder Eintrag entspricht einem String-Schlüssel, der Entwicklerhinweise und andere Metadaten enthalten kann. Innerhalb jedes Eintrags sind Lokalisierungen nach Sprache verschachtelt, mit Feldern für den übersetzten Text und den Status. Sie können auch Pluralisierungsregeln, Placeholder und gerätespezifische Variationen für jede Sprache einschließen.
Beispiel
Quellsprache:
json
{
"sourceLanguage" : "en",
"strings" : {
"welcome_message" : {
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Welcome to our app!"
}
}
}
}
},
"version" : "1.0"
}
Übersetzungen werden in derselben Datei mit derselben Struktur wie die Lokalisierungseigenschaft der Quellsprache gespeichert:
json
{
"sourceLanguage": "en",
"strings": {
"welcome_message": {
"extractionState": "extracted_with_value",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome to our app!"
}
},
"es": {
"stringUnit": {
"state": "translated",
"value": "¡Bienvenido a nuestra app!"
}
},
"de": {
"stringUnit": {
"state": "translated",
"value": "Willkommen bei unserer App!"
}
},
"el": {
"stringUnit": {
"state": "translated",
"value": "Καλώς ήρθατε στην εφαρμογή μας!"
}
}
}
}
},
"version": "1.0"
}
Apple Property List
Technischer Überblick
Dateierweiterung:
.plist
Häufige Anwendungsfälle:
- iOS- und macOS-Anwendungen (UI-Text, Konfigurationseinstellungen)
Struktur:
Eine .plist-Datei organisiert Daten in einem strukturierten, XML-basierten Format. Für die Lokalisierung speichern sie Schlüssel-Wert-Paare, wobei der Schlüssel die Zeichenkette identifiziert und der Wert den zu übersetzenden Text enthält.
Beispiel
Quellsprache:
xml
<plist version="1.0">
<dict>
<key>welcome_message</key>
<string>Welcome to our app!</string>
<key>error_message</key>
<string>Something went wrong. Please try again.</string>
</dict>
</plist>
In der übersetzten Datei ändern sich die Werte, um die Zielsprache widerzuspiegeln:
xml
<plist version="1.0">
<dict>
<key>welcome_message</key>
<string>¡Bienvenido a nuestra aplicación!</string>
<key>error_message</key>
<string>Algo salió mal. Inténtalo de nuevo.</string>
</dict>
</plist>
Java-Properties
Technischer Überblick
Dateierweiterung:
.properties
Häufige Anwendungsfälle:
- Java-basierte Webanwendungen
- Mit Java erstellte Desktop-Anwendungen
- Lokalisierung von UI-Elementen, Fehlermeldungen und Systemaufforderungen
Struktur:
Java-Properties-Dateien verwenden eine Schlüssel-Wert-Struktur, bei der jeder Schlüssel einen Bezeichner für eine übersetzbare Zeichenkette darstellt und der Wert den eigentlichen Text enthält.
Kodierung:
Standardmäßig ISO-8859-1 (Latin-1)-Kodierung, Sie können aber auch UTF-8-Kodierung verwenden, um eine größere Zeichenpalette zu unterstützen. Sonderzeichen müssen bei Verwendung von ISO-8859-1 oft maskiert werden.
Beispiel
Quellsprache:
properties
welcome_message=Welcome to our app!
error_message=Something went wrong. Please try again.
In der übersetzten Version ändern sich die Werte, um die Zielsprache widerzuspiegeln, während die Schlüssel gleich bleiben:
properties
welcome_message=¡Bienvenido a nuestra aplicación!
error_message=Algo salió mal. Inténtalo de nuevo.
CSV (Magento / Adobe Commerce)
Technischer Überblick
Dateierweiterung:
.csv
Häufige Anwendungsfälle:
- Magento und Adobe Commerce zur Verwaltung von Produktbeschreibungen, UI-Labels und anderen übersetzbaren Zeichenketten
- Import und Export großer Mengen von Lokalisierungsdaten in E-Commerce-Plattformen
Struktur:
CSV-Dateien bestehen aus Zeilen, wobei jede Zeile ein Schlüssel-Wert-Paar darstellt. Die erste Spalte enthält den Schlüssel (normalerweise einen Bezeichner oder die Originalzeichenkette), und die zweite Spalte enthält die entsprechende Übersetzung.
Beispiel
Quellsprache:
csv
"welcome_message","Welcome to our store!"
"error_message","Something went wrong. Please try again."
In der übersetzten Version ändert sich die zweite Spalte, um die Zielsprache widerzuspiegeln, während die Schlüssel gleich bleiben:
csv
"welcome_message","¡Bienvenido a nuestra tienda!"
"error_message","Algo salió mal. Inténtalo de nuevo."
XLIFF (XML Localization Interchange File Format)
Technischer Überblick
Dateierweiterung:
.xliff
Häufige Anwendungsfälle:
- Software- und Website-Lokalisierung
- Übersetzungsmanagement-Systeme
- Content-Management-Systeme (CMS) und Autorentools
Struktur:
Jede .xliff-Datei enthält typischerweise Schlüsselelemente in einem strukturierten XML-Format:
<source>
: Enthält die Originalzeichenkette in der Quellsprache<target>
: Enthält die entsprechende Übersetzung in der Zielsprache.<trans-unit>
: Definiert jede Übersetzungseinheit, gruppiert die<source>
– und<target>
-Paare. Jede<trans-unit>
kann zusätzliche Metadaten wie Bezeichner, Kontextinformationen und Status enthalten.
Beispiel
<xliff version="1.2">
<file source-language="en" target-language="es">
<body>
<trans-unit id="1">
<source>Hello, world!</source>
<target>Hola, mundo!</target>
</trans-unit>
</body>
</file>
</xliff>
Wie PTC Ihre Ressourcendateien übersetzt
Sobald Sie eine kostenlose Testversion starten, ist es einfach, Ihre Ressourcendateien mit PTC zu übersetzen. Sie entscheiden, wie Übersetzungen gehandhabt werden, geben Kontext an, und PTC liefert Übersetzungen in menschlicher Qualität zu Maschinengeschwindigkeit und -kosten.
Erfahren Sie mehr in unserem Einstiegsleitfaden.