用资源文件实现Asp.net程序的不同语言间的切换

    技术2022-05-11  7

    在as.p.net程序中资源文件(Resource)分为两种,一种是全局资源(GlobalResource),还一种是本地资源(LocalResource)

     

    我们做一个Test1.aspx页面来测试,这个页面上只有一个Label  lblHello。

    1.使用GlobalResource

       添加GlobalResource。添加GlobalResource文件夹,在下面添加资源文件,比如aaa.resx,添加字符串"strhello","你好"。 再添加一个aaa.en-us.resx,添加字符串"strhello","Hello"。

       读取GlobalResource。可以通过HttpContext.GetGlobalResourceObject("aaa", "strHello");

    System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("zh-cn");//用英文的话换成"en-us" Thread.CurrentThread.CurrentUICulture = culture;//设置当前语言区域 object obj = HttpContext.GetGlobalResourceObject("aaa", "strHello"); if (obj != null) { lblHello.Text = obj.ToString(); } //lblHello.Text = Resources.aaa.strHello; //也可以这样读取

     

    2.使用LocalResource

       添加LocalResource。先添加一个App_LocalResources文件夹,然后添加一个和页面名称一样的.resx文件,比如页面叫“Test1.aspx”,那在App_LocalResources文件夹下面建一个Test1.aspx.resx,里面加一条记录"strhello","你好"。 Test1.aspx.en-us.resx加记录"strhello","Hello"。

        读取LocalResource:

        System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("zh-cn");//用英文的话换成"en-us" Thread.CurrentThread.CurrentUICulture = culture;//设置当前语言区域 object obj = HttpContext.GetLocalResourceObject("~/Test1.aspx", "strHello"); //object obj = GetLocalResourceObject("strHello");//也可以直接这样读取 if (obj != null) { lblHello.Text = obj.ToString(); }


    最新回复(0)