安装的Windows应用程序是否可以本地化显示名称?
如果是,我假设更改了此应用程序的DisplayName
注册表项中存储的内容。我问,因为如果您尝试获取UninstallString
,我对您如何查询可能已本地化的名称感兴趣。
安装程序是否有可查询的可能显示名称列表或给定应用程序的任何其他唯一ID?
答案 0 :(得分:0)
如果不知道自己要做什么,就不清楚如何回答这个问题。基于MSI的安装通常通过以(例如)英语进行基本安装进行本地化,然后使用MSI编辑器(例如Orca)创建转换。您可以更改ProductName以及UI中的所有内容。使用该转换(.mst文件),您可以使用包含TRANSFORMS = [mst文件的路径]的命令行进行安装,并且可以看到本地化的UI,ProductName等。
如果您想了解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,因为(例如)法语中的翻译毫无意义,英语在该名称下可以在全世界范围内识别。