JSON format (.json)
The JSON format reads JSON documents, extracts string values as translatable blocks, and writes the translated values back into the same structure. It is the common format for web and application resource files (i18next, Chrome extension messages, generic key/value catalogues).
By default every key/value string pair is extracted. From there you can narrow extraction with a key-exception or extraction pattern, control how block names are derived from keys, route specific keys to notes, IDs, or metadata, and hand embedded markup (HTML inside a value) to a subfilter. Two presets are provided (Chrome Extension and i18next) as starting points for those layouts.
How kapi reads it
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
codeFinderRules | array | Regex-mønstre som samsvarer med innebygde koder i oversettbar tekst. | |
escapeForwardSlashes | boolean | true | Escape skråstreker fremover i utdata-JSON (\/). |
exceptions | string | Regex-mønster for nøkkelnavn. Når extractAllPairs er sann, utelates samsvarende nøkler. Når den er usann, inkluderes samsvarende nøkler. | |
extractAllPairs | boolean | true | Trekk ut alle nøkkel-verdi-par for oversettelse. Når false, bruk extractionRules for å angi hvilke baner som skal trekkes ut. |
extractionRules | string | Regex-mønster for JSON-stier som skal ekstraheres. Overstyrer extractAllPairs når det er angitt. | |
extractIsolatedStrings | boolean | false | Ekstraher strengverdier i matriser (uten nøkler) som oversettbare blokker. |
extractNonTranslatableContent | boolean | true | Hvis sann (standard), vises ikke-oversettbart strenginnhold — isolerte matrisestrengeR og verdier ekskludert av uttrekksreglene — som inneholdsblokker (synlige for innlesing/LLM-konsumenter, hoppet over av maskinoversettelse) i stedet for å skjules i skjelettet. Deaktiver for å beholde det i skjelettet. |
genericMetaRules | string | Regex for nøkler hvis verdier blir generiske metadata. | |
idRules | string | Regex for nøkler hvis verdier blir blokk-ID-er (overstyrer useKeyAsName). | |
maxwidthRules | string | Regex for nøkler hvis verdier angir begrensninger for maksimumsbredde. | |
maxwidthSizeUnit | string | pixel | Størrelsesenheten for maxwidth. |
noteRules | string | Regex for nøkler hvis verdier blir oversetternotater. | |
subfilter | string | Globalt delfilterformatnavn (f.eks. 'html') brukt på alle eller samsvarende ekstraherte strenger. | |
subfilterRules | string | Regex-samsvar for nøkler hvis verdier skal behandles med delfilter. | |
subfilters | array | Matrise av {pattern, format}-tilordninger for innebygd innhold i spesifikke nøkler. | |
useCodeFinder | boolean | false | Aktiver mønsterbasert deteksjon av innebygde koder (plassholdere, tagger osv.). |
useFullKeyPath | boolean | false | Bruk full bane (/nøkkel1/nøkkel2) i stedet for umiddelbar nøkkel som navn. |
useIdStack | boolean | false | Bygg TextUnit-IDer fra nestet nøkkelstabel. |
useKeyAsName | boolean | true | Bruk JSON-nøkkel som blokk (TextUnit)-navn for referanse. |
useLeadingSlashOnKeyPath | boolean | true | Inkluder ledende skråstrek i nøkkelbanenavnene. |
Configure it live
Examples
Extract a subset of keys
Translate only keys under the messages and labels objects.
extractionRules: "/messages/.*|/labels/.*"
Notes from description keys
Attach description values as translator notes (Chrome extension style).
extractAllPairs: false
exceptions: "^message$"
noteRules: "^description$"
HTML inside values
Parse HTML markup within values whose key ends in _html (i18next style).
subfilter: html
subfilterRules: "_html$"
useFullKeyPath: true
Processing notes
String values become translatable blocks; objects, arrays, and non-string scalars form the surrounding non-translatable structure.
Note, ID, generic-metadata, and max-width rules attach to the next translatable block rather than producing content of their own.
Limitations
The match target for the rule-based regex patterns is either the immediate key or the full key path, depending on
useFullKeyPath, never both.
← Back to the Format Reference