MCPcopy Index your code
hub / github.com/BasicProtein/AugmentCode-Free / LanguageManager

Class LanguageManager

language_manager.py:13–144  ·  view source on GitHub ↗

Manages language switching and internationalization

Source from the content-addressed store, hash-verified

11
12
13class LanguageManager:
14 """Manages language switching and internationalization"""
15
16 def __init__(self, config_manager=None):
17 self.config_manager = config_manager
18 self.current_language = "zh_CN" # Default language
19 self.languages = {}
20 self.available_languages = {
21 "zh_CN": "简体中文",
22 "en_US": "English"
23 }
24
25 # Load languages
26 self._load_languages()
27
28 # Set language from config if available
29 if config_manager:
30 saved_language = config_manager.get_setting("language", "zh_CN")
31 self.set_language(saved_language)
32
33 def _load_languages(self):
34 """Load all available language files"""
35 # 使用绝对路径确保跨平台兼容性
36 languages_dir = Path(__file__).resolve().parent / "languages"
37
38 for lang_code in self.available_languages.keys():
39 lang_file = languages_dir / f"{lang_code}.json"
40 if lang_file.exists():
41 try:
42 with open(lang_file, 'r', encoding='utf-8') as f:
43 self.languages[lang_code] = json.load(f)
44 except Exception as e:
45 print(f"Error loading language file {lang_file}: {e}")
46 # Fallback to empty dict
47 self.languages[lang_code] = {}
48 else:
49 print(f"Language file not found: {lang_file}")
50 print(f"Expected path: {lang_file.resolve()}")
51 self.languages[lang_code] = {}
52
53 def set_language(self, language_code: str):
54 """Set current language"""
55 if language_code in self.available_languages:
56 self.current_language = language_code
57
58 # Save to config if available
59 if self.config_manager:
60 self.config_manager.set_setting("language", language_code)
61 else:
62 print(f"Unsupported language: {language_code}")
63
64 def get_language(self) -> str:
65 """Get current language code"""
66 return self.current_language
67
68 def get_available_languages(self) -> Dict[str, str]:
69 """Get available languages dict"""
70 return self.available_languages.copy()

Callers 1

get_language_managerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected