SOには同様の質問がたくさんあることは知っていますが、私の問題はまったく同じではなく、提案された解決策はうまくいきません。
そのため、「MyApp 1.0」という名前の C#.NET デスクトップ アプリを作成しましたが、後でデフォルトの名前空間を に変更しましたMyApp
。ここで、アプリをさまざまな言語にローカライズしたいので、新しいリソース ファイルを追加して、各言語の UI 文字列を .as などに保持MyAppUIText.en.resx
しMyAppUIText.gu.resx
ます。public static
また、アプリケーション内の任意の場所にあるこれらのリソースから文字列にアクセスするためのメソッドを持つクラスも作成しました。そのコードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Resources;
namespace MyApp
{
namespace Utility
{
class UIText
{
private static ResourceManager rm = new ResourceManager("MyApp.MyAppUIText", typeof(FormMyAppMain).Assembly);
public static string GetString(string key)
{
return rm.GetString(key, System.Globalization.CultureInfo.CurrentUICulture);
}
}
}
}
アプリを実行すると、次のランタイム エラーが発生します
指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。コンパイル時に "MyApp.MyAppUIText.resources" がアセンブリ "MyApp 1.0" に正しく埋め込まれているかリンクされていること、または必要なすべてのサテライト アセンブリが読み込み可能で完全に署名されていることを確認してください。
ただし、文字列は UI に正しく読み込まれますが、フォーム デザイナーは title で同じエラーを表示しますTo prevent possible data loss before loading the designer, the following errors must be resolved:
。
ここで何が間違っていますか?
PS
私はC#は初めてですが、Javaに精通しており、properties
以前にそのファイルを操作したことがあります。