Sering kali, saat membuat pesan untuk ditampilkan kepada pengguna, pesan tersebut akan berisi sejumlah hal yang ingin saya informasikan kepada pelanggan.
Saya akan memberikan contoh: Pelanggan telah memilih sejumlah item dari 1 dan lebih tinggi, dan mengklik hapus. Sekarang saya ingin memberikan pesan konfirmasi kepada pelanggan, dan saya ingin menyebutkan jumlah item yang telah dia pilih untuk meminimalkan kemungkinan dia melakukan kesalahan dengan memilih sekumpulan item dan mengklik hapus ketika dia hanya ingin menghapus salah satu mereka.
Salah satu caranya adalah dengan membuat pesan umum seperti ini:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
"Masalah" di sini adalah kasus di mana noofitemselected
adalah 1, dan kita harus menulis barang dan itu bukan item dan mereka .
Solusi normal saya akan menjadi seperti ini
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Ini menjadi cukup panjang dan sangat buruk sangat cepat jika ada banyak referensi ke jamak angka di dalam kode, dan pesan yang sebenarnya menjadi sulit untuk dibaca.
Jadi pertanyaan saya sederhana. Apakah ada cara yang lebih baik untuk menghasilkan pesan seperti ini?
EDIT
Saya melihat banyak orang menjadi sangat terpaku jika saya menyebutkan bahwa pesan harus ditampilkan di dalam kotak pesan, dan hanya memberikan jawaban tentang cara menghindari penggunaan kotak pesan sama sekali, dan itu semua bagus .
Namun perlu diingat bahwa masalah pluralisasi juga berlaku untuk teks di tempat lain dalam program selain kotak pesan. Misalnya, label di samping kisi yang menampilkan jumlah baris yang dipilih dalam kisi akan memiliki masalah yang sama terkait kemajemukan.
Jadi ini pada dasarnya berlaku untuk sebagian besar teks yang dikeluarkan dengan cara tertentu dari program, dan kemudian solusinya tidak sesederhana hanya dengan mengubah program menjadi tidak mengeluarkan teks lagi :)