diff --git a/package.json b/package.json index d725e38..41dfaf0 100644 --- a/package.json +++ b/package.json @@ -551,6 +551,16 @@ "type": "string", "default": "", "description": "Path to the Python virtual environment for AskCode." + }, + "DevChat.Language": { + "type": "string", + "default": "en", + "enum": ["en", "zh-cn"], + "enumDescriptions": [ + "English", + "Simplified Chinese" + ], + "description": "The language used for DevChat interface." } } }, diff --git a/src/handler/handlerRegister.ts b/src/handler/handlerRegister.ts index c9092a3..795cb97 100644 --- a/src/handler/handlerRegister.ts +++ b/src/handler/handlerRegister.ts @@ -15,6 +15,7 @@ import { getSetting, updateSetting } from './userSettingHandler'; import { featureToggle, getFeatureToggles } from './featureToggleHandler'; import { getUserAccessKey } from './accessKeyHandler'; import { getValidLlmModelList } from './llmModelHandler'; +import { getIdeLanguage } from './langHandler'; // According to the context menu selected by the user, add the corresponding context file @@ -78,3 +79,5 @@ messageHandler.registerHandler('getUserAccessKey', getUserAccessKey); messageHandler.registerHandler('regModelList', getValidLlmModelList); messageHandler.registerHandler('userInput', userInput); + +messageHandler.registerHandler('getIdeLanguage', getIdeLanguage); diff --git a/src/handler/langHandler.ts b/src/handler/langHandler.ts new file mode 100644 index 0000000..606ce52 --- /dev/null +++ b/src/handler/langHandler.ts @@ -0,0 +1,22 @@ +import * as vscode from 'vscode'; +import { regInMessage, regOutMessage } from '../util/reg_messages'; // Ensure these functions are imported +import { MessageHandler } from './messageHandler'; + +// Register the incoming and outgoing messages for the 'getIdeLanguage' command +regInMessage({ command: 'getIdeLanguage' }); +regOutMessage({ command: 'ideLanguage', lang: "" }); // Placeholder for the lang property +// Implement the handler function to get the current IDE language setting +export async function getIdeLanguage(panel: vscode.WebviewPanel | vscode.WebviewView): Promise { + // Get the current IDE language setting + const ideLanguage = vscode.env.language; + // 'en' stands for English, 'zh-cn' stands for Simplified Chinese + + // Construct the message with the language information + const langMessage = { + "command": "ideLanguage", + "lang": ideLanguage + }; + + // Send the message to the webview panel or view + MessageHandler.sendMessage(panel, langMessage); +} \ No newline at end of file diff --git a/src/ide_services/services.ts b/src/ide_services/services.ts index db42754..bbcc02f 100644 --- a/src/ide_services/services.ts +++ b/src/ide_services/services.ts @@ -33,8 +33,8 @@ const functionRegistry: any = { "/ide_language": { "keys": [], "handler": async () => { - const config = vscode.workspace.getConfiguration(); - const language = config.get('workbench.editor.languageDetection') ? vscode.env.language : config.get('window.menuBarVisibility'); + const language = vscode.env.language; + // 'en' stands for English, 'zh-cn' stands for Simplified Chinese return language; } },