* fix: fouc

* feat: lazy load locales

* switch test to use build
This commit is contained in:
Calum H.
2026-01-01 14:08:05 +00:00
committed by GitHub
parent 2ce22c18bf
commit d1650bb3c4
6 changed files with 312 additions and 543 deletions

View File

@@ -1,11 +1,4 @@
import { buildLocaleMessages, createMessageCompiler, type CrowdinMessages } from '@modrinth/ui'
const localeModules = import.meta.glob<{ default: CrowdinMessages }>(
'../src/locales/*/index.json',
{
eager: true,
},
)
import { createMessageCompiler } from '@modrinth/ui'
export default defineI18nConfig(() => ({
legacy: false,
@@ -14,6 +7,4 @@ export default defineI18nConfig(() => ({
messageCompiler: createMessageCompiler(),
missingWarn: false,
fallbackWarn: false,
// @ts-expect-error - buildLocaleMessages returns compatible format at runtime
messages: buildLocaleMessages(localeModules),
}))

View File

@@ -0,0 +1,17 @@
import { type CrowdinMessages, transformCrowdinMessages } from '@modrinth/ui'
// eager:false - only loads the locale requested
const localeModules = import.meta.glob<{ default: CrowdinMessages }>(
'../src/locales/*/index.json',
{ eager: false },
)
export default defineI18nLocale(async (locale) => {
const loader = localeModules[`../src/locales/${locale}/index.json`]
if (!loader) {
console.warn(`Locale ${locale} not found`)
return {}
}
const messages = await loader()
return transformCrowdinMessages(messages.default)
})