অনেক সময় ব্যবহারকারীর কাছে বার্তা উত্পন্ন করার সময়, বার্তায় বেশ কয়েকটি এমন কিছু থাকবে যা আমি গ্রাহককে জানাতে চাই।
আমি একটি উদাহরণ দেব: গ্রাহক 1 এবং উপরে থেকে বেশ কয়েকটি আইটেম নির্বাচন করেছেন এবং মুছে ফেলতে ক্লিক করেছেন। এখন আমি গ্রাহককে একটি নিশ্চিতকরণ বার্তা দিতে চাই এবং আমি তার একাধিক আইটেম নির্বাচন করে মুছে ফেলতে চাইলে ভুল করার সুযোগটি হ্রাস করার জন্য তিনি যে আইটেম নির্বাচন করেছেন তার সংখ্যা উল্লেখ করতে চাই এবং যখন সে কেবল কোনও একটি মুছতে চায় তাদের।
একটি উপায় হ'ল জেনেরিক বার্তাটি এভাবে করা:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
"সমস্যা" এখানে যদি কোথায় noofitemselected
1, এবং আমরা লিখতে হবে আইটেমটি এবং এটা পরিবর্তে আইটেম এবং তাদের ।
আমার সাধারণ সমাধানটি এরকম কিছু হবে
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
কোডের অভ্যন্তরে সংখ্যার বহুত্বের উল্লেখ রয়েছে এবং সত্যিকারের বার্তাটি পড়া খুব শক্ত হয়ে যায় তবে এটি বেশ দীর্ঘ এবং বেশ বাজে সত্যই দ্রুত হয়ে যায়।
আমার প্রশ্ন তাই সহজ। এর মতো বার্তা উত্পন্ন করার আরও ভাল উপায় আছে কি?
সম্পাদনা
আমি দেখতে পাচ্ছি যে অনেক লোক এই ক্ষেত্রে মীমাংসিত হয়েছে যে আমি উল্লেখ করেছি যে বার্তাটি একটি বার্তা বাক্সের ভিতরে প্রদর্শিত হওয়া উচিত এবং কীভাবে বার্তা বাক্সটি ব্যবহার করা এড়ানো উচিত সে সম্পর্কে একটি উত্তর দিয়েছেন, এবং এটি সব ভাল ।
তবে মনে রাখবেন যে বহুবচনকরণের সমস্যাটি বার্তার বাক্সগুলি ছাড়াও প্রোগ্রামের অন্যান্য জায়গাগুলিতেও প্রযোজ্য। উদাহরণস্বরূপ, গ্রিডের সাথে নির্বাচিত লাইনের সংখ্যা প্রদর্শন করে এমন গ্রিডের পাশাপাশি একটি লেবেল বহুত্বের ক্ষেত্রে একই সমস্যা থাকবে।
সুতরাং এটি মূলত বেশিরভাগ পাঠ্যের ক্ষেত্রে প্রযোজ্য যা প্রোগ্রামগুলি থেকে কোনও উপায়ে আউটপুট হয় এবং তারপরে সমাধানটি কেবলমাত্র প্রোগ্রামটিকে আর আউটপুট পাঠ্যরূপে না পরিবর্তন করার মতো সহজ নয় :)