اذهب إلى المحتوى
  • 0

لدي 4 اندكس ب 4 لغات اريد عندما يكون الزائر من امريكا يظهر اندكس بلغه معينه

احمد عطية5

السؤال

Recommended Posts

  • 1

السلام عليكم 

في البداية تحتاج الى تحديد الدول التي تريدها  وليكن 4 "فرنسا - المانيا - أمريكا - السعودية  " و تجعل لغة  واحده منهم افتراضية 

  • الافتراضية "الرئيسية اللغة العربية مثلا " فاذا كان الزائر من الهند او الصين مثلا سيجدها عربية يمكنك تحديد أي لغة تريد 
  • الشرق الأوسط هو مجموعة من الدول لذلك يجب إضافة كل دولة على حدا  
  • تحديد منطقة الزائر و بلدة عن طريق 
    • geolocation
    • ip address api 
    • navigator.language
  • استخدام الصفحة الرئيسية ذات اللغة الافتراضية للتوجيه فاذا كان ضمن الدول ذات اللغات و الصفحات المخصصة تم تحويله اليها او يظل في الصفحة الافتراضية 

geolocation

هو خاصية من خواص المتصفح تسمح بطلب اظهار الموقع من المستخدم و يشترط فيها إعطاء الزائر تصريحا بعرض موقعه 

var x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}

ip address api

Edit in JSFiddle
JavaScript
HTML
Result
/**
 * Get the user IP throught the webkitRTCPeerConnection
 * @param onNewIP {Function} listener function to expose the IP locally
 * @return undefined
 */
function getUserIP(onNewIP) { //  onNewIp - your listener function for new IPs
    //compatibility for firefox and chrome
    var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
    var pc = new myPeerConnection({
        iceServers: []
    }),
    noop = function() {},
    localIPs = {},
    ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
    key;

    function iterateIP(ip) {
        if (!localIPs[ip]) onNewIP(ip);
        localIPs[ip] = true;
    }

     //create a bogus data channel
    pc.createDataChannel("");

    // create offer and set local description
    pc.createOffer(function(sdp) {
        sdp.sdp.split('\n').forEach(function(line) {
            if (line.indexOf('candidate') < 0) return;
            line.match(ipRegex).forEach(iterateIP);
        });
        
        pc.setLocalDescription(sdp, noop, noop);
    }, noop); 

    //listen for candidate events
    pc.onicecandidate = function(ice) {
        if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
        ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
    };
}

// Usage

getUserIP(function(ip){
		document.getElementById("ip").innerHTML = 'Got your IP ! : '  + ip + " | verify in http://www.whatismypublicip.com/";
});

ثم استخدام مكتبة للبحث عن البلد عن طريق ال ip مثل 

https://www.ultratools.com/tools/geoIp

و تتميز انها لا تحتاج الى تصريح من المستخدم 

navigator.language

يساعدك هذا أيضا على تحديد لغة الزائر الخاص بك و تحديد اللغات الافتراضية و لكن ليس على حسب الدولة 

فمن الممكن ان أكون مقيم بدولة عربية و المتصفح باللغة الإنجليزية او أكون في دولة اجنبية و المتصفح بلغتي الام و هي العربية 

و هذه الأداة افضل طالما هدفك هو اللغة ليس المكان  و هنا تحدد اللغات و ليس البلدان و الاماكن 

navigator.language
var language = window.navigator.userLanguage || window.navigator.language;
alert(language); //works IE/SAFARI/CHROME/FF

اذا كان لديك المزيد من الاستفسارات برجاء اطرحها هنا 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحبًا @Ahmed Bek Atiaa،

يمكنك ذلك من خلال أخذ الـ API الذي قام الدخول به الشخص إلى الموقع الخاص بك. وتعيين اللغات التي سوف تظهر تبعًا للـ API.

يوجد الكثير من المواقع التي يمكنها تحديد الـ API-IP القادم منها الشخص مثل هذا الموقع https://ip-api.com/،

من ثم يمكنك إضافت root من أجل عملية الـ Reindex ليتم توجيه الشخص إلى الـ index الخاص باللغة لديك.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...