mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-29 18:52:19 +00:00
fix: preserve custom nodes i18n data when locales are lazily loaded (#7214)
## Summary Custom nodes can provide localized translations via their locales folder. After the switch to lazy-loading locales (only English pre-loaded), custom node i18n data was being lost because: 1. loadCustomNodesI18n() merges data before locale is loaded 2. loadLocale() uses setLocaleMessage() which overwrites everything Solution: Store custom nodes i18n data and re-merge it after each lazy-loaded locale completes loading. - Add mergeCustomNodesI18n() function to store and merge custom data - Modify loadLocale() to re-merge stored data after loading - Add unit tests for the i18n merging behavior fix https://github.com/Comfy-Org/ComfyUI_frontend/issues/7025 ## Screenshots (if applicable) <img width="706" height="1335" alt="image" src="https://github.com/user-attachments/assets/41e4ba2c-b4c0-4d0d-a104-1ede8939ff92" /> <img width="672" height="1319" alt="image" src="https://github.com/user-attachments/assets/6c3e55e5-20d2-4093-a86a-7496db3dfe94" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7214-fix-preserve-custom-nodes-i18n-data-when-locales-are-lazily-loaded-2c26d73d3650812fab31edd71cf51a19) by [Unito](https://www.unito.io)
This commit is contained in:
@@ -132,7 +132,7 @@ import { useCopy } from '@/composables/useCopy'
|
||||
import { useGlobalLitegraph } from '@/composables/useGlobalLitegraph'
|
||||
import { usePaste } from '@/composables/usePaste'
|
||||
import { useVueFeatureFlags } from '@/composables/useVueFeatureFlags'
|
||||
import { i18n, t } from '@/i18n'
|
||||
import { mergeCustomNodesI18n, t } from '@/i18n'
|
||||
import { LiteGraph } from '@/lib/litegraph/src/litegraph'
|
||||
import { useLitegraphSettings } from '@/platform/settings/composables/useLitegraphSettings'
|
||||
import { CORE_SETTINGS } from '@/platform/settings/constants/coreSettings'
|
||||
@@ -391,9 +391,7 @@ useEventListener(
|
||||
const loadCustomNodesI18n = async () => {
|
||||
try {
|
||||
const i18nData = await api.getCustomNodesI18n()
|
||||
Object.entries(i18nData).forEach(([locale, message]) => {
|
||||
i18n.global.mergeLocaleMessage(locale, message)
|
||||
})
|
||||
mergeCustomNodesI18n(i18nData)
|
||||
} catch (error) {
|
||||
console.error('Failed to load custom nodes i18n', error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user