Cosa fa l10n.js in WordPress 3.1? E come posso rimuoverlo?

16 dic 2010, 01:25:28
Visualizzazioni: 16.1K
Voti: 8

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.

0
Tutte le risposte alla domanda 8
2
12

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à.

16 dic 2010 13:49:07
Commenti

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?

Sahas Katta Sahas Katta
17 dic 2010 09:54:25

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.

Sahas Katta Sahas Katta
19 dic 2010 01:39:11
0
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'l10n' );
}
add_action('init', 'my_init_method'); 
}

Utilizza il codice qui sopra per deregistrare l10n.js nel file function.php

24 feb 2011 05:06:35
2

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).

16 dic 2010 05:47:19
Commenti

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.

Sahas Katta Sahas Katta
16 dic 2010 08:08:50

Lo vedo solo sulle pagine che caricano comment-reply in entrambi i miei ambienti di test che eseguono la versione trunk SVN di WordPress.

mtekk mtekk
16 dic 2010 21:44:40
3

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..

16 dic 2010 13:15:05
Commenti

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.

Sahas Katta Sahas Katta
17 dic 2010 09:49:31

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).

t31os t31os
17 dic 2010 11:50:28

Ok, ecco cosa ho scoperto dopo un po' più di esperimenti. Avevo alcune dichiarazioni wp_register_script nel mio functions.php. Questo fa apparire l10n.js anche se non faccio mai l'enqueue di alcun file .js. Ho anche disabilitato la Admin Bar!

Sahas Katta Sahas Katta
19 dic 2010 01:32:27
0

Come rimuoverlo:

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

Aggiungi questo codice in functions.php oppure altrove (plugin, ecc.)

Funziona per me.

28 feb 2011 10:15:57
0

Per rimuoverlo aggiungi il seguente codice al file functions.php del tuo tema.

wp_deregister_script('l10n');

18 apr 2011 14:23:05
1

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.

16 dic 2010 08:38:21
Commenti

Sì, ho trovato quel file, ma non ho trovato altri dettagli. Pensavo che qualcosa di strano nel mio tema lo stesse attivando. Quindi ho provato con il tema predefinito twentyten e c'era anche lì. Sembra che venga inserito automaticamente in wp_head da WP v3.1

Sahas Katta Sahas Katta
16 dic 2010 11:37:25
0

Sì, viene inserito automaticamente nel tema tramite wp_head... Lo rimuovo inserendo il codice qui sotto nel file functions.php del tema

remove_action( 'wp_head', 'l10n' );

15 ott 2011 07:44:55