evaluate $LANGUAGE within .onInit
I set $LANGUAGE in .onInit and some lines below I possibly show the first message box. This message box is always shown in english (because my windows UI is set to english) -- even if I select another language in the language dialog before. I show this language dialog myself (own function) and set $LANGUAGE directly after the dialog is closed.

It seems that NSIS evaluates $LANGUAGE only at end of .onInit so message boxes in .onInit will show always the automatically detected language. (NSIS docs say this, too.)

How can I force re-evaluation of $LANGUAGE (or why doesn't NSIS re-evaluate every time $LANGUAGE is changed)?