প্রকল্প সম্পর্কে
Locale হলো একটি Rust ওয়ার্কস্পেস যা ইউনিকোড CLDR (Common Locale Data Repository) ডেটাসেট থেকে তৈরি শক্তিশালী টাইপযুক্ত লোকেল আইডেন্টিফায়ার প্রদান করে। README অনুযায়ী এটি CLDR 48.1.0-এর উপর ভিত্তি করে 766টি ইউনিকোড লোকেল কভার করে, যার ডেটা অফিসিয়াল CLDR-JSON রিপোজিটরি থেকে নেওয়া।
ওয়ার্কস্পেসে দুটি ক্রেট রয়েছে। locale-rs হলো লোকেল ব্যবস্থাপনা ও ফরম্যাটিংয়ের জন্য প্রোডাকশন লাইব্রেরি। locale-dev হলো একটি কোড জেনারেশন টুল যা GitHub-এ সর্বশেষ CLDR-JSON রিলিজ পরীক্ষা করে, ডেটা ডাউনলোড বা ক্যাশ থেকে পুনরায় ব্যবহার করে, locale-rs কোড পুনরায় তৈরি করে এবং তারপর আউটপুট ফরম্যাট ও লিন্ট করে। এই ডিজাইন হার্ডকোড করা স্ট্রিংয়ের উপর নির্ভর না করে নতুন ইউনিকোড রিলিজের সাথে লাইব্রেরিকে সিঙ্কে রাখে।
README-তে বর্ণিত মূল সক্ষমতাগুলোর মধ্যে রয়েছে কম্পাইল-টাইম যাচাইকৃত এনাম ভ্যারিয়েন্ট হিসেবে টাইপ-সেফ লোকেল, নেটিভ ডিজিট ব্যবহার করে লোকেল-সচেতন সংখ্যা ফরম্যাটিং, ICU-সামঞ্জস্যপূর্ণ মুদ্রা প্যাটার্ন, এবং তারিখ-সময় ফরম্যাটিংয়ের জন্য স্থানীয়কৃত মাস ও সপ্তাহের দিনের নাম। পার্সিং হাইফেন, আন্ডারস্কোর বা মিশ্র কেস গ্রহণ করে। লোকেল নেগোশিয়েশন ফলব্যাক চেইন ব্যবহার করে উপলব্ধ অপশন থেকে সেরা ম্যাচ খুঁজে বের করে, এবং ফাজি সাজেশন টাইপো বা অজানা লোকেলের জন্য সংশোধন প্রস্তাব করে। README-তে ল্যাটিন, আরবি-ইন্দিক, দেবনাগরী, বাংলা, তামিল, থাই এবং তিব্বতি সহ অনেক সমর্থিত ডিজিট সিস্টেমও তালিকাভুক্ত করা হয়েছে।
ব্যবহারের উদাহরণে Locale::en_GB-এর মতো সরাসরি এনাম অ্যাক্সেস, FromStr বা from_flexible-এর মাধ্যমে পার্সিং, ভাষা ও অঞ্চল সাবট্যাগ বের করা, এবং একটি ফলব্যাক লোকেল পাওয়া দেখানো হয়েছে। সংখ্যা ফরম্যাটিং ToFormattedString ট্রেইটের মাধ্যমে প্রদর্শিত, যা ইংরেজির জন্য 1,234,567 এবং জার্মানের জন্য 1.234.567-এর মতো গ্রুপকৃত আউটপুট তৈরি করে। নেগোশিয়েশন ও সাজেশনের উদাহরণও দেওয়া হয়েছে।
README শূন্য-খরচের অ্যাবস্ট্রাকশন এবং শূন্য-আকারের লোকেল এনাম ভ্যারিয়েন্ট দাবি করে। এটি num-format ক্রেট থেকে আর্কিটেকচারাল অনুপ্রেরণার কথা উল্লেখ করে। প্রজেক্ট কোডের লাইসেন্সিং দ্বৈত MIT বা Apache-2.0, যেখানে লোকেল ডেটা ইউনিকোড লাইসেন্স V3-এর অধীনে ইউনিকোড CLDR থেকে উদ্ভূত। অবদান মূলত locale-dev-এর জেনারেশন লজিক বা locale-rs-এর হেল্পার মেথড, টেস্ট এবং উদাহরণের দিকে নির্দেশিত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.