WordPress не поддерживает перевод функций меток _x () нестандартного типа записей - PullRequest
0 голосов
/ 29 сентября 2019

В разрабатываемой мной теме WordPress я зарегистрировал пользовательский тип записи под названием «Проект» следующим образом.

function add_custom_post_type() {

register_post_type( 'project', 
    array(
        'label'         => __( 'Projects', 'maria' ),
        'labels'        => array(
            'name'               => _x( 'Projects', 'post type general name', 'maria' ),
            'singular_name'      => _x( 'Project', 'post type singular name', 'maria' ),
            'menu_name'          => _x( 'Projects', 'admin menu', 'maria' ),
            'name_admin_bar'     => _x( 'Project', 'add new on admin bar', 'maria' ),
            'add_new'            => _x( 'Add New', 'project', 'maria' ),
            'add_new_item'       => __( 'Add New Project', 'maria' ),
            'new_item'           => __( 'New Project', 'maria' ),
            'edit_item'          => __( 'Edit Project', 'maria' ),
            'view_item'          => __( 'View Project', 'maria' ),
            'all_items'          => __( 'All Projects', 'maria' ),
            'search_items'       => __( 'Search Projects', 'maria' ),
            'parent_item_colon'  => __( 'Parent Projects:', 'maria' ),
            'not_found'          => __( 'No Projects found.', 'maria' ),
            'not_found_in_trash' => __( 'No Projects found in Trash.', 'maria' )
            ),
        'public'        => true,
        'menu_position' => 5,
        'supports'      => array( 'title', 'editor', 'thumbnail' ),
        'rewrite'       => array( 'slug' => __( 'project' ))
        )
    );
}
add_action( 'init', 'add_custom_post_type' );

Используя приложение Poedit, я сейчас пытаюсь перевести метки своего пользовательскогоТип сообщения на немецкий.Я импортирую функции / ключевые слова __, _e и _x.Строки отображаются должным образом.

https://abload.de/img/screenshot2019-09-29av4jhv.png (снимок экрана)

Однако после перевода моего .po-файла и компиляции .mo-файла для локализации WordPress WordPress только кажется, чтособлюдать переводы, которые я ввожу для функций __ и _e, игнорируя функции _x.

https://abload.de/img/screenshot2019-09-29ah7jxx.png (снимок экрана)

В моей панели инструментов *Кнопки 1022 * и Add New по-прежнему отображаются на английском языке, несмотря на то, что переведены на Projekte и Erstellen соответственно.

Что я делаю не так?Большое спасибо заранее.

1 Ответ

0 голосов
/ 29 сентября 2019

Хорошо, хотя я не смог решить проблему с тем, что WordPress не поддерживает переводы для функций _x, я получил метки для правильного отображения, используя следующий обходной путь.

В моей функции register_post_typeЯ изменил все _x функции на __ функции (удалив аргумент контекста в процессе).Окончательный рабочий код ниже:

function add_custom_post_type() {

register_post_type( 'project', 
    array(
        'label'         => __( 'Projects', 'maria' ),
        'labels'        => array(
            'name'               => __( 'Projects', 'maria' ),
            'singular_name'      => __( 'Project', 'maria' ),
            'menu_name'          => __( 'Projects', 'maria' ),
            'name_admin_bar'     => __( 'Project', 'maria' ),
            'add_new'            => __( 'Add New', 'maria' ),
            'add_new_item'       => __( 'Add New Project', 'maria' ),
            'new_item'           => __( 'New Project', 'maria' ),
            'edit_item'          => __( 'Edit Project', 'maria' ),
            'view_item'          => __( 'View Project', 'maria' ),
            'all_items'          => __( 'All Projects', 'maria' ),
            'search_items'       => __( 'Search Projects', 'maria' ),
            'parent_item_colon'  => __( 'Parent Projects:', 'maria' ),
            'not_found'          => __( 'No Projects found.', 'maria' ),
            'not_found_in_trash' => __( 'No Projects found in Trash.', 'maria' )
            ),
        'public'        => true,
        'menu_position' => 5,
        'supports'      => array( 'title', 'editor', 'thumbnail' ),
        'rewrite'       => array( 'slug' => __( 'project' ))
        )
    );
}
add_action( 'init', 'add_custom_post_type' );
...