yellow1912:
You will have to store the customer preferred language somehow.
You can do something like this:
Create a language field in customer table, you can associate the default language there.
If the customer logged in, and choose a language (using the language sidebox etc) which is different from the language set in his/her setting, then you you make change in his/her setting.
The next time he/she visit and logged in, you can switch to his/her language automatically. You can also use this in the email sent out.
This is not easy job, but not very complicated.
I'd check if I can do this in the future, but now...
what if I send an html email to customer with a remote image (on my server)
on the GET I'll get the preferred language (but will it works ? will the webmail or the mail client let load a remote image ?)
(simplest for me)
Second I may select the default address country for people and send the email based on the country...
third I may use the IP address of the customer to geoip them, but... I don't know if I have an IP for every customer...