Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sergionpinheiro

Tradução de site

Recommended Posts

Fala galera, boa tarde.

 

Estou com uma pequena dificuldade.

 

Estou tentando fazer um site em dois idiomas. Vasculhando pela net, achei algo bem simples para fazer isso e estou precisando de uma ajuste.

 

É o seguinte: o código abaixo é o arquivo que será carregado, caso o usuário escolha português. Segue:

<?php

 

$idioma = array();
$idioma['MEU_PERFIL'] = 'Meu perfil';
$idioma['SAIR_SISTEMA'] = 'Sair do sistema';
?>
Na página do usuário, onde tem o nome meu perfil, está assim: <?php echo $idioma['MEU_PERFIL']; ?>. Até aí show, ele está carregando perfeitamente. Porém, queria gerenciar isso através do banco, sem precisar alterar o arquivo: portugues.php. Criei uma tabela chamada idiomas que possue: DESCRICAO, PORTUGUES E INGLES.
Onde está descrição, vai ser o título da palavra que quero traduzir. Igual ao acima: $idioma['MEU_PERFIL']
E português ou inglês, será de acordo com o idioma selecionado. igual ao acima: 'Meu perfil';
Como faço para implementar isso através de consulta ao banco. Fiz assim:
$qr_idioma = "SELECT IDI_DESCRICAO, IDI_POR FROM tb_idiomas";
$my_idioma = mysql_query($qr_idioma) or die(mysql_error());
$idioma = mysql_fetch_array($my_idioma);
$idioma['IDI_DESCRICAO'] = $idioma['IDI_POR']);
Mas, dá erro. Quero colocar no site igual a este: <?php echo $idioma['MEU_PERFIL']; ?>. Ele vai lá no banco e busca a tradução para esta descrição.
Como faço esta consulta?
Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa percorrer o array retornado por fetch_array() e montar um array igual ao que você usava antes, onde as chaves são os nomes e os valores são as traduções

 

Algo assim:

 

$idioma = array();
while ($f = fetch_array(...))
{
    $idioma[$f['nom']] = $f['valor'];
}

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela dica do mysql_.

 

Quanto ao código, já havia tentando isso, ele retorna o seguinte erro:

 

Notice: Undefined index: Meu perfil

 

Porém, ele está pegando a tradução no banco, pois mostrou da maneira correta. Diferente do erro acima que era a variável.

 

Mais alguma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por newbieT.I
      Olá, estou precisando muito de ajuda, estou há vários dias preso, pesquisando pra tentar descobri um jeito de traduzir isso sem sucesso.
      vou explicar a vocês o problema primeiro, depois o que eu tentei e estou tentando fazer pra resolver.
       
      No formulário de Login do Forminator, quando o cliente digitar o Login ou Senha errado, ele exibe a Seguinte Mensagem.
       
      corresponde a esta parte do código na página:
      <div class="forminator-response-message forminator-show forminator-error" style="display: block;" tabindex="-1"><strong>ERROR</strong>: The username or password you entered is incorrect. <a href="https://www.meusite.com.br/minha-conta/senha-perdida" title="Password Lost and Found">Lost your password</a>?</div>  
      Eu já olhei nas configurações do Plugin, não encontrei nada.
      Verifiquei o arquivo de tradução dele em ./languages está mensagem não esta nele.
       
      Agora baixei o plugin no pc, estou vasculhando os arquivos pra ver se encontro alguma coisa no código.
      Ate agora nada o mais perto que cheguei de encontra foi em: 
       
       
      Nesta parte do código: (Obs: Se for melhor ver este código inteiro só falar que eu posto ele aqui.)
      FUI.formSimulation = function (el) { var submit = $(el); var form = submit.closest('form'); var response = form.find('.forminator-response-message'); var message = ''; if (!form.is('.forminator-ui') && !form.is('.forminator-custom-form')) { return; } function validateReset() { message = ''; // Empty response response.html(message); // Hide response response.removeClass('forminator-show'); response.removeClass('forminator-accessible'); // Clear out response type response.removeClass('forminator-error'); response.removeClass('forminator-success'); // Hide response for screen readers response.attr('aria-hidden', 'true'); response.removeAttr('tabindex'); // Remove error class from fields form.find('.forminator-field').removeClass('forminator-has_error'); } Outra coisa que eu estava pensando, mais por falta de conhecimento não sei se funcionaria e nem como fazer, é por meio de um css, forçar aparecer outra mensagem traduzida.
       
      Obrigado!
       
       
       
    • Por SauronWar
      Olá. Estou criando um site em Wordpress com o Newspaper 9, Tema Magazine.
      Encontrei alguns impasses e não consigo resolvê-los.
       
      Não estou conseguindo alterar o texto do "botão de busca" e nem da "página de resultados encontrados."
      Também não acho solução para alteração dos "Posts relacionados."
       
      Isso também está me impedindo de criar uma tradução com o plugin Polylang.
       
      Vocês tem respostas para esses problemas?
       
       
      Obrigado desde já.
    • Por Motta
      Sonho virando realidade: Google irá traduzir conversas em tempo real
       
      Gostaria de ver isto funcionando ,gírias , figuras de linguagem etc ...
    • Por hyper_pixel
      Estou com problema com tradução, tema gringo coloquei a tradução do mario sam mas não ativa pelo que entendi por que a tradução e foi feita para o rwd é isso? pois tenho outro site com o rwd que funciona normalmente. Nesse coloquei a pasta no caminho e nao faz e efeito   app\locale\pt_BR\    depois joguei dentro da pasta do tema ativo e depois dentro da default e não muda nada app/design/frontend/tm_themes/theme760/locale/pt_BR    app/design/frontend/default/default/locale/pt_BR   Vi tutoriais de onde comprei de como instalar nova linguagem para que apareça no combo para que o usuário escolha, não quero isso quero que a loja fique em português e pronto. No Back and também nao traduziu, esta em ingles mas aparece no store config a opção (português brasil) mas só isso, não muda nada. Pelo que entendi o magento não sabe da pasta que tem traduções, nivel de código posso programar. como faco par que ele leia a pasta com os csvs a tratuza todo o site, carrinho rodape admin etc Obrigado    
    • Por Joachim Augusto
      peguei o arquivo .pot do tema, usei o poedit criei uma nova tradução pt_BR, coloquei ela dentro do tolkit para traduzir, corrigi os erros, e joguei na pasta linguagens do tema, porem não traduziu o painel adm, ficou umas partes aindas em inglês o que faço ?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.