Files
memberApp/src/boot/lang.js
Adrian Zürcher a908db4f38 first commit
2025-10-12 14:56:18 +02:00

39 lines
817 B
JavaScript

import { createI18n } from 'vue-i18n';
import yaml from 'js-yaml';
export const lang = [];
const systemLocale = navigator.language || 'en-US';
const savedLang = localStorage.getItem('lang');
const messages = {};
const modules = import.meta.glob('src/assets/lang/*.yaml', {
eager: true,
import: 'default',
query: '?raw',
});
for (const path in modules) {
const raw = modules[path];
const parsed = yaml.load(raw);
// Extract the file name (e.g., "en.yaml" → "en")
const locale = path.split('/').pop().replace('.yaml', '');
lang.push(locale);
messages[locale] = parsed;
}
const i18n = createI18n({
legacy: false, // Composition API mode
locale: savedLang || systemLocale,
fallbackLocale: systemLocale,
messages,
});
export default ({ app }) => {
app.use(i18n);
};
export { i18n };