Fie*_*nix 5 c# sql-server asp.net-mvc-4
我们正在使用资源文件 (.resx) 将我们的 .NET 4.5 MVC C# 应用程序翻译成不同的语言。这对于位于我们视图中的静态文本非常有用。但是,我们从 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)
)
Run Code Online (Sandbox Code Playgroud)
我的应用程序将英语作为默认(或主要)语言,因此我将默认语言保留在基表中,仅将翻译保留在翻译表中。当然,如果您愿意,您可以仅将字符串值保留在翻译表中。请注意,这没有考虑每种文化的不同日期和数字格式,这是在表示层上完成的。
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |