已安装的 Windows 应用程序是否可以本地化显示名称?
如果是,我假设这会更改DisplayName
此应用程序的注册表项中存储的内容。我之所以问,是因为我对如果您尝试获取UninstallString
.
对于给定的应用程序,安装程序是否有可能的显示名称或任何其他唯一 ID 的可查询列表?
已安装的 Windows 应用程序是否可以本地化显示名称?
如果是,我假设这会更改DisplayName
此应用程序的注册表项中存储的内容。我之所以问,是因为我对如果您尝试获取UninstallString
.
对于给定的应用程序,安装程序是否有可能的显示名称或任何其他唯一 ID 的可查询列表?
在不知道您要做什么的情况下,尚不清楚如何回答这个问题。基于 MSI 的安装通常通过以(例如)英语进行基本安装进行本地化,然后您使用 MSI 编辑器(例如 Orca)创建转换。您可以更改产品名称以及 UI 中的所有内容。使用该转换(一个 .mst 文件),您可以使用包含 TRANSFORMS=[path to mst file] 的命令行进行安装,并且您会看到本地化的 UI、ProductName 等。
如果您想知道 ProductName(或有关已安装产品的任何其他信息),您可以执行 MsiGetProductInfo 或等效操作:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370130(v=vs.85).aspx
并询问名称、版本、安装的语言或其他)。有一个枚举 MSI 安装产品的 MsiEnumProducts API。
没有人使用 UninstallString 进行 MSI 卸载(如果您删除或更改它仍然卸载)。您只需调用 MsiConfigureProduct:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370070(v=vs.85).aspx
并让它缺席。
某些安装不使用 MSI 进行安装 - 在这些情况下,卸载字符串可能对某些东西有用。他们如何进行本地化取决于用于创建设置的工具 - 有时他们在文件中有字符串资源。
说了这么多,在许多情况下,ProductName 从未本地化,因为它是一个可识别的品牌和公司名称。我怀疑(使用您的示例)Flash Player 可能总是被称为 Flash Player,因为(比如说)法语的翻译没有意义,而英语在该名称下在全世界都可以识别。