Перевести

Перевод String Catalogs Xcode (.xcstrings)

String Catalog содержит все языки в одном JSON-файле, который вручную должен редактировать только Xcode. KAERIS добавляет новые языки в тот же файл и оставляет все остальное в нем без изменений.

Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском

Как строится String Catalog

Один файл, strings, затем ключ, затем localizations, затем язык. Каждый язык содержит stringUnit или variations для множественного числа. Файл также содержит comment, extractionState и shouldTranslate. Ключ без записи для исходного языка является его собственным исходным текстом.

Исходный файлLocalizable.xcstrings
{
  "sourceLanguage" : "en",
  "strings" : {
    "Welcome back, %@!" : {
      "comment" : "Greeting on the home screen",
      "extractionState" : "manual",
      "localizations" : {
        "en" : { "stringUnit" : { "state" : "translated", "value" : "Welcome back, %@!" } }
      }
    },
    "%lld items" : {
      "localizations" : {
        "en" : {
          "variations" : {
            "plural" : {
              "one" : { "stringUnit" : { "state" : "translated", "value" : "%lld item" } },
              "other" : { "stringUnit" : { "state" : "translated", "value" : "%lld items" } }
            }
          }
        }
      }
    },
    "Cancel" : { }
  },
  "version" : "1.0"
}

На что обратить внимание при переводе .xcstrings

Реальный запуск: переведено на немецкий и проверено

Реальный запуск, 27 октября 2026 г., ничего не редактировалось вручную: kaeris translate Localizable.xcstrings --langs de с kaeris 0.2.35, 2,4 секунды, модель openai/gpt-4.1-mini (резервная модель сервиса ответила на эту задачу). Ниже приведен немецкий файл, который он написал, и что говорит kaeris check об этом.

Результат на немецкомLocalizable.xcstrings
{
  "sourceLanguage": "en",
  "strings": {
    "Welcome back, %@!": {
      "comment": "Greeting on the home screen",
      "extractionState": "manual",
      "localizations": {
        "en": {
          "stringUnit": {
            "state": "translated",
            "value": "Welcome back, %@!"
          }
        },
        "de": {
          "stringUnit": {
            "state": "translated",
            "value": "Willkommen zurück, %@!"
          }
        }
      }
    },
    "%lld items": {
      "localizations": {
        "en": {
          "variations": {
            "plural": {
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld item"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld items"
                }
              }
            }
          }
        },
        "de": {
          "variations": {
            "plural": {
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Artikel"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Artikel"
                }
              }
            }
          }
        }
      }
    },
    "Cancel": {
      "localizations": {
        "de": {
          "stringUnit": {
            "state": "translated",
            "value": "Abbrechen"
          }
        }
      }
    }
  },
  "version": "1.0"
}
kaeris checkexit code 0
$ kaeris check --source Localizable.xcstrings --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Что KAERIS делает с этим

Выполните в три шага

  1. Установите CLI

    Выполните pip install kaeris.

  2. Перевести каталог

    Запустите kaeris translate Localizable.xcstrings --langs de,fr,ja. Каталог обновляется на месте.

  3. Проверить результат

    Загрузите каталог на бесплатную страницу проверки; она считывает исходный текст и переводы из одного файла.

pip install kaeris
kaeris translate Localizable.xcstrings --langs de,fr,ja --verify

Вопросы

Перезаписывает ли он мои существующие переводы?

Языки, уже присутствующие в файле, комментарии и состояния извлечения переносятся без изменений, как указано в README CLI.

Как обрабатывается множественное число?

Вариации множественного числа разворачиваются в категории, необходимые каждому языку: английское one/other становится one/few/many/other в русском и шести формах в арабском.

Это бесплатно?

Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены

Могу ли я запускать его из терминала или в CI?

Да. pip install kaeris, затем kaeris translate Localizable.xcstrings --langs de,ja. См. также iOS. GitHub Action выполняет тот же перевод в pull request. Документация CLI · GitHub Action

Продолжайте

Справочник по CLI · Справочник по проверке · Перевести в браузере · Бесплатная проверка · Конвертировать форматы · Псевдолокализация

Другие форматы: JSON · YAML · .po · ARB · XLIFF · .strings · .properties · .resx · CSV · Markdown · Fluent · Android XML