gettext_with_context хук-фільтрWP 2.8.0

Дозволяє змінити перекладений текст, який перекладається із зазначенням контексту перекладу – функція _x() .

Це фільтр для функції _x() .

Використання

add_filter( 'gettext_with_context', 'wp_kama_gettext_with_context_filter', 10, 4);

/**
 * Function for `gettext_with_context` filter-hook.
 *
 * @param string $translation Translated text.
 * @param string $text Text to translate.
 * @param string $context Context information for the translators.
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 *
 * @return string
 */
function wp_kama_gettext_with_context_filter( $translation, $text, $context, $domain ){

	// Filter...
	return $translation;
}
$translation
(рядок)
Перекладений текст. У файлах
*.po позначений як
msgstr.
$text
(рядок)
Текст для перекладу. У файлах
*.po позначений як
msgid.
$context
(рядок)
Контекстна інформація для перекладачів. У файлах
*.mo позначений як
msgctxt.
$domain
(рядок)
Домен тексту. Унікальний ідентифікатор для одержання перекладених рядків. Вказується під час реєстрації перекладу.

Приклади

0

#1 Змінимо назву статусу “На затвердженні” (pending)

Змінимо у списку Записів фразу “На затвердженні” на “Чекає на перевірку модератором” тільки в потрібному місці.

Слово “Pending” використовується у різному контексті:

#: wp-includes/post.php:342
msgctxt "post status"
msgid "Pending"
msgstr "На затвердженні"

#: wp-includes/post.php:392
msgctxt "request status"
msgid "Pending"
msgstr "В очікуванні"

#: wp-includes/post.php:928
msgid "Pending"
msgstr "В очікуванні"

У нашому випадку переклад запитується за допомогою _x() так:

_x( 'Pending', 'post status' )

Так як через фільтр проходить безліч перекладів, а нам необхідно перекласти певну фразу і тільки в потрібному місці, то використовуємо умову:

  • Запрошується переклад слова “Pending”
  • Запитується у контексті post status
  • Запрошується домен default (переклад WordPress)
add_filter( 'gettext_with_context', 'change_gettext_pending', 10, 4);

function change_gettext_pending( $translation, $text, $context, $domain ) {
	if ( $text === 'Pending' && $context === 'post status' && $domain === 'default' ) {
		$translation = 'Чекає на перевірку модератора';
	}

	return $translation;
}

список змін

З версії 2.8.0Введено.

Де викликається хук

gettext_with_context

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *