gpt4 book ai didi

c# - 数据库储值的全局化

转载 作者:行者123 更新时间:2023-11-30 12:27:53 25 4
gpt4 key购买 nike

我们正在使用资源文件 (.resx) 将我们的 .NET 4.5 MVC C# 应用程序翻译成不同的语言。这对于位于我们 View 中的静态文本非常有用。但是,我们有从 SQL 数据库中提取的值也需要转换。

示例:包含从数据库中的表填充的值的下拉列表。

在数据库中转换这些值的最佳做法是什么?

最佳答案

在我设计的最后一个多语言应用程序中,我使用了一个语言表,并且对于具有任何字符串类型(char、varchar 等)的每个表,我都有一个翻译表。

沿着这些线的东西:

CREATE TABLE TblLanguage 
(
Language_Id int identity(1,1) PRIMARY KEY,
Language_EnglishName varchar(30),
Language_NativeName nvarchar(30),
CONSTRAINT UC_TblLanguage UNIQUE(Language_EnglishName)
)

CREATE TABLE TblSomeData (
SomeData_Id int identity(1,1) PRIMARY KEY,
SomeData_TextColumn varchar(50),
....
)

CREATE TABLE TblSomeData_T ( -- _T stands for translation
SomeData_T_SomeData_Id int FOREIGN KEY TblSomeData(SomeData_Id),
SomeData_T_Language_Id int FOREIGN KEY TblLanguage (Language_Id),
SomeData_T_TextColumn nvarchar(100),
PRIMARY KEY (SomeData_T_SomeData_Id , SomeData_T_Language_Id)
)

我的应用程序将英语作为默认(或主要)语言,因此我将默认语言保留在基表中,只保留翻译表中的翻译。当然,如果您愿意,您可以只将字符串值保留在翻译表中。请注意,这并未考虑每种文化的不同日期和数字格式,这是在表示层上完成的。

关于c# - 数据库储值的全局化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com