_x()

Функция возвращает перевод строки с учётом контекста, в котором она используется. Контекст задаётся в отдельном параметре.

Контекст необходим, когда переводимое слово или фраза может иметь несколько значений, а следовательно, и перевод будет отличаться.

Также рекомендую вам видеоурок про перевод тем и видеоурок про перевод плагинов.

_x( $text, $context, $domain = 'default' )

Параметры

$text
Строка для перевода.
$context
Контекст, в рамках которого используется функция.
$domain
Идентификатор перевода, подробнее здесь.

Пример использования _ex() с настройкой PoEdit

В своём руководстве по переводу плагинов и тем WP я писал, что есть такие функции, как __() и _e(), куда в качестве параметра передаётся строка, которую WordPress должен будет перевести, выглядит это так:

_e( 'bank', 'misha_test' );

Окей… А вы знаете, как переводится слово «bank»? Ведь это не только «банк», а ещё и «берег»! По сути это слова-омонимы (одинаковые по написанию и разные по значению). И как это обозначить в переводе?

Благодаря функции _x() никаких хитрых манипуляций делать не придется.

echo _x( 'bank', 'bank of the river', 'misha_test' ); // берег реки
echo _x( 'bank', 'bank of England', 'misha_test' ); // банк Англии

Функцию не обязательно использовать только для омонимов, это также могут быть и фразы, смысл которых различен в зависимости от того, в каком контексте они используются.

В Poedit функция добавляется в виде строки _x:1,2c, вот так:

Настройка функции _x() в poedit

После того, как мы добавили необходимые настройки в файл перевода в Poedit, можно нажать кнопку синхронизации «Обновить каталог».

Перевод омонимов в WordPress в программе Poedit

Повторюсь, если вам что-то непонятно, пожалуйста, прочтите сначала моё руководство по переводу плагинов и тем WordPress.

Также вы можете использовать функцию _ex(), если хотите не возвращать результат, а сразу вывести его на экран. Можно и echo _x() конечно же.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код меньше одной строчки, то можно и в <code></code>.

Нажав на кнопку, вы соглашаетесь с тем, как обрабатываются персональные данные.