Ce face l10n.js în WordPress 3.1? Și cum îl pot elimina?

16 dec. 2010, 01:25:28
Vizualizări: 16.1K
Voturi: 8

Tocmai am instalat WP 3.1 Beta 2 pe serverul meu de test. Am observat că include un nou fișier l10n.js care este inserat automat în header.

Am investigat puțin și are legătură cu localizarea. Presupun că mulți oameni nu folosesc acest fișier, așa că mă întreb cum aș putea să-l elimin?

Dacă este important să nu fie eliminat, te rog să-mi spui și asta.

0
Toate răspunsurile la întrebare 8
2
12

Conține funcția convertEntities() care (după cum spune și numele) convertește entitățile HTML în valoarea lor reală. Este folosită în principal pentru scripturile care trimit date de localizare din PHP în partea de JS folosind wp_localize_script(). Doar căutați l10n_print_after în baza de cod și o veți vedea des.

Datele pe care le adăugați în wp_localize_script() sunt adăugate înaintea scriptului pe care îl traduce (trebuie să fie, pentru că este referențiat acolo). Totuși, dacă utilizați un concatenator de scripturi (astfel încât să aveți o singură cerere care returnează toate fișierele JS utilizate), acest fișier unic ar fi apelat și el după toate datele localizate - dar acum convertEntities() nu este definit atunci când avem nevoie de el. Din acest motiv, această funcție este separată de fișierul general utils.js și adăugată cu o prioritate mare în partea de sus.

Din acest motiv nu ar trebui să o eliminați: toate scripturile care folosesc șiruri de caractere traductibile o utilizează (chiar dacă sunt încă în engleză) și ați putea strica locuri care încă au entități.

16 dec. 2010 13:49:07
Comentarii

Mulțumesc pentru explicația atât de detaliată! :) Totuși, mai am câteva întrebări. Principala mea preocupare este adăugarea unei cereri inutile pentru fiecare utilizator pe partea de front-end. Singurul JavaScript pe care îl văd utilizatorii este simplul meu scripts.js și jquery. Nu mă deranjează ca l10n să apară în Panoul de Control WP, dar site-ul la care lucrez primește o cantitate mare de trafic și sunt foarte atent să păstrez totul optimizat. Cineva a menționat că Bara de Administrare ar fi cauza, dar doar câțiva autori au acces la site. Nu mă deranjează dacă îi afectează pe ei, doar nu vreau să încetinească restul site-ului. Ce sugerezi să fac?

Sahas Katta Sahas Katta
17 dec. 2010 09:54:25

Se pare că wp_register_script declanșează încărcarea l10n.js chiar dacă am ZERO fișiere .js înregistrate. Nu mă deranjează dacă se încarcă pentru autori, care au trafic redus, dar se încarcă pe paginile publice pentru vizitatorii obișnuiți chiar dacă nu servesc niciun javascript pentru ei. Chiar dacă aș avea nevoie de un script precum jquery, nu ar trebui să depindă de utils.js. Cel puțin pe front-end, nu a fost nevoie de asta în trecut.

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

folosește codul de mai sus pentru a dezînregistra l10n.js în fișierul function.php

24 feb. 2011 05:06:35
2

Se pare că este inclus atunci când încărci scriptul 'comment-reply'. Reține că probabil vei dori să te asiguri că 'comment-reply' este încărcat doar pe paginile care ar putea avea comentarii activate (de exemplu, verifică is_singular() înainte de a încărca scriptul).

16 dec. 2010 05:47:19
Comentarii

Hmm, nu cred că are legătură cu scriptul comment-reply. Momentan nu am acest script încărcat pe site-ul meu de test. Apare pe absolut fiecare pagină a site-ului. Am revenit la WP 3.0.3 pentru a testa și problema a dispărut. Revine dacă rulez noua versiune beta 2 a 3.1.

Sahas Katta Sahas Katta
16 dec. 2010 08:08:50

Eu o văd doar pe paginile care încarcă scriptul comment-reply pe ambele instanțe de test pe care rulez versiunea SVN trunk a WordPress.

mtekk mtekk
16 dec. 2010 21:44:40
3

Am descoperit pe instalarea mea că acest script era încărcat împreună cu noua bară de administrare, iar eliminarea barei de administrare a eliminat și l10n.js pentru mine (dar cred că răspunsul lui Jan este mai potrivit pentru a răspunde la "de ce").

Eliminarea barei a fost ușoară..

remove_action( 'init', 'wp_admin_bar_init' );

Aceasta nu răspunde efectiv la întrebare (după cum dovedesc celelalte răspunsuri), dar în cazul în care cineva dorește să elimine acea bară oribilă, mai sus este cum o puteți face..

16 dec. 2010 13:15:05
Comentarii

Hmm, altceva în codul meu îl declanșează și pe acesta. Am creat o temă super simplă doar cu header/footer/index/sidebar.php și acea acțiune de eliminare a rezolvat problema. Dar pe tema mea obișnuită, chiar dacă elimin toate încărcările, tot se încarcă. Am ZERO JavaScript în head/footer-ul WP în afară de Google Analytics care este hardcodat în template oricum.

Sahas Katta Sahas Katta
17 dec. 2010 09:49:31

Cu tema implicită activată, fără pluginuri (sau cu minimul), nu văd absolut niciun script încărcat în partea din față când elimin bara de administrare. Cred că Jan a postat câteva informații cruciale despre când și de ce este apelat acest script (eu vorbeam doar cu privire la eliminarea lui și am postat ceea ce am găsit că funcționează).

t31os t31os
17 dec. 2010 11:50:28

OK, deci iată ce am descoperit după ce am experimentat puțin mai mult. Aveam câteva declarații wp_register_script în functions.php. Asta declanșează apariția l10n.js chiar dacă nu încarc niciodată fișiere .js. De asemenea, am dezactivat Bara de administrare!

Sahas Katta Sahas Katta
19 dec. 2010 01:32:27
0

Cum să eliminați aceasta:


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

Adăugați în functions.php sau oriunde altundeva (plugin, etc.)

Funcționează pentru mine.

28 feb. 2011 10:15:57
0

Pentru a-l elimina, adăugați următoarele în fișierul functions.php al temei dumneavoastră.

wp_deregister_script('l10n');

18 apr. 2011 14:23:05
1

Sursa pentru dezvoltatori pentru fișier are următoarea descriere:

//Folosit pentru a se asigura că Entitățile folosite în șirurile L10N sunt corecte

și nota de commit spune:

Mută funcția helper l10n într-un fișier js separat astfel încât să o putem afișa întotdeauna primul.

Nu am lucrat încă cu versiunea 3.1, așa că nu sunt sigur ce o poate face să se încarce pe fiecare pagină.

16 dec. 2010 08:38:21
Comentarii

Da, am găsit acel fișier, dar nu am găsit mai multe detalii. Am crezut că ceva ciudat din tema mea îl declanșează. Așa că am încercat tema implicită twentyten și avea și ea același comportament. Se pare că este adăugat automat în wp_head de către WP v3.1

Sahas Katta Sahas Katta
16 dec. 2010 11:37:25
0

Da, este inserat automat în tema prin wp_head...

Îl elimin plasând următorul cod în functions.php al temei:

remove_action( 'wp_head', 'l10n' );

15 oct. 2011 07:44:55