
Durante mucho tiempo, WordPress cargaba las traducciones desde archivos .mo en cada visita, y eso tenía un costo: en sitios con muchos plugins, la misma página en español podía tardar bastante más que en inglés.
Desde WordPress 6.5, el núcleo usa un sistema de traducciones mucho más eficiente (archivos .l10n.php, que PHP puede guardar en su caché OPcache). Para la mayoría de los sitios, el problema de rendimiento desapareció. Pero hay algunos detalles que vale la pena revisar.
1. Mantén las traducciones actualizadas
Los archivos nuevos se descargan con las actualizaciones de traducciones. En Escritorio → Actualizaciones, al final, aparece Actualizar traducciones cuando hay nuevas. Con WP-CLI:
wp language core update
wp language plugin update --all
wp language theme update --all
2. Desinstala los idiomas que no usas
Si alguna vez cambiaste el idioma de un usuario o probaste otro idioma, puede haber traducciones instaladas que nadie usa. Revísalo:
wp language core list --status=installed
Y desinstala las que sobren (nunca la del idioma activo del sitio):
wp language core uninstall pt_BR
wp language plugin uninstall --all pt_BR
Ocupan espacio y se actualizan inútilmente cada vez.
3. El aviso de _load_textdomain_just_in_time
Desde WordPress 6.7, si activas el registro de depuración, es común ver mensajes como este:
PHP Notice: Function _load_textdomain_just_in_time was called incorrectly.
Translation loading for the mi-plugin domain was triggered too early.
Qué significa
Un plugin o tema está usando sus traducciones (por ejemplo, con __()) antes de tiempo, cuando WordPress todavía no sabe qué idioma corresponde a ese usuario. Puede provocar que algunos textos aparezcan en inglés y que WordPress haga trabajo de más.
Qué hacer si no programas
- Es un aviso, no un error: el sitio funciona.
- Actualiza el plugin o tema que aparece en el mensaje: la mayoría ya lo corrigió.
- Si no hay actualización, avisa a quien lo desarrolla indicando el mensaje completo.
- En un sitio en producción, ten
WP_DEBUG_DISPLAYenfalsepara que estos avisos no se vean en pantalla.
Qué hacer si es tu plugin
Las traducciones solo deben usarse a partir del hook init o más tarde. El error típico es llamar a __() al cargar el archivo o en plugins_loaded:
<?php
// Mal: se ejecuta al cargar el plugin, demasiado pronto.
$cwp_titulo = __( 'Mis ajustes', 'cwp-mi-plugin' );
// Bien: se ejecuta cuando WordPress ya conoce el idioma.
add_action( 'init', function () {
register_post_type( 'cwp_recurso', array(
'label' => __( 'Recursos', 'cwp-mi-plugin' ),
) );
} );
Si tu plugin está en WordPress.org, ya no necesitas llamar a load_plugin_textdomain(): WordPress carga las traducciones solo, en el momento correcto.
Si tu plugin no está en el directorio oficial y trae sus propias traducciones en una carpeta languages, sí debes cargarlas, pero dentro de una función enganchada a init.
4. ¿Un sitio en inglés?
Si tu sitio y tu equipo trabajan en inglés, no instales paquetes de idioma. Pero si tu público es hispanohablante, no cambies el idioma por rendimiento: con las versiones actuales la diferencia es mínima, y el español de Chile (es_CL) le dice a Google y a los lectores para quién es tu sitio.
¿Tu debug.log está lleno de avisos de traducciones? Pega uno en el foro y te decimos de qué plugin viene y si hay arreglo.





