一、项目概述

1、目的
            利用资源文件解决网站多语言版本的问题,在制作网站的时候,经常会遇到多种语言的版本,早期在asp的系统当中,很多网站开发师都会用传统的方法来开发,就是将同一套程序复制两份,功能是实现了,但往往后期的维护带来很大的麻烦,而在asp.net的时代,做这样的事情,原来是那么的简单.
      2、概念
           资源文件是 XML 文件,其中包含要转换为不同语言或图像路径的字符串。资源文件包含键/值对,每一对都是一个单独的资源。键名不区分大小写。例如,资源文件可能包含带有 Button1 键和 Submit 值的资源。
         多语言是每种语言(如英语和法语)或每种语言和区域性(如英语 [英国]、英语 [美国])分别创建一个资源文件。每个本地化资源文件都有相同的键/值对;本地化资源文件与默认资源文件的唯一区别就是前者所包含的资源可能少于后者。然后,语言回退处理非特定资源或默认资源的加载。
         ASP.NET 中的资源文件具有 .resx 扩展名。在运行时,.resx 文件将编译进一个程序集内,该程序集有时称为附属程序集。由于 .resx 文件是用与 ASP.NET 网页相同的方式动态编译的,因此不必创建资源程序集。编译过程将多个语言类似的资源文件压缩在同一程序集内。
         在创建资源文件时,首先开始创建基文件 .resx。对于要支持的每种语言,分别创建一个新文件,该文件具有同一基本文件名但包含语言或语言及区域性(区域性名称)。有关区域性名称的列表,请参见 CultureInfo。例如,您可以创建下列文件:

WebResources.resx

基资源文件。该文件是默认或后备资源文件。

WebResources.es.resx

西班牙语的资源文件。

WebResources.es-mx.resx

专用于西班牙语(墨西哥)的资源文件。

WebResources.de.resx

德语的资源文件。

在运行时,ASP.NET 使用与 CurrentUICulture 属性的设置最为匹配的资源文件。线程的 UI 区域性根据页的 UI 区域性进行设置。例如,如果当前的 UI 区域性是西班牙语,则 ASP.NET 使用 WebResources.es.resx 文件的已编译版本。如果当前的 UI 区域性没有匹配项,则 ASP.NET 会使用资源后备;首先用特定区域性的资源,接着用非特定区域性,最后用默认资源文件。在本例中,默认资源文件是 WebResource.resx。

二、解决方案

1、全局资源文件(App_GlobalResources)
        将资源文件放入应用程序根目录的保留文件夹 App_GlobalResources 中,即可创建全局资源文件。App_GlobalResources 文件夹中的任何 .resx 文件都具有全局范围。此外,ASP.NET 还生成了一个强类型对象,这为开发人员提供了一种以编程方式访问全局资源的简单方法。

2、本地资源文件(App_LocalResources)
         本地资源文件是只应用于一个 ASP.NET 页的文件(带有 .aspx、.ascx、.master 等扩展名的 ASP.NET 页)。本地资源文件所放入的文件夹具有 App_LocalResources 保留名称。App_LocalResources 文件夹可以存在于应用程序的任何文件夹中,这与 App_GlobalResources 根文件夹不同。通过资源文件名将一组资源文件与特定的网页相关联。

例如,如果在 App_LocalResources 文件夹中有一个名为 Default.aspx 的页,则可以创建下列文件:

Default.aspx.resx

默认的本地资源文件,如果找不到语言匹配项,则该文件为后备资源文件。

Default.aspx.es.resx

西班牙语的资源文件,不包含区域性信息。

Default.aspx.es-mx.resx

专用于西班牙语(墨西哥)的资源文件。

Default.aspx.fr.resx

法语的资源文件,不包含区域性信息。

3、使用本地资源的隐式本地化
              在服务器控件引用如:    meta:resourcekey="Button1" />
             在相应的资源文件定义:Button1.Text

4、显式本地化
          页面引用如    Text="" />
         资源文件定义:Button1Caption

当正在运行某页并且 ASP.NET 正在从资源管理器中检索值时,ASP.NET 为该页选择与当前 UICulture 设置匹配程度最高的资源文件版本,或者使用资源后备获取资源。例如,如果正在运行 Default.aspx 页并且当前的 UICulture 属性设置为 es(西班牙语),则 ASP.NET 使用本地资源文件 Default.aspx.es.resx 的已编译版本。

