## Функция _NX() в WordPress
Функция _NX() в WordPress позволяет получить переведённый текст в зависимости от числа и контекста. Она сочетает в себе возможности функций _n() и _x(). Это означает, что с её помощью можно использовать правильную форму слова в зависимости от того, является ли число единственным (естественное число) или множественным (больше единицы).
### Возвращаемое значение
Функция возвращает строку, которая представляет собой переведённую форму слова (единственное или множественное число).
### Применение
Функция имеет следующий синтаксис:
```plaintext
_nx( $single, $plural, $number, $context, $domain );
Параметры:
$single(строка) (обязательный): Текст, который будет использоваться, если число единственное.$plural(строка) (обязательный): Текст, который будет использоваться, если число множественное.$number(целое) (обязательный): Число, с которым будет сравниваться, чтобы использовать одну из форм — единственную или множественную.$context(строка) (обязательный): Контекст, который поможет переводчикам понять, что именно переводить.$domain(строка): Уникальный идентификатор для извлечения переведённых строк.- По умолчанию:
'default'
- По умолчанию:
Пример использования
Предположим, у вас есть две переменные: одна для учёта людей, а другая — для учёта животных. Вы можете использовать функцию _NX() так:
$people = 5;
$animals = 7;
printf( _nx( '%s группа', '%s группы', $people, 'группа людей', 'text-domain' ), $people );
printf( _nx( '%s группа', '%s группы', $animals, 'группа животных', 'text-domain' ), $animals );
В этом примере функция правильно выведет: "5 групп людей" и "7 групп животных".
Изменения в функции
Функция была введена в версии 2.8.0. А с версии 5.5.0 был добавлен фильтр ngettext_with_context-{$domain}, который позволяет модифицировать возвращаемое значение.
Код функции
Вот как выглядит код самой функции:
function _nx( $single, $plural, $number, $context, $domain = 'default' ) {
$translations = get_translations_for_domain( $domain );
$translation = $translations->translate_plural( $single, $plural, $number, $context );
$translation = apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, $domain );
$translation = apply_filters( "ngettext_with_context_{$domain}", $translation, $single, $plural, $number, $context, $domain );
return $translation;
}
Связанные функции
Функция _NX() работает в тесной связке с другими функциями, которые помогают в переводе и локализации:
__(): Простой перевод строки._e(): Перевод и немедленный вывод._n(): Перевод с учётом чисел._x(): Перевод с учётом контекста.date_i18n(): Форматирование даты с учётом локализации.
Используя эти функции, вы сможете создавать многоязычные сайты на WordPress более эффективно и качественно.