Internationalization (i18n)
Select the language for translated portal messages inside the portal's ui block:
ui {
language fr
}
The released library recognizes en, de, fr, ja, zh, he, ar and ru
(English, German, French, Japanese, Chinese, Hebrew, Arabic and Russian).
Language names are normalized too; use the short code consistently. Unknown
language input normalizes to English in the library, so check the actual rendered
result rather than treating successful adaptation as proof of your intended language.

Translations are compiled from the released message catalog. The presence of a language in the catalog does not promise that every profile, OIDC, error or custom-template string has been translated. There is no Caddyfile setting that imports a replacement message JSON file at runtime.
Test login, password/MFA prompts, registration, errors and account management in the selected language. Check long text and right-to-left layout on mobile. To contribute missing messages, update the upstream library's catalog and its translation checks; a documentation-site language change does not update the compiled authentication portal.
Check the language at the right layer
A selected language affects compiled portal messages; it does not replace every visible string.
| What you change | What to inspect | Separate concern |
|---|---|---|
Portal ui language | Login and password/MFA messages in the running portal | The documentation website language |
| A custom template | Literal labels, wrapping, and right-to-left layout | Compiled translation coverage |
| An upstream message catalog | The matching rebuilt/released library | No runtime message-JSON import directive |
| An unrecognized language value | Actual English fallback | Successful adaptation alone |
Agentic Prompts
Copy a prompt into your LLM to explore this topic. Each prompt prioritizes upstream repository guidance and code over this page, and asks for version-aware reasoning.
Explain language selection
Help me understand Internationalization (i18n).
Primary authorities (take precedence over website documentation):
https://github.com/greenpau/caddy-security/blob/main/AGENTS.md
https://github.com/greenpau/caddy-security/tree/main/.codex/skills
https://github.com/greenpau/go-authcrunch/blob/main/AGENTS.md
https://github.com/greenpau/go-authcrunch/tree/main/.codex/skills
Read each repository's root AGENTS.md first, then any scoped AGENTS.md that
applies to inspected paths. Read the relevant SKILL.md files and follow their
implementation and test references.
Relevant skills to locate: configuration-authentication-ui,
authentication-portal-themes.
Secondary reference:
https://docs.authcrunch.com/docs/authenticate/i18n-internationalization
If a source is inaccessible, ask me to paste its relevant text. Identify the
versions your answer applies to; main may be newer than my release. Resolve
disagreements using code and tests, and flag unverified claims. Use synthetic
credentials and redacted examples; explain proposed checks before any changes.
Trace ui language from Caddy parsing to the library’s normalized identifier
and rendered messages. Compare a supported short code, full language name, and
unknown value. Explain why successful adaptation does not prove the intended
language appeared.
Inspect translation coverage
Help me understand Internationalization (i18n).
Primary authorities (take precedence over website documentation):
https://github.com/greenpau/caddy-security/blob/main/AGENTS.md
https://github.com/greenpau/caddy-security/tree/main/.codex/skills
https://github.com/greenpau/go-authcrunch/blob/main/AGENTS.md
https://github.com/greenpau/go-authcrunch/tree/main/.codex/skills
Read each repository's root AGENTS.md first, then any scoped AGENTS.md that
applies to inspected paths. Read the relevant SKILL.md files and follow their
implementation and test references.
Relevant skills to locate: configuration-authentication-ui,
authentication-portal-themes.
Secondary reference:
https://docs.authcrunch.com/docs/authenticate/i18n-internationalization
If a source is inaccessible, ask me to paste its relevant text. Identify the
versions your answer applies to; main may be newer than my release. Resolve
disagreements using code and tests, and flag unverified claims. Use synthetic
credentials and redacted examples; explain proposed checks before any changes.
Help me inspect the compiled message catalog for login, MFA, registration,
errors, and account management. Distinguish a recognized language from
complete coverage of every template or Profile string. Ask for the running
release and screenshots with private identity data removed.
Diagnose mixed-language screens
Help me understand Internationalization (i18n).
Primary authorities (take precedence over website documentation):
https://github.com/greenpau/caddy-security/blob/main/AGENTS.md
https://github.com/greenpau/caddy-security/tree/main/.codex/skills
https://github.com/greenpau/go-authcrunch/blob/main/AGENTS.md
https://github.com/greenpau/go-authcrunch/tree/main/.codex/skills
Read each repository's root AGENTS.md first, then any scoped AGENTS.md that
applies to inspected paths. Read the relevant SKILL.md files and follow their
implementation and test references.
Relevant skills to locate: configuration-authentication-ui,
authentication-portal-themes.
Secondary reference:
https://docs.authcrunch.com/docs/authenticate/i18n-internationalization
If a source is inaccessible, ask me to paste its relevant text. Identify the
versions your answer applies to; main may be newer than my release. Resolve
disagreements using code and tests, and flag unverified claims. Use synthetic
credentials and redacted examples; explain proposed checks before any changes.
Build a diagnosis for a French login with English errors or Profile labels.
Separate catalog coverage, custom-template literal text, release mismatch, and
language fallback. Do not invent a runtime JSON-import directive.
Plan language layout checks
Help me understand Internationalization (i18n).
Primary authorities (take precedence over website documentation):
https://github.com/greenpau/caddy-security/blob/main/AGENTS.md
https://github.com/greenpau/caddy-security/tree/main/.codex/skills
https://github.com/greenpau/go-authcrunch/blob/main/AGENTS.md
https://github.com/greenpau/go-authcrunch/tree/main/.codex/skills
Read each repository's root AGENTS.md first, then any scoped AGENTS.md that
applies to inspected paths. Read the relevant SKILL.md files and follow their
implementation and test references.
Relevant skills to locate: configuration-authentication-ui,
authentication-portal-themes.
Secondary reference:
https://docs.authcrunch.com/docs/authenticate/i18n-internationalization
If a source is inaccessible, ask me to paste its relevant text. Identify the
versions your answer applies to; main may be newer than my release. Resolve
disagreements using code and tests, and flag unverified claims. Use synthetic
credentials and redacted examples; explain proposed checks before any changes.
Design a browser checklist for long translations, mobile text wrapping,
right-to-left languages, keyboard focus, error states, and MFA forms. Explain
how to observe the selected language independently from whether the
configuration parser accepts its name.
Understand an upstream contribution
Help me understand Internationalization (i18n).
Primary authorities (take precedence over website documentation):
https://github.com/greenpau/caddy-security/blob/main/AGENTS.md
https://github.com/greenpau/caddy-security/tree/main/.codex/skills
https://github.com/greenpau/go-authcrunch/blob/main/AGENTS.md
https://github.com/greenpau/go-authcrunch/tree/main/.codex/skills
Read each repository's root AGENTS.md first, then any scoped AGENTS.md that
applies to inspected paths. Read the relevant SKILL.md files and follow their
implementation and test references.
Relevant skills to locate: configuration-authentication-ui,
authentication-portal-themes.
Secondary reference:
https://docs.authcrunch.com/docs/authenticate/i18n-internationalization
If a source is inaccessible, ask me to paste its relevant text. Identify the
versions your answer applies to; main may be newer than my release. Resolve
disagreements using code and tests, and flag unverified claims. Use synthetic
credentials and redacted examples; explain proposed checks before any changes.
Explain which upstream catalog and tests would need review for a missing
message, without modifying them. Compare a docs-site language change with
compiled portal translations. Quiz me on supported language, fallback, and
custom-template responsibilities.
Source Code References
Start with the code search, then follow the parser, runtime, and tests relevant
to this topic. These links target main; use GitHub's branch/tag selector to
compare them with your installed release.
- Search this topic in both repositories — searches topic-specific symbols and paths across both codebases.
- caddy-security: caddyfile_authn_ui.go — parses templates, metadata, links, language, and local UI assets.
- go-authcrunch: pkg/translate/language.go — normalizes supported language identifiers.
- go-authcrunch: pkg/translate/data/messages.json — contains compiled-source portal message translations.
- go-authcrunch: pkg/translate/language_test.go — tests recognized languages and fallback normalization.
- go-authcrunch: pkg/authn/ui/ui.go — renders Go templates with portal state and template helpers.