_x()

Получает переведенную строку с контекстом gettext
Функция WordPress
INT 2.8.0
WordPress Icon

Описание функции

Функция _x() используется для получения переведенной строки с контекстом с помощью gettext. Она принимает текст, контекст и домен (необязательный параметр) и возвращает переведенную строку без разделителя.

Использование

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

Этот код демонстрирует использование функции _x() с указанием всех параметров.

  • $text (обязательный): Текст для перевода.
  • $context (обязательный): Контекстная информация для переводчиков.
  • $domain (необязательный): Домен текста. Уникальный идентификатор для получения переведенных строк. По умолчанию ‘default’.

Функция возвращает переведенную строку с контекстом без разделителя.


/**
 * Пример использования функции _x()
 *
 * Получает переведенную строку с контекстом.
 *
 * @param string $text    Текст для перевода.
 * @param string $context Контекстная информация для переводчиков.
 * @param string $domain  Домен текста. Уникальный идентификатор для получения переведенных строк. По умолчанию 'default'.
 * @return string         Переведенная строка с контекстом без разделителя.
 */
$text = _x( 'Hello', 'Greeting', 'my-theme' );

В этом примере функция _x() используется для получения переведенной строки «Hello» с контекстом «Greeting» из домена «my-theme». Результат сохраняется в переменную $text.

Примеры использования

Перевод контекстной строки


/**
 * Перевод контекстной строки.
 *
 * @param string $text    Текст для перевода.
 * @param string $context Контекстная информация для переводчиков.
 * @param string $domain  Текстовый домен. Уникальный идентификатор для получения переведенных строк. По умолчанию 'default'.
 * @return string         Переведенная контекстная строка без разделителя.
 */
_x( $text, $context, $domain );

Функция _x() используется для получения переведенной строки с контекстом с помощью gettext.

Использование контекста для перевода


// Пример использования контекста для перевода
_x( 'Apple', 'Fruit', 'my-theme' );

В этом примере мы переводим строку «Apple» с контекстом «Fruit» и текстовым доменом «my-theme».

Уникальный идентификатор для перевода


// Использование уникального идентификатора для перевода
_x( 'Hello', 'Greeting', 'my-theme' );

В этом примере мы переводим строку «Hello» с контекстом «Greeting» и текстовым доменом «my-theme». Уникальный идентификатор «my-theme» позволяет получить переведенную строку из соответствующего файла перевода.

Изменение текстового домена


// Изменение текстового домена
_x( 'Hello', 'Greeting', 'my-plugin' );

В этом примере мы переводим строку «Hello» с контекстом «Greeting» и текстовым доменом «my-plugin». Изменение текстового домена позволяет использовать отдельный файл перевода для плагина или темы.

Вопросы и ответы

Как получить переведенную строку с контекстом с помощью функции _x()?

Для получения переведенной строки с контекстом с помощью функции _x() необходимо передать текст для перевода, контекст информации для переводчиков и, при необходимости, текстовый домен.


    $translated_string = _x( 'Hello', 'Greeting', 'my-theme' );

Как указать контекст для переводчиков при использовании функции _x()?

Для указания контекста при использовании функции _x() необходимо передать вторым параметром строку с информацией для переводчиков.


    $translated_string = _x( 'Hello', 'Greeting', 'my-theme' );

Как указать текстовый домен при использовании функции _x()?

Для указания текстового домена при использовании функции _x() необходимо передать третьим параметром строку с уникальным идентификатором для получения переведенных строк. По умолчанию используется текстовый домен «default».


    $translated_string = _x( 'Hello', 'Greeting', 'my-theme' );

Как получить переведенную строку с контекстом без использования символа «|»?

Для получения переведенной строки с контекстом без использования символа «|» можно использовать функцию _x() с указанием контекста вторым параметром.


    $translated_string = _x( 'Hello', 'Greeting', 'my-theme' );

Какой текстовый домен используется по умолчанию при вызове функции _x()?

При вызове функции _x() по умолчанию используется текстовый домен с идентификатором ‘default’.

Можно ли использовать функцию _x() без указания контекста?

Нет, функция _x() требует обязательного указания контекста. Контекст предоставляет информацию для переводчиков, чтобы они могли выбрать правильный перевод в зависимости от контекста использования строки.

Как получить переведенную строку с контекстом из другого текстового домена?

Для получения переведенной строки с контекстом из другого текстового домена можно использовать функцию translate_with_gettext_context(). Эта функция принимает аргументы $text, $context и $domain и возвращает переведенную строку с контекстом.


$translated_string = translate_with_gettext_context( $text, $context, $domain );

Какие еще функции можно использовать для перевода строк с контекстом в WordPress?

В WordPress также доступны другие функции для перевода строк с контекстом:

  • esc_attr_x( $text, $context, $domain ) — переводит строку с контекстом и экранирует ее для использования в HTML атрибутах.
  • esc_html_x( $text, $context, $domain ) — переводит строку с контекстом и экранирует ее для использования в HTML.
  • _ex( $text, $context, $domain ) — аналогична функции _x(), но возвращает переведенную строку с контекстом и экранирует ее для использования в HTML.

Функция _x() в WordPress используется для получения переведенной строки с gettext контекстом. Она требует указания контекста и может быть использована с различными текстовыми доменами. Для перевода строк с контекстом также доступны другие функции, такие как esc_attr_x(), esc_html_x() и _ex().

Связанные элементы

  • Функция esc_html_x(): Возвращает строку с экранированными HTML-сущностями, переведенную с использованием контекста gettext.
  • Функция esc_attr_x(): Возвращает строку с экранированными HTML-атрибутами, переведенную с использованием контекста gettext.
  • Функция esc_attr_e(): Выводит экранированную строку с HTML-атрибутами, переведенную с использованием контекста gettext.
  • Функция esc_html_e(): Выводит экранированную строку с HTML-сущностями, переведенную с использованием контекста gettext.
Обсуждение