Idioma diferente para front-end vs back-end

9

Eu uso um pacote WordPress em inglês e isso está muito bem.

Agora, gostaria de traduzir alguns elementos do blog (como "postado em", "comentários") etc., mas deixe a interface do painel intacta em inglês.

Existe algum mecanismo para traduzir apenas os elementos do site?

serhio
fonte

Respostas:

19

Você pode fazer o seguinte:

  1. Obtenha o pacote de idiomas (por exemplo de_DE.mo) do wordpress.org . Se o pacote de idiomas não estiver disponível para download autônomo, você também poderá usar o .moarquivo que está incluído no arquivo ZIP do WordPress para o seu idioma. Localizado abaixo wp-content/languages.
  2. Mova o .moarquivo para a wp-content/languages/sua instalação padrão (em inglês) do WordPress.
  3. Altere a WPLANGconstante wp-config.phppara o novo código do idioma (por exemplo de_DE)
  4. No seu functions.phpadicione o seguinte filtro:

functions.php

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

    return $locale;
}
rofflox
fonte
agora, o que você quer dizer com "instalar seu pacote de idiomas"? devo desinstalar o wordpress e instalar o novo wordpress, mas dizer francês? Não quero desinstalar o meu wordpress em inglês.
serhio 2/09/11
11
Não, você não precisa reinstalar nada. Basta baixar o WP no idioma desejado e copiar o arquivo de idioma wp-content/languages/para o WP em inglês original, instalar e modificar wp-config.phpconforme descrito acima. Ou apenas faça o download do fr_FR.moarquivo neste site .
Rofflox
Eu não tinha a wp-content/languages/pasta, então devo criá-la. Depois de realizar essa manipulação, tenho o vice-versa do que faria. Agora tenho o painel de administração em romeno, mas a página (mesmo logada ou não) - em inglês. Talvez eu deva traduzir o tema ...
serhio 7/09/11
Claro, você precisa do tema traduzido. Mas o back-end deve estar em inglês e não em romeno, se você definir is_admin()o filtro acima.
Rofflox 7/09
11
ver também a minha resposta abaixo para o WordPress v> = 4.7, que permite aos usuários ver o back-end em sua própria língua
Serge
6

Você pode usar plugins para isso: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ ou http://wordpress.org/extend/plugins/wp-native-dashboard/

zodiac1978
fonte
11
Bem vindo ao nosso site. Por favor, adicione uma explicação: O que esses plugins, quais são as diferenças?
fuxia
11
Eu acho que estão fazendo exatamente o mesmo. (Acabei de usar o primeiro ...) Você pode instalar arquivos de idiomas diferentes e, com os plug-ins, pode alterar o idioma do back-end independentemente. Os dois plug-ins fornecem opções do painel para o idioma, uma caixa de seleção do idioma de login e um complemento para a página de perfil para o idioma específico do usuário.
Zodiac1978 # 8/12
6

Desde o WordPress versão 4.7 , diferentes usuários de back-end podem definir seu próprio idioma de administrador preferido usando o seletor de idioma nativo do WordPress. Dessa forma, eles veem a interface do WordPress em seu idioma e podem gerenciar mais facilmente o conteúdo. Idioma diferente para usuários de back-end no Wordpress, independentemente do idioma do front-end

Sarja
fonte
O código define que, para todos os usuários globalmente, isso funciona apenas em uma conta individual.
Motaz M. El Shazly
4

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
4

No WordPress 5.x, é muito simples obter um idioma diferente e de back-end

Para alterar o idioma do site, vá para Configuração -> Geral -> Idioma do site e selecione o idioma do site.

insira a descrição da imagem aqui

Para o Painel do administrador, vá para Usuários -> Seu perfil e selecione o idioma que você deseja ter no Painel do administrador

insira a descrição da imagem aqui

Para que todas as soluções acima se tornem absolutas, cada usuário pode definir seu próprio idioma para a interface do WordPress

EckyBrazzz
fonte
Essa deve ser a resposta selecionada para 2019+. Não são necessários plugins e a solução é tão simples. Obrigado!
Stason
Isso muda para cada usuário individualmente, o código o altera automaticamente para todos os usuários.
Motaz M. El Shazly
2

Uma resposta atualizada para o Wordpress 4+

A resposta do @ rofflox ainda está correta, mas houve algumas alterações no Wordpress que podem ter efeito ao usar a função 'como está' desde o WP 4.0.

A constante wp-config WPLANGfoi preterida em favor da configuração do idioma do site por meio de uma lista suspensa Settings->General. Isto significa que, depois de mudar o idioma do seu site para Svenka (por exemplo), admin do seu site vai aparecer em Inglês ... mas que suspensa Idioma do Site em Settings->Generalserá pré-selecionado como Inglês (Estados Unidos) . Isso significa que, se você alterar as configurações gerais mais tarde e esquecer de escolher o Svenka como o idioma do site novamente, o site inteiro voltará ao inglês.

Eu recomendaria a criação de funções no seu functions.phparquivo da seguinte forma:

//    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');

E então um arquivo Javascript chamado site-language.js(salvo em uma /js/pasta no seu tema) da seguinte forma:

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

Isso deve pré-selecionar automaticamente o idioma de exibição atual do site no menu suspenso na página Opções, para que você não precise se lembrar de fazê-lo manualmente todas as vezes.

indextwo
fonte
-1

O que você precisa é traduzir seu tema. Se o seu tema tiver um arquivo .pot, será fácil traduzir. Basta seguir os passos em

http://www.appthemes.com/blog/how-to-translate-a-wordpress-theme/

Caso contrário, você precisará editar os arquivos do tema e alterar as palavras em cada instância.

user8388
fonte
meu tema (vinte dez) tem a pasta "wp-content / themes / TwentyTen / linguagens" e há apenas um dentro do arquivo .pot ...
Serhio