Событие Qt LanguageChange — узнай новый язык

Когда у меня есть changeEvent(QEvent* event) с типом получения event->type() == QEvent::LanguageChangeКак я могу получить информацию о том, что нового языка в моем приложении?

1

Решение

Qt не имеет объекта для представления языка приложения. Таким образом, вы должны реализовать это самостоятельно.

Обычно changeEvent(QEvent* event) с типом QEvent::LanguageChange был вызван installTranslator(QTranslator*) поэтому вы должны знать, какие языки загружены в переводчик, и хранить их локально.

0

Другие решения

Вы можете сравнить переведенную строку с ее известными переводами:

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
...
}
}
1

По вопросам рекламы [email protected]