Загрузка...

Проблема с настройкой локализации приложения на Python 3.6.1

Тема в разделе Программирование создана пользователем ArtelLSK 19 фев 2018. 182 просмотра

  1. ArtelLSK
    ArtelLSK Автор темы 19 фев 2018 У меня симпатий: мало(( 28 4 окт 2017
    Есть такой код:

    Код
    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, а тебе пишет: Русский язык успешно установлен. Вот так.
    Есть тут питоноводы? В чем проблема кода?
     
  2. NoSmok
    NoSmok 19 фев 2018 Заблокирован(а) 5874 19 ноя 2016
    Это слишком сложно для меня
    могу в паинте только пиписьки рисовать
     
  3. ayrimiot
    ayrimiot 19 фев 2018 Доброго дня тебе. 8 9 янв 2018
    если ты берешь информацию о текущей раскладке из win32api, то пофиксить дело будет нельзя. Это косяк именно этой библиотеки.
     
  4. ArtelLSK
    ArtelLSK Автор темы 19 фев 2018 У меня симпатий: мало(( 28 4 окт 2017
    Где тут winapi? только re, забыл упомянуть мой косяк.
    А проблему решил просто вынеся exec из функции, заменив на return ru и return eng.
    Но за ответ спасибо.
     
  5. ayrimiot
    ayrimiot 19 фев 2018 Доброго дня тебе. 8 9 янв 2018
    да не за что впринципе, прост вспомнил одну из своих неудач, если что....
     
Top
Загрузка...