Los temas que están localizados, o sea, preparados para reconocer el idioma de WordPress, utilizan la versión internacionalizada del mismo dependiendo del idioma definido en el archivo de configuración de WordPress (wp-config.php
), pero no siempre es esto lo deseado.
Cada vez es más habitual que administren WordPress usuarios cuyo idioma nativo no es el que se debe mostrar para los visitantes.
Por ejemplo, digamos que tu te manejas mejor con WordPress en español pero tu sitio está orientado a visitantes de habla inglesa. Pues bien, si el tema está localizado y pones en wp-config.php
el español cómo idioma de WordPress, si el tema está internacionalizado y dispone de traducción al español mostrará los mensajes en este idioma definido en el archivo de configuración.
Si no quieres que pase esto solo tienes que hacer un par de cosas:
- No definir el idioma en el archivo
wp-config.php
, o sea, dejar la línea así:define('WPLANG', '');
- Añade este código al archivo de funciones del tema activo (
functions.php
):// Un idioma para el tema y otro para el administrador // hay que llamarlo antes de load_theme_textdomain() function set_my_locale($locale) { $locale = ( is_admin() ) ? "es_ES" : "en_US"; setlocale(LC_ALL, $local ); return $locale; } add_filter( 'locale', 'set_my_locale' );
Cómo puedes imaginar, debes cambiar la línea 4 a tus preferencias.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Fantástico truco Fernando, gracias por compartirlo
Muy interesante
Hola Fernando,he conseguido cambiar correctamente el wpconfig, y TODO el wordpress ahora esta en INGLES,
pero si cambio el archivo function php del theme. La web no es mas visible y aparece una pagina en blanco con errore en la ‘ linea 1 de function php ‘ pero no veo donde puede estar el error??
estas son las primeras 22 lineas de function php
// Un idioma para el tema y otro para el administrador
// hay que llamarlo antes de load_theme_textdomain()
function set_my_locale($locale) {
$locale = ( is_admin() ) ? «es_ES» : «en_US»;
setlocale(LC_ALL, $local );
return $locale;
}
add_filter( ‘locale’, ‘set_my_locale’ );
<?php
/**
* @package WordPress
* @subpackage Constructor
*
* Don't work preview on admin page?
* Read issue 11006 for more details
perdona entente cargar una captura de pantalla pero no me la deja publicar.
Hola, no logro hacerlo funcionar!
function set_my_locale($locale) {
$locale = ( is_admin() ) ? «es_ES» : «en_US»;
setlocale(LC_ALL, $local ); // aqui no seria $locale ??
return $locale;
}
add_filter( ‘locale’, ‘set_my_locale’ );
igualmente no funciona…
Lo inserto en functions.php de un child theme
A mi no me deja instalar plugins. ¿Cómo lo hago para insertar un widget que permita traducir el blog?
Gracias