OpenDTU-old/webapp/src/components/LocaleSwitcher.vue
2024-07-05 21:57:53 +02:00

32 lines
938 B
Vue

<template>
<select class="form-select" @change="updateLanguage()" v-model="$i18n.locale">
<option v-for="locale in $i18n.availableLocales" :key="`locale-${locale}`" :value="locale">
{{ getLocaleName(locale) }}
</option>
</select>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { LOCALES } from '@/locales';
export default defineComponent({
name: 'LocaleSwitcher',
methods: {
updateLanguage() {
localStorage.setItem('locale', this.$i18n.locale);
},
getLocaleName(locale: string): string {
return LOCALES.find((i) => i.value === locale)?.caption || '';
},
},
mounted() {
if (localStorage.getItem('locale')) {
this.$i18n.locale = localStorage.getItem('locale') || 'en';
} else {
localStorage.setItem('locale', this.$i18n.locale);
}
},
});
</script>