Commit a6bc7775 authored by Moody Salem's avatar Moody Salem

chore(i18n): single directory for locales

parent 3452be9a
module.exports = { module.exports = {
catalogs: [ catalogs: [
{ {
path: '<rootDir>/src/locales/{locale}/messages', path: '<rootDir>/src/locales/{locale}',
include: ['<rootDir>/src'], include: ['<rootDir>/src'],
}, },
], ],
......
...@@ -4,21 +4,7 @@ import { I18nProvider } from '@lingui/react' ...@@ -4,21 +4,7 @@ import { I18nProvider } from '@lingui/react'
import { detect, fromUrl } from '@lingui/detect-locale' import { detect, fromUrl } from '@lingui/detect-locale'
import { ReactNode, useEffect } from 'react' import { ReactNode, useEffect } from 'react'
export const locales = [ export const locales = ['en', 'pseudo-en', 'de', 'es-AR', 'es-US', 'it-IT', 'iw', 'ro', 'ru', 'vi', 'zh-CN', 'zh-TW']
'en',
'pseudo-en',
'de',
'en',
'es-AR',
'es-US',
'it-IT',
'iw',
'ro',
'ru',
'vi',
'zh-CN',
'zh-TW',
]
export const defaultLocale = 'en' export const defaultLocale = 'en'
// load locale data for each supported language // load locale data for each supported language
...@@ -34,14 +20,16 @@ const getDetectedLocale = () => { ...@@ -34,14 +20,16 @@ const getDetectedLocale = () => {
} }
export async function dynamicActivate(locale: string) { export async function dynamicActivate(locale: string) {
const { messages } = await import(`@lingui/loader!./locales/${locale}/messages.po`) const { messages } = await import(`@lingui/loader!./locales/${locale}.po`)
i18n.load(locale, messages) i18n.load(locale, messages)
i18n.activate(locale) i18n.activate(locale)
} }
export function LanguageProvider({ children }: { children: ReactNode }) { export function LanguageProvider({ children }: { children: ReactNode }) {
useEffect(() => { useEffect(() => {
dynamicActivate(getDetectedLocale()) dynamicActivate(getDetectedLocale()).catch((error) => {
console.error('Failed to load locale data', error)
})
}, []) }, [])
return <I18nProvider i18n={i18n}>{children}</I18nProvider> return <I18nProvider i18n={i18n}>{children}</I18nProvider>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment