I put everything in correct order...
The error message you got means you have not got everything in the correct order.
As I said earlier, look at the MultiLanguage.nsi script - look at where the .onInit function appears and then look at where it appears in your script.
If .onInit is in the wrong place, you'll get the "unknown variable/constant "{MUI_LANGDLL_PUSHLIST}" detected" error message.
The MUI ReadMe gives step-by-step instructions explaining how to use MUI but I don't think it stresses that the order in the ReadMe is the order you should use in your script.
The MUI ReadMe can seem a bit complicated so you may need to read it more than once (I've lost count of the number of times I've read it - I always seem to find something new every time I read it).