Oversett JSON lokaliseringsfiler uten å endre nøklene dine.
Nøkler forblir nøkler. Innrykk forblir intakt. Bare tekstverdiene oversettes — og bare tekstverdiene. Alle andre egenskapstyper returneres nøyaktig som sendt.
Standard oversettelsesverktøy forstår ikke JSON.
Generiske oversettelses-APIer ser JSON-en din som en tekstvegg. De oversetter nøkkelnavn sammen med verdier. De flater ut nestede objekter. De slår sammen strenger de ikke burde. Resultatet er strukturert ødelagt JSON som krever manuell korreksjon før den kan brukes. Hvis du vedlikeholder lokaliseringsfiler for en produksjonsapplikasjon, vet du at det å sende dem til en standard oversettelses-API skaper mer arbeid enn det sparer.
Problemet går dypere enn bare nøkkelnavn. Standard oversettelses-APIer ødelegger også interpolasjonsvariabler. En streng som "Hello {name}, you have {count} messages" kommer tilbake med variabelnavnene oversatt — "Hola {nombre}, tienes {cuenta} mensajes" — noe som bryter alle runtime-miljøer som forventet det opprinnelige variabelnavnet. Timer med feilsøking følger.
For team som vedlikeholder lokaliseringsfiler på flere språk for en produksjonsapplikasjon, er dette ikke en teoretisk bekymring. Det har allerede skjedd. Spørsmålet er hvor lang tid den manuelle reparasjonsprosessen tar hver gang.
PolyLingo traverserer JSON-en din før oversettelse.
PolyLingo forstår JSON-strukturen. Den traverserer objektet rekursivt, identifiserer tekstverdier som kan oversettes, og sender kun disse verdiene til oversettelsesmodellen. Nøkkelnavn endres aldri. Tall, boolske verdier, null og ikke-tekst-typer sendes gjennom uendret. Resultatet er gyldig JSON med identisk struktur — bare med oversatte tekstverdier.
Interpolasjonsvariabler — {name}, {{count}}, %s og lignende mønstre — identifiseres og bevares gjennom hele oversettelsesprosessen. De erstattes med plassholdere før oversettelse, og gjenopprettes i sin opprinnelige form i utdataene. Oversettelsesmodellen ser aldri på dem som oversettbar tekst.
Matriser håndteres korrekt: hvert streng-element oversettes, mens numeriske indekser og matrisestruktur forblir uendret. Blandet matriser som inneholder både strenger og ikke-strenger (tall, objekter) traverseres korrekt med ikke-streng-typer sendt gjennom uendret.
{
"nav_home": "Home",
"nav_pricing": "Pricing",
"hero_title": "Grow your audience globally",
"hero_cta": "Get started for free",
"footer_rights": "All rights reserved."
}{
"nav_home": "Accueil",
"nav_pricing": "Tarifs",
"hero_title": "Développez votre audience mondiale",
"hero_cta": "Commencer gratuitement",
"footer_rights": "Tous droits réservés."
}{
"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"
}
}{
"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"
}
}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\"}",
# ...
# }
# }Hva PolyLingo garanterer for hver JSON-oversettelse
- ✓Nøkkelnavn endres aldri
- ✓Nestede objekter og matriser håndteres rekursivt
- ✓Tall, boolske verdier og null sendes gjennom uendret
- ✓Alle 36 språk i én enkelt forespørsel
- ✓Automatisk oppdaget som JSON — ingen formatflagg nødvendig
- ✓Fungerer med flate og dypt nestede lokaliseringsfiler
- ✓Interpolasjonsvariabler ({name}, {{count}}, %s) bevart nøyaktig
- ✓Utdata er gyldig JSON — kan parses uten modifikasjon
Tre steg til oversatte lokaliseringsfiler
Lim inn JSON-en din eller kall API-et
Bruk den kodefrie oversetteren for engangsoversettelser: lim inn JSON-en din, velg språk, last ned de oversatte filene. For automatisering, kall POST /v1/translate med JSON-innholdet og målspråkkoder.
Motta alle språk i ett svar
API-et returnerer et JSON-objekt med én oppføring per målspråk, hver inneholdende den fullstendig oversatte lokaliseringsfilen med identisk struktur. Ingen per-språk kall. Ingen løkker. Én forespørsel for alle utdata.
Legg utdataene i meldingsmappen din
Skriv hver oversatte fil til messages/es.json, messages/fr.json, messages/de.json — eller hvor enn i18n-biblioteket ditt forventer dem. Strukturen er identisk med kildefilen, så ingen videre behandling er nødvendig.
Hvor JSON-oversettelse er viktigst
App i18n med next-intl eller i18next
Oversett dine messages/*.json eller locales/*.json filer direkte. Nøkler forblir intakte, innrykk bevares, og interpolasjonsvariabler forblir uendret. Legg filene i meldingsmappen og distribuer.
CMS-innholdseksport
Headless CMS-plattformer eksporterer ofte strukturert innhold som JSON. PolyLingo oversetter tekstverdiene samtidig som feltnavn, nestede innholdstyper og ikke-tekstverdier som datoer, boolske verdier og ID-er bevares.
API-responser og konfigurasjonsfiler
Enhver JSON-struktur med oversettbare tekstverdier — produktbeskrivelser, varslingsmaler, app-tekst levert via API — kan oversettes uten å endre strukturen applikasjonen din er avhengig av.
Ofte stilte spørsmål om JSON-oversettelse
Bevares interpolasjonsvariabler som {name} eller {{count}}?
Ja. PolyLingo identifiserer vanlige interpolasjonsmønstre inkludert {variable}, {{variable}}, %(variable)s og %s før oversettelse. Disse erstattes med stabile plassholdere, den omkringliggende teksten oversettes, og de opprinnelige variabelnavnene gjenopprettes i utdataene. Oversettelsesmodellen ser aldri variabelnavnene som oversettbart innhold.
Hva skjer med ikke-tekstverdier — tall, boolske, null?
Ikke-tekstverdier sendes gjennom helt uendret. PolyLingo oversetter kun tekstverdier som inneholder naturlig språk. Tall, boolske verdier, null og matriser av ikke-tekstverdier bevares nøyaktig som i kilden.
Kan PolyLingo håndtere dypt nestede JSON-strukturer?
Ja. PolyLingo traverserer objekter rekursivt uansett dybde. Oversettelsen gjelder for alle tekstverdier gjennom hele strukturen, uavhengig av hvor dypt de er nestet.
Hva om noen nøkler inneholder ikke-oversettbart innhold som slugs eller koder?
PolyLingo oversetter som standard alle tekstverdier. Hvis du har tekstfelt som ikke skal oversettes — slugs, språk-koder, tekniske identifikatorer — anbefales det å enten ekskludere dem fra JSON-en du sender, eller bruke det eksplisitte formatparameteret og spesifisere felt som skal hoppes over (kommer snart). For de fleste lokaliseringsfiler er alle tekstverdier ment å oversettes.
Fungerer det med JSON5 eller JSONC (JSON med kommentarer)?
For øyeblikket behandler PolyLingo standard JSON. JSON5 og JSONC (med kommentarer) bør forhåndsbehandles for å fjerne kommentarer og konverteres til standard JSON før sending. Dette er et vanlig steg i byggeprosesser og legger til minimal overhead.
Hvor mange språk kan jeg målrette i én forespørsel?
Opptil alle 36 støttede språk i én enkelt forespørsel. Svaret inneholder ett oversatt JSON-objekt per språk-kode. Hastighetsbegrensninger varierer etter plan — gratisnivået tillater 10 forespørsler per minutt, mens Growth og Scale-planer tillater 200–600 forespørsler per minutt.
Relaterte guider
Legg til flerspråklighet i Next.js
Hvordan PolyLingo passer inn i en next-intl eller next-i18next arbeidsflyt.
Oversett Markdown uten å ødelegge formatering
For innhold som ligger i .md-filer i stedet for JSON.
Flerspråklighet for headless CMS
Oversettelse av Sanity, Contentful og Webflow-innhold på CMS-nivå.
Oversett lokaliseringsfilene dine på sekunder.
Lim inn JSON-en din, velg språk, få gyldige lokaliseringsfiler for hvert målspråk.
Begynn å oversette gratisLim inn lokaliserings-JSON-en din og se utdataene — gratis, ingen konto nødvendig.