2011-08-09 34 views
0

例如:我有表的一些代碼:本地化表數據

1, Blue, This is blue color 
2, Red, This is red color - any text... 
3, Green, This is green color 
  • 用語言數量是未知的。
  • 表可以具有多個本地化字段。
  • 我使用JPA與休眠來訪問這些表。

如何本地化這些代碼和說明?

回答

0

在反對對方的回答:

我想,你應該創建一個包括區域作爲一個額外的字段的表。這將使您能夠通過消息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 

message_code不是嚴格neccessary,但有助於重新使用此表爲不同的上下文。

+0

這不是關於標籤和標題 - 這是關於代碼列表的本地化(用戶可以執行CRUD操作)。這就是爲什麼屬性文件不可用。 – Vlada

+0

基表只包含兩個message_codes而不是「Blue」和「This is Blue color」? – Vlada

+0

不一定。你可以包含更多的消息。你只需要在'message_code'字段中標識你需要的消息(這樣你可以重複使用這張表進行所有的本地化)。我已經相應地更新了我的答案。 – nfechner

0

認爲本地化應該垂直添加而不是水平添加。

這意味着每種語言沒有新的列,而是語言名稱和標識符的分隔表以及每種可能語言中具有本地化值的另一個表。

上面顯示的表格是中性語言的主表格,在您的情況下爲英文,那麼上面提到的第二個表格將具有相同的Ids(1,2,3 ...) ,然後是LanguageId列和具有該LanguageId的特定本地化值的LanguageText。

+0

你的意思是第二個表格如下:CS,1,1,Modra CS,1,2,到je modra barva CS,2,1,Cervena CS,2,2,到je cervena barva - nejaky text – Vlada