diff --git a/GBM/Forms/frmMain.Designer.vb b/GBM/Forms/frmMain.Designer.vb index 6564b7d..1c8950c 100644 --- a/GBM/Forms/frmMain.Designer.vb +++ b/GBM/Forms/frmMain.Designer.vb @@ -99,7 +99,7 @@ Partial Class frmMain ' Me.gMonTrayMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayNotification, Me.gMonTrayShow, Me.gMonTraySep2, Me.gMonTrayMon, Me.gMonTraySettings, Me.gMonTraySetup, Me.gMonTrayTools, Me.gMonTraySep1, Me.gMonTrayExit}) Me.gMonTrayMenu.Name = "gMonTrayMenu" - Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 192) + Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 170) ' 'gMonTrayNotification ' diff --git a/GBM/Forms/frmMain.vb b/GBM/Forms/frmMain.vb index 2914cb1..b7fca1c 100644 --- a/GBM/Forms/frmMain.vb +++ b/GBM/Forms/frmMain.vb @@ -17,12 +17,6 @@ Public Class frmMain Restore = 3 End Enum - Private iProcessType As System.Reflection.ProcessorArchitecture = System.Reflection.AssemblyName.GetAssemblyName(Application.ExecutablePath()).ProcessorArchitecture - Private sVersion As String = "Version: " & My.Application.Info.Version.Major & "." & _ - My.Application.Info.Version.Minor & " Beta (" & [Enum].GetName(GetType(System.Reflection.ProcessorArchitecture), iProcessType) & ")" - Private sRevision As String = "Build: " & My.Application.Info.Version.Build & "." & My.Application.Info.Version.Revision - Const sConstCopyright As String = "2015 Michael J. Seiferling" - Private eCurrentStatus As eStatus = eStatus.Stopped Private eCurrentOperation As eOperation = eOperation.None Private bCancelledByUser As Boolean = False @@ -75,15 +69,15 @@ Public Class frmMain 'Build Info sStatus1 = IO.Path.GetFileName(oRestoreInfo.FileName) - sStatus2 = "Updated by " & oRestoreInfo.UpdatedBy & " on " & oRestoreInfo.DateUpdated + sStatus2 = mgrCommon.FormatString(My.Resources.frmMain_UpdatedBy, New String() {oRestoreInfo.UpdatedBy, oRestoreInfo.DateUpdated}) If oRestoreInfo.AbsolutePath Then sStatus3 = oRestoreInfo.RestorePath Else sStatus3 = oRestoreInfo.RelativeRestorePath End If - WorkingGameInfo("Restore in progress...", sStatus1, sStatus2, sStatus3) - UpdateStatus("Restore in progress...") + WorkingGameInfo(My.Resources.frmMain_RestoreInProgress, sStatus1, sStatus2, sStatus3) + UpdateStatus(My.Resources.frmMain_RestoreInProgress) End Sub Private Sub SetBackupInfo(ByVal oGame As clsGame) Handles oBackup.UpdateBackupInfo @@ -100,8 +94,8 @@ Public Class frmMain End If sStatus3 = String.Empty - WorkingGameInfo("Backup in Progress...", sStatus1, sStatus2, sStatus3) - UpdateStatus("Backup in progress...") + WorkingGameInfo(My.Resources.frmMain_BackupInProgress, sStatus1, sStatus2, sStatus3) + UpdateStatus(My.Resources.frmMain_BackupInProgress) End Sub Private Sub OperationStarted(Optional ByVal bPause As Boolean = True) @@ -175,7 +169,7 @@ Public Class frmMain If mgrRestore.CheckPath(oRestoreInfo, oGame, bTriggerReload) Then oReadyList.Add(oRestoreInfo) Else - UpdateLog(oRestoreInfo.Name & " restore was cancelled due to a restore path issue.", False, ToolTipIcon.Error, True) + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_ErrorRestorePath, oRestoreInfo.Name), False, ToolTipIcon.Error, True) End If Next @@ -206,18 +200,18 @@ Public Class frmMain bNoAuto = False gMonStripStatusButton.Enabled = False - UpdateLog("A manaul backup of " & oGame.Name & " was triggered.", False) + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_ManualBackup, oGame.Name), False) If oGame.AbsolutePath = False Then If oGame.ProcessPath = String.Empty Then If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True - oGame.ProcessPath = mgrPath.ProcessPathSearch(oGame.Name, oGame.TrueProcess, oGame.Name & " uses a relative path and has never been detected on this computer.", bNoAuto) + oGame.ProcessPath = mgrPath.ProcessPathSearch(oGame.Name, oGame.TrueProcess, mgrCommon.FormatString(My.Resources.frmMain_ErrorRelativePath, oGame.Name), bNoAuto) End If If oGame.ProcessPath <> String.Empty Then oReadyList.Add(oGame) Else - UpdateLog(oGame.Name & " backup was cancelled due to unknown path.", True, ToolTipIcon.Error, True) + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_ErrorBackupUnknownPath, oGame.Name), True, ToolTipIcon.Error, True) End If Else oReadyList.Add(oGame) @@ -273,27 +267,27 @@ Public Class frmMain If SupressBackup() Then bDoBackup = False - UpdateLog(oProcess.GameInfo.Name & " backup was cancelled due to session length.", False) - SetLastAction(oProcess.GameInfo.CroppedName & " backup was cancelled due to session length") + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_ErrorBackupSessionLength, oProcess.GameInfo.Name), False) + SetLastAction(mgrCommon.FormatString(My.Resources.frmMain_ErrorBackupSessionLength, oProcess.GameInfo.CroppedName)) OperationEnded() Else If oProcess.GameInfo.MonitorOnly = False Then If oSettings.DisableConfirmation Then bDoBackup = True Else - If mgrCommon.ShowMessage("Do you wish to backup data from " & oProcess.GameInfo.Name & "?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ConfirmBackup, oProcess.GameInfo.Name), MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then bDoBackup = True Else bDoBackup = False - UpdateLog(oProcess.GameInfo.Name & " backup was cancelled.", False) - SetLastAction(oProcess.GameInfo.CroppedName & " backup was cancelled") + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_ErrorBackupCancel, oProcess.GameInfo.Name), False) + SetLastAction(mgrCommon.FormatString(My.Resources.frmMain_ErrorBackupCancel, oProcess.GameInfo.CroppedName)) OperationEnded() End If End If Else bDoBackup = False - UpdateLog(oProcess.GameInfo.Name & " is set to monitor only.", False) - SetLastAction(oProcess.GameInfo.CroppedName & " monitoring ended") + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_MonitorEnded, oProcess.GameInfo.Name), False) + SetLastAction(mgrCommon.FormatString(My.Resources.frmMain_MonitorEnded, oProcess.GameInfo.CroppedName)) OperationEnded() End If End If @@ -313,9 +307,9 @@ Public Class frmMain If slRestoreData.Count > 0 Then If slRestoreData.Count > 1 Then - sNotification = slRestoreData.Count & " New Saves Pending" + sNotification = mgrCommon.FormatString(My.Resources.frmMain_NewSaveNotificationMulti, slRestoreData.Count) Else - sNotification = slRestoreData.Count & " New Save Pending" + sNotification = mgrCommon.FormatString(My.Resources.frmMain_NewSaveNotificationSingle, slRestoreData.Count) End If gMonNotification.Image = My.Resources.Inbox gMonTrayNotification.Image = My.Resources.Inbox @@ -331,9 +325,9 @@ Public Class frmMain Dim sIcon As String Dim fbBrowser As New OpenFileDialog - fbBrowser.Title = "Choose icon for " & oProcess.GameInfo.Name + fbBrowser.Title = mgrCommon.FormatString(My.Resources.frmMain_ChooseIcon, oProcess.GameInfo.CroppedName) fbBrowser.DefaultExt = "ico" - fbBrowser.Filter = "Icon files (*.ico)|*.ico" + fbBrowser.Filter = My.Resources.frmMain_IconFilter Try fbBrowser.InitialDirectory = IO.Path.GetDirectoryName(oProcess.FoundProcess.MainModule.FileName) Catch ex As Exception @@ -353,7 +347,7 @@ Public Class frmMain Private Sub ResetGameInfo(Optional ByVal bKeepInfo As Boolean = False) If bKeepInfo And Not oProcess.GameInfo Is Nothing Then - lblGameTitle.Text = "Last Game: " & oProcess.GameInfo.CroppedName + lblGameTitle.Text = mgrCommon.FormatString(My.Resources.frmMain_LastGame, oProcess.GameInfo.CroppedName) pbIcon.Image = oPriorImage lblStatus1.Text = sPriorPath lblStatus2.Text = sPriorCompany @@ -364,7 +358,7 @@ Public Class frmMain End If Else pbIcon.Image = My.Resources.Searching - lblGameTitle.Text = "No Game Detected" + lblGameTitle.Text = My.Resources.frmMain_NoGameDetected lblStatus1.Text = String.Empty lblStatus2.Text = String.Empty lblStatus3.Text = String.Empty @@ -373,9 +367,9 @@ Public Class frmMain End If If eCurrentStatus = eStatus.Stopped Then - UpdateStatus("Not Scanning") + UpdateStatus(My.Resources.frmMain_NotScanning) Else - UpdateStatus("No Game Detected") + UpdateStatus(My.Resources.frmMain_NoGameDetected) End If End Sub @@ -410,11 +404,11 @@ Public Class frmMain If bMulti Then bAllowIcon = False bAllowDetails = False - lblGameTitle.Text = "Multiple Games" + lblGameTitle.Text = My.Resources.frmMain_MultipleGames pbTime.Visible = False lblTimeSpent.Visible = False pbIcon.Image = My.Resources.Unknown - lblStatus1.Text = "Game details are unavailable." + lblStatus1.Text = My.Resources.frmMain_NoDetails Else bAllowIcon = True bAllowDetails = True @@ -439,7 +433,7 @@ Public Class frmMain End If If sFileName = String.Empty Then If oProcess.GameInfo.ProcessPath <> String.Empty Then - sFileName = oProcess.GameInfo.ProcessPath & " (Executable Path)" + sFileName = mgrCommon.FormatString(My.Resources.frmMain_ExePath, oProcess.GameInfo.ProcessPath) End If End If If oProcess.GameInfo.Version <> String.Empty Then @@ -459,19 +453,19 @@ Public Class frmMain 'Set Details If sFileName = String.Empty Then - lblStatus1.Text = "N/A" + lblStatus1.Text = My.Resources.frmMain_NotAvailable Else lblStatus1.Text = sFileName End If If sCompanyName = String.Empty Then - lblStatus2.Text = "N/A" + lblStatus2.Text = My.Resources.frmMain_NotAvailable Else lblStatus2.Text = sCompanyName End If If sFileVersion = String.Empty Then - lblStatus3.Text = "N/A" + lblStatus3.Text = My.Resources.frmMain_NotAvailable Else lblStatus3.Text = sFileVersion End If @@ -490,15 +484,15 @@ Public Class frmMain Dim sSessionTime As String If dTotalTime < 1 Then - sTotalTime = Math.Round((dTotalTime * 100) * 0.6) & " minutes" + sTotalTime = mgrCommon.FormatString(My.Resources.frmMain_SessionMinutes, Math.Round((dTotalTime * 100) * 0.6).ToString) Else - sTotalTime = Math.Round(dTotalTime, 1) & " hours" + sTotalTime = mgrCommon.FormatString(My.Resources.frmMain_SessionHours, Math.Round(dTotalTime, 1).ToString) End If If dSessionTime < 1 Then - sSessionTime = Math.Round((dSessionTime * 100) * 0.6) & " minutes" + sSessionTime = mgrCommon.FormatString(My.Resources.frmMain_SessionMinutes, Math.Round((dSessionTime * 100) * 0.6).ToString) Else - sSessionTime = Math.Round(dSessionTime, 1) & " hours" + sSessionTime = mgrCommon.FormatString(My.Resources.frmMain_SessionHours, Math.Round(dSessionTime, 1).ToString) End If If dSessionTime > 0 Then @@ -550,10 +544,13 @@ Public Class frmMain 'Functions handling the opening of other windows Private Sub OpenAbout() - mgrCommon.ShowMessage("Game Backup Monitor" & vbCrLf & sVersion & vbCrLf & sRevision & vbCrLf & Chr(169) & sConstCopyright & vbCrLf & vbCrLf & - "This program comes with ABSOLUTELY NO WARRANTY." & vbCrLf & - "This is free software, and you are welcome to redistribute it under certain conditions." & vbCrLf & vbCrLf & - "See gpl-3.0.html in the program folder for details.", MsgBoxStyle.Information) + Dim iProcessType As System.Reflection.ProcessorArchitecture = System.Reflection.AssemblyName.GetAssemblyName(Application.ExecutablePath()).ProcessorArchitecture + Dim sVersion As String = My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor + Dim sProcessType = [Enum].GetName(GetType(System.Reflection.ProcessorArchitecture), iProcessType) + Dim sRevision As String = My.Application.Info.Version.Build & "." & My.Application.Info.Version.Revision + Dim sConstCopyright As String = Chr(169) & My.Resources.AppCopyright + + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.AppAbout, New String() {sVersion, sProcessType, sRevision, sConstCopyright}), MsgBoxStyle.Information) End Sub Private Sub OpenTags() @@ -651,7 +648,7 @@ Public Class frmMain 'Load Monitor List hshScanList = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.ScanList) - UpdateLog("Game List (" & hshScanList.Keys.Count & ") Loaded.", False) + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_GameListLoaded, hshScanList.Keys.Count), False) End Sub Private Sub StartSyncWatcher() @@ -676,7 +673,7 @@ Public Class frmMain Private Sub HandleSyncWatcher() Handles oFileWatcher.Changed If oSettings.Sync Then - UpdateLog("The master game list has been changed by a program other than GBM.", False, ToolTipIcon.Info, True) + UpdateLog(My.Resources.frmMain_MasterListChanged, False, ToolTipIcon.Info, True) SyncGameSettings() LoadGameSettings() CheckForNewBackups() @@ -702,7 +699,7 @@ Public Class frmMain 'The application cannot continue if this fails If Not oBackup.CheckForUtilities(mgrPath.Utility7zLocation) Then - mgrCommon.ShowMessage("7-Zip was not found in the Game Backup Monitor utilities folder. The application cannot continue.", MsgBoxStyle.Critical) + mgrCommon.ShowMessage(My.Resources.frmMain_Error7zip, MsgBoxStyle.Critical) bShutdown = True Me.Close() End If @@ -738,7 +735,7 @@ Public Class frmMain 'Verify the "Start with Windows" setting If oSettings.StartWithWindows Then If Not VerifyStartWithWindows() Then - UpdateLog("GBM is running from a new location, the Windows startup entry has been updated.", False, ToolTipIcon.Info) + UpdateLog(My.Resources.frmMain_ErrorAppLocationChanged, False, ToolTipIcon.Info) End If End If @@ -750,14 +747,14 @@ Public Class frmMain txtLog.Visible = True Me.Size = New System.Drawing.Size(540, 425) bLogToggle = True - btnLogToggle.Text = "Hide &Log" + btnLogToggle.Text = My.Resources.frmMain_btnToggleLog_Hide txtLog.Select(txtLog.TextLength, 0) txtLog.ScrollToCaret() Else txtLog.Visible = False Me.Size = New System.Drawing.Size(540, 245) bLogToggle = False - btnLogToggle.Text = "Show &Log" + btnLogToggle.Text = My.Resources.frmMain_btnToggleLog_Show End If End Sub @@ -780,23 +777,21 @@ Public Class frmMain Case eStatus.Running HandleScan() Case eStatus.Paused - Dim sGame As String = oProcess.GameInfo.Name + Dim sGame As String = oProcess.GameInfo.CroppedName If bProcessIsAdmin Then - mgrCommon.ShowMessage(sGame & " is running as Administrator and GBM is not." & - vbCrLf & "You cannot cancel monitoring at this time." _ - & vbCrLf & vbCrLf & "Run GBM as Administrator to prevent this issue.", MsgBoxStyle.Exclamation) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ErrorAdminDetect, sGame), MsgBoxStyle.Exclamation) RestartAsAdmin() Exit Sub End If If oProcess.Duplicate Then - sGame = "the unknown game" + sGame = My.Resources.frmMain_UnknownGame End If - If mgrCommon.ShowMessage("Do you wish to cancel the monitoring of " & sGame & "?" & vbCrLf & vbCrLf & "Warning: When monitoring is cancelled, session time is NOT saved.", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - UpdateLog("Monitoring of " & sGame & " was cancelled.", False) - SetLastAction("Monitoring of " & oProcess.GameInfo.CroppedName & " was cancelled") + If mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ConfirmMonitorCancel, sGame), MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_MonitorCancel, sGame), False) + SetLastAction(mgrCommon.FormatString(My.Resources.frmMain_MonitorCancel, sGame)) bwMonitor.CancelAsync() StopScan() @@ -816,7 +811,7 @@ Public Class frmMain Dim bClose As Boolean = False If bPrompt Then - If mgrCommon.ShowMessage("Are you sure you want to exit? Your games will no longer be monitored.", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If mgrCommon.ShowMessage(My.Resources.AppExit, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then bClose = True End If Else @@ -895,14 +890,14 @@ Public Class frmMain Private Sub ToggleMenuText() Select Case eCurrentStatus Case eStatus.Running - gMonFileMonitor.Text = "Stop &Monitoring" - gMonTrayMon.Text = "Stop &Monitoring" + gMonFileMonitor.Text = My.Resources.frmMain_gMonFileMonitor_Stop + gMonTrayMon.Text = My.Resources.frmMain_gMonFileMonitor_Stop Case eStatus.Stopped - gMonFileMonitor.Text = "Start &Monitoring" - gMonTrayMon.Text = "Start &Monitoring" + gMonFileMonitor.Text = My.Resources.frmMain_gMonFileMonitor_Start + gMonTrayMon.Text = My.Resources.frmMain_gMonFileMonitor_Start Case eStatus.Paused - gMonFileMonitor.Text = "Cancel &Monitoring" - gMonTrayMon.Text = "Cancel &Monitoring" + gMonFileMonitor.Text = My.Resources.frmMain_gMonFileMonitor_Cancel + gMonTrayMon.Text = My.Resources.frmMain_gMonFileMonitor_Cancel End Select End Sub @@ -953,13 +948,51 @@ Public Class frmMain End Sub Private Sub SetForm() + 'Set Menu Text + gMonFile.Text = My.Resources.frmMain_gMonFile + gMonFileMonitor.Text = My.Resources.frmMain_gMonFileMonitor_Start + gMonFileSettings.Text = My.Resources.frmMain_gMonFileSettings + gMonFileExit.Text = My.Resources.frmMain_gMonFileExit + gMonSetup.Text = My.Resources.frmMain_gMonSetup + gMonSetupGameManager.Text = My.Resources.frmMain_gMonSetupGameManager + gMonSetupAddWizard.Text = My.Resources.frmMain_gMonSetupAddWizard + gMonSetupCustomVariables.Text = My.Resources.frmMain_gMonSetupCustomVariables + gMonSetupTags.Text = My.Resources.frmMain_gMonSetupTags + gMonTools.Text = My.Resources.frmMain_gMonTools + gMonToolsCleanMan.Text = My.Resources.frmMain_gMonToolsCleanMan + gMonToolsCompact.Text = My.Resources.frmMain_gMonToolsCompact + gMonHelp.Text = My.Resources.frmMain_gMonHelp + gMonHelpWebSite.Text = My.Resources.frmMain_gMonHelpWebSite + gMonHelpManual.Text = My.Resources.frmMain_gMonHelpManual + gMonHelpCheckforUpdates.Text = My.Resources.frmMain_gMonHelpCheckForUpdates + gMonHelpAbout.Text = My.Resources.frmMain_gMonHelpAbout + + 'Set Tray Menu Text + gMonTrayShow.Text = My.Resources.frmMain_gMonTrayShow + gMonTrayMon.Text = My.Resources.frmMain_gMonFileMonitor_Start + gMonTraySettings.Text = My.Resources.frmMain_gMonFileSettings + gMonTraySetup.Text = My.Resources.frmMain_gMonSetup + gMonTraySetupGameManager.Text = My.Resources.frmMain_gMonSetupGameManager + gMonTraySetupAddWizard.Text = My.Resources.frmMain_gMonSetupAddWizard + gMonTraySetupCustomVariables.Text = My.Resources.frmMain_gMonSetupCustomVariables + gMonTraySetupTags.Text = My.Resources.frmMain_gMonSetupTags + gMonTrayTools.Text = My.Resources.frmMain_gMonTools + gMonTrayToolsCleanMan.Text = My.Resources.frmMain_gMonToolsCleanMan + gMonTrayToolsCompact.Text = My.Resources.frmMain_gMonToolsCompact + gMonTrayExit.Text = My.Resources.frmMain_gMonFileExit + + 'Set Form Text + lblLastActionTitle.Text = My.Resources.frmMain_lblLastActionTitle + btnCancelOperation.Text = My.Resources.frmMain_btnCancelOperation + gMonStripStatusButton.Text = My.Resources.frmMain_gMonStripStatusButton + If mgrCommon.IsElevated Then gMonStripAdminButton.Image = My.Resources.Admin - gMonStripAdminButton.ToolTipText = "GBM is running with Administrator privileges." + gMonStripAdminButton.ToolTipText = My.Resources.frmMain_RunningAsAdmin Else gMonStripAdminButton.Image = My.Resources.User - gMonStripAdminButton.ToolTipText = "GBM is running with normal privileges. Click to restart as Administrator." + gMonStripAdminButton.ToolTipText = My.Resources.frmMain_RunningAsNormal End If btnCancelOperation.Visible = False txtLog.Visible = False @@ -983,14 +1016,14 @@ Public Class frmMain StopSyncWatcher() tmScanTimer.Stop() eCurrentStatus = eStatus.Stopped - UpdateStatus("Not Scanning") + UpdateStatus(My.Resources.frmMain_NotScanning) gMonStripStatusButton.Image = My.Resources.Stopped gMonTray.Icon = My.Resources.GBM_Tray_Stopped Else StartScan() StartSyncWatcher() eCurrentStatus = eStatus.Running - UpdateStatus("No Game Detected") + UpdateStatus(My.Resources.frmMain_NoGameDetected) gMonStripStatusButton.Image = My.Resources.Ready gMonTray.Icon = My.Resources.GBM_Tray_Ready End If @@ -1002,7 +1035,7 @@ Public Class frmMain StopSyncWatcher() tmScanTimer.Stop() eCurrentStatus = eStatus.Paused - UpdateStatus("Not Scanning") + UpdateStatus(My.Resources.frmMain_NotScanning) gMonStripStatusButton.Image = My.Resources.Detected gMonTray.Icon = My.Resources.GBM_Tray_Detected End If @@ -1017,7 +1050,7 @@ Public Class frmMain eCurrentStatus = eStatus.Running gMonStripStatusButton.Image = My.Resources.Ready gMonTray.Icon = My.Resources.GBM_Tray_Ready - UpdateStatus("No Game Detected") + UpdateStatus(My.Resources.frmMain_NoGameDetected) End If ToggleMenuText() ToggleMenuEnable() @@ -1027,7 +1060,7 @@ Public Class frmMain StopSyncWatcher() tmScanTimer.Stop() eCurrentStatus = eStatus.Stopped - UpdateStatus("Not Scanning") + UpdateStatus(My.Resources.frmMain_NotScanning) gMonStripStatusButton.Image = My.Resources.Stopped gMonTray.Icon = My.Resources.GBM_Tray_Stopped ToggleMenuText() @@ -1038,7 +1071,7 @@ Public Class frmMain Private Sub VerifyCustomPathVariables() Dim sGames As String = String.Empty If Not mgrPath.VerifyCustomVariables(hshScanList, sGames) Then - mgrCommon.ShowMessage("The following monitored game(s) contain a custom path variable that is not set." & vbCrLf & sGames & vbCrLf & vbCrLf & "You will encounter backup/restore errors with these games until the variables are set.", MsgBoxStyle.Exclamation) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ErrorCustomVariable, sGames), MsgBoxStyle.Exclamation) End If End Sub @@ -1066,7 +1099,7 @@ Public Class frmMain Try IO.Directory.CreateDirectory(sSettingsRoot) Catch ex As Exception - mgrCommon.ShowMessage("An error occured creating application settings folder. The application cannot proceed." & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Critical) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ErrorSettingsFolder, ex.Message), MsgBoxStyle.Critical) bShutdown = True Me.Close() End Try @@ -1082,9 +1115,9 @@ Public Class frmMain If Not oDatabase.CheckDBVer(iDBVer) Then Select Case iDB Case mgrSQLite.Database.Local - mgrCommon.ShowMessage("Your local GBM data (Version " & iDBVer & ") is too new for your version of GBM (Version " & mgrCommon.AppVersion & ")." & vbCrLf & vbCrLf & "Please upgrade GBM or restore the settings file appropriate for your version. The application cannot proceed.", MsgBoxStyle.Critical) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ErrorDBVerLocal, New String() {iDBVer, mgrCommon.AppVersion}), MsgBoxStyle.Critical) Case mgrSQLite.Database.Remote - mgrCommon.ShowMessage("The GBM data (Version " & iDBVer & ") in your backup folder is too new for your version of GBM (Version " & mgrCommon.AppVersion & ")." & vbCrLf & vbCrLf & "All computers sharing a backup folder must use the same version of GBM. The application cannot proceed.", MsgBoxStyle.Critical) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.frmMain_ErrorDBVerRemote, New String() {iDBVer, mgrCommon.AppVersion}), MsgBoxStyle.Critical) End Select bShutdown = True @@ -1133,9 +1166,9 @@ Public Class frmMain 'Functions to handle other features Private Sub RestartAsAdmin() If mgrCommon.IsElevated Then - mgrCommon.ShowMessage("Game Backup Monitor is already running as Administrator.", MsgBoxStyle.Information) + mgrCommon.ShowMessage(My.Resources.frmMain_ErrorAlreadyAdmin, MsgBoxStyle.Information) Else - If mgrCommon.ShowMessage("Do you want to restart Game Backup Monitor as Administrator?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If mgrCommon.ShowMessage(My.Resources.frmMain_ConfirmRunAsAdmin, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then mgrCommon.RestartAsAdmin() bShutdown = True ShutdownApp(False) @@ -1148,20 +1181,17 @@ Public Class frmMain PauseScan() - If mgrCommon.ShowMessage("This tool removes orphaned backup information from the local manifest based on the current backup folder. Data can become orphaned when backups are deleted by various computers that share the same backup folder on a cloud or network." & vbCrLf & vbCrLf & - "When alternating between different backup folders you should NOT use this tool." & vbCrLf & vbCrLf & - "Do you wish to proceed?", MsgBoxStyle.YesNo _ - ) = MsgBoxResult.Yes Then + If mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.AppConfirmClean), MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then slItems = mgrRestore.SyncLocalManifest() If slItems.Count > 0 Then For Each oItem As clsBackup In slItems.Values - UpdateLog(oItem.Name & " entry was removed from local manfiest.", False) + UpdateLog(mgrCommon.FormatString(My.Resources.AppCleanedGame, oItem.Name), False) Next - mgrCommon.ShowMessage(slItems.Count & " entries were removed from the local manifest.", MsgBoxStyle.Information) + mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.AppCleanedTotal, slItems.Count), MsgBoxStyle.Information) Else - mgrCommon.ShowMessage("The local manifest is clean.", MsgBoxStyle.Information) + mgrCommon.ShowMessage(My.Resources.AppAlreadyClean, MsgBoxStyle.Information) End If End If @@ -1175,20 +1205,18 @@ Public Class frmMain PauseScan() - If mgrCommon.ShowMessage("This will rebuild all databases and shrink them to an optimal size." & vbCrLf & - "This should only be used if your gbm.s3db files are becoming very large." & vbCrLf & vbCrLf & - "Do you wish to continue?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If mgrCommon.ShowMessage(mgrCommon.FormatString(My.Resources.AppConfirmRebuild), MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then oLocalDatabase = New mgrSQLite(mgrSQLite.Database.Local) oRemoteDatabase = New mgrSQLite(mgrSQLite.Database.Remote) - UpdateLog("Local Database Vacuum Initialized: " & oLocalDatabase.GetDBSize & " KB", False) + UpdateLog(mgrCommon.FormatString(My.Resources.AppLocalCompactInit, oLocalDatabase.GetDBSize), False) oLocalDatabase.CompactDatabase() - UpdateLog("Local Database Vacuum Completed: " & oLocalDatabase.GetDBSize & " KB", False) + UpdateLog(mgrCommon.FormatString(My.Resources.AppLocalCompactComplete, oLocalDatabase.GetDBSize), False) - UpdateLog("Remote Database Vacuum Initialized: " & oRemoteDatabase.GetDBSize & " KB", False) + UpdateLog(mgrCommon.FormatString(My.Resources.AppRemoteCompactInit, oRemoteDatabase.GetDBSize), False) oRemoteDatabase.CompactDatabase() - UpdateLog("Remote Database Vacuum Completed: " & oRemoteDatabase.GetDBSize & " KB", False) + UpdateLog(mgrCommon.FormatString(My.Resources.AppRemoteCompactComplete, oRemoteDatabase.GetDBSize), False) End If ResumeScan() @@ -1324,13 +1352,12 @@ Public Class frmMain bContinue = False If iErrorCode = 5 Then If oProcess.Duplicate Then - sErrorMessage = "Multiple possible games have been detected running as Administrator and GBM is not, GBM cannot detect the path to identify your game or save your backup." & vbCrLf & vbCrLf & - "Please run GBM as Administrator to properly detect and backup this game." + sErrorMessage = mgrCommon.FormatString(My.Resources.frmMain_ErrorMultiAdmin) mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation) bAskForRestart = True Else If Not CheckForSavedPath() Then - sErrorMessage = oProcess.GameInfo.Name & " is running as Administrator and GBM is not, GBM cannot detect the required information to save your backup." + sErrorMessage = mgrCommon.FormatString(My.Resources.frmMain_ErrorAdminBackup, oProcess.GameInfo.Name) oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sErrorMessage) If oProcess.GameInfo.ProcessPath <> String.Empty Then 'Update and reload @@ -1344,12 +1371,11 @@ Public Class frmMain End If ElseIf iErrorCode = 299 Then If oProcess.Duplicate Then - sErrorMessage = "Multiple possible 64-bit games have been detected, GBM cannot detect the path to identify your game or save your backup." & vbCrLf & vbCrLf & - "Please install the 64-bit version of GBM to detect and backup this game properly." + sErrorMessage = mgrCommon.FormatString(My.Resources.frmMain_ErrorMulti64) mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation) Else If Not CheckForSavedPath() Then - sErrorMessage = oProcess.GameInfo.Name & " is a 64-bit game, GBM cannot detect the required information to save your backup." + sErrorMessage = mgrCommon.FormatString(My.Resources.frmMain_Error64Backup, oProcess.GameInfo.Name) oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sErrorMessage) If oProcess.GameInfo.ProcessPath <> String.Empty Then 'Update and reload @@ -1367,12 +1393,12 @@ Public Class frmMain If bContinue = True Then CheckForSavedDuplicate() If oProcess.Duplicate Then - UpdateLog("Multiple Games Detected", oSettings.ShowDetectionToolTips) - UpdateStatus("Multiple Games Detected") + UpdateLog(My.Resources.frmMain_MultipleGamesDetected, oSettings.ShowDetectionToolTips) + UpdateStatus(My.Resources.frmMain_MultipleGamesDetected) SetGameInfo(True) Else - UpdateLog(oProcess.GameInfo.Name & " Detected", oSettings.ShowDetectionToolTips) - UpdateStatus(oProcess.GameInfo.CroppedName & " Detected") + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_GameDetected, oProcess.GameInfo.Name), oSettings.ShowDetectionToolTips) + UpdateStatus(mgrCommon.FormatString(My.Resources.frmMain_GameDetected, oProcess.GameInfo.CroppedName)) SetGameInfo() End If oProcess.StartTime = Now @@ -1406,11 +1432,11 @@ Public Class frmMain If Not bCancelledByUser Then If DoMultiGameCheck() Then - UpdateLog(oProcess.GameInfo.Name & " has ended.", False) + UpdateLog(mgrCommon.FormatString(My.Resources.frmMain_GameEnded, oProcess.GameInfo.Name), False) If oSettings.TimeTracking Then HandleTimeSpent() RunBackup() Else - UpdateLog("The unidentified game has ended.", False) + UpdateLog(My.Resources.frmMain_UnknownGameEnded, False) ResetGameInfo() ResumeScan() End If diff --git a/GBM/Managers/mgrCommon.vb b/GBM/Managers/mgrCommon.vb index 824e990..58ba41c 100644 --- a/GBM/Managers/mgrCommon.vb +++ b/GBM/Managers/mgrCommon.vb @@ -127,8 +127,40 @@ Public Class mgrCommon Public Shared Function ShowMessage(ByVal sMsg As String, ByVal oType As MsgBoxStyle) As MsgBoxResult Dim oResult As MsgBoxResult - oResult = MsgBox(sMsg, oType, "Game Backup Monitor") + oResult = MsgBox(sMsg, oType, My.Resources.AppNameLong) Return oResult End Function + 'Handles no extra parameters + Public Shared Function FormatString(ByVal sString As String) As String + sString = sString.Replace("[BR]", vbCrLf) + + Return sString + End Function + + + 'Handles single parameter stings + Public Shared Function FormatString(ByVal sString As String, ByVal sParam As String) As String + sString = sString.Replace("[BR]", vbCrLf) + sString = sString.Replace("[PARAM]", sParam) + + Return sString + End Function + + 'Handles multi-parameter strings + Public Shared Function FormatString(ByVal sString As String, ByVal sParams As String()) As String + Dim iParam As Integer + + sString = sString.Replace("[BR]", vbCrLf) + + For Each s As String In sParams + iParam = sString.IndexOf("[PARAM]") + sString = sString.Remove(iParam, 7) + sString = sString.Insert(iParam, s) + Next + + Return sString + End Function + + End Class diff --git a/GBM/My Project/AssemblyInfo.vb b/GBM/My Project/AssemblyInfo.vb index b4104e4..1ec94e5 100644 --- a/GBM/My Project/AssemblyInfo.vb +++ b/GBM/My Project/AssemblyInfo.vb @@ -1,3 +1,5 @@ +Imports System.Resources + Imports System Imports System.Reflection Imports System.Runtime.InteropServices @@ -15,10 +17,10 @@ Imports System.Runtime.InteropServices - + 'The following GUID is for the ID of the typelib if this project is exposed to COM - + ' Version information for an assembly consists of the following four values: ' @@ -33,3 +35,5 @@ Imports System.Runtime.InteropServices + + \ No newline at end of file diff --git a/GBM/My Project/Resources.Designer.vb b/GBM/My Project/Resources.Designer.vb index 994de47..78ba3bc 100644 --- a/GBM/My Project/Resources.Designer.vb +++ b/GBM/My Project/Resources.Designer.vb @@ -70,6 +70,132 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to Game Backup Monitor[BR]Version: [PARAM] Beta ([PARAM])[BR]Build: [PARAM][BR][PARAM][BR][BR]This program comes with ABSOLUTELY NO WARRANTY.[BR]This is free software, and you are welcome to redistribute it under certain conditions.[BR][BR]See gpl-3.0.html in the program folder for details.. + ''' + Friend ReadOnly Property AppAbout() As String + Get + Return ResourceManager.GetString("AppAbout", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to The local manifest is clean.. + ''' + Friend ReadOnly Property AppAlreadyClean() As String + Get + Return ResourceManager.GetString("AppAlreadyClean", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] entry was removed from local manfiest.. + ''' + Friend ReadOnly Property AppCleanedGame() As String + Get + Return ResourceManager.GetString("AppCleanedGame", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] entries were removed from the local manifest.. + ''' + Friend ReadOnly Property AppCleanedTotal() As String + Get + Return ResourceManager.GetString("AppCleanedTotal", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to This tool removes orphaned backup information from the local manifest based on the current backup folder. Data can become orphaned when backups are deleted by various computers that share the same backup folder on a cloud or network.[BR][BR]When alternating between different backup folders you should NOT use this tool.[BR][BR]Do you wish to proceed?. + ''' + Friend ReadOnly Property AppConfirmClean() As String + Get + Return ResourceManager.GetString("AppConfirmClean", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to This will rebuild all databases and shrink them to an optimal size.[BR]This should only be used if your gbm.s3db files are becoming very large.[BR][BR]Do you wish to continue?. + ''' + Friend ReadOnly Property AppConfirmRebuild() As String + Get + Return ResourceManager.GetString("AppConfirmRebuild", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to 2015 Michael J. Seiferling. + ''' + Friend ReadOnly Property AppCopyright() As String + Get + Return ResourceManager.GetString("AppCopyright", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Are you sure you want to exit? Your games will no longer be monitored.. + ''' + Friend ReadOnly Property AppExit() As String + Get + Return ResourceManager.GetString("AppExit", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Local Database Vacuum Completed: [PARAM] KB. + ''' + Friend ReadOnly Property AppLocalCompactComplete() As String + Get + Return ResourceManager.GetString("AppLocalCompactComplete", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Local Database Vacuum Initialized: [PARAM] KB. + ''' + Friend ReadOnly Property AppLocalCompactInit() As String + Get + Return ResourceManager.GetString("AppLocalCompactInit", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Game Backup Monitor. + ''' + Friend ReadOnly Property AppNameLong() As String + Get + Return ResourceManager.GetString("AppNameLong", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to GBM. + ''' + Friend ReadOnly Property AppNameShort() As String + Get + Return ResourceManager.GetString("AppNameShort", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Remote Database Vacuum Completed: [PARAM] KB. + ''' + Friend ReadOnly Property AppRemoteCompactComplete() As String + Get + Return ResourceManager.GetString("AppRemoteCompactComplete", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Remote Database Vacuum Initialized: [PARAM] KB. + ''' + Friend ReadOnly Property AppRemoteCompactInit() As String + Get + Return ResourceManager.GetString("AppRemoteCompactInit", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Bitmap. ''' @@ -90,6 +216,663 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to Backup in Progress.... + ''' + Friend ReadOnly Property frmMain_BackupInProgress() As String + Get + Return ResourceManager.GetString("frmMain_BackupInProgress", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Cancel. + ''' + Friend ReadOnly Property frmMain_btnCancelOperation() As String + Get + Return ResourceManager.GetString("frmMain_btnCancelOperation", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Hide &Log. + ''' + Friend ReadOnly Property frmMain_btnToggleLog_Hide() As String + Get + Return ResourceManager.GetString("frmMain_btnToggleLog_Hide", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Show &Log. + ''' + Friend ReadOnly Property frmMain_btnToggleLog_Show() As String + Get + Return ResourceManager.GetString("frmMain_btnToggleLog_Show", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Choose icon for [PARAM]. + ''' + Friend ReadOnly Property frmMain_ChooseIcon() As String + Get + Return ResourceManager.GetString("frmMain_ChooseIcon", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Do you wish to backup data from [PARAM]?. + ''' + Friend ReadOnly Property frmMain_ConfirmBackup() As String + Get + Return ResourceManager.GetString("frmMain_ConfirmBackup", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Do you wish to cancel the monitoring of [PARAM]?[BR][BR]Warning: When monitoring is cancelled, session time is NOT saved.. + ''' + Friend ReadOnly Property frmMain_ConfirmMonitorCancel() As String + Get + Return ResourceManager.GetString("frmMain_ConfirmMonitorCancel", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Do you want to restart Game Backup Monitor as Administrator?. + ''' + Friend ReadOnly Property frmMain_ConfirmRunAsAdmin() As String + Get + Return ResourceManager.GetString("frmMain_ConfirmRunAsAdmin", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] is a 64-bit game, GBM cannot detect the required information to save your backup.. + ''' + Friend ReadOnly Property frmMain_Error64Backup() As String + Get + Return ResourceManager.GetString("frmMain_Error64Backup", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to 7-Zip was not found in the Game Backup Monitor utilities folder. The application cannot continue.. + ''' + Friend ReadOnly Property frmMain_Error7zip() As String + Get + Return ResourceManager.GetString("frmMain_Error7zip", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] is running as Administrator and GBM is not, GBM cannot detect the required information to save your backup.. + ''' + Friend ReadOnly Property frmMain_ErrorAdminBackup() As String + Get + Return ResourceManager.GetString("frmMain_ErrorAdminBackup", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] is running as Administrator and GBM is not.[BR]You cannot cancel monitoring at this time.[BR][BR]Run GBM as Administrator to prevent this issue.. + ''' + Friend ReadOnly Property frmMain_ErrorAdminDetect() As String + Get + Return ResourceManager.GetString("frmMain_ErrorAdminDetect", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Game Backup Monitor is already running as Administrator.. + ''' + Friend ReadOnly Property frmMain_ErrorAlreadyAdmin() As String + Get + Return ResourceManager.GetString("frmMain_ErrorAlreadyAdmin", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to GBM is running from a new location, the Windows startup entry has been updated.. + ''' + Friend ReadOnly Property frmMain_ErrorAppLocationChanged() As String + Get + Return ResourceManager.GetString("frmMain_ErrorAppLocationChanged", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] backup was cancelled.. + ''' + Friend ReadOnly Property frmMain_ErrorBackupCancel() As String + Get + Return ResourceManager.GetString("frmMain_ErrorBackupCancel", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] backup was cancelled due to session length.. + ''' + Friend ReadOnly Property frmMain_ErrorBackupSessionLength() As String + Get + Return ResourceManager.GetString("frmMain_ErrorBackupSessionLength", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] backup was cancelled due to unknown path.. + ''' + Friend ReadOnly Property frmMain_ErrorBackupUnknownPath() As String + Get + Return ResourceManager.GetString("frmMain_ErrorBackupUnknownPath", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to The following monitored game(s) contain a custom path variable that is not set.[BR][PARAM][BR][BR]You will encounter backup/restore errors with these games until the variables are set.. + ''' + Friend ReadOnly Property frmMain_ErrorCustomVariable() As String + Get + Return ResourceManager.GetString("frmMain_ErrorCustomVariable", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Your local GBM data (Version [PARAM]) is too new for your version of GBM (Version [PARAM]).[BR][BR]Please upgrade GBM or restore the database file appropriate for your version. The application cannot proceed.. + ''' + Friend ReadOnly Property frmMain_ErrorDBVerLocal() As String + Get + Return ResourceManager.GetString("frmMain_ErrorDBVerLocal", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to The GBM data (Version [PARAM]) in your backup folder is too new for your version of GBM (Version [PARAM])[BR][BR]All computers sharing a backup folder must use the same version of GBM. The application cannot proceed.. + ''' + Friend ReadOnly Property frmMain_ErrorDBVerRemote() As String + Get + Return ResourceManager.GetString("frmMain_ErrorDBVerRemote", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Multiple possible 64-bit games have been detected, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please install the 64-bit version of GBM to detect and backup this game properly.. + ''' + Friend ReadOnly Property frmMain_ErrorMulti64() As String + Get + Return ResourceManager.GetString("frmMain_ErrorMulti64", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Multiple possible games have been detected running as Administrator and GBM is not, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please run GBM as Administrator to properly detect and backup this game.. + ''' + Friend ReadOnly Property frmMain_ErrorMultiAdmin() As String + Get + Return ResourceManager.GetString("frmMain_ErrorMultiAdmin", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] uses a relative path and has never been detected on this computer.. + ''' + Friend ReadOnly Property frmMain_ErrorRelativePath() As String + Get + Return ResourceManager.GetString("frmMain_ErrorRelativePath", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] restore was cancelled due to a restore path issue.. + ''' + Friend ReadOnly Property frmMain_ErrorRestorePath() As String + Get + Return ResourceManager.GetString("frmMain_ErrorRestorePath", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to An error occured creating application settings folder. The application cannot proceed.[BR][BR][PARAM]. + ''' + Friend ReadOnly Property frmMain_ErrorSettingsFolder() As String + Get + Return ResourceManager.GetString("frmMain_ErrorSettingsFolder", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] (Executable Path). + ''' + Friend ReadOnly Property frmMain_ExePath() As String + Get + Return ResourceManager.GetString("frmMain_ExePath", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] Detected. + ''' + Friend ReadOnly Property frmMain_GameDetected() As String + Get + Return ResourceManager.GetString("frmMain_GameDetected", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] has ended.. + ''' + Friend ReadOnly Property frmMain_GameEnded() As String + Get + Return ResourceManager.GetString("frmMain_GameEnded", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Game List ([PARAM]) Loaded.. + ''' + Friend ReadOnly Property frmMain_GameListLoaded() As String + Get + Return ResourceManager.GetString("frmMain_GameListLoaded", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &File. + ''' + Friend ReadOnly Property frmMain_gMonFile() As String + Get + Return ResourceManager.GetString("frmMain_gMonFile", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Exit. + ''' + Friend ReadOnly Property frmMain_gMonFileExit() As String + Get + Return ResourceManager.GetString("frmMain_gMonFileExit", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Cancel &Monitoring. + ''' + Friend ReadOnly Property frmMain_gMonFileMonitor_Cancel() As String + Get + Return ResourceManager.GetString("frmMain_gMonFileMonitor_Cancel", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Start &Monitoring. + ''' + Friend ReadOnly Property frmMain_gMonFileMonitor_Start() As String + Get + Return ResourceManager.GetString("frmMain_gMonFileMonitor_Start", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Stop &Monitoring. + ''' + Friend ReadOnly Property frmMain_gMonFileMonitor_Stop() As String + Get + Return ResourceManager.GetString("frmMain_gMonFileMonitor_Stop", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Settings.... + ''' + Friend ReadOnly Property frmMain_gMonFileSettings() As String + Get + Return ResourceManager.GetString("frmMain_gMonFileSettings", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Help. + ''' + Friend ReadOnly Property frmMain_gMonHelp() As String + Get + Return ResourceManager.GetString("frmMain_gMonHelp", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &About Game Backup Monitor. + ''' + Friend ReadOnly Property frmMain_gMonHelpAbout() As String + Get + Return ResourceManager.GetString("frmMain_gMonHelpAbout", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Check for Updates.... + ''' + Friend ReadOnly Property frmMain_gMonHelpCheckForUpdates() As String + Get + Return ResourceManager.GetString("frmMain_gMonHelpCheckForUpdates", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Online &Manual.... + ''' + Friend ReadOnly Property frmMain_gMonHelpManual() As String + Get + Return ResourceManager.GetString("frmMain_gMonHelpManual", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Official Web Site.... + ''' + Friend ReadOnly Property frmMain_gMonHelpWebSite() As String + Get + Return ResourceManager.GetString("frmMain_gMonHelpWebSite", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Setup. + ''' + Friend ReadOnly Property frmMain_gMonSetup() As String + Get + Return ResourceManager.GetString("frmMain_gMonSetup", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Add Game &Wizard.... + ''' + Friend ReadOnly Property frmMain_gMonSetupAddWizard() As String + Get + Return ResourceManager.GetString("frmMain_gMonSetupAddWizard", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Custom &Path Variables.... + ''' + Friend ReadOnly Property frmMain_gMonSetupCustomVariables() As String + Get + Return ResourceManager.GetString("frmMain_gMonSetupCustomVariables", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Game Manager.... + ''' + Friend ReadOnly Property frmMain_gMonSetupGameManager() As String + Get + Return ResourceManager.GetString("frmMain_gMonSetupGameManager", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Tags.... + ''' + Friend ReadOnly Property frmMain_gMonSetupTags() As String + Get + Return ResourceManager.GetString("frmMain_gMonSetupTags", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Monitor Status:. + ''' + Friend ReadOnly Property frmMain_gMonStripStatusButton() As String + Get + Return ResourceManager.GetString("frmMain_gMonStripStatusButton", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Tools. + ''' + Friend ReadOnly Property frmMain_gMonTools() As String + Get + Return ResourceManager.GetString("frmMain_gMonTools", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Clea&n Local Manifest. + ''' + Friend ReadOnly Property frmMain_gMonToolsCleanMan() As String + Get + Return ResourceManager.GetString("frmMain_gMonToolsCleanMan", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Compact Databases. + ''' + Friend ReadOnly Property frmMain_gMonToolsCompact() As String + Get + Return ResourceManager.GetString("frmMain_gMonToolsCompact", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Show / Hide. + ''' + Friend ReadOnly Property frmMain_gMonTrayShow() As String + Get + Return ResourceManager.GetString("frmMain_gMonTrayShow", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Icon files (*.ico)|*.ico. + ''' + Friend ReadOnly Property frmMain_IconFilter() As String + Get + Return ResourceManager.GetString("frmMain_IconFilter", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Last Game: [PARAM]. + ''' + Friend ReadOnly Property frmMain_LastGame() As String + Get + Return ResourceManager.GetString("frmMain_LastGame", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Last Action:. + ''' + Friend ReadOnly Property frmMain_lblLastActionTitle() As String + Get + Return ResourceManager.GetString("frmMain_lblLastActionTitle", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to A manaul backup of [PARAM] was triggered.. + ''' + Friend ReadOnly Property frmMain_ManualBackup() As String + Get + Return ResourceManager.GetString("frmMain_ManualBackup", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to The master game list has been changed by a program other than GBM.. + ''' + Friend ReadOnly Property frmMain_MasterListChanged() As String + Get + Return ResourceManager.GetString("frmMain_MasterListChanged", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Monitoring of [PARAM] was cancelled.. + ''' + Friend ReadOnly Property frmMain_MonitorCancel() As String + Get + Return ResourceManager.GetString("frmMain_MonitorCancel", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] monitoring ended.. + ''' + Friend ReadOnly Property frmMain_MonitorEnded() As String + Get + Return ResourceManager.GetString("frmMain_MonitorEnded", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Multiple Games. + ''' + Friend ReadOnly Property frmMain_MultipleGames() As String + Get + Return ResourceManager.GetString("frmMain_MultipleGames", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Multiple Games Detected. + ''' + Friend ReadOnly Property frmMain_MultipleGamesDetected() As String + Get + Return ResourceManager.GetString("frmMain_MultipleGamesDetected", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] New Saves Pending. + ''' + Friend ReadOnly Property frmMain_NewSaveNotificationMulti() As String + Get + Return ResourceManager.GetString("frmMain_NewSaveNotificationMulti", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] New Save Pending. + ''' + Friend ReadOnly Property frmMain_NewSaveNotificationSingle() As String + Get + Return ResourceManager.GetString("frmMain_NewSaveNotificationSingle", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Game details are unavailable.. + ''' + Friend ReadOnly Property frmMain_NoDetails() As String + Get + Return ResourceManager.GetString("frmMain_NoDetails", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to No Game Detected. + ''' + Friend ReadOnly Property frmMain_NoGameDetected() As String + Get + Return ResourceManager.GetString("frmMain_NoGameDetected", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to N/A. + ''' + Friend ReadOnly Property frmMain_NotAvailable() As String + Get + Return ResourceManager.GetString("frmMain_NotAvailable", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Not Scanning. + ''' + Friend ReadOnly Property frmMain_NotScanning() As String + Get + Return ResourceManager.GetString("frmMain_NotScanning", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Restore in progress.... + ''' + Friend ReadOnly Property frmMain_RestoreInProgress() As String + Get + Return ResourceManager.GetString("frmMain_RestoreInProgress", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to GBM is running with Administrator privileges.. + ''' + Friend ReadOnly Property frmMain_RunningAsAdmin() As String + Get + Return ResourceManager.GetString("frmMain_RunningAsAdmin", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to GBM is running with normal privileges. Click to restart as Administrator.. + ''' + Friend ReadOnly Property frmMain_RunningAsNormal() As String + Get + Return ResourceManager.GetString("frmMain_RunningAsNormal", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] hours. + ''' + Friend ReadOnly Property frmMain_SessionHours() As String + Get + Return ResourceManager.GetString("frmMain_SessionHours", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to [PARAM] minutes. + ''' + Friend ReadOnly Property frmMain_SessionMinutes() As String + Get + Return ResourceManager.GetString("frmMain_SessionMinutes", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to the unidentified game. + ''' + Friend ReadOnly Property frmMain_UnknownGame() As String + Get + Return ResourceManager.GetString("frmMain_UnknownGame", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to The unidentified game has ended.. + ''' + Friend ReadOnly Property frmMain_UnknownGameEnded() As String + Get + Return ResourceManager.GetString("frmMain_UnknownGameEnded", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Updated by [PARAM] on [PARAM]. + ''' + Friend ReadOnly Property frmMain_UpdatedBy() As String + Get + Return ResourceManager.GetString("frmMain_UpdatedBy", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon). ''' diff --git a/GBM/My Project/Resources.resx b/GBM/My Project/Resources.resx index e72d77e..006220e 100644 --- a/GBM/My Project/Resources.resx +++ b/GBM/My Project/Resources.resx @@ -121,12 +121,213 @@ ..\Resources\Admin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Game Backup Monitor[BR]Version: [PARAM] Beta ([PARAM])[BR]Build: [PARAM][BR][PARAM][BR][BR]This program comes with ABSOLUTELY NO WARRANTY.[BR]This is free software, and you are welcome to redistribute it under certain conditions.[BR][BR]See gpl-3.0.html in the program folder for details. + + + The local manifest is clean. + + + [PARAM] entry was removed from local manfiest. + + + [PARAM] entries were removed from the local manifest. + + + This tool removes orphaned backup information from the local manifest based on the current backup folder. Data can become orphaned when backups are deleted by various computers that share the same backup folder on a cloud or network.[BR][BR]When alternating between different backup folders you should NOT use this tool.[BR][BR]Do you wish to proceed? + + + This will rebuild all databases and shrink them to an optimal size.[BR]This should only be used if your gbm.s3db files are becoming very large.[BR][BR]Do you wish to continue? + + + 2015 Michael J. Seiferling + + + Are you sure you want to exit? Your games will no longer be monitored. + + + Local Database Vacuum Completed: [PARAM] KB + + + Local Database Vacuum Initialized: [PARAM] KB + + + Game Backup Monitor + + + GBM + + + Remote Database Vacuum Completed: [PARAM] KB + + + Remote Database Vacuum Initialized: [PARAM] KB + ..\Resources\Clock.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Detected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Backup in Progress... + + + Hide &Log + + + Show &Log + + + Choose icon for [PARAM] + + + Do you wish to backup data from [PARAM]? + + + Do you wish to cancel the monitoring of [PARAM]?[BR][BR]Warning: When monitoring is cancelled, session time is NOT saved. + + + Do you want to restart Game Backup Monitor as Administrator? + + + [PARAM] is a 64-bit game, GBM cannot detect the required information to save your backup. + + + 7-Zip was not found in the Game Backup Monitor utilities folder. The application cannot continue. + + + [PARAM] is running as Administrator and GBM is not, GBM cannot detect the required information to save your backup. + + + [PARAM] is running as Administrator and GBM is not.[BR]You cannot cancel monitoring at this time.[BR][BR]Run GBM as Administrator to prevent this issue. + + + Game Backup Monitor is already running as Administrator. + + + GBM is running from a new location, the Windows startup entry has been updated. + + + [PARAM] backup was cancelled. + + + [PARAM] backup was cancelled due to session length. + + + [PARAM] backup was cancelled due to unknown path. + + + The following monitored game(s) contain a custom path variable that is not set.[BR][PARAM][BR][BR]You will encounter backup/restore errors with these games until the variables are set. + + + Your local GBM data (Version [PARAM]) is too new for your version of GBM (Version [PARAM]).[BR][BR]Please upgrade GBM or restore the database file appropriate for your version. The application cannot proceed. + + + The GBM data (Version [PARAM]) in your backup folder is too new for your version of GBM (Version [PARAM])[BR][BR]All computers sharing a backup folder must use the same version of GBM. The application cannot proceed. + + + Multiple possible 64-bit games have been detected, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please install the 64-bit version of GBM to detect and backup this game properly. + + + Multiple possible games have been detected running as Administrator and GBM is not, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please run GBM as Administrator to properly detect and backup this game. + + + [PARAM] uses a relative path and has never been detected on this computer. + + + [PARAM] restore was cancelled due to a restore path issue. + + + An error occured creating application settings folder. The application cannot proceed.[BR][BR][PARAM] + + + [PARAM] (Executable Path) + + + [PARAM] Detected + + + [PARAM] has ended. + + + Game List ([PARAM]) Loaded. + + + Cancel &Monitoring + + + Start &Monitoring + + + Stop &Monitoring + + + Icon files (*.ico)|*.ico + + + Last Game: [PARAM] + + + A manaul backup of [PARAM] was triggered. + + + The master game list has been changed by a program other than GBM. + + + Monitoring of [PARAM] was cancelled. + + + [PARAM] monitoring ended. + + + Multiple Games + + + Multiple Games Detected + + + [PARAM] New Saves Pending + + + [PARAM] New Save Pending + + + Game details are unavailable. + + + No Game Detected + + + N/A + + + Not Scanning + + + Restore in progress... + + + GBM is running with Administrator privileges. + + + GBM is running with normal privileges. Click to restart as Administrator. + + + [PARAM] hours + + + [PARAM] minutes + + + the unidentified game + + + The unidentified game has ended. + + + Updated by [PARAM] on [PARAM] + ..\Resources\GBM_Tray_Detected.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -157,4 +358,64 @@ ..\Resources\Working.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + &Cancel + + + &File + + + &Exit + + + &Settings... + + + &Help + + + &About Game Backup Monitor + + + &Check for Updates... + + + Online &Manual... + + + &Official Web Site... + + + &Setup + + + Add Game &Wizard... + + + Custom &Path Variables... + + + &Game Manager... + + + &Tags... + + + Monitor Status: + + + &Tools + + + Clea&n Local Manifest + + + &Compact Databases + + + Show / Hide + + + Last Action: + \ No newline at end of file