From 2bae7c43764df5678fe2fc2e68be11ae95d85a41 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 28 Jan 2022 16:21:47 +0100 Subject: fix: handle translation with lingui The previous method was not working so I tried a different approach. Translation is loaded but I'm still getting warnings: * Plurals for locale undefined aren't loaded * Text content did not match I can't figure how to fix them... --- src/pages/_app.tsx | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) (limited to 'src/pages/_app.tsx') diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index a22c616..db021f9 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,31 +1,19 @@ -import { useEffect, useRef } from 'react'; -import { useRouter } from 'next/router'; +import { useEffect } from 'react'; import { i18n } from '@lingui/core'; import { I18nProvider } from '@lingui/react'; import { AppPropsWithLayout } from '@ts/types/app'; -import { initTranslation } from '@utils/helpers/i18n'; +import { activateLocale, defaultLocale, initLingui } from '@utils/helpers/i18n'; import '../styles/globals.scss'; import { ThemeProvider } from 'next-themes'; -initTranslation(i18n); +initLingui(defaultLocale); -function MyApp({ Component, pageProps }: AppPropsWithLayout) { - const router = useRouter(); - const locale: string = router.locale || router.defaultLocale!; - const firstRender = useRef(true); - - if (pageProps.translation && firstRender.current) { - i18n.load(locale, pageProps.translation); - i18n.activate(locale); - firstRender.current = false; - } +const MyApp = ({ Component, pageProps }: AppPropsWithLayout) => { + const locale: string = pageProps.locale || defaultLocale; useEffect(() => { - if (pageProps.translation) { - i18n.load(locale, pageProps.translation); - i18n.activate(locale); - } - }, [locale, pageProps.translation]); + activateLocale(locale, pageProps.translation); + }); const getLayout = Component.getLayout ?? ((page) => page); return ( @@ -39,6 +27,6 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) { ); -} +}; export default MyApp; -- cgit v1.2.3