Перейти до вмісту

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 або масивами всередині масивів? Інструмент обробляє кожен рівень, незалежно від глибини, і кожен елемент масиву, щоразу застосовуючи те саме правило.

Джерела