load_theme_textdomain()

Загружает переведенные строки темы
Функция WordPress
INT 1.5.0
WordPress Icon

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

Функция load_theme_textdomain() загружает переведенные строки темы.

Она используется для загрузки файлов перевода (.mo) для темы WordPress. Файлы перевода содержат переведенные строки, которые используются в теме для локализации текста. После загрузки файлов перевода, функция делает переведенные строки доступными для использования в теме.

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

load_theme_textdomain( string $domain, string|false $path = false ): bool

Функция load_theme_textdomain() принимает два параметра: $domain и $path.

$domain — обязательный параметр. Уникальный идентификатор текстового домена, используемый для получения переведенных строк.

$path — необязательный параметр. Путь к каталогу, содержащему файлы .mo. По умолчанию: false.

Функция возвращает значение типа bool. Возвращает true, если текстовый домен успешно загружен, и false в противном случае.

<?php
/**
 * Загрузка переводов для темы.
 *
 * @param string $domain Уникальный идентификатор текстового домена.
 * @param string|false $path Путь к каталогу с файлами .mo. По умолчанию: false.
 * @return bool Возвращает true, если текстовый домен успешно загружен, и false в противном случае.
 */
function load_theme_translations( $domain, $path = false ) {
    // Загрузка файлов перевода для указанного текстового домена и пути.
    $result = load_theme_textdomain( $domain, $path );
    if ( $result ) {
        echo 'Текстовый домен успешно загружен.';
    } else {
        echo 'Ошибка загрузки текстового домена.';
    }
    return $result;
}
?>

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

Загрузка переведенных строк темы


/**
 * Загружает переведенные строки темы.
 *
 * @param string $domain Обязательный. Текстовый домен. Уникальный идентификатор для получения переведенных строк.
 * @param string|false $path Опционально. Путь к каталогу, содержащему файл .mo. По умолчанию: false.
 * @return bool Возвращает true, когда textdomain успешно загружен, в противном случае false.
 */
function load_theme_textdomain( $domain, $path = false ) {
    // Код загрузки переведенных строк темы
}

Установка пути к файлу .mo


$domain = 'my-theme';
$path = get_template_directory() . '/languages';
// Устанавливаем путь к файлу .mo
load_theme_textdomain( $domain, $path );

Проверка успешной загрузки textdomain


$domain = 'my-theme';
$path = get_template_directory() . '/languages';
// Устанавливаем путь к файлу .mo
if ( load_theme_textdomain( $domain, $path ) ) {
    echo 'Textdomain успешно загружен!';
} else {
    echo 'Ошибка загрузки textdomain.';
}

Использование нестандартного пути к файлу .mo


$domain = 'my-theme';
$path = WP_CONTENT_DIR . '/themes/my-theme/languages';
// Устанавливаем нестандартный путь к файлу .mo
load_theme_textdomain( $domain, $path );

Изменение textdomain для дочерней темы


$parent_domain = 'parent-theme';
$child_domain = 'child-theme';
$path = get_stylesheet_directory() . '/languages';
// Загружаем переведенные строки родительской темы
load_theme_textdomain( $parent_domain );
// Загружаем переведенные строки дочерней темы
load_child_theme_textdomain( $child_domain, $path );

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

Как загрузить переводы темы с помощью функции load_theme_textdomain()?

Функция load_theme_textdomain() используется для загрузки переведенных строк темы.

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


load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );

В данном примере мы загружаем переводы для темы с текстовым доменом ‘my-theme’. Путь к директории с файлом .mo указывается с помощью функции get_template_directory(), которая возвращает абсолютный путь к директории текущей темы.

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

Путь к директории с файлом .mo можно указать вторым параметром функции load_theme_textdomain().

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


load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );

В данном примере мы указываем путь к директории с файлом .mo как ‘/languages’ внутри текущей темы.

Как проверить успешную загрузку textdomain с помощью функции load_theme_textdomain()?

Функция load_theme_textdomain() возвращает значение true, если textdomain успешно загружен, и false в противном случае.

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


if ( load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' ) ) {
    echo 'Textdomain успешно загружен.';
} else {
    echo 'Ошибка загрузки textdomain.';
}

В данном примере мы проверяем успешную загрузку textdomain для темы с текстовым доменом ‘my-theme’ и выводим соответствующее сообщение.

Как изменить textdomain темы после загрузки с помощью функции load_theme_textdomain()?

Textdomain темы можно изменить с помощью фильтра theme_locale.

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


add_filter( 'theme_locale', function( $locale ) {
    if ( is_rtl() ) {
        return 'my-theme-rtl';
    }
    return $locale;
} );

В данном примере мы изменяем textdomain темы на ‘my-theme-rtl’ для правостороннего языка (RTL).

Какие языки поддерживает функция load_theme_textdomain()?

Функция load_theme_textdomain() поддерживает все языки, для которых существуют переводы темы.

Какие файлы переводов (.mo) поддерживает функция load_theme_textdomain()?

Функция load_theme_textdomain() поддерживает файлы переводов с расширением .mo.

Какие проблемы могут возникнуть при использовании функции load_theme_textdomain()?

При использовании функции load_theme_textdomain() могут возникнуть следующие проблемы:

  • Отсутствие файла перевода (.mo) в указанной директории.
  • Некорректно указанный путь к директории с файлом перевода.
  • Конфликт идентификаторов текстовых доменов с другими темами или плагинами.

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

Вместо использования функции load_theme_textdomain() можно загрузить переводы темы с помощью:

  • Плагина Loco Translate, который позволяет редактировать переводы прямо в административной панели WordPress.
  • Плагина WPML, который предоставляет расширенные возможности для перевода контента на разных языках.
  • Ручного добавления файлов перевода (.mo) в директорию темы.

Функция load_theme_textdomain() в WordPress позволяет загружать переводы темы для поддержки разных языков. Она требует указания уникального идентификатора текстового домена и пути к директории с файлом перевода. В случае успешной загрузки перевода, функция возвращает значение true, иначе — false. При использовании этой функции могут возникнуть проблемы, такие как отсутствие файла перевода или конфликт идентификаторов текстовых доменов. В таких случаях можно воспользоваться альтернативными способами загрузки переводов, такими как использование плагинов или ручное добавление файлов перевода.

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

  • Функция add_theme_support(): добавляет поддержку определенных функций или возможностей в тему.
  • Функция get_locale(): получает текущую локаль для сайта.
  • Функция is_textdomain_loaded(): проверяет, загружен ли указанный текстовый домен.
  • Функция load_child_theme_textdomain(): загружает переведенные строки для дочерней темы.
  • Функция load_muplugin_textdomain(): загружает переведенные строки для многопользовательского плагина.
  • Функция load_plugin_textdomain(): загружает переведенные строки для плагина.
  • Функция load_textdomain(): загружает переведенные строки для указанного текстового домена.
  • Функция unload_textdomain(): выгружает указанный текстовый домен.
  • Хук load_textdomain_mofile: позволяет изменить путь к файлу .mo для загрузки переводов.
  • Класс WP_Locale: предоставляет методы для работы с локализацией и переводами.
Обсуждение