私のasp.netソリューションでは、VSの[ツール]-> [ローカルリソースの生成]メニューからローカルリソースファイルを生成し、その中でいくつかのコントロールのテキストを変更しました。切り替えたい言語を含むドロップダウンリストがあります (たとえば、Default.en.aspx.resx)。これをどのようにコーディングしますか?現在アクティブなリソース ファイルとは別のリソース ファイルを参照するにはどうすればよいですか?
質問する
1300 次
2 に答える
3
ユーザーごとに日付の書式設定など、さまざまな言語を使用する場合は、現在のスレッドのCurrentUICultureを、要求された言語に一致するように設定できます。
たとえば、誰かがドロップダウンから言語を選択した後、それをセッションに保存し、ページのInitializeCultureをオーバーライドできます。
protected override void InitializeCulture()
{
string language = Session["language"].ToString(); // e.g. en-GB
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.GetCultureInfo(language);
}
Page.InitializeCultureとResourceManager、およびResourceManagerのカルチャ固有のリソースを参照してください。
于 2013-01-11T13:07:41.683 に答える
0
特定の値のみを変更するには、HttpContext.GetLocalResourceObjectメソッドを使用して必要なテキストを取得する必要があります。このようなもの:
string cultureCode = MyDropDown.SelectedValue;
MyLabel.Text = HttpContext.GetLocalResourceObject(
this.AppRelativeVirtualPath, // virtual path to current page
"MyLabelText", // key in resx
System.Globalization.CultureInfo.GetCultureInfo(cultureCode) // language
).ToString();
于 2013-01-11T14:30:39.067 に答える