# Получение переводов для текстового домена в 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.