动态数据的本地化

时间:2010-06-28 21:22:15

标签: database-design localization

我正在寻找有关本地化存储在数据库中的数据的最佳实践的建议。我正在开发一个Web应用程序,其中所有静态文本都使用文件进行本地化。管理员可以使用UI配置多个选项,这些选项存储在数据库中,需要对这些值进行本地化。

我们提出了几个可能的想法。您对这些解决方案有何看法?是否有更好的选择,甚至是标准的最佳实践?

每场专业化本地化

这是为best practices for multilanguage database design提出的解决方案。我们将为每个本地化字段创建一个单独的表。例如,假设我们的表colors包含color_idcolor_namecolor_description列,我们可能会将其分解为color表本地化数据和color_translationscolor_idlocalecolor_namecolor_description字段。

但是,我们的客户经常将本地化文件发送给第三方进行翻译,这变得很棘手。

单表本地化

另一种选择是创建一个表来表示所有数据库本地化:

CREATE TABLE localized_text
(
    key          VARCHAR(256) NOT NULL,
    locale       CHAR(5) NOT NULL,
    value        VARCHAR(256),
    PRIMARY KEY (key, locale)
);

这样可以更容易地导出非现场本地化,但增加了一定程度的间接。

1 个答案:

答案 0 :(得分:1)

  

我们将为每个本地化字段创建一个单独的表。例如,假设我们的表格颜色为color_idcolor_namecolor_description列....

假设您的colors表只是 静态文本,显而易见的选择是向其添加一列,可能名为locale,并为您关心的每个区域设置添加行。然后加入客户的区域设置以生成所需的单个描述。

为此,您必须将静态描述与与语言环境无关的数据分开,因为本地化描述会引入多对一关系。作为权宜之计,您可以将英文描述保留在主表中,并在所有对它们的引用都消失后删除它们。