知识大全 在ASP.NET 2.0中实现本地化
Posted 资源
篇首语:人不在大小,马不在高低。人往高处走,水往低处流。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ASP.NET 2.0中实现本地化相关的知识,希望对你有一定的参考价值。
在ASP.NET 2.0中实现本地化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
摘要 由于越来越多的跨国公司需要跨语言的WEB应用 所以本地化工作变得尤其重要 在ASP NET 中我们使用ResourceManager 类来实现这个工作 而 中提供了更加方便的方法和工具来实现 导言 现在很多跨国的商务需求都需要实现多语言 对客户来说他们始终想看到网站是用他们所熟悉的语言来显示的 他们不会关注网站使用的是什么技术 而现在的开发工具或者开发技术并没有在本地化方面做的很好 我们还需要花大量的时间和精力去做本地化的工作 ASP NET 的出现大大简化了这个过程 配合VS NET 新的特性 我们可以很方便得来自动剥离网站的语言元素 很容易去实现多版本网站 而且许多针对本地化的API同样也可以方便得帮助我们完成这个过程 NET 中的本地化 在 中我们使用ResourceManager来实现这个过程 或许对于WINFORM来说这个过程还比较简单 但是VS NET 并没有给我们WEBFORM下的本地化工作带来什么自动化 我们还需要花很多精力在重复复制代码上 NET 中的本地化 中的本地化还是基于 的 但是却提供了很多自动化工作 自动生成页面资源文件 方便的编程实现资源文件的访问 自动为页面装载合适的语言 控件和资源文件自动匹配 强类型的资源文件 资源文件编辑器 资源文件使用表达式 资源Provider模型 本地资源文件实现 VS NET 菜单-Tools-Generate Local Resource 所产生的资源文件将会放在\\App_LocalResources下面
上图显示了 不仅ASPX文件 用户控件和MASTER页都会自动产生资源文件 自动产生的资源文件名将是原文件名加上 resx 页面上的所有服务器控件 用户控件和在服务器端运行的HTML控件都会被自动加在资源文件中 下图显示了一个LINKBUTTON的资源文件
可以看到 只有TEST和TOOLTIP这些涉及到语言的属性被加入了资源文件
再切换回视图状态可以看到一些属性右边有红色标记 这表明这个属性绑定的是本地资源 通常这些都是IDE自动为你做的 再看看上面的AlternateText后面有一个蓝色标记 这表示这个资源是全局的资源 全局资源的实现 在我们的项目中通常有很多重复的东西 比如MasterPage 用户控件 菜单 甚至还有一些提示信息等这些东西如果包含在多个页面 我们每次都需要重复制作他们的资源文件 这非常不科学 所以我们要手动的来制定全局资源 这个时候先要建立一个\\App_GlobalResources目录然后在下面添加资源文件 先看看IDE提供给我们的资源文件编辑器
非常多种的类型 我们访问全局资源不需要考虑太多 比如说一个资源文件是Flags resx 试试在编译器内输入Resources Flags 当再次按下 的时候 智能感应出来了
可见这些资源文件都被编译成了强类型的类 比如说图片资源我们得到的类型是System Drawing Bitmap 本地资源访问 通常我们使用meta:resourcekey来指定控件的资源 如果说一个控件的资源前缀是LinkButtonResource 的话 那么它的Text属性的资源就是LinkButtonResource Text 这个是生成资源文件的时候IDE自动做的 如果我们需要在程序中访问本地资源可以按照下面的例子 LinkButton button = new LinkButton();this lnkSelectCulture = button ;button ID = lnkSelectCulture ;button PostBackUrl = selectculture aspx ;button Text = ((string) base GetLocalResourceObject( LinkButtonResource Text ));button ToolTip = ((string)base GetLocalResourceObject( LinkButtonResource ToolTip ));
当然 如果你不想你的控件使用资源文件可以按照下面的例子修改 <asp:LinkButton id=lnkSelectCulture PostBackUrl= selectculture aspx runat= server meta:localize= false >Change Culture Settings</asp:LinkButton>全局资源访问 使用下面的格式来定位全局资源
<%$ resources: [applicationkey] resourcekey%>
比如从Glossary resx读取资源例子如下<asp:ImageButton ID= btnIDesign Runat= server ImageUrl= ~/Images/idesignlogo jpg AlternateText= <%$ Resources:Glossary MissionSatatement%> PostBackUrl= meta:resourcekey= ImageButtonResource />
当然你也可以直接用IDE的表达式对话框直接来选择
用程序读取方式如下 ImageButton button = new ImageButton();// other initialization codebutton ID = btnIDesign ;button AccessKey = (string) base GetLocalResourceObject( ImageButtonResource AccessKey );button AlternateText = (string) base GetGlobalResourceObject( Glossary MissionStatement );button ImageUrl = (string) base GetLocalResourceObject( ImageButtonResource ImageUrl );button ToolTip = (string) base GetLocalResourceObject( ImageButtonResource ToolTip );button Visible = (bool) base GetLocalResourceObject( ImageButtonResource Visible typeof(Control) Visible );
本地化HTML控件和文本 Html控件 控件不能用前面说的两种表达式来指定资源 除非是让它runat=server 不过对于页面的title比较特殊 它也会作为页面的一个对象自动生成本地资源<%@ Page Language= C# CodeFile= Default aspx cs Inherits= _Default meta:resourcekey= PageResource %>
不过 我们也可以为它制定全局资源<head runat= server > <title><asp:Literal Text= <% $ Resources: Glossary DefaultPageTitle %> runat= server ></asp:Literal></title></head>
本地化文本 对于项目中很多静态的文本 我们可以使用Localize控件来包含这些文字 其实这个控件和Literal相似 但是它能在设计模式下随意修改里面的文字内容 看下怎么访问本地资源和全局资源<asp:Localize id= weleContent runat= server meta:resourcekey= wele >Wele!</asp:Localize> <asp:Localize id= weleContent runat= server text= <%$ resources: Glossary weleText%> >Wele!</asp:Localize>
多语言实现
从默认的资源文件复制一个新的的资源文件 只要在resx前面加上地区代号 逐项编辑即可 如下设置后浏览器会自动根据设置(工具-选项-语言)调用新的资源文件<%@ Page UICulture= auto Culture= auto >
cha138/Article/program/net/201311/12228 相关参考
在ASP.NET2.0中使用页面导航控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 几乎每个
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[2]
在ASP.NET2.0中使用样式、主题和皮肤[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[3]
在ASP.NET2.0中使用样式、主题和皮肤[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[1]
在ASP.NET2.0中使用样式、主题和皮肤[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[5]
在ASP.NET2.0中使用样式、主题和皮肤[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[4]
在ASP.NET2.0中使用样式、主题和皮肤[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[6]
在ASP.NET2.0中使用样式、主题和皮肤[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[8]
在ASP.NET2.0中使用样式、主题和皮肤[8] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[9]
在ASP.NET2.0中使用样式、主题和皮肤[9] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
知识大全 在ASP.NET 2.0中使用样式、主题和皮肤[7]
在ASP.NET2.0中使用样式、主题和皮肤[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!