How can I load a different versions of the site according to their location? As an example English as the default language for users from New Zeland where Malay as the default for users from Singapore?
WPML currently offers the ability to do an automatic browser language redirect which essentially detects the visitor's browser language and then if that language exists in your site it redirects them to it.
ex. Browser is set to Italian, and you have a site with Italian/English, once I visit I will be redirected to Italian.
The downfall with this is that it's based on the visitor's browser language rather than their location.
At the moment Geolocation is possible with custom coding which does fall beyond the scope of our support but perhaps I can point you in the right direction.
1. Use a plugin or PHP script to look up the IP and match it to a country. I don't have any specific recommendations but this is what I found: