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) P>
Comment puis-je faire ce moyen le plus rapide? La performance est importante pour moi. p>
Je cherche IPInfodb 'API , existe-t-il une meilleure alternative? P>
(J'utilise php) p>
6 Réponses :
Vous pouvez utiliser l'API ici ici http://www.hostip.info/use.htmlled Si cela vous convient de s'appuyer sur un site externe. P>
Vous pouvez également utiliser API GeOIP PHP P>
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. P>
bonne chance. P>
Comme d'autres ont souligné, il serait probablement une meilleure idée de vérifier le < Code> Accepter-Langue Code> HTTP HTTP pour Turc. Si c'est la langue préférée, servez-la. Sinon servir l'anglais. Voici Certains code . P>
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;
J'ai codé les éléments suivants à l'aide de la langue de l'acceptation comme d'autres utilisateurs signalés: un simple p> retour dans mon cas: p> Vous pouvez ensuite définir un tableau comme celui-ci pour passer à la valeur de votre langue interne, par exemple: p> Ils sont déjà triés par des préférences de l'utilisateur. P> 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. P> Une autre version supprimant les valeurs de la sous-région p> il retournerait Dans mon cas p>
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>
Voici la voie directe que j'aime utiliser visiter Ce site pour plus d'informations p> p>
Je ne vois rien de sortie sortir de cet échantillon
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 i> par visite et définir un cookie. Et veuillez permettre aux gens de remplacer votre paramètre par défaut.