@wix/multilingual
A type-safe Wix Multilingual SDK for accessing available languages on a site. This package provides a browser-only interface that proxies to the global window.multilingual methods with full TypeScript support.
Installation
npm install @wix/multilingual
Quick Start
import { listSupportedLanguages } from "@wix/multilingual";
const languages = listSupportedLanguages();
console.log("Available languages:", languages);
const primaryLanguage = languages.find(lang => lang.primary);
if (primaryLanguage) {
console.log("Primary language:", primaryLanguage.displayName);
console.log("Primary language URL:", primaryLanguage.url);
}
languages.forEach(lang => {
console.log(`${lang.displayName} (${lang.id}): ${lang.url}`);
});
Features
- ✅ Type-safe - Full TypeScript support for all language operations
- ✅ Browser-only - Works in Wix applications where
window.multilingual is available
- ✅ Zero dependencies - Lightweight proxy implementation
- ✅ Silent failure - Graceful handling of missing dependencies with console warnings
- ✅ External site support - Supports URLs for sites hosted outside Wix
- ✅ Comprehensive API - Full access to language information including URLs and regional formats
API Reference
listSupportedLanguages()
Gets an array of all available languages as defined in ML. Provides an array of all the available languages as defined in ML. Array of Language object.
Returns: Language[] - Array of Language objects, or empty array if not available
const languages = listSupportedLanguages();
Language Type
Language
Represents a language available on the site:
interface Language {
id: string;
displayName: string;
regionalFormat: string;
url: string;
primary: boolean;
}
Examples
Get Primary Language
import { listSupportedLanguages } from "@wix/multilingual";
const languages = listSupportedLanguages();
const primaryLanguage = languages.find(lang => lang.primary);
if (primaryLanguage) {
console.log(`Primary language: ${primaryLanguage.displayName}`);
console.log(`URL: ${primaryLanguage.url}`);
}
Build Language Switcher
import { listSupportedLanguages } from "@wix/multilingual";
const languages = listSupportedLanguages();
const languageSwitcher = languages.map(lang => ({
label: lang.displayName,
value: lang.id,
url: lang.url,
isPrimary: lang.primary,
}));
languageSwitcher.forEach(lang => {
console.log(`${lang.label} - ${lang.url}`);
});
Support External Sites
import { listSupportedLanguages } from "@wix/multilingual";
const languages = listSupportedLanguages();
languages.forEach(lang => {
console.log(`Switch to ${lang.displayName}: ${lang.url}`);
});