Jpa 本地化表数据
例如:我有一个带有一些代码的表:Jpa 本地化表数据,jpa,localization,internationalization,Jpa,Localization,Internationalization,例如:我有一个带有一些代码的表: 1, Blue, This is blue color 2, Red, This is red color - any text... 3, Green, This is green color 语言的数量未知 表可以有多个本地化字段 我使用JPA和hibernate来访问这些表 如何对这些代码和说明进行本地化?我认为应该垂直添加本地化,而不是水平添加 这意味着每种语言没有一个新的列,而是一个用于语言名称和标识符的单独表,以及另一个具有每种可能语言的本地化
1, Blue, This is blue color
2, Red, This is red color - any text...
3, Green, This is green color
- 语言的数量未知
- 表可以有多个本地化字段
- 我使用JPA和hibernate来访问这些表
如何对这些代码和说明进行本地化?我认为应该垂直添加本地化,而不是水平添加 这意味着每种语言没有一个新的列,而是一个用于语言名称和标识符的单独表,以及另一个具有每种可能语言的本地化值的表
您上面显示的表是使用中性语言的主表,在您的英语案例中,我上面提到的第二个表将具有相同的id(1,2,3…),用于字符串id,然后是列LanguageId和LanguageText,该LanguageId具有特定的本地化值。与另一个答案相反: 我认为,您应该创建一个包含区域设置作为额外字段的表。这将使您能够在消息id和区域设置上构建索引,以加快搜索速度。它还将使管理接口(我假设您有一个,因为否则您将使用属性文件)更易于构建,因为您只需要在JPA端处理一个表和一个对象 该表如下所示:
table messages
id number,
message_code number,
locale string, // or number, depending on your app
message1 string
message2 string
message3 string // or more/less
消息\u code
并非绝对必要,但有助于在不同的上下文中重用此表。您的意思是第二个表看起来像:CS,1,1,Modra CS,1,2,to je Modra barva CS,2,1,Cervena CS,2,2,to je Cervena barva-nejaky text这不是关于标签和标题-这是关于代码列表的本地化(用户可以执行CRUD操作)。这就是属性文件不可用的原因。基表将只包含两个消息代码,而不是“蓝色”和“这是蓝色”?不一定。您可以包含更多消息。您只需在消息代码
字段中标识所需的消息即可(因此,您可以将此表用于所有本地化)。我已相应地更新了我的答案。