我正在寻找关于本地化存储在数据库中的数据的最佳实践的建议。我正在开发一个web应用程序,在这个应用程序中,所有的静态文本都是使用文件本地化的。我们有几个选项,管理员可以使用UI进行配置,这些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)
);这将更容易导出的场外本地化,但增加了一个水平的间接。
发布于 2013-03-14 04:43:19
我们将为每个本地化字段创建一个单独的表。例如,假设表的颜色带有
color_id、color_name和color_description列.
假设您的colors表只是静态文本,那么最明显的选择是向它添加一个列,可能命名为locale,并为您所关心的每个地区添加行。然后加入到客户的地区,以产生您想要的单一描述。
要做到这一点,您必须将静态描述从独立于地区的数据中分离出来,因为本地化描述引入了多对一的关系。作为一种权宜之计,你可以把英文描述放在主表中,一旦所有引用都消失了,就把它们放掉。
https://stackoverflow.com/questions/3136224
复制相似问题