K{}DAMAN

Etiketler


Son Yazılar


Çoğul hali doğru yazdırmak

Melih KocatürkMelih Kocatürk

Problem: Bir değişkenin değerini temel alarak, sözcüklerin çoğul halini doğru şekilde yazdırmak istiyorsunuz. Örneğin aramada bulunan eşleşme sayısına bağlı olarak bir metin döndürüyorsunuz.

Çözüm: Koşullu ifade kullanın:

$number = 4;
print "Your search returned $number " . ($number == 1 ? 'hit' : 'hits') . '.';

Çıktısı:

Your search returned 4 hits.

Diğer bir seçenek – aşağıdaki may_pluralize() fonksiyonunda gösterildiği gibi – tüm çoğullaştırma için bir fonksiyon kullanmaktır.

function may_pluralize($singular_word, $amount_of) {

	// array of special plurals
	$plurals = array(
		'fish' => 'fish',
		'person' => 'people',
	);

	// only one
	if (1 == $amount_of) {
		return $singular_word;
	}

	// more than one, special plural
	if (isset($plurals[$singular_word])) {
		return $plurals[$singular_word];
	}

	// more than one, standard plural: add 's' to end of word
	return $singular_word . 's';
}

İşte bazı örnekler:

$number_of_fish = 1;
// $out1 is "I ate 1 fish."
$out1 = "I ate $number_of_fish " . may_pluralize('fish', $number_of_fish) . '.';

$number_of_people = 4;
// $out2 is "Soylent Green is people!"
$out2 = 'Soylent Green is ' . may_pluralize('person', $number_of_people) . '!';

Kodunuzda birden fazla çoğul bulundurmayı planlıyorsanız, may_pluralize() gibi bir fonksiyon kullanmak okunabilirliği artırır. Fonksiyonu kullanmak için, ilk parametre olarak kelimenin tekil halini ve ikinci parametre olarak miktarını verin. Fonksiyon içinde, tüm özel durumları barındıran $plurals dizisi vardır. $amount 1 ise orjinal sözcüğü döndürürsünüz. Eğer daha büyükse ve varsa özel çoğullaştırılmış sözcüğü döndürürsünüz. Varsayılan olarak, kelimenin sonuna “s” ekleyin.

Yazıldığı gibi may_pluralize(), Amerikan İngilizcesi için çoğullama kurallarını kapsar. Açıkçası, kurallar diğer diller için farklıdır. Uygulamanızın yalnızca bir dilde çıktı üretmesi gerekiyorsa, dile özgü mantıkla may_pluralize() gibi bir fonksiyon kullanmak mantıklıdır. Uygulamanızın birçok dilde çıktı üretmesi gerekiyorsa, daha kapsamlı bir yaklaşım gereklidir.

İşini seven bir yazılımcı ve bilişim okur-yazarı olarak, kendimi nasıl geliştirebilirim sorusuna cevap arıyor...

Comments 0
There are currently no comments.