Lingo.dev + .stringsdict (Xcode)
Lingo.dev CLI traduit les fichiers .stringsdict d'Xcode tout en préservant les règles de pluralisation, les variations de format et la gestion des pluriels iOS. Le CLI applique automatiquement les règles de pluriel spécifiques à chaque langue, maintient toute la structure et les métadonnées du plist, gère plusieurs variables dans des chaînes complexes, assure un encodage et une manipulation de caractères appropriés, et s'intègre nativement aux flux de travail de localisation iOS.
Configuration rapide
Configuration pour les fichiers de pluralisation stringsdict d'Xcode :
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ru"]
},
"buckets": {
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"]
}
}
}
Rappel : [locale]
est un placeholder qui doit rester littéralement dans la configuration, car il est remplacé par la locale réelle pendant l'exécution du CLI.
Traduire les fichiers Stringsdict
npx lingo.dev@latest i18n
Gère les règles complexes de pluralisation iOS tout en préservant la structure plist et les variations de format.
Structure de pluralisation
Formes plurielles de base
<?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>Aucun élément</string>
<key>one</key>
<string>Un élément</string>
<key>other</key>
<string>%d éléments</string>
</dict>
</dict>
</dict>
</plist>
Règles de pluriel complexes
<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>Aucun nouveau message</string>
<key>one</key>
<string>Un nouveau message</string>
<key>few</key>
<string>%d nouveaux messages</string>
<key>many</key>
<string>%d nouveaux messages</string>
<key>other</key>
<string>%d nouveaux messages</string>
</dict>
</dict>
Variables multiples
<key>files_and_folders</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@files@ et %#@folders@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>aucun fichier</string>
<key>one</key>
<string>un fichier</string>
<key>other</key>
<string>%d fichiers</string>
</dict>
<key>folders</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>aucun dossier</string>
<key>one</key>
<string>un dossier</string>
<key>other</key>
<string>%d dossiers</string>
</dict>
</dict>
Règles spécifiques aux langues
Différentes langues ont des règles de pluralisation uniques :
- Anglais :
zero
,one
,other
- Russe :
zero
,one
,few
,many
,other
- Polonais :
zero
,one
,few
,many
,other
- Arabe :
zero
,one
,two
,few
,many
,other
Le moteur de traduction applique automatiquement les règles correctes pour chaque langue cible.
Configuration avancée
Fichiers Stringsdict multiples
"xcode-stringsdict": {
"include": [
"Resources/[locale].lproj/Localizable.stringsdict",
"Resources/[locale].lproj/Notifications.stringsdict"
]
}
Verrouiller les clés de format
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"],
"lockedKeys": ["NSStringLocalizedFormatKey", "NSStringFormatSpecTypeKey"]
}