Ir para conteúdo

POWERED BY:

Arquivado

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

Patrique

Google api tradução

Recommended Posts

Fala ae moçada tudo tranquilo?

 

Estou aqui com um projeto pessoal no qual eu tenho pretenções de lançar o danado em 4 linguas diferentes, por isso estou buscando estudar a api de tradução do google, com isso estou fazendo aqui uma gambiarras para fazer uns testes para ae sim depois eu pensar em criar alguma função que seja válida.

 

Mais esbarrei com um probleminha macabro aqui, é o seguinte....

 

Consegui a seguinte url de api

 

http://ajax.googleapis.com/ajax/services/l...te?v=1.0&q=texto_traduzir&langpair=pt%7Cen

 

texto_traduzir = refere-se a string de texto a ser traduzido

pt = linguagem da linguagem principal

en = linguagem a ser traduzida

 

Estou utilizando o seguinte texto na string texto_traduzir

 

"Meu nome é patrique andré alves da silva e eu moro na cidade de resende que é interior do rio de janeiro e sou provalvelmente o cara mais teimoso do brasil e quem sabe do mundo"

 

Até ae beleza...

 

Dai estou utilizando xmlhttp para pegar as infos lá no googleapis, neste exemplo acima eu mando o google traduzir o texto que esta na string texto_traduzir que esta em portugues para inglês

 

o POG que estou usando é este

 

<%
traduzir = "Meu nome é patrique andré alves da silva e eu moro na cidade de resende que é interior do rio de janeiro e sou provalvelmente o cara mais teimoso do brasil e quem sabe do mundo"
traduzirtratado = Replace(traduzir,"","%20")

pagina = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" & traduzirtratado & "&langpair=pt%7Cen"

Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
	xmlhttp.Open "GET",pagina, False
	xmlhttp.setRequestHeader "Encoding", "ISO-8859-1"
	xmlhttp.Send()

	codigo = xmlhttp.ResponseText

Response.Write traduzir
Response.Write "<br><br>"
Response.Write codigo
Response.Write "<br><br>"
Response.Write pagina
%>

Dai o google me devolve as seguintes informações na página

 

{"responseData": {"translatedText":"My name patrique Andr Alves da Silva and I live in the city of resende that interior of Rio de Janeiro and I am probably the most stubborn man who knows the world and the world"}, "responseDetails": null, "responseStatus": 200}

 

Note que na palavra André não foi com acento.... que troço chatoo.....

 

Agora vamos supor que eu queira traduzir esta budega para françes, então eu mudo a string pagina colocando assim

 

pagina = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" & traduzirtratado & "&langpair=pt%7Cfr"

dai o problema é diferente... o acento no andré aparece porém aparece l\u0026#39; no lugar aonde teria que ser traduzido a palavra "que é"

 

veja abaixo como é retornado em francês

 

{"responseData": {"translatedText":"Mon nom patrique André Alves da Silva, et je vis dans la ville de Resende que l\u0026#39;intérieur de Rio de Janeiro, et je suis probablement le plus têtu homme qui connaît le monde et le monde"}, "responseDetails": null, "responseStatus": 200}

Agora eu pergunto galerinha... o que esta acontecendo??? por que esta dando este erro na acentuação e nos caracteres?

 

que budega é essa e como eu posso arrumar isso?

 

desde já agradeço!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invéz de usar o Replace do espaço use a função URLEncode, com ela você irá substituir todos os caracteres especiais pelos códigos aceitos na URL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o problema com acento seja o componente.

 

Veja isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por incrivel que parece já tinha utilizado as duas formas apresentadas por você esalgado e a apresentado por você hargon, mais nenhuma das 2 foi eficiente, tem também a dica do desisto... também vou ver se é aquilo.

 

Mais valew ae pelo toque, continuarei ai na correria.

 

Valew!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utiliza outro componente para fazer essa requisição, só para teste mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais acredito que o problema não seja na acentuação não, sabe porque.... quando eu faço a tradução para o inglês... o "é" não aparece, agora quando eu faço em frances essa budega aparece heheheheheh

 

To começando a achar que é alguma coisa na api....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal desculpa não li o post de todo mundo, mas acredito que o problema pode estar ocorrendo por incompatibilidade de enconding... pode ser que você está usando algo como ANSII e o google trabalha com UTF8. Logo quando você manda acentos ele não entende e quando ele te manda acentos você recebe um monte de caracteres estranhos. Porque caracteres especiais em utf8 equivale a uma sequência de caracteres ANSII.

 

Se você quiser fazer um teste pra ver se é problema de UTF8:

 

Quando você receber os caracteres estranhos imprima-os na página (da forma que eles vieram, sem fazer conversões). Depois vá em EXIBIR -> CODIFICAÇÃO -> UNICODE (UTF8) (isso no IE6 né).

 

Depois veja se os caracteres começaram a fazer sentido na página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema está na forma que a API recebe os dados. Veja que ele não traduziu É, que no caso seria IS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disse, no inglês da o probleminha na acentuação, já no frances este problema não acontece... sem contar que no frances da aquele probleminha ("l\u0026#39;") muito doida esta api... ta loco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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