_n()

Переводит и извлекает форму единственного или множественного числа на основе предоставленного числа
Функция WordPress
INT 5.5.0, 2.8.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Получение единственной или множественной формы на основе числа
  4. Определение правильной формы слова в зависимости от числа
  5. Использование функции _n() для перевода текста
  6. Применение функции _n() в многоязычных проектах
  7. Оптимизация использования функции _n() для улучшения производительности
  8. Вопросы и ответы
  9. Как выбрать правильное значение для $single и $plural в функции _n()?
  10. Как работает сравнение числа $number в функции _n()?
  11. Как указать текстовый домен $domain в функции _n()?
  12. Как использовать функцию _n() для перевода числительных?
  13. Как использовать функцию _n() с переменными в тексте?
  14. Как перевести форму слова в функции _n()?
  15. Как добавить новый текстовый домен для перевода в функции _n()?
  16. Как использовать функцию _n() для перевода множественных форм слова?
  17. Как перевести числа с плавающей запятой в функции _n()?
  18. Связанные элементы

Описание функции

Функция _n() используется для перевода и получения единственной или множественной формы, в зависимости от заданного числа.

Использование

_n( string $single, string $plural, int $number, string $domain = 'default' ): string

Функция _n() принимает следующие параметры:

  • $single (обязательный) — Текст, который будет использоваться, если число является единственным.
  • $plural (обязательный) — Текст, который будет использоваться, если число является множественным.
  • $number (обязательный) — Число, с которым будет сравниваться, чтобы использовать единственную или множественную форму.
  • $domain (необязательный) — Текстовый домен. Уникальный идентификатор для получения переведенных строк. По умолчанию ‘default’.

Функция возвращает переведенную единственную или множественную форму в виде строки.

<?php
$single = 'apple'; // Текст для единственной формы
$plural = 'apples'; // Текст для множественной формы
$number = 3; // Число для сравнения
$result = _n( $single, $plural, $number ); // Вызов функции _n()
echo $result; // Вывод результата
?>

В данном примере, если число $number равно 1, то будет выведено «apple» (единственная форма), а если число $number больше 1, то будет выведено «apples» (множественная форма).

Примеры использования

Получение единственной или множественной формы на основе числа


/**
 * Возвращает единственную или множественную форму на основе числа.
 *
 * @param string $single Текст, который будет использован, если число является единственным.
 * @param string $plural Текст, который будет использован, если число является множественным.
 * @param int $number Число, с которым будет сравниваться, чтобы использовать либо единственную, либо множественную форму.
 * @param string $domain (optional) Текстовый домен. Уникальный идентификатор для получения переведенных строк. По умолчанию 'default'.
 * @return string Переведенная единственная или множественная форма.
 */
function example_n($single, $plural, $number, $domain = 'default') {
    if ($number === 1) {
        return $single;
    } else {
        return $plural;
    }
}

Определение правильной формы слова в зависимости от числа


$apple_count = 5;
$apple_text = _n('apple', 'apples', $apple_count);
echo "I have $apple_count $apple_text.";
// Вывод: "I have 5 apples."

Использование функции _n() для перевода текста


/**
 * Выводит переведенную единственную или множественную форму на основе числа.
 *
 * @param string $single Текст, который будет использован, если число является единственным.
 * @param string $plural Текст, который будет использован, если число является множественным.
 * @param int $number Число, с которым будет сравниваться, чтобы использовать либо единственную, либо множественную форму.
 * @param string $domain (optional) Текстовый домен. Уникальный идентификатор для получения переведенных строк. По умолчанию 'default'.
 */
function example_n_echod($single, $plural, $number, $domain = 'default') {
    echo _n($single, $plural, $number, $domain);
}

Применение функции _n() в многоязычных проектах


/**
 * Возвращает переведенную единственную или множественную форму на основе числа для указанного текстового домена.
 *
 * @param string $single Текст, который будет использован, если число является единственным.
 * @param string $plural Текст, который будет использован, если число является множественным.
 * @param int $number Число, с которым будет сравниваться, чтобы использовать либо единственную, либо множественную форму.
 * @param string $domain Текстовый домен. Уникальный идентификатор для получения переведенных строк.
 * @return string Переведенная единственная или множественная форма.
 */
function example_n_i18n($single, $plural, $number, $domain) {
    return _n($single, $plural, $number, $domain);
}

Оптимизация использования функции _n() для улучшения производительности


/**
 * Возвращает единственную или множественную форму на основе числа без использования функции _n().
 *
 * @param string $single Текст, который будет использован, если число является единственным.
 * @param string $plural Текст, который будет использован, если число является множественным.
 * @param int $number Число, с которым будет сравниваться, чтобы использовать либо единственную, либо множественную форму.
 * @return string Переведенная единственная или множественная форма.
 */
function example_n_optimized($single, $plural, $number) {
    if ($number === 1) {
        return $single;
    } else {
        return $plural;
    }
}

Вопросы и ответы

