angular - कोणीय 5 अंतर्राष्ट्रीयकरण




internationalization ngx-translate (2)

यह देखने में समय बिताने के बाद, मैंने सोचा कि मैं ngx-translation और i18n ngx-translation बीच मिले मुख्य अंतरों को पोस्ट ngx-translation :

  • कोणीय केवल एक समय में एक भाषा के साथ काम करता है, आपको लैंग को बदलने के लिए एप्लिकेशन को पूरी तरह से पुनः लोड करना होगा। JIT समर्थन का अर्थ केवल यह है कि यह JIT के साथ काम करता है, लेकिन आपको अभी भी बूटस्ट्रैप पर अनुवाद प्रदान करना है क्योंकि यह संकलन के दौरान आपके टेम्प्लेट में पाठ को बदल देगा, जबकि यह lib बाइंडिंग का उपयोग करता है, जिसका अर्थ है कि आप किसी भी समय अनुवाद बदल सकते हैं । नकारात्मक पक्ष यह है कि बाइंडिंग स्मृति लेती है, इसलिए कोणीय तरीका अधिक प्रदर्शनकारी है। लेकिन अगर आप अपने घटकों के लिए OnPush का उपयोग करते हैं, तो आप शायद अंतर पर ध्यान नहीं देंगे
  • कोणीय केवल अब के लिए अपने टेम्पलेट्स में i18n का उपयोग करने का समर्थन करता है, मैं उस सुविधा पर काम कर रहा हूं जो आपको अपने कोड में इसका उपयोग करने की अनुमति देगा, लेकिन यह अभी भी प्रगति पर काम कर रहा है। यह lib कोड और टेम्प्लेट दोनों में काम करता है
  • कोणीय या तो XLIFF या XMB (दोनों XML प्रारूप) का समर्थन करता है, जबकि यह काम डिफ़ॉल्ट रूप से JSON का समर्थन करता है, लेकिन आप अपने स्वयं के लोडर को किसी भी प्रारूप का समर्थन करने के लिए लिख सकते हैं जो आप चाहते हैं (उदाहरण के लिए पीओ फ़ाइलों के लिए एक लोडर)। व्यक्तिगत रूप से, Json फाइलें इन अन्य प्रारूपों के बजाय पढ़ने के लिए काफी सीधे हैं, लेकिन यह बहुत बड़ी कमी नहीं है।
  • कोणीय ICU अभिव्यक्तियों (बहुवचन और चयन) का समर्थन करता है, लेकिन यह पुस्तकालय नहीं करता है
  • कोणीय कोणीय कोड सहित html प्लेसहोल्डर का समर्थन करता है, जबकि यह पुस्तकालय केवल नियमित html का समर्थन करता है (क्योंकि यह रनटाइम पर निष्पादित होता है, और संकलन के दौरान नहीं, और एंगुलर में कोई $ संकलन नहीं है जैसे कि AngularJS में था)
  • इस लाइब्रेरी की API अधिक पूर्ण है क्योंकि इसे रनटाइम पर निष्पादित किया जाता है यह अधिक चीजें (वेधशालाएं, घटनाएँ, ...) प्रदान कर सकती हैं, जो कि कोणीय की नहीं है (लेकिन वास्तव में आपको दिए गए अनुवादों को नहीं बदल सकते) एनएक्सएक्स-अनुवाद के निर्माता ने यह कहा है:

Ocombe ( Ocombe डेवलपर): @josersleal ने ठीक यही किया है, कोणीय टीम ने सभी के लिए i18n में सुधार करने के लिए मुझे काम पर रखा है, लेकिन कोर टीम के लिए 3 महीने तक काम करने के बाद, सीधे कोर में अपने दायित्व को एकीकृत करने का कोई तरीका नहीं है। आपको बता दें कि कोणीय i18n मेरे दायित्व से कहीं अधिक जटिल और विस्तृत है। यह बहुत अधिक जटिल सामानों को संभालता है, और यह उन सभी बगों और कमियों के बिना करता है जो मेरे काम की है। मैं समझता हूं कि यह निराशाजनक है कि कोर उतनी तेजी से विकसित नहीं होता है जितना कि एक पुस्तकालय कर सकता है, लेकिन उसके कारण हैं, और पहला यह है कि आप किसी चीज को लागू नहीं कर सकते हैं और जब भी आप इसे देखते हैं तो इसे बदल सकते हैं। उदाहरण। हर चीज की पूरी तरह से योजना और विचार करना होता है। फिर भी, आपके पास अधिकांश चीजें होंगी जो यह ब्याज भविष्य में कोर में कर सकती हैं, लेकिन हमें दुर्भाग्य से मिलने में एक साल लग सकता है। अच्छी खबर यह है कि यह मेरे अनुभवहीन कार्यान्वयन से बहुत बेहतर है।

यह एनजीएक्स-ट्रांसलेशन और एंगुलर के i18n के बीच मुख्य अंतर पर चर्चा करने के लिए एक अच्छा लेख है: here

