Можно ли локализовать отображаемое имя "Программы и компоненты" установленного приложения?

Может ли установленное приложение Windows локализовать отображаемое имя?

Если да, я предполагаю, что это меняет то, что хранится в DisplayName ключ реестра для этого приложения. Я спрашиваю, потому что мне интересно, как бы вы запросили потенциально локализованное имя, если вы пытаетесь получить UninstallString,

Будет ли установщик иметь запрашиваемый список возможных отображаемых имен или любой другой уникальный идентификатор для данного приложения?

1 ответ

Не зная, что вы пытаетесь сделать, не понятно, как на это ответить. Установки на основе MSI, как правило, локализуются с помощью базовой установки (скажем, на английском языке), а затем вы создаете преобразование с помощью редактора MSI (например, Orca). Вы можете изменить ProductName и все в пользовательском интерфейсе. С этим преобразованием (файл.mst) вы устанавливаете с командной строкой, которая включает TRANSFORMS=[путь к файлу mst], и вы видите локализованный пользовательский интерфейс, ProductName и т. Д.

Если вы хотите знать ProductName (или что-либо еще об установленном продукте), вы должны сделать MsiGetProductInfo или аналогичный:

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

и спросите имя, версию, установленный язык или что-то еще). Существует API-интерфейс MsiEnumProducts, который перечисляет продукты, установленные MSI.

Никто не использует UninstallString для удаления MSI (если вы удаляете или изменяете его, он все еще удаляется). Вы просто звоните MsiConfigureProduct:

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

и сделать это отсутствующим.

Некоторые установки не используют MSI для установки - в таких случаях строка удаления может быть полезна для чего-либо. То, как они выполняют локализацию, зависит от инструмента, используемого для создания установки - иногда они имеют строковые ресурсы в файлах.

Сказав все это, во многих случаях ProductName никогда не локализуется, потому что это узнаваемый бренд и название компании. Я подозреваю, что (используя ваш пример) Flash Player всегда можно назвать Flash Player, потому что перевод на (скажем) на французский не имеет смысла, и английский язык узнаваем во всем мире под этим именем.

Другие вопросы по тегам