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ästlade
objekt hanteras rekursivt
36
utmatningsspråk per förfrågan
100K
gratis tokens / månad

Standardverktyg för översättning 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. Det 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, booleska värden, null och icke-strängstyper 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ängstyper 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ästlade objekt och arrayer hanteras rekursivt
  • Nummer, booleska värden, null passerar oförändrade
  • Alla 36 språk i en enda förfrågan
  • Automatiskt identifierat 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 messages-katalog

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 passerar oförändrade. Lägg filerna i din messages-katalog och distribuera.

🗄️

CMS-innehållsexport

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

⚙️

API-svar och konfigurationsfiler

Vilken JSON-struktur som helst med översättbara strängvärden — produktbeskrivningar, notifikationsmallar, in-app-texter som serveras via API — kan översättas utan att ändra strukturen 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, booleska värden, null?

Icke-strängvärden passerar helt oförändrade. PolyLingo översätter endast strängvärden som innehåller naturligt språk. Nummer, booleska värden, null och arrayer av 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 det 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 lägger till minimal overhead.

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

Upp till alla 36 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 resultatet — gratis, inget konto krävs.

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