11<script setup>
2- import {onMounted , onUnmounted } from " vue" ;
2+ import {onMounted , onUnmounted , ref } from " vue" ;
3+ import { useLocaleStore } from ' @/stores/locale'
4+
5+ const localeStore = useLocaleStore ()
6+
7+ const langs = ref ([
8+ {lang: ' bg' , name: ' Български' },
9+ {lang: ' ca' , name: ' Català' },
10+ {lang: ' de' , name: ' Deutsch' },
11+ {lang: ' en' , name: ' English' },
12+ {lang: ' el' , name: ' Ελληνικά' },
13+ {lang: ' es' , name: ' Español' },
14+ {lang: ' fa' , name: ' فارسی' },
15+ {lang: ' fr' , name: ' Français' },
16+ {lang: ' it' , name: ' Italiano' },
17+ {lang: ' nl' , name: ' Nederlands' },
18+ {lang: ' pl' , name: ' Polski' },
19+ {lang: ' pt' , name: ' Português' },
20+ {lang: ' ru' , name: ' Русский' },
21+ {lang: ' tr' , name: ' Türkçe' },
22+ {lang: ' uk' , name: ' Український' },
23+ ]);
324
425const props = defineProps ({
526 title: String ,
@@ -14,15 +35,19 @@ onMounted(async () => {
1435onUnmounted (async () => {
1536 emit (' update:title' , oldTitle);
1637})
38+
39+ const changeLanguage = (lang ) => {
40+ localeStore .setLocale (lang)
41+ }
1742 </script >
1843
1944<template >
2045 <v-container >
2146 <v-list >
2247 <v-list-item >
2348 <v-btn-toggle
24- rounded =" xl"
25- border
49+ rounded =" xl"
50+ border
2651 >
2752 <v-btn icon =" mdi-weather-night" ></v-btn >
2853 <v-btn icon =" mdi-brightness-auto" ></v-btn >
@@ -31,7 +56,11 @@ onUnmounted(async () => {
3156 </v-list-item >
3257 <v-list-item >
3358 <v-select
34- :items =" ['English',]"
59+ v-model =" localeStore.currentLocale"
60+ :items =" langs"
61+ item-title =" name"
62+ item-value =" lang"
63+ @update:modelValue =" changeLanguage"
3564 ></v-select >
3665 </v-list-item >
3766 </v-list >
0 commit comments