diff --git a/packages/twenty-emails/src/components/BaseEmail.tsx b/packages/twenty-emails/src/components/BaseEmail.tsx index 6105a5c249..a45efbe063 100644 --- a/packages/twenty-emails/src/components/BaseEmail.tsx +++ b/packages/twenty-emails/src/components/BaseEmail.tsx @@ -1,42 +1,11 @@ -import { i18n, type Messages } from '@lingui/core'; import { I18nProvider } from '@lingui/react'; import { Container, Html } from '@react-email/components'; import { BaseHead } from 'src/components/BaseHead'; import { Footer } from 'src/components/Footer'; import { Logo } from 'src/components/Logo'; -import { type APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared/translations'; -import { messages as afMessages } from '../locales/generated/af-ZA'; -import { messages as arMessages } from '../locales/generated/ar-SA'; -import { messages as caMessages } from '../locales/generated/ca-ES'; -import { messages as csMessages } from '../locales/generated/cs-CZ'; -import { messages as daMessages } from '../locales/generated/da-DK'; -import { messages as deMessages } from '../locales/generated/de-DE'; -import { messages as elMessages } from '../locales/generated/el-GR'; -import { messages as enMessages } from '../locales/generated/en'; -import { messages as esMessages } from '../locales/generated/es-ES'; -import { messages as fiMessages } from '../locales/generated/fi-FI'; -import { messages as frMessages } from '../locales/generated/fr-FR'; -import { messages as heMessages } from '../locales/generated/he-IL'; -import { messages as huMessages } from '../locales/generated/hu-HU'; -import { messages as itMessages } from '../locales/generated/it-IT'; -import { messages as jaMessages } from '../locales/generated/ja-JP'; -import { messages as koMessages } from '../locales/generated/ko-KR'; -import { messages as nlMessages } from '../locales/generated/nl-NL'; -import { messages as noMessages } from '../locales/generated/no-NO'; -import { messages as plMessages } from '../locales/generated/pl-PL'; -import { messages as pseudoEnMessages } from '../locales/generated/pseudo-en'; -import { messages as ptBRMessages } from '../locales/generated/pt-BR'; -import { messages as ptPTMessages } from '../locales/generated/pt-PT'; -import { messages as roMessages } from '../locales/generated/ro-RO'; -import { messages as ruMessages } from '../locales/generated/ru-RU'; -import { messages as srMessages } from '../locales/generated/sr-Cyrl'; -import { messages as svMessages } from '../locales/generated/sv-SE'; -import { messages as trMessages } from '../locales/generated/tr-TR'; -import { messages as ukMessages } from '../locales/generated/uk-UA'; -import { messages as viMessages } from '../locales/generated/vi-VN'; -import { messages as zhHansMessages } from '../locales/generated/zh-CN'; -import { messages as zhHantMessages } from '../locales/generated/zh-TW'; +import { createI18nInstance } from 'src/utils/i18n.utils'; +import { type APP_LOCALES } from 'twenty-shared/translations'; type BaseEmailProps = { children: JSX.Element | JSX.Element[] | string; @@ -44,59 +13,17 @@ type BaseEmailProps = { locale: keyof typeof APP_LOCALES; }; -const messages: Record = { - en: enMessages, - 'pseudo-en': pseudoEnMessages, - 'af-ZA': afMessages, - 'ar-SA': arMessages, - 'ca-ES': caMessages, - 'cs-CZ': csMessages, - 'da-DK': daMessages, - 'de-DE': deMessages, - 'el-GR': elMessages, - 'es-ES': esMessages, - 'fi-FI': fiMessages, - 'fr-FR': frMessages, - 'he-IL': heMessages, - 'hu-HU': huMessages, - 'it-IT': itMessages, - 'ja-JP': jaMessages, - 'ko-KR': koMessages, - 'nl-NL': nlMessages, - 'no-NO': noMessages, - 'pl-PL': plMessages, - 'pt-BR': ptBRMessages, - 'pt-PT': ptPTMessages, - 'ro-RO': roMessages, - 'ru-RU': ruMessages, - 'sr-Cyrl': srMessages, - 'sv-SE': svMessages, - 'tr-TR': trMessages, - 'uk-UA': ukMessages, - 'vi-VN': viMessages, - 'zh-CN': zhHansMessages, - 'zh-TW': zhHantMessages, -}; - -(Object.entries(messages) as [keyof typeof APP_LOCALES, any][]).forEach( - ([locale, message]) => { - i18n.load(locale, message); - }, -); - -i18n.activate(SOURCE_LOCALE); - export const BaseEmail = ({ children, width, locale }: BaseEmailProps) => { - i18n.activate(locale); + const i18nInstance = createI18nInstance(locale); return ( - + {children} -