我正在尋找關於本地化存儲在數據庫中的數據的最佳做法的建議。我正在研究一個Web應用程序,其中所有靜態文本都使用文件進行本地化。我們有幾種管理員可以使用存儲在數據庫中的UI進行配置的選項,並需要對這些值進行本地化。動態數據的本地化
我們想出了幾個可能的想法。你對這些解決方案有什麼想法?是否有更好的選擇,甚至是標準的最佳做法?
每領域的專業本地化
這是提出了best practices for multilanguage database design解決方案。我們將爲每個本地化字段創建一個單獨的表。例如,假設我們有表colors
與color_id
,color_name
和color_description
列,我們可能爆發出來到color
表與非本地化數據和color_translations
表color_id
,locale
,color_name
和color_description
領域。
但是,我們的客戶經常會將本地化文件發送給第三方來進行翻譯,這變得棘手。
單桌本地化
另一種選擇是建立一個單一的表來表示所有的數據庫本地化:
CREATE TABLE localized_text
(
key VARCHAR(256) NOT NULL,
locale CHAR(5) NOT NULL,
value VARCHAR(256),
PRIMARY KEY (key, locale)
);
這會更容易場外定位出口,但增加了間接的程度。
是否有這些「幾個選項」不僅存儲爲數據庫中的代碼並在應用程序展示級別進行翻譯的原因?無論如何,我認爲選項一是更清潔,因爲一個巨大的桌子有很多不同的翻譯許多差異。模型可以很快地變得很糟糕 – 2010-06-29 13:32:10
我認爲只是將代碼存儲在數據庫中的主要反對意見是用戶必須去兩個不同的地方進行設置。對於那些將本地化文件發送給翻譯公司的較大客戶而言,這並不理想,但對於小客戶來說並不理想。即使是大公司也必須將用戶界面中的密鑰複製到文件中進行翻譯。 一個可能的解決方案可能是更新UI以根據需要修改本地化文件。有沒有人有任何想法呢? – Ross 2010-06-29 16:15:33
做選項#1並實現一個簡單的導入/導出工具,供客戶用來翻譯應用程序之外的自定義內容。 – 2011-08-18 03:21:08