多语言支持


根据语言显示对应的内容
(HTML部分如下:)
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>无标题页</title>
</head>
<body style="font-size: medium; font-family: Arial">
    
<form id="form1" runat="server">
    
<div>
        
<table width="100%">
            
<tr>
                
<td align="center" bgcolor="#ccccff" colspan="2" width="10%">
                    Translation Through Resources
</td>
            
</tr>
            
<tr>
                
<td width="10%">
                    1
</td>
                
<td width="90%">
                    
<asp:Label ID="lbl1" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td width="10%">
                    2
</td>
                
<td width="90%">
                    
<asp:Label ID="lbl2" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td width="10%">
                    3
</td>
                
<td width="90%">
                    
<asp:Label ID="lbl3" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td width="10%">
                    4
</td>
                
<td width="90%">
                    
<asp:Label ID="lbl4" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td width="10%">
                    5
</td>
                
<td width="90%">
                    
<asp:Label ID="lbl5" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td style="height: 21px;" width="10%">
                    6
</td>
                
<td style="height: 21px;" width="90%">
                    
<asp:Label ID="lbl6" runat="server" Text="Label" Width="100%"></asp:Label></td>
            
</tr>
            
<tr>
                
<td width="10%">
                
</td>
                
<td width="90%">
                    
&nbsp; &nbsp; &nbsp;
                
</td>
            
</tr>
            
<tr>
                
<td width="10%">
                
</td>
                
<td width="90%">
                    
&nbsp;<asp:ImageButton ID="ibtUSA" runat="server" AlternateText="USA" ImageUrl="~/graphics/us.gif" OnClick="ibtUSA_Click" />&nbsp;
                    
<asp:ImageButton ID="ibtGermany" runat="server" AlternateText="Germany" ImageUrl="~/graphics/de.gif" OnClick="ibtGermany_Click" />&nbsp;
                    
<asp:ImageButton ID="ibtFrance" runat="server" AlternateText="France" ImageUrl="~/graphics/fr.gif" OnClick="ibtFrance_Click" />&nbsp;
                    
<asp:ImageButton ID="ibtSpain" runat="server" AlternateText="Spain" ImageUrl="~/graphics/es.gif" OnClick="ibtSpain_Click" /></td>
            
</tr>
        
</table>
    
    
</div>
    
</form>
</body>

</html>

增加资源文件目录(App_GlobalResources)

增加资源文件(Strings.de-DE.resx, Strings.en-US.resx, Strings.es-ES.resx , Strings.fr-FR.resx ,Strings.resx )

