Функция _n()
в WordPress предназначена для работы с переводами, учитывающими количество (множественные числа). Это особенно полезно для строк, которые изменяются в зависимости от количества элементов, таких как сообщения, комментарии и т.д. В этой статье мы рассмотрим, что такое функция _n()
, как она работает и как её правильно использовать с примерами.
Что такое функция _n()
в WordPress?
Функция _n()
используется для перевода строк, которые имеют разные формы для единственного и множественного числа. Она позволяет разработчикам указать оба варианта перевода и выбрать правильный в зависимости от количества элементов.
Синтаксис функции _n()
_n( $single, $plural, $number, $domain );
$single
(обязательно): Строка для единственного числа.$plural
(обязательно): Строка для множественного числа.$number
(обязательно): Число, определяющее, какую форму использовать.$domain
(необязательно): Текстовый домен. Используется для группировки связанных строк перевода. Если не указан, используется текстовый домен по умолчанию.
Примеры использования функции _n()
Рассмотрим несколько примеров использования функции _n()
в реальных сценариях.
Базовое использование
$comment_count = 1;
printf( _n( 'One comment', '%s comments', $comment_count, 'my-text-domain' ), $comment_count );
В этом примере, если $comment_count
равно 1, то будет выведена строка One comment
. Если $comment_count
больше 1, то будет выведена строка, содержащая количество комментариев, например, 5 comments
.
Перевод с динамическими данными
Иногда вам нужно перевести строку, содержащую переменные, и отобразить её с учётом множественного числа.
$items_in_cart = 3;
printf( _n( 'You have %s item in your cart', 'You have %s items in your cart', $items_in_cart, 'my-text-domain' ), $items_in_cart );
Здесь строка будет изменяться в зависимости от количества элементов в корзине: You have 1 item in your cart
или You have 3 items in your cart
.
Локализация вашей темы или плагина
Чтобы строки перевода с множественным числом работали, необходимо создать файлы переводов (.po
и .mo
). Рассмотрим шаги для локализации вашей темы или плагина:
- Создайте файл шаблона переводов (
.pot
):Используйте инструмент, например, Poedit или WP-CLI, чтобы сгенерировать файл шаблона переводов из вашего кода.
wp i18n make-pot . languages/my-plugin.pot --exclude=tests
- Создайте файлы перевода (
.po
и.mo
):
Откройте .pot
файл в Poedit, переведите строки и сохраните их как .po
и .mo
файлы.
- Загрузите переводы:
Используйте функцию load_textdomain()
в вашем плагине или функции load_theme_textdomain()
в вашей теме, чтобы загрузить переводы.
function my_plugin_load_textdomain() {
load_plugin_textdomain( 'my-text-domain', false, basename( dirname( __FILE__ ) ) . '/languages' );
}
add_action( 'plugins_loaded', 'my_plugin_load_textdomain' );
Заключение
Функция _n()
в WordPress является незаменимым инструментом для корректного перевода строк, учитывающих количество элементов. Понимание её работы и правильное использование поможет вам сделать ваш контент доступным и понятным для глобальной аудитории. Следуя приведённым примерам и рекомендациям, вы сможете эффективно локализовать ваши проекты на WordPress.