| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 11:06:32
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
org.mentawai.i18n.LocaleManager.java:
[code]
public static Locale getDefaultLocale() {
if (locales.size() == 0) return DEFAULT_LOCALE;
return locales.get(0);
}
[code]
Porque o LocaleManager.getDefaultLocale() pega o locale 0 como default? Poque o 0 é o default?
Default não é o que eu setei no action usando:
this.setLocale(locale);
??
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 15:06:34
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Default é o locale que o mentawai utiliza como default se ele não conseguir encontrar nenhum outro.
Por definição é o primeiro que vc seta com o Locale.addLocale
Se vc não chamou esse método então fica sendo o DEFAULT_LOCALE
Vc não deve setar manualmente o locale da action. O locale da action pode ser qualquer um, o que é diferente do default.
O Menta já se vira para setar o locale da action pra vc... Ligando o debug mode dá para ver quais os locales que ele está pegando...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 15:16:45
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
eu estou setando o locale na action porque eu quero que o site fique em um idioma diferente do idioma do browser...
ou seja, meu browser pode ser PT, mas que quer ver o site em IT...
pra fazer isso eu tenho que setar o locale como fiz, certo? funcionou para os arquivos de i18n do menta...
mas agora eu quero pegar esse locale que eu estou usando em outro lugar, alguma sugestão?
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 15:44:06
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
O Mentawai escolhe o locale pra vc. Vc não deve fazer isso, ou seja, setar na mão, pois o menta tem uma lógica pra fazer isso.
Vc deve usar:
Locale.addLocale(INGLES)
Locale.addLocale(PT)
Feito isso, não importa qual seja o locale do browser, o locale será ingles (default) ou pt.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 23:26:53
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
Feito isso, não importa qual seja o locale do browser, o locale será ingles (default) ou pt.
pois é... mas como assim ingles ou pt? quem escolhe isso? não posso deixar automático
eu preciso definir exatamente qual locale a pessoa estará usando.
tipo o Locale.addLocale vai adicionar locales em um array, blz? (alias n sei q classe Locale é essa pq n eh a java.util.Locale e não tem uma classe Locale no menta, vc deve ter trocado o nome).
De q q forma, esse array ai não é o q eu preciso... Qual o locale está sendo usado entre esses que estão no array? Preciso setar isso, entendeu? N posso usar automático.
Por isso estou usando:
this.setLocale() dentro da action principal (e funciona)
--------
mas a dúvida é como pegar o locale corrente depois usando o LocaleManager ou algo parecido... (já que o LocaleManager.getDefaultLocale() n faz isso...)
n sei se consegui explicar, mas n posso usar esse detects automaticos
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 23:35:05
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
No seu exemplo, acho que você estava querendo dizer isso:
Code:
LocaleManager.add(new Locale("pt", "BR"));
LocaleManager.add(new Locale("en", "US"));
LocaleManager.add(new Locale("it", "IT"));
mas isso eu já uso dentro do ApplicationManager...
a questão é que eu quero escolher qual desses Locale é o current...
e depois quero pegar isso de alguma maneira
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 23:46:00
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Entendi.
Se o locale está no banco de dados por exemplo, e vc quer setar para a sessão do cara, vc faz assim dentro da action:
BaseLoginAction.setUserLocale(new Locale("pt"), session)
Feito isso aquela sessão terá o locale "pt" sempre... até expirar ou ser invalidada...
Se o locale não está na sessão, então ele pega pelo browser...
se o browser é japonês, então o locale será pt_BR (default)
se o browser é en_US ou en então o locale será en_US
e por aí vai...
acho que entendi sua dúvida, o que vc quer é setar na session, que automaticamente será setado na action pra vc pelo mentawai... vc está fazendo isso só que na mão... acho que tb pode...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2008 00:00:21
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
é, setar eu consegui...
o problema é que eu quero pega depois em um lugar que não é action... (dentro de uma taglib)...
ai tentei usar o LocaleManager.getDefaultLocale(), mas ele não é LocaleManager.getCurrenLocale() como eu imaginei... então ficou a dúvida
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2008 00:25:28
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
As taglibs do Mentawai possuem acesso a Action, daí vc pega mole com getLocale.
Se é uma tag lib sua, então vc tem acesso ao request, logo pode pegar a action assim:
req.getAttribute("action")
Com a action vc chama getLocale
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2008 08:24:10
|
bruno.braga
Joined: 01/12/2006 09:37:16
Messages: 226
Offline
|
hmmmm.... vlw =)
Mas para o futuro acho que seria uma boa ter um LocaleManager.getCurrentLocale()...
Mas vlw d+
|
http://www.brunobraga.com.br
http://www.j2eespider.org |
|
|
 |
|
|