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,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值