Browse Source

fix: Resolve Vue i18n deepCopy crash causing web interface failures

Fixes web interface crashes when clients connect/disconnect by resolving
Vue i18n deepCopy function errors during locale merging operations.

Changes:
- Disable experimental locale detector to prevent SSR locale switching
- Add silentTranslationWarn/silentFallbackWarn to prevent crash-causing warnings
- Enable mergeFallbackMessage for safer locale merging without deep copying
- Disable lazy loading to prevent runtime locale merging issues
- Add fallbackLocale and redirectOn configs for safer browser detection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
pull/2195/head
coffeegrind123 10 months ago
parent
commit
003880027b
  1. 5
      src/i18n/i18n.config.ts
  2. 12
      src/nuxt.config.ts

5
src/i18n/i18n.config.ts

@ -17,6 +17,11 @@ import id from './locales/id.json';
export default defineI18nConfig(() => ({
legacy: false,
fallbackLocale: 'en',
// Disable strict mode to prevent deepCopy errors with locale merging
silentTranslationWarn: true,
silentFallbackWarn: true,
// Use shallow merging to avoid deepCopy issues
mergeFallbackMessage: true,
messages: {
en,
pl,

12
src/nuxt.config.ts

@ -23,9 +23,10 @@ export default defineNuxtConfig({
},
i18n: {
// https://i18n.nuxtjs.org/docs/guide/server-side-translations
experimental: {
localeDetector: './localeDetector.ts',
},
// Disabled experimental locale detector to prevent deepCopy errors
// experimental: {
// localeDetector: './localeDetector.ts',
// },
// https://wg-easy.github.io/wg-easy/latest/contributing/translation/
locales: [
{
@ -109,7 +110,12 @@ export default defineNuxtConfig({
strategy: 'no_prefix',
detectBrowserLanguage: {
useCookie: true,
fallbackLocale: 'en',
// Disable redirect to prevent locale switching during SSR
redirectOn: 'root',
},
// Disable lazy loading to prevent runtime locale merging issues
lazy: false,
},
nitro: {
esbuild: {

Loading…
Cancel
Save