Přeskočit na obsah

Překladač JSON, který zachovává strukturu | Bezplatný nástroj pro i18n

Bezplatný překladač JSON, který zachovává původní strukturu. Překládejte soubory i18n, odpovědi API a vnořené JSON při zachování klíčů, datových typů a formátování. Ideální pro i18next a vícejazyčné aplikace.

Překladač JSON struktury

Tento nástroj překládá obsah JSON objektů při zachování jejich struktury. Vložte svůj JSON do levého panelu, vyberte cílový jazyk a uvidíte přeložený výstup na pravé straně.

Přeložený výstup se zde zobrazí...

Jak používat

  1. Vložte svůj JSON objekt do pole Zdrojový JSON.
  2. Vyberte cílový jazyk z rozbalovací nabídky.
  3. Přeložený JSON se automaticky zobrazí v pravém panelu.
  4. Klikněte na tlačítko Kopírovat pro zkopírování přeloženého JSONu do schránky.
Kalkulačka načítání...
📚

Dokumentace

Co je překladač zachovávající strukturu JSON?

Někdy jste se pokoušeli zkopírovat JSON do Google Translate a skončili jste s rozbitými klíči, chybějícími závorkami nebo poškozenou syntaxí? Přesně tento problém tento nástroj řeší.

Překladač zachovávající strukturu JSON převádí řetězcové hodnoty uvnitř vašich JSON objektů do jiného jazyka a přitom ponechává vše ostatní nedotčené — klíče zůstávají stejné, čísla zůstávají čísly, booleovské hodnoty zůstávají booleovské a vaše vnořená struktura se nezhroutí.

Zde je to, co tento nástroj odlišuje od běžných překladačů: když překládáte typický i18n soubor s 50+ vnořenými klíči, potřebujete, aby struktura zůstala identická, aby váš kód mohl stále odkazovat na user.profile.displayName ve španělštině, francouzštině nebo japonštině. Pokud tuto strukturu rozbijete, budete ladit hodiny.

Tento nástroj automaticky zpracovává rekurzivní procházení, identifikuje, které řetězce potřebují překlad a které prvky (jako API klíče, konfigurační hodnoty nebo numerické identifikátory) by měly zůstat přesně takové, jaké jsou.

Jak funguje zachování struktury JSON

Proč záleží na zachování struktury

Při práci s překladem JSON se typicky setkáváte s jedním z těchto scénářů:

  • Soubory i18n, kde vaše aplikace očekává, že en.json a fr.json budou mít identické klíče
  • Odpovědi API, které potřebují konzistentní strukturu napříč jazyky pro zpracování klientem
  • Konfigurační soubory, kde změna názvu klíče rozbije celou vaši aplikaci
  • Exporty databáze, kde vztahy závisí na specifických názvech polí

Výzva: JSON není jen text. Je to strukturovaná data se schématem, na které váš kód spoléhá. Změna "userName" na "nombreUsuario" při překladu způsobí, že vaše aplikace vyhodí chybu undefined.

Jak funguje proces překladu

Zde je to, co se děje pod povrchem při překladu JSON:

1. Parsování a validace Nástroj nejprve ověří syntaxi JSON. Pokud chybí čárka nebo máte navíc závorku, dostanete jasnou chybovou zprávu ještě před zahájením překladu - což vám ušetří poškozený výstup.

2. Rekurzivní procházení Počínaje kořenem algoritmus prochází každý uzel ve stromu JSON. Pro každý prvek zkontroluje datový typ:

  • Řetězec? Zařadí do fronty pro překlad
  • Číslo, boolean, null? Zcela přeskočí
  • Objekt nebo pole? Rekurzivně do něj vstoupí

3. Typově bezpečný překlad Pouze řetězcové hodnoty jsou odeslány do překladatelského rozhraní API. Vaše "quantity": 42 zůstane jako 42, ne "čtyřicet dva". Vaše "isActive": true zůstane true, ne "pravda".

