Il y a plusieurs améliorations de l'internationalisation (i18n) dans WordPress 6.7Examinons ensemble ces améliorations.
Déterminer s'il existe une traduction
Il est parfois utile de savoir si une traduction existe déjà en mémoire sans avoir à charger la traduction pour un champ de texte donné. Nouveauhas_translation()
peut faire exactement cela.
Pour plus d'informations, voir#52696 / [59029].
![Image[1]-WordPress 6.7 International Improvements : Translation Management and Performance Optimisation - Photon Flux | Service professionnel de réparation de WordPress, dans le monde entier, réponse rapide](https://www.361sale.com/wp-content/uploads/2024/10/2024102201464042.png)
Courriel dans l'environnement linguistique de l'administrateur
Dans la version 4.7, WordPress a ajouté l'optionFonctionnalité permettant aux utilisateurs de définir leur environnement linguistique préféré. Lors de l'envoi d'un courriel à un utilisateur, le courriel est toujours envoyé dans cette locale et tous les autres reçoivent le courriel dans la locale du site.
Aujourd'hui.WordPress 6.7 Autre avancée : chaque fois que vous envoyez un message à l'adresse électronique de l'administrateur ( admin_email
) Lors de l'envoi d'un courrier électronique, WordPress vérifie s'il existe un utilisateur ayant la même adresse électronique. Si c'est le cas, l'email est envoyé dans la langue locale de l'utilisateur.
Pour plus d'informations, voir#61518 / [59128].
![Image[2]-WordPress 6.7 International Improvements : Translation Management and Performance Optimisation - Photon Flux | Professional WordPress Repair Service, Global Reach, Fast Response](https://www.361sale.com/wp-content/uploads/2024/10/2024102201474622.png)
Avertissement si la traduction est chargée trop tôt
WordPress avertit désormais les développeurs s'ils chargent les traductions trop tôt dans un plugin ou un thème (avant que l'utilisateur actuel n'en ait connaissance). Les fonctionnalités existantes (telles queload_plugin_textdomain()
et )load_theme_textdomain()
a été mis à jour pour retarder le chargement effectif jusqu'à ce que le système de gestion de l'information existant du noyau ait été mis à jour.Logique de traduction instantanée. Cela réduit la probabilité de déclencher des avertissements et améliore même les performances dans certains cas en évitant de charger des traductions qui ne sont pas nécessaires sur une page donnée.
after_setup_theme
Lorsque l'on essaie de charger une traduction le ou avant leinit
WordPress tentera de charger l'utilisateur actuel plus tôt que d'habitude, sans donner aux autres plugins la possibilité de participer au processus. Cela empêchera également tout plugin de filtrer les appels à la traduction, tels que le changement de paramètres linguistiques ou d'emplacement de fichier. Cet avertissement est donc ajouté pour signaler ce comportement inattendu.
![Image[3]-WordPress 6.7 Internationalisation Improvements : Translation Management and Performance Optimisation - Photon Flux | Professional WordPress Repair Service, Global Reach, Fast Response](https://www.361sale.com/wp-content/uploads/2024/10/2024102201480472.png)
Pour plus d'informations, voir#44937et[59127]répondre en chantant[59157].
faire_ça_mauvais()
Par exemple, si vous appelez la fonctionget_plugin_data()
(qui tente par défaut de charger les traductions) ou__()
Sans attendre le crochet, le plugin peut se présenter comme suitinit
. Voici un exemple courant que l'on trouve dans les plugins fixes actuels :
/**
* Nom du plugin : Awesome Plugin
*/
function myplugin_get_version() {
require_once ABSPATH . 'wp-admin/includes/plugin.php' ; // Prévenir un appel de traduction précoce en définissant $translate.
// Prévenir un appel à la traduction précoce en mettant $translate à false.
$plugin_data = get_plugin_data( __FILE__, false, /* $translate */ false ) ; return $plugin_data ; /* $translate */ false ; /* $translate */ false
return $plugin_data['Version'] ;
}
define('MYPLUGIN_VERSION', myplugin_get_version() ) ;
Si vous ne définissez pas explicitement l'option$ranslate
est, alors la fonction traduit les métadonnées du plugin par défaut. Comme ce plugin n'a besoin que du numéro de version, il n'est pas nécessaire de traduire d'autres champs.faux
get_plugin_data()
Autre exemple :
/**
* Nom du plugin : Awesome Plugin
*/
class My_Awesome_Plugin {
public $name.
public function __construct() {
// Cela déclenche le chargement de la traduction juste à temps.
$this->name = __('My Awesome Plugin', 'my-awesome-plugin' ) ;
// ... faire quelque chose
}
}
// Ceci instancie immédiatement la classe, bien avant `init`.
$myplugin = new My_Awesome_Plugin() ;
Ici, la classe est instanciée immédiatement dans le fichier principal du plugin et le code du constructeur de la classe utilise la fonction de conversion. L'instanciation de la classe peut être reportée à plus tard parinit
ou l'éviter en reportant l'appel à la conversion jusqu'à ce qu'elle soit vraiment nécessaire.
Si le plugin est concerné par cet avertissement, vous pouvez utiliser le code suivant pour trouver le chemin d'accès au code qui a déclenché l'avertissement :
add_action(
'doing_it_wrong_run',
static function ( $function_name ) {
if ('_load_textdomain_just_in_time' === $function_name ) {
debug_print_backtrace() ;
}
}
).
En l'occurrence.Moniteur de requêtesLes outils de développement de ce type sont également utiles.
![Image[4]-WordPress 6.7 Internationalisation Improvements : Translation Management and Performance Optimisation - Photon Flux | Professional WordPress Repair Service, Global Reach, Fast Response](https://www.361sale.com/wp-content/uploads/2024/10/2024102201490314.png)
Lien vers cet article :https://www.361sale.com/fr/21963
L'article est protégé par le droit d'auteur et doit être reproduit avec mention.
Pas de commentaires