1

私のasp.netソリューションでは、VSの[ツール]-> [ローカルリソースの生成]メニューからローカルリソースファイルを生成し、その中でいくつかのコントロールのテキストを変更しました。切り替えたい言語を含むドロップダウンリストがあります (たとえば、Default.en.aspx.resx)。これをどのようにコーディングしますか?現在アクティブなリソース ファイルとは別のリソース ファイルを参照するにはどうすればよいですか?

4

2 に答える 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 に答える