65.9K
CodeProject 正在变化。 阅读更多。
Home

本地化 ASP.NET MVC

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.88/5 (14投票s)

2009年9月7日

CPOL

2分钟阅读

viewsIcon

68975

downloadIcon

954

我将探讨如何使用现有的 .NET Framework 本地化 ASP.NET MVC 应用程序。

引言

本地化是指为给定的文化和区域设置定制应用程序的过程。.NET framework 提供了以下命名空间和类来促进本地化。

  1. System.Globalization System.Globalization 命名空间包含定义与文化相关信息的类,包括语言、国家/地区、使用的日历、日期、货币和数字的格式模式,以及 string 的排序顺序)
  2. CutureInfo 提供有关特定文化的信息。
  3. System.Resources 命名空间提供类和接口,允许开发人员创建、存储和管理应用程序中使用的各种特定于文化的资源。

在本文中,我将探讨如何使用现有的 .NET Framework 本地化 ASP.NET MVC 应用程序。要创建一个新的 MVC 项目,请参阅 ASP.NET MVC 应用程序结构。现在,我将创建一个 App_GlobalResources 文件夹,该文件夹将包含应用程序资源文件。要在 App_GlobalResources 文件夹中创建资源文件,请按照以下步骤操作

  1. 右键单击您的项目 -> 添加 -> 添加 ASP.NET 文件夹 -> App_GlobalResources
  2. 右键单击 App_GlobalResources -> 添加 -> 新建项目 -> 资源文件

我将创建两个资源文件,分别是英语和法语。现在,我将“访问修饰符”设置更改为“公共”,如下所示

localize1.jpg - Click to enlarge image

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;
 }

这将确保当前线程将应用给定的文化。现在,我将运行该项目,它将渲染一个视图,如下所示

local3.jpg

摘要

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

© . All rights reserved.