Пользовательский тип записи и локализация меток таксономий не работают


После нескольких часов поиска в сети я решил задать здесь свою проблему. Я нахожусь в среде с несколькими сайтами, и у меня есть этот пользовательский код типа записи:

$products_labels = array(
    'name'                => _x( 'Prodotti', 'General post type name', 'textdomain' ),
    'singular_name'       => _x( 'Prodotto', 'General post type name', 'textdomain' ),
    'menu_name'           => _x( 'Prodotti', 'General post type menu label', 'textdomain' ),
    'parent_item_colon'   => __( 'Genitore elemento:', 'textdomain' ),
    'all_items'           => __( 'Tutti gli elementi', 'textdomain' ),
    'view_item'           => __( 'Vedi', 'textdomain' ),
    'add_new_item'        => __( 'Aggiungi nuovo elemento', 'textdomain' ),
    'add_new'             => __( 'Aggiungi nuovo', 'textdomain' ),
    'edit_item'           => __( 'Modifica', 'textdomain' ),
    'update_item'         => __( 'Aggiorna', 'textdomain' ),
    'search_items'        => __( 'Cerca', 'textdomain' ),
    'not_found'           => __( 'Non trovato', 'textdomain' ),
    'not_found_in_trash'  => __( 'Non trovato nel cestino', 'textdomain' ),
);
$products_args = array(
    'label'               => __( 'Prodotti', 'textdomain' ),
    'description'         => __( 'Prodotti', 'textdomain' ),
    'labels'              => $products_labels,
    'supports'            => array( 'title', 'thumbnail', 'editor', 'excerpt', 'revisions', 'page-attributes' ),
    'taxonomies'          => array( 'product_category' ),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'menu_icon'           => '',
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'capability_type'     => 'page',
);

Один из моих сайтов на немецком языке, и бэк-офис также настроен на немецком языке. Все строки переведены правильно (интерфейс работает без проблем), а de_DE.mo файл хорошо загружен, но метки с точки зрения администратора не локализованы, и я не могу понять, почему нет :(

Это область загрузки текста

load_theme_textdomain( 'textdomain', THEMEPATH . '/languages' );

Пожалуйста, найдите прикрепленное изображение enter image description here

Надеюсь, вы сможете мне помочь:(

ОБНОВЛЕНИЕ:

Я заметил, что все строки, написанные в functions.php файлы не переводятся. Единственный способ перевести их - вставить строки в новую функцию, вызываемую действием инициализации.

Пример:

НЕ ПЕРЕВЕДЕНО

$str = __('My string','textdomain');

ПЕРЕВЕДЕНО:

function my_function_name()
{
    $str = __('My string','textdomain');
    echo $str;
}

add_action('init','my_function_name', 0);

ОБНОВЛЕНИЕ 2:

РЕШЕНО. Вы должны загрузить домен load_theme_textдомен не действием, а непосредственно записанным в первой строке файла functions.php Теперь мои пользовательские метки типа сообщений наконец переведены:)

Author: user2660802, 2014-04-30

2 answers

РЕШЕНО. Вы должны загрузить домен load_theme_text не действием, а непосредственно в первой строке файла functions.php Теперь мои пользовательские метки типа сообщений наконец переведены:)

 2
Author: user2660802, 2014-05-04 10:28:26

В соответствии с документацией after_setup_theme следует использовать в качестве крючка для загрузки переводов.

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup(){
    load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );
}
 0
Author: Adrian, 2018-10-29 09:17:53