Skip to content

Commit

Permalink
🐛 fix(i18n): 优化本地化管理器实例获取逻辑
Browse files Browse the repository at this point in the history
- 修改 getInstance 方法支持懒加载初始化
- 将 getMessageSafe 方法改为公开访问
- 移除未初始化时的错误抛出逻辑
-【重构】简化实例获取流程,提高代码健壮性
  • Loading branch information
littleCareless committed Jan 22, 2025
1 parent 4810b27 commit 7e52052
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions src/utils/LocalizationManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,14 @@ export class LocalizationManager {

/**
* 获取本地化管理器实例
* @param context 可选的 VSCode 插件上下文,如果实例未初始化则用于初始化
* @returns LocalizationManager 实例
* @throws 如果管理器未初始化则抛出错误
*/
public static getInstance(): LocalizationManager {
if (!LocalizationManager.instance) {
throw new Error(
LocalizationManager.getMessageSafe(
"localization.manager.not.initialized"
)
);
public static getInstance(
context?: vscode.ExtensionContext
): LocalizationManager {
if (!LocalizationManager.instance && context) {
LocalizationManager.instance = new LocalizationManager(context);
}
return LocalizationManager.instance;
}
Expand All @@ -70,7 +68,7 @@ export class LocalizationManager {
* @param key 消息键
* @returns 本地化消息,如果未找到则返回键名
*/
private static getMessageSafe(key: string): string {
public static getMessageSafe(key: string): string {
return this.instance?.messages[key] || key;
}

Expand Down

0 comments on commit 7e52052

Please sign in to comment.