• 0

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

لدي 4 اندكس ب 4 لغات اريد عندما يكون الزائر من امريكا يظهر اندمس بلغه معينه  
من الشرق الاوسط يظهر بلغه اخري وهكذا ....
شكرا لكم 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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

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

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

مرحبًا @Ahmed Bek Atiaa،

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

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

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

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن