Lenguaje diferente para Frontend vs Backend


9

Yo uso un paquete de WordPress en inglés y esto está muy bien.

Ahora, me gustaría traducir algunos elementos del blog (como "publicado en", "comentarios"), etc., pero dejo la interfaz del tablero intacta en inglés.

¿Existe algún mecanismo para traducir solo los elementos del sitio?

Respuestas:


19

Puedes hacer lo siguiente:

  1. Obtenga el paquete de idioma (p de_DE.mo. Ej. ) De wordpress.org . Si el paquete de idioma no está disponible como descarga independiente, también puede usar el .moarchivo que se incluye en el archivo ZIP de WordPress para su idioma. Ubicado debajo wp-content/languages.
  2. Mueva el .moarchivo a wp-content/languages/su instalación predeterminada de WordPress (inglés).
  3. Cambie la WPLANGconstante wp-config.phpa la nueva configuración regional (por ejemplo de_DE)
  4. En su functions.phpagregar el siguiente filtro:

funciones.php

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

    return $locale;
}

ahora, ¿qué quieres decir con "instalar tu paquete de idioma"? ¿Debo desinstalar el wordpress e instalar el nuevo wordpress, pero decir francés? No quiero desinstalar mi wordpress en inglés.
serhio

1
No, no tienes que reinstalar nada. Simplemente descargue WP en el idioma que desee y copie el archivo de idioma de wp-content/languages/su instalación original de WP en inglés y modifíquelo wp-config.phpcomo se describe anteriormente. O simplemente descargue el fr_FR.moarchivo de este sitio .
rofflox

No tenía la wp-content/languages/carpeta, así que debería crearla. Después de realizar esa manipulación, tengo la viceversa de lo que haría. Ahora tengo el panel de administración en rumano, pero la página (incluso registrada o no), en inglés. Quizás debería traducir el tema ...
serhio

Por supuesto, necesitas traducir el tema. Pero el backend debe estar en inglés y no en rumano si configura is_admin()el filtro de arriba.
rofflox

1
vea también mi respuesta a continuación para WordPress v> = 4.7, que permite a los usuarios ver el Backend en su propio idioma
Serge

6

1
Bienvenido a nuestro sitio. Agregue una explicación: ¿Qué hacen estos complementos, cuáles son las diferencias?
fuxia

1
Creo que están haciendo exactamente lo mismo. (Solo uso el primero ...) Puede instalar diferentes archivos de idioma y con los complementos puede cambiar el idioma para el backend de forma independiente. Ambos complementos proporcionan interruptores de panel para el idioma, un cuadro de selección de idioma de inicio de sesión y un complemento a la página de perfil para el idioma específico del usuario.
zodiac1978

6

Desde la versión 4.7 de WordPress , diferentes usuarios de Backend pueden configurar su propio idioma de administrador preferido utilizando el selector de idioma nativo de WordPress. De esta manera, ven la interfaz de WordPress en su idioma y pueden administrar más fácilmente el contenido. Idioma diferente para usuarios de backend en Wordpress, independiente del idioma frontend


El código establece que para todos los usuarios a nivel mundial, esto solo funciona en una cuenta individual.
Motaz M. El Shazly

4

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.


4

En WordPress 5.x es muy simple obtener un lenguaje de interfaz y de fondo diferente

Para cambiar el idioma del sitio, vaya a Configuración -> General -> Idioma del sitio y seleccione el idioma del sitio.

ingrese la descripción de la imagen aquí

Para el Panel de administración, vaya a Usuarios -> Su perfil y seleccione el idioma que desea tener en el Panel de administración

ingrese la descripción de la imagen aquí

Entonces, todas las soluciones anteriores se han vuelto absolutas, cada usuario puede configurar su propio idioma para la interfaz de WordPress


Esta debería ser la respuesta seleccionada para 2019+. No se requieren complementos y la solución es muy simple. ¡Gracias!
stason

Esto lo cambia por cada usuario individualmente, el código lo cambiará automáticamente a todos los usuarios.
Motaz M. El Shazly

2

Una respuesta actualizada para Wordpress 4+

La respuesta de @ rofflox sigue siendo correcta, pero ha habido algunos cambios en Wordpress que pueden tener un efecto al usar su función 'tal cual' desde WP 4.0.

La constante wp-config WPLANGha quedado en desuso a favor de configurar el idioma del sitio mediante un menú desplegable Settings->General. Esto significa que, después de cambiar el idioma de su sitio para Svenka (por ejemplo), en el administrador de su sitio va a aparecer en Inglés ... pero eso desplegable el idioma del sitio en Settings->Generalserán pre-seleccionados como Inglés (Estados Unidos) . Eso significa que, si realiza cambios en su configuración general más adelante y olvida elegir Svenka como el idioma de su sitio nuevamente, todo el sitio volverá al inglés.

Recomendaría crear funciones en su functions.phparchivo así:

//    Set the locale; original function from @rofflox

function vnmFunctionality_setLocale($locale) {
    if (is_admin()) {
        return 'en_US';
    }

    return $locale;
}

add_filter('locale', 'vnmFunctionality_setLocale');

// Enqueue a script to force-set the Language dropdown on the General Options page, just in case we forget about it later.

function vnmFunctionality_countryReminderScript($hook) {
    if ($hook != 'options-general.php') {
        return;
    }

    wp_enqueue_script('lang-reminder-script', get_template_directory() . '/js/site-language.js', array('jquery'), '1.0.0', true);

    wp_localize_script('lang-reminder-script', 'langObject', array(
        'lang'  => get_option('WPLANG'),
    ));
}

add_action('admin_enqueue_scripts', 'vnmFunctionality_countryReminderScript');

Y luego un archivo Javascript llamado site-language.js(guardado en una /js/carpeta en su tema) así:

jQuery(document).ready(function($) {
    $('select#WPLANG').val(langObject.lang).change();
});

Esto debería preseleccionar automáticamente el idioma de visualización actual del sitio en el menú desplegable de la página Opciones, para que no tenga que acordarse de hacerlo manualmente cada vez.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.