Vertaler voor lokalisatiebestanden
Vertaal lokalisatiebestanden van je app met alle keys en placeholders intact
Upload je JSON-, PO-, strings.xml-, .strings-, .xcstrings- of XLIFF-bestanden, kies een taal en krijg dezelfde bestanden vertaald terug, klaar om in je project te zetten. Keys, opmerkingen, volgorde en opmaak blijven precies zoals ze waren, en elke placeholder zoals {name}, {{count}} of %1$s wordt in elke string gecontroleerd. De eerste strings zijn gratis, zonder account; de hele opdracht, tot 20 bestanden en 5,000 strings, kost $5 als eenmalige betaling, zonder abonnement. Voor een tiental strings is een chatbot prima, maar een bestand met duizenden keys komt vaak afgekapt terug, met hernoemde keys of gewijzigde placeholders.
- Tot 300 strings volledig gratis, de eerste strings van een grotere opdracht gratis, zonder account
- De hele opdracht $5, eenmalige betaling: tot 20 bestanden en 5,000 strings
- Keys, nesting, opmerkingen en volgorde blijven behouden; alleen de waarden worden vertaald
- Placeholders, ICU-meervouden en inline tags worden in elke string gecontroleerd
- Meervoudsvormen geschreven voor de doeltaal (PO, Android, Xcode)
- 41 talen, formele of informele toon, woordenlijst en namen die behouden blijven
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
Geel: placeholders en ICU-meervoudssyntaxis, in elke string gecontroleerd. Blauwgroen: tags, escapes en emoji, ongewijzigd gelaten.
Dezelfde sleutels. Dezelfde placeholders. Nieuwe taal.
Alleen de waarden veranderen. Het bestand komt terug met dezelfde nesting en volgorde, onder de naam es.json, en elke string die een placeholder kwijtraakt, wordt opnieuw vertaald voordat hij in je build kan komen.
Demo-app die voor deze pagina is verzonnen; de Spaanse strings zijn echte output van de tool, uit een bestand met 85 strings.
Wat je terugkrijgt
Je krijgt je bestanden terug in hetzelfde formaat, benoemd en geplaatst zoals elk platform het verwacht: en.json wordt es.json, strings.xml komt in een map values-es, Localizable.strings in es.lproj. Meerdere bestanden worden samen als één ZIP gedownload. Voordat je downloadt, zie je elke vertaalde string op het scherm naast de bron, en je kunt ze allemaal aanpassen.
- JSON en ARB: geneste keys, arrays, volgorde van keys, inspringing en spaties zoals in je bestand. ICU-berichten zoals {count, plural, one {# item} other {# items}} behouden hun structuur. In ARB blijft de "@"-metadata staan en wordt @@locale ingesteld.
- PO en POT: msgid en msgctxt veranderen nooit; lege en fuzzy items worden vertaald, items die al een vertaling hebben blijven ongemoeid. Meervoudsitems krijgen zoveel msgstr[n] als de doeltaal nodig heeft, en de header krijgt Language en Plural-Forms.
- Android strings.xml: <string>, <string-array> en <plurals>; translatable="false" wordt overgeslagen; apostroffen en aanhalingstekens worden geëscaped zoals Android vereist; de inhoud van <xliff:g> wordt nooit vertaald.
- iOS en macOS: .strings-bestanden behouden hun opmerkingen en codering (vaak UTF-16); .xcstrings String Catalogs krijgen een nieuwe lokalisatie voor jouw taal, met meervoudsvarianten, en strings die al vertaald zijn blijven behouden.
- XLIFF 1.2 en 2.0: een <target> na elke onvertaalde <source>, inline codes zoals <g>, <x/>, <ph> en <pc> blijven behouden, en de doeltaal wordt in het bestand ingesteld.
Stringbestanden vertalen met een chatbot en met deze tool
Chatbots vertalen korte UI-teksten goed, en een tiental strings in een chat plakken gaat meestal prima. Het probleem met een echt lokalisatiebestand is de lengte en de syntaxis: duizenden keys, placeholders, meervoudsregels en escaping, waarbij een compiler of bibliotheek het bestand afwijst zodra één teken fout is.
| Jouw situatie | Een chatbot | Deze tool |
|---|---|---|
| Tien knoplabels | Vertaalt ze meestal goed | Vertaalt ze en geeft je het bestand terug |
| Een bestand met 3000 keys | Het antwoord moet net zo lang zijn als het bestand, dus het stopt vaak halverwege | Vertaalt elke string in blokken van maximaal 60, tot 5,000 strings per opdracht |
| Keys en nesting | Schrijft het hele bestand opnieuw, waardoor keys vertaald, hernoemd of weggelaten kunnen worden | Keys worden nooit ter vertaling verstuurd; het bestand wordt opnieuw opgebouwd uit het jouwe |
| Placeholders zoals {name}, %1$s of :attribute | Behoudt ze meestal, maar niets controleert dat | Controleert elke string; een string die een placeholder kwijtraakt wordt opnieuw vertaald, daarna in de brontaal gehouden en op een lijst gezet |
| Meervouden in het Russisch, Pools of Arabisch | Kopieert vaak de twee Engelse vormen | Schrijft elke meervoudsvorm die de doeltaal nodig heeft, met voorbeeldgetallen per vorm |
| Apostroffen in Android-strings | Kan een niet-geëscapete apostrof laten staan waardoor de build faalt | Escapet apostroffen en aanhalingstekens zoals Android vereist |
Een lokalisatiebestand vertalen
-
1
Upload je bestanden en kies een taal
Sleep een of meer bestanden uit hetzelfde project erheen: JSON, ARB, PO of POT, strings.xml, .strings, .xcstrings of XLIFF. Kies de doeltaal en de toon, en geef op welke productnamen behouden moeten blijven.
-
2
Bekijk de eerste strings gratis
De eerste strings verschijnen op het scherm, met hun keys naast de brontekst. Pas ze direct ter plekke aan. Voor deze stap heb je geen account nodig.
-
3
Ontgrendelen en downloaden
Tevreden met de eerste strings? Ontgrendel de hele opdracht voor $5 en download daarna de vertaalde bestanden, plus een lijst met waarschuwingen als er iets nagekeken moet worden.
Waarom lange stringbestanden algemene AI-chatbots dwarszitten
Een lokalisatiebestand is net zozeer code als tekst. Om het in een chat te vertalen moet de chatbot het hele bestand opnieuw uitschrijven, met keys, haakjes, escapes en al, en een bestand met een paar duizend strings is langer dan een enkel antwoord kan zijn. De chatbot stopt halverwege of vraagt of je door wilt gaan, en jij mag de stukken aan elkaar plakken.
De syntaxis is het tweede probleem. Een key die per ongeluk is vertaald, een {count} die {cuenta} is geworden, een %1$s die zijn dollarteken kwijt is, een niet-geëscapete apostrof in strings.xml: stuk voor stuk kleine wijzigingen in een lang antwoord, en elk daarvan kan een build breken of je gebruikers een kale placeholder laten zien.
Deze tool vraagt een model nooit om je bestand opnieuw te schrijven. Het leest het bestand in als losse strings en stuurt alleen de tekst, met de key en eventuele opmerkingen van de ontwikkelaar als context, in blokken van maximaal 60 strings, en eist voor elke string één antwoord. Inline tags worden eerst vervangen door korte markeringen. Elk antwoord wordt gecontroleerd: dezelfde placeholders, dezelfde escapes zoals \n, dezelfde markeringen, de namen die je hebt opgegeven en elke meervoudsvorm. Een string die niet door de controle komt, wordt opnieuw gevraagd; mislukt dat twee keer, dan blijft de brontekst staan en komt de string op een lijst voor jou. Daarna wordt het bestand opnieuw opgebouwd uit je origineel.
Wat mensen vertalen
- React-, Vue-, Angular- en Next.js-apps: JSON-bestanden van i18next, vue-i18n, react-intl en ngx-translate
- Flutter-apps: .arb-bestanden, waarbij de @metadata-beschrijvingen als context dienen
- WordPress-plugins en -thema's, Django en andere gettext-projecten: .pot-sjablonen en .po-bestanden
- Android-apps: res/values/strings.xml met string arrays en plurals
- iOS- en macOS-apps: Localizable.strings en String Catalogs (.xcstrings)
- Bestanden die je als XLIFF exporteert uit een vertaalplatform of Xcode
Wat het niet doet
Het leest nog geen YAML-, .properties-, .resx- of .stringsdict-bestanden, en het voegt geen i18next-meervoudssleutels (key_one, key_few) toe die in je bronbestand ontbreken: het vertaalt de sleutels die je hebt. In .xcstrings-bestanden blijven strings met substituties of apparaatvariaties ongewijzigd.
Het overschrijft geen vertalingen die je al hebt: ingevulde PO-items, XLIFF-targets die als vertaald zijn gemarkeerd en String Catalog-items in jouw taal blijven zoals ze zijn. Eén betaling dekt maximaal 20 bestanden en 5,000 strings; Unlimited dekt maximaal 15,000 strings per opdracht.
Het is machinevertaling met structurele controles. Daarmee breng je snel een eerste versie van een taal uit en houd je een project gesynchroniseerd. Laat voor store-teksten, juridische teksten of alles met een eigen merkstem een moedertaalspreker meelezen.
Zo krijg je een goed resultaat
Context maakt het verschil tussen "Save" als werkwoord en "Save" als korting. Sleutels zoals settings.save_button en opmerkingen in je bestand (#. in PO, @key-beschrijvingen in ARB, /* comments */ in .strings) worden bij elke string meegestuurd, dus een bestand met betekenisvolle sleutels en een paar opmerkingen levert een betere vertaling op.
Zet de namen van je app en producten onder "Nooit vertalen" en kies formeel of informeel voor talen die beide hebben. Gebruik de gratis strings als test en bekijk na het ontgrendelen de lijst met waarschuwingen: elk item toont de sleutel, het probleem en wat het model heeft teruggegeven.
Per taal en situatie
Een JSON-i18n-bestand vertalen
Upload en.json (of meerdere namespace-bestanden) en krijg es.json terug met dezelfde geneste sleutels, dezelfd...
Lees meer →PO-bestand online vertalen
Upload een .pot-sjabloon of een gedeeltelijk vertaald .po-bestand en krijg een .po terug waarin elke lege msgs...
Lees meer →Wat het kost
Kleine opdrachten, eerste strings
Gratis
Een opdracht tot 300 strings is volledig gratis, inclusief downloads. Je ziet het resultaat op het scherm, zonder account. 1 opdracht per dag, of 3 per dag met een gratis account.
De hele opdracht
$5
Eén betaling voor maximaal 20 bestanden en 5,000 strings. Geen abonnement, verloopt nooit.
Unlimited
$19 / week
Elke tool op de site, met opdrachten van maximaal 15,000 strings.
Vragen en antwoorden
Kan ChatGPT een JSON-lokalisatiebestand vertalen?
Een klein bestand meestal wel. Een bestand met duizenden sleutels moet in één antwoord terugkomen, dus een chatbot stopt vaak halverwege, en niets controleert of alle sleutels en placeholders behouden zijn. Deze tool vertaalt de waarden in blokken, controleert elke placeholder en bouwt het bestand opnieuw op vanuit het jouwe.
Welke formaten worden ondersteund?
JSON (i18next, vue-i18n, react-intl, ngx-translate en vergelijkbare), Flutter ARB, gettext PO en POT, Android strings.xml, iOS- en macOS-.strings en .xcstrings, en XLIFF 1.2 en 2.0. Bestanden mogen elk maximaal 10 MB zijn, met maximaal 20 bestanden in één opdracht.
Blijven sleutels en placeholders behouden?
Sleutels worden nooit ter vertaling verstuurd. Placeholders zoals {name}, {{count}}, %s, %1$d, %@, :attribute en %{name}, escapes zoals \n, inline tags en emoji worden in elke string gecontroleerd. Een string die er een kwijtraakt, wordt opnieuw vertaald; lukt het dan nog niet, dan blijft de brontekst staan en verschijnt de string in de lijst met waarschuwingen.
Hoe worden meervoudsvormen verwerkt?
ICU-berichten behouden hun structuur en krijgen de meervoudscategorieën die de doeltaal gebruikt. PO-items met msgid_plural krijgen zoveel msgstr[n]-vormen als de doeltaal nodig heeft, en de header krijgt de bijbehorende Plural-Forms. Android <plurals> en Xcode-meervoudsvarianten worden geschreven met de categorieën van de doeltaal, zoals one, few, many en other voor Russisch.
Wat gebeurt er met strings die al vertaald zijn?
Die blijven behouden. Alleen lege of fuzzy PO-items, XLIFF-units zonder afgerond target en String Catalog-items zonder jouw taal worden vertaald. In JSON, .strings en strings.xml wordt elke waarde als brontekst behandeld.
In welke talen kan het vertalen?
41 talen, waaronder Spaans, Frans, Duits, Italiaans, Portugees (Brazilië en Portugal), Nederlands, Pools, Russisch, Oekraïens, Turks, Arabisch, Hebreeuws, Hindi, Indonesisch, Vietnamees, Thai, Japans, Koreaans en Chinees (vereenvoudigd en traditioneel).
Is het gratis?
De eerste strings van elke opdracht worden gratis vertaald en op het scherm getoond, zonder account. De hele opdracht, inclusief downloads, kost eenmalig $5. Unlimited, voor $19 per week, geldt voor elke tool op de site. Kleine opdrachten zijn de uitzondering: een opdracht van maximaal 300 strings is volledig gratis, downloads inbegrepen.
Zijn mijn bestanden privé?
Alleen jij kunt je opdracht openen. De strings gaan uitsluitend om ze te vertalen naar een aanbieder van AI-modellen, via routes die je gegevens niet voor training gebruiken. Opdrachten die zonder account zijn geüpload, worden na 7 dagen verwijderd, en je kunt elke opdracht op elk moment zelf verwijderen.
Bijgewerkt op 23 oktober 2026 · APPFACT STUDIO LTD