Cosa fa l10n.js in WordPress 3.1? E come posso rimuoverlo?
Ho appena installato WP 3.1 Beta 2 sul mio server di test. Ho notato che include un nuovo file l10n.js
che viene automaticamente inserito nell'header.
Ho fatto qualche ricerca e sembra che abbia a che fare con la localizzazione. Immagino che molti utenti non lo utilizzino, quindi mi chiedevo come poterlo rimuovere?
Se è importante non rimuoverlo, per favore fatemelo sapere.

Contiene la funzione convertEntities()
che (come dice il nome) converte le entità HTML nel loro valore effettivo. Viene principalmente utilizzata per script che inviano dati di localizzazione da PHP al lato JavaScript utilizzando wp_localize_script()
. Basta cercare l10n_print_after
nel codice sorgente per vederla utilizzata frequentemente.
I dati che aggiungi in wp_localize_script()
vengono inseriti prima dello script che li traduce (deve essere così, perché viene referenziato lì). Tuttavia, se usi un concatenatore di script (quindi hai una sola richiesta che restituisce tutti i file JS utilizzati), questo singolo file verrebbe chiamato dopo tutti i dati localizzati - ma a questo punto convertEntities()
non è definita quando ne abbiamo bisogno. Per questo motivo questa funzione è stata separata dal file generale utils.js
e aggiunta con alta priorità all'inizio.
Per questo motivo non dovresti rimuoverla: tutti gli script che utilizzano stringhe traducibili la usano (anche se sono ancora in inglese), e potresti interrompere punti che ancora contengono entità.

Grazie per la spiegazione così dettagliata! :) Ho ancora alcune domande però. La mia principale preoccupazione è aggiungere un'altra richiesta non necessaria per ogni utente sul front end. L'unico JS che gli utenti vedono è il mio semplice scripts.js
e jquery
. Non mi dispiace che l10n appaia nella Dashboard di WP, ma il sito su cui sto lavorando riceve molto traffico e sono estremamente attento a mantenerlo ottimizzato. Qualcuno ha menzionato la Admin Bar come causa, ma ci sono solo pochi autori per il sito. Non mi interessa se li riguarda, ma non voglio che rallenti il resto del sito. Cosa mi suggerisci di fare?

Quindi sembra che wp_register_script
stia facendo caricare l10n.js
anche se ho ZERO file .js
in coda. Non mi dispiace se si carica per gli autori, che hanno poco traffico, ma si carica sulle pagine pubbliche per i visitatori normali anche se non gli servo nessun javascript
. Anche se avessi bisogno di uno script come jquery
, non dovrebbe dipendere da utils.js
. Non lo ha mai fatto in passato almeno per il front-end.

Sembra essere incluso quando si accoda lo script 'comment-reply'. Nota che probabilmente vorrai assicurarti che 'comment-reply' venga caricato solo sulle pagine che potrebbero avere i commenti abilitati (ad esempio, verifica is_singular()
prima di accodare lo script).

Hmm, non credo che abbia nulla a che fare con lo script comment-reply
. In effetti al momento non lo ho nemmeno caricato nel mio sito di test. Appare su ogni pagina del sito. Sono persino tornato a WP 3.0.3 per testare e scompare. Ricompare se utilizzo la nuova beta 2 di 3.1.

Ho scoperto nella mia installazione che questo script veniva caricato insieme alla nuova barra di amministrazione, rimuovendo la barra di amministrazione ho eliminato anche il l10n.js per me (ma penso che la risposta di Jan sia più in linea con il rispondere al "perché").
Rimuovere la barra è stato facile..
remove_action( 'init', 'wp_admin_bar_init' );
Questo non affronta effettivamente la domanda (come dimostrato dalle altre risposte), ma nel caso qualcuno voglia rimuovere quella terribile barra, il codice sopra è il modo per farlo..

Hmm qualcos'altro nel mio codice lo sta attivando. Ho creato un tema super basico con solo header/footer/index/sidebar.php
e quella remove action ha risolto il problema. Ma sul mio tema normale, anche se rimuovo tutti gli enqueue, continua a caricarsi. Non ho NESSUN javascript nell'head/footer di WP a parte Google Analytics che è hard-codato nel template comunque.

Con il tema predefinito attivo, nessun plugin (o minimi), non vedo assolutamente nessuno script caricato front-end quando rimuovo la admin bar. Penso che Jan abbia postato alcune informazioni cruciali riguardo a quando e perché questo script viene chiamato (io parlavo solo riguardo alla rimozione, e ho postato quello che ho trovato funzionasse).

Sorgente per gli sviluppatori per il file ha la seguente descrizione:
//Utilizzato per garantire che le Entità usate nelle stringhe L10N siano corrette
e la nota di commit dice:
Sposta la funzione helper l10n in un file js separato così possiamo sempre includerlo per primo.
Non ho ancora lavorato con la 3.1 quindi non sono sicuro di cosa possa farlo caricare in ogni pagina.
