Перейти к содержимому

Переводчик JSON с сохранением структуры | Бесплатный инструмент интернационализации

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

Переводчик JSON-структур

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

Здесь появится переведенный результат...

Как использовать

  1. Вставьте JSON-объект в поле Исходный JSON.
  2. Выберите целевой язык в выпадающем меню.
  3. Переведенный JSON автоматически появится в правой панели.
  4. Нажмите кнопку Копировать, чтобы скопировать переведенный JSON в буфер обмена.
Калькулятор загрузки...
📚

Документация

Что такое переводчик JSON с сохранением структуры?

Переводчик JSON с сохранением структуры — это инструмент, который проходит по документу JSON и изменяет только текстовые значения внутри него. Ключи объектов, числа, значения true/false и null остаются в точности такими же. Изменяются только строки.

Эта версия инструмента не отправляет текст в службу перевода. Она полностью работает в браузере. Для каждой найденной строки инструмент добавляет перед исходным текстом код целевого языка в квадратных скобках, например [es] Hello. Это позволяет разработчику заранее увидеть, какие именно части файла JSON будут переведены, и убедиться, что структура сохраняется, прежде чем подключать настоящую службу перевода.

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

Инструмент применяет одно правило на каждом уровне дерева JSON:

  • Если значение является строкой, перед ним добавляется код целевого языка в квадратных скобках: text превращается в [code] text. Пустая строка остается как "".
  • Если значение является числом, true, false или null, оно остается без изменений.
  • Если значение является массивом, это правило применяется к каждому элементу в том же порядке.
  • Если значение является объектом, это правило применяется к каждому значению, а каждый ключ остается без изменений.

Весь документ не обязан быть объектом. Текст JSON может содержать любое единственное значение, поэтому отдельно взятые массив, строка, число, true, false или null также принимаются и обрабатываются по тому же правилу.

Сначала инструмент проверяет синтаксис входных данных JSON. Если JSON невозможно разобрать, он останавливается и показывает ошибку, а не пытается угадать.

Как пользоваться инструментом

  1. Вставьте JSON в поле «Исходный JSON» слева. Подойдут объект, массив или отдельное значение.
  2. Выберите целевой язык в раскрывающемся списке. Доступны девять языков: испанский, французский, немецкий, итальянский, португальский, китайский, японский, корейский и русский.
  3. Правая панель обновляется автоматически. Нажимать кнопку не нужно.
  4. Нажмите «Копировать», чтобы скопировать результат в буфер обмена.
  5. Нажмите «Очистить всё», чтобы сбросить обе панели и начать заново.

Пример расчёта

Входной JSON:

1{
2  "app": {
3    "title": "My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": ["sale", "new"]
7  }
8}
9

Если в качестве целевого языка выбран испанский (es), инструмент выдает:

1{
2  "app": {
3    "title": "[es] My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": [
7      "[es] sale",
8      "[es] new"
9    ]
10  }
11}
12

Обратите внимание: "title" и "tags" остаются ключами, 2 и false не изменяются, а тег [es] добавляется только к строковым значениям. Вложенность и порядок элементов массива полностью совпадают с входными данными.

Что изменяется, а что остается прежним

Элемент JSONРезультат
Строковое значениеПолучает префикс [language code]
НомерБез изменений
true / falseБез изменений
nullБез изменений
Ключ объектаВсегда остается без изменений, включая ключ с буквальным именем __proto__
Порядок элементов массиваВсегда остается без изменений
Пустая строка ""Без изменений

Это особенно важно для файлов, в которых структура несет смысл, например для файла интернационализации (i18n), используемого веб-приложением, или ответа API, который клиентский код читает по именам ключей. Если такой ключ, как "welcomeMessage", изменится во время перевода, код, который обращается к welcomeMessage, перестанет работать. Этот инструмент никогда не изменяет ключи, поэтому здесь такой риск отсутствует.

Распространенные ошибки

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

«Перевод не выполнен. Попробуйте еще раз.» Это резервное сообщение для ошибки, не связанной с синтаксисом. Такое происходит редко. Наиболее вероятная причина — слишком большой объем входных данных, из-за которого отформатированный результат превышает ограничение браузера на длину одного текстового фрагмента. Разбиение очень большого файла на части меньшего размера позволяет избежать этой проблемы.

Если оставить поле ввода пустым, отображается сообщение-заполнитель, и это не считается ошибкой. Вставка отдельного значения null также не является ошибкой: null — корректный JSON, и инструмент возвращает null.

Почему важно сохранять структуру

Файлы JSON с переводами приложения, такие как en.json и fr.json, обычно должны содержать одинаковые ключи, чтобы окружающий код мог обращаться к одному и тому же пути на любом языке, например user.profile.displayName. То же относится к ответам API, которые читаются по именам полей, и к конфигурационным файлам, где изменение имени ключа может нарушить развертывание. Сохранение структуры при пометке переводимых строк — полезный первый шаг перед отправкой этих строк в настоящую службу перевода или их проверкой переводчиком.

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

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

Почему в результате отображается [es] Hello, а не Hola? Тег в квадратных скобках — это поведение-заполнитель текущей версии. Он показывает, какие строки и на какой язык были бы переведены, не выполняя настоящий перевод.

Изменит ли инструмент ключи объектов или числа? Нет. Ключи, числа, true/false и null проходят без изменений на каждом уровне вложенности, в том числе внутри массивов. Это относится и к необычным именам ключей, таким как __proto__, которые некоторые программы на JavaScript случайно удаляют.

Нужно ли для его работы подключение к интернету? Нет. Разбор и добавление тегов выполняются локально во вкладке браузера.

Можно ли использовать этот инструмент для файлов переводов i18next и подобных систем? Результат сохраняет ту же структуру ключей, что и входные данные, поэтому подходит для любого фреймворка, который ожидает совпадения ключей в файлах разных языков. Сами строковые значения перед использованием все равно необходимо заменить настоящими переводами.

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

Источники