系統多語言實踐(二)

上一篇 我們介紹了靜態多語言的設計,這篇我們介紹動態多語言的設計。

1. 多語言存儲

假設下面一個場景:

系統有一個產品目錄需要維護,目錄名稱和描述需要支持多語言存儲。表結構設計如下:

PRODUCT_CATEGORY

 

 

 

 

PK

欄位

類型

允許NULL

描述

PK

ID

VARCHAR(36)

N

類別Id

 

LANG_ID

VARCHAR(36)

N

多語言ID

 

CREATED_ON

DATETIME

N

創建時間

 

CREATED_BY

NVARCHAR(50)

N

創建人

 

CHANGED_ON

DATETIME

Y

變更時間

 

CHANGED_BY

NVARCHAR(50)

Y

變更人


針對每個需要支持動態多語言的表,除了創建一張主表,還需創建一個與之匹配的附表,命名規範爲 {主表名}_M, M表示Multilingual的意思。

PRODUCT_CATEGORY_M 

 

 

 

PK

欄位

類型

允許NULL

描述

PK

ID

VARCAHR(36)

N

關聯主表的LANG_ID欄位

PK

CULTURE_CODE

VARCHAR(10)

N

區域代碼

 

NAME

NVARCHAR(50)

N

類別名稱

 

DESCRIPTION

VARCHAR2(500)

Y

類別描述


2.  多語言維護

用戶在維護需要支持多語言數據的欄位的時候,需要根據系統支持的多語言種類,一次錄入多筆資料。

爲了保證UI的一致性,可以開發js版本的多語言控件。如下圖:



3. 多語言訪問

由於設計的時候,嚴格遵循了一致的Schema設計和命名規範,我們可以通過代碼生成工具自動生成關聯查詢語句,使得M表對於開發者透明。


4. 其它

在網上有金蝶K3 Cloud中的設計:

http://open.kingdee.com/K3Cloud/PDM/BD.htm



還可以參考下面的資源:

http://www.codeproject.com/Articles/8084/Creating-multilingual-websites-Part-2


發佈了50 篇原創文章 · 獲贊 14 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章