Функция _n_noop()
в WordPress используется для создания строк, подлежащих переводу, с учетом числовых форм (множественного числа). Она является частью механизма интернационализации (i18n) и предназначена для хранения строк с учетом числовых форм, которые затем будут переведены и правильно отображены в зависимости от числа.
Описание функции
_n_noop()
принимает два обязательных параметра и один необязательный:
$singular
(string): Строка для единственного числа.$plural
(string): Строка для множественного числа.$domain
(string) (необязательный): Текстовый домен. По умолчанию используется текущий текстовый домен.
_n_noop( string $singular, string $plural, string $domain = null )
Функция возвращает массив, содержащий переданные строки и текстовый домен.
Примеры использования
Рассмотрим несколько примеров использования функции _n_noop()
в WordPress.
Пример 1: Простая регистрация строк для перевода
Предположим, что у нас есть плагин, который отображает сообщение о количестве новых уведомлений. Мы хотим, чтобы это сообщение правильно отображалось на различных языках.
// Регистрация строк для перевода
$notification_texts = _n_noop( '%d new notification', '%d new notifications', 'my-plugin-domain' );
// Использование зарегистрированных строк
$notifications_count = 5; // Примерное количество уведомлений
printf( translate_nooped_plural( $notification_texts, $notifications_count, 'my-plugin-domain' ), $notifications_count );
Пример 2: Использование в административной панели
Если вам нужно использовать эту функцию в административной панели, например, при отображении количества новых записей, вы можете сделать следующее:
// Регистрация строк для перевода
$new_posts_texts = _n_noop( '%d new post', '%d new posts', 'my-plugin-domain' );
// Функция для отображения количества новых записей
function display_new_posts_count( $count ) {
global $new_posts_texts;
echo sprintf( translate_nooped_plural( $new_posts_texts, $count, 'my-plugin-domain' ), $count );
}
// Пример вызова функции
display_new_posts_count( 3 );
Пример 3: Перевод строк в шаблонах
Если вы хотите использовать зарегистрированные строки в шаблонах темы, это может выглядеть так:
// functions.php в вашей теме
function register_noop_strings() {
global $comment_texts;
$comment_texts = _n_noop( '%d new comment', '%d new comments', 'my-theme-domain' );
}
add_action( 'after_setup_theme', 'register_noop_strings' );
// В файле шаблона (например, comments.php)
global $comment_texts;
$comments_count = get_comments_number();
printf( translate_nooped_plural( $comment_texts, $comments_count, 'my-theme-domain' ), $comments_count );
Заключение
Функция _n_noop()
является мощным инструментом для разработчиков WordPress, позволяя легко управлять переводом строк с числовыми формами. Это особенно полезно в плагинах и темах, где необходимо учитывать различные языковые особенности при отображении сообщений с учетом числа. Используя _n_noop()
вместе с другими функциями интернационализации, такими как translate_nooped_plural()
, вы можете обеспечить высокое качество локализации вашего продукта для пользователей по всему миру.