localizate patch
This commit is contained in:
		
							parent
							
								
									8f251dcf91
								
							
						
					
					
						commit
						95e39b72cf
					
				@ -11,12 +11,15 @@ class Localizer:
 | 
			
		||||
        self.locales_path = os.path.join("app/locales")
 | 
			
		||||
        self.translations = {}
 | 
			
		||||
 | 
			
		||||
        self.lang = self.settings.value("language", ('ru', 'Русский'))
 | 
			
		||||
        lang_code = self.settings.value("language", "ru")
 | 
			
		||||
        available_langs = self.get_available_languages()
 | 
			
		||||
        if self.lang not in available_langs:
 | 
			
		||||
            self.lang = available_langs[0] if available_langs else ('ru', 'Русский')
 | 
			
		||||
        available_codes = [code for code, _ in available_langs]
 | 
			
		||||
 | 
			
		||||
        self.load_language(self.lang[0])
 | 
			
		||||
        if lang_code not in available_codes:
 | 
			
		||||
            lang_code = available_codes[0] if available_codes else "ru"
 | 
			
		||||
 | 
			
		||||
        self.lang = lang_code
 | 
			
		||||
        self.load_language(self.lang)
 | 
			
		||||
 | 
			
		||||
    def get_available_languages(self):
 | 
			
		||||
        """
 | 
			
		||||
@ -41,17 +44,19 @@ class Localizer:
 | 
			
		||||
        if config.DEBUG: print("langs", langs)
 | 
			
		||||
        return langs
 | 
			
		||||
 | 
			
		||||
    def load_language(self, lang):
 | 
			
		||||
    def load_language(self, lang_code):
 | 
			
		||||
        """Загружает перевод из JSON-файла"""
 | 
			
		||||
        lang_file = os.path.join(self.locales_path, f"{lang}.json")
 | 
			
		||||
        lang_file = os.path.join(self.locales_path, f"{lang_code}.json")
 | 
			
		||||
        if os.path.exists(lang_file):
 | 
			
		||||
            with open(lang_file, "r", encoding="utf-8") as file:
 | 
			
		||||
                self.translations = json.load(file)
 | 
			
		||||
            self.lang = lang
 | 
			
		||||
            self.settings.setValue("language", lang[0])
 | 
			
		||||
            if config.DEBUG: print(f"[Localizer.load_language] ✅ Язык загружен: {lang}")
 | 
			
		||||
            self.lang = lang_code
 | 
			
		||||
            self.settings.setValue("language", lang_code)
 | 
			
		||||
            if config.DEBUG:
 | 
			
		||||
                print(f"[Localizer.load_language] ✅ Язык загружен: {lang_code}")
 | 
			
		||||
        else:
 | 
			
		||||
            if config.DEBUG: print(f"[Localizer.load_language] ❌ Файл локализации не найден: {lang_file}")
 | 
			
		||||
            if config.DEBUG:
 | 
			
		||||
                print(f"[Localizer.load_language] ❌ Файл локализации не найден: {lang_file}")
 | 
			
		||||
 | 
			
		||||
    def translate(self, key, code=None):
 | 
			
		||||
        """Возвращает перевод слова"""
 | 
			
		||||
@ -62,9 +67,6 @@ class Localizer:
 | 
			
		||||
 | 
			
		||||
    def switch_language(self, lang):
 | 
			
		||||
        """Переключает языки, если язык доступен"""
 | 
			
		||||
        if isinstance(lang, (tuple, list)):
 | 
			
		||||
            lang = lang[0]
 | 
			
		||||
 | 
			
		||||
        available_langs = [code for code, _ in self.get_available_languages()]
 | 
			
		||||
        if lang in available_langs:
 | 
			
		||||
            self.load_language(lang)
 | 
			
		||||
 | 
			
		||||
@ -258,6 +258,7 @@ class LoginView(QWidget):
 | 
			
		||||
 | 
			
		||||
    def change_language(self, display_name):
 | 
			
		||||
        lang_code = self.lang_map.get(display_name)
 | 
			
		||||
        print("lang_code", lang_code)
 | 
			
		||||
        if lang_code:
 | 
			
		||||
            localizer.switch_language(lang_code)
 | 
			
		||||
            self.update_ui_language()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user