は、誰かが私がしたい:)ローカライズは、私は非常に長い時間のための私の問題の解決策を見つけることができません
私は、Visual Studio 2008(C#の)アプリケーションで開発していと助けることができるここを願ってのVisual Studioでパスをファイルそれは多言語である。
これは実行時にプラグインを読み込むメインのWinFormアプリケーション(Main.exeと呼ぶ)です。 "プラグイン"は.dllファイルにコンパイルされたUserControlで、プラグインのロジックと要素をすべて入れます。必要に応じて、Main.exeは.dllファイルからアセンブリを読み込みます。
アセンブリasm = Assembly.LoadFile(pluginFilePath);
とそれからパネルにUserControlを添付します。
ソリューションエクスプローラで ソリューションエクスプローラでプロジェクトを翻訳します。Messages.resxファイルを配置し、文字列とメッセージをデフォルト言語(例:Name = greetings、value = Good morning everyone)に追加します。 次に、resxファイルのコピーを作成し、Messages.es-ES.resxという名前でスペイン語で翻訳します。すべての値をスペイン語に変更します(Name = greetings、value = Hola a todos)。 他の言語でも同じです。
コード内で使用する場合は、
Messages.greetings
を使用してローカライズされたテキストを取得することができます(IntelliSenseはこのソリューションで動作していますので、このようにしたいと思います)。
私はプロジェクトをコンパイルするとき、私は構造を以下ました:
C:\ APP_DIR \
| ---------------- MAIN.EXE
| - --------------- es-ES \ Main.resources.dll < - 私のメインプログラムのローカリゼーションファイルがes-ESディレクトリにあります。
| ----------------プラグイン\ < - 私はプラグインで同じことをやって、今の別々のdirs
でプラグインを保つディレクトリ(myPlugin.dll )私に以下のファイルがあります:
C:\ Plugin_dir \
| --------------- myPlugin.dll
| ------------- - es-ES \ myPlugin.resources.dll < - 私のプラグインのローカリゼーションファイル
ここで問題は、それ一緒に働く: 私はローカライズファイルを使用してプラグインを展開し、次のようにそれらを入れたい:
C:\ APP_DIR \
| ---------------- MAIN.EXE
| ---------------- es-ES \ Main.resources.dll
| ---------------- Plugins \ MyPlugin \ myPlugin .dllが
| MAIN.EXEで----------------プラグイン\ MyPlugin \ ES-ES \ myPlugin.resources.dll
私は両方を設定します。
システム。現在のスレッドのスレッドを新しいCultureInfo( "es-ES")に、プログラムMain.exeをスペイン語で実行したいのですが、.dllからプラグインを読み込むとデフォルト(英語)の言語になります...
両方(メインおよびプラグイン)構造は、次のされたときにスペイン語のみ、である:
C:\ APP_DIR \
| ---------------- MAIN.EXE
| ---------------- es-ES \ Main.resources.dll
| ---------------- es- ES \ myPlugin.resources.dll
| ----------------プラグイン\ MyPlugin \ myPlugin.dll
が、これは、私はそれになりたい方法ではありません - Iプラグインのローカリゼーションファイルがプラグイン自体とは別のディレクトリに存在しないようにしてください。
私の質問です:誰もこの問題を解決する方法を知っていますか?特定のパスからローカライゼーションファイルのロードを強制的に行う方法や、アセンブリを探す場所を設定する方法はありますか?
敬具、
マルチン
特にタグフィールドに同じタグを入力すると、件名に[tags]を入れないでください。 – abelenky
アセンブリを読み込むさまざまな方法を試しましたか?特に、Assembly.Load(AssemblyName)?パスとコンテキストの解決には違うルールがあるようです。 – Jester