JSON Переводчик: перевод файлов локали без нарушения ключей

Smartcat — это переводчик JSON для продуктовых команд: он анализирует ваши файлы локализации JSON, выполняет перевод только значений строк и возвращает те же ключи и вложенную структуру на любом из более чем 280 языков. Токены плейсхолдеров остаются заблокированными в виде тегов с использованием правил регулярных выражений, которые вы определяете один раз.

Переведите любой файл. За секунды.
Изображения, документы, видео, аудио, курсы — выберите формат и перетащите файл.
Перетащите документы сюда
или выберите файл · Поддерживается .docx, .pdf, .pptx, .xlsx и другое

Более 80 крупнейших компаний мира выбрали Smartcat

Что такое переводчик JSON?

JSON переводчик — это инструмент, который преобразует понятные человеку строки в JSON файле на другой язык, не затрагивая структуру файла. Smartcat выполняет перевод значений строк в ваших файлах локализации — ключи и вложенные элементы остаются точно такими же, какими и были, а токены-плейсхолдеры блокируются как теги, недоступные для редактирования, поэтому переведенный файл без проблем возвращается назад в ваш пайплайн интернационализации (i18n).

Будучи переводчиком файлов JSON, Smartcat обрабатывает en.json, translation.json и любой другой файл локали, который считывает ваша библиотека i18n. Локализация JSON идет еще дальше: ваши файлы локали становятся ключами в проекте Smartcat, которые вы импортируете и экспортируете через пользовательский интерфейс, REST API или CLI, поэтому с каждым релизом на перевод отправляются только новые и измененные строки.

Перевод одного файла, один раз? Бесплатный JSON переводчик использует тот же движок в вашем браузере.

92%

слов машинного перевода, принятых как есть

92% слов, переведенных ИИ Smartcat, принимаются без единого исправления со стороны человека.

280+

языков

Сгенерируйте de.json, ja.json и pt-BR.json из одного en.json на любом из более чем 280 языков.

80+

форматов файлов

JSON сидит далее к YAML, Android XML, iOS .strings и XLIFF в одном и том же рабочее пространство.

Интерактивное демо: ключи из импортированных файлов локали, прошедшие рецензирование в проекте по локализации программного обеспечения Smartcat.

Почему файлы JSON ломаются в обычных переводчиках?

Файлы JSON ломаются в обычных переводчиках, потому что эти инструменты воспринимают весь файл как сплошной текст, поэтому ключи, плейсхолдеры и синтаксис форм множественного числа переводятся вместе с текстом.

Вставьте en.json в обычный переводчик, и он воспримет весь документ как сплошной текст. То, что возвращается назад, парсится в вашем редакторе — или нет — и падает в продакшене. Ничто из этого не отображается в рецензировании. Они появляются во время выполнения, по одной локали за раз.

Универсальный переводчик

Весь файл как связный текстЛомается во время выполнения

Smartcat

Разобрано по ключуТолько значения типа строка

Ключи переводятся

«checkout_button» превращается в «bouton_de_paiement», и каждый поиск в вашем коде теперь возвращает undefined.

Ключи остаются заблокированными

Smartcat импортирует ключи как ID, а не как текст. Только значения типа строка становятся сегментами, поэтому каждый поиск по-прежнему разрешается успешно.

Плейсхолдеры искажаются

«Hello, {{userName}}» возвращается назад как «Bonjour, {{nomUtilisateur}}», и строка отображает необработанный токен.

Плейсхолдеры становятся тегами

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

Совпадение форм множественного числа

