Files
romm/frontend/src/stores/language.ts
2025-04-06 17:18:49 -04:00

34 lines
1.1 KiB
TypeScript

import { defineStore } from "pinia";
const defaultLanguageState = {
defaultLanguage: { value: "en_US", name: "English (USA)" },
selectedLanguage: { value: "en_US", name: "English (USA)" },
languages: [
{ value: "en_US", name: "English (USA)" },
{ value: "en_GB", name: "English (United Kingdom)" },
{ value: "fr_FR", name: "Français" },
{ value: "de_DE", name: "Deutsch" },
{ value: "ru_RU", name: "Русский" },
{ value: "pt_BR", name: "Português (Brasil)" },
{ value: "ro_RO", name: "Română" },
{ value: "es_ES", name: "Español (España)" },
{ value: "zh_CN", name: "简体中文 (中国)" },
{ value: "ko_KR", name: "한국어 (대한민국)" },
{ value: "ja_JP", name: "日本語 (日本)" },
{ value: "it_IT", name: "Italiano" },
].sort((a, b) => a.name.localeCompare(b.name)),
};
export default defineStore("language", {
state: () => ({ ...defaultLanguageState }),
actions: {
setLanguage(lang: { value: string; name: string }) {
this.selectedLanguage = lang;
},
reset() {
Object.assign(this, { ...defaultLanguageState });
},
},
});