Another solution that not require hacking Qt is to alias QApplication::translate method:
inline QString myTr(const char* context, const char* key, const char* disambiguation = 0, int n = -1) {
return QApplication::translate(context, key, disambiguation, n);
}
and then get translated text with:
myTr("QShortcut", "Help");
Such texts are invisible for lupdate.