多语言支持

根据语言显示对应的内容
(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%">
</td>
</tr>
<tr>
<td width="10%">
</td>
<td width="90%">
<asp:ImageButton ID="ibtUSA" runat="server" AlternateText="USA" ImageUrl="~/graphics/us.gif" OnClick="ibtUSA_Click" />
<asp:ImageButton ID="ibtGermany" runat="server" AlternateText="Germany" ImageUrl="~/graphics/de.gif" OnClick="ibtGermany_Click" />
<asp:ImageButton ID="ibtFrance" runat="server" AlternateText="France" ImageUrl="~/graphics/fr.gif" OnClick="ibtFrance_Click" />
<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 Object, ByVal 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 Object, ByVal 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 Object, ByVal 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 Object, ByVal 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 Object, ByVal 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


浙公网安备 33010602011771号