Käännä JSON-lokalisointitiedostot koskematta avaimiisi.
Avaimet pysyvät avaimina. Sisäkkäisyys säilyy ehjänä. Vain merkkijonoarvot käännetään — ja vain merkkijonoarvot. Kaikki muut ominaisuustyypit palautuvat täsmälleen sellaisina kuin ne lähetettiin.
Tavalliset käännöstyökalut eivät ymmärrä JSONia.
Yleiset käännösrajapinnat näkevät JSONisi pelkkänä tekstiseinänä. Ne kääntävät avaimien nimet yhdessä arvojen kanssa. Ne litistävät sisäkkäiset objektit. Ne yhdistävät merkkijonoja, joita ei pitäisi yhdistää. Palautuva JSON on rakenteellisesti rikkinäinen ja vaatii manuaalista korjausta ennen käyttöä. Jos ylläpidät lokalisointitiedostoja tuotantosovellukselle, tiedät että niiden syöttäminen tavalliseen käännösrajapintaan aiheuttaa enemmän työtä kuin säästää.
Ongelma on syvemmällä kuin pelkissä avaimissa. Tavalliset käännösrajapinnat myös sotkevat interpolointimuuttujat. Merkkijono kuten "Hello {name}, you have {count} messages" palautuu muuttujanimet käännettyinä — "Hola {nombre}, tienes {cuenta} mensajes" — mikä rikkoo kaikki ajonaikaiset ympäristöt, jotka odottivat alkuperäisiä muuttujanimiä. Seuraa tuntikausia kestävä virheenkorjaus.
Tiimeille, jotka ylläpitävät lokalisointitiedostoja useilla kielillä tuotantosovellukselle, tämä ei ole teoreettinen huoli. Se on jo tapahtunut. Kysymys on, kuinka kauan manuaalinen korjausprosessi kestää joka kerta.
PolyLingo käy JSONisi läpi ennen käännöstä.
PolyLingo ymmärtää JSON-rakenteen. Se käy rekursiivisesti läpi objektisi, tunnistaa käännettävät merkkijonoarvot ja lähettää vain ne käännösmallille. Avaimien nimiä ei koskaan muuteta. Numerot, totuusarvot, null-arvot ja muut kuin merkkijonotyypit kulkevat läpi muuttumattomina. Lopputulos on kelvollinen JSON, jonka rakenne on identtinen — vain merkkijonoarvot on käännetty.
Interpolointimuuttujat — {name}, {{count}}, %s ja vastaavat mallit — tunnistetaan ja säilytetään koko käännösprosessin ajan. Ne korvataan paikkamerkeillä ennen käännöstä ja palautetaan alkuperäisessä muodossaan tulosteessa. Käännösmalli ei koskaan näe niitä käännettävänä tekstinä.
Taulukot käsitellään oikein: jokainen merkkijonoelementti käännetään, kun taas numeeriset indeksit ja taulukkorakenne säilyvät muuttumattomina. Sekataulukot, jotka sisältävät sekä merkkijonoja että muita tyyppejä (numerot, objektit), käsitellään oikein siten, että ei-merkkijonotyypit kulkevat läpi muuttumattomina.
{
"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\"}",
# ...
# }
# }Mitä PolyLingo takaa jokaiselle JSON-käännökselle
- ✓Avaimien nimiä ei koskaan muuteta
- ✓Sisäkkäiset objektit ja taulukot käsitellään rekursiivisesti
- ✓Numerot, totuusarvot ja null-arvot kulkevat läpi muuttumattomina
- ✓Kaikki 43 kieltä yhdellä pyynnöllä
- ✓Automaattinen JSON-tunnistus — ei tarvita formaattilippua
- ✓Toimii sekä tasojen että syvästi sisäkkäisten lokalisointitiedostojen kanssa
- ✓Interpolointimuuttujat ({name}, {{count}}, %s) säilytetään täsmälleen
- ✓Tuloste on kelvollista JSONia — jäsentyy ilman muutoksia
Kolme vaihetta käännettyihin lokalisointitiedostoihin
Liitä JSONisi tai kutsu APIa
Käytä kooditonta kääntäjää yksittäisiin käännöksiin: liitä JSONisi, valitse kielet, lataa käännetyt tiedostot. Automaatioon kutsu POST /v1/translate JSON-sisällöllä ja kohdekielikoodeilla.
Vastaanota kaikki kielet yhdellä vastauksella
API palauttaa JSON-objektin, jossa on yksi merkintä per kohdekieli, sisältäen täysin käännetyn lokalisointitiedoston identtisellä rakenteella. Ei kielikohtaisia kutsuja. Ei silmukoita. Yksi pyyntö kaikille tulosteille.
Tallenna tulosteet messages-kansioosi
Kirjoita jokainen käännetty tiedosto polkuun messages/es.json, messages/fr.json, messages/de.json — tai mihin tahansa i18n-kirjastosi odottaa niitä. Rakenne on identtinen lähdetiedostosi kanssa, joten lisäkäsittelyä ei tarvita.
Missä JSON-käännös on tärkeintä
Sovelluksen i18n next-intl:llä tai i18nextillä
Käännä messages/*.json- tai locales/*.json-tiedostosi suoraan. Avaimet pysyvät ehjinä, sisäkkäisyys säilyy ja interpolointimuuttujat kulkevat muuttumattomina. Pudota tiedostot messages-kansioon ja ota käyttöön.
CMS-sisällön vienti
Headless CMS -alustat vievät usein rakenteellista sisältöä JSON-muodossa. PolyLingo kääntää merkkijonoarvot säilyttäen kenttien nimet, sisäkkäiset sisältötyypit ja ei-merkkijonoarvot kuten päivämäärät, totuusarvot ja tunnisteet.
API-vastaukset ja konfiguraatiotiedostot
Mikä tahansa JSON-rakenne, jossa on käännettäviä merkkijonoarvoja — tuotteen kuvaukset, ilmoitusmallit, sovelluksen sisäinen teksti API:n kautta — voidaan kääntää muuttamatta sovelluksen tarvitsemaa rakennetta.
Usein kysytyt kysymykset JSON-käännöksestä
Säilyvätkö interpolointimuuttujat kuten {name} tai {{count}}?
Kyllä. PolyLingo tunnistaa yleiset interpolointimallit kuten {variable}, {{variable}}, %(variable)s ja %s ennen käännöstä. Ne korvataan vakioiduilla paikkamerkeillä, ympäröivä teksti käännetään ja alkuperäiset muuttujanimet palautetaan tulosteeseen. Käännösmalli ei koskaan näe muuttujanimiä käännettävänä sisältönä.
Mitä tapahtuu ei-merkkijonoarvoille — numeroille, totuusarvoille, nullille?
Ei-merkkijonoarvot kulkevat täysin muuttumattomina läpi. PolyLingo kääntää vain luonnollista kieltä sisältävät merkkijonoarvot. Numerot, totuusarvot, null-arvot ja ei-merkkijonojen taulukot säilyvät täsmälleen sellaisina kuin lähteessä.
Pystyykö PolyLingo käsittelemään syvästi sisäkkäisiä JSON-rakenteita?
Kyllä. PolyLingo käy rekursiivisesti läpi minkä tahansa syvyisen objektin. Käännös koskee kaikkia merkkijonoarvoja koko rakenteessa riippumatta niiden sisäkkäisyydestä.
Entä jos jotkut avaimet sisältävät kääntämätöntä sisältöä kuten slugeja tai koodeja?
PolyLingo kääntää oletuksena kaikki merkkijonoarvot. Jos sinulla on merkkijonokenttiä, joita ei pitäisi kääntää — slugit, kielikoodit, tekniset tunnisteet — suositeltu tapa on joko jättää ne pois lähetettävästä JSONista tai käyttää eksplisiittistä format-parametria ja määrittää ohitettavat kentät (tulossa pian). Useimmissa lokalisointitiedostoissa kaikki merkkijonoarvot on tarkoitettu käännettäväksi.
Toimiiko se JSON5:n tai JSONC:n (kommenteilla varustetun JSONin) kanssa?
Tällä hetkellä PolyLingo käsittelee standardia JSONia. JSON5 ja JSONC (kommenteilla) tulee esikäsitellä poistamalla kommentit ja muuntamalla standardiksi JSONiksi ennen lähettämistä. Tämä on yleinen vaihe build-putkissa ja aiheuttaa vain pienen lisäkuorman.
Kuinka monta kieltä voin kohdistaa yhdellä pyynnöllä?
Jopa kaikki 30 tuettua kieltä yhdellä pyynnöllä. Vastaus sisältää yhden käännetyn JSON-objektin per kielikoodi. Nopeusrajoitukset vaihtelevat suunnitelman mukaan — ilmaisversio sallii 10 pyyntöä minuutissa, Growth- ja Scale-suunnitelmat 200–600 pyyntöä minuutissa.
Aiheeseen liittyvät oppaat
Käännä lokalisointitiedostosi sekunneissa.
Liitä JSONisi, valitse kielet, saat kelvolliset lokalisointitiedostot jokaiselle kohdekielelle.
Aloita kääntäminen ilmaiseksiLiitä lokalisointisi JSON ja katso tulos — ilmaiseksi, ilman tiliä.