Описание gettext_{$domain}
— Filter
Хук gettext_{$domain} позволяет изменять строки перевода для заданного текстового домена. Он срабатывает на этапе, когда WordPress загружает переводы, и позволяет модифицировать переводимые строки перед их выводом на экран
Примеры использования
Пример изменения перевода строки ‘Hello World’ на ‘Привет, мир’:
add_filter('gettext_my_domain', function($translated_text, $text, $domain) {
if ($text === 'Hello World') {
return 'Привет, мир';
}
return $translated_text;
});
В этом примере мы заменяем строку ‘Hello World’ на ‘Привет, мир’ для домена ‘my_domain’.
Пример изменения множества строк перевода:
add_filter('gettext_my_domain', function($translated_text, $text, $domain) {
switch ($text) {
case 'Welcome':
return 'Добро пожаловать';
case 'Goodbye':
return 'До свидания';
}
return $translated_text;
});
Здесь мы используем конструкцию switch для изменения нескольких строк перевода.
Пример изменения текста в зависимости от контекста:
add_filter('gettext_my_domain', function($translated_text, $text, $domain) {
if ($text === 'Apple') {
return 'Яблоко';
} elseif ($text === 'Apple (fruit)') {
return 'Яблоко (фрукт)';
}
return $translated_text;
});
В этом примере мы изменяем текст ‘Apple’ в зависимости от контекста.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить строки перевода для конкретного текстового домена в вашем плагине или теме
– Производительность
Поскольку этот хук применяется к строкам перевода, влияние на производительность будет минимальным, если не обрабатывать слишком много строк
– Предупреждения
Убедитесь, что изменения не конфликтуют с существующими переводами и не нарушают функциональность плагина или темы
Альтернативы
Тип: filter
Этот хук позволяет изменять строки перевода без привязки к конкретному домену
Используйте его, если требуется изменить строки перевода во всех текстовых доменах