多语言网站配置
本文关键字:配置 网站 语言 | 更新日期: 2023-09-27 18:35:55
>我有包含一组不同语言的列表框:
<%@ Page Language="C#" uiculture="auto" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Globalization" %>
<script runat="server">
protected override void InitializeCulture()
{
if (Request.Form["ListBox1"] != null)
{
String selectedLanguage = Request.Form["ListBox1"];
UICulture = selectedLanguage ;
Culture = selectedLanguage ;
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(selectedLanguage);
}
base.InitializeCulture();
}
</script>
<html>
<head><title>Set Culture</title></head>
<body>
<form id="form1" runat="server">
<div>
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem Value="en-US" Selected="True">English</asp:ListItem>
<asp:ListItem Value="es-MX">Español</asp:ListItem>
<asp:ListItem Value="de-DE">Deutsch</asp:ListItem>
</asp:ListBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Set Language" />
<br />
<asp:Label ID="Label1" runat="server" Text="my name is" />
</div>
</form>
</body>
</html>
我希望当我从列表框中选择一种语言时,标签文本将被翻译为所选语言,例如,如果我选择西班牙语,"我的名字是"将被翻译成西班牙语并显示在屏幕上
您需要删除硬编码字符串并开始使用Resource
文件。我建议您查看本教程以获取有关如何开发多语言网站的完整指南。
在 listBox 的 selectedIndexChanged 事件中编写以下代码行
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguageCode);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguageCode);
selectedLanguageCode 是为每个区域性指定的东西,例如美国英语 en-US 等。
你应该实现这个
protected override void InitializeCulture()
在每个页面上,您都需要多种语言。我通常会创建一个类,在其中覆盖它并从该类派生其他多语言支持的页面。您还需要使用Coockies。coockies["lang"] = "en-US" - 类似的东西来管理语言。