i18n doesn't work before QCoreApplication is created, hence statically initialized text is not translated.
Yes. Before the patch, the bottom help panel was shown untranslated in Ukrainian. After the patch, it is shown translated.
However, the whole structure of the messages after 958fdc0a2532e30e7edfd1ec71f63fd3c87b5d35 is a classic case of word puzzles . Anyway. it is better with this patch. So my +1.
Oh I see. I think lines 64-65 in particular violate this rule. Do the translators get to see the actual code, or do they just work with individual strings? In case of the former, I can leave a note to the translators in a comment.
They only see a string. In the cases where a string is short or potentially ambiguous (e.g. i18n("Shift:")), it's useful to provide some context, e.g. i18nc("Keyboard modifier key", "Shift:")