I18n के लिए परिवर्तन कोणीय के संस्करण 6 में होने वाले हैं। आज, हम वर्तमान में 5 संस्करण पर हैं:

  • यह 5.0 के लिए नहीं होगा, यह 6.0 से पहले होना चाहिए (मार्च 2018 से पहले)। दुर्भाग्य से मेरे पास अधिक सटीक तारीख नहीं है

  • Ngx-Translation (और अब कोणीय-i18n में मुख्य योगदानकर्ता) के डेवलपर ने इसे 12 दिन पहले पोस्ट किया है: here

  • यहाँ i18n के लिए डिज़ाइन दस्तावेज़ (पहले कला अनुभाग दिलचस्प है): https://docs.google.com/document/d/1LH7lJ1GjRgpGUjzNb6Eg4xrPooRdi80QOTYYh8z_JyY/edit#

कुछ विचार…

  • कोणीय-आई 18 एन अधिक प्रदर्शनकारी है क्योंकि आप अपने आवेदन को उस भाषा में संकलित करते हैं, जिसकी आपको आवश्यकता होती है (बजाय इसके रनटाइम में हो रहे अनुवादों की)। एक खामी भी हो सकती है क्योंकि आपको विभिन्न भाषाओं में अपने आवेदन के कई निर्माण करने पड़ सकते हैं।
  • यदि हम SEO का उपयोग कर रहे थे, तो url ब्राउज़िंग के कारण कोणीय-i18n आगे का रास्ता होगा। मेरे मामले के लिए, मुझे इसकी बिल्कुल आवश्यकता नहीं है।
  • अगर हमें फिर से बहुवचन स्विचिंग आदि की आवश्यकता है, तो मुझे इसकी आवश्यकता नहीं है - मुझे टेम्प्लेट और कोड में एक बिल्कुल सीधे रनटाइम भाषा स्विच की आवश्यकता है।
  • कम से कम मार्च 2018 तक कोणीय-आई 18 एन जारी नहीं किया जाएगा। मेरे लिए मैं तब तक इंतजार नहीं कर सकता, जब तक मुझे अपना ऐप बनाने की जरूरत नहीं है।
  • ngx- अनुवाद में कोणीय-i18n ब्यूट के रूप में क्षमताओं का एक व्यापक सेट नहीं होगा, मुझे केवल सरल रनटाइम अनुवाद की आवश्यकता है, इसलिए हम जो चाहते हैं उसके लिए ठीक है।
  • एनजीएक्स-ट्रांसलेशन खुला स्रोत है और वह दिन आता है जो अब विकसित नहीं हो रहा है, अगर कोई गंभीर मुद्दा है जो मुझे लगता है कि मैं खुद को ठीक कर सकता हूं (उम्मीद है कि आने वाले समय तक, कोई भी समस्या जो उत्पन्न हो सकती है, वह इस्त्री हो जाएगी)।

मैं भी कोणीय- l10n पुस्तकालय पर एक नज़र रखने जा रहा हूँ क्योंकि यह बहुत अच्छा लग रहा है:

मैं नवीनतम Angular5 का उपयोग करके एक एप्लिकेशन बना रहा हूं और उपयोगकर्ता को भाषाओं को स्विच करने में सक्षम होने के लिए मेरी आवश्यकता है। मुझे इसे Angular2 + (वास्तव में मैं Angular5 का उपयोग कर रहा हूं) में लागू नहीं करना पड़ा।

मुझे दो स्थानों पर अनुवाद सेट करने की आवश्यकता है:

  • घटक का टेम्पलेट html - लेबल को निर्दिष्ट भाषा में बदलें
  • घटक में फ़ाइल में कोड - मुझे कुछ तार का अनुवाद करने की आवश्यकता हो सकती है जो कोड में विशेष परिस्थितियों में गतिशील रूप से निर्मित होते हैं

मैं ngx-translation देख रहा था और यह मुझे अपनी जरूरत के अनुसार सब कुछ करने के लिए देखता है, क्योंकि इसमें आप अपने कोड को फिर से ngx-translation बिना भाषा बदल सकते हैं, here देखें। हालाँकि मैंने पढ़ा here मुख्य रूप से अपने i18n कोड को विकसित करने के लिए कोणीय टीम में जाने के कारण here होने here

मैं यह भी समझता हूं कि वर्तमान i18n को अभी मेरी जरूरत की हर चीज का समर्थन नहीं है, here देखें।

मेरा प्रश्न - कोणीय के नवीनतम संस्करण में अनुवाद के लिए खेलने की अवस्था क्या है? क्या अन्य पुस्तकालयों को लोग इसके बजाय सुझाएंगे, यदि वास्तव में, कोणीय को अभी तक पूर्ण समर्थन नहीं मिला है (भाषा में बदलाव के बिना)? क्या एनएक्सएक्स-ट्रांसलेशन भविष्य के लिए अच्छा है?

इस क्षेत्र में किसी भी मार्गदर्शन की बहुत सराहना की जाती है!


रोब मैककेबे, आपके द्वारा ऊपर सूचीबद्ध एक के अलावा अन्य महत्वपूर्ण चिंताएं हैं। मैंने इसे here समझाया here





angular-i18n