2012-03-11 18 views
0

私はasp.netローカリゼーションを使用してマルチランゲージのウェブサイトを作成しようとしていますが、基本的に私は英語とアラビア語の2つのグローバルリソースを持っています。asp.netは現在のカルチャを変更できません

私は2つの言語をcontainigドロップダウンリストを追加しました:

<asp:DropDownList runat="server" ID="changeLang" AutoPostBack="true" > 
     <asp:ListItem Value="en">English</asp:ListItem> 
     <asp:ListItem Value="ar">Arabic</asp:ListItem> 
     </asp:DropDownList> 

と私は、このコードビハインド使用しています:の値をデバッグするに

protected override void InitializeCulture() //changing the languages 
    { 
     string lang = Request["changeLang"]; 

     if (lang != null && lang != "") 
     { 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang); 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang); 
     } 
    } 

しかし、言語習慣の変化とをstring langは常にnullです。

私はasp.net 4.0を使用しています。

何が問題なのです、ありがとう。

+0

最後に 'MyBase.InitializeCulture()'がありません。 http://msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.80%29.aspx –

+0

@TimSchmelter - 私はコードの最後に追加しようとしましたが、違いはありませんでした。 – Wahtever

答えて

0

は、2つの別々の問題があるような音。

1)コードビハインドのドロップダウンリストから値を取得できません。 Requestオブジェクトを経由するのではなく、オブジェクトに直接アクセスしようとしましたか?例:
string lang = changeLang.SelectedValue

2)培養が設定されていません。 2番目の項目については、最初に特定のカルチャを作成し、CurrentUICultureCurrentCultureの両方に使用してみてください。たとえば:あなたはこのMSDN articleからのサンプルコードを以下のようにされる可能性があります

CultureInfo info = CultureInfo.CreateSpecificCulture("en-US"); 
Thread.CurrentThread.CurrentUICulture = info; 
Thread.CurrentThread.CurrentCulture = info; 

は、さらにそれが見えます。ドロップダウンリストで特定のカルチャーIDを使用する必要があります(例:en-USとar-EG)

-1

私は自動的にユーザーのブラウザの設定から文化を決定するために、ページ設定をお勧め:次に

<globalization uiCulture="auto" culture="auto" /><!-- Automatically set culture from HTTP request --> 
<globalization uiCulture="auto:en" culture="auto:en-US" /><!-- Optionally set a default culture --> 

:あなたのweb.configファイルにこれらのエントリを追加することによって、

<%@ Page UICulture="auto" Culture="auto" %> 

、または同じサイト全体を暗黙の宣言的バインディングを使用してください:

<asp:Button ID="btnSubmit" runat="server" 
    meta:resourcekey="btnSubmit" /> 

多くの詳細とコードサンプルについてはResources and Localization in ASP.NET 2.0を参照してください。あなたではなくあなたの例に従ってプログラムでそれを行うだろう場合は、次のリソースを参照してください

+1

自動培養の設定がうまくいけば、私の問題は培養を手動で変更する必要があることです。 – Wahtever

+0

ユーザーの質問に答えなかった –

関連する問題