0

作成したSSIS変換コンポーネントをローカライズしようとしています。ユーザーとの対話に使用されるフォームがいくつかあります。フォームのLocalizableプロパティをtrueに設定し、言語をドイツ語(ドイツ)に設定し、プロンプトをドイツ語の翻訳に設定しました。

次にテストしますが、これをフォームのc'torに入れます。

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");

しかし、デフォルト(英語)のプロンプトしか表示されません。スタンドアロンアプリでこれを行うと、完全に機能します。

次に、文字列リソースを試して、うまくいくかどうかを確認します。私はVerifyLoc.resxといくつかの文字列を作成し、次にVerifyLoc.de-DE.resxと同じ名前のいくつかのドイツ語文字列を作成します。もう一度テストします:

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
string str1 = VerifyLoc.Str1;
string str2 = VerifyLoc.Str2;

運が悪い、str1とstr2はデフォルトであり、ドイツ語ではありません。次に、私はこれで物事を強制しようとします:

ComponentResourceManager resources = new ComponentResourceManager(typeof(VerifyLoc));
CultureInfo culture = new CultureInfo("de-DE");
string str1 = resources.GetString("Str1", culture);
string str2 = resources.GetString("Str2", culture);

まだダメ。de-DE.resxファイルのプロパティをデフォルトのプロパティと照合しました。どちらも「内部」アクセス修飾子を使用しています。どちらも「埋め込みリソース」としてマークされており、どちらもResXFileCodeGeneratorを介して実行されます。

残念ながら、私はドイツ語版のWindowsを持っていないため、ドイツ語を使用するように強制しようとした場合の問題、またはリソース自体の生成に関する問題にこれを特定することができませんでした。

何か案は?

4

1 に答える 1

1

ドイツの衛星アセンブリが正しい場所に構築または展開されていないようです。de-DEフォルダー内にアセンブリの名前が付いた.resources.dllファイルが表示されますか?

于 2012-09-26T15:37:30.567 に答える