Lingo.dev + .stringsdict (Xcode)
Lingo.dev CLI übersetzt Xcode .stringsdict-Dateien unter Beibehaltung der Pluralisierungsregeln, Formatvariationen und iOS-Pluralbehandlung. Die CLI wendet automatisch die korrekten sprachspezifischen Pluralregeln an, behält die gesamte Plist-Struktur und Metadaten bei, verarbeitet mehrere Variablen in komplexen Strings, gewährleistet korrekte Kodierung und Zeichenverarbeitung und integriert sich nativ in iOS-Lokalisierungs-Workflows.
Schnelle Einrichtung
Konfiguration für Xcode stringsdict Pluralisierungsdateien:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ru"]
},
"buckets": {
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"]
}
}
}
Hinweis: [locale]
ist ein Platzhalter, der wörtlich in der Konfiguration verbleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.
Stringsdict-Dateien übersetzen
npx lingo.dev@latest i18n
Verarbeitet komplexe iOS-Pluralisierungsregeln unter Beibehaltung der Plist-Struktur und Formatvariationen.
Pluralisierungsstruktur
Grundlegende Pluralformen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@items@</string>
<key>items</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>Keine Elemente</string>
<key>one</key>
<string>Ein Element</string>
<key>other</key>
<string>%d Elemente</string>
</dict>
</dict>
</dict>
</plist>
Komplexe Pluralregeln
<key>message_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@messages@</string>
<key>messages</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>Keine neuen Nachrichten</string>
<key>one</key>
<string>Eine neue Nachricht</string>
<key>few</key>
<string>%d neue Nachrichten</string>
<key>many</key>
<string>%d neue Nachrichten</string>
<key>other</key>
<string>%d neue Nachrichten</string>
</dict>
</dict>
Mehrere Variablen
<key>files_and_folders</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@files@ und %#@folders@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>keine Dateien</string>
<key>one</key>
<string>eine Datei</string>
<key>other</key>
<string>%d Dateien</string>
</dict>
<key>folders</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>keine Ordner</string>
<key>one</key>
<string>ein Ordner</string>
<key>other</key>
<string>%d Ordner</string>
</dict>
</dict>
Sprachspezifische Regeln
Verschiedene Sprachen haben einzigartige Pluralisierungsregeln:
- Englisch:
zero
,one
,other
- Russisch:
zero
,one
,few
,many
,other
- Polnisch:
zero
,one
,few
,many
,other
- Arabisch:
zero
,one
,two
,few
,many
,other
Die Übersetzungs-Engine wendet automatisch die korrekten Regeln für jede Zielsprache an.
Erweiterte Konfiguration
Mehrere Stringsdict-Dateien
"xcode-stringsdict": {
"include": [
"Resources/[locale].lproj/Localizable.stringsdict",
"Resources/[locale].lproj/Notifications.stringsdict"
]
}
Format-Schlüssel sperren
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"],
"lockedKeys": ["NSStringLocalizedFormatKey", "NSStringFormatSpecTypeKey"]
}