Localization String Budget Reviewer
Check keyed translations against your declared grapheme, UTF-8 byte and logical-line budgets.
Loading tool…
How to use Localization String Budget Reviewer
Review a flat message delivery before importing it into a constrained interface or storage field. Each key retains the source and translation, separate measured lengths, the exact applied rule and any exceeded bounds. Missing and extra keys are shown independently rather than becoming silent empty translations.
- Paste flat source and target JSON catalogs with unique string keys.
- Declare exact per-key budgets or one * default; blank budget cells mean unbounded for that measure.
- Review over-budget, missing and extra keys before checking the actual interface layout.
Good to know
- At most 200 messages and 50,000 aggregate key/value characters per catalog; each value at most 10,000 characters and each JSON source at most 100,000. Duplicate JSON members and non-string values are refused.
- Rules have exactly key,max_graphemes,max_utf8_bytes,max_lines headers, at most 201 rows, unique existing source keys or one * default. At least one bound per row; canonical integer digits only. Graphemes allow 0–10,000, bytes 0–40,000 and lines 1–10,000.
- CRLF and bare CR count as logical newlines for line measurement only. Empty text counts as one line. Graphemes depend on this runtime Intl data; UTF-8 bytes preserve Unicode spelling and BOM. No normalization or text rewriting occurs.
- Budgets are authored constraints, not a pixel-width estimate, clipping test, translation-quality measure or ICU/HTML parser. The actual localized interface still needs layout and accessibility review. * is reserved for the default budget rule.
- Processing is local. Output is limited to 1,000,000 text characters unless a stricter file limit is stated.
Common questions
If a translation stays under the character budget, will it fit on screen?
That is not established here. Fonts, shaping, language, wrapping and interface geometry affect display. This report distinguishes your text/storage limits from the separate job of testing real layout.
Is this input sent to a server?
No. The application processes this input inside your browser tab and does not save it to persistent storage.
Keep going with related tools
All text →ICU Message Catalog Auditor
Parse bounded ICU message catalogs and compare named arguments without evaluating translations.
TextUnicode Segmentation Inspector
Inspect browser grapheme, word or sentence boundaries with original UTF-16 source offsets.
TextCharacter Counter
Measure visible characters, Unicode code points, UTF-16 length, and UTF-8 bytes without uploading text.
TextPseudolocalization Catalog Builder
Export a deterministic test-text catalog with accented letters, explicit scalar padding and protected selected variable tokens.