import { createApp } from 'vue'; import App from './App.vue'; import store from './store'; import router from './router'; import './assets/styles.scss'; import i18n from './i18n'; import { createVuetify } from 'vuetify'; import * as components from 'vuetify/components'; import * as directives from 'vuetify/directives'; function getBrowserLanguage() { // Prüfe zuerst die bevorzugte Sprache const browserLanguage = navigator.language || navigator.languages[0]; // Deutschsprachige Länder: Deutschland, Österreich, Schweiz, Liechtenstein const germanSpeakingCountries = ['de', 'at', 'ch', 'li']; // Prüfe ob die Sprache mit 'de' beginnt (deutsch) if (browserLanguage.startsWith('de')) { return 'de'; } // Prüfe alle verfügbaren Sprachen für deutschsprachige Länder const allLanguages = navigator.languages || [navigator.language]; for (const lang of allLanguages) { // Prüfe auf de-XX Format (z.B. de-DE, de-AT, de-CH, de-LI) if (lang.startsWith('de-')) { const countryCode = lang.split('-')[1]?.toLowerCase(); if (germanSpeakingCountries.includes(countryCode)) { return 'de'; } } // Prüfe auch auf direkte Länderkennung (z.B. de_AT, de_CH) if (lang.startsWith('de_')) { const countryCode = lang.split('_')[1]?.toLowerCase(); if (germanSpeakingCountries.includes(countryCode)) { return 'de'; } } } // Fallback: Englisch für alle anderen Sprachen return 'en'; } const vuetify = createVuetify({ components, directives, }); store.dispatch('setLanguage', getBrowserLanguage()); const app = createApp(App); app.use(store); app.use(router); app.use(i18n); app.use(vuetify); app.mount('#app');