Есть такой код: def_done = 0 def get_user_lng(): def_done = 0 while def_done == 0: user_lng = input(user_lng_setup) user_lng = user_lng.replace(' ', '') user_lng = user_lng.lower() user_lng = re.sub(r'[0-9]*', '', user_lng) if user_lng == 'ru': exec(open('ru_ru.ini').read()) print(selected_lang) def_done += 1 elif user_lng == 'eng': exec(open('en_eng.ini').read()) print(selected_lang) def_done += 1 else: print(user_lng_setup_dntex) input() try: os.system('cls') except: os.system('clear') exec(open('ru_ru.ini').read()) get_user_lng() Code def_done = 0 def get_user_lng(): def_done = 0 while def_done == 0: user_lng = input(user_lng_setup) user_lng = user_lng.replace(' ', '') user_lng = user_lng.lower() user_lng = re.sub(r'[0-9]*', '', user_lng) if user_lng == 'ru': exec(open('ru_ru.ini').read()) print(selected_lang) def_done += 1 elif user_lng == 'eng': exec(open('en_eng.ini').read()) print(selected_lang) def_done += 1 else: print(user_lng_setup_dntex) input() try: os.system('cls') except: os.system('clear') exec(open('ru_ru.ini').read()) get_user_lng() Эта функция была создана для настройки языка программы через exec(open(file).read()) Внизу перед телом программы есть строчка: exec(open('ru_ru.ini').read()) Которая настраивает язык по умолчанию для корректного проведения функции get_user_lng. Проблема в том, что в ходе выполнения функция получает ввод ru либо en, и в зависимости от ввода должна применять .ini файлы содержащие перевод в формате: variable = 'text translation' Вообщем первый раз exec дефолтного языка происходит успешно, но потом когда ты выбираешь противоположный, он тупо не меняется. Выбрал en, а тебе пишет: Русский язык успешно установлен. Вот так. Есть тут питоноводы? В чем проблема кода?
если ты берешь информацию о текущей раскладке из win32api, то пофиксить дело будет нельзя. Это косяк именно этой библиотеки.
Где тут winapi? только re, забыл упомянуть мой косяк. А проблему решил просто вынеся exec из функции, заменив на return ru и return eng. Но за ответ спасибо.