web-dev-qa-db-fra.com

Créez un thème personnalisé prêt à être traduit

J'ai créé mon propre thème, maintenant je souhaite le rendre traduisible.

J'ai fait deux fichiers:

theme.pot

msgid "know_more"
msgstr "Vuoi saperne di più?"

it_IT.po

msgid "know_more"
msgstr "Vuoi saperne di più?"

Ensuite, dans le fichier de thème d'index, j'ai écrit:

<h2><?php _e('know_more',''); ?></h2>

Mais lorsque je lance le site, il apparaît simplement:know_more

2
WalterV

Pour le faire correctement, vous devez générer un fichier .mo valide et charger le domaine de texte dans votre thème functions.php:

function wpse222346_localize_theme() {

    load_theme_textdomain( 'your_theme_domain', get_template_directory() . '/languages' );

}

add_action( 'after_setup_theme', 'wpse222346_localize_theme' );

Vous pouvez consulter le codex WordPress pour plus d’informations sur la fonction load_theme_textdomain: https://codex.wordpress.org/Function_Reference/load_theme_textdomain

Ensuite, vous appelez les chaînes à traduire en utilisant le domaine de texte de votre thème:

<h2><?php _e( 'know_more', 'your_theme_domain' ); ?></h2>

De plus, il est fortement conseillé d'utiliser un outil pour automatiser la création des fichiers POT. Cela rend la maintenabilité beaucoup plus facile. Il existe de nombreuses options, telles que Poedit , plusieurs générateurs en ligne, makepot.php et même un très joli plugin pour le faire depuis le tableau de bord WordPress appelé LocoTranslate . La plupart d'entre eux vous aideront également à créer les fichiers .PO et .MO.

3
Luis Sanz