Better user language detection, placeholders in translated strings

I modified that to my needs. Maybe you want to pull something.

You will have to cherry pick some stuff from here.