import { defaultLanguage, allLanguages } from '../locales/index.js' export function getAllLanguages() { return allLanguages; } export function getLanguage(locale) { return allLanguages[locale]; } export function getDefaultLanguage() { if (!window || !window.navigator) { return defaultLanguage; } let browserLocale = window.navigator.browserLanguage || window.navigator.language; if (!browserLocale) { return defaultLanguage; } if (!allLanguages[browserLocale]) { const locale = getLocaleFromLanguageAlias(browserLocale); if (locale) { browserLocale = locale; } } if (!allLanguages[browserLocale]) { return defaultLanguage; } return browserLocale; } export function getI18nOptions() { return { locale: defaultLanguage, fallbackLocale: defaultLanguage, formatFallbackMessages: true, messages: (function () { const messages = {}; for (let locale in allLanguages) { if (!Object.prototype.hasOwnProperty.call(allLanguages, locale)) { continue; } const lang = allLanguages[locale]; messages[locale] = lang.content; } return messages; })() }; } function getLocaleFromLanguageAlias(alias) { for (let locale in allLanguages) { if (!Object.prototype.hasOwnProperty.call(allLanguages, locale)) { continue; } const lang = allLanguages[locale]; const aliases = lang.aliases; if (!aliases || aliases.length < 1) { continue; } for (let i = 0; i < aliases.length; i++) { if (aliases[i] === alias) { return locale; } } } return null; }