Localización: quiero el backend: inglés y frontend en idioma definido

9

Me gustaría tener el backend de Wordpress en inglés y usar una configuración regional diferente para la interfaz

hasta ahora me di cuenta de que tal vez podría hacerlo estableciendo en wpconfig la configuración regional que quiero usar en la interfaz, luego agrego functions.php algo como esto:

add_filter('locale', 'mytheme_backendlocale');
function mytheme_backendlocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }
    return $locale;
}

¿Es esta la mejor práctica para lograr lo que quiero o debería hacerlo de manera diferente?

unfulvio
fuente

Respuestas:

1

Hay un complemento que puede ser lo que necesita.

http://wordpress.org/extend/plugins/fe-be-localization/

Andy James
fuente
bueno, gracias, echaré un vistazo al código, pero tal vez no lo use, ya que no está actualizado desde 2008 y solo admite hasta WP 2.6; si me gusta y tengo la capacidad, tal vez intente hablar con el desarrollador y actualizarlo
unfulvio
oh, solo comprobado, hace más o menos lo mismo que la función que escribí anteriormente, en otro estilo
unfulvio el
Sí, es viejo, pero parece ser el único. Si el código es como lo has hecho, entonces supongo que la respuesta es que estás en el camino correcto y es cómo lo habría hecho ... no puedo pensar en una mejor manera.
Andy James el
1

Hasta ahora, creo que la respuesta de Fulvio es la mejor. Estoy usando ese filtro incluso en una configuración multisitio, con solo una línea:

add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
  return 'en_US';
}

Básicamente, a veces, y en este caso, uso sitios múltiples para sitios en varios idiomas en lugar de complementos. Además, tengo 1 tema único para cada idioma (generalmente temas secundarios del idioma principal). Por lo tanto, cada sitio de la red tiene su propio idioma, pero en el lado administrativo, necesito todas las interfaces en italiano.

Entonces lo que hago es:

  1. No uso la constante general WPLANG en wp-config.php
  2. Pongo italiano en cada sitio de la red
  3. En las funciones.php de cada tema, uso el filtro anterior para controlar el idioma / la configuración regional de la interfaz.

NOTA: ese filtro no cambiará el idioma del administrador, por lo que no es necesario verificar si is_admin ()

Luca Reghellin
fuente
0

Si alguien todavía está buscando eso, esto es lo que debe hacer desde la versión 4.7

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale('en_US');
    endif;
}
add_filter('init','wp_noshor_redefine_locale');

Esto obliga a que el tablero se cargue en inglés, luego puede ir a la configuración, establecer el idioma que desee.

Motaz M. El Shazly
fuente