0

埋め込み .resx を使用して、asp.net アプリケーションをローカライズしています。現在の文化が何であれ、ニュートラルな文化リソースは常に返されるようです。値を取得するために使用しているコードは次のとおりです。

protected string GetResource(string name)
    {
        return Localization.ResCore.ResourceManager.GetString(name, System.Threading.Thread.CurrentThread.CurrentCulture);
    }

あるページで、文化が「es-PE」(ペルー)であることを明記しました。GetResource 関数を中断すると、CurrentCulture が "es-PE" であり、ResourceManager にこのカルチャに対応する ResourceSet が含まれていることを確認できます。ただし、返される文字列は常にニュートラル カルチャ セットからのものです。

埋め込むファイルの名前は次のとおりです。

  • ResCore.resx
  • ResCore.es.resx
  • ResCore.es-PE.resx

どんな助けでも大歓迎です。

4

3 に答える 3

1

リソースを使用する場合は、2 番目のパラメーターを次のように変更できます。

System.Threading.Thread.CurrentThread.CurrentCulture

System.Threading.Thread.CurrentThread.CurrentUICulture
于 2009-08-14T09:39:44.187 に答える
0

なぜそれを埋め込む必要があるのか​​ 疑問に思っていますか?App-LocalResources と App-GlobalResources に追加して、そこから使用することはできませんか?

また、base.InitializeCulture() を呼び出さないと、言語が不安定に動作することがわかります。基本ページを作成し、そこから継承します。このような:

protected class BasePage : System.Web.UI.Page
{
     protected override void InitializeCulture(object sender, EventArgs e)
     {
          this.Culture = Resources.Culture = Thread.CurrentThread.CurrentUICulture;

          base.InitializeCulture();
     }
}

これが役立つことを願っています。

于 2009-08-05T21:54:49.910 に答える