Прескочи към съдържанието

JSON Преводач, Който Запазва Структурата | Безплатен i18n Инструмент

Безплатен 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 в полето „Source JSON“ вляво. Обект, масив или единична стойност — всички те работят.
  2. Изберете целеви език от падащото меню. Достъпни са девет езика: испански, френски, немски, италиански, португалски, китайски, японски, корейски и руски.
  3. Десният панел се обновява автоматично. Не е необходимо да натискате бутон.
  4. Натиснете „Copy“, за да копирате резултата в клипборда.
  5. Натиснете „Clear All“, за да изчистите и двата панела и да започнете отначало.

Решен пример

Входен 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, ще спре да работи. Този инструмент никога не променя ключовете, така че този риск не възниква тук.

Често срещани грешки

„Invalid JSON format. Please check your input.“ Това се появява, когато поставеният текст не е валиден JSON. Типичните причини са липсваща запетая между елементите, излишна запетая след последния елемент, единични вместо двойни кавички или неекраниран специален знак в низ. Предварителното пропускане на входа през валидатор на JSON може да помогне за откриване на точното място.

„Translation failed. Please try again.“ Това е резервното съобщение при грешка, която не е синтактична. Случва се рядко. Най-вероятната причина е вход, който е толкова голям, че форматираният резултат би надхвърлил ограничението на браузъра за дължината на един текстов фрагмент. Разделянето на много голям файл на по-малки части предотвратява проблема.

Оставянето на полето за вход празно показва съобщение-подсказка и не се счита за грешка. Поставянето на единичната стойност null също не е грешка: null е валиден JSON и инструментът връща null.

Защо запазването на структурата е важно

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

Често задавани въпроси

Използва ли този инструмент истинска услуга за превод? Не. Той работи само в браузъра и не изпраща данни никъде. Вместо да създава преведен текст, маркира всеки низ с кода на целевия език.

Защо резултатът ми показва [es] Hello вместо Hola? Този маркер в квадратни скоби е поведението на текущата версия като заместител. Той показва кои низове и на кой език биха били преведени, без да извършва истински превод.

Ще промени ли ключовете на обектите или числата? Не. Ключовете, числата, true/false и null преминават непроменени през всяко ниво на вложеност, включително в масиви. Това важи и за необичайни имена на ключове, например __proto__, които някои програми на JavaScript пропускат по погрешка.

Необходима ли е интернет връзка? Не. Анализирането и маркирането се извършват локално в раздела на браузъра.

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

Какво се случва при дълбоко вложен JSON или при масиви в масиви? Инструментът обработва всяко ниво, независимо колко е дълбоко, и всеки елемент на масива, като всеки път прилага същото правило.

Източници