web-dev-qa-db-fra.com

Localisation des plugins

je viens de construire mon premier plugin pour wp, et même si ce n'est pas une bonne "poésie de code";) cela fonctionne comme il se doit. C'est un plugin qui transforme la galerie wp par défaut à l'aide du plugin jViewery de GalleryView 3.0 ( http://spaceforaname.com/galleryview ).

La seule chose que je ne suis pas capable de faire est la localisation. La localisation de ce plug-in signifie la traduction de l'interface d'administration, où quelqu'un peut configurer les options du plug-in jquery pour modifier l'aspect de la galerie résultante.

J'ai essayé de suivre les millions de tutoriels présents sur le Web, de lire beaucoup de messages à ce sujet sur les forums et de suivre les directives du codex ... mais toujours sans succès.

Voici ce que j'ai fait:

  1. Chaque ligne de texte est dans une fonction gettext (__ et _e)
  2. En utilisant poedit, j'ai créé les fichiers .po et .mo en analysant le répertoire du plugin (tout allait bien), puis j'ai ajouté des traductions sur ce fichier.
  3. J'ai nommé le fichier .po comme celui-ci NAME-OF-THE-PLUGIN-it_IT.po (le fichier .mo a été généré avec le même nom)
  4. J'ai placé les fichiers de traduction dans le dossier du plugin /languages (le nom du dossier est le même que celui du plugin et des fichiers de traduction)
  5. Ensuite, j'ai essayé d'ajouter la fonction load_plugin_textdomain à l'intérieur du fichier de plugin principal. J'ai essayé parce qu'il n'y avait aucun moyen de le faire fonctionner.

La seule chose sur laquelle je ne suis pas sûr est le fait que le plugin que j'ai créé ne soit pas sous une fonction class + constructor ... juste parce que je ne suis toujours pas aussi doué pour le codage.

J'ai mis le load_plugin_textdomain à l'intérieur d'un add_action sur init, comme ceci:

add_action('init', 'gw_load_translation_file');

function gw_load_translation_file() {
    // relative path to WP_PLUGIN_DIR where the translation files will sit:
    $plugin_path = dirname(plugin_basename( __FILE__ ) .'/languages' );
    load_plugin_textdomain( 'gallery-view-for-wordpress', false, $plugin_path );
}

Les lignes ci-dessus ne sont pas dans une logique, elles sont simplement dans le fichier de plugin principal, comme ça.

Voici un exemple de mon utilisation des fonctions de gettext:

<h3><?php _e('Panel Options', 'gallery-view-for-wordpress') ?></h3>

Qu'est-ce que je n'ai pas compris?

2
bluantinoo

$plugin_path = dirname( plugin_basename( __FILE__ ) ) . '/languages/';

4
zeo