asp.net国际化详解

简介: 1、新建网站(或者asp.net Web应用程序)2、创建一个类。继承System.Web.UI.Page,重写InitializeCulture()方法 。类名:BasePage3、InitializeCulture() 这样实现:        String language = Session["language"] as String;        if (!String.

1、新建网站(或者asp.net Web应用程序)
2、创建一个类。继承System.Web.UI.Page,重写InitializeCulture()方法 。类名:BasePage
3、InitializeCulture() 这样实现:
        String language = Session["language"] as String;
        if (!String.IsNullOrEmpty(language) && (language != "Auto"))
        {
            //UICulture - 决定了采用哪一种本地化资源,也就是使用哪种语言
            //Culture - 决定各种数据类型是如何组织,如数字与日期
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
        }

4、添加 App_LocalResources文件夹 (用来保存资源文件)
   4.1、创建资源文件。
        注意:资源文件的命名有讲究, 譬如 给index.aspx创建资源文件,命名必须这样:index.aspx.en-us.resx。
              这里的en-us是对于的语言。 中文不需要加 zh-cn

   4.2、编辑资源文件。
        ---------------------------------------------------------------
            名称                     值                  注释
          lblShow.Text         asp.net国际化            (非必要)
        ---------------------------------------------------------------

        这里的lblShow.Text是具有意义的,lblShow是页面上的一个Label控件。.Text表示这里的值要显示到lblShow.Text中去。

   4.3、页面上使用。
 <asp:Label ID="lblShow" runat="server" Text="<%$ Resources:lblShow.Text%>"></asp:Label>
        用<%$ %>  绑定资源文件。

5、创建网页,使用资源文件。
   5.1、 注意:创建网页后务必将 .aspx.cs 这个类继承BasePage。
        为什么要继承BasePage ? 因为国际化需要在所有页面上都实现,而一个一个页面写太麻烦,这里就采取继承的方式来实现。
        这样,继承之后,每个页面都会运行到BasePage中的InitializeCulture(),并在InitializeCulture()中确定当前的语言。

6、切换语言。

   这里的设计并非固定的,可以根据自己的需求来。
   6.1、在母板页中放一个DropDownList。在Change事件中改变Session["language"]的值。并Response.Redirect 到原页面。
   6.2、做成用户控件。
   6.3、做成button点击方式亦可。
  
      

相关文章
|
Web App开发 前端开发 .NET
|
XML JavaScript Java
.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
原文:.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化 我们知道资源被注册到R.java我们通过R.java就可以读取到界面中的组件。跟我们.net一样,通过ID来读取组件 知识点: 通过R.
616 0
|
.NET 开发框架 安全
ASP.NET网站国际化策略
1          问题提出 现在很多网站项目开发要求同时支持多国语言,所以在用户界面及程序的设计和开发中需采取国际化策略,以达到代码改动量小、网站部署便利,用户群广泛的目的。   2          解决策略 .NET Framework 为开发全球通用的应用程序提供了广泛的支持。
917 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
46 0
|
17天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
112 5
|
9月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
124 0