
Перевод файлов .strings без нарушения работы приложения
Ключи не изменяются. Спецификаторы формата сохраняются. Правила множественного числа остаются правильными. Localizable.strings переводится за секунды, а не дни.
Перевод Apple .strings — утомительный и чреватый ошибками процесс
Вы экспортируете Localizable.strings, передаёте переводчику или вставляете в универсальный инструмент, а получаете повреждённые спецификаторы формата, неверные escape-последовательности и нарушенные правила множественного числа. Затем часами выясняете, почему приложение аварийно завершается при запуске на японском языке.
Универсальные инструменты переводят, переставляют или удаляют спецификаторы формата, такие как %@, %d и %1$@
Escape-последовательности (\n, \", \t) повреждаются или экранируются дважды, нарушая разбор строк
Правила множественного числа Stringsdict требуют зависящих от языка категорий CLDR, которые большинство инструментов полностью игнорирует
Комментарии переводчиков и подсказки контекста удаляются, что приводит к неверным переводам
/* Localizable.strings (English) */
"welcome_title" = "Welcome to MyApp";
"login_button" = "Sign In";
"greeting" = "Hello, %@!";
"items_count" = "%d items in your cart";
"transfer" = "Send %1$@ to %2$@";/* Localizable.strings (Japanese) */
"welcome_title" = "MyAppへようこそ";
"login_button" = "サインイン";
"greeting" = "%@さん、こんにちは!";
"items_count" = "カートに%d個のアイテム";
"transfer" = "%2$@に%1$@を送信";Что сохраняет i18n Agent
Спецификаторы формата
Позиционные (%1$@) и типизированные (%d, %f, %@) спецификаторы распознаются и остаются неизменными
Escape-последовательности
Переносы строк (\n), табуляции (\t), кавычки (\") и escape-последовательности Unicode сохраняются правильно
Формы множественного числа Stringsdict
Категории множественного числа CLDR (zero, one, two, few, many, other) правильно задаются для каждого целевого языка
Комментарии и контекст
Комментарии переводчиков и примечания разработчиков сохраняются, чтобы не потерять контекст перевода
Работает на всех платформах Apple
Инструменты с открытым исходным кодом для локализации iOS
i18n Agent для Xcode
Приложение для строки меню macOS, которое добавляет в Xcode локализацию одним нажатием. Оно автоматически определяет активный проект, переводит файлы .strings, .xcstrings и .stringsdict и записывает их в правильные каталоги .lproj. Отправьте существующие переводы в память переводов, чтобы обеспечить единообразие во всём проекте.
LocaleChain
В iOS есть известная недоработка: когда региональная локаль пользователя (например, pt-BR) отсутствует, система сразу переходит на английский вместо того, чтобы попробовать родственную локаль (например, pt-PT). LocaleChain — пакет Swift, который решает эту проблему с помощью настраиваемых цепочек резервных локалей. Одна строка настройки, никаких изменений в существующем коде.
Как это работает

Без ручного копирования, извлечения строк и лишних действий. Только переведённые файлы.
Попробовать i18n Agent
Перетащите сюда файл перевода
JSON, YAML, PO, XML, CSV, Markdown, Properties
или нажмите, чтобы выбрать
Целевые языки
Часто задаваемые вопросы
Можно также перевести:
Для разработчиков
Установите инструмент CLI и переведите первый файл за 2 минуты.
Установить инструмент CLIДля корпоративных команд
Всё ещё связаны контрактом с TMS? Обсудим переход.