web-dev-qa-db-fra.com

Que fait l10n.js dans WordPress 3.1? Et comment puis-je l'enlever?

Je viens d'installer WP 3.1 Bêta 2 sur mon serveur de test. J'ai remarqué qu'il est livré avec un nouveau fichier l10n.js qui est automatiquement inséré dans l'en-tête.

J'ai creusé un peu et cela a quelque chose à voir avec la localisation. Je suppose que beaucoup de gens ne l'utilisent pas, alors je me demande comment je pourrais l'enlever?

S'il est important de ne pas l'enlever, merci de me le faire savoir également.

8
Sahas Katta

Il contient la fonction convertEntities() qui (comme son nom l'indique) convertit les entités HTML en leur valeur réelle. Il est principalement utilisé pour les scripts qui envoient des données de localisation de PHP au côté JS à l'aide de wp_localize_script() . Il suffit de rechercher l10n_print_after dans la base de code et vous le voyez souvent.

Les données que vous ajoutez dans wp_localize_script() sont ajoutées avant le script à traduire (ce doit être, car il y est référencé). Cependant, si vous utilisez un concaténateur de script (de sorte que vous ne disposez que d'une seule requête renvoyant tous les fichiers JS utilisés), ce fichier unique sera également appelé après toutes les données localisées - mais maintenant, convertEntities() n'est pas défini lorsque nous en avons besoin. Pour cette raison, cette fonction est séparée du fichier général utils.js et ajoutée avec une priorité élevée en haut.

Pour cette raison, vous ne devez pas le supprimer: tous les scripts qui utilisent des chaînes traduisibles l’utilisent (même s’ils sont encore en anglais), et vous pourriez casser des endroits contenant encore des entités.

12
Jan Fabry
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'l10n' );
}
add_action('init', 'my_init_method'); 
}

utilisez le code ci-dessus pour annuler l'enregistrement de l10n.js dans function.php

4
ZHAO Xudong

On dirait qu'il est inclus lorsque vous mettez en file d'attente le script 'commentaire-réponse'. Notez que vous voulez probablement vous assurer que 'commentaire-réponse' est chargé uniquement sur les pages pour que les commentaires soient activés (par exemple, vérifiez is_singular() avant de mettre le script en file d'attente).

1
mtekk

J'ai trouvé sur mon installation que ce script était chargé à côté de la nouvelle barre d’administration, mais la suppression de la barre d’administration a permis de supprimer le l10n.js pour moi (mais je pense que la réponse de Jan est plus cohérente avec le "pourquoi").

Enlever le bar était facile ..

remove_action( 'init', 'wp_admin_bar_init' );

Cela ne répond pas vraiment à la question (comme le prouvent les autres réponses), mais au cas où quelqu'un voudrait supprimer cet horrible obstacle, voici comment vous le faites.

1
t31os

Pour le supprimer, ajoutez ce qui suit au fichier functions.php de votre thème.

wp_deregister_script ('l10n');

1
user4751

Comment enlever il:

 function kill_l10n () {
 if (! is_admin ()) 
 wp_deregister_script ('l10n'); 
} 
 add_action ('wp_print_scripts' , 'kill_l10n'); 

Drop in functions.php ou autre (plugin, etc.)

Travaille pour moi.

1
user3566

Source des développeurs pour le fichier a la description suivante:

// Utilisé pour s'assurer que les entités utilisées dans les chaînes L10N sont correctes

et commettre note dit:

Déplacez la fonction d'assistance l10n dans un fichier js séparé afin que nous puissions toujours l'exprimer en premier.

Je n'avais pas encore joué à la version 3.1, alors je ne sais pas ce qui peut le charger dans chaque page.

0
Rarst

Hé oui, il est automatiquement lancé dans le thème par wp_head ... Je le supprime en plaçant le code ci-dessous dans le fichier functions.php du thème.

remove_action( 'wp_head', 'l10n' );

0
Jack