Webアプリケーションに関しては、私は初心者です。しかし、私はASP.NET 2.0を使用してそれを学ぶために最善を尽くしており、長い投稿をお詫びします。
マスターページ(M1)と3つの異なるコンテンツページC1、C2、C3があり、基本的にマスターページM1を使用してそれぞれのコンテンツをコンテンツプレースホルダーに入力します。
すべてのWebフォームはローカライズされ、適切な言語のリソース文字列がリソース(xml)ファイルに追加されます(例:Resource.en-US.xml、Resource.de-DE.xmlなど)。最後に、リソースはコードで参照されます。適切な現在の文化と現在のuicultureを設定した後。
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
//where the btnSubmit is a control on the form
btnSubmit.Text = rm.GetString("Submit", Thread.CurrentThread.CurrentCulture);
ここで質問があります。ユーザーがasp:imageを使用してasp:linkbuttonとして使用できるマスターページの表示言語を変更するオプションを含めました。ユーザーが目的の言語のリンクボタンをクリックするたびに、コンテンツページコントロールには、選択したカルチャに対応するコンテンツ文字列全体が表示されます。
どうすればこれを達成できますか?
選択した言語を含めるためにセッション変数を実装する必要がありますか?または、Cookieに保存することも機能しますか?
私が試したこと
マスターページの読み込みイベント。基本的にCurrentThreadのカルチャプロパティとuicultureプロパティを設定し、選択した言語をセッション変数内に格納するメソッドSetCultureSpecificInformationを呼び出してみました。
また、asp:linkbuttonOnClickイベントハンドラーでの同様の実装。この場合、セッション変数を変更します。
最後に、コンテンツWebページのOnPage_Loadイベントでセッション変数を参照します。
しかし、どういうわけか、上記のアプローチは望ましい結果を生み出していません。言語の切り替えには一貫性がありません。同じものを実装するための十分な設計アプローチで私を助けることができる人は誰でも。
前もって感謝します