1

リソースを使用して、MVCアプリケーションでローカリゼーションの目的でさまざまな文字列を保存しています。HttpHandlerを使用してJavaScriptを処理Translate(KEY)し、リソースから実際のローカライズされた文字列値への呼び出しを変更しています。これはここにあります:ASP.NETのJavaScriptファイルでテキストをローカライズします

問題は、リソースマネージャーからgetObjectメソッドを呼び出すと取得することです。MissingManifestResourceException Could not find any resources appropriate for the specified culture or the neutral culture.

ここに関連するコード部分があります(エラーは以下のスニペットの6行目から来ています):

private string TranslateScript(string text)
{
    MatchCollection matches = REGEX.Matches(text);
    ResourceManager manager = new ResourceManager(typeof(CamelotShiftManagement.Strings.SharedStrings));

    foreach (Match match in matches)
    {
        object obj = manager.GetObject(match.Groups[1].Value, CultureInfo.CurrentCulture); //This throws the MissingManifestResourceException for some reson!!!!
        if (obj != null)
        {
            text = text.Replace(match.Value, CleanText(obj.ToString()));
        }
    }

    return text;
}

私は何を間違っているのですか?

4

1 に答える 1

1

さて、私は問題を見つけましたが、なぜそれが起こっているのか説明できません。(まだ)

私はこの投稿をAsp.NetMVCでResourceManagerとニュートラルカルチャーの問題を見つけ 、彼が行った手順に従いました。私はラインを変更しました:

ResourceManager manager = new ResourceManager(typeof(CamelotShiftManagement.Strings.SharedStrings));

に:

ResourceManager manager = CamelotShiftManagement.Strings.SharedStrings.ResourceManager;

基本的に、各リソースファイルには、このリソースファイルを処理するResourceManagerへの静的参照があるように見えます。

それで私の問題は解決しました。そうは言っても、以前使用した方法がうまくいかなかった理由はまだわかりません...

于 2012-10-05T09:12:44.243 に答える