2017-08-05 2 views
1

Je travaille sur un plugin Wordpress personnalisé mais je n'arrive pas à le préparer en multi-lang.Wordpress Plugin traduction - load_plugin_textdomain

Il charge correctement le fichier .mo de la langue principale, mais lors du changement de langue (en utilisant WPML), il affiche toujours la traduction de la langue principale (dans ce cas l'allemand). Alors quand je suis en anglais, ça montre encore les traductions allemandes.

Voici mon code:

dans l'en-tête:

/* 
Plugin Name: MM Jobs 
Plugin URI: http://example.com/ 
Description: Custom Jobs Plugin to create new Jobs 
Version: 1.3.84 
Author: Jekey 
Author URI: http://example.com/ 
Text Domain: mm-jobs 
Domain Path: /languages 
*/ 

alors:

function mm_jobs_plugins_loaded() { 
     load_plugin_textdomain('mm-jobs', false, dirname(plugin_basename(__FILE__)) . '/languages/'); 
    } 
    add_action('plugins_loaded', 'mm_jobs_plugins_loaded', 0); 

.mo fichiers sont corrects, car il charge déjà la traduction allemande. Nommé: mm-jobs-en_US.mo ou mm-jobs-de_DE.mo sous/plugins/mm-jobs/languages ​​/

Vous avez une idée de l'origine du problème?

Répondre

1

Si quelqu'un a le même problème. J'avais

get_plugin_data(__FILE__); 

dans mon code. Cela a provoqué l'exécution d'une fonction wp_core où il charge le textdomain, donc mon en_US.mo a été remplacé par de_DE.mo

Je ne sais pas pourquoi get_plugin_data() a pris le mauvais fichier-lang. Il semble avoir choisi la bonne pour les différents plugins qui utilisent la fonction.