Сообщение ICU вида {count, plural, one {# item} other {# items}} сворачивается в одно предложение, и формы множественного числа ломаются во всех языках, кроме английского.

Формы множественного числа сохраняются

Формы множественного числа ICU разбираются на формы множественного числа, необходимые для каждого языка, а экспорт записывает их назад как ICU-совместимые строки.

Экранирование повреждает файл

Экранированные предложения, последовательности \n и \uXXXX «услужливо» нормализуются, и файл, который выглядел нормально в diff, выдает ошибку на JSON.parse.

Структура возвращается назад неизменной

Только значения типа строка становятся сегментами. Ключи и вложенность никогда не предлагаются для перевода, поэтому экспортированный файл сохраняет структуру вашего файла оригинала текста.

Что должен сохранить JSON переводчик

Переводчик файлов JSON должен сохранять ключи, вложенность, плейсхолдеры и формы множественного числа ICU нетронутыми и переводить только строковые значения. Инструмент для перевода JSON, который делает это, предоставляет вам перевод файла JSON, понятный вашей сборке. Вот что требуется для каждой части файла.

ЭлементПримерУниверсальный переводчикSmartcat
Ключи"checkout.title"Часто осуществляется перевод, поэтому поиск завершается неудачейЗаблокировано как ключевые ID, никогда не отправлялось на перевод
Значения строки"Your cart"Переведено вместе с окружающим кодомПереведено как сегменты с использованием TM и глоссария
Вложенные объекты{"nav": {"home": "Home"}}Скобки и предложения могут смещатьсяФорма сохранена; экспорт в виде плоской или структурированной модели JSON
Плейсхолдеры{{userName}}, %s, {0}Переведено или отброшеноЗаблокировано как теги правилами плейсхолдера, которые вы однажды установили
ICU множественное число{count, plural, one {…} other {…}}Сведено в одно предложениеРазобрано по формам множественного числа для каждого языка, экспортировано как ICU
КонтекстLocJSON комментарии и максимальная длинаПотерянныйПоказывается переводчикам далее со строкой

Тот же проект локализации программного обеспечения также импортирует ключи YAML, Android XML, iOS .strings и LocJSON.

Как Smartcat переводит файлы локали JSON

Чтобы перевести файл JSON в Smartcat, выполните его загрузку, выберите языки перевода, заблокируйте плейсхолдеры, запустите машинный перевод, выполните рецензирование перевода и скачайте те же ключи на каждом языке. Тот же процесс проходит через CLI и REST API, а пошаговое руководство по переводу файла JSON охватывает плоские, вложенные файлы и файлы i18next.

  1. Загрузка вашего JSON файла

    Загрузка en.json или нескольких файлов локализации одновременно. Разработчики могут вместо этого импортировать ключи с помощью CLI или REST API.

    Область для перетаскивания и загрузки в Smartcat с добавлением файла JSON
  2. Выберите ваши языки перевода

    Выберите один язык оригинала и все необходимые вам языки перевода. Вы можете добавить языки перевода позже в любое время.

    Язык оригинала английский и языки перевода испанский и французский выбраны в Smartcat
  3. Заблокируйте свои плейсхолдеры

    Добавьте правило для каждого формата токена, который использует ваш код, например {{название}}, %s или {0}. Совпадающие токены импортируются как заблокированные теги.

    Плейсхолдер название, сохраненный в виде тега в английской и испанской версиях строки
  4. Пусть машинный перевод выполнит ИИ

    Smartcat ИИ составляет черновик для каждой строки с помощью ваших TM и глоссария, поэтому строки, утвержденные в предыдущих релизах, используются повторно.

    Файл JSON на этапе машинного перевода рабочего процесса Smartcat
  5. Рецензирование того, что важно

    Откройте редактор, чтобы проверить строки, применить термины из глоссария или направить язык человеку-рецензенту. Пропустите это, когда черновика от ИИ достаточно.

    Переведенные сегменты с оценками совпадений с ТМ в редакторе Smartcat
  6. Скачать JSON

    Те же ключи, та же вложенность, новый язык. Экспортируйте один файл на каждый язык или выберите проекты целиком и скачайте один ZIP-архив, отсортированный по папкам.

    Действие скачивания файлов в меню проекта Smartcat

Посмотрите эти шесть шагов на одном из ваших собственных JSON файлов

JSON программное обеспечение для локализации для продуктовых команд

JSON программное обеспечение для локализации сохраняет ваши строки в виде ключей, поэтому в каждом релизе повторно используются утвержденные переводы. В Smartcat один проект хранит ваши ключи, TM и глоссарий в рамках своей платформы для локализации программного обеспечения. Другая работа? Перевести файл бесплатно, следуйте пошаговому руководству о том, как перевести файл JSON, или переводите файлы JSON на английский и другие языки.

Принесите один реальный файл локали на демо

JSON локализация: вложенные ключи, формы множественного числа и файлы фреймворка

Smartcat обрабатывает вложенные ключи JSON с разделителем пути, формы множественного числа ICU как формы множественного числа для каждого языка, а файлы локалей i18next или React Native — как стандартные пары «ключ-значение» JSON. Вот три момента, в которых локализация JSON обычно идет не так.

Ключи и структура

Вложенные ключи

Smartcat оставляет вложенные объекты JSON без изменений. Структурированный JSON использует разделитель путей, чтобы сопоставить каждый вложенный ключ с одним ID, например checkout.button.label, и экспортирует ту же вложенность назад.

  • checkout.button.label
    ID ключа, заблокирован
  • "Pay now"
    Значение типа строка, переведено

Экспорт в виде плоской или структурированной структуры

Экспортируйте те же ключи в виде плоского JSON с ID через точку или в виде структурированного JSON со вложенными объектами, в зависимости от того, что считывает ваша библиотека i18n.

Плоский
"nav.home": "Домой"
Структурированный
"nav": { "home": "Домой" }

Формы множественного числа и переменные

ICU множественное число

Импортировать формы множественного числа ICU MessageFormat, разбитые на отдельные формы, или оставить их как есть. Каждый язык получает необходимые ему формы, а экспорт записывает их назад в виде строк, совместимых с ICU.

  • oneother
    Английский оригинал текста: две формы
  • onefewmanyother
    Русский или польский: четыре формы
  • other
    Японский: одна форма

Плейсхолдеры и переменные

Такие токены, как {{userName}}, %s и {0}, импортируются как заблокированные теги, если они соответствуют правилам для плейсхолдеров, настроенным вами один раз. Переводчики могут перемещать тег внутри предложения, но не могут вносить изменения или удалять его.

  • {{userName}}
    Именованная переменная
  • %s%d
    в стиле printf
  • {0}
    Индексированный аргумент

Файлы фреймворка

i18next и React Родной JSON

i18next JSON файл перевода, такой как translation.json, как и любой файл локали React Native, представляет собой стандартный JSON «ключ-значение». Многоязычная настройка JSON с одним языковым файлом JSON для каждой локали импортируется напрямую в виде ключей с сохранением своей вложенной структуры.

Один файл на локаль

en.jsonde.jsonja.jsonpt-BR.json

YAML, Android XML и iOS .strings далее к JSON

Один проект по локализации программного обеспечения может содержать ключи JSON, YAML, Android XML и iOS .strings, поэтому веб- и мобильные строки используют одну общую TM и глоссарий.

Форматы в одном проекте

.json.ymlstrings.xml.strings

LocJSON для контекста

LocJSON — это формат интеграции Smartcat на основе JSON. Каждая единица может содержать комментарий и максимальную длину, которые переводчики видят далее строки.

  • Ключ и оригинал текста
  • Необязательные существующие переводы
  • Комментарий к единице
  • Максимальная длина на единицу

TJSON и другие форматы файлов

Файлы TJSON переводятся как обычные проекты файлов, далее к gettext PO, XLIFF и файлам Java .properties в том же рабочем пространстве.

Файловые проекты

TJSONPO/POTXLIFF.properties

ИИ-коллеги, стоящие за этой работой

Каждый коллега отвечает за один из этапов локализации JSON, от первого чернового варианта до финальной проверки. Специалисты, проводящие рецензирование, утверждают каждый язык перед экспортом.

Подключите Smartcat к инструментам, в которых хранятся ваши строки

Отправляйте и получайте файлы локализации JSON из вашего репозитория, CLI или REST API, и выполняйте перевод контента, связанного с вашим продуктом, с помощью инструментов, которые ваши команды уже используют.

Команды, которые выпускают каждый язык с помощью Smartcat

Huel выполняет локализацию веб-сайтов, CRM, креативных и технических материалов в одном Smartcat рабочем пространстве. Каждое число ниже взято из опубликованного исследования регистра Huel.

5 минут

на статью для веб-сайта по сравнению с прежними 1,5–2 ч

Подготовка одной статьи для сайта сократилась с 1,5–2 часов до примерно пяти минут благодаря интеграции с Contentful.

21

недели ручной работы удалили за год

Huel сэкономил 21 неделю ручной работы по локализации в год, что составляет почти половину ставки штатного сотрудника.

10 h

сохранено в неделю на команду

Автоматизация и интеграции позволяют сохранить каждой из команд Huel по 10 часов в неделю в сферах веб-разработки, CRM и перформанс-маркетинга.

50%

экономия затрат в целом по сравнению с агентствами

«Smartcat для нас — больше, чем инструмент для перевода; он интегрирован в наш стек технологий».

Huel подключил к Smartcat команды CRM, перформанс-маркетинга, креатива, веб-разработки и технических специалистов. Машинный перевод работает с глоссарием примерно из 500 записей, а рецензирование человеком-рецензентом применяется там, где это важнее всего.

Magdalena Tumulka
Magdalena TumulkaРуководитель отдела локализации, Huel

Посмотрите, как ваши файлы JSON выглядят на каждом языке

Что говорят о G2 команды продукта и локализации

О чем спрашивают разработчики перед переносом файлов JSON в Smartcat

Короткие ответы на вопросы, которые возникают у инженерных команд перед выбором переводчика JSON, включая одну вещь, которую ИИ не может сделать за вас.

«Будет ли экспортированный JSON по-прежнему парситься?»

Да. Smartcat переводит только значения типа строка. Ключи и вложенность блокируются при импорте, поэтому скачиваемый файл имеет ту же структуру, что и файл, для которого выполнялась загрузка.

  • Ключи заблокированы как ID
  • Плейсхолдеры как теги
  • Такая же вложенность при экспорте

«Наши переводы уже находятся в репозитории».

Они могут остаться там. Отправляйте и получайте ключи с помощью CLI или REST API из вашего CI/CD-пайплайна или подключайте GitHub, GitLab или Bitbucket. Ваш репозиторий хранит файлы, которые читает ваша сборка.

«Платим ли мы снова за строки, которые уже перевели?»

Нет. В биллинг включаются только новые строки и строки с изменениями. TM заполняет каждую строку, утвержденную вами в более ранней версии, поэтому рецензенты видят только то, в чем произошли изменения.

«Может ли ИИ понять, что означает строка интерфейса из двух слов?»

Не всегда. «Сохранить» может быть кнопкой, скидкой или существительным. Добавьте скриншот или комментарий к коротким строкам и направьте их своим рецензентам или Лингвистам Smartcat перед релизом.

Как Smartcat защищает строки, которые вы переводите

Smartcat соответствует стандарту SOC 2 Type II и сертифицирован по стандарту ISO 27001. Файлы локали и TM остаются в вашем изолированном рабочем пространстве. Подробнее о безопасности на Smartcat.

Управление доступом на основе ролей

Настройте, кто может выполнять обзор, переводить, проверять и утверждать строки, по командам, ролям или регионам на корпоративных подписках.

Технология единого входа (SSO)

Вход через существующего поставщика удостоверений доступен на корпоративных тарифных планах.

Соответствует стандарту SOC 2 Type II

Smartcat соответствует стандарту SOC 2 Type II и изолирует каждое рабочее пространство.

Никогда не используется для обучения общедоступных моделей ИИ

Ваши строки и файлы с оригиналом текста никогда не используются для обучения публичных моделей ИИ.

Журналы аудита

Отслеживайте, кто, что и когда изменил на этапах перевода и проверки на корпоративных тарифах.

Шифрование и удаление по запросу

Контент шифруется при передаче и хранении, а также удаляется или возвращается в течение 30 дней с момента получения письменного запроса.

Ресурсы для локализации JSON

Руководства по i18n, непрерывной локализации и локализации программного обеспечения для команд, которые переводят файлы локалей JSON каждый релиз.

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

Что такое файл JSON?

Файл JSON (JavaScript Object Notation) представляет собой легковесный текстовый формат для структурированных данных, а Smartcat выполняет перевод текста внутри него. Приложения хранят текст интерфейса в файлах локали JSON, таких как en.json, в виде пар «ключ — значение» отдельно от кода. Smartcat выполняет перевод строковых значений и сохраняет ключи и вложенную структуру без изменений.

Какой переводчик JSON самый лучший?

Лучший JSON переводчик вносит изменения только в значения типа строка, и Smartcat построен вокруг этого правила. Сравните инструменты по четырем критериям: точное сохранение ключей и вложенности, блокировка плейсхолдеров в виде тегов, обработка форм множественного числа ICU с учетом языка и TM, которая повторно использует более ранние релизы. Также проверьте наличие CLI или API, чтобы файлы локалей могли проходить через ваш конвейер CI/CD.

Что такое локализация JSON?

Локализация JSON — это процесс адаптации строк в файлах локали JSON для каждого языка и рынка от релиза к релизу. В Smartcat файлы локали становятся ключами в проекте локализации программного обеспечения, поэтому в каждом релизе на перевод отправляются только новые и измененные строки. Для одного разового файла будет достаточно бесплатной версии для браузера.

Как локализовать файлы JSON приложения i18next или React?

Сохраните en.json или translation.json для i18next в качестве оригинала текста и импортируйте его в проект локализации программного обеспечения Smartcat как ключи. Добавьте свои языки перевода; ИИ создает черновик для каждой строки с учетом вашего глоссария и TM, а рецензенты утверждают результат. Экспортируйте de.json, fr.json и остальные файлы с теми же ключами или подтягивайте их с помощью CLI в CI/CD. React Нативные файлы локали работают точно так же.

Будет ли переведенный файл JSON по-прежнему синтаксически разбираться?

Да. Smartcat выполняет перевод только значений строк и никогда не затрагивает структуру. При импорте файла ключи и вложенность блокируются, и только текст в значениях строк становится сегментами, доступными для перевода. Экспортированный файл создается на основе той же разобранной структуры, поэтому он имеет ту же форму, что и ваш файл оригинала текста.

Как Smartcat обрабатывает вложенные ключи JSON?

Smartcat оставляет вложенные объекты без изменений. В проектах по локализации программного обеспечения структурированный JSON использует разделитель пути, чтобы преобразовать каждый вложенный ключ в один ID, такой как checkout.button.label, и вы можете экспортировать результат как плоский или структурированный JSON. ID ключей передаются вместе с каждой строкой, что помогает TM находить для нее совпадение с ТМ.

Есть ли в Smartcat поддержка форм множественного числа для ICU MessageFormat?

Да. В Smartcat есть поддержка форм множественного числа двумя способами: нативно, где каждая форма множественного числа представляет собой отдельный сегмент, или в виде синтаксиса ICU MessageFormat. При импорте вы выбираете, разбираются ли ключи с синтаксисом ICU на отдельные формы множественного числа или сохраняются как есть, а при экспорте формы множественного числа записываются назад как строки, совместимые с ICU MessageFormat.

Могу ли я перевести только те ключи, в которые были внесены изменения со времени последнего релиза?

Да. Smartcat включает в биллинг только новые строки и строки, в которые внесены изменения. Отправьте обновленный файл или ключи через пользовательский интерфейс, CLI или REST API, и TM заполнит каждую строку, которую вы уже утвердили. Затем переводчики и рецензенты работают только с тем, где были изменения, а экспорт по-прежнему содержит каждый ключ на каждом языке.

С какими форматами и фреймворками JSON работает Smartcat?

Smartcat импортирует стандартный JSON «ключ-значение», вложенный JSON и LocJSON в качестве ключей, а также переводит TJSON как формат файла. Файлы перевода i18next и файлы локали React Native являются стандартным JSON, поэтому они импортируются напрямую. Тот же проект также принимает YAML, Android XML и iOS .strings, и экспортирует JSON или YAML как плоские или структурированные файлы.

Существует ли API или CLI для JSON перевода?

Да. Smartcat имеет REST API и интерфейс командной строки (CLI) для импорта и экспорта ключей, и оба они запускаются из скриптов CI/CD. Разработчики могут отправлять строки оригинала текста после сборки и получать переведенные JSON перед релизом. Интеграция GitHub, GitLab и Bitbucket синхронизирует репозитории без использования пользовательских скриптов. См. документацию для разработчиков.

Как Smartcat защищает такие плейсхолдеры, как {{название}}?

Smartcat превращает плейсхолдеры в заблокированные теги. Вы один раз добавляете регулярное выражение для каждого формата токена, используемого вашим кодом, такого как {{название}}, %s или {0}, в Настройках плейсхолдеров. Совпадающие токены импортируются как теги, которые переводчики могут перемещать внутри предложения, но не могут редактировать или удалять.

В безопасности ли контент в моем оригинале текста?

Да. Smartcat соответствует стандарту SOC 2 Type II и сертифицирован по стандарту ISO 27001. Файлы шифруются при передаче и хранении, рабочие пространства изолированы, а доступ основан на ролях. Ваши строки никогда не используются для обучения общедоступных моделей ИИ, а контент удаляется или возвращается в течение 30 дней с момента получения письменного запроса. Подробности приведены на странице безопасности.

В чём уступает ИИ-JSONпереводчик?

Smartcat ИИ не всегда может определить контекст пользовательского интерфейса по названию ключа. «Сохранить» может быть кнопкой, скидкой или существительным, и правильный перевод различается в большинстве языков. Для строк длиной менее трёх слов рассматривайте черновик ИИ как отправную точку: добавьте скриншот или комментарий и отправьте этот язык на рецензирование перед выпуском.

Не нашли ответ на свой вопрос? Поговорить со специалистом по локализации

Поставляйте каждую локаль из одного файла с оригиналом текста

Используйте Smartcat в качестве вашего JSON переводчика: выполните загрузку en.json и скачайте все остальные локали с сохранением ключей, плейсхолдеров и вложенной структуры. Посмотрите, как это работает на одном из ваших собственных файлов локали, или начните 15-дневную бесплатную пробную версию с 15 000 Smartwords и без привязки кредитной карты.