Share via


多言語ユーザー インターフェイスでのアセンブリの使用

アプリケーションまたはコア DLL のユーザーがユーザー インターフェイスの言語を変更できるようにする場合は、言語リソースを別のサテライト リソース DLL に配置することを検討する必要があります。 サテライト リソース DLL の使用の詳細については、「 多言語ユーザー インターフェイス (MUI)」を参照してください。

各サテライト DLL には、異なる言語のリソースが含まれています。 コア DLL はアセンブリとして提供され、各サテライト DLL は個別のサテライト アセンブリとして提供される場合があります。 この場合、各サテライト アセンブリには、独自の自己記述型アセンブリ マニフェストが必要です。 サテライト アセンブリのマニフェストでは、他のアセンブリへの依存関係を記述しないでください。 サテライト アセンブリが他のアセンブリに依存している場合は、代わりにコア アセンブリのマニフェストで説明する必要があります。

Multilanguage User Interface (MUI) バージョンの Windows を使用すると、必要な言語がシステムに追加されていれば、ユーザーはユーザー インターフェイスの言語を設定に従って指定できます。 コア アセンブリでは、複数の MUI アセンブリを使用して複数の言語をサポートできます。 この場合、各 MUI アセンブリには独自のマニフェストが必要であり、他のアセンブリへの依存関係は、コア アセンブリのマニフェストでのみ記述する必要があります。

たとえば、Proseware.Sample.Pop は、Proseware.Research.SampleAssembly アセンブリに依存するコア サイド バイ サイド アセンブリである可能性があります。 Proseware.Sample.Pop で MUI を使用して複数の言語をサポートしている場合は、言語ごとに個別の MUI アセンブリを指定できます。 各 MUI アセンブリには、この特定のサテライト リソース DLL を記述する独自のマニフェストが必要です。 MUI アセンブリ マニフェストには、他のアセンブリへの依存関係への参照を含めてはなりません。 コア アセンブリ Proseware.Sample.Pop を記述するマニフェストでは、Proseware.Research.SampleAssembly アセンブリ上の Proseware.Sample.Pop の依存関係を記述する必要があります。

サテライト アセンブリの assemblyIdentity 要素の属性は、基本アセンブリのマニフェストの属性と似ています。 name 属性は、"Resources" を追加した基本アセンブリと同じである必要があります。たとえば、基本アセンブリの名前が "Proseware.Tools.SpellCheck.Runtime-Libraries" の場合、リソース アセンブリ内の名前は "Proseware.Tools.SpellCheck.Runtime-Libraries.Resources" になります。language 属性は、リソース アセンブリの言語を識別する必要があります。 file 属性には、リソース DLL であるファイルの一覧を含める必要があります。

Proseware.Tools.SpellCheck.Runtime-Libraries リソース アセンブリのマニフェストの例を次に示します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        type="win32"
        name="Proseware.Tools.SpellCheck.Runtime-Libraries.Resources"
        version="6.0.0.0"
        processorArchitecture="X86"
        language="DE"
        publicKeyToken="0000000000000000"
    />
    <file name="sample.dll"/>
</assembly>

基本アセンブリは、リソース アセンブリに対するオプションの依存関係を記述します。 この例では、ユーザーがドイツ語として指定されたロケールで Windows を実行している場合、Proseware.Tools.SpellCheck アセンブリを使用するアプリケーションはドイツ語でテキストを表示します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity type="win32" 
    name="Proseware.Tools.SpellCheck.Runtime-Libraries"
    version="6.0.0.0" processorArchitecture="x86"
    publicKeyToken="0000000000000000"/>
    <dependency optional="yes">
        <dependentAssembly>
            <assemblyIdentity type="win32" 
                              name="Proseware.Tools.SpellCheck.Runtime-Libraries.Resources" 
                              version="6.0.0.0" 
                              processorArchitecture="x86" 
                              publicKeyToken="0000000000000000" 
                              language="*"
            />
        </dependentAssembly>
    </dependency>