ASP.NET 本地化 (localization)

简介:

 

简要:

.NET支持Windows和Web应用程序的全球化和本地化。要使应用程序全球化,可以使用System.Globalization命名空间中的类,要使应用程序本地化,可以使用System.Resources命名空间支持的资源。

首先了解一下概念什么是本地化

 

顾名思义,本地化就是将你的资源变成本地所特有的一些性质或形式或方式等。在.net中的本地化 Localization 大概的意思就是应用程序在客户端中提供与客户端配置相关的一些资源和语言。

 

应用:有了本地化我们可以很方便的为某一个项目或应用程序提供多语言的版本,比如XX中文版、XX繁体版和XX英文版等。同时这对于那些外包翻译的特别有用,他们不需要装Visual Studio,一个简单的XML编辑哭就可以满足他们的需求了。当然.Net Framework SDK中也附带的一个工具winres.exe提供对资源本地化进编辑。

 

下面我们来在一个网站中添加一个文件夹App_GlobalResources 应用程序全局资源 并在其目录下建立Resource.resx、Resource.en.resx、Resource.zh-CN.resx

三个文件的结构都是一样的,只是值有所有不同如下图:

本地化(Resource.resx)

Resource.en.resx(Add、Edit、Title)

 

Resource.zh-CN.resx(添加、编辑、标题)

 

接下来建立一个页面来测试一下:

前面代码如:

 

Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Location_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style="margin:0 auto;width:800px;">
<h1><%=Resources.Resource.title %></h1>
</div>
<br />
add:
<asp:label id="lblAdd" runat="server" Text="<%$ Resources:Resource, add %>"></asp:label>
<br />
edit:
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="<%$ Resources:Resource, edit %>" /></div>
</form>
</body>
</html>

 

其中像Lable和button中的Text属性可以在其中Expressions中选取如:

表达式

好运行一下如:

2008090700152747.jpg很明显时应用程序是匹配是文,因为我的浏览器语言默认是zh-cn如下图:

语言设置当我把它默认设为en时页面 的语言也会随之改变

好,那当我把它设置为德语时de那会发生什么事呢?会不会也有德语的页面呢?

 

因为我们的本地化资源中不提供德语资源(Resouce.de.resx)所以程序会默认选择了Resource.resx这个资源。

 

有人会说我不想更改浏览器的配置,那好,你也可以通过数据库或其它将本地化信息存起来,当系统启动时再调用并应用到其本地化中

这里做了一个QueryString的测试

在Global.axsa中添加

 

Code
/// <summary>
/// Sets the culture based on the language selection in the settings.
/// </summary>
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
string lan = Request["language"];
if (!String.IsNullOrEmpty(lan))
{
CultureInfo culture
= CultureInfo.CreateSpecificCulture(lan);
Thread.CurrentThread.CurrentUICulture
= culture;
Thread.CurrentThread.CurrentCulture
= culture;
}


}
bamboo-small.jpg
转载请注明出处[ http://samlin.cnblogs.com/] 
作者赞赏
 


刚做的招标网: 八爪鱼招标网 请大家多意见
标签:  本地化Localization

本文转自Sam Lin博客博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/09/07/ASP-NET-Localization.html,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
63 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
27天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
26 0
|
9月前
|
开发框架 前端开发 JavaScript
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
86 0
|
存储 开发框架 NoSQL
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
284 0
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
|
开发框架 前端开发 安全
ASP.NET Core Startup类Config gure()方法|ASP.NET Core 中间件详细说明
目录 Startup 类 Configure() 方法 中间件 使用中间件 Configure 方法 的参数 IApplicationBuilder Extension Methods(拓展方法)--微软提供的中间件
146 0
ASP.NET Core Startup类Config gure()方法|ASP.NET Core 中间件详细说明
|
存储 开发框架 NoSQL
ASP.NET Core+Quartz.Net实现web定时任务
此处我们的项目使用稍复杂的Quartz.net实现web定时任务。
ASP.NET Core+Quartz.Net实现web定时任务
|
开发框架 .NET 应用服务中间件
ASP.NET Core : 一. 概述
ASP.NET Core : 一. 概述
146 0
ASP.NET Core : 一. 概述
|
开发框架 前端开发 .NET
ASP.NET MVC (五、HttpClient接口解析)(6)
ASP.NET MVC (五、HttpClient接口解析)(6)
197 0