tamper[box]

Locale File Checker

Catch missing keys and changed placeholders

Translations breaking at runtime? Compare resource keys, placeholders and basic ICU message structure before release.

Translations breaking at runtime? Compare resource keys, placeholders and basic ICU message structure before release. Check locally in your browser. No upload. Jump to: What does it mean?, How to fix it, Break it, Ask your agent.

Example A synthetic French resource changes a placeholder and omits the Continue button.

3 comparison rows inspected. /welcome: Placeholder mismatch. 1 more finding to review.

Checks are lexical, not a full ICU parser or translation review. Plural-category requirements, PO locale plural formulas and XLIFF schema conformance are not validated.

Both resource files stay in your browser. Keys and placeholders are compared here and never uploaded.

Nothing is sent to our server. This tool has no server step.

Findings

3 checks and notes
  • Fail /welcome: Placeholder mismatch

    Compare the source and translated resource. Placeholder checks are lexical; ICU validation is limited to balanced braces and an other branch.

  • Fail /button: Missing key

    Compare the source and translated resource. Placeholder checks are lexical; ICU validation is limited to balanced braces and an other branch.

  • Info 3 source keys compared

    Translation quality, locale-specific plural categories, ICU quoting and complete resource schema validation are outside this check. JSON duplicate keys follow JSON.parse last-value behavior.

Evidence

Resource comparison

Show the resource comparison 27 lines · 507 characters
[
  {
    "key": "/welcome",
    "state": "fail",
    "source": "Hello {name}",
    "target": "Bonjour {user}",
    "notes": [
      "Placeholder mismatch"
    ]
  },
  {
    "key": "/cart",
    "state": "pass",
    "source": "{count, plural, one {One item} other {# items}}",
    "target": "{count, plural, one {Un article} other {# articles}}",
    "notes": []
  },
  {
    "key": "/button",
    "state": "fail",
    "source": "Continue",
    "target": null,
    "notes": [
      "Missing key"
    ]
  }
]

What this result means

Written for the example.

  • Ask for a review of the findings and a test that verifies the proposed fix. Input values are not included automatically.

  • A synthetic French resource changes a placeholder and omits the Continue button.

  • A synthetic French resource changes a placeholder and omits the Continue button.

  • Check representative input and one deliberate failure. Confirm the result in the application that consumes it.

  • Read the findings before changing the input. Break it lets you inspect a failure, and Heal it restores the previous input.

  • Checks are lexical, not a full ICU parser or translation review. Plural-category requirements, PO locale plural formulas and XLIFF schema conformance are not validated.

How it works

Locale File Checker reads source resource locally and presents findings with the evidence behind them. A synthetic French resource changes a placeholder and omits the Continue button. The full method, every rule and worked examples are on docs.tamperbox.dev.

Limits and interpretation

Checks are lexical, not a full ICU parser or translation review. Plural-category requirements, PO locale plural formulas and XLIFF schema conformance are not validated. Inputs are limited to 1,000,000 characters per field. Nothing is fetched from addresses embedded in input. Explicit copies and downloads are under your control.

Frequently asked questions

Is my input uploaded?

No. Parsing and output generation run in your browser. Source values are not sent to a server.

What does the opening example demonstrate?

A synthetic French resource changes a placeholder and omits the Continue button. It is synthetic data. Replace it with your own input to inspect a different case.

Does a passing result prove my application works?

No. Checks are lexical, not a full ICU parser or translation review. Plural-category requirements, PO locale plural formulas and XLIFF schema conformance are not validated. Verify the result in your test environment before relying on it.

References

Are you an AI agent? You are in the right place.

Read this tool as plain text with its methods and limits. Use the website interface; no dedicated MCP operation is available.