You can use an API, in this case I used link , and do:
// descobrir o ip do utilizador
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$ip_test = '97.162.48.46';
$local_json = @file_get_contents('http://ip-api.com/json/' .$ip_test); // aqui usa o $ip, este é só para teste
$countries_en = array('gb', 'us'); // definir codigo iso2 dos paises para os quais o site será apresentado em inglês
$lang = 'pt'; // linguagem default
if($local_json !== false) {
$local_array = json_decode($local_json, true);
if($local_array !== null && isset($local_array['countryCode'])) {
if(in_array(strtolower($local_array['countryCode']), $countries_en)) {
$lang = 'en'; // definir site com a linguagem Inglês
}
}
}
echo $lang; // en, pois o país (neste exemplo) são os EUA, cujo código é US, está dentro do nosso array $countries_en
Note that on production server instead of $ip_test
it uses $ip