#windows #powershell #command-line #chocolatey #lcid
#Windows #powershell #командная строка #chocolatey #lcid
Вопрос:
При создании пакета для chocolatey установка завершается неудачно, поскольку программа установки запрашивает выбор языка: окно с запросом языка пользователя для установки.
Итак, я попытался, как описано на этой странице, получить пользовательский language ( get-culture
) и добавить его в аргументы установки, вызвав переменную ( $locale
):
$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$locale = "/L=" (Get-Culture).LCID
$packageArgs = @{
packageName = 'PNAME'
unzipLocation = $toolsDir
file = "PNAME32bit.exe"
file64 = "PNAME64bit.exe"
fileType = 'EXE'
silentArgs = '/S $locale'
softwareName = 'PNAME*'
validExitCodes= @(0)
}
Install-ChocolateyInstallPackage @packageArgs
Remove-Item $toolsDir*.exe -ea 0 -force
К сожалению, никаких изменений, это окно по-прежнему отображается.
Поэтому мой вопрос: как указать во время установки язык пользователя, чтобы это учитывалось установщиком?
Заранее благодарим вас за помощь!
Комментарии:
1. Но это не проблема PowerShell или проблема с кодом PowerShell, хотя вы используете PowerShell для выполнения этой установки. Вы ограничены тем, что позволяют ваши упаковочные решения, в вашем случае choco. Интернационализация и локализация пакетов
2. Спасибо за ваш ответ! Действительно, извините за неопределенность моего вопроса. Я видел эту ссылку и попытался использовать параметр LCID, к сожалению, он не дал мне решения.
Ответ №1:
Если программа установки не позволяет указать язык во время установки, у вас есть два варианта:
- Используйте такой инструмент, как AutoHotkey, для автоматического нажатия на язык (хороший пример см. В пакете Veracrypt).;
- Оберните установщик в MSI, чтобы затем вы могли автоматически выбирать язык (вам, вероятно, придется создавать MSI для каждого языка);
Первый из них относительно тривиален, но может быть немного запутанным (автозапуск будет выполняться в фоновом режиме, определять окно, выбирать правильный язык и т. Д.). Также может возникнуть беспорядок, когда вам нужно начать «щелкать» на правильном языке. Второй метод был бы предпочтительным, поскольку он менее запутанный, но потребует некоторого времени работы с установщиком.
Идеальное решение, конечно, либо найти правильный параметр для передачи установщику, ЛИБО заставить поставщика добавить такой параметр.
Комментарии:
1. Спасибо за ваш ответ! Я попробую второе решение. Есть ли у вас учебное пособие по переносу установщика в MSI с выбором языков? Заранее спасибо!