MVC 本地化
我正在尝试在 MVC3 中进行本地化,并且我想使用数据库来存储资源。我已经阅读了有关资源提供程序的内容,但我还没有找到一种使用资源提供程序而不丢失常规资源文件所具有的强类型访问权限的方法。
那么,在保持强类型访问的同时进行本地化的最佳方法是什么? (最好也有数据库)
I'm trying to do localization in MVC3, and I want to use a database to store the resources. I've read up on resource providers, but I haven't found a way of using a resource provider without losing the strongly-typed access that a regular resource file has.
So, what is the best way to do localization, while maintaining strongly-typed access? (Ideally with a database too)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想将条目存储在数据库中,您可以执行与 Visual Studio 中的普通资源文件相同的技巧。
通常会解析资源文件并从中生成静态类。对于您的情况,您可以使用 T4 模板(代码生成和 T4)要连接到数据库并从数据库中的“Id”列构建资源类,您拥有相同的资源类。
启动时,您可以从数据库加载翻译后的字符串并用它初始化您的 T4 资源类。
If you want to store the entries in a database you can do the same trick as the normal resource files in Visual Studio are doing for you.
Normally the resource file is parsed and a static class is generated from it. In your case you could us a T4 template(Code Generation and T4) to connect to the database and build a resource class from the 'Id' columns in your database you have the same resource class.
On startup you could load the translated strings from the database and initialize your T4 resource class with it.
简单有效的方法就是使用专门用于在数据库中存储资源并生成强类型资源的NuGet包。
NuGet 包: http://www.nuget.org/packages/Globsite.Globalization.Mvc< /a>
项目站点:http://globsite.net/GlobsiteGlobalizationLibrary
此包包含用于数据库存储资源的现成可用且复杂的基础设施,它实现了.NET 资源提供者模型。
生成的类可以通过 T4 模板运行与数据库同步,例如在每次构建时可以执行哪些操作。
您可以像这样使用资源:
The simple and effective way to do it, is just to use the NuGet package dedicated for storing resources in database and generating the Strongly Typed Resources.
NuGet Package: http://www.nuget.org/packages/Globsite.Globalization.Mvc
Project Site: http://globsite.net/GlobsiteGlobalizationLibrary
This package contains the ready to use and complex infrastructure for database stored resources, which implements .NET Resource-Provider Model.
Generated classes can be synchronized with a database with the T4 Template run, what can be done, for example, on each build.
You can use the resources like this: