diff --git a/dashboard/src/components/shared/PluginSetSelector.vue b/dashboard/src/components/shared/PluginSetSelector.vue index 8aa51eaf7..78d1b53c3 100644 --- a/dashboard/src/components/shared/PluginSetSelector.vue +++ b/dashboard/src/components/shared/PluginSetSelector.vue @@ -170,7 +170,11 @@ async function loadPlugins() { // 只显示已激活且非系统的插件,并按名称排序 pluginList.value = (response.data.data || []) .filter(plugin => plugin.activated && !plugin.reserved) - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => { + const nameA = a.name || ''; + const nameB = b.name || ''; + return nameA.localeCompare(nameB); + }) } } catch (error) { console.error('加载插件列表失败:', error) diff --git a/dashboard/src/i18n/locales/en-US/features/config-metadata.json b/dashboard/src/i18n/locales/en-US/features/config-metadata.json index e0f694c33..c9a8c3468 100644 --- a/dashboard/src/i18n/locales/en-US/features/config-metadata.json +++ b/dashboard/src/i18n/locales/en-US/features/config-metadata.json @@ -523,5 +523,13 @@ "description": "Direct Connection Address List" } } + }, + "help": { + "documentation": "Official Documentation", + "support": "Join Support Group", + "helpText": "Don't understand the configuration? See {documentation} or {support}.", + "helpPrefix": "Don't understand the configuration? See", + "helpMiddle": "or", + "helpSuffix": "." } } \ No newline at end of file diff --git a/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json b/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json index 589aa54a0..7981347ff 100644 --- a/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +++ b/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json @@ -521,5 +521,13 @@ "description": "直连地址列表" } } + }, + "help": { + "documentation": "官方文档", + "support": "加群询问", + "helpText": "不了解配置?请见 {documentation} 或 {support}。", + "helpPrefix": "不了解配置?请见", + "helpMiddle": "或", + "helpSuffix": "。" } } \ No newline at end of file