让asp.net网站支持多语言,使用资源文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>asp.net多语言支持例子</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlLanguage" runat="server" AutoPostBack="true"
            onselectedindexchanged="ddlLanguage_SelectedIndexChanged">
            <asp:ListItem Text="France" Value="fr"></asp:ListItem>
            <asp:ListItem Text="简体中文" Value="zh-cn"></asp:ListItem>
            <asp:ListItem Text="English" Value="en-us"></asp:ListItem>
        </asp:DropDownList>
        <asp:Label ID="lb1" runat="server" ></asp:Label>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class test : PageBase  //继承
{
    private string CultureLang = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            lb1.Text = Resources.Resource.LoginTitle;//后台代码中使用
            CultureLang = Session["PreferredCulture"].ToString().ToLower().Trim();
            switch (CultureLang)
            {
                case "zh-cn":
                    this.ddlLanguage.Items.FindByText("简体中文").Selected = true;
                    Session["PreferredCulture"] = "zh-cn";
                    break;
                case "en-us":
                    this.ddlLanguage.Items.FindByText("English").Selected = true;
                    Session["PreferredCulture"] = "en-us";
                    break;
                case "fr":
                    this.ddlLanguage.Items.FindByText("France").Selected = true;
                    Session["PreferredCulture"] = "fr";
                    break;
                default:
                    break;
            }
            //Response.Write(lb1.Text);
        }
    }

    protected void ddlLanguage_SelectedIndexChanged(object sender, EventArgs e)
    {
        string value = ddlLanguage.SelectedItem.Value;
        Session["PreferredCulture"] = value;
        //重定向页面
        Response.Redirect(Request.Url.PathAndQuery);
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading;
using System.Globalization;

/// <summary>
///PageBase 的摘要说明
/// </summary>
public class PageBase : System.Web.UI.Page
{
	public PageBase()
	{
		//
		//TODO: 在此处添加构造函数逻辑
		//
	}

    protected override void InitializeCulture()
    {
        // 用Session来存储语言信息
        if (Session["PreferredCulture"] == null) { Session["PreferredCulture"] = Request.UserLanguages[0]; }
        string UserCulture = Session["PreferredCulture"].ToString();
        if (UserCulture != "")
        {
            //根据Session的值重新绑定语言代码
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
        }
    }
}

创建“App_LocalResources”文件夹,建立三个资源文件,同样三个LoginTitle键,值不一样,对应各自语种

CultureInfo 类  参考

http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo(v=vs.80).aspx

时间: 2024-08-19 14:11:49

让asp.net网站支持多语言,使用资源文件的相关文章

ASP.NET 网站支持多语言

ASP.NET网站支持多语言 (本地资源文件和全局资源文件的调用及需注意的地方总结)   一.   本地资源文件(App_LocalResources): ①.     本地资源的生成及调用 1.本地资源的VS自动生成方法: 将页面调整到[设计]视图,然后在VS2008菜单栏中 [工具]=>[生成本地资源]即可生成该页面的资源文件,在App_LocalResources文件夹中可查看.eg:Default2.aspx.resx 2.本地资源的手动生成方法: 选中网站=>添加新项=>然后选

asp.net core系列 69 Amazon S3 资源文件上传示例

原文:asp.net core系列 69 Amazon S3 资源文件上传示例 一.  上传示例 Amazon Simple Storage Service 是互联网存储解决方案.该服务旨在降低开发人员进行网络规模级计算的难度. Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据.此服务让所有开发人员都能访问同一个具备高扩展性.可靠性.安全性和快速价廉的数据存储基础设施, Amazon 用它来运行其全球的网站网络.此服务旨在为开发人员

.Net 多语言 与资源文件

目前很多网站都支持多语言,特别是中英文.而.Net网站中的多语言就要用到资源文件.资源文件分为全局资源文件(App_GlobalResource)以及本地资源文件(App_LocalResource). 创建资源文件 对于一个项目,我们一般都会创建全局资源文件以及本地资源文件.我们可以首先新建两个文件夹:App_GlobalResource,App_LocalResource. 1. 创建本地资源文件(App_LocalResource) 本地资源文件是针对于某个页面资源信息.所以,原则上我们应

在IIS上新发布的网站,样式与js资源文件加载不到(资源文件和网页同一个域名下)

在IIS上新发布的网站,网站能打开,但样式与js资源文件加载不到(资源文件和网页是同一个域名下,例如:网页www.xxx.com/index.aspx,图片www.xxx.com/pic.png). 然后单独打开资源文件(例如打开图片的链接)是,报错: 这个问题应该是web.config配置文件的设置问题. 在配置文件的<httpHandlers>下的节点,对应的资源文件的type值设置可能是“System.Web.DefaultHttpHandler”值(默认),例如: <httpHa

部署在IIS服务器的asp.net 网站,禁止访问指定类型文件

网站上的一些文件不希望用户访问,可以通过下面的方式实现,而且不需写代码(在IIS6下试验过). 第一步,在IIS中实现映射. 哪些文件需要特殊处理. 通俗的将就是将哪种类型的文件交给特定的工厂来处理.通过这种方式可以实现自定义的请求方式. 请求到达IIS,然后IIS将请求交给我们设定的工厂处理. 对于aspx文件,默认是aspnet_isapi.dll由来处理的. 假如我们不希望用户通过浏览器直接看到网站上的xml文件,直接返回404. 首先需要在IIS中添加新的映射,将xml文件交由aspne

查找网站引用的第三方js资源文件

for(var i=0,tags=document.querySelectorAll('iframe[src],frame[src],script[src],link[rel=stylesheet],object[data],embed[src]'),tag;tag=tags[i];i++){     var a = document.createElement('a');      a.href = tag.src||tag.href||tag.data;     if(a.hostname!

让你的.NET程序支持多语言

辛辛苦苦做出来的软件,我们当然希望能让更多的人用,支持多语言是必须的.下面我将以Asp.net Web Form为例来介绍如何支持多语言.其他程序比如windows程序,过程都是大同小异的. 大概分以下几个步骤: 生成默认资源文件,翻译资源文件. 写一点代码实现语言切换 一些高级话题.例子总是简单的,真实项目会遇到哪些问题? 下面是详细步骤: 生成默认资源文件,翻译资源文件. 创建一个Asp.net web form 项目,添加一个WebForm, 里面加上一些元素,比如label,button

利用资源文件实现多语言(支持强类型)控制台、WEB端都可以使用

一.对于控制台应用程序: 1.新建一个资源文件,一个是默认的,一个是指定语言的,命名规范如下: 1.1.建一个Resources.resx文件(这个做为默认的) 1.2.再建一个指定语言的,例如为“英语 - 英国”语言添加一个资源文件,则需要命名为“Resources.en-GB.resx”,这样项目就有两个资源文件了. 2.可以设置当前线程的 Culture 和 UICulture 属性来设置为语言和区域性字符串,例如这里手动切换为en-GB语言,则在调用Resources.Hello时将会去

ASP.NET网站伪静态下使用中文URL

首先解释一下,什么是中文URL呢?它并不是我们常见的把汉字编码为 %CF%EC 这种形式,而是在URL中直接使用汉字 这种形式目前还不是很多见.因为不同的浏览器处理起来可能会有所不同,不过据我测试,IE8和Firefox是完全支持的. 它的好处是可以使用链接地址看起来非常直观易懂!搜索引擎也支持. 先讲一下我的ASP.NET网站的伪静态,我的文件都是以.htm结尾的,实际上是动态的ASP.方法是:在后台将htm映射为aspx文件. 伪静态的规则,是在web.config文件中定义的. 形式一: