创建国际 INF 文件

为国际市场创建安装需要提供特定于区域设置的 INF 文件,并可能提供特定于区域设置的驱动程序文件。

将在国际市场中使用的 INF 文件应对所有用户可查看的文本使用 %strkey% 令牌。 字符串在 INF Strings 节中定义,该节通常位于 INF 文件的末尾。

Locale-Specific INF 文件

可以创建支持多个区域设置的单个 INF 文件,也可以按照以下准则为每个区域设置创建单独的 INF 文件:

  • 若要创建单个国际 INF 文件,应包含一组特定于区域设置 的字符串。LanguageID 节,如 INF 字符串部分的参考页中所述。 如果打算为所有国际市场提供单个安装介质,请使用此方法。

    对于 Windows 2000 及更高版本的 Windows 上安装,这是支持国际市场的推荐方法。

  • 若要为每个区域设置创建单独的 INF 文件,请从包含除 String 节以外的所有必需部分和条目的 main INF 文件开始。 然后创建第二组文件,其中每个文件仅包含受支持区域设置 的 Strings 部分。 将 main 文件与每个字符串文件连接,以生成特定于区域设置的 INF 文件。

    对于 Windows 2000 及更高版本的 Windows 上的安装,仅当打算为每个国际市场提供单独的安装介质时, 使用此方法。 不能在单个安装介质上为特定操作系统版本提供多个版本的 INF 文件,因为 Windows 无法确定要使用哪个 INF 文件。

驱动程序文件的Locale-Specific版本

如果必须为 Windows 2000 和更高版本的 Windows 提供特定于区域设置的驱动程序文件版本,请使用其区域设置标记每个文件的每个版本。 请务必将非特定于区域设置的文件标记为非特定语言。 为此,可将以下宏定义添加到资源文件:

#define VER_LANGNEUTRAL

此定义必须出现在包含 common.ver 的预处理器指令之前。

编译文件后,可以通过执行以下操作来验证每个文件是否标记为中性语言:

  1. 在 Windows 资源管理器中右键单击该文件。

  2. 单击 “属性”

  3. 单击“ 版本 ”选项卡。

其他版本信息”窗格中的“语言”选择包含一个值,该值将文件标识为“中性语言”或“特定区域设置”。

将特定于区域设置的文件放在分发媒体的特定于区域设置的单独子目录中,例如 /English 和 /German。 在 INF 文件中,执行以下操作:

  • INF SourceDisksFiles 部分中,使用字符串密钥标记(如 %LocaleSubDir%)指定特定于区域设置的子目录。

  • 为每种语言提供单独的 INF 字符串部分 ,并在每个部分定义相应的子目录名称字符串。

例如:

[SourceDisksNames]
1=%DiskName%,,,%LocaleSubDir%

[SourceDisksFiles]
mysftwre.exe=1

[Strings]              ; No language ID implies English
DiskName="My Excellent Software"
LocaleSubDir="English"
[Strings.0407]         ; 0407 is the language ID for German
DiskName="Meine ausgezeichnete Software"
LocaleSubDir="German"

创建 Unicode INF 文件

如果 INF 文件包含的字符不在 ASCII 范围 (即 0-127) 范围之外,则 INF 文件应采用 Unicode (UTF-16) 格式。 创建 Unicode INF 文件的一种方法是使用记事本等应用程序将其保存为 Unicode (UTF-16) 格式。 如果 INF 不是 Unicode (UTF-16) 格式,Windows 将使用当前区域设置来转换字符。 如果 INF 文件采用 Unicode (UTF-16) 格式,则 Windows 将使用完整的 Unicode 字符集。

某些应用程序(如记事本)允许以 little-endian 或 big-endian 格式创建 Unicode (UTF-16) 文件。 Windows 支持使用任一格式的 INF 文件。