← All tools

Pseudo-Localization Generator for Text & JSON

Generate accented, expanded test strings locally. Preserve supported placeholders and inline tags; export text or JSON for UI localization QA.

pseudo-localization-generatorLOCAL WORKSPACE

Enabling local controls…

Inputs and settings

Choose text or JSON; complex ICU and unsupported markup are rejected. This is not translation: check the result in your actual UI.

Processed only in this tab, without uploading or storing inputs. Input is limited to 32 KiB and 1,000 lines or strings; complete output to 128 KiB.

Results

Review the settings and run. Editing inputs clears old results.

Processing model and limits

Choose one string per line or a JSON string dictionary. ASCII letters are accented, each nonblank string is wrapped in ⟦ ⟧, and ~ padding is based on unprotected Unicode code points; this does not predict rendered width or translate text. Supported placeholders: {name}, {{name}}, ${name}, %s, %d, %1$s, %1$d, %@ and %%. Only simple b, strong, i, em, br and a tags with href/title and semicolon-terminated entity spellings are preserved. Complex ICU, ambiguous markup, unsupported format tokens, duplicate keys, arrays and non-string values are rejected. In text, scheme:// URLs, www., common mailto/tel/sms/geo/urn/data URIs and recognizable email addresses are rejected; other URL spellings are not detected. This is not an HTML sanitizer or a universal template parser: check the output in your actual formatter and UI. Empty values stay empty. Input ≤32 KiB, ≤1,000 lines or strings, JSON depth ≤20 and output ≤128 KiB. Processing remains in this browser.

Data and model checked: Android Developers: pseudolocales ↗ICU: Formatting Messages ↗

How to use this tool

Load the example, confirm field units and processing rules, then run locally. Editing any input clears the old result. Copy or download the complete output explicitly.

When not to use it

Choose one string per line or a JSON string dictionary. ASCII letters are accented, each nonblank string is wrapped in ⟦ ⟧, and ~ padding is based on unprotected Unicode code points; this does not predict rendered width or translate text. Supported placeholders: {name}, {{name}}, ${name}, %s, %d, %1$s, %1$d, %@ and %%. Only simple b, strong, i, em, br and a tags with href/title and semicolon-terminated entity spellings are preserved. Complex ICU, ambiguous markup, unsupported format tokens, duplicate keys, arrays and non-string values are rejected. In text, scheme:// URLs, www., common mailto/tel/sms/geo/urn/data URIs and recognizable email addresses are rejected; other URL spellings are not detected. This is not an HTML sanitizer or a universal template parser: check the output in your actual formatter and UI. Empty values stay empty. Input ≤32 KiB, ≤1,000 lines or strings, JSON depth ≤20 and output ≤128 KiB. Processing remains in this browser.

Read the guide →