代码部分如下:(C#)
using System;
using System.Data;
using System.Configuration;
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.Resources;
using System.Reflection;
using System.Globalization;
using System.Threading;

public partial class _Default : System.Web.UI.Page 
{
    ResourceManager rm;

    
protected void Page_Load(object sender, EventArgs e)
    
{
        CultureInfo ci;       
        
if (!IsPostBack)
        
{
            Thread.CurrentThread.CurrentCulture 
= new CultureInfo("en-US");
             rm 
= new ResourceManager("Resources.Strings", System.Reflection.Assembly.Load("App_GlobalResources"));

            ci 
= Thread.CurrentThread.CurrentCulture;
            LoadStrings(ci);
        }

        
else
        
{
            rm 
= new ResourceManager("Resources.Strings", System.Reflection.Assembly.Load("App_GlobalResources"));
            ci 
= Thread.CurrentThread.CurrentCulture;
            LoadStrings(ci);
        }

    }

    
private void LoadStrings(CultureInfo ci)
    
{
        lbl1.Text 
= rm.GetString("BirdInfo", ci);
        lbl2.Text 
= rm.GetString("CatInfo", ci);
        lbl3.Text 
= rm.GetString("DogInfo", ci);
        lbl4.Text 
= rm.GetString("TravelInfo", ci);
        lbl5.Text 
= rm.GetString("WaterInfo", ci);
        lbl6.Text 
= rm.GetString("WeatherInfo", ci);
    }

    
protected void ibtUSA_Click(object sender, ImageClickEventArgs e)
    
{
        Thread.CurrentThread.CurrentCulture 
= new CultureInfo("en-US");
        LoadStrings(Thread.CurrentThread.CurrentCulture);
    }

    
protected void ibtGermany_Click(object sender, ImageClickEventArgs e)
    
{
        Thread.CurrentThread.CurrentCulture 
= new CultureInfo("de-DE");
        LoadStrings(Thread.CurrentThread.CurrentCulture);
    }

    
protected void ibtFrance_Click(object sender, ImageClickEventArgs e)
    
{
        Thread.CurrentThread.CurrentCulture 
= new CultureInfo("fr-FR");
        LoadStrings(Thread.CurrentThread.CurrentCulture);
    }

    
protected void ibtSpain_Click(object sender, ImageClickEventArgs e)
    
{
        Thread.CurrentThread.CurrentCulture 
= new CultureInfo("es-ES");
        LoadStrings(Thread.CurrentThread.CurrentCulture);
    }

}


(VB.NEt )代码如下:
Imports System
Imports System.Globalization
Imports System.Threading
Imports System.Resources
Imports System.Reflection



Partial Class _Default
    
Inherits System.Web.UI.Page

    
Private rm As ResourceManager

    
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load

        
Dim ci As CultureInfo

        
If Not Page.IsPostBack Then
            Thread.CurrentThread.CurrentCulture 
= New CultureInfo("en-US")
            
'get the culture info to set the language
            rm = New ResourceManager("Resources.Strings", System.Reflection.Assembly.Load("App_GlobalResources"))
            ci 
= Thread.CurrentThread.CurrentCulture
            LoadStrings(ci)
        
Else
            
'get the culture info to set the language
            rm = New ResourceManager("Resources.Strings", System.Reflection.Assembly.Load("App_GlobalResources"))
            ci 
= Thread.CurrentThread.CurrentCulture
            LoadStrings(ci)
        
End If

    
End Sub


    
Private Sub LoadStrings(ByVal ci As CultureInfo)

        lbl1.Text 
= rm.GetString("BirdInfo", ci)
        lbl2.Text 
= rm.GetString("CatInfo", ci)
        lbl3.Text 
= rm.GetString("DogInfo", ci)
        lbl4.Text 
= rm.GetString("TravelInfo", ci)
        lbl5.Text 
= rm.GetString("WaterInfo", ci)
        lbl6.Text 
= rm.GetString("WeatherInfo", ci)

    
End Sub



    
Protected Sub ibtSpain_Click(ByVal sender As ObjectByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtSpain.Click
        Thread.CurrentThread.CurrentCulture 
= New CultureInfo("es-ES")
        LoadStrings(Thread.CurrentThread.CurrentCulture)
    
End Sub



    
Protected Sub ibtUSA_Click(ByVal sender As ObjectByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtUSA.Click
        Thread.CurrentThread.CurrentCulture 
= New CultureInfo("en-US")
        LoadStrings(Thread.CurrentThread.CurrentCulture)
    
End Sub



    
Protected Sub ibtFrance_Click(ByVal sender As ObjectByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtFrance.Click
        Thread.CurrentThread.CurrentCulture 
= New CultureInfo("fr-FR")
        LoadStrings(Thread.CurrentThread.CurrentCulture)
    
End Sub



    
Protected Sub ibtGermany_Click(ByVal sender As ObjectByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtGermany.Click
        Thread.CurrentThread.CurrentCulture 
= New CultureInfo("de-DE")
        LoadStrings(Thread.CurrentThread.CurrentCulture)
    
End Sub

End Class




代码下载:
https://files.cnblogs.com/jhtchina/Localization.rar
posted @ 2008-06-18 15:14  jhtchina  阅读(478)  评论(0)    收藏  举报