2011-10-20 90 views
0

我想在MVC3中进行本地化,我想用数据库来存储资源。我已经阅读了资源提供者,但我还没有找到一种使用资源提供者的方式,而不会丢失常规资源文件具有的强类型访问权限。MVC本地化

那么,在保持强类型访问的同时,做本地化的最佳方式是什么? (理想情况下也使用数据库)

回答

1

如果要将条目存储在数据库中,则可以执行与Visual Studio中正常资源文件为您一样的技巧。

正常情况下,资源文件被解析并从中生成一个静态类。在你的情况下,你可以用我们的T4模板(Code Generation and T4)连接到数据库,并从你的数据库中'Id'列建立一个资源类,你有相同的资源类。

在启动时,你可以加载翻译的字符串数据库,并用它初始化T4资源类。

+0

“英雄”是,是围绕了不少,这些天抛出一个字... –

0

简单而有效的方式做到这一点,仅仅是使用NuGet包专门用于在数据库中存储的资源和产生的强类型资源。

NuGet包装:http://www.nuget.org/packages/Globsite.Globalization.Mvc

项目地点:http://globsite.net/GlobsiteGlobalizationLibrary

该软件包包含实现.NET资源提供程序模型的数据库存储资源的准备使用和复杂的基础结构。 生成的类可以通过T4模板运行与数据库进行同步,例如可以在每个版本上执行哪些操作。

可以使用的资源是这样的:

@using MyResources.SampleSet 
@Resources.SampleKey