Free Tool

    Intlayer Message Formatter & Editor

    Build, test, and validate type-safe Intlayer content declarations with {{var}} interpolations, t(), plural(), enu(), select(), cond(), and markdown.

    Templates18
    INTLAYER Editor
    Valid Syntax
    36 characters1 lines

    Test Variables & Live Preview

    Adjust variables and switch languages to verify CLDR plural rules

    Locale:
    Rendered Output (en):
    Hello Alex, welcome to Intlayer!
    Export to Intlayer Type-Safe Declaration
    import { type Dictionary } from 'intlayer';const convertedMessageContent = {  key: 'converted-message',  content: 'Hello {{name}}, welcome to Intlayer!',} satisfies Dictionary;export default convertedMessageContent;
    Intlayer validates translations at compile-time with full TypeScript autocomplete.

    Intlayer Message Format Syntax Cheat Sheet

    Quick syntax rules and how each pattern maps to Intlayer's type-safe declarations

    FeatureSyntaxExampleNotesIntlayer Equivalent
    Variable Interpolation{{variableName}}Hello {{name}}!Double curly braces for dynamic parameter insertionuseIntlayer(key).name or resolveMessage()
    Multilingual Translationt({ en: "...", fr: "..." })t({ en: "Hello", fr: "Bonjour" })Locale-keyed translations with type safety and fallbackt({ [locale]: string })
    Pluralization (plural)plural({ one: "...", other: "..." })plural({ one: "1 item", other: "{{count}} items" })CLDR cardinal plural rules with automatic count lookupplural({ [category]: string })
    Exact Enumeration (enu)enu({ 0: "...", 1: "...", fallback: "..." })enu({ 0: "Zero", 1: "One", fallback: "{{count}}" })Exact numeric matching with fallback for remaining countsenu({ [number]: string, fallback })
    Dynamic Selection (select)select({ key: "...", fallback: "..." }, "variable")select({ admin: "Admin", fallback: "User" }, "role")Branch on any custom string variable discriminatorselect({ [key]: string }, variableKey)
    Gender Agreement (gender)gender({ male: "...", female: "...", fallback: "..." })gender({ male: "He", female: "She", fallback: "They" })Grammatical gender concordance with automatic lookupgender({ male, female, fallback })
    Boolean Condition (cond)cond({ true: "...", false: "..." })cond({ true: "Logged In", false: "Guest" })Evaluates boolean state conditionscond({ true: string, false: string })
    Markdown Content (md)md("# ...\n**bold**")md("# Title\n\n**Bold** {{variable}}")Rich markdown rendered to React / HTML nodesmd(markdownString)
    Embedded HTML (html)html("<tag>...</tag>")html("<p>Visit <a href=\"/\">home</a></p>")Embedded safe HTML markup for links and formattinghtml(htmlString)
    Intlayer compiler-driven architecture replaces complex runtime message parsing with compile-time type-safety and automated extraction.
    Intlayer Ecosystem

    Never Worry About Complex Syntax Again

    Intlayer turns internationalization into a joyful developer experience with compile-time type-safety, automatic component extraction, and seamless CMS integration.