Lingo.dev + .stringsdict (Xcode)
Lingo.dev CLI traduce archivos .stringsdict de Xcode preservando las reglas de pluralización, variaciones de formato y manejo de plurales de iOS. El CLI aplica automáticamente las reglas de pluralización específicas del idioma, mantiene toda la estructura y metadatos del plist, gestiona múltiples variables en cadenas complejas, garantiza la codificación adecuada y el manejo de caracteres, y se integra de forma nativa con los flujos de trabajo de localización de iOS.
Configuración rápida
Configuración para archivos de pluralización stringsdict de Xcode:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ru"]
},
"buckets": {
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"]
}
}
}
Recordatorio: [locale]
es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el locale real durante la ejecución del CLI.
Traducir archivos Stringsdict
npx lingo.dev@latest i18n
Maneja reglas complejas de pluralización de iOS mientras preserva la estructura del plist y las variaciones de formato.
Estructura de pluralización
Formas plurales básicas
<?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>No items</string>
<key>one</key>
<string>One item</string>
<key>other</key>
<string>%d items</string>
</dict>
</dict>
</dict>
</plist>
Reglas plurales complejas
<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>No new messages</string>
<key>one</key>
<string>One new message</string>
<key>few</key>
<string>%d new messages</string>
<key>many</key>
<string>%d new messages</string>
<key>other</key>
<string>%d new messages</string>
</dict>
</dict>
Múltiples variables
<key>files_and_folders</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@files@ and %#@folders@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>no files</string>
<key>one</key>
<string>one file</string>
<key>other</key>
<string>%d files</string>
</dict>
<key>folders</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>zero</key>
<string>no folders</string>
<key>one</key>
<string>one folder</string>
<key>other</key>
<string>%d folders</string>
</dict>
</dict>
Reglas específicas de idioma
Diferentes idiomas tienen reglas de pluralización únicas:
- Inglés:
zero
,one
,other
- Ruso:
zero
,one
,few
,many
,other
- Polaco:
zero
,one
,few
,many
,other
- Árabe:
zero
,one
,two
,few
,many
,other
El motor de traducción aplica automáticamente las reglas correctas para cada idioma de destino.
Configuración avanzada
Múltiples archivos Stringsdict
"xcode-stringsdict": {
"include": [
"Resources/[locale].lproj/Localizable.stringsdict",
"Resources/[locale].lproj/Notifications.stringsdict"
]
}
Bloquear claves de formato
"xcode-stringsdict": {
"include": ["Resources/[locale].lproj/Localizable.stringsdict"],
"lockedKeys": ["NSStringLocalizedFormatKey", "NSStringFormatSpecTypeKey"]
}