0

我们有一个带有大约 20 个表的小型 mySQL 数据库(全部为英文)。

既然它已经设计好并且有数千条记录,是否可以本地化这个数据库?

我们有哪些选择?

谢谢

更新 - 06-08-13 - 我想知道这个解决方案是否可行?

每个需要保存本地化数据的表都应拆分为 2 个表:primary_table 和 table_locale

我们以产品表为例。

产品标题和产品描述字段(以及任何其他需要翻译的文本字段)应移至第二个表 products_locale。此本地化表将保存具有以下架构的产品的所有翻译数据:

Id(PK)    Prod_Id(FK)   Locale_Id(FK)    Prod_Title (VARCHAR)   Prod_Desc (BLOB) 
1              1                   1     My product                     My product is awesome
2              1                   2     Mon produit                    Mon produit est génial
3              1                   3     Mi producto                    Mi producto es impresionante
4

2 回答 2

1

好的,在这种情况下,我将为每种语言添加一个新列。例如product_en、product_de等。简单、快速、干净。
只要您不需要动态添加和删除语言。

于 2013-06-07T14:58:28.250 回答
0

我会提供其他选择只是为了好玩。=)

您可以简单地确保您的 MySQL 实例使用 UTF8 ( http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html )。您还可以查看用于存储文本的国家字符集 ( http://dev.mysql.com/doc/refman/5.0/en/charset-national.html )。

这个想法是创建行而不是列,然后引入一个语言字段 - 或者拥有一个将语言映射到各种产品的外部映射表。

这种方法有一些明显的缺点,但这是可能的。

另一种选择是为产品描述序列化一个对象(可能是 JSON)并存储各种语言。不过,您显然必须增加现有字段的大小以应对增长。

于 2013-06-07T16:30:13.910 回答