Перекласти файли .strings для iOS
Файл .strings — це список рядків "key" = "value";, де значення містить специфікатори формату, такі як %@. KAERIS перекладає значення та перевіряє, що кожен специфікатор залишився на місці.
KAERIS переклав цю сторінку та перевірив кожен рядок зворотним перекладом. Носій мови ще не переглядав її. Оригінал англійською
Як створюється файл .strings
Один "key" = "value"; на рядок, нотатки у /* … */. Значення екранують лапки та розриви рядків зворотним слешем. Множини тут не живуть: Xcode використовує .stringsdict або String Catalog для них, а KAERIS читає .strings та .xcstrings.
/* Greeting on the home screen */ "welcome" = "Welcome back, %@!"; "items_count" = "%1$d of %2$d items synced"; "quote" = "Press \"Done\" to continue.";
На що звернути увагу при перекладі .strings
%@ та позиційні специфікатори
%@,%dта%1$dє плейсхолдерами. У мові, яка переставляє слова, позиційна форма зберігає аргументи правильними; змінений або відсутній специфікатор буде позначено.Ескейпи
\"та\nвсередині значення читаються та записуються назад коректно, тому лапка в перекладі не завершує рядок.Нотатки залишаються у вихідному файлі
Коментарі
/* … */не переносяться до перекладеного файлу, який отримує однорядковий коментар мови. Зберігайте контекст для перекладачів у вихідному файлі.Довжина
Німецька та фінська мови часто довші за англійську. Перевірка попереджає, коли переклад значно довший за вихідний текст, що важливо для кнопок.
Реальний запуск: перекладено німецькою та перевірено
Реальний запуск, 27 жовтня 2026 року, нічого не редагувалося вручну: kaeris translate Localizable.strings --langs de з kaeris 0.2.35, 4 секунди, модель openai/gpt-4.1-mini (резервна модель сервісу відповіла на це завдання). Нижче наведено німецький файл, який він написав, і що kaeris check говорить про нього.
/* de */ "welcome" = "Willkommen zurück, %@!"; "items_count" = "%1$d von %2$d Elementen synchronisiert"; "quote" = "Drücken Sie \"Fertig\", um fortzufahren.";
$ kaeris check --source Localizable.strings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Що KAERIS робить з цим
Ключі та порядок збережено
Кожен ключ записується назад з його перекладеним значенням.
Специфікатори пораховано
Втрачений або змінений
%@або%1$dвиявляється без моделі.Безкоштовна перевірка для цього формату
Безкоштовна перевірка на /check читає цей формат і працює без ключа чи акаунта. Команда терміналу
kaeris checkтакож його читає: вона підтримує всі 13 форматів з kaeris 0.2.35, з тими ж правилами і нічого нікуди не відправляє.
Запустіть у три кроки
Встановіть CLI
Виконайте
pip install kaeris.Перекласти файл
Запустіть
kaeris translate en.lproj/Localizable.strings --langs de,ja.Перевірити результат
Завантажте вихідний файл та переклад на безкоштовну сторінку перевірки.
pip install kaeris kaeris translate en.lproj/Localizable.strings --langs de,ja --verify
Запитання
Чи зберігає він %@ та %1$d?
Так. Специфікатори порівнюються з вихідним текстом після перекладу, і втрачений або змінений специфікатор позначається. У реальному запуску вище %@, %1$d та %2$d усі повернулися.
А як щодо множин?
.strings не має синтаксису множини. Xcode зберігає множини в .stringsdict або в String Catalog; KAERIS читає каталог і розгортає множини для кожної мови, див. сторінку .xcstrings.
Це безкоштовно?
Так, без облікового запису: 10 000 символів на файл і до 8 мов за один запуск. Безкоштовний API-ключ збільшує ліміт файлу до 50 000 символів. Довічна ліцензія коштує $79 один раз, за вашим власним ключем OpenRouter; місячні плани починаються від $19. Ціни
Чи можу я запускати його з терміналу або в CI?
Так. pip install kaeris, потім kaeris translate en.lproj/Localizable.strings --langs de,ja. Див. також iOS. GitHub Action виконує той самий переклад у pull request. Документація CLI · GitHub Action
Продовжуйте
Довідник CLI · Довідник перевірки · Переклад у браузері · Безкоштовна перевірка · Конвертація форматів · Псевдолокалізація
Інші формати: JSON · YAML · .po · ARB · XLIFF · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML