@inquirer/i18n
v1.0.5
Published
Internationalized Inquirer prompts - drop-in package with i18n support
Keywords
Readme
@inquirer/i18n
Internationalized Inquirer prompts — a 100% drop-in replacement for @inquirer/prompts with built-in localization.
Installation
npm install @inquirer/i18nyarn add @inquirer/i18npnpm add @inquirer/i18nbun add @inquirer/i18nUsage
Auto-detected locale
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';Fixed locale
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)Supported locales
| 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 |
Adding a custom locale
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.
License
Copyright (c) 2025 Simon Boudrias (twitter: @vaxilart) Licensed under the MIT license.
