Когда у меня есть changeEvent(QEvent* event)
с типом получения event->type() == QEvent::LanguageChange
Как я могу получить информацию о том, что нового языка в моем приложении?
Qt не имеет объекта для представления языка приложения. Таким образом, вы должны реализовать это самостоятельно.
Обычно changeEvent(QEvent* event)
с типом QEvent::LanguageChange
был вызван installTranslator(QTranslator*)
поэтому вы должны знать, какие языки загружены в переводчик, и хранить их локально.
Вы можете сравнить переведенную строку с ее известными переводами:
void changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange) {
QString translated = QCoreApplication::translate("some context", "Button");
if (translated == "Button")
// language is English
else if (translated == "Кнопка")
// language is Russian
...
}
}