[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

mensagens de texto unificadas  XML
Forum Index -> Comentários Gerais
Author Message
boaglio


[Avatar]

Joined: 28/09/2005 11:05:16
Messages: 299
Location: Sao Paulo - Brazil
Offline


Oi,

No WebWork se eu quiser centralizar o texto de todo o site
eu coloco no arquivo webwork.properties isso:

Code:
 webwork.locale=pt_BR
 webwork.custom.i18n.resources=mensagensDoSistema
 


E aí no arquivo mensagensDoSistema.properties eu coloco
todo o texto, como por exemplo:

Code:
 ######################### MENSAGENS DO SISTEMA #########################
 
 ####### APLICACAO GERAL #######
 aplicacao.titulo.cadastro=ENTRE COM OS DADOS DO CADASTRO
 aplicacao.titulo.busca=ENTRE COM OS DADOS DA BUSCA
 ...
 


Como eu faria isso no Mentawai?

http://www.boaglio.com
[WWW]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Os textos estáticos do site podem ficar todos dentro do arquivo master do i18n. Por default esse arquivo é o /master.i18n. Para mudá-lo basta fazer no ApplicationManager.java:

Code:
         // usa o arquivo /i18n/whatever/meuarquivomaster.i18n
         LocaleManager.setMaster("/i18n/whatever/meuarquivomaster");
 


A questão é como fazer para mensagens dinâmicas, validação e listas de dados.

Mensagens Dinamicas:

Se vc olhar o source de BaseAction.java, vai ver que ele usa por default um ClassMessageContext com o nome tha action, isto é, ele pega as mensagens do arquivo:

Code:
 /messages/nome_da_classe_da_action.i18n
 


Se vc quiser especificar um outro arquivo, isto é, um outro message context, vc pode usar a função addMessage/addError que aceitam como parametro um messageContext. Daí vc pode usar o FileMessageContext que vem com o mentawai para especificar o arquivo i18n que vc quiser, no seu caso o seu master.

Para vc não ter que ficar passando sempre o seu MessageContext, vc pode usar o método estático de BaseAction:

Code:
 // Vai procurar todas as mensagens do message context abaixo...
 BaseAction.setMessageContext(new FileMessageContext("master", ""));
 


Validação

Vc tem a funcão setMessageContext do ValidationFilter. (Veja documentação)

Listas: Isso não faz muito sentido. Geralmente a lista vem do banco ou de arquivos. Nada te impede de implementar a sua própria lista que faça isso (interface ListaData)

(A função BaseAction.setMessageContext não entrou na versao 1.1.1, logo quem quiser usar isso que eu falei pode pegar o jar abaixo.)






 Filename mentawai.jar [Disk] Download
 Description
 Filesize 189 Kbytes
 Downloaded:  328 time(s)

 Filename BaseAction.java [Disk] Download
 Description
 Filesize 8 Kbytes
 Downloaded:  791 time(s)


Sergio Oliveira

saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Confesso que isso nao ficou muito simples...

Vou pensar para a versão 1.1.2 um esquema mais trivial para centralizar tudo que é mensagem i18n num arquivo só.

O que acha ?

Sergio Oliveira

boaglio


[Avatar]

Joined: 28/09/2005 11:05:16
Messages: 299
Location: Sao Paulo - Brazil
Offline


Se existir essa feature eu vou achar ótimo!

http://www.boaglio.com
[WWW]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Fernando,

Seguindo a sua sugestão, agora se vc quiser centralizar tudo num arquivo só, tudo que vc tem a fazer é:

Code:
 LocaleManager.setMaster("aqui/meumaster"); // para trocar o default que é i18n/master
 LocaleManager.setUseMasterForEverything(true);
 


Isso na versão 1.1.2 que foi lançada hoje...


Sergio Oliveira

 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team