
Перекладайте каталоги рядків Xcode за лічені секунди
Правильні форми множини відповідно до CLDR. Варіанти для пристроїв збережено. Стани перекладу відстежуються. Ваші файли .xcstrings перекладаються безпосередньо у Вашому IDE.
Переклад каталогів рядків складніший, ніж здається
У Xcode 15 каталоги рядків замінили .strings і .stringsdict єдиним файлом JSON, але складність нікуди не зникла. Для форм множини потрібні правильні категорії CLDR для кожної мови, варіанти для пристроїв (iPhone, iPad і Mac) мають залишатися пов’язаними зі своїми ключами, а через відстеження станів у Xcode одне неправильне поле робить увесь запис недійсним.
Кожна мова потребує власного набору категорій множини CLDR: арабська — усіх шести, японська — лише «other», а російська — чотирьох окремих форм
Варіанти рядків для різних пристроїв (iPhone, iPad, Mac, Apple Watch) мають залишатися правильно пов’язаними зі своїми батьківськими ключами
Xcode відстежує стани перекладу (new, needs_review, translated, stale), а неправильні значення стану призводять до того, що Xcode ігнорує переклади або помилково позначає їх
Під час переходу зі старих форматів .strings/.stringsdict на .xcstrings виникають відмінності форматів, з якими універсальні інструменти не справляються
{
"sourceLanguage": "en",
"version": "1.0",
"strings": {
"welcome_title": {
"extractionState": "manual",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome to the App"
}
}
}
},
"item_count": {
"localizations": {
"en": {
"variations": {
"plural": {
"zero": {
"stringUnit": {
"state": "translated",
"value": "No items"
}
},
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld item"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld items"
}
}
}
}
}
}
},
"device_greeting": {
"localizations": {
"en": {
"variations": {
"device": {
"iphone": {
"stringUnit": {
"state": "translated",
"value": "Tap to continue"
}
},
"ipad": {
"stringUnit": {
"state": "translated",
"value": "Tap or click to continue"
}
},
"mac": {
"stringUnit": {
"state": "translated",
"value": "Click to continue"
}
}
}
}
}
}
}
}
}{
"sourceLanguage": "en",
"version": "1.0",
"strings": {
"welcome_title": {
"extractionState": "manual",
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Willkommen in der App"
}
}
}
},
"item_count": {
"localizations": {
"de": {
"variations": {
"plural": {
"zero": {
"stringUnit": {
"state": "translated",
"value": "Keine Elemente"
}
},
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld Element"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld Elemente"
}
}
}
}
}
}
},
"device_greeting": {
"localizations": {
"de": {
"variations": {
"device": {
"iphone": {
"stringUnit": {
"state": "translated",
"value": "Tippen zum Fortfahren"
}
},
"ipad": {
"stringUnit": {
"state": "translated",
"value": "Tippen oder klicken zum Fortfahren"
}
},
"mac": {
"stringUnit": {
"state": "translated",
"value": "Klicken zum Fortfahren"
}
}
}
}
}
}
}
}
}Що зберігає i18n Agent
Форми множини
Для кожної цільової мови створюються правильні категорії множини CLDR: від однієї категорії для японської до шести для арабської
Варіанти для пристроїв
Варіанти рядків для iPhone, iPad, Mac і Apple Watch залишаються правильно пов’язаними зі своїми батьківськими ключами
Урахування станів
Стани перекладу (new, needs_review, translated) установлюються правильно, тому процес локалізації в Xcode працює належним чином
Сумісність форматів
Результат повністю сумісний із редактором каталогів рядків Xcode і легко інтегрується як у нові, так і в перенесені проєкти
Працює в усій екосистемі розробки Apple
Як це працює

Без ручного копіювання та вставлення. Без вилучення рядків. Лише перекладені файли.
Спробуйте i18n Agent зараз
Перетягніть сюди файл для перекладу
JSON, YAML, PO, XML, CSV, Markdown, Properties
або натисніть, щоб вибрати
Цільові мови
Поширені запитання
Ви розробник?
Встановіть інструмент CLI та перекладіть свій перший файл за 2 хвилини.
Встановити інструмент CLIВи представляєте корпоративну команду?
Досі зв’язані контрактом із постачальником TMS? Обговорімо перехід.