| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 10:44:09
|
bland
JavaEvangelist
Membro desde: 10/12/2004 09:36:35
Mensagens: 330
Offline
|
Pessoal,
Estive a conversar com um amigo e analisar qual a melhor aplicabilidade da internacionalização em uma aplicação Web. Chegamos a uma "conclusão", porém, pra mim, não ficou, ainda, a melhor solução. A solução que chegamos foi criar essa internacionalização via banco de dados. Calma, não se desesperem.
Existiriam arquivos .properties para cada língua a ser apresentada no site. Porém, pairou uma dúvida quanto aos labels dos campos. Portanto, pensamos em colocar isso em banco de dados para que a partir da seleção da língua o sistema pudesse identificar quais os labels iria apresentar.
Por exemplo, se o usuário (cliente) selecionasse a língua inglesa, o sistema iria identificar qual o identificador da língua selecionada e iria buscar sempre esse identificador para ser mostrado o label correto para a língua selecionada. Vale ressaltar que isso impactaria no cadastro dos label para as línguas dispostas no sistema. Por exemplo, o campo endereço teria que ser cadastrado como Endereço, Address e assim suscetivamente.
Enfim, como mencionei, não gostei muito dessa solução e queria saber como vocês fariam para manter essa internacionalização o mais flexível possível.
Desde já eu agradeço a todos.
Forte abraço.
|
http://www.twitter.com/almeidafabiano
Fabiano Almeida. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 11:29:04
|
WilliamSilva
Moderador
Membro desde: 02/03/2005 11:08:44
Mensagens: 1747
Localização: Santos -SP.
Offline
|
Estive a conversar com um amigo e analisar qual a melhor aplicabilidade da internacionalização em uma aplicação Web. Chegamos a uma "conclusão", porém, pra mim, não ficou, ainda, a melhor solução. A solução que chegamos foi criar essa internacionalização via banco de dados. Calma, não se desesperem.
Existe um carinha chamado i18n e ele é padronizado tente dar uma pesquisar sobre.
http://java.sun.com/docs/books/tutorial/i18n/
http://www.w3.org/International/
http://blog.caelum.com.br/2007/08/13/i18n-internacionalizacao-com-jstl/
http://www.w3.org/International/getting-started/language
Bem já ví empresas guardar de tudo que é informação num repositório chamado "Banco de dados" menos o que interessa que são os dados mais isso é outra história.
sds.
This message was edited 1 time. Last update was at 27/04/2008 12:21:13
|
= William Silva =
iSHARE - Document Management System
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 11:44:33
|
Marcio_Nogueira
JWizard
![[Avatar]](/images/avatar/0447abe5b3fbb484f70517e8a1091b4e.jpg)
Membro desde: 21/05/2007 20:14:54
Mensagens: 2781
Localização: xxxxxxxxxxxxxxxxxxxxxxxxxx
Offline
|
Utilize JSF (Java Server Faces) para implementar este recurso. É muito mais eficiente e simples de implementar do que em outros frameworks (Struts).
Um abraço.
|
MBA em Desenvolvimento de Sistemas em Ambiente Web
Bacharel em Desenho Industrial / Programação Visual
Marcio Nogueira C. Pinto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 12:00:43
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Marcio_Nogueira wrote:Utilize JSF (Java Server Faces) para implementar este recurso. É muito mais eficiente e simples de implementar do que em outros frameworks (Struts).
Um abraço.
E você poderia explicar qual a diferença entre fazer isso em JSF e no Struts?
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 12:25:38
|
WilliamSilva
Moderador
Membro desde: 02/03/2005 11:08:44
Mensagens: 1747
Localização: Santos -SP.
Offline
|
Marcio_Nogueira wrote:Utilize JSF (Java Server Faces) para implementar este recurso. É muito mais eficiente e simples de implementar do que em outros frameworks (Struts).
Um abraço.
Marcio, mostre a eficiência e simplicidade do "Java Server Faces" em relação ao Struts, Struts2, Mentaway, Wicket, JSTL etc.... estou curioso.
|
= William Silva =
iSHARE - Document Management System
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 13:22:27
|
Hayan
Debugger
![[Avatar]](/images/avatar/5fe1a6812b75775c4d2633011b210684.jpg)
Membro desde: 20/01/2007 19:06:03
Mensagens: 73
Localização: Balnéario Camboriú
Offline
|
ola WilliamSilva
a maneira é simples, use ApplicationResources.properties ex (ApplicationResources_pt_BR.properties para portugues, ApplicationResources_es_US.properties para inglês), assim sua applicação esta internacionalizada automaticamente, e se tu quer que o cliente pode trocar a idioma use ex :
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 15:42:29
|
WilliamSilva
Moderador
Membro desde: 02/03/2005 11:08:44
Mensagens: 1747
Localização: Santos -SP.
Offline
|
Hayan wrote: a maneira é simples, use ApplicationResources.properties ex (ApplicationResources_pt_BR.properties para portugues, ApplicationResources_es_US.properties para inglês), assim sua applicação esta internacionalizada automaticamente, e se tu quer que o cliente pode trocar a idioma use ex
Acompanhando o raciocinio de "Qual a melhor maneira de se criar uma aplicação Web Internacionalizada?"
e, se vc. ler o post acima e acessar os links enviados verá algo melhor do que sua sugestão, só mais um detalhe a aplicação é web porquê devo usar o seu exemplo de
Se tenho isso como solução.:
http://www.javafree.org/javabb/viewtopic.jbb?t=1387
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSTL6.html
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/WebI18N.html#wp83291
http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf
sds.
|
= William Silva =
iSHARE - Document Management System
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2008 21:49:47
|
Hayan
Debugger
![[Avatar]](/images/avatar/5fe1a6812b75775c4d2633011b210684.jpg)
Membro desde: 20/01/2007 19:06:03
Mensagens: 73
Localização: Balnéario Camboriú
Offline
|
WilliamSilva o código serve para uma aplicação web sim, por exemplo nos temos uma aplicação com Struts tu pode usar uma simples Action para mudar a idioma da sua applicação :
com a Action tu pode mudar a idioma da sua applicação manualmente no Menu das idiomas :
nesse caso tu tem uma applicação Internacionalizada automaticamente e tem mais opção para o cliente mudar a idioma se quiser.
um abraço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 07:38:40
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Esses frameworks (JSF e Struts) permitem recarregamento automático das properties quando algo é alterado ou faz-se necessário um restart do servidor nesses casos ???
Como vc força um locale para a sessão do usuário, isto é, o usuário gravado no banco é english e deve ser forçado para english logo após ele se logar ???
Querendo dar uma olhada em como o Mentawai implementa internacionalização, dê uma olhada nesse link: http://www.mentaframework.org/i18n.jsp?loc=pt
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 08:02:41
|
aleck
GUJ Ranger
![[Avatar]](/images/avatar/2051bd70fc110a2208bdbd4a743e7f79.jpg)
Membro desde: 27/03/2006 08:08:33
Mensagens: 843
Localização: Rio de Janeiro
Offline
|
saoj wrote:
Esses frameworks (JSF e Struts) permitem recarregamento automático das properties quando algo é alterado ou faz-se necessário um restart do servidor nesses casos ???
Como vc força um locale para a sessão do usuário, isto é, o usuário gravado no banco é english e deve ser forçado para english logo após ele se logar ???
Querendo dar uma olhada em como o Mentawai implementa internacionalização, dê uma olhada nesse link: http://www.mentaframework.org/i18n.jsp?loc=pt
Até onde sei o restart é necessário no struts, pois ele carrega em memoria um arquivo properties. Com jsf não cheguei a usar.
A implementação do mentawai segue os mesmos padrões do struts, porém sem usar xml, outro ponto pra vc
|
Desenvolvedor iOS/Android
http://blog.alexandresoli.com.br
@alexandresoli |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 12:43:22
|
Hayan
Debugger
![[Avatar]](/images/avatar/5fe1a6812b75775c4d2633011b210684.jpg)
Membro desde: 20/01/2007 19:06:03
Mensagens: 73
Localização: Balnéario Camboriú
Offline
|
Mentawai???, ele não tem a flexibilidade de Struts ou JSF, mesmo que ele ajuda muito na produtividade, e a internacionalização é moleza com Struts.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 12:59:09
|
Luiz Aguiar
Moderador
![[Avatar]](/images/avatar/843a4d7fb5b1641b0bb8e3c2b2e75231.jpg)
Membro desde: 23/01/2005 00:05:55
Mensagens: 3840
Localização: São Paulo
Offline
|
Acho que a pergunta foi clara, sobre i18n, não sobre frameworks, vamos evitar flames por favor, se o amigo que postuo não especificou nada não somos nós que vamos escolher o framework pra ele, ok!?
|
-
Blog de Tecnologia
GitHub
@AguiarLuiz
Recicla SP na App Store!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 13:15:14
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Hayan wrote:Mentawai???, ele não tem a flexibilidade de Struts ou JSF, mesmo que ele ajuda muito na produtividade, e a internacionalização é moleza com Struts.
Sem recalques, por favor. Pelo menos tenta disfarçar esse sentimento primitivo. Se vc acha que o Struts ou o JSF fazem alguma coisa que o Mentawai não faça, peço que coloque no fórum do Mentawai. (http://forum.mentaframework.org)
Luiz Aguiar wrote:
Acho que a pergunta foi clara, sobre i18n, não sobre frameworks, vamos evitar flames por favor, se o amigo que postuo não especificou nada não somos nós que vamos escolher o framework pra ele, ok!?
Concordo plenamente. Que o amigo avalie o suporte dos diversos frameworks aqui apresentados e decida por si mesmo. Só recomendo sinceramente que não escolha um framework que exija restart a cada alteração do properties, pois estamos no século XXI.
Gerente de Marketing: "Por favor, muda aí a palavra Hello para Hi."
Gerente de Desenvolvimento: "Tudo bem! Isso é facinho! Deixa eu derrubar os servidores aqui..."
This message was edited 1 time. Last update was at 28/04/2008 13:16:35
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 17:57:05
|
bland
JavaEvangelist
Membro desde: 10/12/2004 09:36:35
Mensagens: 330
Offline
|
Pessoal,
Obrigado a todos que postaram. Mas ainda pairam algumas dúvidas na minha mente. De antemão, agradeço a Luiz por tentar pôr ordem na casa.
Eu estou pretendendo utilizar JSF 1.2 com Spring 2.5 e Hibernate 3.2 e queria uma solução parecida, para a minha realidade, com a do Youtube, ou seja, o cara entra no site, seleciona o país (idioma) e o site muda completamente todos os labels para o idioma selecionado. É isso que quero.
Pensando nas tecnologias que eu pretendo utilizar, estive a pensar em criar uma classe utilitária que fosse um singleton e estivesse presente no meu faces-config. Após a mudança do idioma, este singleton iria receber, em um determinado método, uma string para o novo arquivo .properties. Assim sendo, quando este fosse invocado (o singleton de ResourceBundle), ele já estaria apontando para o arquivo da língua selecionada e iria buscar as informações corretas para o idioma escolhido.
Eu estou "viajando" ou isso não é possível? Conto com a ajuda de vocês.
Obrigado.
|
http://www.twitter.com/almeidafabiano
Fabiano Almeida. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/04/2008 19:18:43
|
aleck
GUJ Ranger
![[Avatar]](/images/avatar/2051bd70fc110a2208bdbd4a743e7f79.jpg)
Membro desde: 27/03/2006 08:08:33
Mensagens: 843
Localização: Rio de Janeiro
Offline
|
bland wrote:Pessoal,
Obrigado a todos que postaram. Mas ainda pairam algumas dúvidas na minha mente. De antemão, agradeço a Luiz por tentar pôr ordem na casa.
Eu estou pretendendo utilizar JSF 1.2 com Spring 2.5 e Hibernate 3.2 e queria uma solução parecida, para a minha realidade, com a do Youtube, ou seja, o cara entra no site, seleciona o país (idioma) e o site muda completamente todos os labels para o idioma selecionado. É isso que quero.
Pensando nas tecnologias que eu pretendo utilizar, estive a pensar em criar uma classe utilitária que fosse um singleton e estivesse presente no meu faces-config. Após a mudança do idioma, este singleton iria receber, em um determinado método, uma string para o novo arquivo .properties. Assim sendo, quando este fosse invocado (o singleton de ResourceBundle), ele já estaria apontando para o arquivo da língua selecionada e iria buscar as informações corretas para o idioma escolhido.
Eu estou "viajando" ou isso não é possível? Conto com a ajuda de vocês.
Obrigado.
A necessidade do restart nao e para mudanca de idioma e sim para alteracoes em tempo real dos arquivos.
O que vc quer o struts, jsf ja fazem.
|
Desenvolvedor iOS/Android
http://blog.alexandresoli.com.br
@alexandresoli |
|
|
 |
|
|