revert: remove i18n lazy loading and highlight.js selective import (#736)
Revert the dynamic import() for i18n locales and highlight.js core+ registration from #696. Dynamic imports create separate chunk files that cause 404 errors for users after updating when the browser still references old chunk hashes. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { createI18n } from 'vue-i18n'
|
||||
import { en, loadLocale, supportedLocales } from './messages'
|
||||
import { messages, supportedLocales } from './messages'
|
||||
import type { SupportedLocale } from './messages'
|
||||
|
||||
const saved = localStorage.getItem('hermes_locale')
|
||||
@@ -37,24 +37,11 @@ const locale = resolveLocale(saved)
|
||||
|
||||
export const i18n = createI18n({
|
||||
legacy: false,
|
||||
locale: 'en',
|
||||
locale,
|
||||
fallbackLocale: 'en',
|
||||
messages: { en },
|
||||
messages,
|
||||
})
|
||||
|
||||
export async function setupI18n(): Promise<void> {
|
||||
if (locale !== 'en') {
|
||||
const msgs = await loadLocale(locale)
|
||||
if (msgs) {
|
||||
i18n.global.setLocaleMessage(locale, msgs as any)
|
||||
}
|
||||
;(i18n.global.locale as any).value = locale
|
||||
}
|
||||
}
|
||||
|
||||
export async function switchLocale(newLocale: string): Promise<void> {
|
||||
const msgs = await loadLocale(newLocale)
|
||||
if (msgs) {
|
||||
i18n.global.setLocaleMessage(newLocale, msgs as any)
|
||||
}
|
||||
export function switchLocale(newLocale: string): void {
|
||||
;(i18n.global.locale as any).value = newLocale
|
||||
}
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import en from './locales/en'
|
||||
import zh from './locales/zh'
|
||||
import zhTW from './locales/zh-TW'
|
||||
import ja from './locales/ja'
|
||||
import ko from './locales/ko'
|
||||
import fr from './locales/fr'
|
||||
import es from './locales/es'
|
||||
import de from './locales/de'
|
||||
import pt from './locales/pt'
|
||||
|
||||
export type LocaleMessages = Record<string, any>
|
||||
|
||||
@@ -25,25 +33,11 @@ export function mergeMessagesWithFallback(
|
||||
return merged
|
||||
}
|
||||
|
||||
const localeLoaders: Record<string, () => Promise<{ default: LocaleMessages }>> = {
|
||||
'zh': () => import('./locales/zh'),
|
||||
'zh-TW': () => import('./locales/zh-TW'),
|
||||
'ja': () => import('./locales/ja'),
|
||||
'ko': () => import('./locales/ko'),
|
||||
'fr': () => import('./locales/fr'),
|
||||
'es': () => import('./locales/es'),
|
||||
'de': () => import('./locales/de'),
|
||||
'pt': () => import('./locales/pt'),
|
||||
const rawMessages: Record<string, LocaleMessages> = { en, zh, 'zh-TW': zhTW, ja, ko, fr, es, de, pt }
|
||||
|
||||
export const messages: Record<string, LocaleMessages> = {}
|
||||
for (const [locale, msg] of Object.entries(rawMessages)) {
|
||||
messages[locale] = locale === 'en' ? msg : mergeMessagesWithFallback(en, msg)
|
||||
}
|
||||
|
||||
export { en }
|
||||
|
||||
export async function loadLocale(locale: string): Promise<LocaleMessages | null> {
|
||||
if (locale === 'en') return en
|
||||
|
||||
const loader = localeLoaders[locale]
|
||||
if (!loader) return null
|
||||
|
||||
const mod = await loader()
|
||||
return mergeMessagesWithFallback(en, mod.default)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user