From a9eae8563ecc6a1dd43959dd97881c0fdac8aba3 Mon Sep 17 00:00:00 2001 From: Aron Podrigal Date: Sun, 30 Nov 2025 19:26:53 -0600 Subject: [PATCH] fix #324 Add `decimalSeparator` to i18n adapter and Vue props --- src/runtime/plugins/i18n.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/runtime/plugins/i18n.ts b/src/runtime/plugins/i18n.ts index d24c1cf..ad20650 100644 --- a/src/runtime/plugins/i18n.ts +++ b/src/runtime/plugins/i18n.ts @@ -1,10 +1,14 @@ import type { Ref } from 'vue' -import { ref, watch } from 'vue' +import { ref, watch, toRef } from 'vue' import type { LocaleInstance, LocaleMessages, LocaleOptions, VuetifyOptions } from 'vuetify' import type { Locale } from 'vue-i18n' import { useI18n } from 'vue-i18n' import { useNuxtApp } from '#imports' +function inferDecimalSeparator(n: ReturnType['n']) { + return n(0.1).includes(',') ? ',' : '.' +} + export function createAdapter(vuetifyOptions: VuetifyOptions) { vuetifyOptions.locale = {} const nuxtApp = useNuxtApp() @@ -37,6 +41,7 @@ export function createAdapter(vuetifyOptions: VuetifyOptions) { t: (key, ...params) => i18n.t(key, params), n: i18n.n, provide: createProvideFunction({ current: currentLocale, fallback, messages }), + decimalSeparator: toRef(() => inferDecimalSeparator(i18n.n)), } } @@ -75,6 +80,7 @@ function createProvideFunction(data: { messages: data.messages, t, n, + decimalSeparator: toRef(() => props.decimalSeparator ?? inferDecimalSeparator(n)), provide: createProvideFunction({ current: currentLocale, fallback: data.fallback, messages: data.messages }), } }