yunohost-portal/plugins/i18n.ts

35 lines
965 B
TypeScript
Raw Normal View History

2023-08-07 17:29:04 +02:00
import { setLocale } from 'yup'
import { usePreferedLocale, usePreferedTheme } from '@/composables/states'
2023-08-07 17:29:04 +02:00
export default defineNuxtPlugin({
async setup() {
// Override default yup errors
// https://github.com/jquense/yup/blob/master/src/locale.ts
setLocale({
mixed: {
default: 'v.field_invalid',
required: 'v.field_required',
},
string: {
email: 'v.email',
min: ({ min }) => ({ key: 'v.string_too_short', values: { min } }),
},
})
const preferedTheme = await usePreferedTheme()
const colorMode = useColorMode()
if (preferedTheme.value !== 'auto') {
colorMode.preference = preferedTheme.value
}
},
hooks: {
'app:created'() {
// Override browser locale if prefered language
const preferedLocale = usePreferedLocale()
if (preferedLocale.value !== 'auto') {
useNuxtApp().$i18n.locale.value = preferedLocale.value
}
2023-08-07 17:29:04 +02:00
},
},
2023-08-07 17:29:04 +02:00
})