为多语言合并模块创作语言转换

将模块合并到具有不同默认语言的数据库时,合并工具可能需要对模块应用语言转换以提供最终语言。 有关详细信息,请参阅多语言合并模块

语言转换存储在模块的 .msm 文件中,必须具有如下名称和格式:MergeModule.Lang####。 #### 表示最终语言的 LANGID(最多四位数)。 例如,MergeModule.Lang1033、MergeModule.Lang9 和 MergeModule.Lang0 将转换为美国英语、世界英语和非特定语言。 这些与嵌入转换相同,你可以将它们添加到 .msm 文件中的子存储。

语言转换应执行以下操作:

  • ModuleSignature 表 的 Language 列中的默认语言更改为模块的新语言。
  • ModuleComponents 表 的 Language 列中的默认语言更改为模块的新语言。 转换可能会在此表中添加或移除行。
  • 如有必要,可在 RequiredLanguage 列中更改语言,或者在 ModuleDependency 表中添加或删除行。
  • 如有必要,可在 ExcludedLanguage 列中更改语言,或者在 ModuleExclusion 表中添加或删除行。
  • 转换可以对模块执行任何有效的转换操作,包括添加或移除组件、文件、注册表项或操作。

请注意,在打开模块时应用语言转换不会更改默认语言或模块支持的语言,只会更改正在请求的语言。 因此,Template Summary 属性不会更改,应该已列出模块支持的所有语言,并首先列出默认语言。

所有可能的语言转换所需的所有文件通常存储在模块附带的单个文件柜文件中。 由于让语言转换修改此文件柜文件不切实际,因此最好在文件柜文件、File 表和语言转换中使用全局文件序列。 有关详细信息,请参阅在多语言合并模块的 CAB 中对文件序列进行排序