2

I’m building a website that uses geolocation in HTML5 to provide a service specific to the region in which the user is. Here is what I have been doing: I use the Javascript in this SO question to get country and administrative region names. Then I search the country and region names in a database and it returns location-specific data that I can display.

Here is the script:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
    var region = "";
    var country = "";
    function getLocation()
    {
        if (navigator.geolocation)
          {
              navigator.geolocation.getCurrentPosition(showPosition,noGeolocation);
          } else {
              ...
          }
    }
    function showPosition(position)
    {
        var geocoder = new google.maps.Geocoder();
        var latlong = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
        geocoder.geocode({'latLng': latlong}, function(results, status) {
              if (status == google.maps.GeocoderStatus.OK) {
                  if (results[0]) {
                    for (var i = 0; i < results[0].address_components.length; i++)
                    {
                        var longname = results[0].address_components[i].long_name;
                        var type = results[0].address_components[i].types;
                        if (type.indexOf("administrative_area_level_1") != -1)
                        {
                            region = longname;
                        }
                        if (type.indexOf("country") != -1)
                        {
                            country = longname;
                        }
                      }
              }
        });
    }
    function noGeolocation()
    {
        ...
    }

    getLocation();
</script>

This script is working fine. I had no problem with it, until I used an OS and browser set to a different languages. The script then returned the country and region names in that language. Of course, I couldnt find any match in my database.

So, the question(s) is (are): is there a way to get language-independent country and region codes from google reverse geolocation? or is there a way to always get it in english? am I better off using IP geolocation then? or should I use a totally different method?

Thanks for the help.