Jump to content


Photo

Api Do Google


  • Faça o login para participar
1 reply to this topic

#1 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 14/02/2009, 02:59

to usando o api do google..
documentação: http://code.google.c...tion/#Translate

to usando o sistema de tradução..
pra isso, preciso listar em um select os idiomas suportados pro usuário escolher pra qual idioma ele quer traduzir!
ok, o google tem uma 'variável' pra isso:
google.language.Languages
só qe os idiomas estão em ingles..
e é assim
google.language.Languages[i] -> código do idioma (que deve ser o valor do select)
i -> é o idioma por escrito (ex.: portuguese)

então.. eu uso a função de tradução:
google.language.translate

pra traduzir o idioma pro portugues, então minha função ficou assim

x = true;
for (i in google.language.Languages) {		
	if (google.language.isTranslatable(google.language.Languages[i])) {
	nome = i.substr(0,1).toUpperCase() + i.substr(1,i.length).toLowerCase();
		google.language.translate(nome,'en','pt',function(result) {
	 	nome = result.translation;
		});
		$("#selectTraducao").addOption(google.language.Languages[i],nome,x);
		x = false;
		}
onde a função addOption funciona assim
addOption(p1,p2,p3);
p1: valor; p2: texto; p3: se o item atual fica selecionado.

só qe não funciona o código acima..
o valor da variável nome, simplesemente não vai pra fora daqela 'subfunção' e aí continua sendo imprimido o valor em ingles!

tentei o seguinte também
x = true;
for (i in google.language.Languages) {		
	if (google.language.isTranslatable(google.language.Languages[i])) {
	nome = i.substr(0,1).toUpperCase() + i.substr(1,i.length).toLowerCase();
		google.language.translate(nome,'en','pt',function(result) {
	 	nome = result.translation;
		$("#selectTraducao").addOption(google.language.Languages[i],nome,x);
		x = false;
		});
		}

mas aí o problema foi que o valor de i, não ia pra dentro daqela 'subfunção'
e aí, dava erro porque eu preciso dele..!

então, eu não sei o qe fazer!
alguém sabe uma solução?

#2 fiote

fiote

    12 Horas

  • Usuários
  • 191 posts
  • Sexo:Masculino
  • Localidade:Vila Velha - ES
  • Interesses:PHP

Posted 19/02/2009, 07:07

Não conheço a API do google, mas vamos tentar te ajudar:

Primeiro, pelo que eu vi (e faz mais sentido),

google.language.Languages[i] -> código do idioma (que deve ser o valor do select)
i -> é o idioma por escrito (ex.: portuguese)


Na verdade seria:

i -> código do idioma (que deve ser o valor do select)
google.language.Languages[i] -> é o idioma por escrito (ex.: portuguese)


Assim teriamos:

google.language.Languages[1] = 'portuguese'
google.language.Languages[2] = 'english'
google.language.Languages[3] = 'tiopês'

etc etc

No caso da sua subfunção, em nenhum momento você altera o valor do conteúdo desse vetor de idiomas.
Faça o teste, e adicione a linha destacada:

x = true;
for (i in google.language.Languages) {		
	if (google.language.isTranslatable(google.language.Languages[i])) {
		nome = i.substr(0,1).toUpperCase() + i.substr(1,i.length).toLowerCase();
		google.language.translate(nome,'en','pt',function(result) {
			nome = result.translation;
			google.language.Languages[i] = nome; // LINHA NOVA
			$("#selectTraducao").addOption(google.language.Languages[i],nome,x);
			x = false;
		});
	}
}

;)

Edição feita por: fiote, 19/02/2009, 07:08.

[ FFTOnline.Net ]
Developed by Fiote, Powered by Mootools.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq