Tradução de textos utilizando a API do Google
Tags api, google, google api, jquery, tradução, translate
Categorias: css, jquery, tutoriais
Neste artigo iremos ver como traduzir um determinado conteúdo que está em um idioma para outro utilizando a API do Google.
O exemplo utilizado aqui será bem simples, mas poderá passar a idéia do funcionamento da API, permitindo que você faça uso mais complexo desta abordagem.
Limitações deste artigo:
- A API de tradução do Google tem um limite de 500 palavras a serem traduzidas por requisição.
- Neste artigo será traduzido apenas o conteúdo de uma div.
- Como a tradução feita pela Google API é feita palavra a palavra, a tradução pode não ser fiel.
Então, mãos à obra.
Arquivo HTML
Crie um arquivo chamado index.html. Neste arquivo faça como a seguir:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tradução de textos com a API do Google</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
// Inicializa a versão 1 da Google Ajax API
google.load("language", "1");
// Carrega o framework JQuery, tambem atraves da mesma API do google
google.load("jquery", "1.3");
Neste trecho iniciamos a construção do cabeçalho da página e fizemos a chamada da API do Google. Nesta API já podemos fazer tanto a invocação da API de tradução
google.load("language", "1");
quanto a chamada do framework JQuery
google.load("jquery", "1.3");
. Mas qual o motivo pelo qual foi utilizado a API do google para chamar JQuery neste exemplo? A principal vantagem é a economia de banda e distribuição cd conteúdo (CDN), utilizando também menos requisições HTTP, mas isso é assunto para um próximo artigo. Vamos dar continuidade ao artigo.
Agora neste passo iremos criar as funções em JavaScript que serão responsáveis pela tradução do conteúdo.
google.setOnLoadCallback(function() { // Ao carregar a API do google, faça:
$(function(){ //Escuta o carregamento da página.
$("#idioma").change(function(){ //Quando ouver mudança no campo "idioma" executara a função como segue...
var idioma = $("#idioma").val(); //Pega o idioma selecionado no campo idioma
var texto = $("#traduzir").html(); //Conteudo que será traduzido
var len = content.length; //Tamanho do texto a ser traduzido
var palavras = 500; // Como a Google API language aceita apenas 500 palavras por vez...
var idiomaOrigem = "pt"; //Idioma de origem do texto a ser traduzido
//Limpa o conteudo da div com o resultado da tradução
$("#traduzido").html("");
for(i=0; i <= (len/palavras); i++) {
google.language.translate (texto.substr(i*palavras, palavras), idiomaOrigem, idioma, function (resultado) {
if (!resultado.error) { //Caso não ocorram erros
$("#traduzido").html($("#traduzido").html()+resultado.translation); //Adiciona o resultado dentro da div traduzido (palavra a palavra)
}
});
}
});
});
});
</script>
Agora ainda no cabeçalho da página (a fim de exemplo apenas) adicionamos algum estilo CSS
<style type="text/css">
.area{
width: 42%;
float:left;
padding: 1%;
border: 2px solid #ccc;
color: #666;
font: 1.2em "Trebuchet MS", Arial, Verdana, sans-serif;
margin: 2%;
}
#idioma{
font-size: 1.1em;
color: #666;
}
</style>
</head>
E por fim, resta fazermos o conteúdo da página, como segue:
<body>
<p><label for="idioma">Idioma: </label>
<select name="idioma" id="idioma">
<option value="en" selected="selected">english</option>
<option value="de">deutsch</option>
<option value="pt">português</option>
<option value="fr">francais</option>
<option value="it">italiano</option>
<option value="es">espanol</option>
<option value="nl">nederlands</option>
<option value="ja">japanease</option>
</select>
</p>
<div class="area" id="traduzir">
<p>
Este texto será traduzido para outro idioma. Ao selecionar o idioma desejado no campo "Idioma", este texto será traduzido. <br />
Porém vale lembrar que a API do Google tem um limite de ate 500 palavras por requisição.
</p>
</div>
<div class="area" id="traduzido">
</div>
</body>
</html>
Para visualizar o exemplo completo, acesse http://www.brunoew.com.br/translate.
Até o próximo artigo!
Tweetar

» Efeito accordion na horizontal com JQuery & CSS3
» PHP - Gerando QR Code com Google Charts API