4. Zachování klíčů Všechny klíče objektů zůstanou v původním jazyce. To je kritické, protože translations.header.welcomeMessage musí být stejná cesta v každém jazykovém souboru.

5. Znovusestavení struktury Přeložené řetězce jsou vloženy zpět na přesně stejná místa, přičemž zachovávají všechny úrovně vnoření, indexy polí a hierarchie objektů.

Běžná past: Někteří vývojáři se pokoušejí JSON.stringify() objektu, přeložit celý řetězec a poté jej zpět parsovat. To rozbije, protože překladatel mění klíče, závorky a syntaxi. Rekurzivní přístup tomu zcela zabrání.

Použití překladače pro zachování struktury JSON

Průvodce krok za krokem

1. Vložte svůj JSON Zkopírujte svůj JSON objekt a vložte ho do levého panelu. Nástroj zvládá jakýkoli platný JSON – ať už jde o jednoduchý objekt s 5 klíči nebo hluboce vnořenou strukturu s poli a několika úrovněmi.

2. Vyberte cílový jazyk Vyberte z rozbalovací nabídky jazyků: španělština, francouzština, němčina, italština, portugalština, čínština, japonština, korejština, ruština a další. Pokud překládáte pro projekt i18next, použijte kód jazyka, který vaše rozhraní očekává.

3. Získejte okamžitý překlad Přeložený výstup se automaticky zobrazí v pravém panelu. Není potřeba žádné tlačítko „Přeložit" – zpracování začne hned po zadání platného JSONu a výběru jazyka.

4. Zkopírujte a použijte Klikněte na tlačítko „Kopírovat" a vložte přeložený JSON. Je připraven k přímému použití v projektu – bez nutnosti dalších úprav.

5. Vyčistěte pro další překlad Stiskněte „Vyčistit vše", když jste připraveni přeložit další soubor. Nástroj okamžitě obnoví oba panely.

Běžné problémy a řešení

Chyba „Neplatný formát JSON" Zobrazí se, když je problém se syntaxí. Časté příčiny:

  • Chybějící čárka mezi páry klíč-hodnota
  • Koncová čárka za posledním prvkem (platné v JavaScriptu, ne v JSONu)
  • Jednoduché uvozovky místo dvojitých
  • Neescapované speciální znaky v řetězcích

Rychlé řešení: Před vložením ověřte JSON pomocí validátoru jako JSONLint.

Překlad selže tiše Pokud zůstane výstupní panel prázdný:

  • Zkontrolujte připojení k internetu – překlad vyžaduje přístup k API
  • Ověřte, zda jste vybrali cílový jazyk
  • Zkuste menší úryvek JSONu pro izolaci problému

Neočekávané výsledky překladu Strojový překlad funguje dobře pro standardní fráze, ale má potíže s:

  • Technickými termíny nebo doméně specifickými výrazy
  • Obchodními značkami (které by měly zůstat nepřeložené)
  • Syntaxí zástupných symbolů jako {{username}} nebo %s

Pro produkční aplikace použijte tento nástroj jako první krok a následně nechte zkontrolovat obsah rodilým mluvčím.

Profesionální tipy pro lepší výsledky

Uchovávejte technické řetězce odděleně Pokud váš JSON míchá text určený uživateli s technickými identifikátory, zvažte jejich rozdělení. Například:

