Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多语言网站配置_C#_Asp.net_Webforms_Multilingual - Fatal编程技术网

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的选定索引更改事件中写入给定行,以便每次更改事件时都应重新设置区域性。刚刚看到我的一个项目实施,发现需要指定其他行,编辑我的答案现在有两行代码需要编写