{
  "title": "Pseudo-localization generator",
  "human_url": "https://happytails.ai/en/developer-tools/pseudo-localization-generator/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/pseudo-localization-generator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/pseudo-localization-generator.md",
  "content": "Pseudo-localization generator\nGenerate accented, expanded test strings, including ICU message branches, while protecting placeholders and message syntax.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Pseudo-localization generator\nPaste the documented input and choose the relevant settings.\nRun the local diagnostic and inspect its findings.\nDownload the complete output and reports. Tables preview the first 200 rows.\nUseful next steps\nCharacter counter\nJSON validator\nTest layout without claiming a translation\nRendered string text receives accented letters and extra padding, including nested ICU message branches. Argument names, selectors, offsets, substitutions and quoted syntax remain intact. Plain-text mode downloads actual text, while JSON mode returns a resource bundle.\nKeep the complete report\nJSON records the full result, settings and assumptions. CSV contains exact JSON Pointer paths, value types and JSON value envelopes for every report node, including typed object and array markers. Preview limits do not truncate downloadable reports.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Character counter",
      "url": "https://happytails.ai/en/text-tools/character-counter/"
    },
    {
      "name": "JSON validator",
      "url": "https://happytails.ai/en/developer-tools/json-validator/"
    }
  ],
  "tool": {
    "id": "pseudo-localization-generator",
    "category": "developer-tools",
    "built": true,
    "requirements": "Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.",
    "implementation": {
      "fields": [
        {
          "key": "format",
          "label": "Input format",
          "value": "JSON resource bundle",
          "type": "select",
          "values": [
            "JSON resource bundle",
            "Plain text"
          ]
        },
        {
          "key": "expansion",
          "label": "Expansion percent",
          "value": "30",
          "type": "text",
          "inputMode": "decimal",
          "maxLength": 6
        },
        {
          "key": "wrap",
          "label": "String wrapping",
          "value": "Wrap strings",
          "type": "select",
          "values": [
            "Wrap strings",
            "No wrapping"
          ]
        }
      ],
      "presentation": "metrics",
      "inputMaxLength": 1000000,
      "inputErrorCode": "DATA_DIAGNOSTIC_INPUT",
      "note": "Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "JSON input",
        "placeholder": "{\n  \"welcome\": \"Hello {name}\",\n  \"count\": \"Items: %d\",\n  \"button\": \"<b>Save</b> &amp; close\",\n  \"active\": true\n}",
        "help": "Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Up to 1,000,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Pseudo-localization generator\n\n- Human page: https://happytails.ai/en/developer-tools/pseudo-localization-generator/\n- Markdown: https://happytails.ai/en/developer-tools/pseudo-localization-generator.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/pseudo-localization-generator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `pseudo-localization-generator` |\n| Category | developer-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nAccent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.\n\n### Inputs and settings\n\nText input: JSON input.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n{\n  \"welcome\": \"Hello {name}\",\n  \"count\": \"Items: %d\",\n  \"button\": \"<b>Save</b> &amp; close\",\n  \"active\": true\n}\n```\n\nAccent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Up to 1,000,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `format` | Input format | select | \"JSON resource bundle\" | Allowed: JSON resource bundle, Plain text |\n| `expansion` | Expansion percent | text | \"30\" |  |\n| `wrap` | String wrapping | select | \"Wrap strings\" | Allowed: Wrap strings, No wrapping |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nAccent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"pseudo-localization-generator\",\n  \"category\": \"developer-tools\",\n  \"built\": true,\n  \"requirements\": \"Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"format\",\n        \"label\": \"Input format\",\n        \"value\": \"JSON resource bundle\",\n        \"type\": \"select\",\n        \"values\": [\n          \"JSON resource bundle\",\n          \"Plain text\"\n        ]\n      },\n      {\n        \"key\": \"expansion\",\n        \"label\": \"Expansion percent\",\n        \"value\": \"30\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 6\n      },\n      {\n        \"key\": \"wrap\",\n        \"label\": \"String wrapping\",\n        \"value\": \"Wrap strings\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Wrap strings\",\n          \"No wrapping\"\n        ]\n      }\n    ],\n    \"presentation\": \"metrics\",\n    \"inputMaxLength\": 1000000,\n    \"inputErrorCode\": \"DATA_DIAGNOSTIC_INPUT\",\n    \"note\": \"Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Processing stays on your device. JSON supports up to 1,000,000 input characters, 50,000 values and 64 nesting levels. Duplicate keys and numbers that cannot survive JSON serialization exactly are rejected. Operations are limited to 100,000 comparisons, 4,000,000 JSON output characters and 8,000,000 CSV output characters. Tables show the first 200 rows; downloads preserve the complete report. CSV uses exact JSON Pointer paths and typed JSON value envelopes for spreadsheet-safe reporting.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"JSON input\",\n      \"placeholder\": \"{\\n  \\\"welcome\\\": \\\"Hello {name}\\\",\\n  \\\"count\\\": \\\"Items: %d\\\",\\n  \\\"button\\\": \\\"<b>Save</b> &amp; close\\\",\\n  \\\"active\\\": true\\n}\",\n      \"help\": \"Accent rendered text and add padding inside each ICU plural, select and selectordinal branch. Object keys and non-string values stay unchanged. Preserve argument names, selectors, offsets, # substitutions, quoted syntax, nested placeholders, HTML tags, entities and printf tokens. Simple brace/template placeholders and formatted arguments stay opaque. ICU requires unique selectors and an other branch; malformed or unsupported argument types are rejected. Padding counts literal code points rather than protected syntax. This is a layout test, not a translation. Expansion ranges from zero to 300 percent. Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nGenerate accented, expanded test strings, including ICU message branches, while protecting placeholders and message syntax.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Pseudo-localization generator\n\n1. Paste the documented input and choose the relevant settings.\n2. Run the local diagnostic and inspect its findings.\n3. Download the complete output and reports. Tables preview the first 200 rows.\n\n## Useful next steps\n\n- [Character counter](https://happytails.ai/en/text-tools/character-counter/) ([Markdown](https://happytails.ai/en/text-tools/character-counter.md))\n\n- [JSON validator](https://happytails.ai/en/developer-tools/json-validator/) ([Markdown](https://happytails.ai/en/developer-tools/json-validator.md))\n\n## Test layout without claiming a translation\n\nRendered string text receives accented letters and extra padding, including nested ICU message branches. Argument names, selectors, offsets, substitutions and quoted syntax remain intact. Plain-text mode downloads actual text, while JSON mode returns a resource bundle.\n\n### Keep the complete report\n\nJSON records the full result, settings and assumptions. CSV contains exact JSON Pointer paths, value types and JSON value envelopes for every report node, including typed object and array markers. Preview limits do not truncate downloadable reports.\n"
}