C# 多语言网站配置
我有一个包含一组不同语言的列表框:C# 多语言网站配置,c#,asp.net,webforms,multilingual,C#,Asp.net,Webforms,Multilingual,我有一个包含一组不同语言的列表框: <%@ Page Language="C#" uiculture="auto" %> <%@ Import Namespace="System.Threading" %> <%@ Import Namespace="System.Globalization" %> <script runat="server"> protected override void InitializeCulture()
<%@ 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>
受保护的覆盖无效初始化文化()
{
if(Request.Form[“ListBox1”]!=null)
{
字符串selectedLanguage=Request.Form[“ListBox1”];
UICulture=所选语言;
文化=选择的语言;
Thread.CurrentThread.CurrentCulture=
CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture=新建
文化信息(选定语言);
}
base.InitializeCulture();
}
集合培养
英语
西班牙人
德国
我希望当我从列表框中选择语言时,标签文本将被翻译为所选语言。例如,如果我选择Español,“我的名字是”将被翻译为Español语言并显示在屏幕上您需要删除硬编码字符串并开始使用
资源
文件。我建议您阅读教程,以获得关于如何开发多语言网站的完整指南。您应该实现这一点
protected override void InitializeCulture()
在每一页上,你都需要多种语言。
我通常创建一个类来覆盖它,并从该类派生其他支持多语言的页面。您还需要使用coockies。coockies[“lang”]=“en-US”-类似这样的内容用于管理语言。在列表框的selectedIndexChanged事件中编写以下代码行
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguageCode);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguageCode);
selectedLanguageCode是为每个区域性指定的代码,例如美国英语、美国英语等。您是只想更改标签名称,还是想更改文化信息以使所有内容(参考资料)在网站中,是否应更改为所选语言?我希望网站的所有内容都更改为所选语言是,不仅是标签文本值这不是我想要实现的我希望创建一个多语言网站,不仅是在选择时更改标签的值change@BassemAssemAlameddine:我贴了这样一个教程的链接这会让你走上正轨。我建议你看看。@bassemassemalamedine:This:
Text=“我的名字是”
。这只是我举的一个例子,我可以解释我的想法issue@BassemAssemAlameddine:我很明白。但仅供参考,要使用多语言应用程序,您必须放弃所有硬编码字符串并使用资源文件。您编写的代码位于initialize culture event中,在listbox的选定索引更改事件中写入给定行,以便每次更改事件时都应重新设置区域性。刚刚看到我的一个项目实施,发现需要指定其他行,编辑我的答案现在有两行代码需要编写