Skip to content

Commit 7e52052

Browse files
🐛 fix(i18n): 优化本地化管理器实例获取逻辑
- 修改 getInstance 方法支持懒加载初始化 - 将 getMessageSafe 方法改为公开访问 - 移除未初始化时的错误抛出逻辑 -【重构】简化实例获取流程,提高代码健壮性
1 parent 4810b27 commit 7e52052

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/utils/LocalizationManager.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,14 @@ export class LocalizationManager {
5151

5252
/**
5353
* 获取本地化管理器实例
54+
* @param context 可选的 VSCode 插件上下文,如果实例未初始化则用于初始化
5455
* @returns LocalizationManager 实例
55-
* @throws 如果管理器未初始化则抛出错误
5656
*/
57-
public static getInstance(): LocalizationManager {
58-
if (!LocalizationManager.instance) {
59-
throw new Error(
60-
LocalizationManager.getMessageSafe(
61-
"localization.manager.not.initialized"
62-
)
63-
);
57+
public static getInstance(
58+
context?: vscode.ExtensionContext
59+
): LocalizationManager {
60+
if (!LocalizationManager.instance && context) {
61+
LocalizationManager.instance = new LocalizationManager(context);
6462
}
6563
return LocalizationManager.instance;
6664
}
@@ -70,7 +68,7 @@ export class LocalizationManager {
7068
* @param key 消息键
7169
* @returns 本地化消息,如果未找到则返回键名
7270
*/
73-
private static getMessageSafe(key: string): string {
71+
public static getMessageSafe(key: string): string {
7472
return this.instance?.messages[key] || key;
7573
}
7674

0 commit comments

Comments
 (0)