Internationalized Inquirer prompts — a 100% drop-in replacement for @inquirer/prompts with built-in localization.
| npm | yarn | pnpm | bun |
|---|---|---|---|
npm install @inquirer/i18n |
yarn add @inquirer/i18n |
pnpm add @inquirer/i18n |
bun add @inquirer/i18n |
The root import reads LANGUAGE, LC_ALL, LC_MESSAGES, and LANG environment
variables (in that order) and falls back to the Intl API for Windows compatibility.
If no supported locale is detected, English is used.
import { input, select, confirm } from '@inquirer/i18n';Pin to a specific language by using a sub-path import:
import { input, select, confirm } from '@inquirer/i18n/fr'; // French
import { input, select, confirm } from '@inquirer/i18n/zh'; // Chinese (Simplified)| Sub-path | Language |
|---|---|
@inquirer/i18n (auto) |
Auto-detected |
@inquirer/i18n/en |
English (re-export of @inquirer/prompts) |
@inquirer/i18n/fr |
French |
@inquirer/i18n/es |
Spanish |
@inquirer/i18n/zh |
Chinese (Simplified) |
@inquirer/i18n/pt |
Portuguese |
Use createLocalizedPrompts to build a locale, then either export it directly
or register it for auto-detection via registerLocale:
import { createLocalizedPrompts, registerLocale } from '@inquirer/i18n';
import type { Locale } from '@inquirer/i18n';
const deLocale: Locale = {
confirm: { yesLabel: 'Ja', noLabel: 'Nein', hintYes: 'J/n', hintNo: 'j/N' },
select: { helpNavigate: 'Navigieren', helpSelect: 'Auswählen' },
checkbox: {
helpNavigate: 'Navigieren',
helpSelect: 'Auswählen',
helpSubmit: 'Bestätigen',
helpAll: 'Alle',
helpInvert: 'Umkehren',
},
search: { helpNavigate: 'Navigieren', helpSelect: 'Auswählen' },
editor: {
loadingMessage: () => 'Überprüfung...',
waitingMessage: (enterKey) => `Drücken Sie ${enterKey}, um Ihren Editor zu öffnen.`,
},
password: { maskedText: '[Eingabe verborgen]' },
};
// Option A — use directly
export const { input, select, confirm } = createLocalizedPrompts(deLocale);
// Option B — register so `@inquirer/i18n` auto-detects it when LANG=de
registerLocale('de', createLocalizedPrompts(deLocale));registerLocale must be called before any prompt is invoked. After registration,
import { confirm } from '@inquirer/i18n' will pick the German locale automatically
whenever LANG (or the other sources) resolve to de.
Copyright (c) 2025 Simon Boudrias (twitter: @vaxilart)
Licensed under the MIT license.