BU DERSİN BAŞLIKLARI
_nx_noop( string $tekil, string $çoğul, $anlam_ipucu, string $textdomain = null )
Açıklaması:
Bir kelimenin tekil ve çoğul halini, tercüme etmeden fakat gerektiğinde tercümeye uygun halde kullanmak üzere, POT dosyasına kaydetmeye yarar. Bunun yanında, kelimenin tekil ve çoğul hallerini birden fazla şekilde tercüme edilebilecek şekilde hazırlama imkanı da sağlar. _nx_noop()
fonksiyonu ile kaydettiğimiz kelimenin tekil ve çoğul yazımı, daha sonra, bildiğimiz bir sayı için, tercümeye hazır halde kullanabiliriz.
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)
$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 null
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:
_nx_noop()
fonksiyonu, bir kelimenin tekil ve çoğul yazılımlarını barındıran bir dizi döndürür.
$yorumlar = _nx_noop( '%s group', '%s groups', 'insanlar için', 'textdomain' );
Yukarıda oluşturulan $yorumlar
değişkenini ekrana bastırdığımızda (var_dump($yorumlar)
), şöyle bir dizi ile karşılaşırız:
array(7) {
[0]=> string(8) "%s group"
[1]=> string(9) "%s groups"
[2]=> string(14) "insanlar için"
["singular"]=> string(8) "%s group"
["plural"]=> string(9) "%s groups"
["context"]=> string(14) "insanlar için"
["domain"]=> string(10) "textdomain"
}
Kaynak kodu:
Dizini : wp-includes/l10n.php
function _nx_noop( $singular, $plural, $context, $domain = null ) {
return array(
0 => $singular,
1 => $plural,
2 => $context,
'singular' => $singular,
'plural' => $plural,
'context' => $context,
'domain' => $domain,
);
}
Kullanımı:
Örnek-1
_nx_noop()
fonksiyonunun printf()
fonksiyonu ile birlikte temel kullanımına bir örnektir:
<?php
$grup = array(
'insansa' => _nx_noop( '%s group', '%s groups', 'insanlar için anlamı', 'textdomain' ),
'hayvansa' => _nx_noop( '%s group', '%s groups', 'hayvanlar için anlamı', 'textdomain' ),
);
$sayi = 5; // Burası veritabanından çektiğiniz bir sayı da olabilir.
$gruplar = $grup['insansa']; // Group kelimesini insanlar için tercümeye hazırlıyoruz
printf( _n($gruplar[0], $gruplar[1], $sayi, 'textdomain'), $sayi );
?>
Örnek-2
_nx_noop()
fonksiyonunun translate_nooped_plural() ve printf()
fonksiyonu ile birlikte kullanımına bir örnektir:
<?php
$grup = array(
'insansa' => _nx_noop( '%s group', '%s groups', 'insanlar için anlamı', 'textdomain' ),
'hayvansa' => _nx_noop( '%s group', '%s groups', 'hayvanlar için anlamı', 'textdomain' ),
);
$sayi = 5; // Burası veritabanından çektiğiniz bir sayı da olabilir.
$gruplar = $grup['insansa']; // Group kelimesini insanlar için tercümeye hazırlıyoruz
printf( translate_nooped_plural( $gruplar, $sayi, 'textdomain' ), number_format_i18n( $sayi ) );
?>