Files
mealie/frontend/composables/use-locales/use-locales.ts
2026-02-12 19:07:23 -06:00

36 lines
742 B
TypeScript

import type { LocaleObject } from "@nuxtjs/i18n";
import { LOCALES } from "./available-locales";
import { useGlobalI18n } from "../use-global-i18n";
export const useLocales = () => {
const i18n = useGlobalI18n();
const { current: vuetifyLocale } = useLocale();
const locale = computed<LocaleObject["code"]>({
get: () => i18n.locale.value,
set(value) {
i18n.setLocale(value);
},
});
function updateLocale(lc: LocaleObject["code"]) {
vuetifyLocale.value = lc;
}
// auto update vuetify locale
watch(locale, (lc) => {
updateLocale(lc);
});
// set initial locale
if (i18n.locale.value) {
updateLocale(i18n.locale.value);
};
return {
locale,
locales: LOCALES,
i18n,
};
};