useLanguagesStore.js 676 Bytes
import { defineStore } from 'pinia';
import { reactive, ref } from 'vue';
import { useI18n } from 'vue-i18n';

export const useLanguagesStore = defineStore('languages', () => {
    const { locale } = useI18n();

    const languagesItems = reactive(['en', 'cn', 'tw']);
    const localitem = localStorage.getItem('language');
    const local = localitem === null ? 'en' : localitem;
    const selectedLanguage = ref(local);

    const setLanguages = (val) => {
        localStorage.setItem('language', val);
        selectedLanguage.value = val;
        locale.value = val;
    };

    return {
        languagesItems,
        selectedLanguage,
        setLanguages
    };
});