本地化 ASP.NET MVC






3.88/5 (14投票s)
我将探讨如何使用现有的 .NET Framework 本地化 ASP.NET MVC 应用程序。
引言
本地化是指为给定的文化和区域设置定制应用程序的过程。.NET framework 提供了以下命名空间和类来促进本地化。
System.Globalization
(System.Globalization
命名空间包含定义与文化相关信息的类,包括语言、国家/地区、使用的日历、日期、货币和数字的格式模式,以及string
的排序顺序)CutureInfo
提供有关特定文化的信息。System.Resources
命名空间提供类和接口,允许开发人员创建、存储和管理应用程序中使用的各种特定于文化的资源。
在本文中,我将探讨如何使用现有的 .NET Framework 本地化 ASP.NET MVC 应用程序。要创建一个新的 MVC 项目,请参阅 ASP.NET MVC 应用程序结构。现在,我将创建一个 App_GlobalResources 文件夹,该文件夹将包含应用程序资源文件。要在 App_GlobalResources 文件夹中创建资源文件,请按照以下步骤操作
- 右键单击您的项目 -> 添加 -> 添加 ASP.NET 文件夹 -> App_GlobalResources
- 右键单击 App_GlobalResources -> 添加 -> 新建项目 -> 资源文件
我将创建两个资源文件,分别是英语和法语。现在,我将“访问修饰符”设置更改为“公共”,如下所示

Using the Code
现在,我可以在视图中以强类型方式访问资源设置,如下所示

确定访问者首选文化的最简单方法是在 web.config 中添加 culture="auto"
和 uiCulture="auto"
,如下所示
<system.web>
<globalization culture="auto" uiCulture="auto"/>
但是,当使用不同的视图引擎渲染视图或客户端设置无效时,此方法将不起作用。因此,我将在 global.asax 中分配给定的文化,如下所示
protected void Application_BeginRequest(object sender, EventArgs e)
{
CultureInfo culture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
这将确保当前线程将应用给定的文化。现在,我将运行该项目,它将渲染一个视图,如下所示

摘要
在本文中,我们探讨了如何使用现有的 .NET Framework 本地化 ASP.NET MVC 应用程序。