Проблема с динамическим переводом



  • Всем привет!
    Прошу помощи. Буду очень благодарен.

    Создал я динамический перевод при помощи QtLinguist. Поначалу было хорошо, пока одного дня Qt не начал вместо нормального русского перевода писать кракозябры и причём не везде. С английским переводом всё хорошо и никаких крякозябр нет.

    На обычных лейбах с переводом всё хорошо, а вот с кнопками, с виджетом ToolTip (есть на скриншоте) обнаруживаются крякозябры

    Qt версии 5.10.0

    Начало программы где язык выбирается
    0_1554981468408_6fe185c7-3bc6-461e-bb61-240210537781-изображение.png

    Внутри программы
    0_1554981119078_4b5abd74-515f-412e-9293-d47f6decffdf-изображение.png

    Буду очень благодарен за помощь :)



  • Похоже что-то с кодировкой. У вас какой кодек задан для tr()?
    Я помню когда-то давно у меня была похожая проблема, надо было в main.cpp добавить:

    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    

    И файлы исходников/переводов тоже должны быть в UTF-8.



  • @veryqtperson said in Проблема с динамическим переводом:

    Похоже что-то с кодировкой. У вас какой кодек задан для tr()?
    Я помню когда-то давно у меня была похожая проблема, надо было в main.cpp добавить:
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

    И файлы исходников/переводов тоже должны быть в UTF-8.

    Блин. Всё чётко и отлично, только в QTextCodec нету

    setCodecForTr
    

    Я написал так:

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    

    И с первого раза всё отлично заработало. Огромное спасибо :)

    Только маленький вопрос: почему именно у меня так было, а когда я проверял на остальных компьютерах, то не было?



  • только в QTextCodec нету

    Ах да, его же удалили в Qt 5.

    когда я проверял на остальных компьютерах, то не было

    А операционная система на других компьютерах такая же была? Я вообще в этом почти не разбираюсь, но могу предположить что на других кодировка системной локали совпадала с кодировкой в исходниках проекта, а на вашем компьютере не совпадает, потому нужно явно указать кодек для текста.



  • @veryqtperson said in Проблема с динамическим переводом:

    А операционная система на других компьютерах такая же была? Я вообще в этом почти не разбираюсь, но могу предположить что на других кодировка системной локали совпадала с кодировкой в исходниках проекта, а на вашем компьютере не совпадает, потому нужно явно указать кодек для текста.

    Операционка абсолютно одинакова. Один и тот же образ винды был + ещё и на других проверял. По началу у меня всё тоже нормально было, но через время появились вот такие крякозябры.

    И при всём при этом крякозябры не везде


 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.