Problema ao pegar locale do navegador.[RESOLVIDO]

4 respostas
D

Estou tentando pegar o locale do navegador para poder sugerir correções de palavras no mesmo idioma. Estou usando o seguinte código: Application.application.parameters.locale porém ele não está retornando corretamente o locale, o seu é retorno: ‘undefined’. Alguem teria alguma sugestão?
A seguir está o código que estou usando no meu .mxml.

private function getLocale():String{
	Alert.show("Locale: "+Application.application.parameters.locale);
	return 'pt_BR';
}

(:

4 Respostas

F

Isto funciona se vc estiver passando parâmetros como explico aqui http://fabiophx.blogspot.com/2009/08/recebendo-parametros-via-url.html
Dê uma olhada em Capabilities.language (do sistema operacional e não do navegador) ou via ExternalInterface solicitar a uma função JavaScript q retorne o locale do navegador.

[]s

D

Eu estou mexendo a pouco tempo com javaScript e AS , dei uma pesquisada na internet e não consegui achar nada. A sua ideia de pegar do SO foi ótima porém o meu chefe disse que tem que ser do Navegador. Até agora eu utilizei essas duas funções

Alert.show("Linguagem: "+Capabilities.language);                        //retorna a do SO mas não serve
				Alert.show("Locale: "+Application.application.parameters.locale);  //retorna undefined

e também achei esta aqui de baixo, porém retorna undefined também quando eu do um Alert no this.parameters.locale, porém a classe Locale só dá pra utilizar ela já passando o local que eu quero utilizar como parâmetro, ou seja, eu preciso pegar de outro lugar ¬¬.

private function preInitApp():void{
	// Definição da linguagem de visualização
		f(this.parameters.locale){
		var locale:Locale = new Locale(String(this.parameters.locale).replace("-","_"));
		var localeChain:Array = new Array();
		localeChain.push(locale.toString());
		localeChain.push(locale.language);
		localeChain.push(locale.country);
		localeChain.push("pt_BR");	// default
		resourceManager.localeChain = localeChain;
	}
   }

Acho que atualmente pelo que o fabiophx comentou utilizar uma função no JS seria ideal. Alguém teria algum código de exemplo?

att. Eduardo Cordeiro.

F

Eduardo,
Respondi o comentário q vc colocou no post no meu blog http://fabiophx.blogspot.com/2009/08/recebendo-parametros-via-url.html

[]s

D

Resolvi o meu problema colocando o locale na URL e depois peguei a URL inteira com este código abaixo:

var teste:String = ExternalInterface.call(“window.location.toString”);

e depois:

if(teste.indexOf("locale=pt")!=-1){
	return 'pt_BR';
    }

Não ficou a melhr forma, porém também não parece estar tão ruim. Tentei utilizar o código: “var nome:String = mx.core.Application.application.parameters.locale;” para pegar apenas o locale, mas ele retorna null.

Créditos para o fabiophx, pois ele que me deu as diretivas.

Criado 7 de julho de 2010
Ultima resposta 9 de jul. de 2010
Respostas 4
Participantes 2