Install geotool-detector
module:
$ npm install --save geotool-detector
Declare detector class:
var Detector = require('geotool-detector');
<script src="dist/js/geotool-detector.js" charset="utf-8"></script>
Declare detector class:
var Detector = geotool.Detector;
// create detector instance
var detector = new Detector({
geoCoders: [{
url: 'https://nominatim.openstreetmap.org/reverse',
buildParameters: function(data) {
return {
format: 'json',
lat: data.lat, lon: data.lng,
zoom: 18, addressdetails: 1
};
},
checkExpectation: function(response) {
return response.data.address &&
response.data.address.country_code;
},
transformResponse: function(response) {
return { country_code: response.data.address &&
response.data.address.country_code }
}
}],
geoipCheckers: [{
url: 'https://ipinfo.io/',
checkExpectation: function(response) {
return response.data && response.data.country;
},
transformResponse: function(response) {
return { country_code: response.data &&
response.data.country }
}
}, {
url: 'https://freegeoip.net/json/',
checkExpectation: function(response) {
return response.data && response.data.country_code;
},
transformResponse: function(response) {
return { country_code: response.data &&
response.data.country_code }
}
}]
});
// request detect() method
geodetector.detect({}, function(error, result) {
if (error) {
console.log(" * Console - Error: %s", JSON.stringify(error));
return;
}
console.log(" * Console - Result: %s", JSON.stringify(result));
var country_code = result && result.country_code;
if (country_code == 'VN' || country_code == 'vn') {
// display vietnamese version
} else {
// default for the others (english version)
}
});