Переведите Localizable.strings, затем проверьте каждую строку
Приложение для iOS читает свой текст через NSLocalizedString или String(localized:) из Localizable.strings или String Catalog. Потерянный %@ или %d приведет к сбою вызова форматирования. KAERIS переводит оба файла и сохраняет каждый спецификатор там, где его ожидает код.
Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском
%@ и %d остаются на каждом языке
Один файл на локаль, готов для de.lproj.
"welcome" = "Welcome back, %@!"; "items_left" = "%d items left in stock"; "save" = "Save changes";
"welcome" = "Willkommen zurück, %@!"; "items_left" = "Noch %d Artikel auf Lager"; "save" = "Änderungen speichern";
Что KAERIS делает с этим
String Catalogs, включая множественное число
Загрузите
Localizable.xcstringsи получите один объединенный каталог с каждым языком, с созданными вариантами множественного числа для каждого.Переменные проверяются без ИИ
После перевода простая проверка сравнивает каждую переменную и тег с оригиналом. Строка, потерявшая один, помечается и отображается сверху.
Каждая строка переведена обратно
Другая модель, GPT-4o mini, переводит каждую строку обратно на ваш язык, а DeepSeek V3.2 на американских серверах (DeepInfra, DigitalOcean, Google) оценивает, изменился ли смысл. Вы читаете, что теперь говорит каждая строка.
Вопросы
Что насчет .stringsdict?
Пока не поддерживается. Переведите эти варианты отдельно или переместите их в String Catalog, который работает с множественным числом.
Куда помещаются файлы?
Каждый скачанный .strings файл назван в соответствии с языком: поместите его в <lang>.lproj. String Catalog возвращается как один файл.
Это бесплатно?
Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены
Могу ли я использовать скрипты?
kaeris translate en.lproj/Localizable.strings --langs de,ja,ar работает из Fastlane lane или CI. Документация