内部にいくつかのWinFormsを含むクラスライブラリプロジェクトを作成しました。 フォームをVSデザイナーでビルドして翻訳しました(Localizable = trueに設定)。サードパーティアプリケーションから使用するWinFormsをローカライズ
VSは、サテライトリソースファイルを含む各言語のアセンブリと異なるフォルダを作成します。
このアセンブリは、3者アプリケーションによって読み込まれます。
ここでは、3者アプリケーションからフォームを開始すると、フォームがローカライズされないという問題があります。 私たちのアセンブリは言語のサブディレクトリからリソースファイルを読み込むことができないようです。
このリソースファイルをコードで読み込むことは可能ですか?そのため、WinFormsのデフォルトのローカライズメカニズムが機能しますか?
編集
私はメイン3パーティのアプリフォルダに言語フォルダ(デ、EN、...)をコピーした場合、すべてが魅力のように動作します。
私はこれを試しましたが、問題はないようです。 私は、リソースファイルの作成をテストし、 'ResourceManager.GetString()'で自動生成されたResourceManagerを使用し、異なるCultureInfosを提供しましたが、成功しませんでした。 私のアセンブリは衛星リソースファイルを自動的に見つけてロードすることができません。 – Markus
@ Markus:WinFormsのローカライゼーション機能は、.NET 1.0以降、このような問題はなく使用しています。あなたのアプリケーションのターゲットディレクトリにサテライトアセンブリがありますか?例えば。 MyForms.dllをMyApp.exeおよび "de"サブディレクトリのドイツ語MyForms.resources.dllと並行して実行しますか? – KBO
はい。 私の問題は、3党のアプリケーションがアセンブリを読み込み、今実行中のアセンブリが衛星リソースを見つけることができないと思います。 私は、3つのパーティーのアプリケーションのメインフォルダに含まれているリソースファイル(de、en、...)をコピーする場合、それは魅力的なように動作します。 私はコードを介してリソースを手動でロードする必要がありますが、私は方法を知らない。 – Markus