vite-monaco-editor-nls
v0.0.3
Published
🌍 Dynamic internationalization (i18n) support for Monaco Editor in Vite projects
Downloads
328
Maintainers
Readme
vite-monaco-editor-nls
🌍 Internationalization (i18n) support for Monaco Editor in Vite projects.
See full documentation for more details.
What Problem Does It Solve?
Monaco Editor does not provide a runtime language switching API. When bundled directly, it only includes English and cannot switch to other languages.
This library enables:
- Build-time NLS module interception - Vite plugin intercepts Monaco's language loading module
- Runtime language switching - Dynamic language switching at runtime
- Lazy loading language packs - Load language packs on-demand
Installation
npm install vite-monaco-editor-nlsQuick Start
1. Configure Vite Plugin
// vite.config.ts
import { monacoNlsPlugin } from 'vite-monaco-editor-nls/plugin';
export default {
plugins: [monacoNlsPlugin()],
};2. Load Language & Initialize Editor
import { monacoLocale } from 'vite-monaco-editor-nls/utils';
// Get system locale or your initial language
const initialLanguage = monacoLocale.getSystemLocale();
// 1. Load language pack first
await monacoLocale.load(initialLanguage);
// 2. Import Monaco Editor
const monaco = await import('monaco-editor');
// 3. Create editor
const editor = monaco.editor.create(container, options);3. Switch Language
function switchLanguage(newLocale: string) {
localStorage.setItem('locale', newLocale);
window.location.reload(); // Page reload required
}API
import { monacoLocale } from 'vite-monaco-editor-nls/utils';
// Load language pack (lazy loaded)
await monacoLocale.load(locale?: string);
// Set current locale
monacoLocale.setLocale(locale: string);
// Get current locale
monacoLocale.getLocale(): string;
// Get system locale
monacoLocale.getSystemLocale(): string;
// Map locale code to Monaco language code
monacoLocale.mapLocale(locale: string): MonacoLanguage;
// Check if locale is loaded
monacoLocale.isLoaded(locale: string): boolean;Supported Languages
Supports 14 languages: zh-CN, zh-TW, en-US, ja-JP, ko-KR, de-DE, es-ES, fr-FR, it-IT, pt-BR, ru-RU, tr-TR, pl-PL, cs-CZ
Examples
License
MIT © 2026
