From 698c31943ea9d8d021782f6b9e865d41c09decce Mon Sep 17 00:00:00 2001 From: Enrico Ros Date: Sat, 6 Apr 2024 14:27:21 -0700 Subject: [PATCH] Centralize Lang --- src/common/state/store-ui.ts | 3 ++- src/common/util/pwaUtils.ts | 5 +++++ src/modules/persona/pmix/pmix.ts | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/common/state/store-ui.ts b/src/common/state/store-ui.ts index b66a9ae2f..6fd702ba4 100644 --- a/src/common/state/store-ui.ts +++ b/src/common/state/store-ui.ts @@ -3,6 +3,7 @@ import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import type { ContentScaling } from '~/common/app.theme'; +import { browserLangOrUS } from '~/common/util/pwaUtils'; // UI Preferences @@ -54,7 +55,7 @@ export const useUIPreferencesStore = create()( // UI Features - preferredLanguage: (typeof navigator !== 'undefined') && navigator.language || 'en-US', + preferredLanguage: browserLangOrUS, setPreferredLanguage: (preferredLanguage: string) => set({ preferredLanguage }), centerMode: 'wide', diff --git a/src/common/util/pwaUtils.ts b/src/common/util/pwaUtils.ts index 89d04e5b2..d13dbddc3 100644 --- a/src/common/util/pwaUtils.ts +++ b/src/common/util/pwaUtils.ts @@ -10,6 +10,11 @@ export const isMacUser = /Macintosh|MacIntel|MacPPC|Mac68K|iPad/.test(safeUA); export const isChromeDesktop = safeUA.includes('Chrome') && !safeUA.includes('Mobile'); export const isFirefox = safeUA.includes('Firefox'); +// frontend language +const browserLang = isBrowser ? window.navigator.language : ''; +export const browserLangOrUS = browserLang || 'en-US'; +export const browserLangNotUS = browserLangOrUS !== 'en-US'; + // deployment environment export const isVercelFromBackendOrSSR = !!process.env.VERCEL_ENV; export const isVercelFromFrontend = !!process.env.NEXT_PUBLIC_VERCEL_URL; diff --git a/src/modules/persona/pmix/pmix.ts b/src/modules/persona/pmix/pmix.ts index a68041a93..cdc9ffe27 100644 --- a/src/modules/persona/pmix/pmix.ts +++ b/src/modules/persona/pmix/pmix.ts @@ -1,5 +1,7 @@ import { DLLMId, getKnowledgeMapCutoff } from '~/modules/llms/store-llms'; +import { browserLangOrUS } from '~/common/util/pwaUtils'; + /*type Variables = | '{{Today}}' | '{{Cutoff}}' @@ -48,10 +50,9 @@ export function bareBonesPromptMixer(_template: string, assistantLlmId: DLLMId | // {{LocaleNow}} - enough information to get on the same page with the user if (mixed.includes('{{LocaleNow}}')) { - const userLocale = navigator.language || 'en-US'; // const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC'; // Format the current date and time according to the user's locale and timezone - const formatter = new Intl.DateTimeFormat(userLocale, { + const formatter = new Intl.DateTimeFormat(browserLangOrUS, { weekday: 'short', // Full name of the day of the week year: 'numeric', // Numeric year month: 'short', // Full name of the month