BU DERSİN BAŞLIKLARI
_nx( string $tekil, string $çoğul, int $sayısı, string $anlam_ipucu, string $textdomain = 'default' );
Açıklaması:
_nx()
fonksiyonu aslında, _x() fonksiyonu ile _n() fonksiyonunun melezidir. Fonksiyon, tekil ve çoğul yazılışları farklı olan kelimeleri tercümeye hazırlar. Örnek olarak, İngilizce dilinde, kelimelerin tekil ve çoğul yazılışı farklıdır. Bu yüzden tekil ve çoğul kelimeleri tercümeye hazırlamak için _n()
fonksiyonu kullanılır. Eğer, bir kelimenin tekil ve çoğul yazımı farklı durumlarda farklı anlamlar içeriyorsa o zaman bu kelimeyi tercümeye hazırlamak için _nx()
fonksiyonuna ihtiyacımız var demektir.
Yukarıda bahsettiğimiz durum, Türkçe dili için, çok da sık karşılaştığımız bir durum olmadığı için, fonksiyon bize biraz karmaşık gelebilir.
Parametreleri:
$tekil
(Zorunludur.) Bir büyüklüğün, sayısı 1 olduğu zamanki yazımıdır.
Örnek: “Comment” (yorum)
$çoğul
(Zorunludur.) Bir büyüklüğün, sayısı 1 den çok az olduğu zamanki yazımıdır.
Örnek: “Comments” (yorumlar)
$sayısı
(int – Zorunludur.) Büyüklüğün sayısıdır.
$anlam_ipucu
(Zorunludur.) Kelimenin belli bir anlamı için ipucu niteliğinde bir texttir. Yani, kelimenin hangi anlamını kullandığımızı anlamak için, hatırlatıcı bir kelime ya da ifadedir.
$textdomain
Her temanın, diğer temalardan farklı bir textdomain değeri vardır. Textdomainler, WordPress’in, tema ya da eklentiye özgü tercümeleri saptayabilmesini sağlar, farklı temaların ya da eklentilerin tercümelerinin birbirine karışmasını engeller.
Varsayılan değeri 'default'
olarak ayarlanmıştır.
Temanıza özel bir $textdomain
değeri oluşturmayı öğrenmek için, Textdomain Parametresi başlığımızı okuyabilirsiniz.
Döndürdüğü değer:
Tekil veya çoğul biçimleriyle, tercüme edilmiş bir kelime veya ifade döndürür.
Kaynak kodu:
Dizini : wp-includes/l10n.php
function _nx( $single, $plural, $number, $context, $domain = 'default' ) {
$translations = get_translations_for_domain( $domain );
$translation = $translations->translate_plural( $single, $plural, $number, $context );
/**
* Filters the singular or plural form of a string with gettext context.
*
* @since 2.8.0
*
* @param string $translation Translated text.
* @param string $single The text to be used if the number is singular.
* @param string $plural The text to be used if the number is plural.
* @param string $number The number to compare against to use either the singular or plural form.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
*/
return apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, $domain );
}
Kullanımı:
Örnek-1
Aşağıdaki kod ile, “group” kelimesinin, insan (people) ve hayvan (animal) toplulukları için, tekil ve çoğul şekilleri, ayrı ayrı tercüme edilebilecek şekilde oluşturulmuştur.
printf( _nx( '%s group', '%s groups', $people, 'group of people', 'textdomain' ), number_format_i18n( $people ) );
printf( _nx( '%s group', '%s groups', $animals, 'group of animals', 'textdomain' ), number_format_i18n( $animals ) );