2014-07-10 12 views
10

मैं पॉलिमर के साथ एक वेबपैप बनाने जा रहा हूं। उस वेबपैप के लिए मुझे स्थानीयकरण की आवश्यकता है। क्या स्थानीयकरण करने का कोई पॉलिमर तरीका है? क्या किसी ने कभी पॉलिमर वेबपैप में स्थानीयकरण किया है?पॉलिमर में स्थानीयकरण?

+0

मैं एल 20 एन का उपयोग करता हूं। यहां देखें: http: //stackoverflow.com/questions/35677198/tutorial-solution-for-node-js-polymer-i18n-based-on-l20n-library – AlexNasonov

उत्तर

0

मैंने अपने आप पर एक कार्यान्वयन बनाया। देखकर मैंने जो किया वह करना मुश्किल नहीं है।

13

I18n और l10n मेरी टू-डू सूची पर भी हैं। वर्तमान में मैं AngularJS से पॉलिमर तक एक ऐप पोर्ट कर रहा हूं। बैक एंड रेल पर रूबी है। मैं i18n-js मणि का उपयोग करता हूं जो सभी अनुवादों के साथ I18n ऑब्जेक्ट वाली एक बड़ी जावास्क्रिप्ट फ़ाइल में रेल अनुवाद फ़ाइलों (en.yml, de.yml और इतने पर) को परिवर्तित करता है। यह मणि पाठ अनुवाद और मूल्य स्थानीयकरण करने के लिए एक जावास्क्रिप्ट लाइब्रेरी भी प्रदान करता है। लेकिन अन्य जावास्क्रिप्ट पुस्तकालय भी समान कार्यक्षमता प्रदान करते हैं।

वर्तमान लोकेल HTTP अनुरोध की प्रतिक्रिया से सेट है, उपयोगकर्ताओं को स्वीकार करें-भाषा शीर्षलेख।

इस बिंदु तक विशिष्ट पॉलिमर विशिष्ट नहीं है।

मैंने फिर वैश्विक पॉलिमर अभिव्यक्ति फ़िल्टर का एक समूह बनाया जो उनके इनपुट स्ट्रिंग पर विभिन्न लोकेल ट्रांसफॉर्मेशन करता है। यह वही तरीका है जिसे मैंने एंगुलरजेएस एप्लिकेशन में उपयोग करना सीखा है। अनुवाद फिल्टर इस प्रकार की तरह लग रहा

PolymerExpressions.prototype.i18n = function(key) { 
    return I18n.t(key); 
}; 

(I18n.t JavaScript लाइब्रेरी का अनुवाद समारोह है) और इसलिए

<paper-button label="{{ 'action.help' | i18n }}"></paper-button> 

एक तारीख स्थानीयकरण

{{ someDate | i18n_date('short') }} 

के रूप में लिखा जा सकता है की तरह प्रयोग किया जाता है मैंने एक पॉलिमर तत्व में i18n फ़िल्टर और अतिरिक्त सहायक कार्यों को पैक किया है, इसलिए मैं इस तत्व को किसी अन्य तत्व में भी शामिल कर सकता हूं और अनुवाद फ़ंक्शन का उपयोग कर सकता हूं एनएस इसके जावास्क्रिप्ट कोड के भीतर से।

i18n तत्व भी मेरे मुख्य ऐप तत्व में शामिल है जहां यह I18n लाइब्रेरी को प्रारंभ करता है और डिफ़ॉल्ट और वर्तमान लोकेल सेट करता है।

+0

यह बहुत अच्छा लग रहा है! क्या आप अपना पैकेज गिटहब पर रखेंगे? –

+0

@dirk यह बहुत अच्छा लगता है। क्या आप कोड को दुनिया के साथ साझा कर सकते हैं? इस समय वहां बहुत कुछ नहीं है। –

0

Polymer से अवगत नहीं है- मैं i18n कर रहा हूं, मैं सुझाव देता हूं कि सर्वर-साइड कर रहा हूं।

यदि फ्रेमवर्क Spring है, तो मैं कस्टम तत्वों को jsp के रूप में कार्यान्वित करता हूं, और i12n को सामान्य रूप से <spring:message /> टैग के साथ संभालता हूं।

केवल चेतावनी यह है कि आवेदन की भाषा को स्विच करने के लिए एक पूर्ण रीलोड की आवश्यकता होगी। लेकिन भाषा स्विचिंग आमतौर पर अक्सर नहीं की जाती है, इसलिए मैं इसे किसी समस्या के रूप में नहीं सोचता।

0

पॉलिमर 1.0 के लिए मैंने अभी एक सरल (विकास में भारी) तत्व प्रकाशित किया है (इसे gitlab पर देखें या इसके बारे में here पर पढ़ें)।यह अनुवाद फ़ाइलें एसिंक्रोनस रूप से लोड करता है और उपयोग काफी सरल है:

<!-- Import it in head --> 
<link rel="import" href="bower_components/quaintous-i18n/quaintous-i18n.html"> 
<!-- initialize it in body --> 
<quaintous-i18n locales-path="/locales/fa.json"></quaintous-i18n> 

अब आप इसे विभिन्न तरीकों से उपयोग कर सकते हैं:

  • अभिकलन गुण में: बस अपने तत्व behavior रूप I18N जोड़ सकते हैं और अपने डेटा का अनुवाद बाइंडिंग, उदाहरण के लिए {{__('hello')}}
  • वैश्विक संदर्भ में बस I18N ऑब्जेक्ट का उपयोग करें, उदा। I18N.__('hello')