Visual Studio 2015および.NET 4.6.1で開発しているこのASP.NET Webアプリケーションがあります。私は、ローカルとグローバルのリソースを広範囲に利用して、自分のアプリケーションを英語(デフォルト)、スペイン語、ガリシア語にローカライズしています。 IIS Expressを使用する私の開発マシンでは、すべて正常に動作します。しかし、Windows Server 2008でIIS 7を使用する運用サーバーにWebアプリケーションを公開すると、スペイン語のグローバルリソースは無視され、ガリシア語だけでなく既定の英語も使用されます。ASP.NET Webアプリケーションで追加のカルチャのグローバルリソースが無視される
私はWeb Publishの「ファイルシステム」方法でWebアプリケーションを公開しています。私が見る限り、.resx
ファイルはグローバルリソース用にデプロイされません。代わりに、App_GlobalResources.resources.dll
という名前のファイルがbin
、bin/es
、およびbin/gl
というフォルダに展開されます。さらに、MyNamespace.resources.dll
ファイルはbin/es
にデプロイされますが、非常に奇妙なbin/gl
にはデプロイされません。
また、私はen-GB
、es-ES
またはgl-ES
のいずれかに基づいてCultureInfo
オブジェクトにThread.CurrentThread.CurrentUICulture
を設定することによって、自分のコード内の文化を切り替えていますと言わなければなりません。
ニュートラル(たとえば、gl
)とローカライズされた(たとえば、gl-ES
)の形式のカルチャコードを使用して、コード内のグローバルリソースファイルの名前を付けようとしました。これは何の違いもないようです。また、ローカルリソースファイルには、中立バリアントを使用して名前が付けられます。
なぜスペインのグローバルリソースが無視されているのですか?ありがとう。
デフォルトで英語のculture suffixを使用する必要がありますか?通常、私は修飾子なしでResourceTexts.resxとして残します。 – CesarGon
また、グローバルリソースのために提案しているように、完全なカルチャースペックのローカルリソースも指定しますか? – CesarGon
私はちょうどあなたが提案して何も変わらないようにしようとしました。 :-(また、 'App_GlobalResources'フォルダは私のサーバ上に存在しません。私のOPで説明しているように、DLLは' bin'の下のサブディレクトリに展開されます。 – CesarGon