2010-12-16 10 views
4

私は自分のウェブ上でダイナミック(ユーザ生成)コンテンツをローカライズする最良の方法を模索しています。私はspring-mvcを使用しています。これは非常に良いフレームワークを見つけましたが、今では複数のエンティティを複数の言語で利用できるようにする必要があります。 静的テキストの場合、i18nは私が同意する最良の方法ですが、正しく理解すれば、データベースに格納されているものをローカライズすることはできません。Java Spring Webアプリケーションでのエンティティのローカリゼーションのベストプラクティス

私は、データベース内の両方のローカライズされた、オリジナルのコンテンツを格納する必要があり、今私は実体を持っ例えばので を行うための最善の方法であるかを知る必要があるためにそこ

@Entity 
public class Article { 

    private Long id; 

    private String title; 

    private String body; 

} 

場合はどのようになっているはずです私はそれがローカリゼーションをサポートしたいですか?

@Entity 
public class Article { 

    private Long id; 

    @OneToMany 
    private Set<LocalizedTitle> localizedTitles; 

    private String body; 

} 

JPAに組み込ま何かがあるかもしれ/その私を休止...私は、TBH、このソリューションが好きではありませんが、私はこの場所に来ています理由ですより良い方法を考え出すことはできません使える?

は私が記事全体をローカライズするだろうあなたの助け

+0

Map localizedTitlesについて考えてみましょう。現在のlocalizedTitlesとほとんど変わりませんが、LocaleはServletRequestから入手できます。 – DwB

+1

@dwb JPA –

答えて

6

をありがとう:

記事のコンテナ:

@Entity 
public class Article{ 

    @Id 
    private Long id; 

    @OneToMany(mappedBy="container") 
    private Set<LocalizedArticle> localizedArticles; 

} 

ローカライズされたバージョン:

@Entity 
public class LocalizedArticle{ 

    @ManyToOne 
    private Article container; 

    @Id 
    private Long id; 

    private String body; 

    private String title; 

    private String locale; 

} 

そして、あなたのクエリでは、ローカライズされたバージョンをロケールで検索します。

+0

優れたアイデアでマップを維持することはできません!どうもありがとう :) – Schyzotrop

関連する問題