Cosa fa l10n.js in WordPress 3.1? E come lo rimuovo?


8

Ho appena installato WP 3.1 Beta 2 sul mio server di prova. Ho notato che viene spedito con un nuovo l10n.jsfile che viene automaticamente inserito nell'intestazione.

Ho scavato un po 'e ha qualcosa a che fare con la localizzazione. Immagino che molte persone non lo usino, quindi mi chiedo come potrei rimuoverlo?

Se è importante non rimuoverlo, per favore fatemelo sapere pure.

Risposte:


12

Contiene la convertEntities()funzione che (come dice il nome) converte le entità HTML nel loro valore reale. Viene utilizzato principalmente per gli script che inviano i dati di localizzazione da PHP al lato JS mediante wp_localize_script(). Basta cercare l10n_print_afternella base di codice e lo vedi molto.

I dati che aggiungi wp_localize_script()vengono aggiunti prima dello script che traduce (devono essere, perché vi si fa riferimento). Tuttavia, se si utilizza un concatenatore di script (quindi si dispone di una sola richiesta che restituisce tutti i file JS utilizzati), anche questo file verrà chiamato dopo tutti i dati localizzati, ma ora convertEntities()non è definito quando ne abbiamo bisogno. Per questa ragione questa funzione è divisa dal utils.jsfile generale e aggiunta con una priorità alta in alto.

Per questo motivo non dovresti rimuoverlo: tutti gli script che usano stringhe traducibili lo usano (anche se sono ancora in inglese) e potresti rompere i luoghi che hanno ancora entità.


1
Grazie per l'elaborazione così bene! :) Comunque hai ancora qualche domanda. La mia preoccupazione principale è solo l'aggiunta di un'altra richiesta non necessaria per ogni utente sul front-end. L'unico utente JS che vede è il mio semplice scripts.jse jquery. Non mi dispiace che appaia nel Dashboard di WP, ma il sito su cui sto lavorando riceve una grande quantità di traffico e sono molto esigente nel mantenere tutto ottimizzato. Qualcuno ha menzionato una barra di amministrazione come causa, ma solo pochi autori per il sito. Non mi interessa se li riguarda, ma non voglio che ciò rallenti il ​​resto del sito. Cosa suggerisci di fare?
Sahas Katta,

1
Quindi sembra che si wp_register_scriptstia iniziando l10n.jsa caricare anche se ho i .jsfile ZERO accodati. Non mi importa se carica per gli autori, che sono a basso traffico, ma carica su pagine pubbliche per visitatori regolari anche se non servo javascriptloro. Anche se avessi bisogno di una sceneggiatura simile jquery, non dovrebbe dipendere da utils.js. Almeno in passato non lo ha mai fatto.
Sahas Katta,

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

utilizzare il codice sopra per annullare la registrazione di l10n.js in function.php


1

Sembra che sia incluso quando accoda lo script 'comment-reply'. Si noti che probabilmente si desidera assicurarsi che "commento-risposta" sia caricato solo sulle pagine in cui i commenti possono essere abilitati (ad esempio, controllare is_singular()prima di accodare lo script).


Hmm, non penso che abbia nulla a che fare con la comment-replysceneggiatura. Al momento non lo accetto sul mio sito di test. Appare su qualsiasi pagina del sito. Sono anche tornato a WP 3.0.3 per testare e scompare. Torna se eseguo la nuova 3.1 beta 2.
Sahas Katta il

Lo vedo solo su pagine accodate comment-replysu entrambi i miei banchi di prova che eseguono la versione trunk SVN di WordPress.
mtekk,

1

Nella mia installazione ho scoperto che questo script è stato caricato insieme alla nuova barra di amministrazione, eliminando la barra di amministrazione mi sono liberato di l10n.js per me (ma penso che la risposta di Jan sia più in linea con la risposta al "perché").

Rimuovere la barra è stato facile ..

remove_action( 'init', 'wp_admin_bar_init' );

Questo in realtà non affronta la domanda (come evidenziato dalle altre risposte), ma se qualcuno vuole rimuovere quella barra terribile, quanto sopra è come lo fai ..


Hmm qualcos'altro nel mio codice sta anche innescando. Ho creato un tema di base con giusto header/footer/index/sidebar.phpe che rimuove l'azione risolto il problema. Ma sul mio tema normale, anche se rimuovo tutti gli accodamenti, continua a caricarsi. Ho JavaScript ZERO in WP head / footer oltre a Google Analytics che è comunque codificato nel modello.
Sahas Katta,

1
Con il tema predefinito abilitato, nessun plug-in (o minimo), non vedo assolutamente script caricati sul lato frontale quando rimuovo la barra di amministrazione. Penso che Jan abbia pubblicato alcune informazioni cruciali su quando e perché si chiama questo script (parlavo solo per rimuoverlo e ha pubblicato ciò che ho trovato funzionante).
t31os,

Okay, ecco cosa ho scoperto dopo un po 'più di esperimenti. Ho avuto alcune wp_register_scriptdichiarazioni nel mio functions.php. Ciò si innesca l10n.jsanche se non accodamento mai alcun .jsfile. Anche la barra di amministrazione è disabilitata!
Sahas Katta,

1

Come rimuoverlo :

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

Inserisci funzioni.php o altro (plugin, ecc.)

Per me va bene.


1

Per rimuoverlo aggiungi quanto segue al file Functions.php del tuo tema.

wp_deregister_script ( 'l10n');


0

La fonte degli sviluppatori per il file ha la seguente descrizione:

// Utilizzato per garantire che le entità utilizzate nelle stringhe L10N siano corrette

e la nota di commit dice:

Sposta la funzione helper l10n in un file js separato in modo che possiamo sempre emetterlo per primo.

Non avevo ancora giocato con 3.1, quindi non sono sicuro di cosa possa caricarlo in ogni pagina.


Sì, ho trovato quel file, ma non ho trovato altri dettagli. Ho pensato che qualcosa di strano nel mio tema lo stesse innescando. Quindi ho provato il tema ventiquattro predefinito e ce l'aveva pure. Sembra che sia stato lanciato wp_headautomaticamente da WP v3.1
Sahas Katta il

0

Sì, viene lanciato automaticamente all'interno del tema da wp_head ... Lo rimuovo inserendo il codice seguente nelle funzioni del tema.php

remove_action( 'wp_head', 'l10n' );

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.