Asp.net中使用Reponse.Filter实现多语言功能

对于有跨国业务的web系统来说,一般都需要提供多语言功能。然而在众多多语言方案里,如.net自带的Resource方式,都会在程序开发时增加程序员的额外负担,不易开发:

1.各种不同的地方实现多语言,如aspx的control绑定,js脚本,cs代码,procedure里的提示信息等,这些多语言实现方式各不相同,加重了开发难度。

2.在要实现多语言的代码中都要与获取语系文字的代码进行强耦合,不方便扩展和维护。如.net的Resource方式某个label实现多语言:

lblName.Text = Resources.Strings.name; 

3.开发和维护程序时,程序员都必须同时打开source code和多语言资源文件,特别是在多人开发时,共享一个多语言文件,且对于共享的文字实难处理和同步。

以上这些只是简单地罗列了一下传统多语言开发时的困扰,那有什么方式解决这些问题,轻松实现多语言功能呢?

记得有人说过web编程,实际上就是字符串处理。

为什么呢?因为web,实际上就是Request和Response,而Request和Response就是字符串。在我们各种程序里,最终输出到Browser的都是html格式的字符串,因此,只要我们统一在程序最后一步输出html格式时,能够识别其中需要进行多语言转换的文字,将将其替换为当前设定的语言版本的文字就可以了。

在asp.net中,因为有一个Response.Filter的属性,让这一切变得很简单。

什么是Response.Filter?

简单地说,就是在经过层层转换后,最终asp.net要输出html,在输出的过程中,是将html放到一个管道(pipeline)里,然后在管道那头取出要发往客户端的html进行Response,asp.net提供Response.Filter属性,让你可以对经过的html进行相应的转换。

因此只要将多语言转换功能放在这里,并识别“中文”,将其转换为user设定的相应语系就可以完成了。

时间: 2024-11-01 18:22:38

Asp.net中使用Reponse.Filter实现多语言功能的相关文章

ASP.NET中实现大结果集分页研讨

asp.net|分页 在Web应用程序中,对一个大数据库结果集进行分页已经是一个家喻户晓的问题了.简单的说,你不希望所有的查询数据显示在一个单独的页面中,所以带有分页的显示才是更合适的.虽然在传统的asp里这并不是一个简单的任务,但在asp.net中,DataGrid控件把这一过程简化为只有几行代码.因此,在 asp.net中,分页很简单,但是默认的DataGrid分页事件会从数据库中把所有的记录全部读出来放到asp.net web应用程序中.当你的数据在一百万以上的时候,这将引起严重的性能问题

ASP应用中心得回放 (转)

心得      学好一门编程语言有两个条件是必不可少的,一是理论与实践结合,在实际例程去验证书本上的理论能加深你对理论的理解:二是学会总结,把学习.运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中加以改进,一定能提高你对这门编程语言的认识.以下是笔者在学习与运用ASP编程中的两点经验,希望能对大家有所帮助.                                             ASP页面内VBScript和JScript的交互                

ASP.Net中自定义Http处理及应用之HttpModule篇

asp.net HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandler接口来达到.而HttpModule实现了类似于ISAPI Filter的功能.   HttpModule的实现HttpModules实现了类似于ISAPI Filter的功能,在开发上,通常需要经过以下步骤: 1.编写一个类,实现IhttpModule接口 2.实现Init 方法,

ASP.NET中Cookie编程简明参考

asp.net|cookie|编程|参考 一 写入Cookie 1. Name 和 Value 属性由程序设定,默认值都是空引用. 2. Domain属性的默认值为当前URL的域名部分,不管发出这个cookie的页面在哪个目录下的. 例如,http://www.kent.com/application1/login.aspx 页面中发出一个cookie,Domain属性缺省就是www.kent.com ,可以由程序设置此属性为需要的值. 3. Path属性的默认值是根目录,即 "/"

ASP.NET中同时支持简体和繁体中文

asp.net|中文 最近在处理一个网站,要求有简体和繁体中文两个版本.本来想单独处理繁体版本(和简体版本有点不同),我的机器和VS.NET都是简体中文版本的,把页面文件转换为big5的(保存时要求存为Unicode),结果无论是设置页面的Charset,或者设置responseEncoding="big5",或者在代码中设置Response.ContentEncoding,Response.Charset,显示时都是乱码.(到现在我还不知道该如何处理,如果有哪位大虾知道的请赐教,谢谢

Asp.net Mvc Framework 七 (Filter及其执行顺序)

应用于Action的Filter 在Asp.netMvc中当你有以下及类似以下需求时你可以使用Filter功能 判断登录与否或用户权限,决策输出缓存,防盗链,防蜘蛛,本地化设置,实现动态Action filter是一种声明式编程方式,在Asp.net MVC中它只能应用在Action上 Filter要继承于ActionFilterAttribute抽象类,并可以覆写void OnActionExecuting(FilterExecutingContext)和 void OnActionExecu

秒懂ASP.NET中的内置对象

       上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Cookies.Session.Server.Trace.这些对象使得用户更容易收集通过浏览器请求发送的信息.相应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递,首先,我们来看下面一张图:                 接下来,小编主要从概述,基本语法,常用属性和方法以及

返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test

原文:返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test[索引页][源码下载] 返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test 作者:webabcd 介绍 asp.net mvc 之 Action Filter, UpdateModel, ModelBinder, Ajax, U

asp.net中常用的几种身份验证方式

前言 在B/S系统开发中,经常需要使用"身份验证".因为web应用程序非常特殊,和传统的C/S程序不同,默认情况下(不采用任何身份验证方式和权限控制手段),当你的程序在互联网/局域网上公开后,任何人都能够访问你的web应用程序的资源,这样很难保障应用程序安全性.通俗点来说:对于大多数的内部系统.业务支撑平台等而言,用户必须登录,否则无法访问和操作任何页面.而对于互联网(网站)而言,又有些差异,因为通常网站的大部分页面和信息都是对外公开的,只有涉及到注册用户个人信息的操作,或者网站的后台