3

これは、VSTO Word Addinでローカリゼーションを実装する正しい方法ですか?今のところ、検索するリソースファイルに現在のカルチャを追加するという命名規則を順守しています。私は混乱するのに十分なさまざまな資料を読みました。1つの方法はResgen.exeを使用してからAl.exeを使用して.dllを生成することでしたが、正確な理由はわかりません。再コンパイルせずに言語を更新できるということです。 ?

System.Resources.ResourceManager resMgr;
System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
try
{
    // somehow I feel this isn't how it was meant to be? but it works
    resMgr = new System.Resources.ResourceManager("MyAddin.MyLocalisation." + ci, Assembly.GetExecutingAssembly());
    string title = resMgr.GetString("MyTitle");
}
4

1 に答える 1

2

混乱はおそらく、デスクトップアプリのリソースファイルを作成する方法が(5)異なるためですアセンブリリンカーal.exe)とリソースファイルジェネレーターresgen.exe)は、ローカライズされたリソースを操作するときに使用される主なツールです。Resgen.exeはresx(XML)をリソース(binary)にコンパイルし、 al.exeはリソース(binary)を衛星アセンブリ(dll)に結合します。衛星アセンブリは通常、サポートされているカルチャ(ハブアンドスポーク)ごとに定義されます)。サテライトアセンブリは、アプリケーションを再コンパイルしなくても更新できます。


MSDNから:

文字列、画像、オブジェクトデータなどのリソースをリソースファイルに含めて、アプリケーションで簡単に利用できるようにすることができます。.NET Frameworkには、リソースファイルを作成するための5つの方法があります

1.文字列リソースを含むテキストファイルを作成します。リソースファイルジェネレーター(Resgen.exe)を使用して、テキストファイルをバイナリリソース(.resources)ファイルに変換できます。次に、言語コンパイラを使用してバイナリリソースファイルをアプリケーション実行可能ファイルまたはアプリケーションライブラリに埋め込むか、Assembly Linker(Al.exe)を使用してサテライトアセンブリに埋め込むことができます。詳細については、「テキストファイルのリソース」セクションを参照してください。

2.文字列、画像、またはオブジェクトデータを含むXMLリソース(.resx)ファイルを作成します。リソースファイルジェネレーター(Resgen.exe)を使用して、.resxファイルをバイナリリソース(.resources)ファイルに変換できます。次に、言語コンパイラを使用してバイナリリソースファイルをアプリケーション実行可能ファイルまたはアプリケーションライブラリに埋め込むか、Assembly Linker(Al.exe)を使用してサテライトアセンブリに埋め込むことができます。詳細については、「。resxファイルのリソース」セクションを参照してください。

3. System.Resources名前空間の型を使用して、プログラムでXMLリソース(.resx)ファイルを作成します。.resxファイルを作成し、そのリソースを列挙し、名前で特定のリソースを取得できます。詳細については、トピック「プログラムによる.resxファイルの操作」を参照してください。

4.プログラムでバイナリリソース(.resources)ファイルを作成します。次に、言語コンパイラを使用してファイルをアプリケーション実行可能ファイルまたはアプリケーションライブラリに埋め込むか、Assembly Linker(Al.exe)を使用してサテライトアセンブリにファイルを埋め込むことができます。詳細については、「。resourcesファイルのリソース」セクションを参照してください。

5. Visual Studioを使用してリソースファイルを作成し、プロジェクトに含めます。Visual Studioには、リソースを追加、削除、および変更できるリソースエディターが用意されています。コンパイル時に、リソースファイルは自動的にバイナリの.resourcesファイルに変換され、アプリケーションアセンブリまたはサテライトアセンブリに埋め込まれます。詳細については、「VisualStudioのリソースファイル」セクションを参照してください。

于 2012-08-27T18:47:57.200 に答える