Создание пакета Chocolatey: как выбрать язык для автоматической установки

#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:

Если программа установки не позволяет указать язык во время установки, у вас есть два варианта:

  1. Используйте такой инструмент, как AutoHotkey, для автоматического нажатия на язык (хороший пример см. В пакете Veracrypt).;
  2. Оберните установщик в MSI, чтобы затем вы могли автоматически выбирать язык (вам, вероятно, придется создавать MSI для каждого языка);

Первый из них относительно тривиален, но может быть немного запутанным (автозапуск будет выполняться в фоновом режиме, определять окно, выбирать правильный язык и т. Д.). Также может возникнуть беспорядок, когда вам нужно начать «щелкать» на правильном языке. Второй метод был бы предпочтительным, поскольку он менее запутанный, но потребует некоторого времени работы с установщиком.

Идеальное решение, конечно, либо найти правильный параметр для передачи установщику, ЛИБО заставить поставщика добавить такой параметр.

Комментарии:

1. Спасибо за ваш ответ! Я попробую второе решение. Есть ли у вас учебное пособие по переносу установщика в MSI с выбором языков? Заранее спасибо!