@@ -96,11 +96,25 @@ export function useLanguageManager(
9696 const getSupportedLanguages = async ( ) => {
9797 try {
9898 const languages = await invoke < Language [ ] > ( 'get_supported_languages' )
99- supportedLanguages . value = languages . map ( ( language ) => ( {
99+ const allLanguages = languages . map ( ( language ) => ( {
100100 name : language . name ,
101101 value : language . value ,
102102 svgUrl : `/icons/${ language . value . replace ( / \d + $ / , '' ) } .svg`
103103 } ) )
104+
105+ if ( globalConfig . value && globalConfig . value . plugins ) {
106+ const filtered = allLanguages . filter ( ( language ) => {
107+ const plugin = globalConfig . value . plugins . find ( ( p : any ) => p . language === language . value )
108+ const enabled = ! plugin || plugin . enabled !== false
109+ console . log ( `语言 ${ language . name } (${ language . value } ): enabled=${ enabled } ` )
110+ return enabled
111+ } )
112+ console . log ( '过滤后的语言列表:' , filtered . map ( l => l . name ) )
113+ supportedLanguages . value = filtered
114+ } else {
115+ console . log ( '未找到配置,显示所有语言' )
116+ supportedLanguages . value = allLanguages
117+ }
104118 }
105119 catch ( error ) {
106120 console . error ( 'Error getting supported languages:' , error )
@@ -138,14 +152,33 @@ export function useLanguageManager(
138152 toast . info ( `已切换到 ${ getLanguageDisplayName ( newLanguage ) } ` )
139153 }
140154
141- const initialize = async ( ) => {
142- // 获取支持的语言列表
155+ const refreshLanguageList = async ( ) => {
156+ console . log ( '=== 开始刷新语言列表 ===' )
157+ console . log ( '刷新前的语言列表:' , supportedLanguages . value . map ( l => l . name ) )
158+
159+ await getConfigure ( )
160+ console . log ( '配置已重新加载' )
161+
143162 await getSupportedLanguages ( )
163+ console . log ( '语言列表已重新获取:' , supportedLanguages . value . map ( l => l . name ) )
164+
165+ const currentStillAvailable = supportedLanguages . value . some ( lang => lang . value === currentLanguage . value )
166+ console . log ( `当前语言 ${ currentLanguage . value } 是否仍然可用:` , currentStillAvailable )
144167
145- // 获取配置
168+ if ( ! currentStillAvailable && supportedLanguages . value . length > 0 ) {
169+ currentLanguage . value = supportedLanguages . value [ 0 ] . value
170+ code . value = filterPluginTemplate ( currentLanguage . value )
171+ await refreshEnvInfo ( )
172+ console . log ( '当前语言已禁用,切换到:' , currentLanguage . value )
173+ }
174+ console . log ( '=== 刷新语言列表完成 ===' )
175+ }
176+
177+ const initialize = async ( ) => {
146178 await getConfigure ( )
147179
148- // 设置默认语言和初始代码模板
180+ await getSupportedLanguages ( )
181+
149182 if ( supportedLanguages . value . length > 0 ) {
150183 currentLanguage . value = supportedLanguages . value [ 0 ] . value
151184 console . log ( '当前语言:' , currentLanguage . value )
@@ -169,6 +202,7 @@ export function useLanguageManager(
169202 isLoadingEnvInfo,
170203 getLanguageDisplayName,
171204 handleLanguageChange,
205+ refreshLanguageList,
172206 initialize,
173207 getCurrentPluginConfig,
174208 getCurrentConsoleType
0 commit comments