2016-04-14 8 views
23

मेरा आवेदन कोणीय-अनुवाद, कोणीय-UI-राउटर और टेम्पलेट्स का उपयोग कर रहा है। Index.html के अपवाद के साथ एप्लिकेशन एचटीएमएल पेज टेम्पलेट्स में पैक किए गए हैं और एस 3 द्वारा समर्थित अमेज़ॅन क्लाउडफ्रंट से परोसे जाते हैं। मैं क्या करना चाहता हूं डोमेन नाम के बाद दो अक्षर कोड के आधार पर भाषा को गतिशील रूप से स्विच करने का तरीका ढूंढना और यदि संभव हो तो उपयोगकर्ता लोकेल पर भी उठाएं और डिफ़ॉल्ट स्विचिंग के लिए इसका उपयोग करें।मैं कोणीय-अनुवाद और कोणीय-यूई-राउटर के साथ गतिशील रूप से भाषाओं को कैसे बदल सकता हूं?

कारण मैं एसईओ प्रयोजनों के लिए ऐसा करना चाहता हूं क्योंकि मैंने पढ़ा है कि Google नीचे दिए गए पते में देश कोड डालने की सिफारिश करता है।

यहाँ मैं अब तक है:

रूटर फ़ाइल

var home = { 
     name: 'home', 
     url: '/home/' 
    }; 

    var homeAccess = { 
     name: 'home.access', 
     url: 'access', 
     views: { 
      '[email protected]': { 
       templateProvider: ['$templateCache', ($templateCache) => { 
        return $templateCache.get('webapi.html'); 
       }], 
      } 
     } 
    }; 

किसी तरह मैं इसे बनाने के लिए इतना है कि जब एक खोज इंजन चुनता चाहते हैं:

www.example.com/de/home/webapi or 
www.example.com/en/home/webapi or 
www.example.com/fr/home/webapi 

कि कोणीय रूटर webapi.html फ़ाइल की सेवा करने से पहले उचित भाषा फ़ाइल में स्विच करता है।

मैं यह कैसे कर सकता हूं इस पर कोई सुझाव बहुत सराहना की जाएगी। आदर्श रूप से मैं एक भाषा फ़ाइल स्विचर के साथ एक साधारण उदाहरण देखना चाहता हूं जो समुदाय में दूसरों की मदद करेगा और समुदाय की जरूरतों को पूरा करने में मदद करेगा।

कृपया ध्यान दें कि वहाँ एक और इसी तरह सवाल है:

Localize URL's with ui-router and angular-translate

जवाब

वहाँ अच्छे हैं लेकिन मैं यह भी आशा करती हूं कि है कि इस सवाल को खोलने के द्वारा मैं एक और भी बेहतर और अधिक अद्यतन जवाब प्राप्त कर सकते हैं, शायद कुछ अंतर्राष्ट्रीयकरण एसईओ युक्तियों में फेंक दिया गया। मुझे लगता है कि यह एक महत्वपूर्ण बात है कि इस मंच पर लोगों को बेहतर बनाने में अधिक उत्तर दें।

$stateProvider.state('common', { 
    abstract: true, 
    url: '/{lang:(?:es|en)}' 
}); 

और के बाद अपने home राज्य सामान्य से बच्चे होगा::

$stateProvider.state('common.home', { 
    url: '/home', 
    templateUrl: 'views/home.html', 
}); 

अब आप सेटअप कर सकते हैं

+1

बेस टैग के बारे में क्या? यदि आप इसे उचित भाषा में बदलते हैं तो इसे काम करना चाहिए? या इसे अपने डोमेन नाम की जड़ पर इंगित करें और वापसी $ templateCache.get (myLocale + '/ home/webapi.html') का उपयोग करें; – Walfrat

+0

मैं कहूंगा कि जिस संदर्भ में आप संदर्भ दे रहे हैं, उसके पास एक अच्छी तरह से समझाया गया जवाब है (http://stackoverflow.com/questions/24281652/localize-urls-with-ui-router-and-angular-translate?rq=1)। आप कुछ और पता लगा सकते हैं, लेकिन आपको पता होना चाहिए कि एसईओ बिंदु दृश्य से कोणीय 1.x अभी भी अतिरिक्त कार्यों के बिना पर्याप्त परिणाम प्रदान नहीं करेगा।यदि आप पूर्ण एसईओ प्रभाव प्राप्त करना चाहते हैं तो पूर्व-प्रतिपादन जैसे। सेवाओं में से एक जिसका आप उपयोग कर सकते हैं: https://prerender.io/ – shershen

उत्तर

10

आप आम सार ui रूटर राज्य और सेटअप वहाँ अपनी भाषा सेटिंग्स बनाने की जरूरत राज्य परिवर्तन घटना पर भाषा स्विच:

app.run(($rootScope) => { 
    $rootScope.$on('$stateChangeSuccess', (event, toState, toParams) => { 
    if(toParams.lang && $translate.use() !== toParams.lang){ 
     $translate.use(toParams.lang); 
    } 
    }); 
}); 

[1 9 .04.2016] मैं घोषणा करता हूं कि Google अभी भी आपके वेब एप्लिकेशन को चालाक तरीके से पार्स करने में सक्षम नहीं है। संबंधित प्रश्न - SEO: How does Google index Angular applications 2016

तो मैं के साथ-साथ @shershen मैं बेहतर एसईओ के लिए prerender.io सेवा का उपयोग करने की सलाह देते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे