Si certaines parties de votre thème ou extension apparaissent non traduites après avoir utilisé PTC, utilisez ce guide pour vérifier si la chaîne fait partie de votre projet et si WordPress charge le fichier correct.
Vérifiez si la chaîne est disponible dans PTC
Depuis le tableau de bord PTC, accédez à l’onglet Traductions et recherchez la chaîne d’origine. Si vous ne la voyez pas, PTC ne l’a pas reçue. Cela signifie généralement l’une des choses suivantes :
- La chaîne est manquante dans votre fichier POT
Si votre fichier POT n’inclut pas toutes les chaînes traduisibles, recréez-le à l’aide de WP-CLI. Ensuite, suivez les étapes de notre guide d’internationalisation des thèmes et extensions WordPress depuis le début.
- Le texte n’est pas inclus dans une fonction GetText
Assurez-vous que tout le texte traduisible est inclus dans __()
ou _e()
et utilise le domaine de texte correct.
Exemple :
__('Hello, world!', 'your-plugin');
Pour plus de détails, consultez l’étape 2 de notre guide de traduction des thèmes et extensions WordPress.
- Les chaînes JavaScript n’ont pas été marquées comme traduisibles
Si votre extension inclut du texte traduisible en JavaScript :
- Accédez à PTC → Paramètres et cliquez sur Fichiers surveillés. Modifiez le fichier de ressources concerné et activez « S’agit-il d’un projet WordPress avec JavaScript localisable ? »

Cela indique à PTC d’analyser les fichiers JavaScript à la recherche de chaînes traduisibles. Il régénérera les traductions et créera une nouvelle demande de fusion avec les fichiers mis à jour.
- Assurez-vous que WordPress sait où charger les fichiers de traduction
.json
créés par PTC.
Si les fichiers .json
sont placés dans le répertoire /languages/
de votre thème ou extension, appelez wp_set_script_translations()
avec le chemin correct.
Pour les extensions :
wp_set_script_translations( 'script-handle', 'text-domain', plugin_dir_path( __FILE__ ) . 'languages' );
Pour les thèmes :
wp_set_script_translations( 'script-handle', 'text-domain', get_template_directory() . '/languages' );
Cela indique explicitement à WordPress de charger les fichiers .json
depuis le dossier de votre thème ou extension.
Confirmez que WordPress charge vos fichiers de traduction
Si la chaîne traduite apparaît dans PTC mais ne s’affiche toujours pas dans votre extension, il se peut que WordPress ne charge pas le fichier de traduction correct. Vérifiez les points suivants :
- Le domaine de texte est chargé correctement
Si vous utilisez des extensions intégrées ou plusieurs domaines, assurez-vous que chacun est chargé à l’aide de load_plugin_textdomain()
ou load_theme_textdomain()
.
- Les traductions de PTC ne sont pas remplacées
Par défaut, WordPress donne la priorité aux fichiers de traduction dans /wp-content/languages/
. Si votre thème ou extension possède des traductions créées par la communauté WordPress, elles peuvent remplacer vos fichiers .mo intégrés.
Pour vous assurer que WordPress charge vos fichiers .mo à la place, appliquez le filtre load_textdomain_mofile
.
Exemple d’utilisation pour les extensions
Ajoutez la fonction de filtre au fichier PHP principal de votre extension (par exemple, my-plugin.php) :
function my_plugin_load_embedded_translation_file( $mofile, $domain ) {
// Replace 'my-domain' with your actual plugin's text domain
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/plugins/' ) ) {
$locale = apply_filters( 'plugin_locale', determine_locale(), $domain );
$local_mofile = WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) . '/languages/' . $domain . '-' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile; // Use bundled translation if available
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_plugin_load_embedded_translation_file', 10, 2 );
Exemple d’utilisation pour les thèmes
Ajoutez la fonction de filtre dans le fichier functions.php de votre thème :
function my_theme_load_embedded_translation_file( $mofile, $domain ) {
// Replace 'my-domain' with your actual theme's text domain
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/themes/' ) ) {
$locale = apply_filters( 'theme_locale', determine_locale(), $domain );
$local_mofile = get_template_directory() . '/languages/' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile; // Use bundled translation if available
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_theme_load_embedded_translation_file', 10, 2 );
Assurez-vous que la convention de nommage des fichiers MO correspond aux attentes de WordPress
WordPress s’attend à différentes conventions de nommage pour les fichiers .mo selon l’endroit où vous les stockez.
- Si vos fichiers de traduction se trouvent dans le dossier de votre thème, utilisez :
{locale}.mo
Exemple : de_DE.mo (associé à de_DE.po)
- Si vous avez placé les fichiers dans le répertoire global des langues de WordPress (wp-content/languages/themes/), utilisez :
{text-domain}-{locale}.mo
Exemple : my-theme-de_DE.mo (associé à my-theme-de_DE.po)