搭配多語言使用者介面使用元件
如果您想要讓應用程式或核心 DLL 的使用者能夠變更使用者介面的語言,您應該考慮將語言資源放入個別的附屬資源 DLL 中。 如需使用附屬資源 DLL 的詳細資訊,請參閱 多語言使用者介面 (MUI) 。
每個附屬 DLL 都包含不同語言的資源。 核心 DLL 可做為元件提供,而且每個附屬 DLL 都可以以個別附屬元件的形式提供。 在此情況下,每個附屬元件都應該有自己的自我描述元件資訊清單。 附屬元件的資訊清單不應該描述其他元件的任何相依性。 在核心元件的資訊清單中,應該改為描述其他元件上附屬元件的任何相依性。
多 語言使用者介面 (MUI) 版本的 Windows 可讓使用者根據其喜好設定指定使用者介面語言,前提是必要的語言已新增至系統。 核心元件可以使用多個 MUI 元件來支援多種語言。 在此情況下,每個 MUI 元件都應該有自己的資訊清單,而其他元件的任何相依性應該只會在核心元件的資訊清單中描述。
例如,Proseware.Sample.Pop 可能是與 Proseware.Research.SampleAssembly 元件相依的核心並存元件。 如果 Proseware.Sample.Pop 使用 MUI 來支援多種語言,則可以為每個語言提供個別的 MUI 元件。 每個 MUI 元件都應該有自己的資訊清單,描述這個特定的附屬資源 DLL。 MUI 元件資訊清單不應包含其他元件上相依性的任何參考。 描述 Proseware.Sample.Pop 核心元件的資訊清單應該描述 Proseware.Sample.Pop 在 Proseware.Research.SampleAssembly 元件上的相依性。
附屬元件的 assemblyIdentity 元素屬性類似于基底元件資訊清單中的屬性。 name屬性應該與基底元件相同,並加上 「Resources」。例如,如果名稱在基底元件中為 「Proseware.Tools.SpellCheck.Runtime-Library」,則資源元件中的名稱會是 「Proseware.Tools.SpellCheck.Runtime-Library.Resources」。語言屬性應該識別資源元件的語言。 檔案屬性應該包含資源 DLL 的檔案清單。
以下是 Proseware.Tools.SpellCheck.Runtime-Library 資源元件的資訊清單範例。
<?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>