Translates the AdminForth admin panel using plain JSON files, one per language. No database resource is needed. You keep the translations in git next to your code and edit them by hand or with a coding agent.
- One flat
<language code>.jsonfile per language, e.g.langs/uk.json:{ "Save": "Зберегти" }. - A CLI command finds all translation keys in the admin SPA sources and adds them to every language file, without building the SPA.
- Edits are applied after a page reload. No restart is needed.
- Untranslated strings (empty values) fall back to the original English text.
- Adds a language selector to the login page and the user menu.
- Supports ISO 639-1 codes and BCP-47 tags with a region (e.g.
pt-BR), plus pluralization, Slavic forms included. - Ships an agent skill that teaches coding agents to fill in missing translations.
- Stops app start with a clear error if a language file is not valid JSON or a plural translation would break the page, and warns about plural translations with a wrong number of forms.
pnpm add @adminforth/i18n-staticRegister it as a global plugin:
import I18nStaticPlugin from '@adminforth/i18n-static';
export const admin = new AdminForth({
...
globalPlugins: [
new I18nStaticPlugin({
supportedLanguages: ['en', 'uk', 'de', 'pt-BR'],
// translationsDir: 'langs', // default
}),
],
});Create or update the language files:
pnpm exec adminforth-i18n-static syncThe command prints the total, added, stale and untranslated key counts for every file. It also copies the
translation skill into .agents/skills, so you can ask your coding agent to "translate the admin panel".
Full setup and configuration guide:
AdminForth i18n Static Documentation
If you want to edit translations from the admin panel itself and translate them with an LLM, use @adminforth/i18n instead.
AdminForth is an open-source, agent-first admin framework for building robust admin panels and back-office applications faster.