_n() - функция WordPress
Опубликовано: 01.09.2018
Позволяет получить перевод единственной или множественной формы слова, в зависимости от стоящего перед ним числа.
При возникновении проблем с чтением языковых файлов, сравнение будет происходить между заданными значениями параметров $single и $plural .
_n ( $single , $plural , $number , $domain = 'default' ) |
Примеры
Простой пример, чтобы понять, как вообще работает функция:
Midea美的 DJ12B DEF4现磨五谷豆浆机家用多功能婴儿辅食豆浆机 2
$amount = '4' ; echo _n ( 'One' , 'Many' , $amount , 'truemisha' ) ; // если $amount не равен 1 (0 кстати тоже прокатит), то выведет перевод для 'Many' (много) // если $amount равен 1, то выведет перевод слова 'One' (один) |
Подобные примеры вы нечасто найдете в темах и плагинах WordPress, обычно в таких случаях всегда используется php-функция sprintf().
Sprungloaded - Easy
$amount = '4' ; $products = sprintf ( _n ( '1 product' , '%s products' , $amount , 'truemisha' ) , $amount ) ; // "4 товара" echo $products ; |
Ничего сложного, главное запомните одну вещь — никаких вычислений внутри sprintf()!
Кстати, если не указывать последний параметр функции, $domain, то для перевода будут использоваться стандртные языковые файлы WordPress (которые задействованы в переводе движка). Понятное дело, что перевода ваших строк там может и не быть.
echo sprintf ( _n ( '%s comment approved' , '%s comments approved' , $approved ) , $approved ) ; |