diff --git a/dll/win32/msi/action.c b/dll/win32/msi/action.c index cd1be045722..8c17f3b5123 100644 --- a/dll/win32/msi/action.c +++ b/dll/win32/msi/action.c @@ -140,49 +140,56 @@ static const WCHAR szValidateProductID[] = static const WCHAR szWriteEnvironmentStrings[] = {'W','r','i','t','e','E','n','v','i','r','o','n','m','e','n','t','S','t','r','i','n','g','s',0}; -static void ui_actionstart(MSIPACKAGE *package, LPCWSTR action) +struct dummy_thread { - static const WCHAR Query_t[] = - {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', - '`','A','c','t','i','o', 'n','T','e','x','t','`',' ', - 'W','H','E','R','E', ' ','`','A','c','t','i','o','n','`',' ','=', - ' ','\'','%','s','\'',0}; - MSIRECORD * row; + HANDLE started; + HANDLE stopped; + HANDLE thread; +}; - row = MSI_QueryGetRecord( package->db, Query_t, action ); - if (!row) - return; - MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONSTART, row); +static INT ui_actionstart(MSIPACKAGE *package, LPCWSTR action, LPCWSTR description, LPCWSTR template) +{ + WCHAR query[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', + '`','A','c','t','i','o','n','T','e','x','t','`',' ','W','H','E','R','E',' ', + '`','A','c','t','i','o','n','`',' ','=',' ','\'','%','s','\'',0}; + MSIRECORD *row, *textrow; + INT rc; + + textrow = MSI_QueryGetRecord(package->db, query, action); + if (textrow) + { + description = MSI_RecordGetString(textrow, 2); + template = MSI_RecordGetString(textrow, 3); + } + + row = MSI_CreateRecord(3); + if (!row) return -1; + MSI_RecordSetStringW(row, 1, action); + MSI_RecordSetStringW(row, 2, description); + MSI_RecordSetStringW(row, 3, template); + rc = MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONSTART, row); + if (textrow) msiobj_release(&textrow->hdr); msiobj_release(&row->hdr); + return rc; } static void ui_actioninfo(MSIPACKAGE *package, LPCWSTR action, BOOL start, - UINT rc) + INT rc) { - MSIRECORD * row; - static const WCHAR template_s[]= - {'A','c','t','i','o','n',' ','s','t','a','r','t',' ','%','s',':',' ', - '%','s', '.',0}; - static const WCHAR template_e[]= - {'A','c','t','i','o','n',' ','e','n','d','e','d',' ','%','s',':',' ', - '%','s', '.',' ','R','e','t','u','r','n',' ','v','a','l','u','e',' ', - '%','i','.',0}; - static const WCHAR format[] = - {'H','H','\'',':','\'','m','m','\'',':','\'','s','s',0}; - WCHAR message[1024]; - WCHAR timet[0x100]; + MSIRECORD *row; + WCHAR *template; - GetTimeFormatW(LOCALE_USER_DEFAULT, 0, NULL, format, timet, 0x100); - if (start) - sprintfW(message,template_s,timet,action); - else - sprintfW(message,template_e,timet,action,rc); - - row = MSI_CreateRecord(1); - MSI_RecordSetStringW(row,1,message); - + template = msi_get_error_message(package->db, start ? MSIERR_INFO_ACTIONSTART : MSIERR_INFO_ACTIONENDED); + + row = MSI_CreateRecord(2); + if (!row) return; + MSI_RecordSetStringW(row, 0, template); + MSI_RecordSetStringW(row, 1, action); + MSI_RecordSetInteger(row, 2, start ? package->LastActionResult : rc); MSI_ProcessMessage(package, INSTALLMESSAGE_INFO, row); msiobj_release(&row->hdr); + msi_free(template); + if (!start) package->LastActionResult = rc; } enum parse_state @@ -493,9 +500,6 @@ static UINT ITERATE_Actions(MSIRECORD *row, LPVOID param) msi_dialog_check_messages( NULL ); - if (package->CurrentInstallState != ERROR_SUCCESS) - rc = package->CurrentInstallState; - if (rc == ERROR_FUNCTION_NOT_CALLED) rc = ERROR_SUCCESS; @@ -601,18 +605,42 @@ static UINT ACTION_ProcessUISequence(MSIPACKAGE *package) /******************************************************** * ACTION helper functions and functions that perform the actions *******************************************************/ -static BOOL ACTION_HandleCustomAction( MSIPACKAGE *package, LPCWSTR action, UINT *rc, UINT script ) +static UINT ACTION_HandleCustomAction(MSIPACKAGE *package, LPCWSTR action, UINT script) { - BOOL ret=FALSE; UINT arc; + INT uirc; + uirc = ui_actionstart(package, action, NULL, NULL); + if (uirc == IDCANCEL) + return ERROR_INSTALL_USEREXIT; + ui_actioninfo(package, action, TRUE, 0); arc = ACTION_CustomAction( package, action, script ); - if (arc != ERROR_CALL_NOT_IMPLEMENTED) + uirc = !arc; + + if (arc == ERROR_FUNCTION_NOT_CALLED && needs_ui_sequence(package)) { - *rc = arc; - ret = TRUE; + uirc = ACTION_ShowDialog(package, action); + switch (uirc) + { + case -1: + return ERROR_SUCCESS; /* stop immediately */ + case 0: arc = ERROR_FUNCTION_NOT_CALLED; break; + case 1: arc = ERROR_SUCCESS; break; + case 2: arc = ERROR_INSTALL_USEREXIT; break; + case 3: arc = ERROR_INSTALL_FAILURE; break; + case 4: arc = ERROR_INSTALL_SUSPEND; break; + case 5: arc = ERROR_MORE_DATA; break; + case 6: arc = ERROR_INVALID_HANDLE_STATE; break; + case 7: arc = ERROR_INVALID_DATA; break; + case 8: arc = ERROR_INSTALL_ALREADY_RUNNING; break; + case 9: arc = ERROR_INSTALL_PACKAGE_REJECTED; break; + default: arc = ERROR_FUNCTION_FAILED; break; + } } - return ret; + + ui_actioninfo(package, action, FALSE, uirc); + + return arc; } MSICOMPONENT *msi_get_loaded_component( MSIPACKAGE *package, const WCHAR *Component ) @@ -718,41 +746,6 @@ void msi_ui_progress( MSIPACKAGE *package, int a, int b, int c, int d ) msi_dialog_check_messages( NULL ); } -void msi_ui_actiondata( MSIPACKAGE *package, const WCHAR *action, MSIRECORD *record ) -{ - static const WCHAR query[] = - {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', - '`','A','c','t','i','o', 'n','T','e','x','t','`',' ', - 'W','H','E','R','E',' ', '`','A','c','t','i','o','n','`',' ','=',' ','\'','%','s','\'',0}; - WCHAR message[1024]; - MSIRECORD *row = 0; - DWORD size; - - if (!package->LastAction || strcmpW( package->LastAction, action )) - { - if (!(row = MSI_QueryGetRecord( package->db, query, action ))) return; - - if (MSI_RecordIsNull( row, 3 )) - { - msiobj_release( &row->hdr ); - return; - } - /* update the cached action format */ - msi_free( package->ActionFormat ); - package->ActionFormat = msi_dup_record_field( row, 3 ); - msi_free( package->LastAction ); - package->LastAction = strdupW( action ); - msiobj_release( &row->hdr ); - } - size = 1024; - MSI_RecordSetStringW( record, 0, package->ActionFormat ); - MSI_FormatRecordW( package, record, message, &size ); - row = MSI_CreateRecord( 1 ); - MSI_RecordSetStringW( row, 1, message ); - MSI_ProcessMessage( package, INSTALLMESSAGE_ACTIONDATA, row ); - msiobj_release( &row->hdr ); -} - INSTALLSTATE msi_get_component_action( MSIPACKAGE *package, MSICOMPONENT *comp ) { if (!comp->Enabled) @@ -807,7 +800,7 @@ static UINT ITERATE_CreateFolders(MSIRECORD *row, LPVOID param) uirow = MSI_CreateRecord(1); MSI_RecordSetStringW(uirow, 1, dir); - msi_ui_actiondata(package, szCreateFolders, uirow); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release(&uirow->hdr); full_path = msi_get_target_folder( package, dir ); @@ -895,7 +888,7 @@ static UINT ITERATE_RemoveFolders( MSIRECORD *row, LPVOID param ) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, dir ); - msi_ui_actiondata( package, szRemoveFolders, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); folder = msi_get_loaded_folder( package, dir ); @@ -1551,7 +1544,7 @@ static UINT ACTION_CostInitialize(MSIPACKAGE *package) static UINT execute_script_action( MSIPACKAGE *package, UINT script, UINT index ) { const WCHAR *action = package->script->Actions[script][index]; - ui_actionstart( package, action ); + ui_actionstart( package, action, NULL, NULL ); TRACE("executing %s\n", debugstr_w(action)); return ACTION_PerformAction( package, action, script ); } @@ -2956,7 +2949,7 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param) MSI_RecordSetStringW(uirow,1,uikey); if (type == REG_SZ || type == REG_EXPAND_SZ) MSI_RecordSetStringW(uirow, 3, (LPWSTR)new_value); - msi_ui_actiondata( package, szWriteRegistryValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(new_value); @@ -3110,7 +3103,7 @@ static UINT ITERATE_RemoveRegistryValuesOnUninstall( MSIRECORD *row, LPVOID para uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, ui_key_str ); MSI_RecordSetStringW( uirow, 2, deformated_name ); - msi_ui_actiondata( package, szRemoveRegistryValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( ui_key_str ); @@ -3173,7 +3166,7 @@ static UINT ITERATE_RemoveRegistryValuesOnInstall( MSIRECORD *row, LPVOID param uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, ui_key_str ); MSI_RecordSetStringW( uirow, 2, deformated_name ); - msi_ui_actiondata( package, szRemoveRegistryValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( ui_key_str ); @@ -3632,7 +3625,7 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package) MSI_RecordSetStringW(uirow,1,package->ProductCode); MSI_RecordSetStringW(uirow,2,comp->ComponentId); MSI_RecordSetStringW(uirow,3,comp->FullKeypath); - msi_ui_actiondata( package, szProcessComponents, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -3726,7 +3719,7 @@ static UINT ITERATE_RegisterTypeLibraries(MSIRECORD *row, LPVOID param) TRACE("component has no key path\n"); return ERROR_SUCCESS; } - msi_ui_actiondata( package, szRegisterTypeLibraries, row ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, row); module = LoadLibraryExW( file->TargetPath, NULL, LOAD_LIBRARY_AS_DATAFILE ); if (module) @@ -3817,7 +3810,7 @@ static UINT ITERATE_UnregisterTypeLibraries( MSIRECORD *row, LPVOID param ) TRACE("component not scheduled for removal %s\n", debugstr_w(component)); return ERROR_SUCCESS; } - msi_ui_actiondata( package, szUnregisterTypeLibraries, row ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, row); guid = MSI_RecordGetString( row, 1 ); CLSIDFromString( guid, &libid ); @@ -3931,7 +3924,7 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param) TRACE("component not scheduled for installation %s\n", debugstr_w(component)); return ERROR_SUCCESS; } - msi_ui_actiondata( package, szCreateShortcuts, row ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, row); res = CoCreateInstance( &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, &IID_IShellLinkW, (LPVOID *) &sl ); @@ -4062,7 +4055,7 @@ static UINT ITERATE_RemoveShortcuts( MSIRECORD *row, LPVOID param ) TRACE("component not scheduled for removal %s\n", debugstr_w(component)); return ERROR_SUCCESS; } - msi_ui_actiondata( package, szRemoveShortcuts, row ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, row); link_file = get_link_file( package, row ); @@ -4493,7 +4486,7 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package) end: uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, package->ProductCode ); - msi_ui_actiondata( package, szPublishProduct, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); RegCloseKey(hukey); @@ -4599,7 +4592,7 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param) MSI_RecordSetStringW(uirow,2,deformated_section); MSI_RecordSetStringW(uirow,3,deformated_key); MSI_RecordSetStringW(uirow,4,deformated_value); - msi_ui_actiondata( package, szWriteIniValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(fullname); @@ -4679,7 +4672,7 @@ static UINT ITERATE_RemoveIniValuesOnUninstall( MSIRECORD *row, LPVOID param ) MSI_RecordSetStringW( uirow, 2, deformated_section ); MSI_RecordSetStringW( uirow, 3, deformated_key ); MSI_RecordSetStringW( uirow, 4, deformated_value ); - msi_ui_actiondata( package, szRemoveIniValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( deformated_key ); @@ -4740,7 +4733,7 @@ static UINT ITERATE_RemoveIniValuesOnInstall( MSIRECORD *row, LPVOID param ) MSI_RecordSetStringW( uirow, 2, deformated_section ); MSI_RecordSetStringW( uirow, 3, deformated_key ); MSI_RecordSetStringW( uirow, 4, deformated_value ); - msi_ui_actiondata( package, szRemoveIniValues, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( deformated_key ); @@ -4781,17 +4774,10 @@ static UINT ACTION_RemoveIniValues( MSIPACKAGE *package ) static void register_dll( const WCHAR *dll, BOOL unregister ) { -#ifdef __REACTOS__ - static const WCHAR regW[] = - {'r','e','g','s','v','r','3','2','.','e','x','e',' ','/','s',' ','\"','%','s','\"',0}; - static const WCHAR unregW[] = - {'r','e','g','s','v','r','3','2','.','e','x','e',' ','/','s',' ','/','u',' ','\"','%','s','\"',0}; -#else /* __REACTOS__ */ static const WCHAR regW[] = {'r','e','g','s','v','r','3','2','.','e','x','e',' ','\"','%','s','\"',0}; static const WCHAR unregW[] = {'r','e','g','s','v','r','3','2','.','e','x','e',' ','/','u',' ','\"','%','s','\"',0}; -#endif /* __REACTOS__ */ PROCESS_INFORMATION pi; STARTUPINFOW si; WCHAR *cmd; @@ -4838,7 +4824,7 @@ static UINT ITERATE_SelfRegModules(MSIRECORD *row, LPVOID param) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, file->File ); MSI_RecordSetStringW( uirow, 2, file->Component->Directory ); - msi_ui_actiondata( package, szSelfRegModules, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -4888,7 +4874,7 @@ static UINT ITERATE_SelfUnregModules( MSIRECORD *row, LPVOID param ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, file->File ); MSI_RecordSetStringW( uirow, 2, file->Component->Directory ); - msi_ui_actiondata( package, szSelfUnregModules, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -5008,7 +4994,7 @@ static UINT ACTION_PublishFeatures(MSIPACKAGE *package) /* the UI chunk */ uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, feature->Feature ); - msi_ui_actiondata( package, szPublishFeatures, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); /* FIXME: call msi_ui_progress? */ } @@ -5045,7 +5031,7 @@ static UINT msi_unpublish_feature(MSIPACKAGE *package, MSIFEATURE *feature) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, feature->Feature ); - msi_ui_actiondata( package, szUnpublishFeatures, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -5245,7 +5231,7 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package) done: uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, package->ProductCode ); - msi_ui_actiondata( package, szRegisterProduct, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); RegCloseKey(hkey); @@ -5456,43 +5442,6 @@ UINT ACTION_ForceReboot(MSIPACKAGE *package) return ERROR_INSTALL_SUSPEND; } -WCHAR *msi_build_error_string( MSIPACKAGE *package, UINT error, DWORD count, ... ) -{ - static const WCHAR query[] = - {'S','E','L','E','C','T',' ','`','M','e','s','s','a','g','e','`',' ', - 'F','R','O','M',' ','`','E','r','r','o','r','`',' ','W','H','E','R','E',' ', - '`','E','r','r','o','r','`',' ','=',' ','%','i',0}; - MSIRECORD *rec, *row; - DWORD i, size = 0; - va_list va; - const WCHAR *str; - WCHAR *data; - - if (!(row = MSI_QueryGetRecord( package->db, query, error ))) return 0; - - rec = MSI_CreateRecord( count + 2 ); - str = MSI_RecordGetString( row, 1 ); - MSI_RecordSetStringW( rec, 0, str ); - msiobj_release( &row->hdr ); - MSI_RecordSetInteger( rec, 1, error ); - - va_start( va, count ); - for (i = 0; i < count; i++) - { - str = va_arg( va, const WCHAR *); - MSI_RecordSetStringW( rec, i + 2, str ); - } - va_end( va ); - - MSI_FormatRecordW( package, rec, NULL, &size ); - size++; - data = msi_alloc( size * sizeof(WCHAR) ); - if (size > 1) MSI_FormatRecordW( package, rec, data, &size ); - else data[0] = 0; - msiobj_release( &rec->hdr ); - return data; -} - static UINT ACTION_ResolveSource(MSIPACKAGE* package) { DWORD attrib; @@ -5510,7 +5459,8 @@ static UINT ACTION_ResolveSource(MSIPACKAGE* package) attrib = GetFileAttributesW(package->db->path); if (attrib == INVALID_FILE_ATTRIBUTES) { - LPWSTR prompt, msg; + MSIRECORD *record; + LPWSTR prompt; DWORD size = 0; rc = MsiSourceListGetInfoW(package->ProductCode, NULL, @@ -5526,19 +5476,18 @@ static UINT ACTION_ResolveSource(MSIPACKAGE* package) else prompt = strdupW(package->db->path); - msg = msi_build_error_string(package, 1302, 1, prompt); + record = MSI_CreateRecord(2); + MSI_RecordSetInteger(record, 1, MSIERR_INSERTDISK); + MSI_RecordSetStringW(record, 2, prompt); msi_free(prompt); while(attrib == INVALID_FILE_ATTRIBUTES) { - rc = MessageBoxW(NULL, msg, NULL, MB_OKCANCEL); + MSI_RecordSetStringW(record, 0, NULL); + rc = MSI_ProcessMessage(package, INSTALLMESSAGE_ERROR, record); if (rc == IDCANCEL) - { - msi_free(msg); return ERROR_INSTALL_USEREXIT; - } attrib = GetFileAttributesW(package->db->path); } - msi_free(msg); rc = ERROR_SUCCESS; } else @@ -5595,7 +5544,7 @@ static UINT ACTION_RegisterUser(MSIPACKAGE *package) end: uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, productid ); - msi_ui_actiondata( package, szRegisterUser, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(productid); @@ -5735,7 +5684,7 @@ end: uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, compgroupid ); MSI_RecordSetStringW( uirow, 2, qualifier); - msi_ui_actiondata( package, szPublishComponents, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); /* FIXME: call ui_progress? */ @@ -5812,7 +5761,7 @@ static UINT ITERATE_UnpublishComponent( MSIRECORD *rec, LPVOID param ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, compgroupid ); MSI_RecordSetStringW( uirow, 2, qualifier ); - msi_ui_actiondata( package, szUnpublishComponents, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -6124,7 +6073,7 @@ done: uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, display_name ); MSI_RecordSetStringW( uirow, 2, name ); - msi_ui_actiondata( package, szStartServices, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); if (service) CloseServiceHandle(service); @@ -6292,7 +6241,7 @@ done: uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, display_name ); MSI_RecordSetStringW( uirow, 2, name ); - msi_ui_actiondata( package, szStopServices, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( name ); @@ -6372,7 +6321,7 @@ done: uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, display_name ); MSI_RecordSetStringW( uirow, 2, name ); - msi_ui_actiondata( package, szDeleteServices, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); if (service) CloseServiceHandle( service ); @@ -6490,7 +6439,7 @@ static UINT ITERATE_InstallODBCDriver( MSIRECORD *rec, LPVOID param ) MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); MSI_RecordSetStringW( uirow, 3, driver_file->Component->Directory ); - msi_ui_actiondata( package, szInstallODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(driver); @@ -6578,7 +6527,7 @@ static UINT ITERATE_InstallODBCTranslator( MSIRECORD *rec, LPVOID param ) MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); MSI_RecordSetStringW( uirow, 3, translator_file->Component->Directory ); - msi_ui_actiondata( package, szInstallODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(translator); @@ -6639,7 +6588,7 @@ static UINT ITERATE_InstallODBCDataSource( MSIRECORD *rec, LPVOID param ) MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); MSI_RecordSetInteger( uirow, 3, request ); - msi_ui_actiondata( package, szInstallODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(attrs); @@ -6721,7 +6670,7 @@ static UINT ITERATE_RemoveODBCDriver( MSIRECORD *rec, LPVOID param ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); - msi_ui_actiondata( package, szRemoveODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -6760,7 +6709,7 @@ static UINT ITERATE_RemoveODBCTranslator( MSIRECORD *rec, LPVOID param ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); - msi_ui_actiondata( package, szRemoveODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -6819,7 +6768,7 @@ static UINT ITERATE_RemoveODBCDataSource( MSIRECORD *rec, LPVOID param ) MSI_RecordSetStringW( uirow, 1, desc ); MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); MSI_RecordSetInteger( uirow, 3, request ); - msi_ui_actiondata( package, szRemoveODBC, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -7167,7 +7116,7 @@ done: MSI_RecordSetStringW( uirow, 1, name ); MSI_RecordSetStringW( uirow, 2, newval ); MSI_RecordSetInteger( uirow, 3, action ); - msi_ui_actiondata( package, szWriteEnvironmentStrings, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); if (env) RegCloseKey(env); @@ -7310,7 +7259,7 @@ done: MSI_RecordSetStringW( uirow, 1, name ); MSI_RecordSetStringW( uirow, 2, value ); MSI_RecordSetInteger( uirow, 3, action ); - msi_ui_actiondata( package, szRemoveEnvironmentStrings, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); if (env) RegCloseKey( env ); @@ -7382,7 +7331,7 @@ static UINT ACTION_AllocateRegistrySpace( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetInteger( uirow, 1, space ); - msi_ui_actiondata( package, szAllocateRegistrySpace, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return ERROR_SUCCESS; @@ -7681,93 +7630,95 @@ static UINT ACTION_InstallSFPCatalogFile( MSIPACKAGE *package ) static const struct { const WCHAR *action; + const UINT description; + const UINT template; UINT (*handler)(MSIPACKAGE *); const WCHAR *action_rollback; } StandardActions[] = { - { szAllocateRegistrySpace, ACTION_AllocateRegistrySpace, NULL }, - { szAppSearch, ACTION_AppSearch, NULL }, - { szBindImage, ACTION_BindImage, NULL }, - { szCCPSearch, ACTION_CCPSearch, NULL }, - { szCostFinalize, ACTION_CostFinalize, NULL }, - { szCostInitialize, ACTION_CostInitialize, NULL }, - { szCreateFolders, ACTION_CreateFolders, szRemoveFolders }, - { szCreateShortcuts, ACTION_CreateShortcuts, szRemoveShortcuts }, - { szDeleteServices, ACTION_DeleteServices, szInstallServices }, - { szDisableRollback, ACTION_DisableRollback, NULL }, - { szDuplicateFiles, ACTION_DuplicateFiles, szRemoveDuplicateFiles }, - { szExecuteAction, ACTION_ExecuteAction, NULL }, - { szFileCost, ACTION_FileCost, NULL }, - { szFindRelatedProducts, ACTION_FindRelatedProducts, NULL }, - { szForceReboot, ACTION_ForceReboot, NULL }, - { szInstallAdminPackage, ACTION_InstallAdminPackage, NULL }, - { szInstallExecute, ACTION_InstallExecute, NULL }, - { szInstallExecuteAgain, ACTION_InstallExecute, NULL }, - { szInstallFiles, ACTION_InstallFiles, szRemoveFiles }, - { szInstallFinalize, ACTION_InstallFinalize, NULL }, - { szInstallInitialize, ACTION_InstallInitialize, NULL }, - { szInstallODBC, ACTION_InstallODBC, szRemoveODBC }, - { szInstallServices, ACTION_InstallServices, szDeleteServices }, - { szInstallSFPCatalogFile, ACTION_InstallSFPCatalogFile, NULL }, - { szInstallValidate, ACTION_InstallValidate, NULL }, - { szIsolateComponents, ACTION_IsolateComponents, NULL }, - { szLaunchConditions, ACTION_LaunchConditions, NULL }, - { szMigrateFeatureStates, ACTION_MigrateFeatureStates, NULL }, - { szMoveFiles, ACTION_MoveFiles, NULL }, - { szMsiPublishAssemblies, ACTION_MsiPublishAssemblies, szMsiUnpublishAssemblies }, - { szMsiUnpublishAssemblies, ACTION_MsiUnpublishAssemblies, szMsiPublishAssemblies }, - { szPatchFiles, ACTION_PatchFiles, NULL }, - { szProcessComponents, ACTION_ProcessComponents, szProcessComponents }, - { szPublishComponents, ACTION_PublishComponents, szUnpublishComponents }, - { szPublishFeatures, ACTION_PublishFeatures, szUnpublishFeatures }, - { szPublishProduct, ACTION_PublishProduct, szUnpublishProduct }, - { szRegisterClassInfo, ACTION_RegisterClassInfo, szUnregisterClassInfo }, - { szRegisterComPlus, ACTION_RegisterComPlus, szUnregisterComPlus }, - { szRegisterExtensionInfo, ACTION_RegisterExtensionInfo, szUnregisterExtensionInfo }, - { szRegisterFonts, ACTION_RegisterFonts, szUnregisterFonts }, - { szRegisterMIMEInfo, ACTION_RegisterMIMEInfo, szUnregisterMIMEInfo }, - { szRegisterProduct, ACTION_RegisterProduct, NULL }, - { szRegisterProgIdInfo, ACTION_RegisterProgIdInfo, szUnregisterProgIdInfo }, - { szRegisterTypeLibraries, ACTION_RegisterTypeLibraries, szUnregisterTypeLibraries }, - { szRegisterUser, ACTION_RegisterUser, NULL }, - { szRemoveDuplicateFiles, ACTION_RemoveDuplicateFiles, szDuplicateFiles }, - { szRemoveEnvironmentStrings, ACTION_RemoveEnvironmentStrings, szWriteEnvironmentStrings }, - { szRemoveExistingProducts, ACTION_RemoveExistingProducts, NULL }, - { szRemoveFiles, ACTION_RemoveFiles, szInstallFiles }, - { szRemoveFolders, ACTION_RemoveFolders, szCreateFolders }, - { szRemoveIniValues, ACTION_RemoveIniValues, szWriteIniValues }, - { szRemoveODBC, ACTION_RemoveODBC, szInstallODBC }, - { szRemoveRegistryValues, ACTION_RemoveRegistryValues, szWriteRegistryValues }, - { szRemoveShortcuts, ACTION_RemoveShortcuts, szCreateShortcuts }, - { szResolveSource, ACTION_ResolveSource, NULL }, - { szRMCCPSearch, ACTION_RMCCPSearch, NULL }, - { szScheduleReboot, ACTION_ScheduleReboot, NULL }, - { szSelfRegModules, ACTION_SelfRegModules, szSelfUnregModules }, - { szSelfUnregModules, ACTION_SelfUnregModules, szSelfRegModules }, - { szSetODBCFolders, ACTION_SetODBCFolders, NULL }, - { szStartServices, ACTION_StartServices, szStopServices }, - { szStopServices, ACTION_StopServices, szStartServices }, - { szUnpublishComponents, ACTION_UnpublishComponents, szPublishComponents }, - { szUnpublishFeatures, ACTION_UnpublishFeatures, szPublishFeatures }, - { szUnpublishProduct, ACTION_UnpublishProduct, NULL }, /* for rollback only */ - { szUnregisterClassInfo, ACTION_UnregisterClassInfo, szRegisterClassInfo }, - { szUnregisterComPlus, ACTION_UnregisterComPlus, szRegisterComPlus }, - { szUnregisterExtensionInfo, ACTION_UnregisterExtensionInfo, szRegisterExtensionInfo }, - { szUnregisterFonts, ACTION_UnregisterFonts, szRegisterFonts }, - { szUnregisterMIMEInfo, ACTION_UnregisterMIMEInfo, szRegisterMIMEInfo }, - { szUnregisterProgIdInfo, ACTION_UnregisterProgIdInfo, szRegisterProgIdInfo }, - { szUnregisterTypeLibraries, ACTION_UnregisterTypeLibraries, szRegisterTypeLibraries }, - { szValidateProductID, ACTION_ValidateProductID, NULL }, - { szWriteEnvironmentStrings, ACTION_WriteEnvironmentStrings, szRemoveEnvironmentStrings }, - { szWriteIniValues, ACTION_WriteIniValues, szRemoveIniValues }, - { szWriteRegistryValues, ACTION_WriteRegistryValues, szRemoveRegistryValues }, - { NULL, NULL, NULL } + { szAllocateRegistrySpace, IDS_DESC_ALLOCATEREGISTRYSPACE, IDS_TEMP_ALLOCATEREGISTRYSPACE, ACTION_AllocateRegistrySpace, NULL }, + { szAppSearch, IDS_DESC_APPSEARCH, IDS_TEMP_APPSEARCH, ACTION_AppSearch, NULL }, + { szBindImage, IDS_DESC_BINDIMAGE, IDS_TEMP_BINDIMAGE, ACTION_BindImage, NULL }, + { szCCPSearch, IDS_DESC_CCPSEARCH, 0, ACTION_CCPSearch, NULL }, + { szCostFinalize, IDS_DESC_COSTFINALIZE, 0, ACTION_CostFinalize, NULL }, + { szCostInitialize, IDS_DESC_COSTINITIALIZE, 0, ACTION_CostInitialize, NULL }, + { szCreateFolders, IDS_DESC_CREATEFOLDERS, IDS_TEMP_CREATEFOLDERS, ACTION_CreateFolders, szRemoveFolders }, + { szCreateShortcuts, IDS_DESC_CREATESHORTCUTS, IDS_TEMP_CREATESHORTCUTS, ACTION_CreateShortcuts, szRemoveShortcuts }, + { szDeleteServices, IDS_DESC_DELETESERVICES, IDS_TEMP_DELETESERVICES, ACTION_DeleteServices, szInstallServices }, + { szDisableRollback, 0, 0, ACTION_DisableRollback, NULL }, + { szDuplicateFiles, IDS_DESC_DUPLICATEFILES, IDS_TEMP_DUPLICATEFILES, ACTION_DuplicateFiles, szRemoveDuplicateFiles }, + { szExecuteAction, 0, 0, ACTION_ExecuteAction, NULL }, + { szFileCost, IDS_DESC_FILECOST, 0, ACTION_FileCost, NULL }, + { szFindRelatedProducts, IDS_DESC_FINDRELATEDPRODUCTS, IDS_TEMP_FINDRELATEDPRODUCTS, ACTION_FindRelatedProducts, NULL }, + { szForceReboot, 0, 0, ACTION_ForceReboot, NULL }, + { szInstallAdminPackage, IDS_DESC_INSTALLADMINPACKAGE, IDS_TEMP_INSTALLADMINPACKAGE, ACTION_InstallAdminPackage, NULL }, + { szInstallExecute, 0, 0, ACTION_InstallExecute, NULL }, + { szInstallExecuteAgain, 0, 0, ACTION_InstallExecute, NULL }, + { szInstallFiles, IDS_DESC_INSTALLFILES, IDS_TEMP_INSTALLFILES, ACTION_InstallFiles, szRemoveFiles }, + { szInstallFinalize, 0, 0, ACTION_InstallFinalize, NULL }, + { szInstallInitialize, 0, 0, ACTION_InstallInitialize, NULL }, + { szInstallODBC, IDS_DESC_INSTALLODBC, 0, ACTION_InstallODBC, szRemoveODBC }, + { szInstallServices, IDS_DESC_INSTALLSERVICES, IDS_TEMP_INSTALLSERVICES, ACTION_InstallServices, szDeleteServices }, + { szInstallSFPCatalogFile, IDS_DESC_INSTALLSFPCATALOGFILE, IDS_TEMP_INSTALLSFPCATALOGFILE, ACTION_InstallSFPCatalogFile, NULL }, + { szInstallValidate, IDS_DESC_INSTALLVALIDATE, 0, ACTION_InstallValidate, NULL }, + { szIsolateComponents, 0, 0, ACTION_IsolateComponents, NULL }, + { szLaunchConditions, IDS_DESC_LAUNCHCONDITIONS, 0, ACTION_LaunchConditions, NULL }, + { szMigrateFeatureStates, IDS_DESC_MIGRATEFEATURESTATES, IDS_TEMP_MIGRATEFEATURESTATES, ACTION_MigrateFeatureStates, NULL }, + { szMoveFiles, IDS_DESC_MOVEFILES, IDS_TEMP_MOVEFILES, ACTION_MoveFiles, NULL }, + { szMsiPublishAssemblies, IDS_DESC_MSIPUBLISHASSEMBLIES, IDS_TEMP_MSIPUBLISHASSEMBLIES, ACTION_MsiPublishAssemblies, szMsiUnpublishAssemblies }, + { szMsiUnpublishAssemblies, IDS_DESC_MSIUNPUBLISHASSEMBLIES, IDS_TEMP_MSIUNPUBLISHASSEMBLIES, ACTION_MsiUnpublishAssemblies, szMsiPublishAssemblies }, + { szPatchFiles, IDS_DESC_PATCHFILES, IDS_TEMP_PATCHFILES, ACTION_PatchFiles, NULL }, + { szProcessComponents, IDS_DESC_PROCESSCOMPONENTS, 0, ACTION_ProcessComponents, szProcessComponents }, + { szPublishComponents, IDS_DESC_PUBLISHCOMPONENTS, IDS_TEMP_PUBLISHCOMPONENTS, ACTION_PublishComponents, szUnpublishComponents }, + { szPublishFeatures, IDS_DESC_PUBLISHFEATURES, IDS_TEMP_PUBLISHFEATURES, ACTION_PublishFeatures, szUnpublishFeatures }, + { szPublishProduct, IDS_DESC_PUBLISHPRODUCT, 0, ACTION_PublishProduct, szUnpublishProduct }, + { szRegisterClassInfo, IDS_DESC_REGISTERCLASSINFO, IDS_TEMP_REGISTERCLASSINFO, ACTION_RegisterClassInfo, szUnregisterClassInfo }, + { szRegisterComPlus, IDS_DESC_REGISTERCOMPLUS, IDS_TEMP_REGISTERCOMPLUS, ACTION_RegisterComPlus, szUnregisterComPlus }, + { szRegisterExtensionInfo, IDS_DESC_REGISTEREXTENSIONINFO, 0, ACTION_RegisterExtensionInfo, szUnregisterExtensionInfo }, + { szRegisterFonts, IDS_DESC_REGISTERFONTS, IDS_TEMP_REGISTERFONTS, ACTION_RegisterFonts, szUnregisterFonts }, + { szRegisterMIMEInfo, IDS_DESC_REGISTERMIMEINFO, IDS_TEMP_REGISTERMIMEINFO, ACTION_RegisterMIMEInfo, szUnregisterMIMEInfo }, + { szRegisterProduct, IDS_DESC_REGISTERPRODUCT, 0, ACTION_RegisterProduct, NULL }, + { szRegisterProgIdInfo, IDS_DESC_REGISTERPROGIDINFO, IDS_TEMP_REGISTERPROGIDINFO, ACTION_RegisterProgIdInfo, szUnregisterProgIdInfo }, + { szRegisterTypeLibraries, IDS_DESC_REGISTERTYPELIBRARIES, IDS_TEMP_REGISTERTYPELIBRARIES, ACTION_RegisterTypeLibraries, szUnregisterTypeLibraries }, + { szRegisterUser, IDS_DESC_REGISTERUSER, 0, ACTION_RegisterUser, NULL }, + { szRemoveDuplicateFiles, IDS_DESC_REMOVEDUPLICATEFILES, IDS_TEMP_REMOVEDUPLICATEFILES, ACTION_RemoveDuplicateFiles, szDuplicateFiles }, + { szRemoveEnvironmentStrings, IDS_DESC_REMOVEENVIRONMENTSTRINGS, IDS_TEMP_REMOVEENVIRONMENTSTRINGS, ACTION_RemoveEnvironmentStrings, szWriteEnvironmentStrings }, + { szRemoveExistingProducts, IDS_DESC_REMOVEEXISTINGPRODUCTS, IDS_TEMP_REMOVEEXISTINGPRODUCTS, ACTION_RemoveExistingProducts, NULL }, + { szRemoveFiles, IDS_DESC_REMOVEFILES, IDS_TEMP_REMOVEFILES, ACTION_RemoveFiles, szInstallFiles }, + { szRemoveFolders, IDS_DESC_REMOVEFOLDERS, IDS_TEMP_REMOVEFOLDERS, ACTION_RemoveFolders, szCreateFolders }, + { szRemoveIniValues, IDS_DESC_REMOVEINIVALUES, IDS_TEMP_REMOVEINIVALUES, ACTION_RemoveIniValues, szWriteIniValues }, + { szRemoveODBC, IDS_DESC_REMOVEODBC, 0, ACTION_RemoveODBC, szInstallODBC }, + { szRemoveRegistryValues, IDS_DESC_REMOVEREGISTRYVALUES, IDS_TEMP_REMOVEREGISTRYVALUES, ACTION_RemoveRegistryValues, szWriteRegistryValues }, + { szRemoveShortcuts, IDS_DESC_REMOVESHORTCUTS, IDS_TEMP_REMOVESHORTCUTS, ACTION_RemoveShortcuts, szCreateShortcuts }, + { szResolveSource, 0, 0, ACTION_ResolveSource, NULL }, + { szRMCCPSearch, IDS_DESC_RMCCPSEARCH, 0, ACTION_RMCCPSearch, NULL }, + { szScheduleReboot, 0, 0, ACTION_ScheduleReboot, NULL }, + { szSelfRegModules, IDS_DESC_SELFREGMODULES, IDS_TEMP_SELFREGMODULES, ACTION_SelfRegModules, szSelfUnregModules }, + { szSelfUnregModules, IDS_DESC_SELFUNREGMODULES, IDS_TEMP_SELFUNREGMODULES, ACTION_SelfUnregModules, szSelfRegModules }, + { szSetODBCFolders, IDS_DESC_SETODBCFOLDERS, 0, ACTION_SetODBCFolders, NULL }, + { szStartServices, IDS_DESC_STARTSERVICES, IDS_TEMP_STARTSERVICES, ACTION_StartServices, szStopServices }, + { szStopServices, IDS_DESC_STOPSERVICES, IDS_TEMP_STOPSERVICES, ACTION_StopServices, szStartServices }, + { szUnpublishComponents, IDS_DESC_UNPUBLISHCOMPONENTS, IDS_TEMP_UNPUBLISHCOMPONENTS, ACTION_UnpublishComponents, szPublishComponents }, + { szUnpublishFeatures, IDS_DESC_UNPUBLISHFEATURES, IDS_TEMP_UNPUBLISHFEATURES, ACTION_UnpublishFeatures, szPublishFeatures }, + { szUnpublishProduct, IDS_DESC_UNPUBLISHPRODUCT, 0, ACTION_UnpublishProduct, NULL }, /* for rollback only */ + { szUnregisterClassInfo, IDS_DESC_UNREGISTERCLASSINFO, IDS_TEMP_UNREGISTERCLASSINFO, ACTION_UnregisterClassInfo, szRegisterClassInfo }, + { szUnregisterComPlus, IDS_DESC_UNREGISTERCOMPLUS, IDS_TEMP_UNREGISTERCOMPLUS, ACTION_UnregisterComPlus, szRegisterComPlus }, + { szUnregisterExtensionInfo, IDS_DESC_UNREGISTEREXTENSIONINFO, IDS_TEMP_UNREGISTEREXTENSIONINFO, ACTION_UnregisterExtensionInfo, szRegisterExtensionInfo }, + { szUnregisterFonts, IDS_DESC_UNREGISTERFONTS, IDS_TEMP_UNREGISTERFONTS, ACTION_UnregisterFonts, szRegisterFonts }, + { szUnregisterMIMEInfo, IDS_DESC_UNREGISTERMIMEINFO, IDS_TEMP_UNREGISTERMIMEINFO, ACTION_UnregisterMIMEInfo, szRegisterMIMEInfo }, + { szUnregisterProgIdInfo, IDS_DESC_UNREGISTERPROGIDINFO, IDS_TEMP_UNREGISTERPROGIDINFO, ACTION_UnregisterProgIdInfo, szRegisterProgIdInfo }, + { szUnregisterTypeLibraries, IDS_DESC_UNREGISTERTYPELIBRARIES, IDS_TEMP_UNREGISTERTYPELIBRARIES, ACTION_UnregisterTypeLibraries, szRegisterTypeLibraries }, + { szValidateProductID, 0, 0, ACTION_ValidateProductID, NULL }, + { szWriteEnvironmentStrings, IDS_DESC_WRITEENVIRONMENTSTRINGS, IDS_TEMP_WRITEENVIRONMENTSTRINGS, ACTION_WriteEnvironmentStrings, szRemoveEnvironmentStrings }, + { szWriteIniValues, IDS_DESC_WRITEINIVALUES, IDS_TEMP_WRITEINIVALUES, ACTION_WriteIniValues, szRemoveIniValues }, + { szWriteRegistryValues, IDS_DESC_WRITEREGISTRYVALUES, IDS_TEMP_WRITEREGISTRYVALUES, ACTION_WriteRegistryValues, szRemoveRegistryValues }, + { 0 } }; -static BOOL ACTION_HandleStandardAction( MSIPACKAGE *package, LPCWSTR action, UINT *rc ) +static UINT ACTION_HandleStandardAction(MSIPACKAGE *package, LPCWSTR action) { - BOOL ret = FALSE; + UINT rc = ERROR_FUNCTION_NOT_CALLED; UINT i; i = 0; @@ -7775,12 +7726,19 @@ static BOOL ACTION_HandleStandardAction( MSIPACKAGE *package, LPCWSTR action, UI { if (!strcmpW( StandardActions[i].action, action )) { - ui_actionstart( package, action ); + WCHAR description[100] = {0}, template[100] = {0}; + + if (StandardActions[i].description != 0) + LoadStringW(msi_hInstance, StandardActions[i].description, (LPWSTR)&description, 100); + if (StandardActions[i].template != 0) + LoadStringW(msi_hInstance, StandardActions[i].template, (LPWSTR)&template, 100); + + ui_actionstart(package, action, description, template); if (StandardActions[i].handler) { ui_actioninfo( package, action, TRUE, 0 ); - *rc = StandardActions[i].handler( package ); - ui_actioninfo( package, action, FALSE, *rc ); + rc = StandardActions[i].handler( package ); + ui_actioninfo( package, action, FALSE, !rc ); if (StandardActions[i].action_rollback && !package->need_rollback) { @@ -7791,58 +7749,46 @@ static BOOL ACTION_HandleStandardAction( MSIPACKAGE *package, LPCWSTR action, UI else { FIXME("unhandled standard action %s\n", debugstr_w(action)); - *rc = ERROR_SUCCESS; + rc = ERROR_SUCCESS; } - ret = TRUE; break; } i++; } - return ret; + return rc; } UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script) { - UINT rc = ERROR_SUCCESS; - BOOL handled; + UINT rc; TRACE("Performing action (%s)\n", debugstr_w(action)); - handled = ACTION_HandleStandardAction(package, action, &rc); + rc = ACTION_HandleStandardAction(package, action); - if (!handled) - handled = ACTION_HandleCustomAction(package, action, &rc, script); + if (rc == ERROR_FUNCTION_NOT_CALLED) + rc = ACTION_HandleCustomAction(package, action, script); - if (!handled) - { + if (rc == ERROR_FUNCTION_NOT_CALLED) WARN("unhandled msi action %s\n", debugstr_w(action)); - rc = ERROR_FUNCTION_NOT_CALLED; - } return rc; } UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action, UINT script) { - UINT rc = ERROR_SUCCESS; - BOOL handled = FALSE; + UINT rc; TRACE("Performing action (%s)\n", debugstr_w(action)); package->action_progress_increment = 0; - handled = ACTION_HandleStandardAction(package, action, &rc); + rc = ACTION_HandleStandardAction(package, action); - if (!handled) - handled = ACTION_HandleCustomAction(package, action, &rc, script); + if (rc == ERROR_FUNCTION_NOT_CALLED) + rc = ACTION_HandleCustomAction(package, action, script); - if( !handled && ACTION_DialogBox(package, action) == ERROR_SUCCESS ) - handled = TRUE; - - if (!handled) - { + if (rc == ERROR_FUNCTION_NOT_CALLED) WARN("unhandled msi action %s\n", debugstr_w(action)); - rc = ERROR_FUNCTION_NOT_CALLED; - } return rc; } @@ -7903,6 +7849,42 @@ static UINT ACTION_PerformActionSequence(MSIPACKAGE *package, UINT seq) return rc; } +DWORD WINAPI dummy_thread_proc(void *arg) +{ + struct dummy_thread *info = arg; + HRESULT hr; + + hr = CoInitializeEx(0, COINIT_MULTITHREADED); + if (FAILED(hr)) ERR("CoInitializeEx failed %08x\n", hr); + + SetEvent(info->started); + WaitForSingleObject(info->stopped, INFINITE); + + CoUninitialize(); + return 0; +} + +static void start_dummy_thread(struct dummy_thread *info) +{ + if (!(info->started = CreateEventA(NULL, TRUE, FALSE, NULL))) return; + if (!(info->stopped = CreateEventA(NULL, TRUE, FALSE, NULL))) return; + if (!(info->thread = CreateThread(NULL, 0, dummy_thread_proc, info, 0, NULL))) return; + + WaitForSingleObject(info->started, INFINITE); +} + +static void stop_dummy_thread(struct dummy_thread *info) +{ + if (info->thread) + { + SetEvent(info->stopped); + WaitForSingleObject(info->thread, INFINITE); + CloseHandle(info->thread); + } + if (info->started) CloseHandle(info->started); + if (info->stopped) CloseHandle(info->stopped); +} + /**************************************************** * TOP level entry points *****************************************************/ @@ -7914,6 +7896,7 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, static const WCHAR szAction[] = {'A','C','T','I','O','N',0}; static const WCHAR szInstall[] = {'I','N','S','T','A','L','L',0}; WCHAR *reinstall, *remove, *patch, *productcode; + struct dummy_thread thread_info = {NULL, NULL, NULL}; BOOL ui_exists; UINT rc; @@ -7979,6 +7962,8 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, msi_adjust_privilege_properties( package ); msi_set_context( package ); + start_dummy_thread(&thread_info); + productcode = msi_dup_property( package->db, szProductCode ); if (strcmpiW( productcode, package->ProductCode )) { @@ -8027,6 +8012,8 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, /* finish up running custom actions */ ACTION_FinishCustomActions(package); + stop_dummy_thread(&thread_info); + if (package->need_rollback && !reinstall) { WARN("installation failed, running rollback script\n"); diff --git a/dll/win32/msi/appsearch.c b/dll/win32/msi/appsearch.c index b38bf2781f9..e27fa74540f 100644 --- a/dll/win32/msi/appsearch.c +++ b/dll/win32/msi/appsearch.c @@ -1104,7 +1104,7 @@ static UINT iterate_appsearch(MSIRECORD *row, LPVOID param) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, propName ); MSI_RecordSetStringW( uirow, 2, sigName ); - msi_ui_actiondata( package, szAppSearch, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); return r; diff --git a/dll/win32/msi/assembly.c b/dll/win32/msi/assembly.c index 84026c29e09..c652b3040e5 100644 --- a/dll/win32/msi/assembly.c +++ b/dll/win32/msi/assembly.c @@ -698,7 +698,7 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 2, assembly->display_name ); - msi_ui_actiondata( package, szMsiPublishAssemblies, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -747,7 +747,7 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 2, assembly->display_name ); - msi_ui_actiondata( package, szMsiPublishAssemblies, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; diff --git a/dll/win32/msi/classes.c b/dll/win32/msi/classes.c index 1b138ebc5ba..9b5794fdf38 100644 --- a/dll/win32/msi/classes.c +++ b/dll/win32/msi/classes.c @@ -893,7 +893,7 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package) uirow = MSI_CreateRecord(1); MSI_RecordSetStringW( uirow, 1, cls->clsid ); - msi_ui_actiondata( package, szRegisterClassInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release(&uirow->hdr); } RegCloseKey(hkey); @@ -985,7 +985,7 @@ UINT ACTION_UnregisterClassInfo( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, cls->clsid ); - msi_ui_actiondata( package, szUnregisterClassInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } RegCloseKey( hkey ); @@ -1091,7 +1091,7 @@ UINT ACTION_RegisterProgIdInfo(MSIPACKAGE *package) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, progid->ProgID ); - msi_ui_actiondata( package, szRegisterProgIdInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -1154,7 +1154,7 @@ UINT ACTION_UnregisterProgIdInfo( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, progid->ProgID ); - msi_ui_actiondata( package, szUnregisterProgIdInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -1341,7 +1341,7 @@ UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package) uirow = MSI_CreateRecord(1); MSI_RecordSetStringW( uirow, 1, ext->Extension ); - msi_ui_actiondata( package, szRegisterExtensionInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release(&uirow->hdr); } return ERROR_SUCCESS; @@ -1424,7 +1424,7 @@ UINT ACTION_UnregisterExtensionInfo( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, ext->Extension ); - msi_ui_actiondata( package, szUnregisterExtensionInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -1479,7 +1479,7 @@ UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, mt->ContentType ); MSI_RecordSetStringW( uirow, 2, mt->suffix ); - msi_ui_actiondata( package, szRegisterMIMEInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; @@ -1523,7 +1523,7 @@ UINT ACTION_UnregisterMIMEInfo( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, mime->ContentType ); MSI_RecordSetStringW( uirow, 2, mime->suffix ); - msi_ui_actiondata( package, szUnregisterMIMEInfo, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } return ERROR_SUCCESS; diff --git a/dll/win32/msi/custom.c b/dll/win32/msi/custom.c index 565feecea62..3dffb8680a5 100644 --- a/dll/win32/msi/custom.c +++ b/dll/win32/msi/custom.c @@ -1203,7 +1203,7 @@ UINT ACTION_CustomAction( MSIPACKAGE *package, LPCWSTR action, UINT script ) row = MSI_QueryGetRecord( package->db, query, action ); if (!row) - return ERROR_CALL_NOT_IMPLEMENTED; + return ERROR_FUNCTION_NOT_CALLED; type = MSI_RecordGetInteger(row,2); source = MSI_RecordGetString(row,3); diff --git a/dll/win32/msi/database.c b/dll/win32/msi/database.c index b53762e7f4e..a94cebdbdfa 100644 --- a/dll/win32/msi/database.c +++ b/dll/win32/msi/database.c @@ -768,8 +768,11 @@ static UINT MSI_DatabaseImport(MSIDATABASE *db, LPCWSTR folder, LPCWSTR file) lstrcatW( path, file ); data = msi_read_text_archive( path, &len ); - if (data == NULL) - return ERROR_BAD_PATHNAME; + if (!data) + { + msi_free(path); + return ERROR_FUNCTION_FAILED; + } ptr = data; msi_parse_line( &ptr, &columns, &num_columns, &len ); @@ -1988,16 +1991,8 @@ MSIDBSTATE WINAPI MsiGetDatabaseState( MSIHANDLE handle ) db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE ); if( !db ) { - IWineMsiRemoteDatabase *remote_database; - - remote_database = (IWineMsiRemoteDatabase *)msi_get_remote( handle ); - if ( !remote_database ) - return MSIDBSTATE_ERROR; - - IWineMsiRemoteDatabase_Release( remote_database ); WARN("MsiGetDatabaseState not allowed during a custom action!\n"); - - return MSIDBSTATE_READ; + return MSIDBSTATE_ERROR; } if (db->mode != MSIDBOPEN_READONLY ) diff --git a/dll/win32/msi/dialog.c b/dll/win32/msi/dialog.c index bed62fe5d7f..8b62bb0a8f9 100644 --- a/dll/win32/msi/dialog.c +++ b/dll/win32/msi/dialog.c @@ -34,6 +34,7 @@ typedef struct msi_control_tag msi_control; typedef UINT (*msi_handler)( msi_dialog *, msi_control *, WPARAM ); typedef void (*msi_update)( msi_dialog *, msi_control * ); typedef UINT (*control_event_handler)( msi_dialog *, const WCHAR *, const WCHAR * ); +typedef UINT (*event_handler)( msi_dialog *, const WCHAR * ); struct msi_control_tag { @@ -79,6 +80,9 @@ struct msi_dialog_tag HWND hWndFocus; LPWSTR control_default; LPWSTR control_cancel; + event_handler pending_event; + LPWSTR pending_argument; + INT retval; WCHAR name[1]; }; @@ -972,6 +976,16 @@ static UINT msi_dialog_button_handler( msi_dialog *dialog, msi_control *control, } r = MSI_IterateRecords( view, 0, msi_dialog_control_event, dialog ); msiobj_release( &view->hdr ); + + /* dialog control events must be processed last regardless of ordering */ + if (dialog->pending_event) + { + r = dialog->pending_event( dialog, dialog->pending_argument ); + + msi_free( dialog->pending_argument ); + dialog->pending_event = NULL; + dialog->pending_argument = NULL; + } return r; } @@ -3884,6 +3898,8 @@ static BOOL dialog_register_class( void ) static msi_dialog *dialog_create( MSIPACKAGE *package, const WCHAR *name, msi_dialog *parent, control_event_handler event_handler ) { + static const WCHAR szDialogCreated[] = + {'D','i','a','l','o','g',' ','c','r','e','a','t','e','d',0}; MSIRECORD *rec = NULL; msi_dialog *dialog; @@ -3897,7 +3913,6 @@ static msi_dialog *dialog_create( MSIPACKAGE *package, const WCHAR *name, msi_di return NULL; strcpyW( dialog->name, name ); dialog->parent = parent; - msiobj_addref( &package->hdr ); dialog->package = package; dialog->event_handler = event_handler; dialog->finished = 0; @@ -3908,7 +3923,6 @@ static msi_dialog *dialog_create( MSIPACKAGE *package, const WCHAR *name, msi_di rec = msi_get_dialog_record( dialog ); if( !rec ) { - msiobj_release( &package->hdr ); msi_free( dialog ); return NULL; } @@ -3917,6 +3931,13 @@ static msi_dialog *dialog_create( MSIPACKAGE *package, const WCHAR *name, msi_di dialog->control_cancel = strdupW( MSI_RecordGetString( rec, 10 ) ); msiobj_release( &rec->hdr ); + rec = MSI_CreateRecord(2); + if (!rec) return NULL; + MSI_RecordSetStringW(rec, 1, name); + MSI_RecordSetStringW(rec, 2, szDialogCreated); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONSTART, rec); + msiobj_release(&rec->hdr); + return dialog; } @@ -4035,7 +4056,6 @@ void msi_dialog_destroy( msi_dialog *dialog ) msi_free( dialog->control_default ); msi_free( dialog->control_cancel ); - msiobj_release( &dialog->package->hdr ); dialog->package = NULL; msi_free( dialog ); } @@ -4061,109 +4081,6 @@ void msi_event_cleanup_all_subscriptions( MSIPACKAGE *package ) } } -static UINT error_dialog_handler( msi_dialog *dialog, const WCHAR *event, const WCHAR *argument ) -{ - static const WCHAR end_dialog[] = {'E','n','d','D','i','a','l','o','g',0}; - static const WCHAR error_abort[] = {'E','r','r','o','r','A','b','o','r','t',0}; - static const WCHAR error_cancel[] = {'E','r','r','o','r','C','a','n','c','e','l',0}; - static const WCHAR error_no[] = {'E','r','r','o','r','N','o',0}; - static const WCHAR result_prop[] = { - 'M','S','I','E','r','r','o','r','D','i','a','l','o','g','R','e','s','u','l','t',0 - }; - - if ( strcmpW( event, end_dialog ) ) - return ERROR_SUCCESS; - - if ( !strcmpW( argument, error_abort ) || !strcmpW( argument, error_cancel ) || - !strcmpW( argument, error_no ) ) - { - msi_set_property( dialog->package->db, result_prop, error_abort, -1 ); - } - - msi_event_cleanup_all_subscriptions( dialog->package ); - msi_dialog_end_dialog( dialog ); - - return ERROR_SUCCESS; -} - -static UINT msi_error_dialog_set_error( MSIPACKAGE *package, LPWSTR error_dialog, LPWSTR error ) -{ - MSIRECORD * row; - - static const WCHAR update[] = - {'U','P','D','A','T','E',' ','`','C','o','n','t','r','o','l','`',' ', - 'S','E','T',' ','`','T','e','x','t','`',' ','=',' ','\'','%','s','\'',' ', - 'W','H','E','R','E', ' ','`','D','i','a','l','o','g','_','`',' ','=',' ','\'','%','s','\'',' ', - 'A','N','D',' ','`','C','o','n','t','r','o','l','`',' ','=',' ', - '\'','E','r','r','o','r','T','e','x','t','\'',0}; - - row = MSI_QueryGetRecord( package->db, update, error, error_dialog ); - if (!row) - return ERROR_FUNCTION_FAILED; - - msiobj_release(&row->hdr); - return ERROR_SUCCESS; -} - -UINT msi_spawn_error_dialog( MSIPACKAGE *package, LPWSTR error_dialog, LPWSTR error ) -{ - msi_dialog *dialog; - WCHAR result[MAX_PATH]; - UINT r = ERROR_SUCCESS; - DWORD size = MAX_PATH; - int res; - - static const WCHAR pn_prop[] = {'P','r','o','d','u','c','t','N','a','m','e',0}; - static const WCHAR title_fmt[] = {'%','s',' ','W','a','r','n','i','n','g',0}; - static const WCHAR error_abort[] = {'E','r','r','o','r','A','b','o','r','t',0}; - static const WCHAR result_prop[] = { - 'M','S','I','E','r','r','o','r','D','i','a','l','o','g','R','e','s','u','l','t',0 - }; - - if ((package->ui_level & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE) return ERROR_SUCCESS; - - if ( !error_dialog ) - { - LPWSTR product_name = msi_dup_property( package->db, pn_prop ); - WCHAR title[MAX_PATH]; - - sprintfW( title, title_fmt, product_name ); - res = MessageBoxW( NULL, error, title, MB_OKCANCEL | MB_ICONWARNING ); - - msi_free( product_name ); - - if ( res == IDOK ) - return ERROR_SUCCESS; - else - return ERROR_FUNCTION_FAILED; - } - - r = msi_error_dialog_set_error( package, error_dialog, error ); - if ( r != ERROR_SUCCESS ) - return r; - - dialog = dialog_create( package, error_dialog, package->dialog, error_dialog_handler ); - if ( !dialog ) - return ERROR_FUNCTION_FAILED; - - dialog->finished = FALSE; - r = dialog_run_message_loop( dialog ); - if ( r != ERROR_SUCCESS ) - goto done; - - r = msi_get_property( package->db, result_prop, result, &size ); - if ( r != ERROR_SUCCESS) - r = ERROR_SUCCESS; - - if ( !strcmpW( result, error_abort ) ) - r = ERROR_FUNCTION_FAILED; - -done: - msi_dialog_destroy( dialog ); - - return r; -} - static void MSI_ClosePreview( MSIOBJECTHDR *arg ) { MSIPREVIEW *preview = (MSIPREVIEW *)arg; @@ -4299,8 +4216,6 @@ UINT WINAPI MsiPreviewBillboardA( MSIHANDLE hPreview, LPCSTR szControlName, LPCS return ERROR_CALL_NOT_IMPLEMENTED; } -typedef UINT (*event_handler)( msi_dialog *, const WCHAR * ); - struct control_event { const WCHAR *event; @@ -4310,10 +4225,11 @@ struct control_event static UINT dialog_event_handler( msi_dialog *, const WCHAR *, const WCHAR * ); /* create a dialog box and run it if it's modal */ -static UINT event_do_dialog( MSIPACKAGE *package, const WCHAR *name, msi_dialog *parent, BOOL destroy_modeless ) +static INT event_do_dialog( MSIPACKAGE *package, const WCHAR *name, msi_dialog *parent, BOOL destroy_modeless ) { msi_dialog *dialog; UINT r; + INT retval; /* create a new dialog */ dialog = dialog_create( package, name, parent, dialog_event_handler ); @@ -4329,12 +4245,18 @@ static UINT event_do_dialog( MSIPACKAGE *package, const WCHAR *name, msi_dialog /* modeless dialogs return an error message */ r = dialog_run_message_loop( dialog ); if (r == ERROR_SUCCESS) + { + retval = dialog->retval; msi_dialog_destroy( dialog ); + return retval; + } else + { package->dialog = dialog; + return IDOK; + } } - else r = ERROR_FUNCTION_FAILED; - return r; + else return 0; } /* end a modal dialog box */ @@ -4346,28 +4268,31 @@ static UINT event_end_dialog( msi_dialog *dialog, const WCHAR *argument ) static const WCHAR returnW[] = {'R','e','t','u','r','n',0}; if (!strcmpW( argument, exitW )) - dialog->package->CurrentInstallState = ERROR_INSTALL_USEREXIT; + dialog->retval = IDCANCEL; else if (!strcmpW( argument, retryW )) - dialog->package->CurrentInstallState = ERROR_INSTALL_SUSPEND; + dialog->retval = IDRETRY; else if (!strcmpW( argument, ignoreW )) - dialog->package->CurrentInstallState = ERROR_SUCCESS; + dialog->retval = IDOK; else if (!strcmpW( argument, returnW )) - { - msi_dialog *parent = dialog->parent; - msi_free( dialog->package->next_dialog ); - dialog->package->next_dialog = (parent) ? strdupW( parent->name ) : NULL; - dialog->package->CurrentInstallState = ERROR_SUCCESS; - } + dialog->retval = 0; else { ERR("Unknown argument string %s\n", debugstr_w(argument)); - dialog->package->CurrentInstallState = ERROR_FUNCTION_FAILED; + dialog->retval = IDABORT; } event_cleanup_subscriptions( dialog->package, dialog->name ); msi_dialog_end_dialog( dialog ); return ERROR_SUCCESS; } +static UINT pending_event_end_dialog( msi_dialog *dialog, const WCHAR *argument ) +{ + dialog->pending_event = event_end_dialog; + if (dialog->pending_argument) msi_free( dialog->pending_argument ); + dialog->pending_argument = strdupW( argument ); + return ERROR_SUCCESS; +} + /* transition from one modal dialog to another modal dialog */ static UINT event_new_dialog( msi_dialog *dialog, const WCHAR *argument ) { @@ -4378,19 +4303,39 @@ static UINT event_new_dialog( msi_dialog *dialog, const WCHAR *argument ) return ERROR_SUCCESS; } +static UINT pending_event_new_dialog( msi_dialog *dialog, const WCHAR *argument ) +{ + dialog->pending_event = event_new_dialog; + if (dialog->pending_argument) msi_free( dialog->pending_argument ); + dialog->pending_argument = strdupW( argument ); + return ERROR_SUCCESS; +} + /* create a new child dialog of an existing modal dialog */ static UINT event_spawn_dialog( msi_dialog *dialog, const WCHAR *argument ) { + INT r; /* don't destroy a modeless dialogs that might be our parent */ - event_do_dialog( dialog->package, argument, dialog, FALSE ); - if (dialog->package->CurrentInstallState != ERROR_SUCCESS) + r = event_do_dialog( dialog->package, argument, dialog, FALSE ); + if (r != 0) + { + dialog->retval = r; msi_dialog_end_dialog( dialog ); + } else msi_dialog_update_all_controls(dialog); return ERROR_SUCCESS; } +static UINT pending_event_spawn_dialog( msi_dialog *dialog, const WCHAR *argument ) +{ + dialog->pending_event = event_spawn_dialog; + if (dialog->pending_argument) msi_free( dialog->pending_argument ); + dialog->pending_argument = strdupW( argument ); + return ERROR_SUCCESS; +} + /* creates a dialog that remains up for a period of time based on a condition */ static UINT event_spawn_wait_dialog( msi_dialog *dialog, const WCHAR *argument ) { @@ -4489,26 +4434,49 @@ static UINT event_reset( msi_dialog *dialog, const WCHAR *argument ) return ERROR_SUCCESS; } -/* Return ERROR_SUCCESS if dialog is process and ERROR_FUNCTION_FAILED - * if the given parameter is not a dialog box - */ -UINT ACTION_DialogBox( MSIPACKAGE *package, const WCHAR *dialog ) +INT ACTION_ShowDialog( MSIPACKAGE *package, const WCHAR *dialog ) { - UINT r; + static const WCHAR szDialog[] = {'D','i','a','l','o','g',0}; + MSIRECORD *row; + INT rc; + + if (!TABLE_Exists(package->db, szDialog)) return 0; + + row = MSI_CreateRecord(0); + if (!row) return -1; + MSI_RecordSetStringW(row, 0, dialog); + rc = MSI_ProcessMessage(package, INSTALLMESSAGE_SHOWDIALOG, row); + msiobj_release(&row->hdr); + + if (rc == -2) rc = 0; + + if (!rc) + { + MSIRECORD *row = MSI_CreateRecord(2); + if (!row) return -1; + MSI_RecordSetInteger(row, 1, 2726); + MSI_RecordSetStringW(row, 2, dialog); + MSI_ProcessMessage(package, INSTALLMESSAGE_INFO, row); + + msiobj_release(&row->hdr); + } + return rc; +} + +INT ACTION_DialogBox( MSIPACKAGE *package, const WCHAR *dialog ) +{ + INT r; if (package->next_dialog) ERR("Already got next dialog... ignoring it\n"); package->next_dialog = NULL; - /* Dialogs are chained by filling in the next_dialog member - * of the package structure, then terminating the current dialog. - * The code below sees the next_dialog member set, and runs the - * next dialog. - * We fall out of the loop below if we come across a modeless - * dialog, as it returns ERROR_IO_PENDING when we try to run - * its message loop. + /* Dialogs are chained through NewDialog, which sets the next_dialog member. + * We fall out of the loop if we reach a modeless dialog, which immediately + * returns IDOK, or an EndDialog event, which returns the value corresponding + * to its argument. */ r = event_do_dialog( package, dialog, NULL, TRUE ); - while (r == ERROR_SUCCESS && package->next_dialog) + while (package->next_dialog) { WCHAR *name = package->next_dialog; @@ -4516,7 +4484,6 @@ UINT ACTION_DialogBox( MSIPACKAGE *package, const WCHAR *dialog ) r = event_do_dialog( package, name, NULL, TRUE ); msi_free( name ); } - if (r == ERROR_IO_PENDING) r = ERROR_SUCCESS; return r; } @@ -4567,9 +4534,9 @@ static const WCHAR validate_product_idW[] = {'V','a','l','i','d','a','t','e','P' static const struct control_event control_events[] = { - { end_dialogW, event_end_dialog }, - { new_dialogW, event_new_dialog }, - { spawn_dialogW, event_spawn_dialog }, + { end_dialogW, pending_event_end_dialog }, + { new_dialogW, pending_event_new_dialog }, + { spawn_dialogW, pending_event_spawn_dialog }, { spawn_wait_dialogW, event_spawn_wait_dialog }, { do_actionW, event_do_action }, { add_localW, event_add_local }, diff --git a/dll/win32/msi/files.c b/dll/win32/msi/files.c index 981d568bd83..635bff61988 100644 --- a/dll/win32/msi/files.c +++ b/dll/win32/msi/files.c @@ -44,7 +44,7 @@ static void msi_file_update_ui( MSIPACKAGE *package, MSIFILE *f, const WCHAR *ac MSI_RecordSetStringW( uirow, 1, f->FileName ); MSI_RecordSetStringW( uirow, 9, f->Component->Directory ); MSI_RecordSetInteger( uirow, 6, f->FileSize ); - msi_ui_actiondata( package, action, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_ui_progress( package, 2, f->FileSize, 0, 0 ); } @@ -966,7 +966,7 @@ done: MSI_RecordSetStringW( uirow, 1, MSI_RecordGetString(rec, 1) ); MSI_RecordSetInteger( uirow, 6, 1 ); /* FIXME */ MSI_RecordSetStringW( uirow, 9, destdir ); - msi_ui_actiondata( package, szMoveFiles, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(sourcedir); @@ -1103,7 +1103,7 @@ static UINT ITERATE_DuplicateFiles(MSIRECORD *row, LPVOID param) MSI_RecordSetStringW( uirow, 1, MSI_RecordGetString( row, 1 ) ); MSI_RecordSetInteger( uirow, 6, file->FileSize ); MSI_RecordSetStringW( uirow, 9, MSI_RecordGetString( row, 5 ) ); - msi_ui_actiondata( package, szDuplicateFiles, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(dest); @@ -1179,7 +1179,7 @@ static UINT ITERATE_RemoveDuplicateFiles( MSIRECORD *row, LPVOID param ) uirow = MSI_CreateRecord( 9 ); MSI_RecordSetStringW( uirow, 1, MSI_RecordGetString( row, 1 ) ); MSI_RecordSetStringW( uirow, 9, MSI_RecordGetString( row, 5 ) ); - msi_ui_actiondata( package, szRemoveDuplicateFiles, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(dest); @@ -1301,7 +1301,7 @@ done: uirow = MSI_CreateRecord( 9 ); MSI_RecordSetStringW( uirow, 1, MSI_RecordGetString(row, 1) ); MSI_RecordSetStringW( uirow, 9, dir ); - msi_ui_actiondata( package, szRemoveFiles, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free(filename); @@ -1391,7 +1391,7 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package ) uirow = MSI_CreateRecord( 9 ); MSI_RecordSetStringW( uirow, 1, file->FileName ); MSI_RecordSetStringW( uirow, 9, comp->Directory ); - msi_ui_actiondata( package, szRemoveFiles, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); } diff --git a/dll/win32/msi/font.c b/dll/win32/msi/font.c index 999f884b280..8a91ecab94a 100644 --- a/dll/win32/msi/font.c +++ b/dll/win32/msi/font.c @@ -272,7 +272,7 @@ static UINT ITERATE_RegisterFonts(MSIRECORD *row, LPVOID param) if (p) p++; else p = uipath; MSI_RecordSetStringW( uirow, 1, p ); - msi_ui_actiondata( package, szRegisterFonts, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( uipath ); /* FIXME: call msi_ui_progress? */ @@ -352,7 +352,7 @@ static UINT ITERATE_UnregisterFonts( MSIRECORD *row, LPVOID param ) if (p) p++; else p = uipath; MSI_RecordSetStringW( uirow, 1, p ); - msi_ui_actiondata( package, szUnregisterFonts, uirow ); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); msiobj_release( &uirow->hdr ); msi_free( uipath ); /* FIXME: call msi_ui_progress? */ diff --git a/dll/win32/msi/format.c b/dll/win32/msi/format.c index 142f356155a..10baa0ef04a 100644 --- a/dll/win32/msi/format.c +++ b/dll/win32/msi/format.c @@ -260,7 +260,7 @@ static WCHAR *deformat_environment( FORMAT *format, FORMSTR *str, int *ret_len ) } static WCHAR *deformat_literal( FORMAT *format, FORMSTR *str, BOOL *propfound, - BOOL *nonprop, int *type, int *len ) + int *type, int *len ) { LPCWSTR data = get_formstr_data(format, str); WCHAR *replaced = NULL; @@ -327,58 +327,24 @@ static LPWSTR build_default_format(const MSIRECORD* record) { int i; int count; - LPWSTR rc, buf; - static const WCHAR fmt[] = {'%','i',':',' ','%','s',' ',0}; - static const WCHAR fmt_null[] = {'%','i',':',' ',' ',0}; - static const WCHAR fmt_index[] = {'%','i',0}; - LPCWSTR str; - WCHAR index[10]; - DWORD size, max_len, len; + WCHAR *rc, buf[26]; + static const WCHAR fmt[] = {'%','i',':',' ','[','%','i',']',' ',0}; + DWORD size; count = MSI_RecordGetFieldCount(record); - max_len = MAX_PATH; - buf = msi_alloc((max_len + 1) * sizeof(WCHAR)); - - rc = NULL; + rc = msi_alloc(1); + rc[0] = 0; size = 1; + for (i = 1; i <= count; i++) { - sprintfW(index, fmt_index, i); - str = MSI_RecordGetString(record, i); - len = (str) ? lstrlenW(str) : 0; - len += (sizeof(fmt_null)/sizeof(fmt_null[0]) - 3) + lstrlenW(index); - size += len; - - if (len > max_len) - { - max_len = len; - buf = msi_realloc(buf, (max_len + 1) * sizeof(WCHAR)); - if (!buf) - { - msi_free(rc); - return NULL; - } - } - - if (str) - sprintfW(buf, fmt, i, str); - else - sprintfW(buf, fmt_null, i); - - if (!rc) - { - rc = msi_alloc(size * sizeof(WCHAR)); - lstrcpyW(rc, buf); - } - else - { - rc = msi_realloc(rc, size * sizeof(WCHAR)); - lstrcatW(rc, buf); - } + sprintfW(buf, fmt, i, i); + size += lstrlenW(buf); + rc = msi_realloc(rc, size * sizeof(WCHAR)); + lstrcatW(rc, buf); } - msi_free(buf); return rc; } @@ -669,7 +635,7 @@ static WCHAR *replace_stack_prop( FORMAT *format, STACK *values, content->len = *oldsize - 2; content->type = *type; - if (*type == FORMAT_NUMBER) + if (*type == FORMAT_NUMBER && format->record) { replaced = deformat_index( format, content, len ); if (replaced) @@ -683,7 +649,7 @@ static WCHAR *replace_stack_prop( FORMAT *format, STACK *values, } else if (format->package) { - replaced = deformat_literal( format, content, propfound, nonprop, type, len ); + replaced = deformat_literal( format, content, propfound, type, len ); } else { @@ -775,7 +741,7 @@ static BOOL verify_format(LPWSTR data) static DWORD deformat_string_internal(MSIPACKAGE *package, LPCWSTR ptr, WCHAR** data, DWORD *len, - MSIRECORD* record, INT* failcount) + MSIRECORD* record) { FORMAT format; FORMSTR *str = NULL; @@ -858,18 +824,37 @@ static DWORD deformat_string_internal(MSIPACKAGE *package, LPCWSTR ptr, UINT MSI_FormatRecordW( MSIPACKAGE* package, MSIRECORD* record, LPWSTR buffer, LPDWORD size ) { - WCHAR *format, *deformated; + WCHAR *format, *deformated = NULL; UINT rc = ERROR_INVALID_PARAMETER; DWORD len; + MSIRECORD *record_deformated; + int field_count, i; TRACE("%p %p %p %p\n", package, record, buffer, size); + dump_record(record); if (!(format = msi_dup_record_field( record, 0 ))) format = build_default_format( record ); - TRACE("%s\n", debugstr_w(format)); + field_count = MSI_RecordGetFieldCount(record); + record_deformated = MSI_CloneRecord(record); + if (!record_deformated) + { + rc = ERROR_OUTOFMEMORY; + goto end; + } + MSI_RecordSetStringW(record_deformated, 0, format); + for (i = 1; i <= field_count; i++) + { + if (MSI_RecordGetString(record, i)) + { + deformat_string_internal(package, MSI_RecordGetString(record, i), &deformated, &len, NULL); + MSI_RecordSetStringW(record_deformated, i, deformated); + msi_free(deformated); + } + } - deformat_string_internal( package, format, &deformated, &len, record, NULL ); + deformat_string_internal(package, format, &deformated, &len, record_deformated); if (buffer) { if (*size>len) @@ -891,6 +876,8 @@ UINT MSI_FormatRecordW( MSIPACKAGE* package, MSIRECORD* record, LPWSTR buffer, else rc = ERROR_SUCCESS; *size = len; + msiobj_release(&record_deformated->hdr); +end: msi_free( format ); msi_free( deformated ); return rc; diff --git a/dll/win32/msi/lang/msi_Bg.rc b/dll/win32/msi/lang/msi_Bg.rc index e5d5df7c003..46ab527b806 100644 --- a/dll/win32/msi/lang/msi_Bg.rc +++ b/dll/win32/msi/lang/msi_Bg.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "ïúòÿò %s íå å íàìåðåí" - 9 "ïîñòàâåòå äèñê %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "âúâåäåòå ïàïêàòà, êîÿòî ñúäúðæà %s" - 12 "èçòî÷íèêà çà èíñòàëàöèÿ íà ôóíêöèîíàëíîñòòà ëèïñâà" - 13 "ìðåæîâîòî óñòðîéñòâà íóæíî çà ôóíêöèîíàëíîñòòà ëèïñâà " - 14 "ôóíêöèîíàëíîñò îò:" - 15 "èçáåðåòå ïàïêàòà, êîÿòî ñúäúðæà %s" + 4 "The specified installation package could not be opened. Please check the file path and try again." + 5 "ïúòÿò %s íå å íàìåðåí" + 9 "ïîñòàâåòå äèñê %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "âúâåäåòå ïàïêàòà, êîÿòî ñúäúðæà %s" + 12 "èçòî÷íèêà çà èíñòàëàöèÿ íà ôóíêöèîíàëíîñòòà ëèïñâà" + 13 "ìðåæîâîòî óñòðîéñòâà íóæíî çà ôóíêöèîíàëíîñòòà ëèïñâà " + 14 "ôóíêöèîíàëíîñò îò:" + 15 "èçáåðåòå ïàïêàòà, êîÿòî ñúäúðæà %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Da.rc b/dll/win32/msi/lang/msi_Da.rc index fc37ff0bb9d..b14bd9f285e 100644 --- a/dll/win32/msi/lang/msi_Da.rc +++ b/dll/win32/msi/lang/msi_Da.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "Kunne ikke åbne den specificerede installationspakke. Kontroller stien og prøv igen." - 5 "kunne ikke finden stien '%s'." - 9 "indsæt disk '%s'" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "angiv kataloget som indeholder '%s'." - 12 "featurens installationskilde mangler." - 13 "featurens netværksdrev mangler." - 14 "feature fra:" - 15 "Vælg kataloget som indeholder '%s'." + 4 "Kunne ikke åbne den specificerede installationspakke. Kontroller stien og prøv igen." + 5 "kunne ikke finden stien '%s'." + 9 "indsæt disk '%s'" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "angiv kataloget som indeholder '%s'." + 12 "featurens installationskilde mangler." + 13 "featurens netværksdrev mangler." + 14 "feature fra:" + 15 "Vælg kataloget som indeholder '%s'." +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_De.rc b/dll/win32/msi/lang/msi_De.rc index 558107c57f9..0d486f3f871 100644 --- a/dll/win32/msi/lang/msi_De.rc +++ b/dll/win32/msi/lang/msi_De.rc @@ -19,21 +19,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Das angegebene Installationspaket konnte nicht geöffnet werden. Bitte überprüfen Sie den Pfadnamen und versuchen Sie es noch einmal." - 5 "Der Pfad %s wurde nicht gefunden." - 9 "Bitte Disk %s einlegen." - 10 "Windows Installer %s\n\nBenutzung:\nmsiexec Befehl {Parameter} [Zusätzliche Parammeter]\n\nProdukt installieren:\n\t/i {Paket|Produktcode} [Eigenschaft]\n\t/package {Paket|Produktcode} [Eigenschaft]\n\t/a Paket [Eigenschaft]\nInstallation reparieren:\n\t/f[p|o|e|d|c|a|u|m|s|v] {Paket|Produktcode}\nProdukt deinstallieren:\n\t/uninstall {Paket|Produktcode} [Eigenschaft]\n\t/x {Paket|Produktcode} [Eigenschaft]\nProdukt ankündigen:\n\t/j[u|m] Paket [/t Transformationspaket] [/g Sprachkennung]\nPatch integrieren:\n\t/p Patchpaket [Eigenschaft]\n\t/p Patchpaket /a Paket [Eigenschaft]\nProtokollierung und Benutzeroberfläche für die oberen Befehle anpassen:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] Protokolldatei\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI Service registrieren:\n\t/y\nRegistrierung des MSI Service aufheben:\n\t/z\nHilfe anzeigen:\n\t/help\n\t/?\n" - 11 "Geben Sie das Verzeichnis ein, dass %s enthält." - 12 "Die Installationsquelle für das Feature fehlt." - 13 "Das Netzwerklaufwerk für das Feature fehlt." - 14 "Feature von:" - 15 "Wählen Sie das Verzeichnis aus, dass %s enthält." + 4 "Das angegebene Installationspaket konnte nicht geöffnet werden. Bitte überprüfen Sie den Pfadnamen und versuchen Sie es noch einmal." + 5 "Der Pfad %s wurde nicht gefunden." + 9 "Bitte Disk %s einlegen." + 10 "Windows Installer %s\n\nBenutzung:\nmsiexec Befehl {Parameter} [Zusätzliche Parammeter]\n\nProdukt installieren:\n\t/i {Paket|Produktcode} [Eigenschaft]\n\t/package {Paket|Produktcode} [Eigenschaft]\n\t/a Paket [Eigenschaft]\nInstallation reparieren:\n\t/f[p|o|e|d|c|a|u|m|s|v] {Paket|Produktcode}\nProdukt deinstallieren:\n\t/uninstall {Paket|Produktcode} [Eigenschaft]\n\t/x {Paket|Produktcode} [Eigenschaft]\nProdukt ankündigen:\n\t/j[u|m] Paket [/t Transformationspaket] [/g Sprachkennung]\nPatch integrieren:\n\t/p Patchpaket [Eigenschaft]\n\t/p Patchpaket /a Paket [Eigenschaft]\nProtokollierung und Benutzeroberfläche für die oberen Befehle anpassen:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] Protokolldatei\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI Service registrieren:\n\t/y\nRegistrierung des MSI Service aufheben:\n\t/z\nHilfe anzeigen:\n\t/help\n\t/?\n" + 11 "Geben Sie das Verzeichnis ein, dass %s enthält." + 12 "Die Installationsquelle für das Feature fehlt." + 13 "Das Netzwerklaufwerk für das Feature fehlt." + 14 "Feature von:" + 15 "Wählen Sie das Verzeichnis aus, dass %s enthält." +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_En.rc b/dll/win32/msi/lang/msi_En.rc index 2b520e98d1c..d7972f7409f 100644 --- a/dll/win32/msi/lang/msi_En.rc +++ b/dll/win32/msi/lang/msi_En.rc @@ -19,21 +19,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "path %s not found" - 9 "insert disk %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "enter which folder contains %s" - 12 "install source for feature missing" - 13 "network drive for feature missing" - 14 "feature from:" - 15 "choose which folder contains %s" + 4 "The specified installation package could not be opened. Please check the file path and try again." + 5 "path %s not found" + 9 "insert disk %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "enter which folder contains %s" + 12 "install source for feature missing" + 13 "network drive for feature missing" + 14 "feature from:" + 15 "choose which folder contains %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Es.rc b/dll/win32/msi/lang/msi_Es.rc index f81e26096a1..c9b3392b4c5 100644 --- a/dll/win32/msi/lang/msi_Es.rc +++ b/dll/win32/msi/lang/msi_Es.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "No se ha podido abrir el paquete de instalación especificado. Por favor, compruebe la ruta del archivo y vuelva a intentarlo." - 5 "ruta %s no encontrada" - 9 "inserte el disco %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "introduzca qué carpeta contiene %s" - 12 "instalar fuente para característica ausente" - 13 "unidad de red para característica ausente" - 14 "característica de:" - 15 "elija qué carpeta contiene %s" + 4 "No se ha podido abrir el paquete de instalación especificado. Por favor, compruebe la ruta del archivo y vuelva a intentarlo." + 5 "ruta %s no encontrada" + 9 "inserte el disco %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "introduzca qué carpeta contiene %s" + 12 "instalar fuente para característica ausente" + 13 "unidad de red para característica ausente" + 14 "característica de:" + 15 "elija qué carpeta contiene %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Fi.rc b/dll/win32/msi/lang/msi_Fi.rc index 4229e2dc9c0..233aa2c3ae0 100644 --- a/dll/win32/msi/lang/msi_Fi.rc +++ b/dll/win32/msi/lang/msi_Fi.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "Annettua asennuspakettia ei voitu avata. Tarkista tiedoston polku ja yritä uudelleen." - 5 "Polkua %s ei löydy." - 9 "Anna levy %s" - 10 "Windows Installer %s\n\nKäyttö:\nmsiexec komento {pakollinen parametri} [valinnainen parametri]\n\nAsenna tuote:\n\t/i {paketti|tuotekoodi} [ominaisuus]\n\t/package {paketti|tuotekoodi} [ominaisuus]\n\t/a {paketti} [ominaisuus]\nKorjaa asennus:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paketti|tuotekoodi}\nPoista tuote:\n\t/uninstall {paketti|tuotekoodi} [ominaisuus]\n\t/x {paketti|tuotekoodi} [ominaisuus]\nMainosta (advertise) tuotetta:\n\t/j[u|m] paketti [/t muunnos] [/g kielitunnus]\nAsenna korjaus:\n\t/p korjauspaketti [ominaisuus]\n\t/p korjauspaketti /a paketti [ominaisuus]\nLoki- ja käyttöliittymäasetukset edellisille komennoille:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] lokitiedosto\n\t/q{|n|b|r|f|n+|b+|b-}\nRekisteröi MSI-palvelu:\n\t/y\nPeru MSI-palvelun rekisteröinti:\n\t/z\nNäytä tämä ohje:\n\t/help\n\t/?\n" - 11 "Anna kansio, jossa on %s" - 12 "Ominaisuuden asennuslähde puuttuu." - 13 "Ominaisuuden verkkolevy puuttuu." - 14 "Ominaisuus:" - 15 "Valitse kansio, jossa on %s" + 4 "Annettua asennuspakettia ei voitu avata. Tarkista tiedoston polku ja yritä uudelleen." + 5 "Polkua %s ei löydy." + 9 "Anna levy %s" + 10 "Windows Installer %s\n\nKäyttö:\nmsiexec komento {pakollinen parametri} [valinnainen parametri]\n\nAsenna tuote:\n\t/i {paketti|tuotekoodi} [ominaisuus]\n\t/package {paketti|tuotekoodi} [ominaisuus]\n\t/a {paketti} [ominaisuus]\nKorjaa asennus:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paketti|tuotekoodi}\nPoista tuote:\n\t/uninstall {paketti|tuotekoodi} [ominaisuus]\n\t/x {paketti|tuotekoodi} [ominaisuus]\nMainosta (advertise) tuotetta:\n\t/j[u|m] paketti [/t muunnos] [/g kielitunnus]\nAsenna korjaus:\n\t/p korjauspaketti [ominaisuus]\n\t/p korjauspaketti /a paketti [ominaisuus]\nLoki- ja käyttöliittymäasetukset edellisille komennoille:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] lokitiedosto\n\t/q{|n|b|r|f|n+|b+|b-}\nRekisteröi MSI-palvelu:\n\t/y\nPeru MSI-palvelun rekisteröinti:\n\t/z\nNäytä tämä ohje:\n\t/help\n\t/?\n" + 11 "Anna kansio, jossa on %s" + 12 "Ominaisuuden asennuslähde puuttuu." + 13 "Ominaisuuden verkkolevy puuttuu." + 14 "Ominaisuus:" + 15 "Valitse kansio, jossa on %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Fr.rc b/dll/win32/msi/lang/msi_Fr.rc index ca1f4d6d3e3..026baa11ea9 100644 --- a/dll/win32/msi/lang/msi_Fr.rc +++ b/dll/win32/msi/lang/msi_Fr.rc @@ -19,22 +19,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL STRINGTABLE { - 4 "Le paquet d'installation spécifié n'a pu être ouvert. Veuillez vérifier le chemin du fichier et réessayer." - 5 "Le chemin %s est introuvable" - 9 "insérez le disque %s" - 10 "Programme d'installation Windows %s\n\nUsage :\nmsiexec commande {paramètre obligatoire} [paramètre optionnel]\n\nInstaller un produit :\n\t/i {paquet|code_produit} [propriété]\n\t/package {paquet|code_produit} [propriété]\n\t/a paquet [propriété]\nRéparer une installation :\n\t/f[p|o|e|d|c|a|u|m|s|v] {paquet|code_produit}\nDésinstaller un produit :\n\t/uninstall {paquet|code_produit} [propriété]\n\t/x {paquet|code_produit} [propriété]\nPublier un produit :\n\t/j[u|m] paquet [/t transformation] [/g id_langue]\nAppliquer un patch :\n\t/p paquet_patch [propriété]\n\t/p paquet_patch /a paquet [propriété]\nModificateurs de journalisation et d'interface utilisateur pour les commandes ci-dessus :\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] fichier_journal\n\t/q{|n|b|r|f|n+|b+|b-}\nEnregistrer le service MSI :\n\t/y\nAnnuler l'enregistrement du service MSI :\n\t/z\nAfficher cette aide :\n\t/help\n\t/?\n" - 11 "saisissez le nom du dossier contenant %s" - 12 "source d'installation pour la fonctionnalité manquante" - 13 "lecteur réseau pour la fonctionnalité manquante" - 14 "fonctionnalité depuis :" - 15 "sélectionnez le dossier contenant %s" + 4 "Le paquet d'installation spécifié n'a pu être ouvert. Veuillez vérifier le chemin du fichier et réessayer." + 5 "Le chemin %s est introuvable" + 9 "insérez le disque %s" + 10 "Programme d'installation Windows %s\n\nUsage :\nmsiexec commande {paramètre obligatoire} [paramètre optionnel]\n\nInstaller un produit :\n\t/i {paquet|code_produit} [propriété]\n\t/package {paquet|code_produit} [propriété]\n\t/a paquet [propriété]\nRéparer une installation :\n\t/f[p|o|e|d|c|a|u|m|s|v] {paquet|code_produit}\nDésinstaller un produit :\n\t/uninstall {paquet|code_produit} [propriété]\n\t/x {paquet|code_produit} [propriété]\nPublier un produit :\n\t/j[u|m] paquet [/t transformation] [/g id_langue]\nAppliquer un patch :\n\t/p paquet_patch [propriété]\n\t/p paquet_patch /a paquet [propriété]\nModificateurs de journalisation et d'interface utilisateur pour les commandes ci-dessus :\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] fichier_journal\n\t/q{|n|b|r|f|n+|b+|b-}\nEnregistrer le service MSI :\n\t/y\nAnnuler l'enregistrement du service MSI :\n\t/z\nAfficher cette aide :\n\t/help\n\t/?\n" + 11 "saisissez le nom du dossier contenant %s" + 12 "source d'installation pour la fonctionnalité manquante" + 13 "lecteur réseau pour la fonctionnalité manquante" + 14 "fonctionnalité depuis :" + 15 "sélectionnez le dossier contenant %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_He.rc b/dll/win32/msi/lang/msi_He.rc index be903327c2d..492e2aae4c2 100644 --- a/dll/win32/msi/lang/msi_He.rc +++ b/dll/win32/msi/lang/msi_He.rc @@ -21,21 +21,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "הנתיב %s לא נמצא" - 9 "הכנס דיסק %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "הזן איזו תיקיה מכילה את %s" - 12 "מקור ההתקנה עבור התכונה חסר" - 13 "כונן רשת עבור התכונה חסר" - 14 "מהתקן מ:" - 15 "בחר איזו תיקיה מכילה את %s" + 4 "The specified installation package could not be opened. Please check the file path and try again." + 5 "הנתיב %s לא נמצא" + 9 "הכנס דיסק %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "הזן איזו תיקיה מכילה את %s" + 12 "מקור ההתקנה עבור התכונה חסר" + 13 "כונן רשת עבור התכונה חסר" + 14 "מהתקן מ:" + 15 "בחר איזו תיקיה מכילה את %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Hu.rc b/dll/win32/msi/lang/msi_Hu.rc index 4354013251e..70ab46f9d9b 100644 --- a/dll/win32/msi/lang/msi_Hu.rc +++ b/dll/win32/msi/lang/msi_Hu.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "%s útvonal nem található" - 9 "helyezze be a lemezt: %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "adja meg melyik mappa tartalmazza ezt: %s" - 12 "hiányzó tulajdonság a telepítési forráshoz" - 13 "hiányzó tulajdonság a hálózati meghajtóhoz" - 14 "tulajdonság innen:" - 15 "válassza ki, melyik mappa tartalmazza ezt: %s" + 4 "The specified installation package could not be opened. Please check the file path and try again." + 5 "%s útvonal nem található" + 9 "helyezze be a lemezt: %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "adja meg melyik mappa tartalmazza ezt: %s" + 12 "hiányzó tulajdonság a telepítési forráshoz" + 13 "hiányzó tulajdonság a hálózati meghajtóhoz" + 14 "tulajdonság innen:" + 15 "válassza ki, melyik mappa tartalmazza ezt: %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_It.rc b/dll/win32/msi/lang/msi_It.rc index bc1ad8470e2..4a437a8ab20 100644 --- a/dll/win32/msi/lang/msi_It.rc +++ b/dll/win32/msi/lang/msi_It.rc @@ -18,22 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/*UTF-8*/ -#pragma code_page(65001) - LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL STRINGTABLE { - 4 "Impossibile aprire il pacchetto di installazione specificato. Per favore controlla l'indirizzo del file e riprova." - 5 "percorso %s non trovato" - 9 "inserire disco %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "immettere il nome della cartella che contiene %s" - 12 "sorgente di installazione per la funzionalità mancante" - 13 "periferica di rete per la funzionalità mancante" - 14 "funzionalità da:" - 15 "selezionare la cartella che contiene %s" + 4 "Impossibile aprire il pacchetto di installazione specificato. Per favore controlla l'indirizzo del file e riprova." + 5 "percorso %s non trovato" + 9 "inserire disco %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "immettere il nome della cartella che contiene %s" + 12 "sorgente di installazione per la funzionalità mancante" + 13 "periferica di rete per la funzionalità mancante" + 14 "funzionalità da:" + 15 "selezionare la cartella che contiene %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Ja.rc b/dll/win32/msi/lang/msi_Ja.rc index c0759563e8c..c3ac0197d50 100644 --- a/dll/win32/msi/lang/msi_Ja.rc +++ b/dll/win32/msi/lang/msi_Ja.rc @@ -1,15 +1,157 @@ LANGUAGE LANG_JAPANESE, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 5 "パス %s がみつかりませんでした" - 9 "ディスク %s を挿入してください" - 10 "無効なパラメータです" - 11 "%s のあるフォルダを入力してください" - 12 "機能\のインストール元がありません" - 13 "機能\があるネットワーク ドライブがありません" - 14 "機能\の場所:" - 15 "%s のあるフォルダを選択してください" + 5 "パス %s がみつかりませんでした" + 9 "ディスク %s を挿入してください" + 10 "無効なパラメータです" + 11 "%s のあるフォルダを入力してください" + 12 "機能のインストール元がありません" + 13 "機能があるネットワーク ドライブがありません" + 14 "機能の場所:" + 15 "%s のあるフォルダを選択してください" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Ko.rc b/dll/win32/msi/lang/msi_Ko.rc index fc72a65ee51..47d29b92023 100644 --- a/dll/win32/msi/lang/msi_Ko.rc +++ b/dll/win32/msi/lang/msi_Ko.rc @@ -20,21 +20,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 " 지정한 설치 패키지를 열 수 없습니다. 파일 경로를 확인하고 다시 시도하십시오." - 5 "%s 경로를 찾을수 없습니다" - 9 "디스크 %s 삽입" - 10 "Windows Installer %s\n\n사용법:\nmsiexec 명령 {필수 매개변수} [선택적 매개변수]\n\n제품 설치:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\n설치 복구:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\n제품 제거:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\n제품 알리기:\n\t/j[u|m] package [/t transform] [/g languageid]\n패치 추가:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\n위의 명령어를 위한 Log 와 UI 한정자 :\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI 서비스 등록:\n\t/y\nMSI 서비스 등록 해제:\n\t/z\n도움말 보기:\n\t/help\n\t/?\n" - 11 "%s를 포함하는 폴더를 입력하세여" - 12 "빠진 부분(feature)을 위한 설치 원본" - 13 "빠진 부분(feature)을 위한 네트워크 드라이브" - 14 "부분(feature)에서:" - 15 " %s를 포함하는 폴더 선택" + 4 " 지정한 설치 패키지를 열 수 없습니다. 파일 경로를 확인하고 다시 시도하십시오." + 5 "%s 경로를 찾을수 없습니다" + 9 "디스크 %s 삽입" + 10 "Windows Installer %s\n\n사용법:\nmsiexec 명령 {필수 매개변수} [선택적 매개변수]\n\n제품 설치:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\n설치 복구:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\n제품 제거:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\n제품 알리기:\n\t/j[u|m] package [/t transform] [/g languageid]\n패치 추가:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\n위의 명령어를 위한 Log 와 UI 한정자 :\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI 서비스 등록:\n\t/y\nMSI 서비스 등록 해제:\n\t/z\n도움말 보기:\n\t/help\n\t/?\n" + 11 "%s를 포함하는 폴더를 입력하세여" + 12 "빠진 부분(feature)을 위한 설치 원본" + 13 "빠진 부분(feature)을 위한 네트워크 드라이브" + 14 "부분(feature)에서:" + 15 " %s를 포함하는 폴더 선택" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Lt.rc b/dll/win32/msi/lang/msi_Lt.rc index 57de188ed64..597b360ab22 100644 --- a/dll/win32/msi/lang/msi_Lt.rc +++ b/dll/win32/msi/lang/msi_Lt.rc @@ -18,22 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL STRINGTABLE { - 4 "Nepavyko atverti nurodyto diegimo paketo. Patikrinkite failo kelią ir mėginkite dar kartą." - 5 "kelias %s nerastas" - 9 "įdėkite diską %s" - 10 "Windows diegimo programa %s\n\nNaudojimas:\nmsiexec komanda {būtinas parametras} [nebūtinas parametras]\n\nĮdiegti produktą:\n\t/i {paketas|produkto_kodas} [savybė]\n\t/package {paketas|produkto_kodas} [savybė]\n\t/a paketas [savybė]\nTaisyti įdiegimą:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paketas|produkto_kodas}\nPašalinti produktą:\n\t/uninstall {paketas|produkto_kodas} [savybė]\n\t/x {paketas|produkto_kodas} [savybė]\nSkelbti produktą:\n\t/j[u|m] paketas [/t pakeitimas] [/g kalbos_identifikatorius]\nPritaikyti pataisą:\n\t/p pataisos_paketas [savybė]\n\t/p pataisos_paketas /a paketas [savybė]\nŽurnalo ir sąsajos modifikatoriai aukščiau išvardintoms komandoms:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] žurnalo_failas\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistruoti MSI tarnybą:\n\t/y\nIšregistruoti MSI tarnybą:\n\t/z\nParodyti šią pagalbą:\n\t/help\n\t/?\n" - 11 "įveskite aplanką, kuris turi %s" - 12 "trūksta diegimo šaltinio komponentui" - 13 "trūksta tinklo disko komponentui" - 14 "komponentas iš:" - 15 "parinkite aplanką, kuris turi %s" + 4 "Nepavyko atverti nurodyto diegimo paketo. Patikrinkite failo kelią ir mėginkite dar kartą." + 5 "kelias %s nerastas" + 9 "įdėkite diską %s" + 10 "Windows diegimo programa %s\n\nNaudojimas:\nmsiexec komanda {būtinas parametras} [nebūtinas parametras]\n\nĮdiegti produktą:\n\t/i {paketas|produkto_kodas} [savybė]\n\t/package {paketas|produkto_kodas} [savybė]\n\t/a paketas [savybė]\nTaisyti įdiegimą:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paketas|produkto_kodas}\nPašalinti produktą:\n\t/uninstall {paketas|produkto_kodas} [savybė]\n\t/x {paketas|produkto_kodas} [savybė]\nSkelbti produktą:\n\t/j[u|m] paketas [/t pakeitimas] [/g kalbos_identifikatorius]\nPritaikyti pataisą:\n\t/p pataisos_paketas [savybė]\n\t/p pataisos_paketas /a paketas [savybė]\nŽurnalo ir sąsajos modifikatoriai aukščiau išvardintoms komandoms:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] žurnalo_failas\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistruoti MSI tarnybą:\n\t/y\nIšregistruoti MSI tarnybą:\n\t/z\nParodyti šią pagalbą:\n\t/help\n\t/?\n" + 11 "įveskite aplanką, kuris turi %s" + 12 "trūksta diegimo šaltinio komponentui" + 13 "trūksta tinklo disko komponentui" + 14 "komponentas iš:" + 15 "parinkite aplanką, kuris turi %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Nl.rc b/dll/win32/msi/lang/msi_Nl.rc index 4157d4a41f1..29197e89164 100644 --- a/dll/win32/msi/lang/msi_Nl.rc +++ b/dll/win32/msi/lang/msi_Nl.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Het opgegeven installatie pakket kon niet worden geopend. Verifieer het bestandspad en probeer opnieuw." - 5 "Pad %s niet gevonden" - 9 "Plaats disk %s" - 10 "Windows Installer %s\n\nGebruik:\nmsiexec commando {vereiste parameter} [optionele parameter]\n\nInstalleer een product:\n\t/i {pakket|productcode} [eigenschap]\n\t/package {pakket|productcode} [eigenschap]\n\t/a pakket [eigenschap]\nHerstel een installatie:\n\t/f[p|o|e|d|c|a|u|m|s|v] {pakket|productcode}\nVerwijder een product:\n\t/uninstall {pakket|productcode} [eigenschap]\n\t/x {pakket|productcode} [eigenschap]\nAdverteer een product:\n\t/j[u|m] pakket [/t transform] [/g languageid]\nPas een patch toe:\n\t/p patchpakket [eigenschap]\n\t/p patchpakket /a pakket [eigenschap]\nLog en UI Modifiers voor bovenstaande commando's:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logbestand\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistreer MSI Service:\n\t/y\nMaak registratie MSI Service ongedaan:\n\t/z\nLaat dit helpvenster zien:\n\t/help\n\t/?\n" - 11 "Voer de map in die %s bevat" - 12 "De installatiebron van de feature ontbreekt" - 13 "De netwerkschijf met de feature ontbreekt" - 14 "Feature van:" - 15 "Kies de map die %s bevat" + 4 "Het opgegeven installatie pakket kon niet worden geopend. Verifieer het bestandspad en probeer opnieuw." + 5 "Pad %s niet gevonden" + 9 "Plaats disk %s" + 10 "Windows Installer %s\n\nGebruik:\nmsiexec commando {vereiste parameter} [optionele parameter]\n\nInstalleer een product:\n\t/i {pakket|productcode} [eigenschap]\n\t/package {pakket|productcode} [eigenschap]\n\t/a pakket [eigenschap]\nHerstel een installatie:\n\t/f[p|o|e|d|c|a|u|m|s|v] {pakket|productcode}\nVerwijder een product:\n\t/uninstall {pakket|productcode} [eigenschap]\n\t/x {pakket|productcode} [eigenschap]\nAdverteer een product:\n\t/j[u|m] pakket [/t transform] [/g languageid]\nPas een patch toe:\n\t/p patchpakket [eigenschap]\n\t/p patchpakket /a pakket [eigenschap]\nLog en UI Modifiers voor bovenstaande commando's:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logbestand\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistreer MSI Service:\n\t/y\nMaak registratie MSI Service ongedaan:\n\t/z\nLaat dit helpvenster zien:\n\t/help\n\t/?\n" + 11 "Voer de map in die %s bevat" + 12 "De installatiebron van de feature ontbreekt" + 13 "De netwerkschijf met de feature ontbreekt" + 14 "Feature van:" + 15 "Kies de map die %s bevat" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_No.rc b/dll/win32/msi/lang/msi_No.rc index 733525dba60..8c020bfe61e 100644 --- a/dll/win32/msi/lang/msi_No.rc +++ b/dll/win32/msi/lang/msi_No.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Klarte ikke åpne den oppgitte installasjonspakken. Kontroller filbanen og prøv igjen." - 5 "Fant ikke stien '%s'." - 9 "Sett i disk '%s'" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "Oppgi katalogen som inneholder '%s'." - 12 "Egenskapens installasjonskilde mangler." - 13 "Egenskapens nettverksstasjon mangler." - 14 "Egenskap fra::" - 15 "Velg katalogen som inneholder '%s'." + 4 "Klarte ikke åpne den oppgitte installasjonspakken. Kontroller filbanen og prøv igjen." + 5 "Fant ikke stien '%s'." + 9 "Sett i disk '%s'" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "Oppgi katalogen som inneholder '%s'." + 12 "Egenskapens installasjonskilde mangler." + 13 "Egenskapens nettverksstasjon mangler." + 14 "Egenskap fra::" + 15 "Velg katalogen som inneholder '%s'." +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Pl.rc b/dll/win32/msi/lang/msi_Pl.rc index 2f43e6c682d..5bbf4b07c38 100644 --- a/dll/win32/msi/lang/msi_Pl.rc +++ b/dll/win32/msi/lang/msi_Pl.rc @@ -19,21 +19,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "Nie udało się otworzyć wybranego pakietu instalacyjnego. Sprawdź czy ścieżka jest poprawna i spróbuj ponownie." - 5 "ścieżka '%s' nie została odnaleziona" - 9 "włóż dysk '%s'" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "wprowadź siceżkę do folderu zawierającego '%s'" - 12 "źródło danych zawierające żądanę funkcję jest niedostępne" - 13 "dysk siecowy zawierający żądaną funckje jest niedostępny" - 14 "funkcja z:" - 15 "wybierz folder zawierający '%s'" + 4 "Nie udało się otworzyć wybranego pakietu instalacyjnego. Sprawdź czy ścieżka jest poprawna i spróbuj ponownie." + 5 "ścieżka '%s' nie została odnaleziona" + 9 "włóż dysk '%s'" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "wprowadź siceżkę do folderu zawierającego '%s'" + 12 "źródło danych zawierające żądanę funkcję jest niedostępne" + 13 "dysk siecowy zawierający żądaną funckje jest niedostępny" + 14 "funkcja z:" + 15 "wybierz folder zawierający '%s'" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Pt.rc b/dll/win32/msi/lang/msi_Pt.rc index 22147b87e63..1d919c993b1 100644 --- a/dll/win32/msi/lang/msi_Pt.rc +++ b/dll/win32/msi/lang/msi_Pt.rc @@ -20,36 +20,320 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -#pragma code_page(65001) - LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN STRINGTABLE { - 4 "O pacote de instalação especificado não pôde ser aberto. Por favor, verifique o arquivo e tente novamente." - 5 "caminho %s não encontrado" - 9 "insira disco %s" - 10 "Windows Installer %s\n\nModo de usar:\nmsiexec command {required parameter} [optional parammeter]\n\nInstalar um produto:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nReparar uma instalação:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nDesinstalar um produto:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAnunciar um produto:\n\t/j[u|m] package [/t transform] [/g languageid]\nAplicar um patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nModificadores Log e UI para os comandos acima:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistrar Serviço MSI:\n\t/y\nDesregistrar Serviço MSI:\n\t/z\nMostrar esta ajuda:\n\t/help\n\t/?\n" - 11 "entre a pasta que contém %s" - 12 "faltando fonte de instalação para característica" - 13 "faltando drive de rede para característica" - 14 "origem da característica:" - 15 "escolha a pasta que contém %s" + 4 "O pacote de instalação especificado não pôde ser aberto. Por favor, verifique o arquivo e tente novamente." + 5 "caminho %s não encontrado" + 9 "insira disco %s" + 10 "Windows Installer %s\n\nModo de usar:\nmsiexec command {required parameter} [optional parammeter]\n\nInstalar um produto:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nReparar uma instalação:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nDesinstalar um produto:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAnunciar um produto:\n\t/j[u|m] package [/t transform] [/g languageid]\nAplicar um patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nModificadores Log e UI para os comandos acima:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistrar Serviço MSI:\n\t/y\nDesregistrar Serviço MSI:\n\t/z\nMostrar esta ajuda:\n\t/help\n\t/?\n" + 11 "entre a pasta que contém %s" + 12 "faltando fonte de instalação para característica" + 13 "faltando drive de rede para característica" + 14 "origem da característica:" + 15 "escolha a pasta que contém %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE STRINGTABLE { - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "localização %s não encontrada" - 9 "insira o disco %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "indique que pasta contém %s" - 12 "instalar fonte para a opção em falta" - 13 "controlador de rede para a opção em falta" - 14 "opção de:" - 15 "indique que pasta contém %s" + 4 "The specified installation package could not be opened. Please check the file path and try again." + 5 "localização %s não encontrada" + 9 "insira o disco %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "indique que pasta contém %s" + 12 "instalar fonte para a opção em falta" + 13 "controlador de rede para a opção em falta" + 14 "opção de:" + 15 "indique que pasta contém %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Ro.rc b/dll/win32/msi/lang/msi_Ro.rc index e430e3f1541..428ec80490c 100644 --- a/dll/win32/msi/lang/msi_Ro.rc +++ b/dll/win32/msi/lang/msi_Ro.rc @@ -18,35 +18,175 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Pachetul de instalare menționat nu a putut fi deschis. Verificați calea și încercați din nou." - 5 "calea %s nu a fost găsită" - 9 "inserați discul %s" - 10 "Instalatorul Windows %s\n\nUtilizare:\nmsiexec command {parametru obligatoriu} [parametru opțional]\n\n" \ - "Instalarea unui produs:\n\t/i {pachet|cod_produs} [proprietate]" \ - "\n\t/package {pachet|cod_produs} [proprietate]" \ - "\n\t/a pachet [proprietate]\n" \ - "Repararea unei instalări:\n\t/f[p|o|e|d|c|a|u|m|s|v] {pachet|cod_produs}\n" \ - "Dezinstalarea unui produs:\n\t/uninstall {pachet|cod_produs} [proprietate]" \ - "\n\t/x {pachet|cod_produs} [proprietate]\n" \ - "Promovarea unui produs:\n\t/j[u|m] pachet [/t transformare] [/g id_limbă]\n" \ - "Aplicarea unui patch:\n\t/p pachet_patch [proprietate]" \ - "\n\t/p pachet_patch /a pachet [proprietate]\n" \ - "Jurnalizare și modificatori de interfață pentru comenzile enumerate:" \ - "\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] fișier_jurnal\n\t/q{|n|b|r|f|n+|b+|b-}\n" \ - "Înregistrarea serviciului MSI:\n\t/y\n" \ - "Excluderea serviciului MSI:\n\t/z\n" \ - "Afișarea acestui manual:\n\t/help\n\t/?\n" - 11 "introduceți fișierul care conține %s" - 12 "lipsește sursa de instalare pentru această caracteristică" - 13 "lipsește unitatea de rețea pentru această caracteristică" - 14 "caracteristică de la:" - 15 "selectați fișierul care conține %s" + 4 "Pachetul de instalare menționat nu a putut fi deschis. Verificați calea și încercați din nou." + 5 "calea %s nu a fost găsită" + 9 "inserați discul %s" + 10 "Instalatorul Windows %s\n\nUtilizare:\nmsiexec command {parametru obligatoriu} [parametru opțional]\n\n \ + Instalarea unui produs:\n\t/i {pachet|cod_produs} [proprietate] \ + \n\t/package {pachet|cod_produs} [proprietate] \ + \n\t/a pachet [proprietate]\n \ + Repararea unei instalări:\n\t/f[p|o|e|d|c|a|u|m|s|v] {pachet|cod_produs}\n \ + Dezinstalarea unui produs:\n\t/uninstall {pachet|cod_produs} [proprietate] \ + \n\t/x {pachet|cod_produs} [proprietate]\n \ + Promovarea unui produs:\n\t/j[u|m] pachet [/t transformare] [/g id_limbă]\n \ + Aplicarea unui patch:\n\t/p pachet_patch [proprietate] \ + \n\t/p pachet_patch /a pachet [proprietate]\n \ + Jurnalizare și modificatori de interfață pentru comenzile enumerate: \ + \n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] fișier_jurnal\n\t/q{|n|b|r|f|n+|b+|b-}\n \ + Înregistrarea serviciului MSI:\n\t/y\n \ + Excluderea serviciului MSI:\n\t/z\n \ + Afișarea acestui manual:\n\t/help\n\t/?\n" + 11 "introduceți fișierul care conține %s" + 12 "lipsește sursa de instalare pentru această caracteristică" + 13 "lipsește unitatea de rețea pentru această caracteristică" + 14 "caracteristică de la:" + 15 "selectați fișierul care conține %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Ru.rc b/dll/win32/msi/lang/msi_Ru.rc index 25188b0bf94..a485fd957c8 100644 --- a/dll/win32/msi/lang/msi_Ru.rc +++ b/dll/win32/msi/lang/msi_Ru.rc @@ -18,22 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - 4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку." - 5 "путь %s не найден" - 9 "вставьте диск %s" - 10 "Устанновщик ReactOS %s\n\nИспользование:\nmsiexec команда {обязательные параметры} [необязательные параметры]\n\nУстановить продукт:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nВосстановить установку:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nУдалить продукт:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nПрименить патч:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\Регистрация сервиса MSI:\n\t/y\nUnregister MSI Service:\n\t/z\nОтобразить эту справку:\n\t/help\n\t/?\n" - 11 "укажите каталог, содержащий %s" - 12 "источник установки данной возможности не указан" - 13 "сетевой диск для данной возможности не указан" - 14 "возможность из:" - 15 "выберите каталог, содержащий %s" + 4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку." + 5 "путь %s не найден" + 9 "вставьте диск %s" + 10 "Устанновщик ReactOS %s\n\nИспользование:\nmsiexec команда {обязательные параметры} [необязательные параметры]\n\nУстановить продукт:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nВосстановить установку:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nУдалить продукт:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nПрименить патч:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nРегистрация сервиса MSI:\n\t/y\nUnregister MSI Service:\n\t/z\nОтобразить эту справку:\n\t/help\n\t/?\n" + 11 "укажите каталог, содержащий %s" + 12 "источник установки данной возможности не указан" + 13 "сетевой диск для данной возможности не указан" + 14 "возможность из:" + 15 "выберите каталог, содержащий %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Si.rc b/dll/win32/msi/lang/msi_Si.rc index 16ffa7ed32a..ed6df345a37 100644 --- a/dll/win32/msi/lang/msi_Si.rc +++ b/dll/win32/msi/lang/msi_Si.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -#pragma code_page(65001) - LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT STRINGTABLE { - 4 "Navedenega namestitvenega paketa ni mogoče odpreti. Preverite ime datoteke in poskusite znova." - 5 "pot %s ne obstaja" - 9 "vnesite disk %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "vnesite ime mape, ki vsebuje %s" - 12 "manjkajoč namestitveni vir za namestitev funkcije" - 13 "manjkajoč omrežni pogon za namestitev funkcijo" - 14 "funkcija z:" - 15 "izberite mapo, ki vsebuje %s" + 4 "Navedenega namestitvenega paketa ni mogoče odpreti. Preverite ime datoteke in poskusite znova." + 5 "pot %s ne obstaja" + 9 "vnesite disk %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "vnesite ime mape, ki vsebuje %s" + 12 "manjkajoč namestitveni vir za namestitev funkcije" + 13 "manjkajoč omrežni pogon za namestitev funkcijo" + 14 "funkcija z:" + 15 "izberite mapo, ki vsebuje %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Sq.rc b/dll/win32/msi/lang/msi_Sq.rc index 2565b5178b4..bb6c7702bb7 100644 --- a/dll/win32/msi/lang/msi_Sq.rc +++ b/dll/win32/msi/lang/msi_Sq.rc @@ -19,21 +19,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Paketa e specifikuar instalimi nuk mund të hapet. Ju lutem kontrolloni rrugën e dokumentit dhe të provoni përsëri." - 5 "rruga %s nuk u gjënd" - 9 "fusni diskun %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "hyr e cila dosje përmban %s" - 12 "instalo burimin për funksionin e munguar" - 13 "rrjet drive-ri për funksionin e munguar" - 14 "funksione nga:" - 15 "zgjidhni dosjen që përmban %s" + 4 "Paketa e specifikuar instalimi nuk mund të hapet. Ju lutem kontrolloni rrugën e dokumentit dhe të provoni përsëri." + 5 "rruga %s nuk u gjënd" + 9 "fusni diskun %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "hyr e cila dosje përmban %s" + 12 "instalo burimin për funksionin e munguar" + 13 "rrjet drive-ri për funksionin e munguar" + 14 "funksione nga:" + 15 "zgjidhni dosjen që përmban %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Sr.rc b/dll/win32/msi/lang/msi_Sr.rc index fc8b49994f2..eaaeb09f058 100644 --- a/dll/win32/msi/lang/msi_Sr.rc +++ b/dll/win32/msi/lang/msi_Sr.rc @@ -19,36 +19,320 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -#pragma code_page(65001) - LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN STRINGTABLE { - 4 "Instalacija ne može biti otvorena. Molimo proverite destinaciju fajla i pokušajte ponovo." - 5 "putanja %s nije nađena" - 9 "Ubacite disk %s" - 10 "Windows Instalacija programa %s\n\nSvrha:\nmsiexec komanda {traženi parametar} [opcioni parametar]\n\nInstalacija proizvoda:\n\t/i {paket|kod} [svojina]\n\t/package {paket|kod} [svojina]\n\t/a paket [svojina]\nPopravak instalacije:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|kod}\nUninstal programa:\n\t/uninstall {paket|kod} [svojina]\n\t/x {paket|kod} [svojina]\nReklama programa:\n\t/j[u|m] paket [/t pretvori] [/g id jezika]\nPrimeni peč:\n\t/p pečpaket [svojina]\n\t/p pečpaket /a paket [svojina]\nIzveštalj i Izgled Modifikatori za komande iznad:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] izvestaj\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistracija MSI Servisa:\n\t/y\n Uklanjanje MSI Servisa:\n\t/z\nPrikaži ovu Pomoć:\n\t/help\n\t/?\n" - 11 "unesite koji folder sadrži %s" - 12 "instalacija nedostaje" - 13 "mrežni drajv nedostaje" - 14 "dodatak sa:" - 15 "izaberite koji folder sadrži %s" + 4 "Instalacija ne može biti otvorena. Molimo proverite destinaciju fajla i pokušajte ponovo." + 5 "putanja %s nije nađena" + 9 "Ubacite disk %s" + 10 "Windows Instalacija programa %s\n\nSvrha:\nmsiexec komanda {traženi parametar} [opcioni parametar]\n\nInstalacija proizvoda:\n\t/i {paket|kod} [svojina]\n\t/package {paket|kod} [svojina]\n\t/a paket [svojina]\nPopravak instalacije:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|kod}\nUninstal programa:\n\t/uninstall {paket|kod} [svojina]\n\t/x {paket|kod} [svojina]\nReklama programa:\n\t/j[u|m] paket [/t pretvori] [/g id jezika]\nPrimeni peč:\n\t/p pečpaket [svojina]\n\t/p pečpaket /a paket [svojina]\nIzveštalj i Izgled Modifikatori za komande iznad:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] izvestaj\n\t/q{|n|b|r|f|n+|b+|b-}\nRegistracija MSI Servisa:\n\t/y\n Uklanjanje MSI Servisa:\n\t/z\nPrikaži ovu Pomoć:\n\t/help\n\t/?\n" + 11 "unesite koji folder sadrži %s" + 12 "instalacija nedostaje" + 13 "mrežni drajv nedostaje" + 14 "dodatak sa:" + 15 "izaberite koji folder sadrži %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC STRINGTABLE { - 4 "Инсталација не може бити отворена. Молимо проверите дестинацију фајла и покушајте поново." - 5 "путања %s није нађена" - 9 "Убаците диск %s" - 10 "Виндовс Инсталација програма %s\n\nСврха:\nmsiexec команда {тражени параметар} [опциони параметар]\n\nИнсталација производа:\n\t/i {пакет|код} [својина]\n\t/package {пакет|код} [својина]\n\t/a пакет [svojina]\nПоправак инсталације:\n\t/f[p|o|e|d|c|a|u|m|s|v] {пакет|код}\nБрисање програма:\n\t/uninstall {пакет|код} [svojina]\n\t/x {пакет|код} [својина]\nРеклама програма:\n\t/j[u|m] пакет [/t transform] [/g languageid]\nПримени печ:\n\t/p печпакет [својина]\n\t/p печпакет /a пакет [својина]\nИзвестај и Изглед Модификатора за команде изнад:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] извештај\n\t/q{|n|b|r|f|n+|b+|b-}\nРегистрација МСИ Сервиса:\n\t/y\nУклањање МСИ Сервиса:\n\t/z\nПрикажи ову Помоћ:\n\t/help\n\t/?\n" - 11 "Унесите који фолдер садржи %s" - 12 "Инсталација недостаје" - 13 "Мрежни драјв недостаје" - 14 "Додатак са:" - 15 "Изаберите који фолдер садржи %s" + 4 "Инсталација не може бити отворена. Молимо проверите дестинацију фајла и покушајте поново." + 5 "путања %s није нађена" + 9 "Убаците диск %s" + 10 "Виндовс Инсталација програма %s\n\nСврха:\nmsiexec команда {тражени параметар} [опциони параметар]\n\nИнсталација производа:\n\t/i {пакет|код} [својина]\n\t/package {пакет|код} [својина]\n\t/a пакет [svojina]\nПоправак инсталације:\n\t/f[p|o|e|d|c|a|u|m|s|v] {пакет|код}\nБрисање програма:\n\t/uninstall {пакет|код} [svojina]\n\t/x {пакет|код} [својина]\nРеклама програма:\n\t/j[u|m] пакет [/t transform] [/g languageid]\nПримени печ:\n\t/p печпакет [својина]\n\t/p печпакет /a пакет [својина]\nИзвестај и Изглед Модификатора за команде изнад:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] извештај\n\t/q{|n|b|r|f|n+|b+|b-}\nРегистрација МСИ Сервиса:\n\t/y\nУклањање МСИ Сервиса:\n\t/z\nПрикажи ову Помоћ:\n\t/help\n\t/?\n" + 11 "Унесите који фолдер садржи %s" + 12 "Инсталација недостаје" + 13 "Мрежни драјв недостаје" + 14 "Додатак са:" + 15 "Изаберите који фолдер садржи %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Sv.rc b/dll/win32/msi/lang/msi_Sv.rc index 1b907e1a3a7..f4aa3a4a9d6 100644 --- a/dll/win32/msi/lang/msi_Sv.rc +++ b/dll/win32/msi/lang/msi_Sv.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -#pragma code_page(65001) - STRINGTABLE { - 4 "Det angivna installationspaketet kunde inte öppnas. Kontrollera filsökvägen och försök igen." - 5 "sökvägen %s hittades inte" - 9 "mata in %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "ange vilken mapp som innehåller %s" - 12 "installationskälla för funktion saknar" - 13 "nätverksenhet för funktion saknar" - 14 "funktion från:" - 15 "välj den mapp som innehåller %s" + 4 "Det angivna installationspaketet kunde inte öppnas. Kontrollera filsökvägen och försök igen." + 5 "sökvägen %s hittades inte" + 9 "mata in %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "ange vilken mapp som innehåller %s" + 12 "installationskälla för funktion saknar" + 13 "nätverksenhet för funktion saknar" + 14 "funktion från:" + 15 "välj den mapp som innehåller %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Tr.rc b/dll/win32/msi/lang/msi_Tr.rc index f53423d5e79..14d87297745 100644 --- a/dll/win32/msi/lang/msi_Tr.rc +++ b/dll/win32/msi/lang/msi_Tr.rc @@ -18,21 +18,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -#pragma code_page(65001) - STRINGTABLE { - 4 "Belirtilen kurulum paketi açılamadı. Lütfen, kütüğün yolunu denetleyiniz ve yeiden deneyiniz." - 5 "%s yolu bulunamadı." - 9 "%s diskini takınız." - 10 "Windows Yükleyici %s\n\nKullanım:\nmsiexec komut {gerekli değişkenler} [seçimlik değişkenler]\n\nBir ürün yükle:\n\t/i {paket|ürün kodu} [husûsiyet]\n\t/package {paket|ürün kodu} [husûsiyet]\n\t/a paket [husûsiyet]\nBir kurulum onar:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|ürün kodu}\nBir ürün kaldır:\n\t/uninstall {paket|ürün kodu} [husûsiyet]\n\t/x {paket|ürün kodu} [husûsiyet]\nBir ürün bildir:\n\t/j[u|m] paket [/t dönüşüm] [/g dil kimliği]\nBir yama uygula:\n\t/p yama paketi [husûsiyet]\n\t/p yama paketi /a paket [husûsiyet]\nYukarıdaki komutlar için kayıt ve kullanıcı arayüzü tümleyicileri:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] kayıt kütüğü\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI hizmetini sakla:\n\t/y\nMSI hizmetinin kaydını sil:\n\t/z\nBu yardımı görüntüle:\n\t/help\n\t/?\n" - 11 "%s içeren dizini giriniz." - 12 "Husûsiyet eksikliği için kurulum kaynağı" - 13 "Husûsiyet eksikliği için ağ sürücüsü" - 14 "Şuradan özellik:" - 15 "%s içeren dizini seçiniz." + 4 "Belirtilen kurulum paketi açılamadı. Lütfen, kütüğün yolunu denetleyiniz ve yeiden deneyiniz." + 5 "%s yolu bulunamadı." + 9 "%s diskini takınız." + 10 "Windows Yükleyici %s\n\nKullanım:\nmsiexec komut {gerekli değişkenler} [seçimlik değişkenler]\n\nBir ürün yükle:\n\t/i {paket|ürün kodu} [husûsiyet]\n\t/package {paket|ürün kodu} [husûsiyet]\n\t/a paket [husûsiyet]\nBir kurulum onar:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|ürün kodu}\nBir ürün kaldır:\n\t/uninstall {paket|ürün kodu} [husûsiyet]\n\t/x {paket|ürün kodu} [husûsiyet]\nBir ürün bildir:\n\t/j[u|m] paket [/t dönüşüm] [/g dil kimliği]\nBir yama uygula:\n\t/p yama paketi [husûsiyet]\n\t/p yama paketi /a paket [husûsiyet]\nYukarıdaki komutlar için kayıt ve kullanıcı arayüzü tümleyicileri:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] kayıt kütüğü\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI hizmetini sakla:\n\t/y\nMSI hizmetinin kaydını sil:\n\t/z\nBu yardımı görüntüle:\n\t/help\n\t/?\n" + 11 "%s içeren dizini giriniz." + 12 "Husûsiyet eksikliği için kurulum kaynağı" + 13 "Husûsiyet eksikliği için ağ sürücüsü" + 14 "Şuradan özellik:" + 15 "%s içeren dizini seçiniz." +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Uk.rc b/dll/win32/msi/lang/msi_Uk.rc index 64135bd71d5..bd293eeb949 100644 --- a/dll/win32/msi/lang/msi_Uk.rc +++ b/dll/win32/msi/lang/msi_Uk.rc @@ -20,22 +20,161 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/* UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT STRINGTABLE { - 4 "Не вдалося відкрити вказаний пакет інсталяції. Перевірте шлях до файлу та спробуйте знов." - 5 "шлях %s не знайдено" - 9 "вставте диск %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "вкажіть папку, що містить %s" - 12 "джерело встановлення даної можливості не вказане" - 13 "мережевий диск для даної можливості не вказаний" - 14 "можливість з:" - 15 "виберіть папку, що містить %s" + 4 "Не вдалося відкрити вказаний пакет інсталяції. Перевірте шлях до файлу та спробуйте знов." + 5 "шлях %s не знайдено" + 9 "вставте диск %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "вкажіть папку, що містить %s" + 12 "джерело встановлення даної можливості не вказане" + 13 "мережевий диск для даної можливості не вказаний" + 14 "можливість з:" + 15 "виберіть папку, що містить %s" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/lang/msi_Zh.rc b/dll/win32/msi/lang/msi_Zh.rc index 9d028d59470..711686503e2 100644 --- a/dll/win32/msi/lang/msi_Zh.rc +++ b/dll/win32/msi/lang/msi_Zh.rc @@ -18,37 +18,320 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" - -/* Chinese text is encoded in UTF-8 */ -#pragma code_page(65001) - LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED STRINGTABLE { - 4 "不能打开所指定的安装软件包. 请检查文件路径后再试." - 5 "路径 %s 没找到" - 9 "插入软盘 %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "输入包含 %s 的文件夹" - 12 "本功能的安装源不存在" - 13 "本功能的网络驱动器不存在" - 14 "功能来自:" - 15 "选择包含 %s 的文件夹" + 4 "不能打开所指定的安装软件包. 请检查文件路径后再试." + 5 "路径 %s 没找到" + 9 "插入软盘 %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "输入包含 %s 的文件夹" + 12 "本功能的安装源不存在" + 13 "本功能的网络驱动器不存在" + 14 "功能来自:" + 15 "选择包含 %s 的文件夹" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL STRINGTABLE { - 4 "不能開啟所指定的安裝軟件包. 請檢查檔案路徑後再試." - 5 "路徑 %s 沒找到" - 9 "插入軟碟 %s" - 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parammeter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" - 11 "輸入包含 %s 的檔案夾" - 12 "本功能的安裝源不存在" - 13 "本功能的網路儲存槽不存在" - 14 "功能來自:" - 15 "選擇包含 %s 的檔案夾" + 4 "不能開啟所指定的安裝軟件包. 請檢查檔案路徑後再試." + 5 "路徑 %s 沒找到" + 9 "插入軟碟 %s" + 10 "Windows Installer %s\n\nUsage:\nmsiexec command {required parameter} [optional parameter]\n\nInstall a product:\n\t/i {package|productcode} [property]\n\t/package {package|productcode} [property]\n\t/a package [property]\nRepair an installation:\n\t/f[p|o|e|d|c|a|u|m|s|v] {package|productcode}\nUninstall a product:\n\t/uninstall {package|productcode} [property]\n\t/x {package|productcode} [property]\nAdvertise a product:\n\t/j[u|m] package [/t transform] [/g languageid]\nApply a patch:\n\t/p patchpackage [property]\n\t/p patchpackage /a package [property]\nLog and UI Modifiers for above commands:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] logfile\n\t/q{|n|b|r|f|n+|b+|b-}\nRegister MSI Service:\n\t/y\nUnregister MSI Service:\n\t/z\nDisplay this help:\n\t/help\n\t/?\n" + 11 "輸入包含 %s 的檔案夾" + 12 "本功能的安裝源不存在" + 13 "本功能的網路儲存槽不存在" + 14 "功能來自:" + 15 "選擇包含 %s 的檔案夾" +} + +/* Error messages */ +STRINGTABLE +{ + IDS_FATALEXIT "{{Fatal error: }}" + IDS_ERROR "{{Error [1]. }}" + IDS_WARNING "Warning [1]." + IDS_INFO "Info [1]." + IDS_INSTALLERROR "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}}" + IDS_OUTOFDISKSPACE "{{Disk full: }}" + IDS_ACTIONSTART "Action [Time]: [1]. [2]" + IDS_COMMONDATA "Message type: [1], Argument: [2]{, [3]}" + IDS_INFO_ACTIONSTART "Action start [Time]: [1]." + IDS_INFO_ACTIONENDED "Action ended [Time]: [1]. Return value [2]." + IDS_INFO_LOGGINGSTART "=== Logging started: [Date] [Time] ===" + + IDS_ERR_INSERTDISK "Please insert the disk: [2]" + IDS_ERR_CABNOTFOUND "Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it." +} + +/* Standard action description strings */ +STRINGTABLE +{ + IDS_DESC_ALLOCATEREGISTRYSPACE "Allocating registry space" + IDS_DESC_APPSEARCH "Searching for installed applications" + IDS_DESC_BINDIMAGE "Binding executables" + IDS_DESC_CCPSEARCH "Searching for qualifying products" + IDS_DESC_COSTFINALIZE "Computing space requirements" + IDS_DESC_COSTINITIALIZE "Computing space requirements" + IDS_DESC_CREATEFOLDERS "Creating folders" + IDS_DESC_CREATESHORTCUTS "Creating shortcuts" + IDS_DESC_DELETESERVICES "Deleting services" + IDS_DESC_DUPLICATEFILES "Creating duplicate files" + IDS_DESC_FILECOST "Computing space requirements" + IDS_DESC_FINDRELATEDPRODUCTS "Searching for related applications" + IDS_DESC_INSTALLADMINPACKAGE "Copying network install files" + IDS_DESC_INSTALLFILES "Copying new files" + IDS_DESC_INSTALLODBC "Installing ODBC components" + IDS_DESC_INSTALLSERVICES "Installing new services" + IDS_DESC_INSTALLSFPCATALOGFILE "Installing system catalog" + IDS_DESC_INSTALLVALIDATE "Validating install" + IDS_DESC_LAUNCHCONDITIONS "Evaluating launch conditions" + IDS_DESC_MIGRATEFEATURESTATES "Migrating feature states from related applications" + IDS_DESC_MOVEFILES "Moving files" + IDS_DESC_MSIPUBLISHASSEMBLIES "Publishing assembly information" + IDS_DESC_MSIUNPUBLISHASSEMBLIES "Unpublishing assembly information" + IDS_DESC_PATCHFILES "Patching files" + IDS_DESC_PROCESSCOMPONENTS "Updating component registration" + IDS_DESC_PUBLISHCOMPONENTS "Publishing Qualified Components" + IDS_DESC_PUBLISHFEATURES "Publishing Product Features" + IDS_DESC_PUBLISHPRODUCT "Publishing product information" + IDS_DESC_REGISTERCLASSINFO "Registering Class servers" + IDS_DESC_REGISTERCOMPLUS "Registering COM+ Applications and Components" + IDS_DESC_REGISTEREXTENSIONINFO "Registering extension servers" + IDS_DESC_REGISTERFONTS "Registering fonts" + IDS_DESC_REGISTERMIMEINFO "Registering MIME info" + IDS_DESC_REGISTERPRODUCT "Registering product" + IDS_DESC_REGISTERPROGIDINFO "Registering program identifiers" + IDS_DESC_REGISTERTYPELIBRARIES "Registering type libraries" + IDS_DESC_REGISTERUSER "Registering user" + IDS_DESC_REMOVEDUPLICATEFILES "Removing duplicated files" + IDS_DESC_REMOVEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_REMOVEEXISTINGPRODUCTS "Removing applications" + IDS_DESC_REMOVEFILES "Removing files" + IDS_DESC_REMOVEFOLDERS "Removing folders" + IDS_DESC_REMOVEINIVALUES "Removing INI files entries" + IDS_DESC_REMOVEODBC "Removing ODBC components" + IDS_DESC_REMOVEREGISTRYVALUES "Removing system registry values" + IDS_DESC_REMOVESHORTCUTS "Removing shortcuts" + IDS_DESC_RMCCPSEARCH "Searching for qualifying products" + IDS_DESC_SELFREGMODULES "Registering modules" + IDS_DESC_SELFUNREGMODULES "Unregistering modules" + IDS_DESC_SETODBCFOLDERS "Initializing ODBC directories" + IDS_DESC_STARTSERVICES "Starting services" + IDS_DESC_STOPSERVICES "Stopping services" + IDS_DESC_UNPUBLISHCOMPONENTS "Unpublishing Qualified Components" + IDS_DESC_UNPUBLISHFEATURES "Unpublishing Product Features" + IDS_DESC_UNPUBLISHPRODUCT "Unpublishing product information" + IDS_DESC_UNREGISTERCLASSINFO "Unregister Class servers" + IDS_DESC_UNREGISTERCOMPLUS "Unregistering COM+ Applications and Components" + IDS_DESC_UNREGISTEREXTENSIONINFO "Unregistering extension servers" + IDS_DESC_UNREGISTERFONTS "Unregistering fonts" + IDS_DESC_UNREGISTERMIMEINFO "Unregistering MIME info" + IDS_DESC_UNREGISTERPROGIDINFO "Unregistering program identifiers" + IDS_DESC_UNREGISTERTYPELIBRARIES "Unregistering type libraries" + IDS_DESC_WRITEENVIRONMENTSTRINGS "Updating environment strings" + IDS_DESC_WRITEINIVALUES "Writing INI files values" + IDS_DESC_WRITEREGISTRYVALUES "Writing system registry values" +} + +/* Standard action template strings */ +STRINGTABLE +{ + IDS_TEMP_ALLOCATEREGISTRYSPACE "Free space: [1]" + IDS_TEMP_APPSEARCH "Property: [1], Signature: [2]" + IDS_TEMP_BINDIMAGE "File: [1]" + IDS_TEMP_CREATEFOLDERS "Folder: [1]" + IDS_TEMP_CREATESHORTCUTS "Shortcut: [1]" + IDS_TEMP_DELETESERVICES "Service: [1]" + IDS_TEMP_DUPLICATEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_FINDRELATEDPRODUCTS "Found application: [1]" + IDS_TEMP_INSTALLADMINPACKAGE "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_INSTALLSERVICES "Service: [2]" + IDS_TEMP_INSTALLSFPCATALOGFILE "File: [1], Dependencies: [2]" + IDS_TEMP_MIGRATEFEATURESTATES "Application: [1]" + IDS_TEMP_MOVEFILES "File: [1], Directory: [9], Size: [6]" + IDS_TEMP_MSIPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_MSIUNPUBLISHASSEMBLIES "Application Context:[1], Assembly Name:[2]" + IDS_TEMP_PATCHFILES "File: [1], Directory: [2], Size: [3]" + IDS_TEMP_PUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_PUBLISHFEATURES "Feature: [1]" + IDS_TEMP_REGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_REGISTERCOMPLUS "AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}" + IDS_TEMP_REGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_REGISTERFONTS "Font: [1]" + IDS_TEMP_REGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_REGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_REGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_REMOVEDUPLICATEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_REMOVEEXISTINGPRODUCTS "Application: [1], Command line: [2]" + IDS_TEMP_REMOVEFILES "File: [1], Directory: [9]" + IDS_TEMP_REMOVEFOLDERS "Folder: [1]" + IDS_TEMP_REMOVEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_REMOVEREGISTRYVALUES "Key: [1], Name: [2]" + IDS_TEMP_REMOVESHORTCUTS "Shortcut: [1]" + IDS_TEMP_SELFREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_SELFUNREGMODULES "File: [1], Folder: [2]" + IDS_TEMP_STARTSERVICES "Service: [1]" + IDS_TEMP_STOPSERVICES "Service: [1]" + IDS_TEMP_UNPUBLISHCOMPONENTS "Component ID: [1], Qualifier: [2]" + IDS_TEMP_UNPUBLISHFEATURES "Feature: [1]" + IDS_TEMP_UNREGISTERCLASSINFO "Class Id: [1]" + IDS_TEMP_UNREGISTERCOMPLUS "AppId: [1]{{, AppType: [2]}}" + IDS_TEMP_UNREGISTEREXTENSIONINFO "Extension: [1]" + IDS_TEMP_UNREGISTERFONTS "Font: [1]" + IDS_TEMP_UNREGISTERMIMEINFO "MIME Content Type: [1], Extension: [2]" + IDS_TEMP_UNREGISTERPROGIDINFO "ProgId: [1]" + IDS_TEMP_UNREGISTERTYPELIBRARIES "LibID: [1]" + IDS_TEMP_WRITEENVIRONMENTSTRINGS "Name: [1], Value: [2], Action [3]" + IDS_TEMP_WRITEINIVALUES "File: [1], Section: [2], Key: [3], Value: [4]" + IDS_TEMP_WRITEREGISTRYVALUES "Key: [1], Name: [2], Value: [3]" } diff --git a/dll/win32/msi/media.c b/dll/win32/msi/media.c index c975f73b923..627ced1a0aa 100644 --- a/dll/win32/msi/media.c +++ b/dll/win32/msi/media.c @@ -67,44 +67,22 @@ static BOOL source_matches_volume(MSIMEDIAINFO *mi, LPCWSTR source_root) static UINT msi_change_media(MSIPACKAGE *package, MSIMEDIAINFO *mi) { - LPWSTR error, error_dialog; + MSIRECORD *record; LPWSTR source_dir; - UINT r = ERROR_SUCCESS; + UINT r = IDRETRY; - static const WCHAR error_prop[] = {'E','r','r','o','r','D','i','a','l','o','g',0}; - - if ((package->ui_level & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE && - !gUIHandlerA && !gUIHandlerW && !gUIHandlerRecord) return ERROR_SUCCESS; - - error = msi_build_error_string(package, 1302, 1, mi->disk_prompt); - error_dialog = msi_dup_property(package->db, error_prop); source_dir = msi_dup_property(package->db, szSourceDir); + record = MSI_CreateRecord(2); - while (r == ERROR_SUCCESS && !source_matches_volume(mi, source_dir)) + while (r == IDRETRY && !source_matches_volume(mi, source_dir)) { - r = msi_spawn_error_dialog(package, error_dialog, error); - - if (gUIHandlerW) - { - gUIHandlerW(gUIContext, MB_RETRYCANCEL | INSTALLMESSAGE_ERROR, error); - } - else if (gUIHandlerA) - { - char *msg = strdupWtoA(error); - gUIHandlerA(gUIContext, MB_RETRYCANCEL | INSTALLMESSAGE_ERROR, msg); - msi_free(msg); - } - else if (gUIHandlerRecord) - { - MSIHANDLE rec = MsiCreateRecord(1); - MsiRecordSetStringW(rec, 0, error); - gUIHandlerRecord(gUIContext, MB_RETRYCANCEL | INSTALLMESSAGE_ERROR, rec); - MsiCloseHandle(rec); - } + MSI_RecordSetStringW(record, 0, NULL); + MSI_RecordSetInteger(record, 1, MSIERR_CABNOTFOUND); + MSI_RecordSetStringW(record, 2, mi->disk_prompt); + r = MSI_ProcessMessage(package, INSTALLMESSAGE_ERROR | MB_RETRYCANCEL, record); } - msi_free(error); - msi_free(error_dialog); + msiobj_release(&record->hdr); msi_free(source_dir); return r; diff --git a/dll/win32/msi/msi.c b/dll/win32/msi/msi.c index 66bda28d081..092aac82c3a 100644 --- a/dll/win32/msi/msi.c +++ b/dll/win32/msi/msi.c @@ -2293,7 +2293,16 @@ INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel, HWND *phWnd) TRACE("%08x %p\n", dwUILevel, phWnd); - gUILevel = dwUILevel; + if (dwUILevel & ~(INSTALLUILEVEL_MASK|INSTALLUILEVEL_HIDECANCEL|INSTALLUILEVEL_PROGRESSONLY| + INSTALLUILEVEL_ENDDIALOG|INSTALLUILEVEL_SOURCERESONLY)) + { + FIXME("Unrecognized flags %08x\n", dwUILevel); + return INSTALLUILEVEL_NOCHANGE; + } + + if (dwUILevel != INSTALLUILEVEL_NOCHANGE) + gUILevel = dwUILevel; + if (phWnd) { gUIhwnd = *phWnd; @@ -4198,8 +4207,8 @@ UINT WINAPI MsiSetExternalUIRecord( INSTALLUI_HANDLER_RECORD handler, *prev = gUIHandlerRecord; gUIHandlerRecord = handler; - gUIFilter = filter; - gUIContext = context; + gUIFilterRecord = filter; + gUIContextRecord = context; return ERROR_SUCCESS; } diff --git a/dll/win32/msi/msi.rc b/dll/win32/msi/msi.rc index 7bcadb24447..97a76d1504c 100644 --- a/dll/win32/msi/msi.rc +++ b/dll/win32/msi/msi.rc @@ -20,46 +20,7 @@ #include -LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT - -STRINGTABLE -{ - 4 "The specified installation package could not be opened. Please check the file path and try again." - 5 "path %s not found" - 9 "insert disk %s" - 10 "Windows Installer %s\n\n\ -Usage:\n\ -msiexec command {required parameter} [optional parameter]\n\n\ -Install a product:\n\ -\t/i {package|product_code} [property]\n\ -\t/package {package|product_code} [property]\n\ -\t/a package [property]\n\ -Repair an installation:\n\ -\t/f[p|o|e|d|c|a|u|m|s|v] {package|product_code}\n\ -Uninstall a product:\n\ -\t/uninstall {package|product_code} [property]\n\ -\t/x {package|product_code} [property]\n\ -Advertise a product:\n\ -\t/j[u|m] package [/t transform] [/g languageid]\n\ -Apply a patch:\n\ -\t/p patch_package [property]\n\ -\t/p patch_package /a package [property]\n\ -Log and user interface modifiers for the above commands:\n\ -\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] log_file\n\ -\t/q{|n|b|r|f|n+|b+|b-}\n\ -Register the MSI Service:\n\ -\t/y\n\ -Unregister the MSI Service:\n\ -\t/z\n\ -Display this help:\n\ -\t/help\n\ -\t/?\n" - 11 "enter which folder contains %s" - 12 "install source for feature missing" - 13 "network drive for feature missing" - 14 "feature from:" - 15 "choose which folder contains %s" -} +#include "resource.h" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL @@ -90,3 +51,5 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #define WINE_PRODUCTVERSION_STR "4.5.6001.22308" #include + +#include "rsrc.rc" diff --git a/dll/win32/msi/msi_main.c b/dll/win32/msi/msi_main.c index 0bf992189c4..eaab63d1ea9 100644 --- a/dll/win32/msi/msi_main.c +++ b/dll/win32/msi/msi_main.c @@ -27,13 +27,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(msi); static LONG dll_count; /* the UI level */ -INSTALLUILEVEL gUILevel = INSTALLUILEVEL_BASIC; +INSTALLUILEVEL gUILevel = INSTALLUILEVEL_DEFAULT; HWND gUIhwnd = 0; INSTALLUI_HANDLERA gUIHandlerA = NULL; INSTALLUI_HANDLERW gUIHandlerW = NULL; INSTALLUI_HANDLER_RECORD gUIHandlerRecord = NULL; DWORD gUIFilter = 0; +DWORD gUIFilterRecord = 0; LPVOID gUIContext = NULL; +LPVOID gUIContextRecord = NULL; WCHAR *gszLogFile = NULL; HINSTANCE msi_hInstance; diff --git a/dll/win32/msi/msipriv.h b/dll/win32/msi/msipriv.h index 2595e4dd2f7..d680a024351 100644 --- a/dll/win32/msi/msipriv.h +++ b/dll/win32/msi/msipriv.h @@ -52,6 +52,8 @@ #include #include +#include "resource.h" + static const BOOL is_64bit = sizeof(void *) > sizeof(int); BOOL is_wow64 DECLSPEC_HIDDEN; @@ -404,6 +406,8 @@ typedef struct tagMSIPACKAGE struct list cabinet_streams; LPWSTR ActionFormat; LPWSTR LastAction; + LPWSTR LastActionTemplate; + UINT LastActionResult; UINT action_progress_increment; HANDLE log_file; IAssemblyCache *cache_net[CLR_VERSION_MAX]; @@ -426,7 +430,6 @@ typedef struct tagMSIPACKAGE BOOL delete_on_close; INSTALLUILEVEL ui_level; - UINT CurrentInstallState; msi_dialog *dialog; LPWSTR next_dialog; float center_x; @@ -814,7 +817,8 @@ extern void msi_free_patchinfo( MSIPATCHINFO *patch ) DECLSPEC_HIDDEN; /* action internals */ extern UINT MSI_InstallPackage( MSIPACKAGE *, LPCWSTR, LPCWSTR ) DECLSPEC_HIDDEN; -extern UINT ACTION_DialogBox( MSIPACKAGE*, LPCWSTR) DECLSPEC_HIDDEN; +extern INT ACTION_ShowDialog( MSIPACKAGE*, LPCWSTR) DECLSPEC_HIDDEN; +extern INT ACTION_DialogBox( MSIPACKAGE*, LPCWSTR) DECLSPEC_HIDDEN; extern UINT ACTION_ForceReboot(MSIPACKAGE *package) DECLSPEC_HIDDEN; extern UINT MSI_Sequence( MSIPACKAGE *package, LPCWSTR szTable ) DECLSPEC_HIDDEN; extern UINT MSI_SetFeatureStates( MSIPACKAGE *package ) DECLSPEC_HIDDEN; @@ -851,6 +855,7 @@ extern BOOL MSI_RecordsAreEqual( MSIRECORD *, MSIRECORD * ) DECLSPEC_HIDDEN; extern BOOL MSI_RecordsAreFieldsEqual(MSIRECORD *a, MSIRECORD *b, UINT field) DECLSPEC_HIDDEN; extern UINT msi_record_set_string(MSIRECORD *, UINT, const WCHAR *, int) DECLSPEC_HIDDEN; extern const WCHAR *msi_record_get_string(const MSIRECORD *, UINT, int *) DECLSPEC_HIDDEN; +extern void dump_record(MSIRECORD *) DECLSPEC_HIDDEN; /* stream internals */ extern void enum_stream_names( IStorage *stg ) DECLSPEC_HIDDEN; @@ -883,6 +888,7 @@ extern UINT MSI_SetInstallLevel( MSIPACKAGE *package, int iInstallLevel ) DECLSP extern MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *, LPCWSTR ) DECLSPEC_HIDDEN; extern UINT MSI_OpenPackageW( LPCWSTR szPackage, MSIPACKAGE **pPackage ) DECLSPEC_HIDDEN; extern UINT MSI_SetTargetPathW( MSIPACKAGE *, LPCWSTR, LPCWSTR ) DECLSPEC_HIDDEN; +extern INT MSI_ProcessMessageVerbatim( MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD * ) DECLSPEC_HIDDEN; extern INT MSI_ProcessMessage( MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD * ) DECLSPEC_HIDDEN; extern MSICONDITION MSI_EvaluateConditionW( MSIPACKAGE *, LPCWSTR ) DECLSPEC_HIDDEN; extern UINT MSI_GetComponentStateW( MSIPACKAGE *, LPCWSTR, INSTALLSTATE *, INSTALLSTATE * ) DECLSPEC_HIDDEN; @@ -961,7 +967,6 @@ extern LONG msi_reg_set_subkey_val( HKEY hkey, LPCWSTR path, LPCWSTR name, LPCWS extern void msi_dialog_check_messages( HANDLE ) DECLSPEC_HIDDEN; extern void msi_dialog_destroy( msi_dialog* ) DECLSPEC_HIDDEN; extern void msi_dialog_unregister_class( void ) DECLSPEC_HIDDEN; -extern UINT msi_spawn_error_dialog( MSIPACKAGE*, LPWSTR, LPWSTR ) DECLSPEC_HIDDEN; /* summary information */ extern UINT msi_get_suminfo( IStorage *stg, UINT uiUpdateCount, MSISUMMARYINFO **si ) DECLSPEC_HIDDEN; @@ -987,7 +992,9 @@ extern INSTALLUI_HANDLERA gUIHandlerA DECLSPEC_HIDDEN; extern INSTALLUI_HANDLERW gUIHandlerW DECLSPEC_HIDDEN; extern INSTALLUI_HANDLER_RECORD gUIHandlerRecord DECLSPEC_HIDDEN; extern DWORD gUIFilter DECLSPEC_HIDDEN; +extern DWORD gUIFilterRecord DECLSPEC_HIDDEN; extern LPVOID gUIContext DECLSPEC_HIDDEN; +extern LPVOID gUIContextRecord DECLSPEC_HIDDEN; extern WCHAR *gszLogFile DECLSPEC_HIDDEN; extern HINSTANCE msi_hInstance DECLSPEC_HIDDEN; @@ -1047,7 +1054,6 @@ extern WCHAR *msi_create_component_advertise_string(MSIPACKAGE *, MSICOMPONENT * extern void ACTION_UpdateComponentStates(MSIPACKAGE *package, MSIFEATURE *feature) DECLSPEC_HIDDEN; extern UINT msi_register_unique_action(MSIPACKAGE *, const WCHAR *) DECLSPEC_HIDDEN; extern BOOL msi_action_is_unique(const MSIPACKAGE *, const WCHAR *) DECLSPEC_HIDDEN; -extern WCHAR *msi_build_error_string(MSIPACKAGE *, UINT, DWORD, ...) DECLSPEC_HIDDEN; extern UINT msi_set_last_used_source(LPCWSTR product, LPCWSTR usersid, MSIINSTALLCONTEXT context, DWORD options, LPCWSTR value) DECLSPEC_HIDDEN; extern UINT msi_create_empty_local_file(LPWSTR path, LPCWSTR suffix) DECLSPEC_HIDDEN; @@ -1063,6 +1069,7 @@ extern WCHAR *msi_get_assembly_path(MSIPACKAGE *, const WCHAR *) DECLSPEC_HIDDEN extern WCHAR *msi_font_version_from_file(const WCHAR *) DECLSPEC_HIDDEN; extern WCHAR **msi_split_string(const WCHAR *, WCHAR) DECLSPEC_HIDDEN; extern UINT msi_set_original_database_property(MSIDATABASE *, const WCHAR *) DECLSPEC_HIDDEN; +extern WCHAR *msi_get_error_message(MSIDATABASE *, int) DECLSPEC_HIDDEN; /* media */ @@ -1112,7 +1119,6 @@ extern DWORD call_script(MSIHANDLE hPackage, INT type, LPCWSTR script, LPCWSTR f /* User interface messages from the actions */ extern void msi_ui_progress(MSIPACKAGE *, int, int, int, int) DECLSPEC_HIDDEN; -extern void msi_ui_actiondata(MSIPACKAGE *, const WCHAR *, MSIRECORD *) DECLSPEC_HIDDEN; /* common strings */ static const WCHAR szSourceDir[] = {'S','o','u','r','c','e','D','i','r',0}; diff --git a/dll/win32/msi/package.c b/dll/win32/msi/package.c index 54b8033b046..e2c383499ca 100644 --- a/dll/win32/msi/package.c +++ b/dll/win32/msi/package.c @@ -305,6 +305,7 @@ static void free_package_structures( MSIPACKAGE *package ) msi_free( package->ProductCode ); msi_free( package->ActionFormat ); msi_free( package->LastAction ); + msi_free( package->LastActionTemplate ); msi_free( package->langids ); /* cleanup control event subscriptions */ @@ -326,6 +327,7 @@ static void MSI_FreePackage( MSIOBJECTHDR *arg) if (package->delete_on_close) DeleteFileW( package->localfile ); msi_free( package->localfile ); + MSI_ProcessMessage(NULL, INSTALLMESSAGE_TERMINATE, 0); } static UINT create_temp_property_table(MSIPACKAGE *package) @@ -646,7 +648,6 @@ static VOID set_installer_properties(MSIPACKAGE *package) HKEY hkey; LPWSTR username, companyname; SYSTEM_INFO sys_info; - SYSTEMTIME systemtime; LANGID langid; static const WCHAR szCommonFilesFolder[] = {'C','o','m','m','o','n','F','i','l','e','s','F','o','l','d','e','r',0}; @@ -708,8 +709,6 @@ static VOID set_installer_properties(MSIPACKAGE *package) }; static const WCHAR szUSERNAME[] = {'U','S','E','R','N','A','M','E',0}; static const WCHAR szCOMPANYNAME[] = {'C','O','M','P','A','N','Y','N','A','M','E',0}; - static const WCHAR szDate[] = {'D','a','t','e',0}; - static const WCHAR szTime[] = {'T','i','m','e',0}; static const WCHAR szUserLanguageID[] = {'U','s','e','r','L','a','n','g','u','a','g','e','I','D',0}; static const WCHAR szSystemLangID[] = {'S','y','s','t','e','m','L','a','n','g','u','a','g','e','I','D',0}; static const WCHAR szProductState[] = {'P','r','o','d','u','c','t','S','t','a','t','e',0}; @@ -718,8 +717,6 @@ static VOID set_installer_properties(MSIPACKAGE *package) static const WCHAR szPrintHoodFolder[] = {'P','r','i','n','t','H','o','o','d','F','o','l','d','e','r',0}; static const WCHAR szRecentFolder[] = {'R','e','c','e','n','t','F','o','l','d','e','r',0}; static const WCHAR szComputerName[] = {'C','o','m','p','u','t','e','r','N','a','m','e',0}; - static const WCHAR szBrowseProperty[] = {'_','B','r','o','w','s','e','P','r','o','p','e','r','t','y',0}; - static const WCHAR szInstallDir[] = {'I','N','S','T','A','L','L','D','I','R',0}; /* * Other things that probably should be set: @@ -940,22 +937,6 @@ static VOID set_installer_properties(MSIPACKAGE *package) if ( set_user_sid_prop( package ) != ERROR_SUCCESS) ERR("Failed to set the UserSID property\n"); - /* Date and time properties */ - GetSystemTime( &systemtime ); - if (GetDateFormatW( LOCALE_USER_DEFAULT, DATE_SHORTDATE, &systemtime, - NULL, bufstr, sizeof(bufstr)/sizeof(bufstr[0]) )) - msi_set_property( package->db, szDate, bufstr, -1 ); - else - ERR("Couldn't set Date property: GetDateFormat failed with error %d\n", GetLastError()); - - if (GetTimeFormatW( LOCALE_USER_DEFAULT, - TIME_FORCE24HOURFORMAT | TIME_NOTIMEMARKER, - &systemtime, NULL, bufstr, - sizeof(bufstr)/sizeof(bufstr[0]) )) - msi_set_property( package->db, szTime, bufstr, -1 ); - else - ERR("Couldn't set Time property: GetTimeFormat failed with error %d\n", GetLastError()); - set_msi_assembly_prop( package ); langid = GetUserDefaultLangID(); @@ -991,7 +972,6 @@ static VOID set_installer_properties(MSIPACKAGE *package) msi_free( computername ); } } - msi_set_property( package->db, szBrowseProperty, szInstallDir, -1 ); } static MSIPACKAGE *msi_alloc_package( void ) @@ -1069,6 +1049,9 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url ) msiobj_addref( &db->hdr ); package->db = db; + package->LastAction = NULL; + package->LastActionTemplate = NULL; + package->LastActionResult = MSI_NULL_INTEGER; package->WordCount = 0; package->PackagePath = strdupW( db->path ); package->BaseURL = strdupW( base_url ); @@ -1441,6 +1424,7 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) MSIDATABASE *db; MSIPACKAGE *package; MSIHANDLE handle; + MSIRECORD *data_row, *info_row; LPWSTR ptr, base_url = NULL; UINT r; WCHAR localfile[MAX_PATH], cachefile[MAX_PATH]; @@ -1448,9 +1432,13 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) DWORD index = 0; MSISUMMARYINFO *si; BOOL delete_on_close = FALSE; + LPWSTR productname; + WCHAR *info_template; TRACE("%s %p\n", debugstr_w(szPackage), pPackage); + MSI_ProcessMessage(NULL, INSTALLMESSAGE_INITIALIZE, 0); + localfile[0] = 0; if( szPackage[0] == '#' ) { @@ -1581,6 +1569,40 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) if (gszLogFile) package->log_file = CreateFileW( gszLogFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); + + /* FIXME: when should these messages be sent? */ + data_row = MSI_CreateRecord(3); + if (!data_row) + return ERROR_OUTOFMEMORY; + MSI_RecordSetStringW(data_row, 0, NULL); + MSI_RecordSetInteger(data_row, 1, 0); + MSI_RecordSetInteger(data_row, 2, package->num_langids ? package->langids[0] : 0); + MSI_RecordSetInteger(data_row, 3, msi_get_string_table_codepage(package->db->strings)); + MSI_ProcessMessageVerbatim(package, INSTALLMESSAGE_COMMONDATA, data_row); + + info_row = MSI_CreateRecord(0); + if (!info_row) + { + msiobj_release(&data_row->hdr); + return ERROR_OUTOFMEMORY; + } + info_template = msi_get_error_message(package->db, MSIERR_INFO_LOGGINGSTART); + MSI_RecordSetStringW(info_row, 0, info_template); + msi_free(info_template); + MSI_ProcessMessage(package, INSTALLMESSAGE_INFO|MB_ICONHAND, info_row); + + MSI_ProcessMessage(package, INSTALLMESSAGE_COMMONDATA, data_row); + + productname = msi_dup_property(package->db, INSTALLPROPERTY_PRODUCTNAMEW); + MSI_RecordSetInteger(data_row, 1, 1); + MSI_RecordSetStringW(data_row, 2, productname); + MSI_RecordSetStringW(data_row, 3, NULL); + MSI_ProcessMessage(package, INSTALLMESSAGE_COMMONDATA, data_row); + + msi_free(productname); + msiobj_release(&info_row->hdr); + msiobj_release(&data_row->hdr); + *pPackage = package; return ERROR_SUCCESS; } @@ -1612,6 +1634,8 @@ UINT WINAPI MsiOpenPackageExW(LPCWSTR szPackage, DWORD dwOptions, MSIHANDLE *phP ret = ERROR_NOT_ENOUGH_MEMORY; msiobj_release( &package->hdr ); } + else + MSI_ProcessMessage(NULL, INSTALLMESSAGE_TERMINATE, 0); return ret; } @@ -1678,18 +1702,169 @@ MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall) return handle; } -INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record ) +static INT internal_ui_handler(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record, LPCWSTR message) { static const WCHAR szActionData[] = {'A','c','t','i','o','n','D','a','t','a',0}; - static const WCHAR szSetProgress[] = {'S','e','t','P','r','o','g','r','e','s','s',0}; static const WCHAR szActionText[] = {'A','c','t','i','o','n','T','e','x','t',0}; - MSIRECORD *uirow; - LPWSTR deformated, message; - DWORD i, len, total_len, log_type = 0; + static const WCHAR szSetProgress[] = {'S','e','t','P','r','o','g','r','e','s','s',0}; + static const WCHAR szWindows_Installer[] = + {'W','i','n','d','o','w','s',' ','I','n','s','t','a','l','l','e','r',0}; + + if (!package || (package->ui_level & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE) + return 0; + + /* todo: check if message needs additional styles (topmost/foreground/modality?) */ + + switch (eMessageType & 0xff000000) + { + case INSTALLMESSAGE_FATALEXIT: + case INSTALLMESSAGE_ERROR: + case INSTALLMESSAGE_OUTOFDISKSPACE: + if (package->ui_level & INSTALLUILEVEL_PROGRESSONLY) return 0; + if (!(eMessageType & MB_ICONMASK)) + eMessageType |= MB_ICONEXCLAMATION; + return MessageBoxW(gUIhwnd, message, szWindows_Installer, eMessageType & 0x00ffffff); + case INSTALLMESSAGE_WARNING: + if (package->ui_level & INSTALLUILEVEL_PROGRESSONLY) return 0; + if (!(eMessageType & MB_ICONMASK)) + eMessageType |= MB_ICONASTERISK; + return MessageBoxW(gUIhwnd, message, szWindows_Installer, eMessageType & 0x00ffffff); + case INSTALLMESSAGE_USER: + if (package->ui_level & INSTALLUILEVEL_PROGRESSONLY) return 0; + if (!(eMessageType & MB_ICONMASK)) + eMessageType |= MB_USERICON; + return MessageBoxW(gUIhwnd, message, szWindows_Installer, eMessageType & 0x00ffffff); + case INSTALLMESSAGE_INFO: + case INSTALLMESSAGE_INITIALIZE: + case INSTALLMESSAGE_TERMINATE: + return 0; + case INSTALLMESSAGE_SHOWDIALOG: + { + LPWSTR dialog = msi_dup_record_field(record, 0); + INT rc = ACTION_DialogBox(package, dialog); + msi_free(dialog); + return rc; + } + case INSTALLMESSAGE_ACTIONSTART: + { + LPWSTR deformatted; + MSIRECORD *uirow = MSI_CreateRecord(1); + if (!uirow) return -1; + deformat_string(package, MSI_RecordGetString(record, 2), &deformatted); + MSI_RecordSetStringW(uirow, 1, deformatted); + msi_event_fire(package, szActionText, uirow); + + msi_free(deformatted); + msiobj_release(&uirow->hdr); + return 1; + } + case INSTALLMESSAGE_ACTIONDATA: + { + MSIRECORD *uirow = MSI_CreateRecord(1); + if (!uirow) return -1; + MSI_RecordSetStringW(uirow, 1, message); + msi_event_fire(package, szActionData, uirow); + msiobj_release(&uirow->hdr); + + if (package->action_progress_increment) + { + uirow = MSI_CreateRecord(2); + if (!uirow) return -1; + MSI_RecordSetInteger(uirow, 1, 2); + MSI_RecordSetInteger(uirow, 2, package->action_progress_increment); + msi_event_fire(package, szSetProgress, uirow); + msiobj_release(&uirow->hdr); + } + return 1; + } + case INSTALLMESSAGE_PROGRESS: + msi_event_fire(package, szSetProgress, record); + return 1; + case INSTALLMESSAGE_COMMONDATA: + switch (MSI_RecordGetInteger(record, 1)) + { + case 0: + case 1: + /* do nothing */ + return 0; + default: + /* fall through */ + ; + } + default: + FIXME("internal UI not implemented for message 0x%08x (UI level = %x)\n", eMessageType, package->ui_level); + return 0; + } +} + +static const WCHAR szActionNotFound[] = {'D','E','B','U','G',':',' ','E','r','r','o','r',' ','[','1',']',':',' ',' ','A','c','t','i','o','n',' ','n','o','t',' ','f','o','u','n','d',':',' ','[','2',']',0}; + +static const struct +{ + int id; + const WCHAR *text; +} +internal_errors[] = +{ + {2726, szActionNotFound}, + {0} +}; + +static LPCWSTR get_internal_error_message(int error) +{ + int i = 0; + + while (internal_errors[i].id != 0) + { + if (internal_errors[i].id == error) + return internal_errors[i].text; + i++; + } + + FIXME("missing error message %d\n", error); + return NULL; +} + +/* Returned string must be freed */ +LPWSTR msi_get_error_message(MSIDATABASE *db, int error) +{ + static const WCHAR query[] = + {'S','E','L','E','C','T',' ','`','M','e','s','s','a','g','e','`',' ', + 'F','R','O','M',' ','`','E','r','r','o','r','`',' ','W','H','E','R','E',' ', + '`','E','r','r','o','r','`',' ','=',' ','%','i',0}; + MSIRECORD *record; + LPWSTR ret = NULL; + + if ((record = MSI_QueryGetRecord(db, query, error))) + { + ret = msi_dup_record_field(record, 1); + msiobj_release(&record->hdr); + } + else if (error < 2000) + { + int len = LoadStringW(msi_hInstance, IDS_ERROR_BASE + error, (LPWSTR) &ret, 0); + if (len) + { + ret = msi_alloc((len + 1) * sizeof(WCHAR)); + LoadStringW(msi_hInstance, IDS_ERROR_BASE + error, ret, len + 1); + } + else + ret = NULL; + } + + return ret; +} + +INT MSI_ProcessMessageVerbatim(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record) +{ + LPWSTR message = {0}; + DWORD len, log_type = 0; + UINT res; INT rc = 0; char *msg; TRACE("%x\n", eMessageType); + if (TRACE_ON(msi)) dump_record(record); if ((eMessageType & 0xff000000) == INSTALLMESSAGE_FATALEXIT) log_type |= INSTALLLOGMODE_FATALEXIT; @@ -1720,97 +1895,48 @@ INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIREC if ((eMessageType & 0xff000000) == INSTALLMESSAGE_SHOWDIALOG) log_type |= INSTALLLOGMODE_SHOWDIALOG; - if ((eMessageType & 0xff000000) == INSTALLMESSAGE_ACTIONSTART) - { - static const WCHAR template_s[]= - {'A','c','t','i','o','n',' ','%','s',':',' ','%','s','.',' ',0}; - static const WCHAR format[] = - {'H','H','\'',':','\'','m','m','\'',':','\'','s','s',0}; - WCHAR timet[0x100]; - LPCWSTR action_text, action; - LPWSTR deformatted = NULL; - - GetTimeFormatW(LOCALE_USER_DEFAULT, 0, NULL, format, timet, 0x100); - - action = MSI_RecordGetString(record, 1); - action_text = MSI_RecordGetString(record, 2); - - if (!action || !action_text) - return IDOK; - - deformat_string(package, action_text, &deformatted); - - len = strlenW(timet) + strlenW(action) + strlenW(template_s); - if (deformatted) - len += strlenW(deformatted); - message = msi_alloc(len*sizeof(WCHAR)); - sprintfW(message, template_s, timet, action); - if (deformatted) - strcatW(message, deformatted); - msi_free(deformatted); + if (!package || !record) + message = NULL; + else { + res = MSI_FormatRecordW(package, record, message, &len); + if (res != ERROR_SUCCESS && res != ERROR_MORE_DATA) + return res; + len++; + message = msi_alloc(len * sizeof(WCHAR)); + if (!message) return ERROR_OUTOFMEMORY; + MSI_FormatRecordW(package, record, message, &len); } - else - { - static const WCHAR format[] = {'%','u',':',' ',0}; - UINT count = MSI_RecordGetFieldCount( record ); - WCHAR *p; - - total_len = 1; - for (i = 1; i <= count; i++) - { - len = 0; - MSI_RecordGetStringW( record, i, NULL, &len ); - total_len += len + 13; - } - p = message = msi_alloc( total_len * sizeof(WCHAR) ); - if (!p) return ERROR_OUTOFMEMORY; - - for (i = 1; i <= count; i++) - { - if (count > 1) - { - len = sprintfW( p, format, i ); - total_len -= len; - p += len; - } - len = total_len; - MSI_RecordGetStringW( record, i, p, &len ); - total_len -= len; - p += len; - if (count > 1 && total_len) - { - *p++ = ' '; - total_len--; - } - } - p[0] = 0; - } - - TRACE("%p %p %p %x %x %s\n", gUIHandlerA, gUIHandlerW, gUIHandlerRecord, - gUIFilter, log_type, debugstr_w(message)); /* convert it to ASCII */ len = WideCharToMultiByte( CP_ACP, 0, message, -1, NULL, 0, NULL, NULL ); msg = msi_alloc( len ); WideCharToMultiByte( CP_ACP, 0, message, -1, msg, len, NULL, NULL ); - if (gUIHandlerW && (gUIFilter & log_type)) + if (gUIHandlerRecord && (gUIFilterRecord & log_type)) { - rc = gUIHandlerW( gUIContext, eMessageType, message ); - } - else if (gUIHandlerA && (gUIFilter & log_type)) - { - rc = gUIHandlerA( gUIContext, eMessageType, msg ); - } - else if (gUIHandlerRecord && (gUIFilter & log_type)) - { - MSIHANDLE rec = MsiCreateRecord( 1 ); - MsiRecordSetStringW( rec, 0, message ); - rc = gUIHandlerRecord( gUIContext, eMessageType, rec ); + MSIHANDLE rec = alloc_msihandle(&record->hdr); + TRACE("Calling UI handler %p(pvContext=%p, iMessageType=%08x, hRecord=%u)\n", + gUIHandlerRecord, gUIContextRecord, eMessageType, rec); + rc = gUIHandlerRecord( gUIContextRecord, eMessageType, rec ); MsiCloseHandle( rec ); } + if (!rc && gUIHandlerW && (gUIFilter & log_type)) + { + TRACE("Calling UI handler %p(pvContext=%p, iMessageType=%08x, szMessage=%s)\n", + gUIHandlerW, gUIContext, eMessageType, debugstr_w(message)); + rc = gUIHandlerW( gUIContext, eMessageType, message ); + } + else if (!rc && gUIHandlerA && (gUIFilter & log_type)) + { + TRACE("Calling UI handler %p(pvContext=%p, iMessageType=%08x, szMessage=%s)\n", + gUIHandlerA, gUIContext, eMessageType, debugstr_a(msg)); + rc = gUIHandlerA( gUIContext, eMessageType, msg ); + } - if (!rc && package->log_file != INVALID_HANDLE_VALUE && + if (!rc) + rc = internal_ui_handler(package, eMessageType, record, message); + + if (!rc && package && package->log_file != INVALID_HANDLE_VALUE && (eMessageType & 0xff000000) != INSTALLMESSAGE_PROGRESS) { DWORD written; @@ -1820,44 +1946,113 @@ INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIREC msi_free( msg ); msi_free( message ); + return rc; +} + +INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record ) +{ switch (eMessageType & 0xff000000) { - case INSTALLMESSAGE_ACTIONDATA: - deformat_string(package, MSI_RecordGetString(record, 2), &deformated); - uirow = MSI_CreateRecord(1); - MSI_RecordSetStringW(uirow, 1, deformated); - msi_free(deformated); - - msi_event_fire( package, szActionData, uirow ); - msiobj_release(&uirow->hdr); - - if (package->action_progress_increment) + case INSTALLMESSAGE_FATALEXIT: + case INSTALLMESSAGE_ERROR: + case INSTALLMESSAGE_WARNING: + case INSTALLMESSAGE_USER: + case INSTALLMESSAGE_INFO: + case INSTALLMESSAGE_OUTOFDISKSPACE: + if (MSI_RecordGetInteger(record, 1) != MSI_NULL_INTEGER) { - uirow = MSI_CreateRecord(2); - MSI_RecordSetInteger(uirow, 1, 2); - MSI_RecordSetInteger(uirow, 2, package->action_progress_increment); - msi_event_fire( package, szSetProgress, uirow ); - msiobj_release(&uirow->hdr); + /* error message */ + + LPWSTR template; + LPWSTR template_rec = NULL, template_prefix = NULL; + int error = MSI_RecordGetInteger(record, 1); + + if (MSI_RecordIsNull(record, 0)) + { + if (error >= 32) + { + template_rec = msi_get_error_message(package->db, error); + + if (!template_rec && error >= 2000) + { + /* internal error, not localized */ + if ((template_rec = (LPWSTR) get_internal_error_message(error))) + { + MSI_RecordSetStringW(record, 0, template_rec); + MSI_ProcessMessageVerbatim(package, INSTALLMESSAGE_INFO, record); + } + template_rec = msi_get_error_message(package->db, MSIERR_INSTALLERROR); + MSI_RecordSetStringW(record, 0, template_rec); + MSI_ProcessMessageVerbatim(package, eMessageType, record); + msi_free(template_rec); + return 0; + } + } + } + else + template_rec = msi_dup_record_field(record, 0); + + template_prefix = msi_get_error_message(package->db, eMessageType >> 24); + if (!template_prefix) template_prefix = strdupW(szEmpty); + + if (!template_rec) + { + /* always returns 0 */ + MSI_RecordSetStringW(record, 0, template_prefix); + MSI_ProcessMessageVerbatim(package, eMessageType, record); + msi_free(template_prefix); + return 0; + } + + template = msi_alloc((strlenW(template_rec) + strlenW(template_prefix) + 1) * sizeof(WCHAR)); + if (!template) return ERROR_OUTOFMEMORY; + + strcpyW(template, template_prefix); + strcatW(template, template_rec); + MSI_RecordSetStringW(record, 0, template); + + msi_free(template_prefix); + msi_free(template_rec); + msi_free(template); } break; - case INSTALLMESSAGE_ACTIONSTART: - deformat_string(package, MSI_RecordGetString(record, 2), &deformated); - uirow = MSI_CreateRecord(1); - MSI_RecordSetStringW(uirow, 1, deformated); - msi_free(deformated); + { + WCHAR *template = msi_get_error_message(package->db, MSIERR_ACTIONSTART); + MSI_RecordSetStringW(record, 0, template); + msi_free(template); - msi_event_fire( package, szActionText, uirow ); - - msiobj_release(&uirow->hdr); - break; - - case INSTALLMESSAGE_PROGRESS: - msi_event_fire( package, szSetProgress, record ); + msi_free(package->LastAction); + msi_free(package->LastActionTemplate); + package->LastAction = msi_dup_record_field(record, 1); + if (!package->LastAction) package->LastAction = strdupW(szEmpty); + package->LastActionTemplate = msi_dup_record_field(record, 3); break; } + case INSTALLMESSAGE_ACTIONDATA: + if (package->LastAction && package->LastActionTemplate) + { + static const WCHAR template_s[] = + {'{','{','%','s',':',' ','}','}','%','s',0}; + WCHAR *template; - return ERROR_SUCCESS; + template = msi_alloc((strlenW(package->LastAction) + strlenW(package->LastActionTemplate) + 7) * sizeof(WCHAR)); + if (!template) return ERROR_OUTOFMEMORY; + sprintfW(template, template_s, package->LastAction, package->LastActionTemplate); + MSI_RecordSetStringW(record, 0, template); + msi_free(template); + } + break; + case INSTALLMESSAGE_COMMONDATA: + { + WCHAR *template = msi_get_error_message(package->db, MSIERR_COMMONDATA); + MSI_RecordSetStringW(record, 0, template); + msi_free(template); + } + break; + } + + return MSI_ProcessMessageVerbatim(package, eMessageType, record); } INT WINAPI MsiProcessMessage( MSIHANDLE hInstall, INSTALLMESSAGE eMessageType, @@ -1867,6 +2062,14 @@ INT WINAPI MsiProcessMessage( MSIHANDLE hInstall, INSTALLMESSAGE eMessageType, MSIPACKAGE *package = NULL; MSIRECORD *record = NULL; + if ((eMessageType & 0xff000000) == INSTALLMESSAGE_INITIALIZE || + (eMessageType & 0xff000000) == INSTALLMESSAGE_TERMINATE) + return -1; + + if ((eMessageType & 0xff000000) == INSTALLMESSAGE_COMMONDATA && + MsiRecordGetInteger(hRecord, 1) != 2) + return -1; + package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE ); if( !package ) { @@ -2072,9 +2275,45 @@ static MSIRECORD *msi_get_property_row( MSIDATABASE *db, LPCWSTR name ) MSIQUERY *view; UINT r; + static const WCHAR szDate[] = {'D','a','t','e',0}; + static const WCHAR szTime[] = {'T','i','m','e',0}; + WCHAR *buffer; + int length; + if (!name || !*name) return NULL; + if (!strcmpW(name, szDate)) + { + length = GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL, NULL, NULL, 0); + if (!length) + return NULL; + buffer = msi_alloc(length * sizeof(WCHAR)); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL, NULL, buffer, sizeof(WCHAR)); + + row = MSI_CreateRecord(1); + if (!row) + return NULL; + MSI_RecordSetStringW(row, 1, buffer); + msi_free(buffer); + return row; + } + else if (!strcmpW(name, szTime)) + { + length = GetTimeFormatW(LOCALE_USER_DEFAULT, TIME_NOTIMEMARKER, NULL, NULL, NULL, 0); + if (!length) + return NULL; + buffer = msi_alloc(length * sizeof(WCHAR)); + GetTimeFormatW(LOCALE_USER_DEFAULT, TIME_NOTIMEMARKER, NULL, NULL, buffer, sizeof(WCHAR)); + + row = MSI_CreateRecord(1); + if (!row) + return NULL; + MSI_RecordSetStringW(row, 1, buffer); + msi_free(buffer); + return row; + } + rec = MSI_CreateRecord(1); if (!rec) return NULL; diff --git a/dll/win32/msi/record.c b/dll/win32/msi/record.c index f73f1f517be..72d29597634 100644 --- a/dll/win32/msi/record.c +++ b/dll/win32/msi/record.c @@ -313,8 +313,17 @@ UINT MSI_RecordSetInteger( MSIRECORD *rec, UINT iField, int iVal ) return ERROR_INVALID_PARAMETER; MSI_FreeField( &rec->fields[iField] ); - rec->fields[iField].type = MSIFIELD_INT; - rec->fields[iField].u.iVal = iVal; + + if (iVal == MSI_NULL_INTEGER) + { + rec->fields[iField].type = MSIFIELD_NULL; + rec->fields[iField].u.szwVal = NULL; + } + else + { + rec->fields[iField].type = MSIFIELD_INT; + rec->fields[iField].u.iVal = iVal; + } return ERROR_SUCCESS; } @@ -1048,3 +1057,28 @@ WCHAR *msi_dup_record_field( MSIRECORD *rec, INT field ) } return str; } + +void dump_record(MSIRECORD *rec) +{ + int i; + if (!rec) + { + TRACE("(null)\n"); + return; + } + + TRACE("["); + for (i = 0; i <= rec->count; i++) + { + switch(rec->fields[i].type) + { + case MSIFIELD_NULL: TRACE("(null)"); break; + case MSIFIELD_INT: TRACE("%d", rec->fields[i].u.iVal); break; + case MSIFIELD_WSTR: TRACE("%s", debugstr_w(rec->fields[i].u.szwVal)); break; + case MSIFIELD_INTPTR: TRACE("%ld", rec->fields[i].u.pVal); break; + case MSIFIELD_STREAM: TRACE("%p", rec->fields[i].u.stream); break; + } + if (i < rec->count) TRACE(", "); + } + TRACE("]\n"); +} diff --git a/dll/win32/msi/resource.h b/dll/win32/msi/resource.h new file mode 100644 index 00000000000..045aa209c96 --- /dev/null +++ b/dll/win32/msi/resource.h @@ -0,0 +1,161 @@ +/* + * Copyright 2017 Zebediah Figura + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define MSIERR_INSTALLERROR 5 +#define MSIERR_ACTIONSTART 8 +#define MSIERR_COMMONDATA 11 +#define MSIERR_INFO_LOGGINGSTART 12 +#define MSIERR_INFO_ACTIONSTART 14 +#define MSIERR_INFO_ACTIONENDED 15 + +#define MSIERR_INSERTDISK 1302 +#define MSIERR_CABNOTFOUND 1311 + +#define IDS_ERROR_BASE 10000 + +#define IDS_FATALEXIT (IDS_ERROR_BASE) +#define IDS_ERROR (IDS_ERROR_BASE + 1) +#define IDS_WARNING (IDS_ERROR_BASE + 2) +#define IDS_INFO (IDS_ERROR_BASE + 4) +#define IDS_INSTALLERROR (IDS_ERROR_BASE + MSIERR_INSTALLERROR) +#define IDS_OUTOFDISKSPACE (IDS_ERROR_BASE + 7) +#define IDS_ACTIONSTART (IDS_ERROR_BASE + MSIERR_ACTIONSTART) +#define IDS_COMMONDATA (IDS_ERROR_BASE + MSIERR_COMMONDATA) +#define IDS_INFO_LOGGINGSTART (IDS_ERROR_BASE + MSIERR_INFO_LOGGINGSTART) +#define IDS_INFO_ACTIONSTART (IDS_ERROR_BASE + MSIERR_INFO_ACTIONSTART) +#define IDS_INFO_ACTIONENDED (IDS_ERROR_BASE + MSIERR_INFO_ACTIONENDED) + +#define IDS_ERR_INSERTDISK (IDS_ERROR_BASE + MSIERR_INSERTDISK) +#define IDS_ERR_CABNOTFOUND (IDS_ERROR_BASE + MSIERR_CABNOTFOUND) + +#define IDS_DESC_ALLOCATEREGISTRYSPACE 1100 +#define IDS_DESC_APPSEARCH 1101 +#define IDS_DESC_BINDIMAGE 1102 +#define IDS_DESC_CCPSEARCH 1103 +#define IDS_DESC_COSTFINALIZE 1104 +#define IDS_DESC_COSTINITIALIZE 1105 +#define IDS_DESC_CREATEFOLDERS 1106 +#define IDS_DESC_CREATESHORTCUTS 1107 +#define IDS_DESC_DELETESERVICES 1108 +#define IDS_DESC_DUPLICATEFILES 1109 +#define IDS_DESC_FILECOST 1110 +#define IDS_DESC_FINDRELATEDPRODUCTS 1111 +#define IDS_DESC_INSTALLADMINPACKAGE 1112 +#define IDS_DESC_INSTALLFILES 1113 +#define IDS_DESC_INSTALLODBC 1114 +#define IDS_DESC_INSTALLSERVICES 1115 +#define IDS_DESC_INSTALLSFPCATALOGFILE 1116 +#define IDS_DESC_INSTALLVALIDATE 1117 +#define IDS_DESC_LAUNCHCONDITIONS 1118 +#define IDS_DESC_MIGRATEFEATURESTATES 1119 +#define IDS_DESC_MOVEFILES 1120 +#define IDS_DESC_MSIPUBLISHASSEMBLIES 1121 +#define IDS_DESC_MSIUNPUBLISHASSEMBLIES 1122 +#define IDS_DESC_PATCHFILES 1123 +#define IDS_DESC_PROCESSCOMPONENTS 1124 +#define IDS_DESC_PUBLISHCOMPONENTS 1125 +#define IDS_DESC_PUBLISHFEATURES 1126 +#define IDS_DESC_PUBLISHPRODUCT 1127 +#define IDS_DESC_REGISTERCLASSINFO 1128 +#define IDS_DESC_REGISTERCOMPLUS 1129 +#define IDS_DESC_REGISTEREXTENSIONINFO 1130 +#define IDS_DESC_REGISTERFONTS 1131 +#define IDS_DESC_REGISTERMIMEINFO 1132 +#define IDS_DESC_REGISTERPRODUCT 1133 +#define IDS_DESC_REGISTERPROGIDINFO 1134 +#define IDS_DESC_REGISTERTYPELIBRARIES 1135 +#define IDS_DESC_REGISTERUSER 1136 +#define IDS_DESC_REMOVEDUPLICATEFILES 1137 +#define IDS_DESC_REMOVEENVIRONMENTSTRINGS 1138 +#define IDS_DESC_REMOVEEXISTINGPRODUCTS 1139 +#define IDS_DESC_REMOVEFILES 1140 +#define IDS_DESC_REMOVEFOLDERS 1141 +#define IDS_DESC_REMOVEINIVALUES 1142 +#define IDS_DESC_REMOVEODBC 1143 +#define IDS_DESC_REMOVEREGISTRYVALUES 1144 +#define IDS_DESC_REMOVESHORTCUTS 1145 +#define IDS_DESC_RMCCPSEARCH 1146 +#define IDS_DESC_SELFREGMODULES 1147 +#define IDS_DESC_SELFUNREGMODULES 1148 +#define IDS_DESC_SETODBCFOLDERS 1149 +#define IDS_DESC_STARTSERVICES 1150 +#define IDS_DESC_STOPSERVICES 1151 +#define IDS_DESC_UNPUBLISHCOMPONENTS 1152 +#define IDS_DESC_UNPUBLISHFEATURES 1153 +#define IDS_DESC_UNPUBLISHPRODUCT 1154 +#define IDS_DESC_UNREGISTERCLASSINFO 1155 +#define IDS_DESC_UNREGISTERCOMPLUS 1156 +#define IDS_DESC_UNREGISTEREXTENSIONINFO 1157 +#define IDS_DESC_UNREGISTERFONTS 1158 +#define IDS_DESC_UNREGISTERMIMEINFO 1159 +#define IDS_DESC_UNREGISTERPROGIDINFO 1160 +#define IDS_DESC_UNREGISTERTYPELIBRARIES 1161 +#define IDS_DESC_WRITEENVIRONMENTSTRINGS 1162 +#define IDS_DESC_WRITEINIVALUES 1163 +#define IDS_DESC_WRITEREGISTRYVALUES 1164 + +#define IDS_TEMP_ALLOCATEREGISTRYSPACE 1200 +#define IDS_TEMP_APPSEARCH 1201 +#define IDS_TEMP_BINDIMAGE 1202 +#define IDS_TEMP_CREATEFOLDERS 1203 +#define IDS_TEMP_CREATESHORTCUTS 1204 +#define IDS_TEMP_DELETESERVICES 1205 +#define IDS_TEMP_DUPLICATEFILES 1206 +#define IDS_TEMP_FINDRELATEDPRODUCTS 1207 +#define IDS_TEMP_INSTALLADMINPACKAGE 1208 +#define IDS_TEMP_INSTALLFILES 1209 +#define IDS_TEMP_INSTALLSERVICES 1210 +#define IDS_TEMP_INSTALLSFPCATALOGFILE 1211 +#define IDS_TEMP_MIGRATEFEATURESTATES 1212 +#define IDS_TEMP_MOVEFILES 1213 +#define IDS_TEMP_MSIPUBLISHASSEMBLIES 1214 +#define IDS_TEMP_MSIUNPUBLISHASSEMBLIES 1215 +#define IDS_TEMP_PATCHFILES 1216 +#define IDS_TEMP_PUBLISHCOMPONENTS 1217 +#define IDS_TEMP_PUBLISHFEATURES 1218 +#define IDS_TEMP_REGISTERCLASSINFO 1219 +#define IDS_TEMP_REGISTERCOMPLUS 1220 +#define IDS_TEMP_REGISTEREXTENSIONINFO 1221 +#define IDS_TEMP_REGISTERFONTS 1222 +#define IDS_TEMP_REGISTERMIMEINFO 1223 +#define IDS_TEMP_REGISTERPROGIDINFO 1224 +#define IDS_TEMP_REGISTERTYPELIBRARIES 1225 +#define IDS_TEMP_REMOVEDUPLICATEFILES 1226 +#define IDS_TEMP_REMOVEENVIRONMENTSTRINGS 1227 +#define IDS_TEMP_REMOVEEXISTINGPRODUCTS 1228 +#define IDS_TEMP_REMOVEFILES 1229 +#define IDS_TEMP_REMOVEFOLDERS 1230 +#define IDS_TEMP_REMOVEINIVALUES 1231 +#define IDS_TEMP_REMOVEREGISTRYVALUES 1232 +#define IDS_TEMP_REMOVESHORTCUTS 1233 +#define IDS_TEMP_SELFREGMODULES 1234 +#define IDS_TEMP_SELFUNREGMODULES 1235 +#define IDS_TEMP_STARTSERVICES 1236 +#define IDS_TEMP_STOPSERVICES 1237 +#define IDS_TEMP_UNPUBLISHCOMPONENTS 1238 +#define IDS_TEMP_UNPUBLISHFEATURES 1239 +#define IDS_TEMP_UNREGISTERCLASSINFO 1240 +#define IDS_TEMP_UNREGISTERCOMPLUS 1241 +#define IDS_TEMP_UNREGISTEREXTENSIONINFO 1242 +#define IDS_TEMP_UNREGISTERFONTS 1243 +#define IDS_TEMP_UNREGISTERMIMEINFO 1244 +#define IDS_TEMP_UNREGISTERPROGIDINFO 1245 +#define IDS_TEMP_UNREGISTERTYPELIBRARIES 1246 +#define IDS_TEMP_WRITEENVIRONMENTSTRINGS 1247 +#define IDS_TEMP_WRITEINIVALUES 1248 +#define IDS_TEMP_WRITEREGISTRYVALUES 1249 diff --git a/dll/win32/msi/rsrc.rc b/dll/win32/msi/rsrc.rc new file mode 100644 index 00000000000..7a6a4cb4e47 --- /dev/null +++ b/dll/win32/msi/rsrc.rc @@ -0,0 +1,81 @@ +/* UTF-8 */ +#pragma code_page(65001) + +#ifdef LANGUAGE_BG_BG + #include "lang/msi_Bg.rc" +#endif +#ifdef LANGUAGE_DA_DK + #include "lang/msi_Da.rc" +#endif +#ifdef LANGUAGE_DE_DE + #include "lang/msi_De.rc" +#endif +#ifdef LANGUAGE_EN_US + #include "lang/msi_En.rc" +#endif +#ifdef LANGUAGE_ES_ES + #include "lang/msi_Es.rc" +#endif +#ifdef LANGUAGE_FI_FI + #include "lang/msi_Fi.rc" +#endif +#ifdef LANGUAGE_FR_FR + #include "lang/msi_Fr.rc" +#endif +#ifdef LANGUAGE_HE_IL + #include "lang/msi_He.rc" +#endif +#ifdef LANGUAGE_HU_HU + #include "lang/msi_Hu.rc" +#endif +#ifdef LANGUAGE_IT_IT + #include "lang/msi_It.rc" +#endif +#ifdef LANGUAGE_JA_JP + #include "lang/msi_Ja.rc" +#endif +#ifdef LANGUAGE_KO_KR + #include "lang/msi_Ko.rc" +#endif +#ifdef LANGUAGE_LT_LT + #include "lang/msi_Lt.rc" +#endif +#ifdef LANGUAGE_NL_NL + #include "lang/msi_Nl.rc" +#endif +#ifdef LANGUAGE_NO_NO + #include "lang/msi_No.rc" +#endif +#ifdef LANGUAGE_PL_PL + #include "lang/msi_Pl.rc" +#endif +#ifdef LANGUAGE_PT_PT + #include "lang/msi_Pt.rc" +#endif +#ifdef LANGUAGE_RO_RO + #include "lang/msi_Ro.rc" +#endif +#ifdef LANGUAGE_RU_RU + #include "lang/msi_Ru.rc" +#endif +#ifdef LANGUAGE_SL_SI + #include "lang/msi_Si.rc" +#endif +#ifdef LANGUAGE_SQ_AL + #include "lang/msi_Sq.rc" +#endif +#ifdef LANGUAGE_SR_SP + #include "lang/msi_Sr.rc" +#endif +#ifdef LANGUAGE_SV_SE + #include "lang/msi_Sv.rc" +#endif +#ifdef LANGUAGE_TR_TR + #include "lang/msi_Tr.rc" +#endif +#ifdef LANGUAGE_UK_UA + #include "lang/msi_Uk.rc" +#endif +#ifdef LANGUAGE_ZH_CN + #include "lang/msi_Zh.rc" +#endif diff --git a/dll/win32/msi/table.c b/dll/win32/msi/table.c index 312e26c406e..c21c110642d 100644 --- a/dll/win32/msi/table.c +++ b/dll/win32/msi/table.c @@ -2393,25 +2393,6 @@ static MSIRECORD *msi_get_transform_record( const MSITABLEVIEW *tv, const string return rec; } -static void dump_record( MSIRECORD *rec ) -{ - UINT i, n; - - n = MSI_RecordGetFieldCount( rec ); - for( i=1; i<=n; i++ ) - { - int len; - const WCHAR *sval; - - if( MSI_RecordIsNull( rec, i ) ) - TRACE("row -> []\n"); - else if( (sval = msi_record_get_string( rec, i, &len )) ) - TRACE("row -> [%s]\n", debugstr_wn(sval, len)); - else - TRACE("row -> [0x%08x]\n", MSI_RecordGetInteger( rec, i ) ); - } -} - static void dump_table( const string_table *st, const USHORT *rawdata, UINT rawsize ) { UINT i; diff --git a/dll/win32/msi/upgrade.c b/dll/win32/msi/upgrade.c index b1786416554..edc4c309a2f 100644 --- a/dll/win32/msi/upgrade.c +++ b/dll/win32/msi/upgrade.c @@ -181,7 +181,7 @@ static UINT ITERATE_FindRelatedProducts(MSIRECORD *rec, LPVOID param) action_property = MSI_RecordGetString(rec, 7); append_productcode(package, action_property, productid); MSI_RecordSetStringW(uirow, 1, productid); - msi_ui_actiondata(package, szFindRelatedProducts, uirow); + MSI_ProcessMessage(package, INSTALLMESSAGE_ACTIONDATA, uirow); } index ++; } diff --git a/media/doc/README.WINE b/media/doc/README.WINE index f325d82232f..5aad710e4ca 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -112,7 +112,7 @@ reactos/dll/win32/msg711.acm # Synced to WineStaging-2.9 reactos/dll/win32/msgsm32.acm # Synced to WineStaging-2.9 reactos/dll/win32/mshtml # Synced to WineStaging-1.7.55 reactos/dll/win32/mshtml.tlb # Synced to WineStaging-1.7.55 -reactos/dll/win32/msi # Synced to WineStaging-2.9 +reactos/dll/win32/msi # Synced to WineStaging-2.16 reactos/dll/win32/msimg32 # Synced to WineStaging-2.16 reactos/dll/win32/msimtf # Synced to WineStaging-2.9 reactos/dll/win32/msisip # Synced to WineStaging-2.9