Cambiar el idioma de una sola página

4

Tengo un sitio de wordpress en un idioma que se alinea con RTL, pero algunas páginas están en inglés. Sin embargo, estas páginas se ven terribles porque el texto en inglés está alineado con el idioma RTL, y la puntuación, etc., aparece en el lado equivocado.

¿Cómo puedo configurar el idioma para una sola página o varias páginas individuales?

    
pregunta Null_Error 28.08.2017 - 18:59

3 respuestas

2

Debes usar locale hook para resolver tu tarea.

Nota importante: no puedes agregarlo al tema y usar la función is_page , porque se definirá más adelante.

Así que tienes que crear plugin o debe usar el complemento con la url analizando de esta manera:

add_filter('locale', function($locale) {
    $path = trim($_SERVER['REQUEST_URI'], "/");

    // get last part as slug
    $arr = explode("/", $path);
    $slug = end($arr);

    if($slug === 'MY_SLUG')
      return 'ru_RU';

    return $locale;
});

Respuesta relacionada: ¿Cambiar la configuración regional en tiempo de ejecución?

    
respondido por el Anton Lukin 28.08.2017 - 19:37
1

El filtro locale que te permite establecer la configuración regional específicamente. Puede consultar la página actual y modificar el valor en función de eso.

add_filter('locale', 'change_my_locale');
function change_my_locale( $locale ) {
    if ( is_page('slug-here') ) {
        return 'en_US';
    }
    return $locale;
}
    
respondido por el Jack Johansson 28.08.2017 - 19:04
0

Aquí hay una solución para el problema de sincronización en la solución por @jack-johansson:

add_action('wp', function() {
  if ( is_page('slug-here') ) {
    add_filter('locale', function( $locale ) {
      return 'en_US';
    });
  }
});
    
respondido por el maxime schoeni 30.08.2017 - 12:14

Lea otras preguntas en las etiquetas