Cerrito 0 Denunciar post Postado Março 10, 2005 Bom galera fiz esse script a um tempo atras para um projeto da empresa em que trabalho... é simples e funcional de e serve muito bem para projetos pequenos e de médio porte, tvz projetos grandes se tornem um pouco mais dificeis de gerenciar... bom esse é o script que seta o idioma... dei o nome de setidioma.php PHP [/tr][tr]<?php/******************************* BY MRS 05/06/2004 ****************************************************************************\ * *** * * esse arquivo verifica se o usuario marcou um idioma, caso seja verdadeiro ele seta esse idioma e grava um cookei com duração de * * um mes, para que na próxima vez ele já venha com o idioma setado... * * caso contrário ele verifica se existe um cookie com o idioma, caso não tenha ele pega o idioma do navegador e seta esse * * +++ * /******************************************************************************** ***************************************************** */ ob_start(); $default = "pt"; // padrão será o portugues... if( isset( $_POST['trocaIdioma'] ) ) { require $_POST['trocaIdioma'] . ".php"; setcookie("guardaIdioma", $_POST['trocaIdioma'], time()+3600*24*30, '/'); // cookie com tempo de expiração de 1 mes } else if( isset($_COOKIE["guardaIdioma"]) ) { require $_COOKIE["guardaIdioma"] . ".php"; } else if (!isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { require $default .".php"; } else { $idioma = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $idioma = substr($idioma,0,2); // separando o idioma.... if( ( $idioma == "pt") or ( $idioma == "es") or ( $idioma == "en") ) // verificando se é um idioma válido { require $idioma . ".php"; } else { require $default . ".php"; } } ob_end_flush(); ?> [/tr] Arquivo onde será guardado o idioma pt... nome desse arquivo é pt.php PHP [/tr][tr] <? $texto['titulo'] = "Informações do sistema"; $texto['usada'] = "Usado"; $texto['livre'] = "Livre"; $texto['espacoTotal'] = "Tamanho"; $texto['dataHora'] = "Data/Hora"; $texto['nomeDaMaquina'] = "None do servidor"; $texto['dominio'] = "Dominio"; $texto['host'] = "Host"; $texto['uptime'] = "Tempo de vida"; $texto['numeroProcessos'] = "Numero de Processos"; $texto['sistemaOperacional'] = "Sistema operacional"; $texto['vKernel'] = "Versão do Kernel"; $texto['usuarios'] = "Usuários"; ?> [/tr] arquivo com espanhol... nome desse arquivo é es.php PHP [/tr][tr]<?php $texto['titulo'] = "System Information"; $texto['usada'] = "Usage"; $texto['livre'] = "Free"; $texto['espacoTotal'] = "Space total"; $texto['dataHora'] = "Date/time"; $texto['nomeDaMaquina'] = "Computer Name"; $texto['dominio'] = "Domain"; $texto['host'] = "Host address"; $texto['uptime'] = "Server time life"; $texto['numeroProcessos'] = "Processors number"; $texto['sistemaOperacional'] = "Operational System"; $texto['vKernel'] = "Kernel Version"; $texto['usuarios'] = "Users"; $texto['totalUsuarios'] = "Current Users"; ?> [/tr] arquivo com idioma em inglês... nome desse arquivo é en.php PHP [/tr][tr]<?php $texto['titulo'] = "System Information"; $texto['usada'] = "Usage"; $texto['livre'] = "Free"; $texto['espacoTotal'] = "Space total"; $texto['dataHora'] = "Date/time"; $texto['nomeDaMaquina'] = "Computer Name"; $texto['dominio'] = "Domain"; $texto['host'] = "Host address"; $texto['uptime'] = "Server time life"; $texto['numeroProcessos'] = "Processors number"; $texto['sistemaOperacional'] = "Operational System"; $texto['vKernel'] = "Kernel Version"; $texto['usuarios'] = "Users"; ?> [/tr] bom galera agora tem apenas a parte de trocar o script... PHP [/tr][tr] // seria algo assim... require "setidioma.php"; // chama as configurações de idioma... // troca o idioma... <table align=right> <td class=textoUsoGeral><?php echo $texto['fraseIdioma']; ?><form method="post" action="informacoes.php"> <select name="trocaIdioma" class=forms> <option value="pt"><?php echo $texto['portugues']; ?></option> <option value="es"><?php echo $texto['espanhol']; ?></option> <option value="en"><?php echo $texto['ingles']; ?></option> </select> <input type=submit name=ok value=ok> </form> </td> </table> [/tr] bom galera é isso... claro que pode ser usado banco de dados, mas nesse caso, por questões internas não usamos, pois muitos clientes não queriam dispor de um banco... vai saber prque... e ficaria mais facil a implementação dessa maneira... abraços a todos Marcio Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 10, 2005 Cerrito, muito interessante, estou a desenvolver um site, que precisará estar disponível em 3 idiomas. Mas não entendi muito bem como utilizar o seu script.Tipo assim:tenho um site normal todo em português, ai eu teria que ter uns arquivos nas outras línguas, para substituir os textos? Chamando os mesmo por include? Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Março 10, 2005 Bom na verdade leandro...ficaria algo assim...tipo você tem seu site onde você teria a frase "Seja bem vindo"bom no site na verdade você teria algo parecido com issoinclude "setIdioma.php"; // esse seria o arquivo que verifica o idioma, ele ve o idioma do navegador e seta o idioma entre pt, es, en se não for nenhum desses, por default será pt...$texto['saudacao'];em resumo tudo que você queira que fique em outro idioma você não irá colocar o texto puro e sim uma referencia para os arquivos...note que os arquivos pt, en, es devem ter o mesmo conteudo, na sua devida lingua claro...caso ainda tenha duvida me de um grito que tento explicar melhor ok...abraçosMarcioobs:dei uma melhorada na explicação do scriupt acima...da uma olhada acho que agora tá mais claro... Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 10, 2005 beleza, deu pra entender sim!mas se for algo dinâmico, tipo um portal de notícia? como ficaria? Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Março 10, 2005 Ai creio que seria mais facil ao inves de cadastrar em arquivos criar em banco...e só fazer ele buscar no banco ao invés dos arquivos, pois fica mais facil de gerenciar...abraçosMarcioqualquer coisa vai gritando ai... Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 11, 2005 Ai creio que seria mais facil ao inves de cadastrar em arquivos criar em banco...e só fazer ele buscar no banco ao invés dos arquivos, pois fica mais facil de gerenciar...abraçosMarcioqualquer coisa vai gritando ai... desulpe o incômodo heehe, mas tipo assim:suponhamos que seja um portal de notícia, então precisaria escrever a notícia 3 vezes, e ter 3 tabelas né? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 11, 2005 manero cerrito!eu trabalho nesse estilo tambémcom os idiomas em arrays Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Março 11, 2005 É simples, mas eficiiente...quebra o maior galho...Marcio Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Março 11, 2005 Ai creio que seria mais facil ao inves de cadastrar em arquivos criar em banco...e só fazer ele buscar no banco ao invés dos arquivos, pois fica mais facil de gerenciar...abraçosMarcioqualquer coisa vai gritando ai...desulpe o incômodo heehe, mas tipo assim:suponhamos que seja um portal de notícia, então precisaria escrever a notícia 3 vezes, e ter 3 tabelas né? Bom poderia ser em 03 tabelas ou em uma tab. com dois campos que seriam os diferenciais...1 - identifica o idioma...2 - identifica o texto...alem de um id claro...abraçosMarcio Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Março 11, 2005 talvez poderia usar algum sistema de traducao tambem...tipo: o usuario quer em ingles, vai no google e pede para retornar o texto em ingles, so que ai precisaria estudar como funciona o google e talz, ate ai é o de menos, o mais complicado é que esses sistemas de traducao nao sao 100%...mais ta ai uma ideiaabracos Compartilhar este post Link para o post Compartilhar em outros sites
pcdesign 0 Denunciar post Postado Novembro 2, 2006 você poderia dar um pequeno exemplo pratico com bdpara melhor compreenção.Para funcionar tenho que criar script nos 3 idomas?Teria tambem ter uma bd para cada indioma?Se tenho um menu com bd.tabMenu_pttabMenu_esptabMenu_enAcho que estou voando no assunto.obrigado Compartilhar este post Link para o post Compartilhar em outros sites
rdegouveia 0 Denunciar post Postado Novembro 30, 2006 Olá,Estou efetuando um levantamento através da net sobre as práticas de desenvolvimento de sites multi-idiomas. Para uma questão ainda consegui respostas. Como é o design-time (em tempo de desenvolvimento) deste tipo de desenvolvimento, onde você não possui os textos, pois, os mesmos estão em arquivos xml ou banco de dados, você perde a referência para a definição do lay-out. A pergunta agora é, existe alguma forma, por exemplo utilizando o Dreamwaver de setar variáveis com conteúdos advindos de arquivos xml ou banco de dados para utilizar como referências em tempo de desenvolvimento?Desde já agradeço a atenção, Compartilhar este post Link para o post Compartilhar em outros sites
mapb_1990 0 Denunciar post Postado Fevereiro 22, 2008 achei este metedo mt simples. obrigado por disponibilizares aki para o pessoal. tipo, no codigo, a escolha do idioma é feita através de uma listbox. o k keria era seleccionar o idioma atraves de imagens. como é k faço isso as imagens k tenho são:~ CODE <span class="titulo">Escolha a linguagem:</span> <img src="images/pt.gif" alt="Português"> <img src="images/uk.gif" alt="Inglês"> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 24, 2008 Crie links nas imagens, de forma a produzir o mesmo efeito que realizava com o listbox. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
mapb_1990 0 Denunciar post Postado Fevereiro 25, 2008 Crie links nas imagens, de forma a produzir o mesmo efeito que realizava com o listbox. :thumbsup:como é k ficava isso? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 25, 2008 Como você fazia com o list box? Você não criava links assim? www.site.com/?lang=ptOu algo parecido? Com imagens, basta criar link: <a href="?lang=pt"><img src="pt.gif" alt="Português" /></a> Compartilhar este post Link para o post Compartilhar em outros sites
mapb_1990 0 Denunciar post Postado Fevereiro 26, 2008 mt obrigada Compartilhar este post Link para o post Compartilhar em outros sites
DarkDragonLord 0 Denunciar post Postado Fevereiro 29, 2008 Sem ser spam ou coisa do tipo mas, eu uso este sistema que ele fez no meu site, só que implementei um pouquinho ele. Caso queiram ter um exemplo prático como um site funciona com isso, é o primeiro site da minha assinatura. Lá são imagens das bandeiras que mudam, do jeito que mapb queria e o Beraldo explicou. Como voces podem ver, é possível fazer as imagens do site inteiro serem dinamicas também, ou seja, fazer algo do tipo: (exemplo com o logo do meu site) as imagens são en_logo ou pt_logo <img src="./images/ <?php $default = "en"; if( isset( $_GET['lang'] ) ) { echo $_GET['lang'] . "_logo"; } else if (!isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { echo $default; } else { $idioma = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $idioma = substr($idioma,0,2); // separando o idioma.... if( ( $idioma == "pt") or ( $idioma == "en") ) // verificando se é um idioma válido { echo $idioma . "_logo"; } else { echo $default; } } ?>.jpg" border="0"> Ou por exemplo, usando as bandeirinhas dos países... SE colocar igual ao Beraldo disse, a pessoa que estiver já navegando no site, na hora que clicar no link, vai voltar a página inicial.. portanto eu fiz um codigo que detecta. Se estiver alguma variável na URL (meu include é ?ddl= entao o $_GET tem valor ddl), ele pega a variável e adiciona a chamada da lingua, assim ele muda de texto sem sair da pagina que estava. Se não achar nenhum valor no DDL, ele só imprime o ?lang= <a href="<?php $_SERVER['PHP_SELF'] ?> <?php $default = "?"; if( isset( $_GET['ddl'] ) ) { echo "?ddl=" . $_GET['ddl'] . "&"; } else { echo $default; } ?>lang=pt"><img src="images/flag_br.png" border="0" style="width: 32px; height: 32px;"></a> <a href="<?php $_SERVER['PHP_SELF'] ?> <?php $default = "?"; if( isset( $_GET['ddl'] ) ) { echo "?ddl=" . $_GET['ddl'] ."&"; } else { echo $default; } ?>lang=en"><img src="images/flag_us.png" border="0" style="width: 32px; height: 32px;"></a> Ah, só um lembrete. Usem os códigos de caracteres nos arquivos de língua (ou seja, não ao invés de escrever não direto). No meu site, isso dá mó pal, vou ter que reescrever tudo com os codigos... o $texto['pt_services'] = "Serviços Disponíveis Para Você" ; virou Serviços DisponÃveis Para Você AGRADEÇO bastante o cerrito. Graças ao codigo dele, além do sistema multi-lingua, eu aprendi um pouco de php lendo e tentando entender o código. Compartilhar este post Link para o post Compartilhar em outros sites
Deives 0 Denunciar post Postado Julho 29, 2008 Eai galera, estou com alguns problemas... 1° [resolvido] 2° Sobre os scripts do DarkDragonLord, consegui trocar as imagens perfeitamente, mas minha dúvida é como trocar o texto Por formulário funciona corretamente, igual ao exemplo no 1° post deste tópico. Com as bandeiras como posso trocar o idioma do texto também, exatamente igual ao site http://raphaelddl.com ? Compartilhar este post Link para o post Compartilhar em outros sites
Deives 0 Denunciar post Postado Julho 29, 2008 Sobre o 1° problema já resolvi, fechei o EasyPHP e abri novamente e atualizou, mas ainda estou com problema com o item 2... Compartilhar este post Link para o post Compartilhar em outros sites