如何在DB中引入词典国际化

时间:2011-08-29 07:37:53

标签: sql sql-server internationalization

我有很多字典的数据库。直到这一刻它才用英文写成,但客户希望在数据库级别上引入国际化(以支持西班牙语和英国英语)。因此,登录我们系统的用户应根据其国际化设置查看所有文本。

大多数dictionay表都是以下形式出现的:

CREATE TABLE UserPermissionTypes (
Id [INT],  
Title NVARCHAR(100),  
Description NVARCHAR (500) )

此时我正在考虑为每个字典创建重复的表格,其形式与此类似:

CREATE TABLE UserPermissionTypesTranslations (
UserPermissionTypesId [INT],
LanguageCodeId [INT]
Title NVARCHAR(100),  
Description NVARCHAR (500), )

我知道这不是完美的解决方案,所以我想知道在表格中实现国际化的最佳方法是什么? 是否有一些标准的方法来进行国际化?

1 个答案:

答案 0 :(得分:1)

如何为翻译制作额外的表格并使用它的ID而不是文本(在评论后修改):

    CREATE TABLE UserPermissions ( 
    Id [INT],   
    TitleTR [INT],   
    DescriptionTR [INT] ) 

    CREATE TABLE Translations(
    Id [INT],
    LanguageID [INT],
    Text NVARCHAR(500)
    )

select tr.Text as title, tr2.Text as description from UserPermissions
join Translations tr on tr.id=UserPermissions.titleTR and languageid=:LANG
join Translations tr2 on tr2.id=UserPermissions.descriptionTR and languageid=:LANG