可以本地化已安装应用程序的程序和功能显示名称吗?

Can an installed application's Programs and Features display name be localized?

已安装的 Windows 应用程序是否可以本地化显示名称?

如果是,我假设更改了此应用程序 DisplayName 注册表项中存储的内容。我之所以问,是因为我对在尝试获取 UninstallString.

时如何查询可能已本地化的名称感兴趣

安装程序是否具有给定应用程序的可能显示名称或任何其他唯一 ID 的可查询列表?

在不知道您要做什么的情况下,不清楚如何回答这个问题。基于 MSI 的安装通常通过(比如说)英语的基本安装进行本地化,然后您使用 MSI 编辑器(例如 Orca)创建转换。您可以更改 ProductName 以及 UI 中的所有内容。使用该转换(.mst 文件),您使用包含 TRANSFORMS=[mst 文件的路径] 的命令行进行安装,您会看到本地化的 UI、ProductName 等

如果您想知道产品名称(或有关已安装产品的任何其他信息),您可以执行 MsiGetProductInfo 或等效操作:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370130(v=vs.85).aspx

并询问名称、版本、安装的语言或其他)。有一个 MsiEnumProducts API 枚举了 MSI 安装的产品。

没有人使用 UninstallString 进行 MSI 卸载(如果您删除或更改它仍然会卸载)。您只需调用 MsiConfigureProduct:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370070(v=vs.85).aspx

并使其不存在。

有些安装不使用 MSI 进行安装 - 在这些情况下,uninstallstring 可能会有用。他们如何进行本地化取决于用于创建设置的工具——有时他们在文件中有字符串资源。

话虽如此,在许多情况下,ProductName 从未本地化,因为它是一个可识别的品牌和公司名称。我怀疑(使用你的例子)Flash Player 可能总是被称为 Flash Player,因为(比如说)法语的翻译没有意义,而英语在这个名字下是全世界都能识别的。