При установке через wine, есть предложение выбора языка, но ни одного нет
Насколько я помню, язык там запрашивается через что-то типа vbscript. Который, возможно, не работает в winexp.
При запуске через wine98 выбор языка отображается. Думаю это связано с багой #3774
Багу 3774 решить скорее всего не удастся, поэтому надо найти другой способ получения языка. Для начала надо найти то место в msi, где этот язык запрашивается. Пробовал запускать не .exe а .msi со включенным логом. Лог получается слишком краткий Со сторонней msi.dll не запускается. А если бы запускалось, то вряд ли бы там было получение языка при помощи vbscript.
при запуске через wine98 был получен лог. К языку относится: Action 17:18:04: CustomSetup. Dialog created Action start 17:18:05: customSelectLangFeatures. Action ended 17:18:05: customSelectLangFeatures. Return value 0. Action start 17:18:05: customFillDefLangsList. Action ended 17:18:05: customFillDefLangsList. Return value 0. Используя программу Orca можно посмотреть, что действию customFillDefLangsList соответствует определённый код (прикреплю отдельным файлом)
Created attachment 1129 [details] Код, соответствующий действию customFillDefLangsList
Как выяснилось, кон написан на VisualBasic, и видимо, проблема не внутри кода, а в самом выполнении этого кода CustomAction имеет тип 38. (Выполнение VbScript). Обрабатывается функцией HANDLE_CustomType37_38, которая вызывает do_msidbCustomActionTypeScript
далее создаётся поток, в итоге выполняется call_script, которая используя интерфейсы из mshtml, выполняет скрипт: hr = IActiveScript_QueryInterface(pActiveScript, &IID_IActiveScriptParse, (void **)&pActiveScriptParse); hr = IActiveScript_AddNamedItem(pActiveScript, szSession, SCRIPTITEM_ISVISIBLE); и др.,
Ещё хотелось бы отметить, что причины ошибки другая, чем в баге #3774. В баге #3774 при установке WINDOWS_VERSION="win98" vbScript прекрасно работал. Сдесь же отличий при изменении версии windows нет. Кажется причина где-то сдесь: fixme:msi:AutomationObject_GetIDsOfNames Unknown member L"FeatureInfo", clsid {000c109e-0000-0000-c000-000000000046} err:msi:MsiActiveScriptSite_OnScriptError script error: L"Object doesn't support this property or method: 'Session.FeatureInfo'" Если посмотреть в msiserver.idl, можно увидеть, что интерфейс Session действительно не имеет свойства/метода FeatureInfo. Можно посмотреть стороннюю msi.dll с помощью oleview. Там интерфейс Session имеет метод FeatureInfo. Кроме FeatureInfo, в Session отсутствуют и многие другие методы. В msiserver.idl объявлен интерфейс FeatureInfo. Возможно удастся его добавить в Session
Добавил в .idl соответствующий код. Ситуация немного изменилась: fixme:msi:AutomationObject_Invoke Method 22, L"FeatureInfo" wflags 3 not implemented, clsid {000c109e-0000-0000-c000-000000000046} err:msi:MsiActiveScriptSite_OnScriptError script error: L"Object doesn't support this property or method: 'Session.FeatureInfo'" Во-первых е все методы и переменные FeatureInfo объявлены. Ещё никак не могу найти места, где эти методы должны быть реализованы. Посмотрел другие, соседние интерфейсы - их реализации так же не нашёл.
В описание FeatureInfo добавил свойство Attributes. Остались неописанными методы Title и Description. Но где их взять - я не знаю. Внутри msi.dll их нет (и не должно быть)
Пока решили выпустить релиз кандидат с рекомендацией устанавливать wine98.
А разве отсутствие языка мешало установке? Пустой список был, это да, но сама установка корректна ведь?
Снимаю с багфикса, нет обоснования необходимости выбора языка.
проверил на eterhack 1.1.37. Бага осталась
Проверил в eterhack 1.3.3 и в wwo. Поведение идентичное: Теперь там не пустое поле, а поле с одним пунктом "Системные установки". В eter-1.0.12 по-прежнему пустое поле. Можно попробовать поискать откуда берётся строка "Системные установки" возможно бага будет где-то рядом
Откладываем, bugs@ в ближайшее время делать ничего не будет.
Надо проверить, может быть уже работает?
При установке можно выбрать "дополнительный интерфейс"-"язык". Некий список отображается,можно выбрать хоть все одновременно или не выбирать ни одного, все равно установится русский интерфейс.В конфигураторе в параметрах можно выбрать любой язык,все равно 1с запустится на русском.
wine@eter-2 bottle bugs/3773 WINE@Etersoft SQL 2.0.2-eter16/4
Нет необходимости решать.
Задача по релизу W@E 2.0 Уже давно не актуально, закрываю.