1

私の会社のウェブサイトに3つの追加言語(fr、es-mx、de)を英語に追加しました。私はMSDN walkthrough on creating localizationに従った。グローバルリソース言語を追加したら、クライアントにどの言語を選択させるかを教えてください。

これ、私は、Visual Studio 2010/VB /ドットネット4.0を使用していると私はすでに私のページのすべての私の一番上の行にあります。

<%@ Page Title="USS Products & Services" Language="VB" MasterPageFile="~/products/products.Master" AutoEventWireup="false" 
CodeFile="default.aspx.vb" Inherits="default" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %> 

は私が4グローバルリソースを持っている(の.resx)私のglobal_appsディレクトリにあるファイル。しかし、ブラウザだけで言語を検出したくない場合はどうすればよいですか?私は彼らに自分の言語を選ぶオプションを与えたいと思っています。

クライアントに4つのフラグ(各言語ごとに1つ)のオプションを指定し、選択させる方法を教えてください。または、言語の上にマウスを置いてそれを選択できる、ロールオーバーのサイトマップタイプのエフェクトですか?どんな助けもありがとう!ありがとう!

答えて

6

この単純な方法で試してみてください。今

<asp:DropDownList ID="ddlCulture" DataTextField="DisplayName" DataValueField="Name" 
     runat="server" > 
     <asp:ListItem Value="es-MX">Spanish</asp:ListItem> 
     <asp:ListItem Value="en-US">English</asp:ListItem> 
    </asp:DropDownList> 
<asp:Button ID="btnSelect" Text="Select" runat="server" OnClick="btnSelect_Click" /> 

を選択するコードIは、ドロップダウンリストで言語を定義した を、ボタンを持っている:

protected void btnSelect_Click(object sender, EventArgs e) 
    { 
     Session["uiculture"] = ddlCulture.SelectedValue; 
     Session["culture"] = ddlCulture.SelectedValue; 
     Response.Redirect(Request.Path); 
    } 

    protected override void InitializeCulture() 
    { 
     if(Session["culture"]!=null) 
     UICulture=Session["culture"].ToString(); 
    } 

更新:申し訳ありませんが、私はオーバーライドを忘れてしまいましたキーワード。今それが動作する必要が含まれています。

ところで、あなたはVBを使用しています、私はこれを見て申し訳ありません。同等のコードは、

Protected Sub btnSelect_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Session("uiculture") = ddlCulture.SelectedValue 
    Session("culture") = ddlCulture.SelectedValue 
    Response.Redirect(Request.Path) 
End Sub 
Protected Overrides Sub InitializeCulture() 
    If Not Session("culture") Is Nothing Then 
     UICulture = Session("culture").ToString() 
    End If 
End Sub 
+0

Hi Nuuxです。お返事ありがとうございます。尋ねると私は気が気になりませんが、あなたが示唆したコードの第2ブロックをどこに置くのですか?私はボタンを置く場所を知っています。しかし、コーディングは?再度、あなたの助けに感謝します! –

+0

私はコードをページの一番下に置き、ビルドエラーはありませんでした。私はスペイン語や英語などをクリックしようとしましたが、ウェブブラウザの言語は変更されません。これはページの最上部に表示されます:protected void btnSelect_Click(Object sender、EventArgs e){Session ["uiculture"] = ddlCulture.SelectedValue;セッション["culture"] = ddlCulture.SelectedValue; Response.Redirect(Request.Path); UICulture =セッション["culture"]。ToString();} } –

+0

最後のメソッドを更新しました。だから試してみる。メソッドを配置する場所は、bttnイベントの後、またはコードの後ろにあるか、またはタグの間のどこに置いても問題ありません。進歩を教えてください。ありがとう – Mubarek