_n() — переводит строку с учетом ее формы множественного числа

Позволяет получить перевод единственной или множественной формы слова, в зависимости от стоящего перед ним числа.

При возникновении проблем с чтением языковых файлов, сравнение будет происходить между заданными значениями параметров $single и $plural.

_n( $single, $plural, $number, $domain = 'default' )
$single
(строка) Строка, которая будет использоваться, если $number равно 1.
$plural
(строка) Строка, которая будет использоваться, если $number — не 1. Возможно тут вы скажете — «Но ведь в русском языке 3 формы множественного числа!». Да, верно, три, например «1 сайт, 2 сайта, 5 сайтов» — всё это тоже будет хорошо работать, тут главное правильно настроить программу Poedit.
$number
(целое число) Число, которое будет определять использование формы единственного или множественного числа.
$domain
(строка) Уникальный идентификатор языковых файлов, подробнее тут.

Примеры

Простой пример, чтобы понять, как вообще работает функция:

$amount = '4';
echo _n( 'One', 'Many', $amount, 'truemisha' );
// если $amount не равен 1 (0 кстати тоже прокатит), то выведет перевод для 'Many' (много)
// если $amount равен 1, то выведет перевод слова 'One' (один)

Подобные примеры вы нечасто найдете в темах и плагинах WordPress, обычно в таких случаях всегда используется php-функция sprintf().

$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 );

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, в случае несоблюдения этого условия в 99% случаях ваш коммент будет удалён, а автор заблокирован. Печалька.