Localização: Quero o back-end: inglês e front-end em idioma definido

9

Gostaria de ter o back-end do Wordpress em inglês e usar um local diferente para o front-end

até agora, acho que talvez eu possa fazê-lo definindo no wpconfig o local que eu quero usar no frontend e depois adicionando o functions.php algo como isto:

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

Essa é a melhor prática para alcançar o que quero ou devo fazer de maneira diferente?

unfulvio
fonte

Respostas:

1

Existe um plugin que pode ser o que você precisa.

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

Andy James
fonte
bem, obrigado, vou dar uma olhada no código, mas talvez não o use, pois não é atualizado desde 2008 e suporta apenas o WP 2.6 - se eu gostar e tiver a capacidade, talvez tente falar com o desenvolvedor e atualize-o
unfulvio 1/11/11
oh apenas verificado, ele praticamente o mesmo que a função que eu escrevi acima, em outro estilo
unfulvio
Sim, é velho, mas parece o único por perto. Se o código é como você o fez, acho que a resposta é que você está no caminho certo e é como eu o faria .. não consigo pensar em uma maneira melhor.
Andy James
1

Até agora, acho que a resposta de Fulvio é a melhor. Estou usando esse filtro mesmo em uma configuração multisite, com apenas uma linha:

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

Basicamente, às vezes, e nesse caso, eu uso multisite para sites multilíngues, em vez de plugins. Além disso, tenho um único tema para cada idioma (geralmente temas filhos do idioma principal). Portanto, todos os sites da rede têm seu próprio idioma, mas no lado do administrador, preciso de todas as interfaces em italiano.

Então, o que eu faço é:

  1. Eu não uso a constante geral WPLANG no wp-config.php
  2. Coloquei italiano em todos os sites da rede
  3. No functions.php de cada tema, uso o filtro acima para controlar o idioma / localidade do frontend.

NOTA: esse filtro não altera o idioma do administrador, portanto, não é necessário verificar se is_admin ()

Luca Reghellin
fonte
0

Se alguém ainda estiver procurando por isso, eis o que você deve fazer desde a versão 4.7

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

Isso força o painel a carregar em inglês e, em seguida, você pode acessar as configurações e definir o idioma desejado.

Motaz M. El Shazly
fonte