web-dev-qa-db-fra.com

Internationalisation: ne pas charger le texte traduit du plugin

J'essaie d'internationaliser le plugin que je crée mais il ne semble pas afficher les textes traduits traduits dans le fichier .po.

Tout d’abord, j’ai fait référence aux sources suivantes: https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/https://www.sitepoint.com/wordpress-i18n-make-your-plugin-translation-ready/https://premium.wpmudev.org/blog/ultimate-guide-wordpress-localization/#plugins

Voici mon répertoire actuel comme:

--my-custom-dragon-plugin
    --my-custom-dragon-plugin.php
    --languages
        --my-custom-dragon-plugin-de_DE.mo
        --my-custom-dragon-plugin-de_DE.po

Initialement, mon domaine de texte n’était pas le plugin (n’est-il pas possible d’utiliser un autre domaine de texte?). J’ai donc dû le changer selon le deuxième lien que j’ai posté, il est mentionné:

Le domaine de texte doit correspondre au slug du plugin. Par exemple, si votre plug-in est un fichier unique appelé sample-plugin.php ou s'il est contenu dans un dossier appelé sample-plugin, le domaine de texte doit être sample-plugin.

Donc, dans mes fichiers php, j'ai quelque chose comme __('Read More', my-custom-dragon-plugin)

Dans mon my-custom-dragon-plugin.php, j'ai la définition du plugin et la fonction qui charge le domaine de texte:

/*
    Plugin Name: My Custom Dragon
    Plugin URI: https://www.xxxxxx.de/
    Description: This is a plugin customized for my dragons.
    Author: Jedragon
    Text Domain: my-custom-dragon-plugin
    Domain Path: /languages/
    Version: 0.1.0
*/

add_action( 'plugins_loaded', 'load_my_textdomain' );

function load_my_textdomain() {

    $domain = 'my-custom-dragon-plugin';
     load_plugin_textdomain( $domain, false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

}

J'utilise aussi POEdit pour mes fichiers .po.

Lorsque j'essaie de vérifier si les modifications sont reflétées, le texte reste en anglais, même si je change la langue du site.

Y a-t-il quelque chose que j'ai oublié ou que je fais mal?

Merci d'avance.

1
Jeda Dragon

Je viens de le trouver, c'est parce que j'ai manqué de placer le domaine de texte dans '' dans mon code php.

CA devrait etre

__('Read More', 'my-custom-dragon-plugin');

au lieu de

__('Read More', my-custom-dragon-plugin);

Maintenant, ma traduction fonctionne. Je me demande simplement s'il est possible d'utiliser un domaine de texte personnalisé au lieu de mon long plugin.

J'ai été capable de comprendre avant d'avoir vu la réponse de @mat. J'ai voté votre commentaire bien que @ mat.

2
Jeda Dragon