_nx()

Данная функция переводит строку не только с учётом её единственного или множественного числа, но также и с учётом контекста, в котором она используется. Возвращает переведённое значение.

Так что можно сказать, что эта функция – это две функции _n() и _x() в одной.

Также хочу порекомендовать видеоурок про перевод тем и видеоурок про перевод плагинов.

_nx( $single, $plural, $number, $context, $domain = 'default' )

Параметры

$single
(строка) Значение строки в единственном числе (для английского языка).
$plural
(строка) Значение строки во множественном числе (для английского языка).
$number
(целое число) Число, которое будет определять использование формы единственного или множественного числа.
$context
(строка) Контекст, в рамках которого используется функция.
$domain
(строка) Идентификатор перевода. Задаётся в виде строки, не передавайте в этот параметр переменных.

Примеры

Лучше всего попробовать понять принцип действия этой функции на лёгком примере.

Предположим, что у нас есть слово «group» («группа»). Мы например знаем, что «группа человек» можно перевести как «компания», а «группа волков» – как «стая». Кроме того, мы ещё и учитываем единственное/множественное число: «стая», «стаи».

printf( 
	_nx( 
		'1 group', 
		'%d groups', // %d будет заменено на значение $people уже после перевода
		$people, 
		'group of people', // название контекста, которое отобразится в PoEdit
		'true-domain' 
	), 
	$people // числовое значение
);
 
 
printf( _nx( '%s group', '%s groups', $animals, 'group of wolves', 'true-domain' ), $animals );

В рамках функции printf() %d – это паттерн замены на целое число, %s – паттерн замены строки. В нашей ситуации мы можем использовать и то, и другое, но правильнее, я думаю, всё-таки %d.

Только не забудьте в ключевых словах в PoEdit указать значение: _nx:4c,1,2

Тогда у вас получится:

Пример использования функции _nx()

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.