Получение переводов для текстового домена в WordPress: функция get_translations_for_domain()

# Получение переводов для текстового домена в WordPress

Функция get_translations_for_domain() позволяет получить экземпляр переводов для заданного текстового домена. Если переводов для этого домена нет, функция вернет пустой экземпляр.

- **Версия:** WP 2.8.0
- **Задействуется в:** translate()

## Возвращаемое значение

Функция возвращает экземпляр Translations или NOOP_Translations, если переводов нет.

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

Для использования функции необходимо вызвать её с аргументом — текстовым доменом:

```php
get_translations_for_domain( $domain );

Аргументы

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

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

Получение данных для плагина Classic Editor

Плагин Classic Editor использует текстовый домен classic-editor. Давайте получим данные для этого домена:

$data = get_translations_for_domain( 'classic-editor' );

print_r( $data);

Результат

Функция выдаст следующий массив данных:

MO Объект
(
    [_nplurals] => 3
    [filename:MO:private] => путь_к_файлу/classic-editor-ru_RU.mo
    [entries] => Массив
        (
            [Allow site admins to change settings] => Translation_Entry Объект
                (...свойства...)

            [Allow users to switch editors] => Translation_Entry Объект
                (...свойства...)

            // Здесь будут и другие записи
        )
)

Печать оригинала и перевода

Чтобы вывести все оригинальные строки и их переводы, можно использовать следующий код:

$data = get_translations_for_domain( 'classic-editor' );

if ( $data instanceof MO && $data->entries ) {
    foreach ( $data->entries as $entry ) {
        echo "Оригинальная строка: {$entry->singular} n";
        echo "Переведенная строка: {$entry->translations[0]} nn";
    }
}

Результат:

Функция выдаст что-то вроде:

Оригинальная строка: Allow site admins to change settings 
Переведенная строка: Разрешить администраторам сайта изменять настройки 

Оригинальная строка: Allow users to switch editors 
Переведенная строка: Разрешить пользователям переключение редакторов 

... и так далее

Примечания

  • Глобальная переменная: $l10n — массив всех загруженных текстовых доменов.

Изменения

Функция была впервые представлена в версии 2.8.0.

Код функции

Ниже представлен код функции get_translations_for_domain():

function get_translations_for_domain( $domain ) {
    global $l10n;
    if ( isset( $l10n[ $domain ] ) || ( _load_textdomain_just_in_time( $domain ) && isset( $l10n[ $domain ] ) ) ) {
        return $l10n[ $domain ];
    }

    static $noop_translations = null;
    if ( null === $noop_translations ) {
        $noop_translations = new NOOP_Translations();
    }

    $l10n[ $domain ] = &$noop_translations;

    return $noop_translations;
}

Похожие функции

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

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

  • is_textdomain_loaded()
  • load_plugin_textdomain()
  • load_theme_textdomain()
  • wp_set_script_translations()

Эти функции помогут вам управлять переводами в ваших темах и плагинах WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *