1

私はいくつかの文字列を設定するためにいくつかのリソース ファイルを使用したい ASP.net MVC サイトを持っています。

ビューモデルを含むクラス ライブラリがあり、そこにリソース ファイル (ValidationMessages) を 1 つの文字列 (Test と呼ばれる) と共に追加し、ビュー モデルに次のようなプロパティを設定しました。

        public string TestResource
        {
            get
            {
                return ValidationMessages.Test;
            }
        }

そして、私のビューに次のように出力すると、それはうまく機能します:

<div>@Model.TestResource</div>

ValidationMessages.en-au.resx (デフォルトは en-gb) ファイルをクラス ライブラリに追加し、別のバージョンのテスト文字列を作成すると、global.asax に次のように記述されます。

 protected void Application_AcquireRequestState(object sender, EventArgs e)
 {
     Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-au");
     Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-au");
 }

そして、これもうまくいきます。

私がやりたいのは、カスタム カルチャ 'en-gb-ly' を追加することです。このカルチャを自分のマシンに登録しました (こちらのコードを使用)。global.asax で現在のカルチャを "en-gb-ly" に設定し、クラス ライブラリに ValidationMessages.en-gb-ly.resx を含めると、出力が Test の「ベース」バージョンに戻りました。文字列であり、私の en-gb-ly リソースのものではありません。

なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

1

最初に確認することは、en-ly サテライト アセンブリが期待どおりに展開されることです。残念ながら、カスタム カルチャがビルド マシンにインストールされていない場合は、ビルドすることさえできません。

于 2012-10-25T11:40:17.570 に答える