博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 国际化
阅读量:5308 次
发布时间:2019-06-14

本文共 2091 字,大约阅读时间需要 6 分钟。

以前只听说国际化自已却没有亲自动手做,知道是不同文字的翻译

下面这就是我简单实现国际化的例子,希望对刚接触国际化的朋友有帮助

这是我的登录窗口(其实没有什么,只是感觉测试好看一点)

这是后台代码

 protected void Button1_Click(object sender, EventArgs e)

    {
        Session["language"] = DropDownList1.SelectedValue;
        Response.Redirect("ChangeLanguage.aspx");
    }

下面是解资源方面(看到App_GlobalResource文件夹了吗?里面有两个资源文件)

(也许有的朋友会问到,我做的是locakResource(本地)而你这个是GlobalResource(全局),其实说到本地或者全局,)

(没什么大的区别,就像string和  StringBuilder差不多,本地说通一点,就是每一张页自动产生一个资源文件 Tools 下有一个LocalResources)

你点一下它就会自动生成AppLocalResources文件夹(它下面会有每个页生成的资源文件)

这是public.en.resx文件(即英文)

这是public.resc(即中文)

这是跳转到ChangeLanguage.aspx后台代码

using System;

using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;
using System.Globalization;
public partial class ChangeLanguage : System.Web.UI.Page
{
    protected override void InitializeCulture() //这是个方法就是在加载之前进行浏览器判断(想深入了解自已可以去研究)
    {
        if (Session["language"] != null)
        {
            //加载语言信息               
            InitializeCulture(GetMessageByLanguage(Session["language"].ToString(), "zh-cn", "en-us"));
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
      
        Label1.Text = GetGlobalResourceObject("public", "SystemName").ToString();--这个public是资源文件名 SystemName(是文件Name)
       
    }
   
   
    public static string GetMessageByLanguage(string Language, string zhMessage, string enMessage)
    {
        if (Language.Trim().ToUpper() == "CHINESE")  //session["language"]
        {
            return zhMessage; //就返回中文
        }
        return enMessage; //要不就返回英文
    }

//就这个方法很重要呵呵,几句话

    public static void InitializeCulture(string UserCulture)
    {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
    }
}

这是前台<asp:Label ID="Label1" runat="server" Text="<%$ Resources:public,SystemName%>" Width="221px"></asp:Label>

Text="<%$ Resources:public,SystemName%>"有这个东西会显示

同时你也会看到有个小点,鼠标放在上面,你会看到提示

光说不练也不行(下面是中文和英文)

运行效果:

 


 

就实现了国际化,就写到这里,以后加深了在写

转载于:https://www.cnblogs.com/yzenet/archive/2012/04/28/2475420.html

你可能感兴趣的文章
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>