Catch translation errors before they ship
i18nlint checks your XLIFF files against their source text with 25+ configurable rules — placeholders, brackets, punctuation, duplicates and more. Get a clear report in seconds, right in your browser.
Stop shipping broken translations
Automatically lint your translations and catch the issues that slip past human review. Ensure every string meets your quality standards before it reaches production.
Everything i18nlint checks
One pass over your XLIFF files, dozens of checks — all configurable.
🧩
Placeholder checks
Spot missing or extra placeholders in qt (%1), gettext (%s) and xliff ({name}) syntax.
🔀
Duplicate detection
Flag the same source translated two ways — or one translation reused for different sources.
🔍
25+ pattern rules
Brackets, URLs, emails, currency, whitespace, punctuation and numbers — compared between source and target.
📊
Reports you can use
Export a self-contained HTML report, CSV for spreadsheets, or SARIF for code-scanning tools.
🔒
Files deleted immediately
All uploaded files are deleted instantly after processing. Your data is never stored or retained.
📄
XLIFF 1.2 & 2.x
Reads both versions, including inline markup and plural forms.
📏
Length ratios
Catch suspiciously short or long translations relative to the source.
🎛️
Fully configurable
Tune every rule’s severity in a simple TOML file and exclude languages, ids or messages you don’t care about.
⚡
Fast, written in Rust
Lints thousands of translation units in a blink — single files or whole directories.