Campo em BD com I18n

Eu fiz uma página com I18n mas, eu qro mais.
Por exemplo se o usuário decidir usar inglês ele irá ver os artigos cadastro em inglês e assim em diante.
Como devo fazer isso, criar um campo para cada lingua?

    @Entity  
    public class Artigo{  
    @Id  
    @GeneratedValue  
    private long id;  
    private String titulo;  
    private String titulo_en;  
    private String titulo_de;  

Tem outro jeito?
Estou usando jsp e Vraptor como retornar só campos da língua escolhida

<c:forEach var="artigo" items="${Artigos}"> 
     <div id="artigo-${artigo.id}" class="artigo"> 
           <span class="titulo">${artigo.titulo+(Alguma macro substituição)}</span> 
     </div> 
</c:forEach>

Estarei agradecido com a ajuda de todos

[quote=recsa2004]Eu fiz uma página com I18n mas, eu qro mais.
Por exemplo se o usuário decidir usar inglês ele irá ver os artigos cadastro em inglês e assim em diante.
Como devo fazer isso, criar um campo para cada lingua?

    @Entity  
    public class Artigo{  
    @Id  
    @GeneratedValue  
    private long id;  
    private String titulo;  
    private String titulo_en;  
    private String titulo_de;  

Tem outro jeito?
Estou usando jsp e Vraptor como retornar só campos da língua escolhida

<c:forEach var="artigo" items="${Artigos}"> 
     <div id="artigo-${artigo.id}" class="artigo"> 
           <span class="titulo">${artigo.titulo+(Alguma macro substituição)}</span> 
     </div> 
</c:forEach>

Estarei agradecido com a ajuda de todos[/quote]
Mas você vai escrever todos artigo em todos os idiomas ?

Existem dezenas de maneiras de fazer.
Dai vai depender totalmente do negócio.

Existe um cadastro de idiomas ? Se sim, tem que ser tudo dinamico.
Se não existe, pode talvez usar uma enumeration da linguem. E cada artigo gera um objeto por idioma.
Enfim.
Depende do negócio, não existe certo ou errado(fora as gambiarras).

Até.

faço alguma coisa parecida em um sistema que estou desenvolvendo.
Para cada artigo você tem que colocar o idioma que está nele.
Por exemplo, se o usuário estiver vendo o sistema em inglês, o campo locale estará como en_US, se estiver em português, será pt_BR.

@Entity public class Artigo{ @Id @GeneratedValue private long id; private String titulo; private String locale; private String texto;

Então quando você for listar os artigos, ou faz o filtro na query do banco de dados pelo locale, ou faz um c:if comparando o locale do artigo com o locale do usuário.

[quote=andreiribas]faço alguma coisa parecida em um sistema que estou desenvolvendo.
Para cada artigo você tem que colocar o idioma que está nele.
Por exemplo, se o usuário estiver vendo o sistema em inglês, o campo locale estará como en_US, se estiver em português, será pt_BR.

@Entity public class Artigo{ @Id @GeneratedValue private long id; private String titulo; private String locale; private String texto;

Então quando você for listar os artigos, ou faz o filtro na query do banco de dados pelo locale, ou faz um c:if comparando o locale do artigo com o locale do usuário.

[/quote]

Valeu kra acho q isso irá resolver… Vc é o kra!!
Outra pergunta onde vc armazena o locale? em servlet, na sessão ou em uma classe?

na sessão do usuário