JSON-översättning

Översätt JSON-lokalfiler utan att röra dina nycklar.

Nycklar förblir nycklar. Nästling förblir intakt. Endast strängvärden översätts — och bara strängvärden. Alla andra egenskapstyper återkommer exakt som skickats.

Nycklar
alltid bevarade
Nästa
objekt hanteras rekursivt
30
utmatningsspråk per förfrågan
50,000
gratis tokens / månad

Standardöversättningsverktyg förstår inte JSON.

Generiska översättnings-API:er ser din JSON som en textmassa. De översätter nyckelnamn tillsammans med värden. De plattar ut nästlade objekt. De sammanfogar strängar som de inte borde. Det som kommer tillbaka är strukturellt trasig JSON som kräver manuell korrigering innan den kan användas. Om du underhåller lokalfiler för en produktionsapplikation vet du att det att mata in dem i ett standardöversättnings-API skapar mer arbete än det sparar.

Problemet går djupare än bara nyckelnamn. Standardöversättnings-API:er förstör också interpolationsvariabler. En sträng som "Hello {name}, you have {count} messages" kommer tillbaka med variabelnamnen översatta — "Hola {nombre}, tienes {cuenta} mensajes" — vilket bryter varje runtime som förväntade sig det ursprungliga variabelnamnet. Timmar av felsökning följer.

För team som underhåller lokalfiler på flera språk för en produktionsapplikation är detta inte en teoretisk oro. Det har redan hänt. Frågan är hur lång den manuella reparationsprocessen tar varje gång.

PolyLingo traverserar din JSON innan översättning.

PolyLingo förstår JSON-strukturen. Den traverserar rekursivt ditt objekt, identifierar strängvärden som innehåller översättbar text och skickar endast dessa värden till översättningsmodellen. Nyckelnamn ändras aldrig. Nummer, booleaner, null-värden och icke-strängtyper passerar oförändrade. Resultatet är giltig JSON med identisk struktur — bara med översatta strängvärden.

Interpolationsvariabler — {name}, {{count}}, %s och liknande mönster — identifieras och bevaras genom hela översättningsprocessen. De ersätts med platshållare före översättning och återställs i sin ursprungliga form i utmatningen. Översättningsmodellen ser dem aldrig som översättbar text.

Arrayer hanteras korrekt: varje strängelement översätts, medan numeriska index och arraystruktur förblir oförändrade. Blandade arrayer som innehåller både strängar och icke-strängar (nummer, objekt) traverseras korrekt med icke-strängtyper som passerar oförändrade.

Inmatning — platt JSON-lokal (engelska)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
Utmatning — franska (nycklar identiska)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
Inmatning — nästlad JSON-lokal (engelska)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
Utmatning — spanska (struktur intakt)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
API-förfrågan — översätt till 5 språk i ett anrop
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

Vad PolyLingo garanterar för varje JSON-översättning

  • Nyckelnamn ändras aldrig
  • Nästa objekt och arrayer hanteras rekursivt
  • Nummer, booleaner, null-värden passerar oförändrade
  • Alla 43 språk i en enda förfrågan
  • Automatiskt identifierad som JSON — ingen formatflagga krävs
  • Fungerar med platta och djupt nästlade lokalfiler
  • Interpolationsvariabler ({name}, {{count}}, %s) bevaras exakt
  • Utmatningen är giltig JSON — kan tolkas utan modifiering

Tre steg till översatta lokalfiler

1

Klistra in din JSON eller anropa API:et

Använd den kodfria översättaren för engångsöversättningar: klistra in din JSON, välj dina språk, ladda ner de översatta filerna. För automatisering, anropa POST /v1/translate med ditt JSON-innehåll och målspråkskoder.

2

Ta emot alla språk i ett svar

API:et returnerar ett JSON-objekt med en post per målspråk, var och en innehållande den fullständigt översatta lokalfiler med identisk struktur. Inga anrop per språk. Ingen loopning. En förfrågan för alla utdata.

3

Lägg utdata i din meddelandekatalog

Skriv varje översatt fil till messages/es.json, messages/fr.json, messages/de.json — eller där din i18n-bibliotek förväntar sig dem. Strukturen är identisk med din källfil, så ingen ytterligare bearbetning behövs.

Där JSON-översättning är viktigast

🌐

App i18n med next-intl eller i18next

Översätt dina messages/*.json eller locales/*.json-filer direkt. Nycklar förblir intakta, nästling bevaras och interpolationsvariabler förblir oförändrade. Lägg filerna i din meddelandekatalog och distribuera.

🗄️

CMS-innehållsexport

Headless CMS-plattformar exporterar ofta strukturerat innehåll som JSON. PolyLingo översätter strängvärden medan fältnamn, nästlade innehållstyper och icke-strängvärden som datum, booleaner och ID:n bevaras.

⚙️

API-svar och konfigurationsfiler

Vilken JSON-struktur som helst med översättbara strängvärden — produktbeskrivningar, notifikationsmallar, app-text som serveras via API — kan översättas utan att ändra den struktur som din applikation är beroende av.

Vanliga frågor om JSON-översättning

Bevaras interpolationsvariabler som {name} eller {{count}}?

Ja. PolyLingo identifierar vanliga interpolationsmönster inklusive {variable}, {{variable}}, %(variable)s och %s före översättning. Dessa ersätts med stabila platshållare, den omgivande texten översätts och de ursprungliga variabelnamnen återställs i utmatningen. Översättningsmodellen ser aldrig variabelnamnen som översättbart innehåll.

Vad händer med icke-strängvärden — nummer, booleaner, null?

Icke-strängvärden passerar helt oförändrade. PolyLingo översätter endast strängvärden som innehåller naturligt språk. Nummer, booleaner, null-värden och arrayer med icke-strängar bevaras exakt som de förekommer i källan.

Kan PolyLingo hantera djupt nästlade JSON-strukturer?

Ja. PolyLingo traverserar rekursivt objekt på vilken nästlingsnivå som helst. Översättningen gäller alla strängvärden i hela strukturen, oavsett hur djupt de är nästlade.

Vad händer om vissa nycklar innehåller icke-översättbart innehåll som slugs eller koder?

PolyLingo översätter alla strängvärden som standard. Om du har strängfält som inte ska översättas — slugs, språkkoder, tekniska identifierare — rekommenderas att antingen exkludera dem från JSON:en du skickar eller använda den explicita formatparametern och specificera fält att hoppa över (kommer snart). För de flesta lokalfiler är alla strängvärden avsedda att översättas.

Fungerar det med JSON5 eller JSONC (JSON med kommentarer)?

För närvarande bearbetar PolyLingo standard-JSON. JSON5 och JSONC (med kommentarer) bör förbehandlas för att ta bort kommentarer och konverteras till standard-JSON innan de skickas. Detta är ett vanligt steg i byggpipelines och tillför minimal overhead.

Hur många språk kan jag rikta in mig på i en förfrågan?

Upp till alla 30 stödda språk i en enda förfrågan. Svaret innehåller ett översatt JSON-objekt per språkkod. Hastighetsbegränsningar varierar per plan — gratisnivån tillåter 10 förfrågningar per minut, medan Growth- och Scale-planerna tillåter 200–600 förfrågningar per minut.

Översätt dina lokalfiler på sekunder.

Klistra in din JSON, välj dina språk, få tillbaka giltiga lokalfiler för varje målspråk.

Börja översätta gratis

Klistra in din lokala JSON och se utdata — gratis, inget konto krävs.

Översätt JSON-lokalfiler utan att röra dina nycklar — PolyLingo | PolyLingo