ASP.NET 可以将该页的 UICulture 和 Culture 属性设置为浏览器所传递的语言和区域性值。或者,可以以声明方式或通过使用代码显式设置 UICulture 和 Culture 属性。还可以在 Web.config 文件中以声明方式设置这些值。有关详细信息,请参见如何:为 ASP.NET 网页全球化设置区域性和 UI 区域性。
以是网页内容来自微软官方网站,本人做了整理,地址(http://msdn2.microsoft.com/zh-cn/library/ms227427(VS.80).aspx)

本人上传一个实例,希望能帮到大家.link

转载于:https://www.cnblogs.com/myssh/archive/2009/05/31/1493185.html

ASP.NET网站实现多语言版本 【转】相关推荐

  1. 多语言网站(如何实现网站的多语言版本?)

    近日,公司要做一个多语言的网站,今天在网上收集资料,下面是个人觉得很不错的文章,有兴趣的朋友可以参考下: ----------------------- 多语言网站,顾名思义就是能够以多种语言(而不是 ...

  2. 一步一步实现网站的多语言版本

    网站在开发的过程中需要实现多语言版本,我们暂且认为有英语和汉语两个版本.网站结构包括,UI过程,rest服务,以及相应的js,各个部分我们都要实现多语言,不要求一键切换,但是在部署过程中要能实现多与语 ...

  3. 建设网站多语言版本,费用如何计算?

    网站建设公司在进行网站报价时,除非客户有特别提出,不然一般情况下通常只有针对单一语言版本提出报价,例如繁体中文版.如果还需要另外建置简体中文版或英文版,此时就会有额外的费用产生.许多人会有这样的疑问: ...

  4. 如何实现网站多语言版本

    本文转自: http://blog.csdn.net/yzhz/archive/2008/01/15/2045295.aspx 如何实现网站多语言版本 随着国际化的深入,越来越多的网站提供多语言版本给 ...

  5. php语言 电商网站,电商网站如何做多语言架构

    现在有这么一个需求 1,一个电商平台要做多语言支持,主要就是商品要支持多种语言,也就是说,有一个商品id为100,默认显示简体中文,当我点击英文版的时候就显示该id为100的英文版本.所有的商品多种语 ...

  6. 关于asp.net2.0资源文件本地化多语言版本的一些小技巧

    花了几个小时,把我的每天记帐的程序改成多语言版本的了~~~ Asp.net 2.0提供了本地化多语言版本的一些方便的特性,网上关于这个的文章已经很多了,我在此就不用多说拉,我只是说说,我在做的时候碰到 ...

  7. 多语言版本网站建设数据库设计和考虑的因素

    由于现在网站上动态应用日益增多,相当多的网站还会使用文件或者数据库来存储应用信息,因此如果文件或者数据库中存储的内容与语言相关时,还需要特别注意.对于存储在数据库中信息,可以采取以下几种方式支持多语言 ...

  8. 强大的多语言版本在线图片处理网站

    强大的多语言版本在线图片处理网站 http://www.pixlr.com/ 进入这个网站,从事多年平面设计的小编我已经被它强大的功能震住了,太牛B了,界面和功能是仿photoshop的,连快捷键也是 ...

  9. ASP.NET网站还是ASP.NET Web应用程序?

    当我在Visual Studio中启动新的ASP.NET项目时,可以创建一个ASP.NET Web应用程序,也可以创建一个ASP.NET网站. ASP.NET Web应用程序和ASP.NET网站之间有 ...

最新文章

  1. python 利用正则构建一个计算器
  2. JAVA中File类的使用
  3. Java多线程知识小抄集(二)
  4. 报名参加第103期设计论坛公益免费设计活动
  5. YOUR GUIDE TO Lowering YourCholesterol With TLC学习笔记(暂时没有完成)
  6. linux刷新磁盘_Linux内核Page Cache和Buffer Cache关系及演化历史
  7. 04.Python基础_列表_元组_字典_集合
  8. 腾讯T2亲自讲解!搞懂开源框架设计思想真的这么重要吗?系列篇
  9. apache ignite系列(九):ignite调优
  10. 高德地图文本标注html,设置点标注的文本标签
  11. FZU 1894 志愿者选拔 - 单调队列
  12. Dubbo本地伪装 Mock
  13. 开源免费录屏软件整理
  14. Some file crunching failed, see logs for details解决方案 以及.9patch点9图片的报错的详细修改方法
  15. win10进程太多怎么优化_教你优化Windows7后台进程,让你的电脑启动更快、运行更流畅...
  16. 最近刚开始学编程,记录一下学习感受
  17. HTML语言中img标签的alt属性和title属性的作用与区别
  18. The Fed's Market Footprint
  19. volatile能保证原子性吗?
  20. 60款非常酷的国外名片设计作品欣赏(上篇)

热门文章

  1. [SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS
  2. SQL JOIN-Hash Join
  3. 如何修改VC6的项目名
  4. Eboot 编译编译器决定中断向量及其实现单一性的原因
  5. Android Context应用上下文详解
  6. 【Android】窗口构成 应用窗口+系统窗口
  7. flutter web:lottie jssdk报错处理
  8. PHP常用的数组函数
  9. vim编辑器的设置文件
  10. zen cart 操作-修改