1

私は異なる言語のグループを含むリストボックスを持っています:

  <%@ 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>

リストボックスから言語を選択すると、ラベルのテキストが選択した言語に翻訳されます。たとえば、スペイン語を選択した場合、「私の名前は」がスペイン語に翻訳され、画面に表示されます。

4

3 に答える 3

1

ListBoxのselectedIndexChangedイベントに次のコード行を記述します

Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguageCode);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguageCode);

selectedLanguageCodeは、文化ごとに指定するものです。たとえば、米国英語、米国などです。

于 2012-05-30T08:37:04.967 に答える
1

ハードコードされた文字列を削除して、ファイルの使用を開始する必要がありResourceます。多言語のWebサイトを開発する方法の完全なガイドについては、このチュートリアルを参照することをお勧めします。

于 2012-05-30T08:33:02.457 に答える
0

これを実装する必要があります

 protected override void InitializeCulture()

すべてのページで多言語が必要です。私は通常、それをオーバーライドして、そのページから他の多言語でサポートされているページを派生させるクラスを作成します。また、coockiesを使用する必要があります。coockies ["lang"]="en-US"-言語を管理するためのこのようなもの。

于 2012-05-30T08:34:33.020 に答える