asp.net 2.0中的全球化与本地化

原创 2012年02月27日 12:33:57
介绍

当每个开发者创建全球化的产品和程序时,全球化和本地化是两个重要的步骤.

全球化一个asp.net 2.0站点

语言也决定于地理位置,比如法语同时在法国和加拿大使用.但是法国使用的法语和加拿大使用的法语有很大的区别.所以我们要同时指定语言和地区.比如fr代表法语,fr-FR指的是法国的法语.

.NET FCL中的CultureInfo有两个属性,我们可以重载改类的构造函数,用来改变当前执行线程的语言.

1.UICulture:这个属性帮助运行时从资源文件加载资源字符,可以设置成无确定地区的语言,如
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");或
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");

2.Culture:这个属性只能为制定区域的语言

UICulture和Culture的区别是:UICulture是用来加载资源文件,Culture是用来设置日期,数字货币格式的.

有时候我们需要一个与语言区域无关的语言,他可能是变化不定的.我们可以用CultureInfo.InvariantCulture属性.

UICulture和Culture属性都可以在web.config的globalization中定义.他们也可以在页面级设置.但是我们也能动态的设置这些值.如上面代码所示.

更改语言

1.用浏览器设置.我们需要设置Culture和UICulture的值为auto且enableClientBasedCulture=true:
GLOBALIZATION

2.用户设置.我们可以提供一个选项让用户来选定或改变语言区域.

如果要使我们的程序全球化就必须遵照以下几点:
1.所有的内容必须本地化 这意味着所有的字符串和文本根据语言和区域显示.
2.每个控件的标题和内容必须根据语言和区域显示.
3.时间日期须根据语言区域格式化
4.所有发送给用户消息须根据语言和区域显示

如果要本地化整个应用程序,我们要把资源文件添加到App_GlobalResources文件夹中,如TestSiteResource.resx,TestSiteResource.zh-CN.resx
如果仅仅本地化一些特定的页面,我们将资源文件添加到App_LocalDirectory文件夹,文件命名应该如下:
MyPage.aspx.resx:这是MyPage.aspx的默认资源文件
MyPage.aspx.zh-CN.resx:当语言区域设定到中文,仅程序中的MyPage.aspx页面被本地化.

String welcome = Resources.TestSiteResources.Welcome;
这行代码,我们用到了当资源文件被编译时asp.net自动创建的Resources名字空间.linux虚拟主机这可以读取资源文件里面的内容.我们还可以用其他两个方法达到同样的目的:

1.隐式本地化 为控件指定meta标记,使asp.net从resourcekey属性中获取资源文件的值:
aspasp
为了使其工作,我们需要在/App_LocalDirectory文件夹里创建该页面的资源文件.

2.显式本地化 他能在我们拥有Global resource文件时工作 从资源文件读取的表达式如下:
spasp

3.用程序自动的获取强类型的资源文件类
lblWelcome.Text = Resources.TestSiteResources.Welcome;

整合本地化

我们要设置UICulture属性以便asp.net可以访问相应的资源文件.

如何能够在PostBack事件中改变语言区域呢?还好asp.net在Page类中提供了一个InitializeCulture()去重写.这个方法在页面的生命周期中很早的被执行,我们可以在这里设置当前线程的UICulture和Culture属性

如果想在所有的页面实现更换语言,我们可以创建一个BasePage页面,让其他页面继承.

但是InitializeCulture()事件执行的比初始化控件要早,如何获取控件的值呢?答案是用Form集合

为了本地化还需设置页面编码
globalization

定义语言阅读方向

这是必须的因为有些语言的阅读顺序是从右到左的.我们可以设置dir属性达到目的.这个标记用在或中.华夏名网代理属性值从资源文件中读取,RTL或LTR.


用数据库实现本地化

总结

1.不要依赖浏览器的设置,给出一个切换语言的链接.

2.用资源文件分离表示层的数据.如果找不到指定的资源文件,asp.net将使用默认的资源文件.

3.当使用数据库表储存数据和内容时,你需要创建单独的表储存本地化内容.

4.如果你用sn.exe创建强名称的主程序程序集,你需要用相同密钥对的私钥签名附属程序集(资源).强名称的程序集要求附属程序集也是强名称的. 

asp.net 2.0中的全球化与本地化

介绍当每个开发者创建全球化的产品和程序时,全球化和本地化是两个重要的步骤.全球化一个asp.net 2.0站点语言也决定于地理位置,比如法语同时在法国和加拿大使用.但是法国使用的法语和加拿大使用的法...
  • jecray
  • jecray
  • 2007年04月06日 16:23
  • 560

在ASP.Net中配置使用全球化统一编码

在ASP.net中使用全球话编码是一件很容易的事情,不像JSP中使用EncodeFilter在ASP.net中只需要在web.config中增加下面的内容即可,简单实用。原因也很简单Java内置的编码...
  • yctccg
  • yctccg
  • 2016年08月16日 10:40
  • 205

Asp.NET 全球化与本地化

ASP.NET通过资源文件来实现全球化与本地化。 全球化:就是实现不同语言的显示 本地化:就是一种语言多种版本,比如英式英语与美式英语 资源文件分为全局资源文件(App_GlobalResour...
  • chenbin520
  • chenbin520
  • 2012年12月09日 00:35
  • 978

ASP.NET 2.0的全球化与本地化之全球化

  一、 加入全球化信息  在我的网站中,在创建资源文件并加入一些本地化数据后,我首先开始使用显式本地化来设置控件(例如,在我的网站中的标签)的文本,以便它们可以从资源文件中得到它们的值。既然存在四种...
  • mengyao
  • mengyao
  • 2007年01月08日 12:06
  • 808

浅析 AngularJS 全球化最优方案(四)

在前面三节我们分析了 AngularJS 的web application里面,3种常见获取浏览器用户语言信息的方法以及优缺点: 前端 JS 直接获取浏览器的用户语言信息。 优点:真...
  • spring1208
  • spring1208
  • 2016年08月16日 13:32
  • 8921

ASP.NET 全球化和本地化

ASP.NET 全球化和本地化全球化是设计和开发适合不同区域性的应用程序的过程。本地化是为给定的区域性和区域设置自定义应用程序的过程。本节中的主题描述如何创建适合不同语言和区域性的 ASP.NET W...
  • sunjay117
  • sunjay117
  • 2008年06月26日 13:41
  • 334

ASP.NET 2.0 中的资源与本地化

 下载本文的代码:BasicInstincts2006_08.exe (878KB) 本页内容 控制页面级别的区域性设置 ...
  • Eagle_Lone
  • Eagle_Lone
  • 2006年10月25日 09:02
  • 910

ASP.NET 2.0 中的资源与本地化

本页内容 控制页面级别的区域性设置 使用配置文件跟踪...
  • cuoguo1111
  • cuoguo1111
  • 2007年04月10日 18:47
  • 390

NumberFormat类在国际化中的应用

1 NumberFormat类简介 NumberFormat包含了format和parse方法,其中format用于将数值格式化成字符串,parse用于将字符串解析成数值。 2 NumberFor...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 09:42
  • 162

超级简单:ASP.NET Localization (本地化,多语言)

有很多讨论ASP.NET localization(本地化,多语言)的文章,这篇文章是不会的深入讨论ASP.NET Localization (本地化,多语言)。相反,它将给你有关asp.net页面中...
  • qq285679784
  • qq285679784
  • 2015年07月13日 15:01
  • 2392
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net 2.0中的全球化与本地化
举报原因:
原因补充:

(最多只允许输入30个字)