WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

load_child_theme_textdomain() WP 2.9.0

Загружает файл перевода дочерней темы (.mo) в память, для дальнейшей работы с ним.

Это обертка для load_theme_textdomain(). Создана для удобного подключения файла перевода для дочерней темы

Создание перевода для подтемы хорошо скажется на оптимизации и структурировании файлов. Например, используется тема twentyfifteen, к которой уже подключаются файлы перевода через load_theme_textdomain() и для темы уже есть перевод в папке languages. Мы создали подтему со множество новых строк с переводом. Мы можем добавить эти строки в файлы родительской темы, но при обновлении мы потеряем изменения. Чтобы этого не произошло, нужно создать еще один файл перевода.

.mo должен называться точно как локаль, например, ru_RU.mo

Следует вызывать во время хука after_setup_theme

Работает на основе: load_theme_textdomain()

Хуков нет.

Возвращает

True/false. True, когда .mo файл подключен, false в противном случае.

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

load_child_theme_textdomain( $domain, $path );
$domain(строка) (обязательный)
Идентификатор, который будет использоваться позднее в функциях перевода: __() _e() можно будет обратиться именно к этой строке перевода. Можно указать такой же как и у родительской темы.
$path(строка)
Путь до папки с файлом .mo. По умолчанию указывается путь до каталога подтемы: get_stylesheet_directory().
По умолчанию: false

Примеры

#1 Подключим файл перевода дочерней темы

add_action( 'after_setup_theme', 'my_child_theme_setup' );
function my_child_theme_setup(){
	load_child_theme_textdomain( 'my_child_theme', get_stylesheet_directory() . '/languages' );
}

.mo файл должен находиться в папке languages в подтеме и иметь название локали языка, например: languages/de_DE.mo.

Код load_child_theme_textdomain: wp-includes/l10n.php VER 5.0.1

<?php
function load_child_theme_textdomain( $domain, $path = false ) {
	if ( ! $path )
		$path = get_stylesheet_directory();
	return load_theme_textdomain( $domain, $path );
}

Cвязанные функции

Из метки: textdomain (файлы переводов po mo)

Еще из метки: localize (локализация Internationalization)

Еще из раздела: Локализация

TeraBit

от солидной фирмы компьютерный мастер спб TeraBit

www.terabit.spb.ru

1 коммент
  • dydaevskiy cайт: techblog.sdstudio.top

    Приветствую друзья. Занимаюсь созданием своей дочерней темы для родительской темы Cactus:
    https://velathemes.com/cactus-theme/

    В упор не могу победить причину из-за которой к моей дочерней теме прикрутить локализацию. На сайте для разработки активен укр. язык в html разметке страницы тег lang выглядит так:

    <html lang="uk" class=" no-svg js no-touch">

    Допустим моя дочерняя тема называется “Child Cactus”, и находится в папке “child_cactus”. Следовательно если разместить в function.php код:

    function my_child_theme_locale() {
    	load_child_theme_textdomain( 'Child Cactus', get_stylesheet_directory() . '/languages' );
    }
    add_action( 'after_setup_theme', 'my_child_theme_locale' );

    и в ней расположить файлы child-cactus_uk.po и child-cactus_uk.mo .
    Все должно заработать и укр локализация должна подхватить из дочерней темы, но все мои попытки тщетны. Прошу помощи, не могу понять все.

    ПС. Не стал описывать все варианты которые я пробовал для решения данной проблемы, но поверьте я тестировал практически все что удалось найти в интернете за последние 3 часа и ничего не помогло в решении.

    Ответить2 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться