¿Qué hace l10n.js en WordPress 3.1? ¿Y cómo puedo eliminarlo?

16 dic 2010, 01:25:28
Vistas: 16.1K
Votos: 8

Acabo de instalar WP 3.1 Beta 2 en mi servidor de pruebas. Noté que incluye un nuevo archivo l10n.js que se inserta automáticamente en el encabezado.

Investigué un poco y tiene que ver con la localización. Supongo que muchas personas no lo usan, así que me pregunto ¿cómo podría eliminarlo?

Si es importante no eliminarlo, por favor házmelo saber también.

0
Todas las respuestas a la pregunta 8
2
12

Contiene la función convertEntities() que (como su nombre indica) convierte las entidades HTML a su valor real. Se utiliza principalmente para scripts que envían datos de localización desde PHP al lado JS usando wp_localize_script(). Solo busca l10n_print_after en la base de código y lo verás muchas veces.

Los datos que agregas en wp_localize_script() se añaden antes del script que traduce (debe ser así, porque se referencia allí). Sin embargo, si usas un concatenador de scripts (para tener solo una solicitud que devuelva todos los archivos JS usados), este archivo también se llamaría después de todos los datos localizados, pero ahora convertEntities() no está definido cuando lo necesitamos. Por esta razón, esta función se separa del archivo general utils.js y se agrega con alta prioridad al principio.

Por esta razón no deberías eliminarla: todos los scripts que usan cadenas traducibles la utilizan (incluso si todavía están en inglés), y podrías romper lugares que aún tienen entidades.

16 dic 2010 13:49:07
Comentarios

¡Gracias por explicarlo tan bien! :) Aún tengo algunas preguntas. Mi principal preocupación es simplemente añadir otra solicitud innecesaria para cada usuario en el front end. El único JS que ven los usuarios es mi simple scripts.js y jquery. No me importa que l10n aparezca en el Panel de Control de WP, pero el sitio en el que estoy trabajando recibe una gran cantidad de tráfico y soy muy exigente en mantener todo optimizado. Alguien mencionó la Barra de Administración como la causa, pero solo hay unos pocos autores en el sitio. No me importa si les afecta a ellos, solo no quiero que eso ralentice el resto del sitio. ¿Qué sugieres hacer?

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

Parece que wp_register_script está activando que l10n.js se cargue incluso si no tengo NINGÚN archivo .js en cola. No me importa si se carga para los autores, que tienen poco tráfico, pero se carga en las páginas públicas para los visitantes regulares incluso si no les sirvo ningún javascript. Incluso si necesitara un script como jquery, no debería depender de utils.js. Nunca lo hizo en el pasado, al menos no en el 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'); 
}

Usa el código anterior para desregistrar l10n.js en functions.php

24 feb 2011 05:06:35
2

Parece que se incluye cuando se pone en cola el script 'comment-reply'. Ten en cuenta que probablemente querrás asegurarte de que 'comment-reply' solo se cargue en páginas que podrían tener comentarios habilitados (por ejemplo, verifica is_singular() antes de poner el script en cola).

16 dic 2010 05:47:19
Comentarios

Hmm, no creo que tenga nada que ver con el script comment-reply. De hecho, actualmente no lo tengo encolado en mi sitio de prueba en absoluto. Aparece en todas y cada una de las páginas del sitio. Incluso volví a la versión WP 3.0.3 para probar y desaparece. Vuelve a aparecer si ejecuto la nueva beta 2 de 3.1.

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

Solo lo estoy viendo en páginas que están encolando comment-reply en ambos mis entornos de prueba que ejecutan la versión SVN trunk de WordPress.

mtekk mtekk
16 dic 2010 21:44:40
3

En mi instalación descubrí que este script se cargaba junto con la nueva barra de administración, y al eliminar la barra de administración también desapareció el l10n.js para mí (aunque creo que la respuesta de Jan está más alineada con el "por qué").

Eliminar la barra fue fácil...

remove_action( 'init', 'wp_admin_bar_init' );

Esto en realidad no responde a la pregunta (como lo demuestran las otras respuestas), pero en caso de que alguien quiera eliminar esa horrible barra, así es como se hace...

16 dic 2010 13:15:05
Comentarios

Hmm, algo más en mi código también lo está activando. Creé un tema super básico con solo header/footer/index/sidebar.php y esa acción de eliminación resolvió el problema. Pero en mi tema normal, incluso si elimino todos los enqueues, sigue cargando. No tengo NINGÚN javascript en el head/footer de WP aparte de Google Analytics que está codificado directamente en la plantilla de todos modos.

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

Con el tema predeterminado activado, sin plugins (o mínimos), no veo absolutamente ningún script cargado en el frontend cuando elimino la barra de administración. Creo que Jan ha publicado información crucial sobre cuándo y por qué se llama a este script (yo solo hablaba con respecto a eliminarlo, y publiqué lo que encontré que funcionaba).

t31os t31os
17 dic 2010 11:50:28

Bien, esto es lo que encontré después de experimentar un poco más. Tenía algunas declaraciones wp_register_script en mi functions.php. ¡Eso hace que aparezca l10n.js incluso si nunca encolo ningún archivo .js! ¡También tengo la Barra de Administración desactivada!

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

Cómo eliminarlo:


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

Agrégalo en functions.php o donde prefieras (plugin, etc.)

Funciona para mí.

28 feb 2011 10:15:57
0

Para eliminarlo, añade lo siguiente al archivo functions.php de tu tema.

wp_deregister_script('l10n');

18 abr 2011 14:23:05
1

Fuente de desarrolladores para el archivo tiene la siguiente descripción:

//Se utiliza para garantizar que las Entidades utilizadas en cadenas L10N sean correctas

y la nota de commit dice:

Mover la función auxiliar l10n a un archivo js separado para que siempre podamos mostrarlo primero.

Aún no he trabajado con la versión 3.1, así que no estoy seguro de qué puede hacer que se cargue en cada página.

16 dic 2010 08:38:21
Comentarios

Sí, encontré ese archivo, pero no encontré más detalles. Pensé que algo extraño en mi tema lo estaba activando. Así que probé con el tema predeterminado twentyten y también lo tenía. Parece que se inserta automáticamente en wp_head por WP v3.1

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

Sí, se incluye automáticamente en el tema mediante wp_head... Lo elimino colocando el siguiente código en el functions.php del tema:

remove_action( 'wp_head', 'l10n' );

15 oct 2011 07:44:55