| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2011 17:16:40
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Olá pessoal, seguinte:
Fiz um menu utilizando struts-menu integrado com Struts 2, até aí funcionou tudo perfeito e beleza. Mas agora eu quero internacionalizar os nomes nos menus (title).
Esse é o meu menu-config.xml:
E aqui o jsp correspondente ao menu:
Bom, o menu aparece e todos os itens tb. Todos os titles aparecem se escritos diretamente no atributo title, tipo title="Relatórios". Mas eu preciso internacionalizar, daí preciso passar uma key pra o title como no caso do menu 'userMenu' acima. Já tentei usar o atributo bundle na tag <menu:useMenuDisplayer> mas aparece na tela a key mesmo. Alguém sabe como fazer pra o struts-menu reconhecer o title como uma key para o arquivo message.properties?
This message was edited 1 time. Last update was at 16/02/2011 17:25:19
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2011 18:02:52
|
magnojg
Thread.start()
Membro desde: 22/09/2006 13:06:21
Mensagens: 34
Localização: Recife - PE
Offline
|
Tiago, se por exemplo, você colocar a localidade do usuário no escopo de sessão com uma chave "user.locale", então você deve usar a tag do tipo:
Acredito que desta forma funcione.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2011 18:14:25
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Olá magnojg!
Cara, vc tá se referindo ao objeto Locale? O meu usuário não tem um Locale. Acho q não entendi essa parte. Dá pra explicar melhor? =D
Vlw!
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 11:04:29
|
magnojg
Thread.start()
Membro desde: 22/09/2006 13:06:21
Mensagens: 34
Localização: Recife - PE
Offline
|
Tiago, no locale você deve colocar o atributo onde está sendo armazenado o idioma que o menu deverá ser exibido. No exemplo, utilizei o atributo "locale" do objeto "user", que está na Stack Values. Consegui explicar?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 11:26:04
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Você tá explicando muito bem (e obrigado por isso), apenas não vejo aonde isso se relaciona com o meu caso. O struts me força a ter um objeto Locale dentro do User?? Eu coloquei um atributo locale="user.locale" no meu jsp mas deu NullPointer =/. Obviamente, porque o objeto user não tem locale. A questão é: precisa SEMPRE ter? Eu quero usar o mesmo properties de mensagens que o resto do sistema usa. Aí tipo... não bastaria eu acertar aonde o bundle está, para achar o properties e a partir daí fazer o mapeamento chave-valor das mensagens?
Vlw!
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 11:38:36
|
magnojg
Thread.start()
Membro desde: 22/09/2006 13:06:21
Mensagens: 34
Localização: Recife - PE
Offline
|
É Tiago, só com o bundle deveria funcionar...
Você está usando a taglib menu com esta uri?
Caso contrário, tenta com ela, pois há diferenças para esta:
A diferença é apenas o -el mesmo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 11:49:25
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Bom, eu tava usando a taglib sem o "-el" no fim. Mas mesmo colocando "-el" no fim não funciona. Continua exibindo no título menuItem a chave da mensagem: "application.header.user". Me diz uma coisa, o bundle deve ser o nome do arquivo de internacionalização sem o ".properties" no final? Ou tem algum segredo de qual nome por no atributo bundle da tag?
Grato!
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 12:02:39
|
magnojg
Thread.start()
Membro desde: 22/09/2006 13:06:21
Mensagens: 34
Localização: Recife - PE
Offline
|
Tiago, tenta com o seguinte bundle:
ou
Que diz pra o menu usar os mesmos recursos que o struts.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 12:19:40
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Tentei com ambos agora e não rolou. É estranho inclusive que essa classe org.apache.struts.action.ActionMessage não parece ser do struts 2 mas do 1. Não sei. Mas não funcionou e agora eu não tenho mais saída. Caramba, como pode ser tão difícil internacionalizar um menu???
Fiquei sem abordagens agora... Alguma sugestão?
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 12:21:30
|
magnojg
Thread.start()
Membro desde: 22/09/2006 13:06:21
Mensagens: 34
Localização: Recife - PE
Offline
|
Cara, vou ver se consigo mais alguma coisa (que funcione ), e te passo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 12:31:19
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Pow... muito obrigado pela ajuda! Fico no aguardo (e tentando aqui)! =]
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2011 17:24:49
|
Tiago Farias
JavaChild
![[Avatar]](/images/avatar/295f404072232ad70d1f4893912d68a3.jpg)
Membro desde: 24/02/2008 16:18:39
Mensagens: 109
Localização: Recife-PE
Offline
|
Ae! Descobri qual é a magia.
Como o magnojg flw, trocar o taglib por <%@ taglib prefix="menu" uri="http://struts-menu.sf.net/tag-el"%> é o primeiro passo.
O segundo passo é apagar o bundle e o locale no xml e setar no web.xml o parâmetro:
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>*Messages</param-value>
</context-param>
Onde *Messages é o nome do seu arquivo de internacionalização (que fica em WEB-INF/classes) sem o .properties no fim. Tipo, "router-messages" no meu caso.
Isso resolveu.
\o/
|
SCJP 6
SCWCD 5
Bacharel em Ciência da Computação - UFPE
http://tiagodev.wordpress.com
- What does a insomniac, agnostic and dislexic man do at night?
- He contemplates about the existence of an All-Mighty Dog. |
|
|
 |
|
|