Alterando o idioma de uma única página

4

Eu tenho um site wordpress em um idioma que alinha a RTL, mas algumas páginas estão em inglês. Essas páginas parecem terríveis, no entanto, porque o texto em inglês está alinhado com a linguagem RTL, e a pontuação, etc. aparece do lado errado.

Como posso definir o idioma para uma única página ou várias páginas individuais?

    
por Null_Error 28.08.2017 / 18:59

3 respostas

2

Você deve usar locale hook para resolver sua tarefa.

Importante notar que você não pode adicioná-lo ao tema e usar a função is_page , porque ele será definido posteriormente.

Você precisa criar o plug-in ou deve usar o plugin com o url parsing dessa maneira:

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;
});

Resposta relacionada: Alterar localidade em tempo de execução?

    
por Anton Lukin 28.08.2017 / 19:37
1

O filtro locale que permite definir a localidade especificamente. Você pode verificar a página atual e alterar o valor com base nisso.

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

Aqui está uma correção para o problema de temporização na solução por @ jack-johansson:

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