2016-02-07 5 views
5

मैं हाल ही में एक समस्या में भाग गया - मेरे कोणीय अनुप्रयोग के कुछ हिस्सों में मुझे निम्नलिखित प्रारूप में दिनांक दिखाना है: MMMM yyyy, साथ ही Angular UI Bootstrap ढांचे के कुछ घटकों में।महीने के नामों को बदलने के लिए कैसे करें - कोणीय दिनांक स्थानीयकरण

मूल मुद्दा यह है कि कुछ भाषाओं में नाममात्र और जननांग मामले में महीना अलग-अलग लिखा जाता है। मेरे मामले में पोलिश, यूक्रेनी और रूसी होगा।

जैसा कि यह डिफ़ॉल्ट रूप से लगता है MMMM जेनेटिव केस में महीने का नाम है, जो आम तौर पर समझ में आता है।

हालांकि मैंने देखा है कि Russian और Polish भाषा के लिए कोणीय लोकेल फाइलों में भाषा STANDALONEMONTH है, जैसा कि मैंने देखा है, नामांकन में महीने का नाम है। (हालांकि Ukrainian के लिए फ़ाइल उस भाग को गुम है)

हालांकि मुझे पूरा यकीन नहीं है कि उन पर उपयोग कैसे करें। मेरा मूल सुझाव dateFilter के लिए सजावट के साथ जाना होगा।

तो सवाल यह है - महीने के नाम मोड़ कोणीय में से निपटने, या एक समाधान है कि आमतौर पर इस्तेमाल के लिए एक मानक तरीका है कि क्या वहाँ है, ताकि तृतीय पक्ष $locale लाइब्रेरी का उपयोग करने के लिए उचित माह नाम का प्रयोग करेंगे।

उदाहरण

date: '2016-01-20' 

en-us: 
'dd MMMM yyyy' -> '20 January 2016' 
'MMMM yyyy' -> 'January 2016'  

uk-ua: 
'dd MMMM yyyy' -> '20 січня 2016' // genitive case - it is fine 
'MMMM yyyy' -> 'січня 2016'  // wrong: should be 'січень 2016' 

pl-pl: 
'dd MMMM yyyy' -> '20 stycznia 2016' // genitive case - it is fine 
'MMMM yyyy' -> 'stycznia 2016' // wrong: should be 'styczeń 2016' 

जैसा कि आप देख - के लिए यूक्रेनी और पोलिश महीने के नाम उन दो मामलों में एक अलग अंत होना चाहिए। साथ ही पोलिश और रूसी के लिए कोणीय लोकेल फाइलों (STANDALONEMONTH) में उचित मामले में एक महीने का नाम है। हालांकि मुझे पूरा यकीन नहीं है कि वे कहीं भी उपयोग किए जाते हैं - उपयोग नहीं ढूंढ पाए, या शायद मुझे कुछ याद आ रहा है।

+0

वास्तव में स्पष्ट नहीं है कि आपने उचित '$ लोकेल' संसाधन क्यों शामिल किए हैं, तो आप उचित मूल्य नहीं देख रहे हैं। एक डेमो शायद – charlietfl

+0

@charlietfl मदद करेगा मुझे उचित मूल्य मिल रहा है। बिल्कुल एक तरह से। आप सही हैं, मैं उदाहरण जोड़ूंगा। धन्यवाद। – danyloid

+0

मैं व्यक्तिगत रूप से इन भाषा बारीकियों से भी अपरिचित हूं। मैं कल्पना करता हूं कि कई अन्य इस में भाग गए हैं। क्या आपने इस पर गितब मुद्दों के माध्यम से जांच की है? – charlietfl

उत्तर

1

जब मैं कुछ समय पहले एंगुलर 1.3 में इसी तरह के मुद्दे पर काम कर रहा था, तो मुझे अंतर्निहित लोकेल सेवा में कुछ भी नहीं मिला, इसलिए मैंने इसे उचित मामले में अनुवाद के साथ मैन्युअल रूप से एक सूची बनाकर हल किया है और उनको संदर्भित किया है महीने की संख्या के अनुसार, {{monthNamesNominative[monthNumber]}} जैसे var monthNamesNominative = ['Январь', 'Февраль', ...]। यहां जोड़ा गया लाभ यह है कि आपके पास स्ट्रिंग पर प्रत्यक्ष नियंत्रण होता है और यदि आपको थोड़ा अलग पूंजीकरण की आवश्यकता होती है तो अतिरिक्त कूद नहीं करना पड़ता है।

कहा करने के बाद कोणीय 1.5 में स्थान सेवा कर्ताकारक मामले में महीने के नाम के साथ LLLL टोकन है, और ऐसा लगता है कि चार दिन बाद आप इस प्रश्न पूछा कोणीय में bug है कि इसके सही उपयोग को रोका तय किया गया था, और संस्करण 1.5 से .1 इसके बजाए इसका उपयोग करना शायद बेहतर है।

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