我有一个简单的原生 Visual C++ 程序,它使用 .mui 文件来实现资源本地化。如果我在 SetThreadPreferredUILanguages 中请求 fr-fr,Windows 会在 fr-fr 子目录中找到我的 prog.exe.mui 文件,并正常使用它。但是,如果我只请求 fr(无语言环境),尽管 Windows 看到资源文件(由 GetFileMUIPath 验证),但它拒绝使用它,并使用最终的后备语言。如果我请求 fr-ca,并且只有 fr 可用,它会拒绝使用它。
“es”也会发生这种情况,我想象任何“中性语言”。它确实适用于“vi”,所以它不是一个两个字母的问题,但我认为这是因为 vi 是一个实际的语言环境,而不是一种中性语言。这在 Windows 7 和 Windows 8 下都会发生。
在准备 .mui 文件、资源或调用 SetThreadPreferredUILanguages 时,我应该做些什么不同于其他 4 字母规范?这太基本了......我错过了什么?