1{
2  "display": {"welcome": "Vítejte zpět"},
3  "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5

Překládejte objekt display samostatně, abyste zabránili zpracování hodnot config.

Používejte kontext ve svých řetězcích „Odeslat" se může lišit podle kontextu. „Odeslat formulář" nebo „Odeslat platbu" poskytuje překladačům (lidským i strojovým) lepší kontext pro přesný překlad.

Testujte se skutečnými daty Před překladem celého souboru i18n s 500+ klíči otestujte malou ukázku, která obsahuje všechny typy dat – řetězce, čísla, vnořené objekty, pole.

Příklady kódu

Překlad JSON pomocí JavaScriptu

1// Příklad implementace podobné funkcionality v JavaScriptu
2function translateJsonStructure(jsonObj, targetLanguage) {
3  // Pomocná funkce pro překlad řetězce
4  function translateString(str, lang) {
5    // Ve skutečné implementaci by volala překladové API
6    return `[${lang}] ${str}`;
7  }
8  
9  // Rekurzivní funkce pro procházení a překlad JSON
10  function processNode(node) {
11    if (node === null) return null;
12    
13    if (typeof node === 'string') {
14      return translateString(node, targetLanguage);
15    }
16    
17    if (Array.isArray(node)) {
18      return node.map(item => processNode(item));
19    }
20    
21    if (typeof node === 'object') {
22      const result = {};
23      for (const key in node) {
24        result[key] = processNode(node[key]);
25      }
26      return result;
27    }
28    
29    // Vrátí čísla, boolean hodnoty atd. beze změny
30    return node;
31  }
32  
33  return processNode(jsonObj);
34}
35
36// Příklad použití
37const sourceJson = {
38  "product": {
39    "name": "Bezdrátová sluchátka",
40    "description": "Vysoce kvalitní bezdrátová sluchátka s potlačením hluku",
41    "features": ["Bluetooth 5.0", "Výdrž baterie 40 hodin", "Skládací design"],
42    "price": 99.99,
43    "inStock": true
44  }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49

Překlad JSON pomocí Pythonu

1import json
2
3def translate_json_structure(json_obj, target_language):
4    """
5    Překládá řetězcové hodnoty v JSON objektu při zachování struktury.
6    
7    Args:
8        json_obj: Parsovaný JSON objekt
9        target_language: Kód cílového jazyka (např. 'es', 'fr')
10        
11    Returns:
12        Přeložený JSON objekt se zachovanou strukturou
13    """
14    def translate_string(text, lang):
15        # Ve skutečné implementaci by volala překladové API
16        return f"[{lang}] {text}"
17    
18    def process_node(node):
19        if node is None:
20            return None
21        
22        if isinstance(node, str):
23            return translate_string(node, target_language)
24        
25        if isinstance(node, list):
26            return [process_node(item) for item in node]
27        
28        if isinstance(node, dict):
29            result = {}
30            for key, value in node.items():
31                result[key] = process_node(value)
32            return result
33        
34        # Vrátí čísla, boolean hodnoty atd. beze změny
35        return node
36    
37    return process_node(json_obj)
38
39# Příklad použití
40source_json = {
41    "user": {
42        "name": "Jana Novotná",
43        "bio": "Softwarová vývojářka a přispěvatelka open source",
44        "skills": ["JavaScript", "Python", "React"],
45        "active": True,
46        "followers": 245
47    }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52

Překlad JSON pomocí PHP

1<?php
2/**
3 * Překládá JSON strukturu při zachování původní struktury
4 * 
5 * @param mixed $jsonObj Parsovaný JSON objekt
6 * @param string $targetLanguage Kód cílového jazyka
7 * @return mixed Přeložený JSON objekt
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10    // Pomocná funkce pro překlad řetězce
11    function translateString($text, $lang) {
12        // Ve skutečné implementaci by volala překladové API
13        return "[$lang] $text";
14    }
15    
16    // Rekurzivní funkce pro zpracování každého uzlu
17    function processNode($node, $lang) {
18        if ($node === null) {
19            return null;
20        }
21        
22        if (is_string($node)) {
23            return translateString($node, $lang);
24        }
25        
26        if (is_array($node)) {
27            // Kontrola, zda se jedná o asociativní pole (objekt) nebo indexované pole
28            if (array_keys($node) !== range(0, count($node) - 1)) {
29                // Asociativní pole (objekt)
30                $result = [];
31                foreach ($node as $key => $value) {
32                    $result[$key] = processNode($value, $lang);
33                }
34                return $result;
35            } else {
36                // Indexované pole
37                return array_map(function($item) use ($lang) {
38                    return processNode($item, $lang);
39                }, $node);
40            }
41        }
42        
43        // Vrátí čísla, boolean hodnoty atd. beze změny
44        return $node;
45    }
46    
47    return processNode($jsonObj, $targetLanguage);
48}
49
50// Příklad použití
51$sourceJson = [
52    "company" => [
53        "name" => "Globální technologická řešení",
54        "description" => "Inovativní společnost pro vývoj softwaru",
55        "founded" => 2010,
56        "services" => ["Webový vývoj", "Mobilní aplikace", "Cloudová řešení"],
57        "active" => true
58    ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64

Reálné případy použití

Soubory i18n pro webové aplikace

Většina moderních frameworků jako Next.js, React nebo Vue ukládá překlady ve formátu JSON. Když potřebujete přidat do své aplikace nový jazyk, stojíte před volbou: ručně kopírovat a překládat každý klíč (náchylné k chybám), nebo použít tento nástroj k vygenerování první verze během několika minut.

Reálný scénář: Vaše aplikace má en.json s více než 200 překladovými klíči v různých kategoriích — navigace, formuláře, chybové zprávy, tooltips. Potřebujete francouzskou a německou verzi do příštího sprintu.

Vstup (en.json):

1{
2  "common": {
3    "welcome": "Vítejte v naší aplikaci",
4    "login": "Přihlásit se",
5    "signup": "Zaregistrovat se",
6    "errorMessages": {
7      "required": "Toto pole je povinné",
8      "invalidEmail": "Zadejte prosím platnou e-mailovou adresu"
9    }
10  }
11}
12

Přeložte do francouzštiny, získáte fr.json se shodnou strukturou. Váš kód nadále odkazuje na t('common.errorMessages.required') beze změn.

Co podle mých zkušeností funguje dobře: Vygenerujte překlady pomocí tohoto nástroje a poté nechte dvojjazyčného člena týmu zkontrolovat technické termíny a štítky tlačítek. Tím zachytíte případy, kde "Odeslat" může vyžadovat různé překlady pro "Odeslat formulář" vs. "Odeslat platbu."

Lokalizace odpovědí API

Vytváříte API pro více zemí? Potřebujete konzistentní struktury odpovědí ve všech jazycích. Notifikační API může vrátit:

1{
2  "status": "úspěch",
3  "notification": {
4    "title": "Objednávka odeslána",
5    "message": "Vaše objednávka #12345 byla odeslána",
6    "priority": 1,
7    "timestamp": 1678901234
8  }
9}
10

Vaše mobilní aplikace parsuje notification.title a notification.message. Pokud francouzský překlad změní strukturu klíčů, aplikace přestane fungovat pro francouzské uživatele.

Tento nástroj zajišťuje, že notification.title zůstane notification.title ve všech jazycích, s přeloženými pouze řetězcovými hodnotami. Váš klientský kód funguje identicky ve všech lokalizacích.

Jedna omezení, která je třeba poznamenat: Automatický překlad nerozumí vaší doméně. "Odesláno" v kontextu elektronického obchodu se může překládat jinak než v kontextu logistiky nebo námořnictví. Pro rozhraní API určená zákazníkům zkontrolujte výstup před nasazením.

Překlad obsahu Headless CMS

Platformy Headless CMS jako Contentful nebo Strapi často exportují obsah jako JSON. Když máte 50 blogových příspěvků se strukturovanými metadaty (autor, štítky, URL obrázků, data publikace), chcete přeložit tělo a nadpis bez úprav metadat.

Typický export obsahuje řetězcové obsahy i konfiguraci:

  • Obsah: text článku, nadpis, úryvek
  • Struktura: ID autorů, cesty obrázků, slugy kategorií, časová razítka

Ruční překlad riskuje změnu slugu z technology na tecnología, což přeruší vaše směrování. Překlad zachovávající strukturu zpracovává pouze pole s obsahem.

Konfigurační soubory pro nasazení ve více regionech

Nasazujete v různých regionech? Vaše konfigurační soubory mohou vyžadovat lokalizované řetězce při zachování identických koncových bodů, přihlašovacích údajů a příznaků funkcí:

1{
2  "region": "eu-west",
3  "welcomeMessage": "Vítejte v naší službě",
4  "endpoint": "https://api.eu.example.com",
5  "retryAttempts": 3,
6  "features": {"darkMode": true}
7}
8

Přeložte welcomeMessage do němčiny a ponechte endpoint, retryAttempts a features beze změn.

Porovnání překladových přístupů

MetodaVhodné proRychlostPřesnostBezpečnost strukturyNáklady
Tento nástrojRychlé generování i18n souborů, prototypy, interní nástrojeOkamžitěDobrá pro standardní obsah100% zachovánoZdarma
Google Překladač (kopírování/vložení)Jednotlivé fráze, netechnický textOkamžitěProměnliváRuší JSONZdarma
Profesionální překladObsah pro zákazníky, právní dokumenty, marketingDnyVýbornáRuční práce nutná0,08-0,15 $/slovo
Systémy správy překladů (Lokalise, Phrase)Podnikové aplikace, spolupracující pracovní postupyHodiny-DnyVýborná s kontrolouVestavěná podpora JSON$$$+

Kdy použít tento nástroj: Projekty v počáteční fázi, generování návrhů k revizi, interní aplikace, kde dokonalý překlad není kritický.

Kdy investovat do profesionálního překladu: Obsah pro zákazníky, právní/compliance texty, firemní sdělení nebo když kulturní nuance jsou důležitější než rychlost.

Technické úvahy a hraniční případy

Co se překládá (a co ne)

Nástroj používá kontrolu typů k určení, co překládat:

Překládá se:

  • Řetězcové hodnoty: "Welcome""Vítejte"
  • Řetězce v polích: ["Hello", "World"]["Ahoj", "Světe"]
  • Řetězce v jakékoli úrovni vnoření

Nepřekládá se:

  • Čísla: 42, 3.14, -10 zůstávají beze změny
  • Booleovské hodnoty: true a false zůstávají jako jsou
  • Null: null zůstává null
  • Klíče objektů: "userName" jako klíč zůstává "userName"
  • Prázdné řetězce: "" zůstává ""

Zpracování speciálních znaků

Unicode a Emoji Nástroj správně zpracovává UTF-8, takže emoji a znaky mimo latinku fungují bez problémů:

1{"greeting": "👋 Hello"}
2

Přeloží se do češtiny jako:

1{"greeting": "👋 Ahoj"}
2

Escape sekvence JSON escape sekvence (\n, \t, \") jsou zachovány:

1{"message": "Line 1\nLine 2"}
2

\n zůstává nedotčen při překladu.

Zástupné symboly Zde je potenciální problém: Pokud vaše řetězce obsahují zástupné symboly jako {username} nebo %s, mohou být přeloženy nebo přeuspořádány. V jazycích s textem zprava doleva, jako je arabština nebo hebrejština, se pozice zástupných symbolů může posunout. Pečlivě je zkontrolujte.

Výkon velkých JSON souborů

Webový nástroj zvládá typické i18n soubory (do 500 KB) bez problémů. Pro větší datové sady:

  • 500 KB - 2 MB: Funguje, ale může být pomalé v prohlížeči
  • Nad 2 MB: Zvažte rozdělení na logické části (např. samostatné soubory podle funkcí nebo sekcí)

Paměť prohlížeče je limitujícím faktorem, nikoli samotný algoritmus.

Často kladené dotazy

Jak se toto liší od vložení JSON do Google Translate?

Google Translate zpracovává JSON jako prostý text, což znamená, že se snaží přeložit úplně všechno - včetně klíčů, syntaktických znaků a číselných hodnot. Dostanete výstup jako:

1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2

Všimněte si, jak se "username" změnilo na "nom d'utilisateur" a číslo 25 se stalo řetězcem "vingt-cinq"? Váš kód ihned selže.

Tento nástroj rozumí struktuře JSON a překládá pouze řetězcové hodnoty, přičemž ponechává klíče a ostatní datové typy nedotčené.

Zvládne zpracovat hluboce vnořené JSON se seznamy?

Ano. Rekurzivní algoritmus zpracovává každou úroveň vnořování:

1{
2  "users": [
3    {"name": "John", "roles": ["admin", "editor"]},
4    {"name": "Jane", "roles": ["viewer"]}
5  ]
6}
7

Překládá všechny řetězcové hodnoty ("John", "Jane", "admin", "editor", "viewer"), přičemž zachovává přesnou strukturu.

Co když mé JSON obsahuje jak anglický, tak již přeložený obsah?

Nástroj přeloží každý řetězec, který najde, i když jsou některé již v cílovém jazyce. Pokud přidáváte nové klíče do existujícího překladového souboru, přeložte pouze novou sekci samostatně a poté výsledky sloučte.

Mohu tento nástroj použít pro soubory i18next nebo react-intl?

Rozhodně. Výstupní struktura odpovídá tomu, co tyto frameworky očekávají. Soubor i18next JSON jako:

1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2

Se stane:

1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2

Vaše volání t('translation.welcome') zůstanou nezměněna.

Jak přesný je automatický překlad pro technický obsah?

Záleží na kontextu:

  • Obecný text uživatelského rozhraní: "Uložit", "Zrušit", "Odeslat" → Obvykle přesné
  • Technická terminologie: "webhook", "OAuth2", "idempotentní" → Mohou být špatně přeloženy nebo ponechány beze změny
  • Specializované termíny: "zdravotní záznam" (lékařství) vs "pacient" (trpělivost) → Kontext je často opomenut

Pro produkční aplikace použijte toto jako první krok a poté nechte někoho zkontrolovat technické a specializované termíny.

Co jazyky s odlišnými znakovou sadou (čínština, arabština, ruština)?

Nástroj správně zpracovává Unicode, takže všechny znakové sady fungují. Na co si dát pozor: arabština a hebrejština jsou zprava doleva (RTL), což může ovlivnit, jak se zástupné symboly zobrazují v přeložených řetězcích. Struktura JSON zůstává správná, ale zkontrolujte přeložený text z hlediska čitelnosti.

Zachová mé formátování (odsazení, zalomení řádků)?

Výstup je platný JSON, ale formátování (mezery, odsazení) se může lišit od vstupu. Pokud potřebujete specifické formátování, spusťte výstup přes JSON formátovač s vašimi preferovanými nastaveními.

Mohu překládat konfigurační hodnoty jako jsou URL nebo API klíče?

Nástroj překládá všechny řetězce, včetně URL a konfiguračních hodnot. Abyste tomu zabránili:

  1. Rozdělte své JSON na uživatelsky orientovaný obsah a konfiguraci
  2. Přeložte pouze sekci obsahu
  3. Ponechte konfiguraci nepřeloženou

Ještě lépe, strukturujte své soubory tak, abyste od začátku oddělili překladatelný obsah od technických hodnot.

Je to zdarma? Existují omezení přenosové rychlosti?

Webový nástroj je zdarma pro běžné použití. Velmi vysokoobjemový překlad (stovky souborů za minutu) může narazit na omezení přenosové rychlosti základní překladové služby. Pro většinu vývojových pracovních postupů se s omezeními nesetkáte.

Reference a další literatura

Pro hlubší pochopení struktury JSON, standardů internacionalizace a osvědčených postupů:

Začněte překládat vaše JSON soubory

Potřebujete rychle generovat překladové soubory pro vaši vícejazyčnou aplikaci? Vložte své JSON, vyberte cílový jazyk a okamžitě získejte překlady zachovávající strukturu. Funguje s i18next, react-intl, vue-i18n a jakýmkoli frameworkem vyžadujícím konzistentní JSON strukturu napříč jazyky.

Začněte překládat nyní: