9
votes

Moyen le plus rapide de détecter le pays de l'utilisateur

J'ai besoin de détecter le pays de l'utilisateur et d'afficher la langue du site Web par lui / son pays. (Turc pour les Turcs, anglais pour tous les autres)

Comment puis-je faire ce moyen le plus rapide? La performance est importante pour moi.

Je cherche IPInfodb 'API , existe-t-il une meilleure alternative?

(J'utilise php)


3 commentaires

Vous souhaitez presque certainement utiliser les paramètres de langue préférés du navigateur au lieu d'essayer de déterminer où se trouve l'utilisateur.


Comme le commentaire de @ WOOBLE - Ce n'est pas une bonne idée. J'habite au Canada - Quelle est ma langue préférée? Si je viens de Québec, cela pourrait être français, ou je pourrais être italien ou allemand ... où je vis ne détermine pas ma langue préférée. Si vous le souhaitez, vous pouvez ajouter un lien qui permet à l'utilisateur de passer à la langue que vous «penser» qu'ils veulent. E.g.: Préférieur Français?


"Comment puis-je faire ce moyen le plus rapide" est faux. Vous devriez faire cela une fois par visite et définir un cookie. Et veuillez permettre aux gens de remplacer votre paramètre par défaut.


6 Réponses :


4
votes

Vous pouvez utiliser l'API ici ici http://www.hostip.info/use.htmlled Si cela vous convient de s'appuyer sur un site externe.

Vous pouvez également utiliser API GeOIP PHP

Bien sûr, la mise en œuvre de l'orbite de script liée peut simplement vous faire sauver les tracas de passer par l'API.

bonne chance.


0 commentaires

1
votes

Comme d'autres ont souligné, il serait probablement une meilleure idée de vérifier le < Code> Accepter-Langue HTTP HTTP pour Turc. Si c'est la langue préférée, servez-la. Sinon servir l'anglais. Voici Certains code .


0 commentaires

2
votes

La meilleure façon de faire cela que j'ai trouvé consiste à utiliser la bibliothèque "GAE-IP-Pays": https://github.com/andris9/gae-ip -À-pays / arborescence / maître / src / ip_files

Exemple d'utilisation (vous devez copier le répertoire "IP_Files" sur votre serveur): P>

function iptocountry($ip) {    
    $numbers = preg_split( "/\./", $ip);    
    include("./ip_files/".$numbers[0].".php");
    $code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);    
    foreach($ranges as $key => $value){
        if($key<=$code){
            if($ranges[$key][0]>=$code){$country=$ranges[$key][1];break;}
        }
    }
    return $country;
}

$country=iptocountry($_SERVER['REMOTE_ADDR']);
echo $country;


0 commentaires

0
votes

J'ai codé les éléments suivants à l'aide de la langue de l'acceptation comme d'autres utilisateurs signalés: xxx

un simple xxx

retour dans mon cas: xxx

Vous pouvez ensuite définir un tableau comme celui-ci pour passer à la valeur de votre langue interne, par exemple: xxx

Ils sont déjà triés par des préférences de l'utilisateur.

Si toutes les langues n'existent pas dans le tableau, vous pouvez accéder à la langue par défaut de votre site Web. Ceci est également valide si le navigateur n'envoie pas l'en-tête de langue d'acceptation.

Une autre version supprimant les valeurs de la sous-région xxx

il retournerait Dans mon cas xxx


0 commentaires

7
votes

Eh bien pour les personnes qui pourraient visiter en 2017, c'est une solution extrêmement simple à utiliser

<button class="btn dropdown-toggle" style="cursor:pointer;z-index:1000!important;margin-top:-67px;background:none!important;font-size:1.4em;" onclick="window.location.href='language'">
(a)  <?php
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'];
}
$url = "http://api.wipmania.com/".$ip;
(h) $country = file_get_contents($url); //ISO code for Nigeria it is NG check your country ISO code
?>

<?php if ($country == ""){
echo "Country not found";   
} else { ?>
<script>
var map = "<?php echo $country ?>";
$.ajax({
type : 'POST', 
url : 'http://www.mowemy.com/countryflag.php',
data :  {map: map}, 
success : function(r) { 
//console.log("success: " + r); 
$('#mumil').html(r); 
} })
</script>
<?php } ?>

<div id ="mumil" style="font-size:13px!important;margin-top:5px;"></div>
</button>


0 commentaires

0
votes

Voici la voie directe que j'aime utiliser xxx

visiter Ce site pour plus d'informations


1 commentaires

Je ne vois rien de sortie sortir de cet échantillon