asp.netアプリケーションでリソースを使用しており、クライアントでキーと値のペアを使用できるようにする必要があります。HttpHandler を使用して特定のリソース ファイルを取得できましたが、使用しているコードでは標準の継承が機能しません。
ベースのPM.resxファイルには、次のものが含まれています。
key: a value: AAAAAA
key: b value: BBBBBB
key: c value: CCCCCC
PM.pt.resxファイルには次のものが含まれます
key: a value: ptptpt
pt
ブラウザ上またはコード化された文化を持っている場合、pt
ファイルには単一のエントリしかなく、ベース ファイルには残りのキーと値のペアが含まれているため、次のものが返されることを期待しています。
key: a value: ptptpt
key: b value: BBBBBB
key: c value: CCCCCC
しかし、私は次のことしか得ていません。
key: a value: ptptpt
JavaScript を生成するために使用している c# コードは次のとおりです。
public void ProcessRequest(HttpContext context)
{
ResourceManager rm = new ResourceManager("Resources.PM", System.Reflection.Assembly.Load("App_GlobalResources"));
Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR");//for testing culture change
//ResourceSet resourceSet = rm.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
ResourceSet resourceSet = rm.GetResourceSet(Thread.CurrentThread.CurrentCulture, true, true);
string r = string.Empty;
if (resourceSet != null)
{
foreach (DictionaryEntry entry in resourceSet)
{
string resourceKey = entry.Key.ToString();
object resource = entry.Value.ToString();
r += "\"" + entry.Key.ToString() + "\": \"" + entry.Value.ToString() + "\", ";
}
}
r = "var q = {" + r + " culture: \"" + Thread.CurrentThread.CurrentCulture.ToString() + "\"};";
r += "console.log(q);$.each(q, function(k, v){console.log(k + \": \" + v)});";
context.Response.Write(r);
}
コードで継承を機能させるにはどうすればよいですか?