Как выбрать правильное значение для $single и $plural в функции _n()?

Для выбора правильного значения для $single и $plural в функции _n() необходимо учитывать, что $single должно быть использовано, когда число равно 1, а $plural — когда число больше 1 и меньше 5. Если число больше 4, то также используется $plural.

Как работает сравнение числа $number в функции _n()?

Сравнение числа $number в функции _n() происходит с использованием условных операторов. Если $number равно 1, то возвращается $single, иначе, если $number больше 1 и меньше 5, возвращается $plural. Если число больше 4, то также возвращается $plural.

Как указать текстовый домен $domain в функции _n()?

Для указания текстового домена $domain в функции _n() необходимо передать его в качестве четвертого параметра. Текстовый домен является уникальным идентификатором для получения переведенных строк. Если $domain не указан, то по умолчанию используется ‘default’.

Примеры кода:


$single = _n( '%s apple', '%s apples', $number, 'text-domain' );

$plural = _n( '%s book', '%s books', $number, 'text-domain' );

Как использовать функцию _n() для перевода числительных?

Функция _n() в WordPress используется для перевода числительных и выбора формы слова в зависимости от заданного числа.

Для использования функции _n() необходимо передать ей следующие параметры:

  • $single — текст, который будет использован, если число является единственным;
  • $plural — текст, который будет использован, если число не является единственным;
  • $number — число, с которым будет сравниваться для выбора формы слова;
  • $domain (необязательный) — текстовый домен, уникальный идентификатор для получения переведенных строк. По умолчанию ‘default’.

Функция _n() возвращает переведенную форму слова в единственном или множественном числе.

Пример использования функции _n() для перевода числительных:


$posts_count = wp_count_posts();
$posts_text = _n( 'Post', 'Posts', $posts_count->publish );
echo 'You have ' . $posts_count->publish . ' ' . $posts_text . '.';

Как использовать функцию _n() с переменными в тексте?

Функция _n() также может использоваться с переменными в тексте.

Для этого необходимо включить переменные в передаваемые параметры $single и $plural.

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


$comments_count = get_comments_number();
$comments_text = _n( 'No Comments', '%s Comment', '%s Comments', $comments_count );
echo sprintf( $comments_text, $comments_count );

Как перевести форму слова в функции _n()?

Функция _n() позволяет перевести форму слова в зависимости от числа.

Для этого необходимо указать разные формы слова в параметрах $single и $plural.

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


$comments_count = get_comments_number();
$comments_text = _n( 'No Comments', '%s Comment', '%s Comments', $comments_count, 'text-domain' );
echo sprintf( $comments_text, $comments_count );

Как добавить новый текстовый домен для перевода в функции _n()?

Для добавления нового текстового домена для перевода в функции _n() необходимо указать его в параметре $domain. По умолчанию, текстовый домен равен ‘default’.

Пример кода:


$translated_text = _n( 'apple', 'apples', $number, 'fruits' );

Как использовать функцию _n() для перевода множественных форм слова?

Для перевода множественных форм слова с помощью функции _n() необходимо передать две строки в параметры $single и $plural. Функция автоматически выберет правильную форму в зависимости от значения параметра $number.

Пример кода:


$translated_text = _n( 'apple', 'apples', $number );

Как перевести числа с плавающей запятой в функции _n()?

Функция _n() не поддерживает перевод чисел с плавающей запятой. Для перевода таких чисел необходимо использовать функцию sprintf() или number_format().

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


$translated_text = sprintf( _n( '%s apple', '%s apples', $number ), number_format( $number, 2 ) );

Функция _n() в WordPress используется для перевода и получения единственной или множественной формы слова в зависимости от переданного числа. Она позволяет легко и удобно работать с переводами в разработке сайтов на WordPress.

Связанные элементы

  • Функция add_action(): Регистрирует функцию, которая будет выполнена при возникновении определенного события.
  • Функция add_filter(): Регистрирует функцию, которая будет использоваться для изменения значения определенного фильтра.
  • Функция apply_filters(): Применяет все зарегистрированные функции фильтров к указанному значению.
  • Функция do_action(): Выполняет все зарегистрированные функции, связанные с указанным событием.
  • Хук init: Событие, которое возникает при инициализации WordPress, позволяет выполнять дополнительные действия при запуске сайта.
  • Хук wp_enqueue_scripts: Событие, которое возникает при загрузке скриптов и стилей на сайт, позволяет добавлять свои собственные скрипты и стили.
  • Хук the_content: Событие, которое возникает при выводе содержимого записи, позволяет изменять его перед отображением.
  • Хук wp_head: Событие, которое возникает внутри тега <head> на каждой странице сайта, позволяет добавлять дополнительные элементы в шапку сайта.
  • Класс WP_Query: Используется для выполнения запросов к базе данных WordPress и получения соответствующих записей.
  • Класс WP_Widget: Позволяет создавать виджеты, которые могут быть добавлены в боковые панели или другие области сайта.
Обсуждение