language implementation MERMS

This commit is contained in:
2026-05-23 20:49:12 -04:00
parent d13d655cf6
commit 439e322abc
51 changed files with 1580 additions and 650 deletions
+11
View File
@@ -0,0 +1,11 @@
const loaders = {
en: () => import('../messages/en.json'),
fr: () => import('../messages/fr.json'),
es: () => import('../messages/es.json'),
}
export async function getMessages(locale) {
const load = loaders[locale] || loaders.en
const mod = await load()
return mod.default
}
+25
View File
@@ -0,0 +1,25 @@
import React, { createContext, useContext } from 'react'
const TranslationContext = createContext({ messages: {}, locale: 'en' })
export function NextIntlClientProvider({ locale, messages, children, timeZone }) {
return React.createElement(
TranslationContext.Provider,
{ value: { locale: locale || 'en', messages: messages || {} } },
children
)
}
export function useTranslations(namespace) {
const { messages } = useContext(TranslationContext)
return function t(key) {
const ns = messages?.[namespace]
if (!ns) return key
return ns[key] ?? key
}
}
export function useLocale() {
const { locale } = useContext(TranslationContext)
return locale
}