【问题标题】:Can an installed application's Programs and Features display name be localized?已安装应用程序的程序和功能显示名称是否可以本地化?
【发布时间】:2016-08-20 03:10:04
【问题描述】:

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

如果是,我假设这会更改此应用程序的 DisplayName 注册表项中存储的内容。我之所以问,是因为我对如果您尝试获取 UninstallString 时如何查询可能本地化的名称感兴趣。

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

【问题讨论】:

    标签: windows windows-installer uninstallstring


    【解决方案1】:

    在不知道您要做什么的情况下,不清楚如何回答这个问题。基于 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,因为(比如说)法语的翻译没有意义,而且英语在该名称下在全世界都可以识别。

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多