ASP.NET – MVC 3:本地化

我即将为我的MVC3 Web应用程序实现本地化。 通过大量的方式来search我的方式做到这一点,我不知道如何实现这一点。 我发现几个方法如何做到这一点:

我发现的第一个select是使用App_GlobalResources和ViewData和文化select与地图路由。 ( 链接 )

其次是在我的项目中创build一个单独的资源文件夹,并像模型和视图文件夹一样构build它。 然后在这些文件夹中创build资源文件。 使用这些资源string就像使用Viewbag。 然后编辑Global.asax来处理文化变化,并创build一个允许更改文化的局部视图。 这样做的指示是非常彻底的,所以这可能是最好的select。 ( 链接 )

三是使用DisplayAttribute和resx文件。 这个有点朦胧,我找不到这样的信息,所以我才能理解这个实际上是如何实现的以及它的限制。 ( 链接 )

四是创build一个自定义的类来处理资源。 这看起来很漂亮,很容易实现和使用,但是如果它真的起作用了,就没有真正的信息。 ( 链接 )

然后,我发现一条警告使用App_GlobalResouces和App_LocalResources的post。 ( 链接 )

通过可能的方式进行本地化。 我找不到被普遍认可或接受的方法。 这让我琢磨,这些,或者我没有发现,哪一个是在ASP.NET MVC3中实现本地化的最佳方式?

然后,我发现一条警告使用App_GlobalResouces和App_LocalResources的post。 (链接)

我发现这个post非常有用。 这里解释的方法很干净。 以下是使用该方法创build的新build索引视图的片段:

@using Resources.Index @{ ViewBag.Title = "Index"; } <h1>@Index.Title</h1> 

我不认为有一个明确的这种方法,所以去干净的方法在我看来是一个很好的交易。

我已经想出了一个更简单的方法来处理本地化,你不必使用资源文件或属性。 它涉及到定制元数据提供者

MVC3使用元数据提供程序来获取所有文本string。 我的方法允许您使用string表,数据库,平面文件或任何其他来源来提供翻译。 所有你需要做的就是inheritance两个接口。

在这里阅读: http : //blog.gauffin.org/2011/09/easy-model-and-validation-localization-in-asp-net-mvc3/

编辑

现在一切都logging在github上,并有nuget包: https : //github.com/jgauffin/griffin.mvccontrib