i18n Message Format Converter
Seamlessly convert translation strings and dictionaries between ICU MessageFormat, i18next, Vue I18n, Gettext PO, and Intlayer. Test dynamic variables in real-time.
Interactive Live Preview & Evaluation
Set test values for detected variables to see the final interpolated string rendered in real time.
Message Format Comparison & Syntax Guide
See how interpolation, plurals, select options, and number formatting compare side-by-side across all supported formats.
| Feature | ICU MessageFormat | i18next | Vue I18n | Intlayer |
|---|---|---|---|---|
Simple Variable Replace named variable inside text | Hello {name}! | Hello {{name}}! | Hello {name}! | Hello {{name}}! |
CLDR Plural Category-based plural rules (one, few, many, other) | {count, plural, one {# item} other {# items}} | {count, plural, one {# item} other {# items}} | 1 item | {count} items | plural({ one: '{{count}} item', other: '{{count}} items' }) |
Exact Match Plural Specific numbers like 0, 1 mapped explicitly | {count, plural, =0 {No items} other {# items}} | {count, plural, =0 {No items} other {# items}} | No items | {count} items | enu({ '0': 'No items', fallback: '{{count}} items' }) |
Select / Gender String condition match | {gender, select, male {He} female {She} other {They}} | {gender, select, male {He} female {She} other {They}} | {gender: {male: "He", female: "She"}} | gender({ male: 'He', female: 'She', fallback: 'They' }) |
Number / Percent Format Localized numeric formatting styles | {val, number, percent} | {{val, percent}} | $n(val, 'percent') | {val, number, percent} |
HTML / Rich Text Markup tags preserved for formatting | Read <strong>{doc}</strong> | Read <1>{{doc}}</1> | <i18n-t> or raw HTML | html('Read <strong>{{doc}}</strong>') |
Type-Safe Compilation
Unlike legacy systems where mistyped variables fail silently at runtime, Intlayer enforces end-to-end TypeScript compilation and IDE auto-complete.
Universal Compat Layer
Seamlessly import or export messages from Next-intl, FormatJS, i18next, or Nuxt with zero vendor lock-in.
Visual CMS & AI Translation
Content declared in Intlayer can be edited visually in real-time or translated automatically across 18+ languages via the integrated AI pipeline.
Migrate to Intlayer for Complete Type Safety
Declare translations next to your code, catch missing keys at build time, and empower content editors with the visual CMS.