Programming/qt

QT 런타임중 언어 변경

구차니 2026. 5. 14. 17:49

아직 테스트는 못해봄.

일단 실행시에 LANG 으로 바꾸는건 해봤는데

실행중에 바꾸어야 할 것 같아서 찾아봄.

 

기존 translator을 제거(QApplication::removeTranslator)하고, 다시 install(위 적용 참조)한다. 
      
          app.removeTranslator(&translator);
          translator.load("lang/ko_kr");
          app.installTranslator(&translator);
      
    installTranslator하면, QEvent::LanguageChange이벤트가 발생한다. 이 이벤트로 번역문자열이 새로운 translator에 의해 적용되도록 한다. 
         
          void MainWindow::changeEvent(QEvent* event)
          {
              if (event->type() == QEvent::LanguageChange)
              {
                  // 디자이너에 의해 생성된 문자열
                  ui.retranslateUi(this);
            
                  // 코드에서 삽입한 문자열
                  retranslate();
              }
              QMainWindow::changeEvent(event);
          }

[링크 : https://dorigom.tistory.com/359]