Skip to main content
AI agent network visualization

Перевод файлов .strings без нарушения работы приложения

Ключи не изменяются. Спецификаторы формата сохраняются. Правила множественного числа остаются правильными. Localizable.strings переводится за секунды, а не дни.

Перевод Apple .strings — утомительный и чреватый ошибками процесс

Вы экспортируете Localizable.strings, передаёте переводчику или вставляете в универсальный инструмент, а получаете повреждённые спецификаторы формата, неверные escape-последовательности и нарушенные правила множественного числа. Затем часами выясняете, почему приложение аварийно завершается при запуске на японском языке.

Универсальные инструменты переводят, переставляют или удаляют спецификаторы формата, такие как %@, %d и %1$@

Escape-последовательности (\n, \", \t) повреждаются или экранируются дважды, нарушая разбор строк

Правила множественного числа Stringsdict требуют зависящих от языка категорий CLDR, которые большинство инструментов полностью игнорирует

Комментарии переводчиков и подсказки контекста удаляются, что приводит к неверным переводам

Исходный текст (английский)
Base.lproj/Localizable.strings
/* 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$@";
Перевод (японский)
ja.lproj/Localizable.strings
/* 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

SwiftUI
UIKit / AppKit
Каталоги строк Xcode
Приложения macOS
watchOS / tvOS
Пакеты Swift

Инструменты с открытым исходным кодом для локализации iOS

i18n Agent для Xcode

Приложение для строки меню macOS, которое добавляет в Xcode локализацию одним нажатием. Оно автоматически определяет активный проект, переводит файлы .strings, .xcstrings и .stringsdict и записывает их в правильные каталоги .lproj. Отправьте существующие переводы в память переводов, чтобы обеспечить единообразие во всём проекте.

Автоматически определяет активный проект Xcode через AppleScript
Получение: переводит файлы и записывает их в правильные каталоги .lproj
Отправка: загружает существующие переводы в память переводов
Находится в строке меню и работает с файлами .strings, .xcstrings и .stringsdict
Открыть на GitHub

LocaleChain

В iOS есть известная недоработка: когда региональная локаль пользователя (например, pt-BR) отсутствует, система сразу переходит на английский вместо того, чтобы попробовать родственную локаль (например, pt-PT). LocaleChain — пакет Swift, который решает эту проблему с помощью настраиваемых цепочек резервных локалей. Одна строка настройки, никаких изменений в существующем коде.

Настройка одной строкой: LocaleChain.configure()
Прозрачно работает с NSLocalizedString, SwiftUI Text и .stringsdict
Встроенные цепочки резервных локалей для португальского, испанского, французского, немецкого и других языков
Устанавливается через Swift Package Manager, лицензия MIT
Открыть на GitHub

Как это работает

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Без ручного копирования, извлечения строк и лишних действий. Только переведённые файлы.

Попробовать i18n Agent

Перетащите сюда файл перевода

JSON, YAML, PO, XML, CSV, Markdown, Properties

или нажмите, чтобы выбрать

Целевые языки

Регистрация не требуетсяМгновенный расчёт

Часто задаваемые вопросы

Для разработчиков

Установите инструмент CLI и переведите первый файл за 2 минуты.

Установить инструмент CLI

Для корпоративных команд

Всё ещё связаны контрактом с TMS? Обсудим переход.