web-dev-qa-db-fra.com

Le type de message personnalisé et les étiquettes des taxonomies ne fonctionne pas

après quelques heures de recherches sur le net, j'ai décidé de poser ici mon problème. Je suis dans un environnement multi-site et j'ai ce code de type de message personnalisé:

$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',
);

L'un de mes sites est en langue allemande et le backoffice est également en allemand. Toutes les chaînes sont correctement traduites (l'interface fonctionne sans problème) et le fichier de_DE.mo est bien chargé, mais les étiquettes du point de vue de l'administrateur ne sont pas localisées et je ne comprends pas pourquoi :(

C'est le domaine de chargement du texte

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

les pls trouvent l'image attachée enter image description here

J'espère que vous pourrez m'aider :(

METTRE À JOUR:

Je remarque que toutes les chaînes écrites dans le fichier functions.php ne sont pas traduites. La seule façon de les traduire est d'insérer des chaînes dans une nouvelle fonction appelée action init.

exemple:

NON TRADUIT

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

TRADUIT:

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

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

MISE À JOUR 2:

Résolu Vous devez charger le domaine load_theme_text non par action, mais directement écrit en première ligne du fichier functions.php. Maintenant, mes étiquettes de type publication personnalisées sont enfin traduites :)

2
user2660802

Résolu Vous devez charger le domaine load_theme_text non par action, mais directement écrit en première ligne du fichier functions.php. Maintenant, mes étiquettes de type publication personnalisées sont enfin traduites :)

1
user2660802

Selon le documentationafter_setup_theme devrait être utilisé comme crochet pour charger les traductions.

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup(){
    load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );
}
0
Adrian