Описание ngettext_{$domain}
— Filter
Хук ngettext_{$domain} позволяет изменять строки, которые подготавливаются для перевода, в зависимости от количества. Он срабатывает во время вызова функции ngettext() и позволяет кастомизировать переводы для различных контекстов и доменов
Примеры использования
Пример изменения перевода строки в зависимости от количества:
add_filter('ngettext_custom', function($translated_text, $single, $plural, $count, $domain) {
if ($domain === 'my-plugin') {
if ($count === 1) {
return 'Единственный товар';
} else {
return 'Множество товаров';
}
}
return $translated_text;
}, 10, 5);
В этом примере мы изменяем перевод для домена ‘my-plugin’ в зависимости от количества товаров.
Пример изменения текста перевода для конкретного домена:
add_filter('ngettext_custom', function($translated_text, $single, $plural, $count, $domain) {
if ($domain === 'woocommerce') {
if ($count === 1) {
return 'Товар';
} else {
return 'Товары';
}
}
return $translated_text;
}, 10, 5);
Здесь мы меняем текст перевода для WooCommerce в зависимости от количества товаров.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить поведение или текст перевода в зависимости от количества объектов
– Производительность
Хук может оказать небольшое влияние на производительность, особенно если используется в высоконагруженных местах
– Предупреждения
Будьте аккуратны с доменами и контекстами, чтобы изменения применялись только там, где это необходимо
Альтернативы
Тип: filter
Этот хук позволяет изменять текстовые строки без учета количества
Используйте его, если вам не нужно различать единственное и множественное число