diff --git a/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties b/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties index 832079a515..d9cc839467 100755 --- a/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties @@ -52,7 +52,7 @@ OpenLogFolder.error1=Log File Not Found: {0} OpenLogFolder.CouldNotOpenLogFolder=Could not open log folder CTL_OpenLogFolder=Open Log Folder CTL_OpenOutputFolder=Open Output Folder -OpenOutputFolder.error1=Output Folder Not Found: {0} +OpenOutputFolder.error1=Output Folder Not Found\: {0} OpenOutputFolder.noCaseOpen=No open case, therefore no current output folder available. OpenOutputFolder.CouldNotOpenOutputFolder=Could not open output folder ShowIngestProgressSnapshotAction.actionName.text=Get Ingest Progress Snapshot diff --git a/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties index 480522e021..28b9af065b 100644 --- a/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties @@ -5,7 +5,7 @@ GetTagNameDialog.newTagPanel.border.title=\u65B0\u898F\u30BF\u30B0 GetTagNameDialog.tagNameLabel.text=\u30BF\u30B0\u540D\uFF1A GetTagNameAndCommentDialog.newTagButton.text=\u65B0\u898F\u30BF\u30B0 GetTagNameAndCommentDialog.okButton.text=OK -GetTagNameAndCommentDialog.commentText.toolTipText=\u30BF\u30B0\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u5165\u529B\u307E\u305F\u306F\u7A7A\u6B04\u306B\u3057\u3066\u304F\u3060\u3055\u3044 +GetTagNameAndCommentDialog.commentText.toolTipText=\u30BF\u30B0\u306E\u30AA\u30D7\u30B7\u30E7\u30CA\u30EB\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u5165\u529B\u307E\u305F\u306F\u7A7A\u6B04\u306B\u3057\u3066\u304F\u3060\u3055\u3044 GetTagNameAndCommentDialog.commentLabel.text=\u30B3\u30E1\u30F3\u30C8\uFF1A GetTagNameAndCommentDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB GetTagNameAndCommentDialog.tagCombo.toolTipText=\u4F7F\u7528\u3059\u308B\u30BF\u30B0\u3092\u9078\u629E @@ -28,7 +28,7 @@ DeleteBlackboardArtifactTagAction.unableToDelTag.msg=\u30BF\u30B0{0}\u3092\u524A DeleteBlackboardArtifactTagAction.tagDelErr=\u30BF\u30B0\u524A\u9664\u30A8\u30E9\u30FC DeleteContentTagAction.deleteTags=\u30BF\u30B0\u3092\u524A\u9664 DeleteContentTagAction.unableToDelTag.msg=\u30BF\u30B0{0}\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002 -DeleteContentTagAction.tagDelErr=\u30BF\u30B0\u524A\u9664\u30A8\u30E9\u30FC +DeleteContentTagAction.tagDelErr=\u30BF\u30B0\u306E\u524A\u9664\u30A8\u30E9\u30FC GetTagNameAndCommentDialog.noTags=\u30BF\u30B0\u7121\u3057 GetTagNameAndCommentDialog.createTag=\u30BF\u30B0\u3092\u4F5C\u6210 GetTagNameAndCommentDialog.cancelName=\u30AD\u30E3\u30F3\u30BB\u30EB @@ -36,16 +36,22 @@ GetTagNameDialog.createTag=\u30BF\u30B0\u3092\u4F5C\u6210 GetTagNameDialog.cancelName=\u30AD\u30E3\u30F3\u30BB\u30EB GetTagNameDialog.mustSupplyTtagName.msg=\u30BF\u30B0\u540D\u3092\u6307\u5B9A\u3057\u306A\u3051\u308C\u3070\u5148\u306B\u9032\u3081\u307E\u305B\u3093\u3002 GetTagNameDialog.tagNameErr=\u30BF\u30B0\u540D -GetTagNameDialog.illegalChars.msg=\u4E0D\u6B63\u306A\u6587\u5B57\u304C\u30BF\u30B0\u540D\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u6B21\u306E\u6587\u5B57\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF1A \\ \: * ? " < > | -GetTagNameDialog.illegalCharsErr=\u4E0D\u6B63\u306A\u6587\u5B57 +GetTagNameDialog.illegalCharsErr=\u4F7F\u7528\u3067\u304D\u306A\u3044\u6587\u5B57 GetTagNameDialog.unableToAddTagNameToCase.msg=\u30BF\u30B0\u540D{0}\u3092\u30B1\u30FC\u30B9\u306B\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 GetTagNameDialog.taggingErr=\u30BF\u30B0\u4ED8\u3051\u30A8\u30E9\u30FC GetTagNameDialog.tagNameAlreadyDef.msg=\u30BF\u30B0\u540D{0}\u306F\u65E2\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059\u3002 -GetTagNameDialog.dupTagErr=\u91CD\u8907\u30BF\u30B0\u306E\u30A8\u30E9\u30FC +GetTagNameDialog.dupTagErr=\u30BF\u30B0\u306E\u91CD\u8907\u30A8\u30E9\u30FC AddContentTagAction.cannotApplyTagErr=\u30BF\u30B0\u3092\u9069\u7528\u3067\u304D\u307E\u305B\u3093 OpenLogFolder.error1=\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} CTL_OpenLogFolder=\u30ED\u30B0\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F ShowIngestProgressSnapshotAction.actionName.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30D7\u30ED\u30B0\u30EC\u30B9\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3092\u53D6\u5F97 CTL_OpenPythonModulesFolderAction=Python\u30D7\u30E9\u30B0\u30A4\u30F3 OpenPythonModulesFolderAction.actionName.text=Python\u30D7\u30E9\u30B0\u30A4\u30F3 -OpenPythonModulesFolderAction.errorMsg.folderNotFound=Python\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} \ No newline at end of file +OpenPythonModulesFolderAction.errorMsg.folderNotFound=Python\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +AddContentTagAction.tagExists={0}\u306F\u65E2\u306B{1}\u3068\u30BF\u30B0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u540C\u3058\u30BF\u30B0\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +OpenLogFolder.CouldNotOpenLogFolder=\u30ED\u30B0\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F +CTL_OpenOutputFolder=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30D5\u30A9\u30EB\u30C0\u3092\u3092\u958B\u304F +OpenOutputFolder.error1=\u6B21\u306E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +OpenOutputFolder.noCaseOpen=\u30AA\u30FC\u30D7\u30F3\u30B1\u30FC\u30B9\u304C\u306A\u3044\u306E\u3067\u3001\u4F5C\u696D\u4E2D\u306E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +GetTagNameDialog.illegalChars.msg=\u4F7F\u7528\u3067\u304D\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\n\u6B21\u306E\u6587\u5B57\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF1A\\ \: * ? " < > | +OpenOutputFolder.CouldNotOpenOutputFolder=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u304C\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index 2232085c5b..f2d9e38e13 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -108,11 +108,11 @@ AddImageWizardIterator.stepXofN=Step {0} of {1} AddLocalFilesTask.localFileAdd.progress.text=Adding\: {0}/{1} Case.getCurCase.exception.noneOpen=Cannot get the current case; there is no case open\! Case.create.exception.msg=Error creating a case\: {0} in dir {1} -Case.databaseConnectionInfo.error.msg=Error accessing case database connection info +Case.databaseConnectionInfo.error.msg=Error accessing database server connection info. See Tools, Options, Multi-user. Case.open.exception.blankCase.msg=Case name is blank. Case.open.msgDlg.updated.msg=Updated case database schema.\nA backup copy of the database with the following path has been made\:\n {0} Case.open.msgDlg.updated.title=Case Database Schema Update -Case.open.exception.checkFile.msg=Check that you selected the correct case file (usually with {0} extension) +Case.open.exception.checkFile.msg=Case file must have {0} extension. Case.open.exception.multiUserCaseNotEnabled=Cannot open a multi-user case if multi-user cases are not enabled. See Tools, Options, Multi-user. Case.checkImgExist.confDlg.doesntExist.msg={0} has detected that one of the images associated with \n\ this case are missing. Would you like to search for them now?\n\ @@ -139,6 +139,9 @@ Case.createCaseDir.exception.gen=Could not create case directory\: {0} Case.CollaborationSetup.FailNotify.ErrMsg=Failed to connect to any other nodes that may be collaborating on this case. Case.CollaborationSetup.FailNotify.Title=Connection Failure Case.GetCaseTypeGivenPath.Failure=Unable to get case type +Case.metaDataFileCorrupt.exception.msg=The case metadata file (.aut) is corrupted. +Case.deleteReports.deleteFromDiskException.log.msg=Unable to delete the report from the disk. +Case.deleteReports.deleteFromDiskException.msg=Unable to delete the report {0} from the disk.\nYou may manually delete it from {1} CaseDeleteAction.closeConfMsg.text=Are you sure want to close and delete this case? \n\ Case Name\: {0}\n\ Case Directory\: {1} @@ -208,14 +211,11 @@ NewCaseWizardPanel1.validate.errMsg.cantCreateDir=Error\: Could not create direc NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg=ERROR\: The Base Directory that you entered is not valid.\nPlease enter a valid Base Directory. NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg=ERROR\: Could not create the case directory. \nPlease enter a valid Case Name and Directory. NewCaseWizardPanel2.validate.errCreateCase.msg=Error creating case -OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg=Error\: Case {0} does not exist. -OpenRecentCasePanel.openCase.msgDlg.err=Error OpenRecentCasePanel.colName.caseName=Case Name OpenRecentCasePanel.colName.path=Path RecentCases.exception.caseIdxOutOfRange.msg=Recent case index {0} is out of range. RecentCases.getName.text=Clear Recent Cases -RecentItems.openRecentCase.msgDlg.text=Error\: Case {0} does not exist. -RecentItems.openRecentCase.msgDlg.err=Error +RecentItems.openRecentCase.msgDlg.text=Case {0} no longer exists. StartupWindow.title.text=Welcome UpdateRecentCases.menuItem.clearRecentCases.text=Clear Recent Cases UpdateRecentCases.menuItem.empty=-Empty- @@ -229,7 +229,7 @@ Cannot open a non-Autopsy config file (at {1}). XMLCaseManagement.open.msgDlg.notAutCase.title=Error AddImageWizardIngestConfigPanel.CANCEL_BUTTON.text=Cancel ImageFilePanel.errorLabel.text=Error Label -DataSourceOnCDriveError.text=Warning: Path to multi-user data source is on \"C:\" drive +DataSourceOnCDriveError.text=Warning\: Path to multi-user data source is on "C\:" drive NewCaseVisualPanel1.CaseFolderOnCDriveError.text=Warning: Path to multi-user case folder is on \"C:\" drive LocalFilesPanel.errorLabel.text=Error Label CollaborationMonitor.addingDataSourceStatus.msg={0} adding data source @@ -240,17 +240,14 @@ NewCaseVisualPanel1.caseParentDirWarningLabel.text= NewCaseVisualPanel1.multiUserCaseRadioButton.text=Multi-user NewCaseVisualPanel1.singleUserCaseRadioButton.text=Single-user NewCaseVisualPanel1.caseTypeLabel.text=Case Type: -Case.deleteReports.deleteFromDiskException.log.msg=Unable to delete the report from the disk. -Case.deleteReports.deleteFromDiskException.msg=Unable to delete the report {0} from the disk.\nYou may manually delete it from {1} CasePropertiesForm.lbDbType.text=Case Type: CasePropertiesForm.tbDbType.text= CasePropertiesForm.lbDbName.text=Database Name: CasePropertiesForm.tbDbName.text= -CaseExceptionWarning.CheckMultiUserOptions=Check Multi-user options. SingleUserCaseConverter.BadDatabaseFileName=Database file does not exist! SingleUserCaseConverter.AlreadyMultiUser=Case is already multi-user! SingleUserCaseConverter.NonUniqueDatabaseName=Database name not unique. SingleUserCaseConverter.UnableToCopySourceImages=Unable to copy source images SingleUserCaseConverter.CanNotOpenDatabase=Unable to open database CloseCaseWhileIngesting.Warning=Ingest is running. Are you sure you want to close the case? -CloseCaseWhileIngesting.Warning.title=Warning\: This will close the current case +CloseCaseWhileIngesting.Warning.title=Warning\: This will close the current case \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties index 6895817f35..ce3ffbc462 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties @@ -1,220 +1,228 @@ -CTL_AddImage=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8ffd\u52a0... -CTL_AddImageButton=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8ffd\u52a0 -CTL_CaseCloseAct=\u30b1\u30fc\u30b9\u3092\u9589\u3058\u308b -CTL_CaseNewAction=\u65b0\u898f\u30b1\u30fc\u30b9\u2026 -CTL_CasePropertiesAction=\u30b1\u30fc\u30b9\u30d7\u30ed\u30d1\u30c6\u30a3\u2026 -CTL_OpenAction=\u30b1\u30fc\u30b9\u3092\u958b\u304f\u2026 -Menu/File/OpenRecentCase=\u6700\u8fd1\u958b\u3044\u305f\u30b1\u30fc\u30b9\u3092\u958b\u304f -CTL_CaseDeleteAction=\u30b1\u30fc\u30b9\u524a\u9664 -OpenIDE-Module-Name=\u30b1\u30fc\u30b9 -NewCaseVisualPanel1.jLabel1.text_1=\u65b0\u898f\u30b1\u30fc\u30b9\u60c5\u5831\u3092\u5165\u529b\uff1a -NewCaseVisualPanel1.caseNameLabel.text_1=\u30b1\u30fc\u30b9\u540d\uff1a -NewCaseVisualPanel1.caseDirLabel.text=\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff1a -NewCaseVisualPanel1.caseDirBrowseButton.text=\u95b2\u89a7 -NewCaseVisualPanel1.caseNameTextField.text_1= -NewCaseVisualPanel1.jLabel2.text_1=\u30b1\u30fc\u30b9\u30c7\u30fc\u30bf\u306f\u4e0b\u8a18\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\uff1a -NewCaseVisualPanel1.caseParentDirTextField.text= -NewCaseVisualPanel1.caseDirTextField.text_1= -CasePropertiesForm.caseDirLabel.text=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff1a -CasePropertiesForm.crDateLabel.text=\u4f5c\u6210\u65e5\uff1a -CasePropertiesForm.caseNameLabel.text=\u30b1\u30fc\u30b9\u540d\uff1a -CasePropertiesForm.crDateTextField.text= -CasePropertiesForm.caseNameTextField.text= -CasePropertiesForm.updateCaseNameButton.text=\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8 -CasePropertiesForm.casePropLabel.text=\u30b1\u30fc\u30b9\u60c5\u5831 -CasePropertiesForm.genInfoLabel.text=\u4e00\u822c\u60c5\u5831 -CasePropertiesForm.imgInfoLabel.text=\u30a4\u30e1\u30fc\u30b8\u60c5\u5831 +CTL_AddImage=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0... +CTL_AddImageButton=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 +CTL_CaseCloseAct=\u30B1\u30FC\u30B9\u3092\u9589\u3058\u308B +CTL_CaseNewAction=\u65B0\u898F\u30B1\u30FC\u30B9\u2026 +CTL_CasePropertiesAction=\u30B1\u30FC\u30B9\u30D7\u30ED\u30D1\u30C6\u30A3\u2026 +CTL_OpenAction=\u30B1\u30FC\u30B9\u3092\u958B\u304F\u2026 +Menu/File/OpenRecentCase=\u6700\u8FD1\u958B\u3044\u305F\u30B1\u30FC\u30B9\u3092\u958B\u304F +CTL_CaseDeleteAction=\u30B1\u30FC\u30B9\u3092\u524A\u9664 +OpenIDE-Module-Name=\u30B1\u30FC\u30B9 +NewCaseVisualPanel1.jLabel1.text_1=\u65B0\u898F\u30B1\u30FC\u30B9\u60C5\u5831\u3092\u5165\u529B\uFF1A +NewCaseVisualPanel1.caseNameLabel.text_1=\u30B1\u30FC\u30B9\u540D\uFF1A +NewCaseVisualPanel1.caseDirLabel.text=\u30D9\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF1A +NewCaseVisualPanel1.caseDirBrowseButton.text=\u95B2\u89A7 +NewCaseVisualPanel1.jLabel2.text_1=\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u306F\u6B21\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\uFF1A +CasePropertiesForm.caseDirLabel.text=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF1A +CasePropertiesForm.crDateLabel.text=\u4F5C\u6210\u65E5\uFF1A +CasePropertiesForm.caseNameLabel.text=\u30B1\u30FC\u30B9\u540D\uFF1A +CasePropertiesForm.updateCaseNameButton.text=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +CasePropertiesForm.casePropLabel.text=\u30B1\u30FC\u30B9\u60C5\u5831 +CasePropertiesForm.genInfoLabel.text=\u4E00\u822C\u60C5\u5831 +CasePropertiesForm.imgInfoLabel.text=\u30A4\u30E1\u30FC\u30B8\u60C5\u5831 CasePropertiesForm.OKButton.text=OK -CasePropertiesForm.deleteCaseButton.text=\u30b1\u30fc\u30b9\u524a\u9664 -CueBannerPanel.autopsyLogo.text= -CueBannerPanel.createNewLabel.text=\u65b0\u898f\u30b1\u30fc\u30b9\u4f5c\u6210 -CueBannerPanel.openLabel.text=\u65e2\u5b58\u30b1\u30fc\u30b9\u3092\u958b\u304f -CueBannerPanel.closeButton.text=\u9589\u3058\u308b -CueBannerPanel.openRecentLabel.text=\u6700\u8fd1\u958b\u3044\u305f\u30b1\u30fc\u30b9\u3092\u958b\u304f -CueBannerPanel.newCaseButton.text= -CueBannerPanel.openCaseButton.text= -CueBannerPanel.openRecentButton.text= -OpenRecentCasePanel.cancelButton.text=\u30ad\u30e3\u30f3\u30bb\u30eb -OpenRecentCasePanel.jLabel1.text=\u6700\u8fd1\u958b\u3044\u305f\u30d5\u30a1\u30a4\u30eb -CasePropertiesForm.caseNumberLabel.text=\u30b1\u30fc\u30b9\u756a\u53f7\uff1a -CasePropertiesForm.examinerLabel.text=\u8abf\u67fb\u62c5\u5f53\u8005\uff1a -CasePropertiesForm.caseNumberTextField.text= -CasePropertiesForm.examinerTextField.text= -NewCaseVisualPanel2.caseNumberTextField.text= -NewCaseVisualPanel2.examinerLabel.text=\u8abf\u67fb\u62c5\u5f53\u8005\uff1a -NewCaseVisualPanel2.caseNumberLabel.text=\u30b1\u30fc\u30b9\u756a\u53f7\uff1a -NewCaseVisualPanel2.examinerTextField.text= -NewCaseVisualPanel2.optionalLabel.text=\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff1a\u30b1\u30fc\u30b9\u756a\u53f7\u53ca\u3073\u8abf\u67fb\u62c5\u5f53\u8005\u3092\u8a2d\u5b9a -AddImageErrorsDialog.title=\u30a4\u30e1\u30fc\u30b8\u30ed\u30b0\u3092\u8ffd\u52a0 -AddImageErrorsDialog.copyButton.toolTipText=\u30a8\u30e9\u30fc\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059 -AddImageErrorsDialog.copyButton.text=\u30b3\u30d4\u30fc -AddImageErrorsDialog.closeButton.toolTipText=\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059 -AddImageErrorsDialog.closeButton.text=\u9589\u3058\u308b -OpenRecentCasePanel.openButton.text=\u958b\u304f -ImageFilePanel.pathLabel.text=\u30a4\u30e1\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb\u3092\u95b2\u89a7\uff1a -ImageFilePanel.browseButton.text=\u95b2\u89a7 -ImageFilePanel.pathTextField.text= -LocalDiskPanel.diskLabel.text=\u30ed\u30fc\u30ab\u30eb\u30c7\u30a3\u30b9\u30af\u3092\u9078\u629e\uff1a -MissingImageDialog.selectButton.text=\u30a4\u30e1\u30fc\u30b8\u3092\u9078\u629e -MissingImageDialog.titleLabel.text=\u6b20\u843d\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u306e\u691c\u7d22 -MissingImageDialog.cancelButton.text=\u30ad\u30e3\u30f3\u30bb\u30eb -LocalDiskPanel.errorLabel.text=\u30a8\u30e9\u30fc\u30e9\u30d9\u30eb -LocalFilesPanel.infoLabel.text=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u53ca\u3073\u30d5\u30a9\u30eb\u30c0\u3092\u8ffd\u52a0\uff1a -LocalFilesPanel.selectButton.text=\u8ffd\u52a0 -LocalFilesPanel.localFileChooser.dialogTitle=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u53c8\u306f\u30d5\u30a9\u30eb\u30c0\u3092\u9078\u629e -LocalFilesPanel.selectButton.toolTipText=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u53ca\u3073\u30d5\u30a9\u30eb\u30c0\u3092\u30ed\u30b8\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u8ffd\u52a0\u3057\u307e\u3059 -LocalFilesPanel.clearButton.text=\u30af\u30ea\u30a2 -LocalFilesPanel.clearButton.toolTipText=\u73fe\u5728\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3059 -LocalFilesPanel.selectedPaths.toolTipText= -LocalFilesPanel.localFileChooser.approveButtonText=\u9078\u629e -LocalFilesPanel.localFileChooser.approveButtonToolTipText= -LocalFilesPanel.selectButton.actionCommand=\u8ffd\u52a0 -AddImageWizardIngestConfigVisual.subtitleLabel.text=\u3053\u306e\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3057\u305f\u3044\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb\u7fa4\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 -AddImageWizardAddingProgressVisual.statusLabel.text=\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u304c\u30ed\u30fc\u30ab\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u3092\u89e3\u6790\u4e2d\u3067\u3059\u3002 -AddImageWizardChooseDataSourceVisual.typeTabel.text=\u8ffd\u52a0\u3059\u308b\u30bd\u30fc\u30b9\u30bf\u30a4\u30d7\u3092\u9078\u629e\uff1a +CasePropertiesForm.deleteCaseButton.text=\u30B1\u30FC\u30B9\u3092\u524A\u9664 +CueBannerPanel.createNewLabel.text=\u65B0\u898F\u30B1\u30FC\u30B9\u3092\u4F5C\u6210 +CueBannerPanel.openLabel.text=\u65E2\u5B58\u30B1\u30FC\u30B9\u3092\u958B\u304F +CueBannerPanel.closeButton.text=\u9589\u3058\u308B +CueBannerPanel.openRecentLabel.text=\u6700\u8FD1\u958B\u3044\u305F\u30B1\u30FC\u30B9\u3092\u958B\u304F +OpenRecentCasePanel.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +OpenRecentCasePanel.jLabel1.text=\u6700\u8FD1\u958B\u3044\u305F\u30D5\u30A1\u30A4\u30EB +CasePropertiesForm.caseNumberLabel.text=\u30B1\u30FC\u30B9\u756A\u53F7\uFF1A +CasePropertiesForm.examinerLabel.text=\u8ABF\u67FB\u62C5\u5F53\u8005\uFF1A +NewCaseVisualPanel2.examinerLabel.text=\u8ABF\u67FB\u62C5\u5F53\u8005\uFF1A +NewCaseVisualPanel2.caseNumberLabel.text=\u30B1\u30FC\u30B9\u756A\u53F7\uFF1A +NewCaseVisualPanel2.optionalLabel.text=\u30AA\u30D7\u30B7\u30E7\u30CA\u30EB\uFF1A\u30B1\u30FC\u30B9\u756A\u53F7\u304A\u3088\u3073\u8ABF\u67FB\u62C5\u5F53\u8005\u3092\u8A2D\u5B9A +AddImageErrorsDialog.title=\u30A4\u30E1\u30FC\u30B8\u30ED\u30B0\u3092\u8FFD\u52A0 +AddImageErrorsDialog.copyButton.toolTipText=\u30A8\u30E9\u30FC\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3059 +AddImageErrorsDialog.copyButton.text=\u30B3\u30D4\u30FC +AddImageErrorsDialog.closeButton.toolTipText=\u3053\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u9589\u3058\u307E\u3059 +AddImageErrorsDialog.closeButton.text=\u9589\u3058\u308B +OpenRecentCasePanel.openButton.text=\u958B\u304F +ImageFilePanel.pathLabel.text=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB\u3092\u95B2\u89A7\uFF1A +ImageFilePanel.browseButton.text=\u95B2\u89A7 +LocalDiskPanel.diskLabel.text=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30B9\u30AF\u3092\u9078\u629E\uFF1A +MissingImageDialog.selectButton.text=\u30A4\u30E1\u30FC\u30B8\u3092\u9078\u629E +MissingImageDialog.titleLabel.text=\u6B20\u843D\u3057\u305F\u30A4\u30E1\u30FC\u30B8\u306E\u691C\u7D22 +MissingImageDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +LocalDiskPanel.errorLabel.text=\u30A8\u30E9\u30FC\u30E9\u30D9\u30EB +LocalFilesPanel.infoLabel.text=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u30D5\u30A9\u30EB\u30C0\u3092\u8FFD\u52A0\uFF1A +LocalFilesPanel.selectButton.text=\u8FFD\u52A0 +LocalFilesPanel.localFileChooser.dialogTitle=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u53C8\u306F\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u629E +LocalFilesPanel.selectButton.toolTipText=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u30D5\u30A9\u30EB\u30C0\u3092\u30ED\u30B8\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8FFD\u52A0\u3057\u307E\u3059 +LocalFilesPanel.clearButton.text=\u30AF\u30EA\u30A2 +LocalFilesPanel.clearButton.toolTipText=\u73FE\u5728\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u304C\u30AF\u30EA\u30A2\u3055\u308C\u307E\u3059 +LocalFilesPanel.localFileChooser.approveButtonText=\u9078\u629E +LocalFilesPanel.selectButton.actionCommand=\u8FFD\u52A0 +AddImageWizardIngestConfigVisual.subtitleLabel.text=\u3053\u306E\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3057\u305F\u3044\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 +AddImageWizardAddingProgressVisual.statusLabel.text=\u30ED\u30FC\u30AB\u30EB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\u3002\u30D5\u30A1\u30A4\u30EB\u3092\u89E3\u6790\u4E2D\u3067\u3059\u3002 +AddImageWizardChooseDataSourceVisual.typeTabel.text=\u8FFD\u52A0\u3059\u308B\u30BD\u30FC\u30B9\u30BF\u30A4\u30D7\u3092\u9078\u629E\uFF1A AddImageWizardChooseDataSourceVisual.jLabel2.text=jLabel2 -AddImageWizardChooseDataSourceVisual.nextLabel.text= \u300c\u6b21\u3078\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u30a4\u30f3\u30d7\u30c3\u30c8\u30c7\u30fc\u30bf\u3092\u89e3\u6790\u3001\u30dc\u30ea\u30e5\u30fc\u30e0\u53ca\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u30c7\u30fc\u30bf\u3092\u62bd\u51fa\u3001\u30ed\u30fc\u30ab\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30c7\u30fc\u30bf\u3092\u6295\u5165\u3002 -AddImageWizardAddingProgressVisual.progressLabel.text=\uff1c\u30d7\u30ed\u30b0\u30ec\u30b9\uff1e -AddImageWizardAddingProgressVisual.viewLogButton.text=\u30ed\u30b0\u3092\u8868\u793a -AddImageWizardAddingProgressVisual.subTitle1Label.text=\u30ed\u30fc\u30ab\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u60c5\u5831\u3092\u8ffd\u52a0\u4e2d\u3067\u3059\u3002\u3053\u3061\u3089\u304c\u5b8c\u4e86\u6b21\u7b2c\u3001\u30d5\u30a1\u30a4\u30eb\u89e3\u6790\u304c\u59cb\u307e\u308a\u307e\u3059\u3002 -ImageFilePanel.timeZoneLabel.text=\u30a4\u30f3\u30d7\u30c3\u30c8\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\uff1a -ImageFilePanel.descLabel.text=\uff08\u3088\u308a\u901f\u3044\u7d50\u679c\u3001\u3057\u304b\u3057\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u306f\u691c\u7d22\u3055\u308c\u307e\u305b\u3093\uff09 -LocalDiskPanel.timeZoneLabel.text=\u30a4\u30f3\u30d7\u30c3\u30c8\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\uff1a -LocalDiskPanel.descLabel.text=\uff08\u3088\u308a\u901f\u3044\u7d50\u679c\u3001\u3057\u304b\u3057\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u306f\u691c\u7d22\u3055\u308c\u307e\u305b\u3093\uff09 -MissingImageDialog.browseButton.text=\u95b2\u89a7 -AddImageWizardAddingProgressVisual.progressTextArea.border.title=\u30b9\u30c6\u30fc\u30bf\u30b9 -AddImageAction.wizard.title=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0 -AddImageAction.ingestConfig.ongoingIngest.msg=\u4ed6\u306e\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u304c\u51e6\u7406\u4e2d\u3067\u3059\u3002\u65b0\u898f\u30bd\u30fc\u30b9\u3092\u4eca\u8ffd\u52a0\u3059\u308b\u3068\u5b9f\u884c\u4e2d\u306e\u51e6\u7406\u304c\u9045\u304f\u306a\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002
\u3053\u306e\u307e\u307e\u5b9f\u884c\u3057\u3001\u65b0\u898f\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f -AddImageAction.ingestConfig.ongoingIngest.title=\u51e6\u7406\u4e2d -AddImageTask.run.progress.adding=\u8ffd\u52a0\u4e2d\uff1a{0} -AddImageTask.interrupt.exception.msg=\u30a4\u30e1\u30fc\u30b8\u8ffd\u52a0\u30d7\u30ed\u30bb\u30b9\u306e\u505c\u6b62\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -AddImageWizardAddingProgressPanel.isValid.focusNext=\u6b21 > -AddImageWizardAddingProgressPanel.stateStarted.progressBarText=*\u5927\u304d\u3044\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u5834\u5408\u3001\u3053\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u6642\u9593\u304c\u304b\u304b\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 -AddImageWizardAddingProgressVisual.addingDsComplete.text=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0 - \u5b8c\u4e86 -AddImageWizardAddingProgressVisual.getName.text=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0 -AddImageWizardAddingProgressVisual.showErrors.critText=*\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff08\u81f4\u547d\u7684\u306a\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff09\u3002\u4e0b\u8a18\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002 -AddImageWizardAddingProgressVisual.showErrors.nonCritText=*\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff08\u91cd\u5927\u3067\u306f\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff09\u3002\u4e0b\u8a18\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002 -AddImageWizardChooseDataSourcePanel.moveFocusNext=\u6b21 > -AddImageWizardChooseDataSourceVisual.getName.text=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u60c5\u5831\u3092\u5165\u529b -AddImageWizardIngestConfigPanel.dsProcDone.noErrs.text=*\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002 -AddImageWizardIngestConfigPanel.dsProcDone.errs.text=*\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -AddImageWizardIngestConfigVisual.getName.text=\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u8a2d\u5b9a -AddImageWizardIterator.stepXofN=\u30b9\u30c6\u30c3\u30d7{0}\uff0f{1} -AddLocalFilesTask.localFileAdd.progress.text=\u8ffd\u52a0\u4e2d\uff1a{0}/{1} -Case.getCurCase.exception.noneOpen=\u73fe\u5728\u306e\u30b1\u30fc\u30b9\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\uff1b\u958b\u3044\u3066\u3044\u308b\u30b1\u30fc\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\uff01 -Case.create.exception.msg=\u30b1\u30fc\u30b9\u4f5c\u6210\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea{1}\u306e{0} -Case.open.exception.blankCase.msg=\u30b1\u30fc\u30b9\u540d\u304c\u7a7a\u767d\u3067\u3059\u3002 -Case.open.msgDlg.updated.msg=\u30b1\u30fc\u30b9\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b9\u30ad\u30fc\u30de\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u307e\u3057\u305f\u3002\n\ -\u4e0b\u8a18\u306e\u30d1\u30b9\u3092\u6301\u3064\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30b3\u30d4\u30fc\u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\uff1a\n\ - {0} -Case.open.msgDlg.updated.title=\u30b1\u30fc\u30b9\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b9\u30ad\u30fc\u30de\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8 -Case.open.exception.checkFile.msg=\u6b63\u3057\u3044\u30b1\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u305f\u304b\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\uff08\u901a\u5e38\u62e1\u5f35\u5b50{0}\u3092\u6301\u3064\uff09 -Case.checkImgExist.confDlg.doesntExist.msg={0} \u304c\u3053\u306e\u30b1\u30fc\u30b9\u306b\u95a2\u9023\u3059\u308b\u30a4\u30e1\u30fc\u30b8\u306e\uff11\u500b\u304c\u6b20\u843d\u3057\u3066\u3044\u308b\u306e\u3092\u691c\u51fa\u3057\u307e\u3057\u305f\u3002\u305d\u308c\u3089\u3092\u4eca\u304b\u3089\u691c\u7d22\u3057\u307e\u3059\u304b\uff1f\n\n\ -\u4ee5\u524d\u3001\u30a4\u30e1\u30fc\u30b8\u306f\u4e0b\u8a18\u306b\u3042\u308a\u307e\u3057\u305f\uff1a\n\ +AddImageWizardChooseDataSourceVisual.nextLabel.text= \u300C\u6B21\u3078\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u3001\u30A4\u30F3\u30D7\u30C3\u30C8\u30C7\u30FC\u30BF\u3092\u89E3\u6790\u3001\u30DC\u30EA\u30E5\u30FC\u30E0\u304A\u3088\u3073\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u3001\u30ED\u30FC\u30AB\u30EB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30C7\u30FC\u30BF\u3092\u6295\u5165\u3002 +AddImageWizardAddingProgressVisual.progressLabel.text=\uFF1C\u30D7\u30ED\u30B0\u30EC\u30B9\uFF1E +AddImageWizardAddingProgressVisual.viewLogButton.text=\u30ED\u30B0\u3092\u8868\u793A +AddImageWizardAddingProgressVisual.subTitle1Label.text=\u30ED\u30FC\u30AB\u30EB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u60C5\u5831\u3092\u8FFD\u52A0\u4E2D\u3067\u3059\u3002\u3053\u3061\u3089\u304C\u5B8C\u4E86\u6B21\u7B2C\u3001\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u304C\u59CB\u307E\u308A\u307E\u3059\u3002 +ImageFilePanel.timeZoneLabel.text=\u30A4\u30F3\u30D7\u30C3\u30C8\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\uFF1A +ImageFilePanel.descLabel.text=\uFF08\u3088\u308A\u901F\u3044\u7D50\u679C\u3001\u3057\u304B\u3057\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u306F\u691C\u7D22\u3055\u308C\u307E\u305B\u3093\uFF09 +LocalDiskPanel.timeZoneLabel.text=\u30A4\u30F3\u30D7\u30C3\u30C8\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\uFF1A +LocalDiskPanel.descLabel.text=\uFF08\u3088\u308A\u901F\u3044\u7D50\u679C\u3001\u3057\u304B\u3057\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u306F\u691C\u7D22\u3055\u308C\u307E\u305B\u3093\uFF09 +MissingImageDialog.browseButton.text=\u95B2\u89A7 +AddImageWizardAddingProgressVisual.progressTextArea.border.title=\u30B9\u30C6\u30FC\u30BF\u30B9 +AddImageAction.wizard.title=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 +AddImageAction.ingestConfig.ongoingIngest.msg=\u4ED6\u306E\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u304C\u51E6\u7406\u4E2D\u3067\u3059\u3002\u4ECA\u65B0\u898F\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0\u3059\u308B\u3068\u5B9F\u884C\u4E2D\u306E\u51E6\u7406\u304C\u9045\u304F\u306A\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
\u3053\u306E\u307E\u307E\u5B9F\u884C\u3057\u3001\u65B0\u898F\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0\u3057\u307E\u3059\u304B\uFF1F +AddImageAction.ingestConfig.ongoingIngest.title=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u4E2D +AddImageTask.run.progress.adding=\u8FFD\u52A0\u4E2D\uFF1A{0} +AddImageTask.interrupt.exception.msg=\u30A4\u30E1\u30FC\u30B8\u8FFD\u52A0\u30D7\u30ED\u30BB\u30B9\u306E\u505C\u6B62\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +AddImageWizardAddingProgressPanel.isValid.focusNext=\u6B21 > +AddImageWizardAddingProgressPanel.stateStarted.progressBarText=*\u5927\u304D\u3044\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u306E\u5834\u5408\u3001\u3053\u306E\u30D7\u30ED\u30BB\u30B9\u306F\u6642\u9593\u304C\u304B\u304B\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +AddImageWizardAddingProgressVisual.addingDsComplete.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 - \u5B8C\u4E86 +AddImageWizardAddingProgressVisual.getName.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 +AddImageWizardAddingProgressVisual.showErrors.critText=*\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u306E\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u81F4\u547D\u7684\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF09\u3002\u4E0B\u8A18\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002 +AddImageWizardAddingProgressVisual.showErrors.nonCritText=*\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u306E\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u81F4\u547D\u7684\u3067\u306F\u306A\u3044\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF09\u3002\u4E0B\u8A18\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002 +AddImageWizardChooseDataSourcePanel.moveFocusNext=\u6B21 > +AddImageWizardChooseDataSourceVisual.getName.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u60C5\u5831\u3092\u5165\u529B +AddImageWizardIngestConfigPanel.dsProcDone.noErrs.text=*\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\u3002 +AddImageWizardIngestConfigPanel.dsProcDone.errs.text=*\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u306E\u8FFD\u52A0\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +AddImageWizardIngestConfigVisual.getName.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8A2D\u5B9A +AddImageWizardIterator.stepXofN=\u30B9\u30C6\u30C3\u30D7{0}\uFF0F{1} +AddLocalFilesTask.localFileAdd.progress.text=\u8FFD\u52A0\u4E2D\uFF1A{0}/{1} +Case.getCurCase.exception.noneOpen=\u4F5C\u696D\u4E2D\u306E\u30B1\u30FC\u30B9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF1B\u958B\u3044\u3066\u3044\u308B\u30B1\u30FC\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\uFF01 +Case.create.exception.msg=\u30B1\u30FC\u30B9\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{1}\u306E{0} +Case.open.exception.blankCase.msg=\u30B1\u30FC\u30B9\u540D\u304C\u7A7A\u767D\u3067\u3059\u3002 +Case.open.msgDlg.updated.msg=\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30B9\u30AD\u30FC\u30DE\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\u3002\n\u306E\u30D1\u30B9\u3092\u6301\u3064\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u30B3\u30D4\u30FC\u304C\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F\uFF1A\n\ + {\u6B210} +Case.open.msgDlg.updated.title=\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30B9\u30AD\u30FC\u30DE\u3092\u66F4\u65B0 +Case.open.exception.checkFile.msg=\u30B1\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u306F{0}\u62E1\u5F35\u5B50\u304C\u5FC5\u8981\u3067\u3059\u3002 +Case.checkImgExist.confDlg.doesntExist.msg={0} \u304C\u3053\u306E\u30B1\u30FC\u30B9\u306B\u95A2\u9023\u3059\u308B\u30A4\u30E1\u30FC\u30B8\u306E\u3046\u3061\uFF11\u3064\u304C\u6B20\u843D\u3057\u3066\u3044\u308B\u306E\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u305D\u308C\u3092\u4ECA\u304B\u3089\u691C\u7D22\u3057\u307E\u3059\u304B\uFF1F\n\n\ +\u4EE5\u524D\u3001\u30A4\u30E1\u30FC\u30B8\u306F\u6B21\u306B\u3042\u308A\u307E\u3057\u305F\uFF1A\n\ {1}\n\ -\u3044\u3044\u3048\u3092\u9078\u629e\u3057\u3066\u3082\u3001\u4eca\u5f8c\u3082\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u95b2\u89a7\u3057\u3001\u30ec\u30dd\u30fc\u30c8\u751f\u6210\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u30d5\u30a1\u30a4\u30eb\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8868\u793a\u307e\u305f\u306f\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30d7\u30ed\u30bb\u30b9\u306e\u5b9f\u884c\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002 -Case.checkImgExist.confDlg.doesntExist.title=\u6b20\u843d\u30a4\u30e1\u30fc\u30b8 -Case.addImg.exception.msg=\u30b1\u30fc\u30b9\u306b\u30a4\u30e1\u30fc\u30b8\u3092\u8ffd\u52a0\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -Case.closeCase.exception.msg=\u73fe\u5728\u306e\u30b1\u30fc\u30b9\u3092\u9589\u3058\u308b\u6700\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -Case.deleteCase.exception.msg=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u524a\u9664\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{0} -Case.deleteCase.exception.msg2=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u524a\u9664\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{0} -Case.updateCaseName.exception.msg=\u30b1\u30fc\u30b9\u540d\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -Case.updateExaminer.exception.msg=\u8abf\u67fb\u62c5\u5f53\u8005\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30bf\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -Case.updateCaseNum.exception.msg=\u30b1\u30fc\u30b9\u756a\u53f7\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30bf\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -Case.exception.errGetRootObj=\u30eb\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u53d6\u5f97\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -Case.createCaseDir.exception.existNotDir=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u65e2\u306b\u5b58\u5728\u3057\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093\uff1a{0} -Case.createCaseDir.exception.existCantRW=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u65e2\u306b\u5b58\u5728\u3057\u3001\u8aad\u307f\u53d6\u308a\uff0f\u66f8\u304d\u8fbc\u307f\u304c\u3067\u304d\u307e\u305b\u3093\uff1a{0} -Case.createCaseDir.exception.cantCreate=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\uff1a {0} -Case.createCaseDir.exception.cantCreateCaseDir=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1a {0} -Case.createCaseDir.exception.cantCreateModDir=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a2\u30a6\u30c8\u30d7\u30c3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1a{0} -Case.createCaseDir.exception.gen=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1a{0} -CaseDeleteAction.closeConfMsg.text=\u3053\u306e\u30b1\u30fc\u30b9\u3092\u672c\u5f53\u306b\u9589\u3058\u3001\u524a\u9664\u3057\u307e\u3059\u304b\uff1f\n\ - \u30b1\u30fc\u30b9\u540d\uff1a {0}\n\ - \u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\: {1} -CaseDeleteAction.closeConfMsg.title=\u8b66\u544a\uff1a\u73fe\u5728\u306e\u30b1\u30fc\u30b9\u3092\u9589\u3058\u307e\u3059 -CaseDeleteAction.msgDlg.fileInUse.msg=\u5225\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u30d5\u30a9\u30eb\u30c0\u307e\u305f\u306f\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u3044\u308b\u306e\u3067\u3001\u524a\u9664\u3092\u5b8c\u4e86\u3067\u304d\u307e\u305b\u3093\u3002\n\n\ -\u30d5\u30a9\u30eb\u30c0\u307e\u305f\u306f\u30d5\u30a1\u30a4\u30eb\u3092\u9589\u3058\u3066\u304b\u3089\u518d\u5b9f\u884c\u3059\u308b\u304b\u3001\u624b\u52d5\u3067\u30b1\u30fc\u30b9\u3092\u524a\u9664\u3057\u3066\u4e0b\u3055\u3044\u3002 -CaseDeleteAction.msgDlg.fileInUse.title=\u30a8\u30e9\u30fc\uff1a\u30d5\u30a9\u30eb\u30c0\u304c\u4f7f\u7528\u4e2d -CaseDeleteAction.msgDlg.caseDelete.msg=\u30b1\u30fc\u30b9{0}\u306f\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002 -CaseOpenAction.autFilter.title={0} \u30b1\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb ( {1}) -CaseOpenAction.msgDlg.fileNotExist.msg=\u30a8\u30e9\u30fc\uff1a\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -CaseOpenAction.msgDlg.fileNotExist.title=\u30a8\u30e9\u30fc -CaseOpenAction.msgDlg.cantOpenCase.msg=\u30a8\u30e9\u30fc\uff1a\u30d5\u30a9\u30eb\u30c0{0}\: {1}\u306e\u30b1\u30fc\u30b9\u3092\u958b\u3051\u307e\u305b\u3093\u3067\u3057\u305f -CaseOpenAction.msgDlg.cantOpenCase.title=\u30a8\u30e9\u30fc -CasePropertiesAction.window.title=\u30b1\u30fc\u30b9\u30d7\u30ed\u30d1\u30c6\u30a3 -CasePropertiesForm.updateCaseName.msgDlg.empty.msg=\u30b1\u30fc\u30b9\u540d\u306f\u7a7a\u767d\u3067\u306f\u3044\u3051\u307e\u305b\u3093\u3002 -CasePropertiesForm.updateCaseName.msgDlg.empty.title=\u30a8\u30e9\u30fc -CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg=\u30b1\u30fc\u30b9\u540d\u306b\u306f\u4e0b\u8a18\u306e\u8a18\u53f7\u3092\u542b\u3081\u307e\u305b\u3093\uff1a\\ / \: * ? " < > | -CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title=\u30a8\u30e9\u30fc -CasePropertiesForm.updateCaseName.confMsg.msg=\u30b1\u30fc\u30b9\u540d\u3092"{0}"\u304b\u3089"{1}"\u306b\u672c\u5f53\u306b\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u307e\u3059\u304b\uff1f -CasePropertiesForm.updateCaseName.confMsg.title=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210 -CueBannerPanel.title.text=\u6700\u8fd1\u958b\u3044\u305f\u30b1\u30fc\u30b9\u3092\u958b\u304f -GeneralFilter.rawImageDesc.text=\u30ed\u30fc\u30a4\u30e1\u30fc\u30b8(*.img, *.dd, *.001, *.aa, *.raw, *.bin) -GeneralFilter.encaseImageDesc.text=\u30a8\u30f3\u30b1\u30fc\u30b9\u30a4\u30e1\u30fc\u30b8(*.e01) -ImageDSProcessor.dsType.text=\u30a4\u30e1\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb -ImageDSProcessor.allDesc.text=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u5168\u30bf\u30a4\u30d7 -ImageFilePanel.moduleErr=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a8\u30e9\u30fc -ImageFilePanel.moduleErr.msg=ImageFilePanel\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 -LocalDiskDSProcessor.dsType.text=\u30ed\u30fc\u30ab\u30eb\u30c7\u30a3\u30b9\u30af -LocalDiskPanel.localDiskModel.loading.msg=\u30ed\u30fc\u30ab\u30eb\u30c7\u30a3\u30b9\u30af\u3092\u30ed\u30fc\u30c9\u4e2d\u2026 -LocalDiskPanel.moduleErr=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a8\u30e9\u30fc -LocalDiskPanel.moduleErr.msg=LocalDiskPanel\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 -LocalDiskPanel.errLabel.disksNotDetected.text=\u30c7\u30a3\u30b9\u30af\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e00\u90e8\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\uff08\u3082\u3057\u304f\u306f\u300c\u7ba1\u7406\u8005\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u300d\u304c\u5fc5\u8981\uff09\u3002 -LocalDiskPanel.errLabel.disksNotDetected.toolTipText=\u30c7\u30a3\u30b9\u30af\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e00\u90e8\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\uff08\u3082\u3057\u304f\u306f\u300c\u7ba1\u7406\u8005\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u300d\u304c\u5fc5\u8981\uff09\u3002 -LocalDiskPanel.errLabel.drivesNotDetected.text=\u30ed\u30fc\u30ab\u30eb\u30c9\u30e9\u30a4\u30d6\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u81ea\u52d5\u691c\u51fa\u306f\u3053\u306eOS\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u3001\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\u3002 -LocalDiskPanel.errLabel.drivesNotDetected.toolTipText=\u30ed\u30fc\u30ab\u30eb\u30c9\u30e9\u30a4\u30d6\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u81ea\u52d5\u691c\u51fa\u306f\u3053\u306eOS\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u3001\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\u3002 -LocalDiskPanel.errLabel.someDisksNotDetected.text=\u4e00\u90e8\u306e\u30c7\u30a3\u30b9\u30af\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e00\u90e8\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\uff08\u3082\u3057\u304f\u306f\u300c\u7ba1\u7406\u8005\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u300d\uff09\u3002 -LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText=\u4e00\u90e8\u306e\u30c7\u30a3\u30b9\u30af\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e00\u90e8\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u7ba1\u7406\u8005\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\uff08\u3082\u3057\u304f\u306f\u300c\u7ba1\u7406\u8005\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u300d\uff09\u3002 -LocalFilesDSProcessor.dsType=\u30ed\u30b8\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb -LocalFilesDSProcessor.toString.text=\u30ed\u30b8\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb -LocalFilesPanel.contentType.text=\u30ed\u30fc\u30ab\u30eb -LocalFilesPanel.moduleErr=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a8\u30e9\u30fc -LocalFilesPanel.moduleErr.msg=LocalFilesPanel\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 -MissingImageDialog.allDesc.text=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u5168\u3066\u306e\u30bf\u30a4\u30d7 -MissingImageDialog.display.title=\u6b20\u843d\u30a4\u30e1\u30fc\u30b8\u3092\u691c\u7d22 -MissingImageDialog.confDlg.noFileSel.msg=\u30a4\u30e1\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30e1\u30fc\u30b8\u3092\u898b\u3064\u3051\u308b\n\u524d\u306b\u672c\u5f53\u306b\u7d42\u4e86\u3057\u307e\u3059\u304b\uff1f -MissingImageDialog.confDlg.noFileSel.title=\u6b20\u843d\u30a4\u30e1\u30fc\u30b8 -NewCaseVisualPanel1.getName.text=\u30b1\u30fc\u30b9\u60c5\u5831 -NewCaseVisualPanel1.caseDirBrowse.selectButton.text=\u9078\u629e -NewCaseVisualPanel2.getName.text=\u4ed8\u52a0\u60c5\u5831 -NewCaseWizardAction.closeCurCase.confMsg.msg=\u3053\u306e\u30b1\u30fc\u30b9\u3092\u4fdd\u5b58\u3057\u3001\u9589\u3058\u3066\u3001\u65b0\u898f\u30b1\u30fc\u30b9\u4f5c\u6210\u3092\u5b9f\u884c\u3057\u307e\u3059\u304b\uff1f -NewCaseWizardAction.closeCurCase.confMsg.title=\u8b66\u544a\uff1a\u73fe\u5728\u306e\u30b1\u30fc\u30b9\u3092\u9589\u3058\u307e\u3059 -NewCaseWizardAction.newCase.windowTitle.text=\u65b0\u898f\u30b1\u30fc\u30b9\u60c5\u5831 -NewCaseWizardAction.getName.text=\u65b0\u898f\u30b1\u30fc\u30b9\u30a6\u30a3\u30b6\u30fc\u30c9 -NewCaseWizardPanel1.validate.errMsg.invalidSymbols=\u30b1\u30fc\u30b9\u540d\u306b\u306f\u4e0b\u8a18\u306e\u8a18\u53f7\u3092\u542b\u3081\u307e\u305b\u3093\uff1a\\ / \: * ? " < > | -NewCaseWizardPanel1.validate.errMsg.dirExists=\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea''{0}''\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002 -NewCaseWizardPanel1.validate.confMsg.createDir.msg=\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea''{0}''\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\n\n\ -\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u304b\uff1f -NewCaseWizardPanel1.validate.confMsg.createDir.title=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210 -NewCaseWizardPanel1.validate.errMsg.cantCreateParDir.msg=\u30a8\u30e9\u30fc\uff1a\u30b1\u30fc\u30b9\u30da\u30a2\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea{0}\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f -NewCaseWizardPanel1.validate.errMsg.prevCreateBaseDir.msg=\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea{0}\u306e\u4f5c\u6210\u3092\u9632\u6b62\u3055\u308c\u307e\u3057\u305f -NewCaseWizardPanel1.validate.errMsg.cantCreateDir=\u30a8\u30e9\u30fc\uff1a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 -NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg=\u30a8\u30e9\u30fc\uff1a\u5165\u529b\u3057\u305f\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n\u6709\u52b9\u306a\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002 -NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg=\u30a8\u30e9\u30fc\uff1a\u30b1\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n\u6709\u52b9\u306a\u30b1\u30fc\u30b9\u540d\u304a\u3088\u3073\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002 -NewCaseWizardPanel2.validate.errCreateCase.msg=\u30b1\u30fc\u30b9\u4f5c\u6210\u30a8\u30e9\u30fc -OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg=\u30a8\u30e9\u30fc\uff1a\u30b1\u30fc\u30b9{0}\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -OpenRecentCasePanel.openCase.msgDlg.err=\u30a8\u30e9\u30fc -OpenRecentCasePanel.colName.caseName=\u30b1\u30fc\u30b9\u540d -OpenRecentCasePanel.colName.path=\u30d1\u30b9 -RecentCases.exception.caseIdxOutOfRange.msg=\u6700\u8fd1\u306e\u30b1\u30fc\u30b9\u30a4\u30f3\u30c7\u30c3\u30af\u30b9{0}\u306f\u7bc4\u56f2\u5916\u3067\u3059\u3002 -RecentCases.getName.text=\u6700\u8fd1\u958b\u3044\u305f\u30b1\u30fc\u30b9\u3092\u30af\u30ea\u30a2 -RecentItems.openRecentCase.msgDlg.text=\u30a8\u30e9\u30fc\uff1a\u30b1\u30fc\u30b9{0}\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -RecentItems.openRecentCase.msgDlg.err=\u30a8\u30e9\u30fc -StartupWindow.title.text=\u3088\u3046\u3053\u305d -UpdateRecentCases.menuItem.clearRecentCases.text=\u6700\u8fd1\u958b\u3044\u305f\u30b1\u30fc\u30b9\u3092\u30af\u30ea\u30a2 -UpdateRecentCases.menuItem.empty=-\u7a7a\u767d- -XMLCaseManagement.create.exception.msg=\u30b1\u30fc\u30b9XML\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3001 -XMLCaseManagement.writeFile.exception.noCase.msg=\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308b\u30b1\u30fc\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -XMLCaseManagement.writeFile.exception.errWriteToFile.msg=\u30b1\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -XMLCaseManagement.open.exception.errReadXMLFile.msg=\u30b1\u30fc\u30b9XML\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{0} -XMLCaseManagement.open.msgDlg.notAutCase.msg=\u30a8\u30e9\u30fc\uff1aAutopsy\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb("{0}")\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n\n\ -\u8a73\u7d30\uff1a\n\ -Autopsy\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4ee5\u5916(at {1})\u306f\u958b\u3051\u307e\u305b\u3093\u3002 -XMLCaseManagement.open.msgDlg.notAutCase.title=\u30a8\u30e9\u30fc -ImageFilePanel.noFatOrphansCheckbox.text=FAT\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u30aa\u30fc\u30d5\u30a1\u30f3\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u8996 -LocalDiskPanel.noFatOrphansCheckbox.text=FAT\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u30aa\u30fc\u30d5\u30a1\u30f3\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u8996 -AddImageWizardIngestConfigPanel.CANCEL_BUTTON.text=\u30ad\u30e3\u30f3\u30bb\u30eb -ImageFilePanel.errorLabel.text=\u30a8\u30e9\u30fc\u30e9\u30d9\u30eb -LocalFilesPanel.errorLabel.text=\u30a8\u30e9\u30fc\u30e9\u30d9\u30eb -NewCaseVisualPanel1.caseParentDirWarningLabel.text=\u30a8\u30e9\u30fc\u30e9\u30d9\u30eb -NewCaseVisualPanel1.caseTypeLabel.text=\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff1a +\u3044\u3044\u3048\u3092\u9078\u629E\u3057\u3066\u3082\u3001\u4ECA\u5F8C\u3082\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u95B2\u89A7\u3057\u3001\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u304C\u3067\u304D\u307E\u3059\u304C\u3001\n\u30D5\u30A1\u30A4\u30EB\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u8868\u793A\u307E\u305F\u306F\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30D7\u30ED\u30BB\u30B9\u306E\u5B9F\u884C\u304C\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002 +Case.checkImgExist.confDlg.doesntExist.title=\u6B20\u843D\u3057\u3066\u3044\u308B\u30A4\u30E1\u30FC\u30B8 +Case.addImg.exception.msg=\u30B1\u30FC\u30B9\u306B\u30A4\u30E1\u30FC\u30B8\u3092\u8FFD\u52A0\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Case.closeCase.exception.msg=\u4F5C\u696D\u4E2D\u306E\u30B1\u30FC\u30B9\u3092\u9589\u3058\u308B\u6700\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Case.deleteCase.exception.msg=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u524A\u9664\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +Case.deleteCase.exception.msg2=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u524A\u9664\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +Case.updateCaseName.exception.msg=\u30B1\u30FC\u30B9\u540D\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Case.updateExaminer.exception.msg=\u8ABF\u67FB\u62C5\u5F53\u8005\u3092\u66F4\u65B0\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Case.updateCaseNum.exception.msg=\u30B1\u30FC\u30B9\u756A\u53F7\u3092\u66F4\u65B0\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Case.exception.errGetRootObj=\u30EB\u30FC\u30C8\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Case.createCaseDir.exception.existNotDir=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u65E2\u306B\u5B58\u5728\u3057\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF1A{0} +Case.createCaseDir.exception.existCantRW=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u65E2\u306B\u5B58\u5728\u3057\u3001\u8AAD\u307F\u53D6\u308A\uFF0F\u66F8\u304D\u8FBC\u307F\u304C\u3067\u304D\u307E\u305B\u3093\uFF1A{0} +Case.createCaseDir.exception.cantCreate=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\uFF1A {0} +Case.createCaseDir.exception.cantCreateCaseDir=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A {0} +Case.createCaseDir.exception.cantCreateModDir=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Case.createCaseDir.exception.gen=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +CaseDeleteAction.closeConfMsg.text=\u3053\u306E\u30B1\u30FC\u30B9\u3092\u672C\u5F53\u306B\u9589\u3058\u3001\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F\n\ + \u30B1\u30FC\u30B9\u540D\uFF1A {0}\n\ + \u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\: {1} +CaseDeleteAction.closeConfMsg.title=\u8B66\u544A\uFF1A\u4F5C\u696D\u4E2D\u306E\u30B1\u30FC\u30B9\u3092\u9589\u3058\u307E\u3059 +CaseDeleteAction.msgDlg.fileInUse.msg=\u5225\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u30D5\u30A9\u30EB\u30C0\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3044\u3066\u3044\u308B\u306E\u3067\u3001\u524A\u9664\u3092\u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093\u3002\n\n\ +\u30D5\u30A9\u30EB\u30C0\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u3092\u9589\u3058\u3066\u304B\u3089\u518D\u5B9F\u884C\u3059\u308B\u304B\u3001\u624B\u52D5\u3067\u30B1\u30FC\u30B9\u3092\u524A\u9664\u3057\u3066\u4E0B\u3055\u3044\u3002 +CaseDeleteAction.msgDlg.fileInUse.title=\u30A8\u30E9\u30FC\uFF1A\u30D5\u30A9\u30EB\u30C0\u304C\u4F7F\u7528\u4E2D +CaseDeleteAction.msgDlg.caseDelete.msg=\u30B1\u30FC\u30B9\u306F\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 +CaseOpenAction.autFilter.title={0} \u30B1\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB ( {1}) +CaseOpenAction.msgDlg.cantOpenCase.title=\u30B1\u30FC\u30B9\u3092\u958B\u304F\u969B\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +CasePropertiesAction.window.title=\u30B1\u30FC\u30B9\u30D7\u30ED\u30D1\u30C6\u30A3 +CasePropertiesForm.updateCaseName.msgDlg.empty.msg=\u30B1\u30FC\u30B9\u540D\u306F\u7A7A\u767D\u3067\u306F\u3044\u3051\u307E\u305B\u3093\u3002 +CasePropertiesForm.updateCaseName.msgDlg.empty.title=\u30A8\u30E9\u30FC +CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg=\u30B1\u30FC\u30B9\u540D\u306B\u306F\u6B21\u306E\u8A18\u53F7\u3092\u542B\u3081\u307E\u305B\u3093\uFF1A\\ / \: * ? " < > | +CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title=\u30A8\u30E9\u30FC +CasePropertiesForm.updateCaseName.confMsg.msg=\u30B1\u30FC\u30B9\u540D\u3092"0}"\u304B\u3089"{1}"\u306B\u672C\u5F53\u306B\u66F4\u65B0\u3057\u307E\u3059\u304B\uFF1F +CasePropertiesForm.updateCaseName.confMsg.title=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u4F5C\u6210 +CueBannerPanel.title.text=\u6700\u8FD1\u958B\u3044\u305F\u30B1\u30FC\u30B9\u3092\u958B\u304F +GeneralFilter.rawImageDesc.text=\u30ED\u30FC\u30A4\u30E1\u30FC\u30B8(*.img, *.dd, *.001, *.aa, *.raw, *.bin) +GeneralFilter.encaseImageDesc.text=\u30A8\u30F3\u30B1\u30FC\u30B9\u30A4\u30E1\u30FC\u30B8(*.e01) +ImageDSProcessor.dsType.text=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB +ImageDSProcessor.allDesc.text=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u5168\u30BF\u30A4\u30D7 +ImageFilePanel.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +ImageFilePanel.moduleErr.msg=ImageFilePanel\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +LocalDiskDSProcessor.dsType.text=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30B9\u30AF +LocalDiskPanel.localDiskModel.loading.msg=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30B9\u30AF\u3092\u30ED\u30FC\u30C9\u4E2D\u2026 +LocalDiskPanel.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +LocalDiskPanel.moduleErr.msg=LocalDiskPanel\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +LocalDiskPanel.errLabel.disksNotDetected.text=\u30C7\u30A3\u30B9\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E00\u90E8\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u3082\u3057\u304F\u306F\u300C\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u300D\u304C\u5FC5\u8981\uFF09\u3002 +LocalDiskPanel.errLabel.disksNotDetected.toolTipText=\u30C7\u30A3\u30B9\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E00\u90E8\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u3082\u3057\u304F\u306F\u300C\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u300D\u304C\u5FC5\u8981\uFF09\u3002 +LocalDiskPanel.errLabel.drivesNotDetected.text=\u30ED\u30FC\u30AB\u30EB\u30C9\u30E9\u30A4\u30D6\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u81EA\u52D5\u691C\u51FA\u306F\u3053\u306EOS\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002 +LocalDiskPanel.errLabel.drivesNotDetected.toolTipText=\u30ED\u30FC\u30AB\u30EB\u30C9\u30E9\u30A4\u30D6\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u81EA\u52D5\u691C\u51FA\u306F\u3053\u306EOS\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002 +LocalDiskPanel.errLabel.someDisksNotDetected.text=\u4E00\u90E8\u306E\u30C7\u30A3\u30B9\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E00\u90E8\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u3082\u3057\u304F\u306F\u300C\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u300D\uFF09\u3002 +LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText=\u4E00\u90E8\u306E\u30C7\u30A3\u30B9\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E00\u90E8\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u3082\u3057\u304F\u306F\u300C\u7BA1\u7406\u8005\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u300D\uFF09\u3002 +LocalFilesDSProcessor.dsType=\u30ED\u30B8\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB +LocalFilesDSProcessor.toString.text=\u30ED\u30B8\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB +LocalFilesPanel.contentType.text=\u30ED\u30FC\u30AB\u30EB +LocalFilesPanel.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +LocalFilesPanel.moduleErr.msg=LocalFilesPanel\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +MissingImageDialog.allDesc.text=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u5168\u3066\u306E\u30BF\u30A4\u30D7 +MissingImageDialog.display.title=\u6B20\u843D\u30A4\u30E1\u30FC\u30B8\u3092\u691C\u7D22 +MissingImageDialog.confDlg.noFileSel.msg=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30A4\u30E1\u30FC\u30B8\u3092\u898B\u3064\u3051\u308B\n\u524D\u306B\u672C\u5F53\u306B\u7D42\u4E86\u3057\u307E\u3059\u304B\uFF1F +MissingImageDialog.confDlg.noFileSel.title=\u6B20\u843D\u30A4\u30E1\u30FC\u30B8 +NewCaseVisualPanel1.getName.text=\u30B1\u30FC\u30B9\u60C5\u5831 +NewCaseVisualPanel1.caseDirBrowse.selectButton.text=\u9078\u629E +NewCaseVisualPanel2.getName.text=\u4ED8\u52A0\u60C5\u5831 +NewCaseWizardAction.newCase.windowTitle.text=\u65B0\u898F\u30B1\u30FC\u30B9\u60C5\u5831 +NewCaseWizardAction.getName.text=\u65B0\u898F\u30B1\u30FC\u30B9\u30A6\u30A3\u30B6\u30FC\u30C9 +NewCaseWizardPanel1.validate.errMsg.invalidSymbols=\u30B1\u30FC\u30B9\u540D\u306B\u306F\u6B21\u306E\u8A18\u53F7\u3092\u542B\u3081\u307E\u305B\u3093\uFF1A\\ / \: * ? " < > | +NewCaseWizardPanel1.validate.errMsg.dirExists=\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA''{0}''\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002 +NewCaseWizardPanel1.validate.confMsg.createDir.msg=\u30D9\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA''{0}''\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\n\n\ +\u3053\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F +NewCaseWizardPanel1.validate.confMsg.createDir.title=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210 +NewCaseWizardPanel1.validate.errMsg.cantCreateParDir.msg=\u30A8\u30E9\u30FC\uFF1A\u30B1\u30FC\u30B9\u30DA\u30A2\u30EC\u30F3\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +NewCaseWizardPanel1.validate.errMsg.prevCreateBaseDir.msg=\u30D9\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306E\u4F5C\u6210\u3092\u9632\u6B62\u3055\u308C\u307E\u3057\u305F +NewCaseWizardPanel1.validate.errMsg.cantCreateDir=\u30A8\u30E9\u30FC\uFF1A\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg=\u30A8\u30E9\u30FC\uFF1A\u5165\u529B\u3057\u305F\u30D9\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\u6709\u52B9\u306A\u30D9\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002 +NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg=\u30A8\u30E9\u30FC\uFF1A\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\n\u6709\u52B9\u306A\u30B1\u30FC\u30B9\u540D\u304A\u3088\u3073\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002 +NewCaseWizardPanel2.validate.errCreateCase.msg=\u30B1\u30FC\u30B9\u306E\u4F5C\u6210\u30A8\u30E9\u30FC +OpenRecentCasePanel.colName.caseName=\u30B1\u30FC\u30B9\u540D +OpenRecentCasePanel.colName.path=\u30D1\u30B9 +RecentCases.exception.caseIdxOutOfRange.msg=\u6700\u8FD1\u306E\u30B1\u30FC\u30B9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9{0}\u306F\u7BC4\u56F2\u5916\u3067\u3059\u3002 +RecentCases.getName.text=\u6700\u8FD1\u958B\u3044\u305F\u30B1\u30FC\u30B9\u3092\u30AF\u30EA\u30A2 +RecentItems.openRecentCase.msgDlg.text=\u30A8\u30E9\u30FC\uFF1A\u30B1\u30FC\u30B9{0}\u306F\u3082\u3046\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +StartupWindow.title.text=\u3088\u3046\u3053\u305D +UpdateRecentCases.menuItem.clearRecentCases.text=\u6700\u8FD1\u958B\u3044\u305F\u30B1\u30FC\u30B9\u3092\u30AF\u30EA\u30A2 +UpdateRecentCases.menuItem.empty=-\u7A7A\u767D- +XMLCaseManagement.create.exception.msg=\u30B1\u30FC\u30B9XML\u30D5\u30A1\u30A4\u30EB\u306E\u8A2D\u5B9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3001 +XMLCaseManagement.writeFile.exception.noCase.msg=\u30DE\u30CD\u30B8\u30E1\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304F\u5FC5\u8981\u304C\u3042\u308B\u30B1\u30FC\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +XMLCaseManagement.writeFile.exception.errWriteToFile.msg=\u30B1\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u66F8\u304D\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +XMLCaseManagement.open.exception.errReadXMLFile.msg=\u30B1\u30FC\u30B9XML\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +XMLCaseManagement.open.msgDlg.notAutCase.msg=\u30A8\u30E9\u30FC\uFF1AAutopsy\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB("{0}")\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\n\ +\u8A73\u7D30\uFF1A\n\ +Autopsy\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F(at {1})\u3067\u958B\u3051\u307E\u305B\u3093\u3002 +XMLCaseManagement.open.msgDlg.notAutCase.title=\u30A8\u30E9\u30FC +ImageFilePanel.noFatOrphansCheckbox.text=FAT\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u306E\u30AA\u30FC\u30D5\u30A1\u30F3\u30D5\u30A1\u30A4\u30EB\u306F\u7121\u8996 +LocalDiskPanel.noFatOrphansCheckbox.text=FAT\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u306E\u30AA\u30FC\u30D5\u30A1\u30F3\u30D5\u30A1\u30A4\u30EB\u306F\u7121\u8996 +AddImageWizardIngestConfigPanel.CANCEL_BUTTON.text=\u30AD\u30E3\u30F3\u30BB\u30EB +ImageFilePanel.errorLabel.text=\u30A8\u30E9\u30FC\u30E9\u30D9\u30EB +LocalFilesPanel.errorLabel.text=\u30A8\u30E9\u30FC\u30E9\u30D9\u30EB +NewCaseVisualPanel1.caseTypeLabel.text=\u30B1\u30FC\u30B9\u30BF\u30A4\u30D7\uFF1A +Case.databaseConnectionInfo.error.msg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30B5\u30FC\u30D0\u30FC\u306E\u63A5\u7D9A\u60C5\u5831\u3092\u5165\u624B\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C4\u30FC\u30EB\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u3001\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Case.open.exception.multiUserCaseNotEnabled=\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u306E\u30B1\u30FC\u30B9\u304C\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u306A\u3044\u3068\u3001\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u306E\u30B1\u30FC\u30B9\u306F\u958B\u3051\u307E\u305B\u3093\u3002\u30C4\u30FC\u30EB\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u3001\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Case.createCaseDir.exception.cantCreateReportsDir=\u30EC\u30DD\u30FC\u30C8\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Case.CollaborationSetup.FailNotify.ErrMsg=\u3053\u306E\u30B1\u30FC\u30B9\u3067\u4F7F\u308F\u308C\u3066\u3044\u308B\u304B\u3082\u3057\u308C\u306A\u3044\u30CE\u30FC\u30C9\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +Case.CollaborationSetup.FailNotify.Title=\u63A5\u7D9A\u306B\u5931\u6557 +Case.GetCaseTypeGivenPath.Failure=\u30B1\u30FC\u30B9\u30BF\u30A4\u30D7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Case.metaDataFileCorrupt.exception.msg=\u30B1\u30FC\u30B9\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB(.aut)\u304C\u7834\u640D\u3057\u3066\u3044\u307E\u3059\u3002 +Case.deleteReports.deleteFromDiskException.log.msg=\u30C7\u30A3\u30B9\u30AF\u304B\u3089\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +Case.deleteReports.deleteFromDiskException.msg=\u30C7\u30A3\u30B9\u30AF\u304B\u3089{0}\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\n{1}\u304B\u3089\u624B\u52D5\u3067\u524A\u9664\u3067\u304D\u307E\u3059\u3002 +CaseCreateAction.msgDlg.cantCreateCase.msg=\u30B1\u30FC\u30B9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093 +IntervalErrorReport.NewIssues=\u65B0\u898F\u306E\u30A4\u30B7\u30E5\u30FC +IntervalErrorReport.TotalIssues=\u5168\u30A4\u30B7\u30E5\u30FC +IntervalErrorReport.ErrorText=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u63A5\u7D9A\u30A8\u30E9\u30FC +GeneralFilter.virtualMachineImageDesc.text=\u4EEE\u60F3\u30DE\u30B7\u30F3(*.vmdk, *.vhd) +LocalDiskPanel.localDiskModel.nodrives.msg=\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u308B\u30C9\u30E9\u30A4\u30D6\u304C\u3042\u308A\u307E\u305B\u3093 +MissingImageDialog.ErrorSettingImage=\u30A4\u30E1\u30FC\u30B8\u30D1\u30B9\u3092\u8A2D\u5B9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +NewCaseVisualPanel1.badCredentials.text=\u4F7F\u3048\u306A\u3044\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u306E\u8A2D\u5B9A\uFF08\u30C4\u30FC\u30EB\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u3001\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u307E\u305F\u306F\u30B5\u30FC\u30D3\u30B9\u304C\u30C0\u30A6\u30F3\u3057\u3066\u3044\u307E\u3059\u3002 +NewCaseWizardAction.databaseProblem1.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u958B\u3051\u307E\u305B\u3093\u3002\u30B1\u30FC\u30B9\u4F5C\u6210\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u3066\u3044\u307E\u3059\u3002 +NewCaseWizardAction.databaseProblem2.text=\u30A8\u30E9\u30FC +DataSourceOnCDriveError.text=\u8B66\u544A\uFF1A\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u306E\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3078\u306E\u30D1\u30B9\u306F"C\:"\u30C9\u30E9\u30A4\u30D6\u306B\u3042\u308A\u307E\u3059 +NewCaseVisualPanel1.CaseFolderOnCDriveError.text=\u8B66\u544A\uFF1A\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u306E\u30B1\u30FC\u30B9\u30D5\u30A9\u30EB\u30C0\u3078\u306E\u30D1\u30B9\u306F"C\:"\u30C9\u30E9\u30A4\u30D6\u306B\u3042\u308A\u307E\u3059 +CollaborationMonitor.addingDataSourceStatus.msg={0}\u304C\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u8FFD\u52A0\u4E2D +CollaborationMonitor.analyzingDataSourceStatus.msg={0}\u304C{1}\u3092\u89E3\u6790\u4E2D +NewCaseVisualPanel1.multiUserCaseRadioButton.text=\u8907\u6570\u30E6\u30FC\u30B6\u30FC +NewCaseVisualPanel1.singleUserCaseRadioButton.text=\u5358\u6570\u30E6\u30FC\u30B6\u30FC +CasePropertiesForm.lbDbType.text=\u30B1\u30FC\u30B9\u30BF\u30A4\u30D7\uFF1A +CasePropertiesForm.lbDbName.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D\uFF1A +SingleUserCaseConverter.BadDatabaseFileName=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\uFF01 +SingleUserCaseConverter.AlreadyMultiUser=\u30B1\u30FC\u30B9\u306F\u65E2\u306B\u8907\u6570\u30E6\u30FC\u30B6\u30FC\u3067\u3059\uFF01 +SingleUserCaseConverter.NonUniqueDatabaseName=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D\u304C\u30E6\u30CB\u30FC\u30AF\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +SingleUserCaseConverter.UnableToCopySourceImages=\u30BD\u30FC\u30B9\u30A4\u30E1\u30FC\u30B8\u3092\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +SingleUserCaseConverter.CanNotOpenDatabase=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F +CloseCaseWhileIngesting.Warning=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u304C\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u3053\u306E\u30B1\u30FC\u30B9\u3092\u672C\u5F53\u306B\u9589\u3058\u307E\u3059\u304B\uFF1F +CloseCaseWhileIngesting.Warning.title=\u8B66\u544A\uFF1A\u3053\u308C\u3092\u5B9F\u884C\u3059\u308C\u3070\u4F5C\u696D\u4E2D\u306E\u30B1\u30FC\u30B9\u3092\u9589\u3058\u307E\u3059 diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java index fbf53a99fc..6d0aca0f6e 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -93,7 +93,7 @@ import org.sleuthkit.datamodel.TskException; public class Case implements SleuthkitCase.ErrorObserver { private static final String autopsyVer = Version.getVersion(); // current version of autopsy. Change it when the version is changed - private static final String EVENT_CHANNEL_NAME = "%s-Case-Events"; + private static final String EVENT_CHANNEL_NAME = "%s-Case-Events"; //NON-NLS private static String appName = null; volatile private IntervalErrorReportData tskErrorReporter = null; private static final int MIN_SECONDS_BETWEEN_ERROR_REPORTS = 60; // No less than 60 seconds between warnings for errors @@ -218,10 +218,12 @@ public class Case implements SleuthkitCase.ErrorObserver { * This enum describes the type of case, either single-user (standalone) or * multi-user (using PostgreSql) */ + @NbBundle.Messages({"Case_caseType_singleUser=Single-user case", + "Case_caseType_multiUser=Multi-user case"}) public enum CaseType { - SINGLE_USER_CASE("Single-user case"), - MULTI_USER_CASE("Multi-user case"); + SINGLE_USER_CASE(Bundle.Case_caseType_singleUser()), + MULTI_USER_CASE(Bundle.Case_caseType_multiUser()); private final String caseType; @@ -368,7 +370,7 @@ public class Case implements SleuthkitCase.ErrorObserver { eventPublisher.openRemoteEventChannel(String.format(EVENT_CHANNEL_NAME, newCase.getTextIndexName())); currentCase.collaborationMonitor = new CollaborationMonitor(); } catch (AutopsyEventException | CollaborationMonitor.CollaborationMonitorException ex) { - logger.log(Level.SEVERE, "Failed to setup for collaboration", ex); + logger.log(Level.SEVERE, "Failed to setup for collaboration", ex); //NON-NLS MessageNotifyUtil.Notify.error(NbBundle.getMessage(Case.class, "Case.CollaborationSetup.FailNotify.Title"), NbBundle.getMessage(Case.class, "Case.CollaborationSetup.FailNotify.ErrMsg")); } } @@ -384,7 +386,8 @@ public class Case implements SleuthkitCase.ErrorObserver { @Override public void receiveError(String context, String errorMessage) { - /* NOTE: We are accessing tskErrorReporter from two different threads. + /* + * NOTE: We are accessing tskErrorReporter from two different threads. * This is ok as long as we only read the value of tskErrorReporter * because tskErrorReporter is declared as volatile. */ @@ -398,63 +401,87 @@ public class Case implements SleuthkitCase.ErrorObserver { } /** - * Creates a new case (create the XML config file and database). Overload - * for API consistency, defaults to a single-user case. + * Creates a single-user new case. * - * @param caseDir The directory to store case data in. Will be created if - * it doesn't already exist. If it exists, it should have - * all of the needed sub dirs that createCaseDirectory() - * will create. - * @param caseName the name of case - * @param caseNumber the case number - * @param examiner the examiner for this case + * @param caseDir The full path of the case directory. It will be created + * if it doesn't already exist; if it exists, it should + * have been created using Case.createCaseDirectory() to + * ensure that the required sub-directories aere created. + * @param caseName The name of case. + * @param caseNumber The case number, can be the empty string. + * @param examiner The examiner to associate with the case, can be the + * empty string. * - * @throws org.sleuthkit.autopsy.casemodule.CaseActionException + * @throws CaseActionException if there is a problem creating the case. The + * exception will have a user-friendly message + * and may be a wrapper for a lower-level + * exception. If so, + * CaseActionException.getCause will return a + * Throwable (null otherwise). */ public static void create(String caseDir, String caseName, String caseNumber, String examiner) throws CaseActionException { create(caseDir, caseName, caseNumber, examiner, CaseType.SINGLE_USER_CASE); } /** - * Creates a new case (create the XML config file and database) + * Creates a new case. * - * @param caseDir The directory to store case data in. Will be created if - * it doesn't already exist. If it exists, it should have - * all of the needed sub dirs that createCaseDirectory() - * will create. - * @param caseName the name of case - * @param caseNumber the case number - * @param examiner the examiner for this case - * @param caseType the type of case, single-user or multi-user + * @param caseDir The full path of the case directory. It will be created + * if it doesn't already exist; if it exists, it should + * have been created using Case.createCaseDirectory() to + * ensure that the required sub-directories aere created. + * @param caseName The name of case. + * @param caseNumber The case number, can be the empty string. + * @param examiner The examiner to associate with the case, can be the + * empty string. + * @param caseType The type of case (single-user or multi-user). The + * exception will have a user-friendly message and may be + * a wrapper for a lower-level exception. If so, + * CaseActionException.getCause will return a Throwable + * (null otherwise). + * + * @throws CaseActionException if there is a problem creating the case. */ public static void create(String caseDir, String caseName, String caseNumber, String examiner, CaseType caseType) throws CaseActionException { - logger.log(Level.INFO, "Creating new case.\ncaseDir: {0}\ncaseName: {1}", new Object[]{caseDir, caseName}); //NON-NLS + logger.log(Level.INFO, "Creating case with case directory {0}, caseName {1}", new Object[]{caseDir, caseName}); //NON-NLS - // create case directory if it doesn't already exist. + /* + * Create case directory if it doesn't already exist. + */ if (new File(caseDir).exists() == false) { Case.createCaseDirectory(caseDir, caseType); } - String configFilePath = caseDir + File.separator + caseName + CASE_DOT_EXTENSION; - - XMLCaseManagement xmlcm = new XMLCaseManagement(); - + /* + * Sanitize the case name, create a unique keyword search index name, + * and create a standard (single-user) or unique (multi-user) case + * database name. + */ + String santizedCaseName = sanitizeCaseName(caseName); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss"); Date date = new Date(); - String santizedCaseName = sanitizeCaseName(caseName); String indexName = santizedCaseName + "_" + dateFormat.format(date); String dbName = null; - - // figure out the database name and index name for text extraction if (caseType == CaseType.SINGLE_USER_CASE) { dbName = caseDir + File.separator + "autopsy.db"; //NON-NLS } else if (caseType == CaseType.MULTI_USER_CASE) { dbName = indexName; } - xmlcm.create(caseDir, caseName, examiner, caseNumber, caseType, dbName, indexName); // create a new XML config file + /* + * Create the case metadata (.aut) file. + * + * TODO (AUT-1885): Replace use of obsolete and unsafe XMLCaseManagement + * class with use of CaseMetadata class. + */ + String configFilePath = caseDir + File.separator + caseName + CASE_DOT_EXTENSION; + XMLCaseManagement xmlcm = new XMLCaseManagement(); + xmlcm.create(caseDir, caseName, examiner, caseNumber, caseType, dbName, indexName); xmlcm.writeFile(); + /* + * Create the case database. + */ SleuthkitCase db = null; try { if (caseType == CaseType.SINGLE_USER_CASE) { @@ -463,24 +490,23 @@ public class Case implements SleuthkitCase.ErrorObserver { db = SleuthkitCase.newCase(dbName, UserPreferences.getDatabaseConnectionInfo(), caseDir); } } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Error creating a case: " + caseName + " in dir " + caseDir + " " + ex.getMessage(), ex); //NON-NLS + logger.log(Level.SEVERE, String.format("Error creating a case %s in %s ", caseName, caseDir), ex); //NON-NLS SwingUtilities.invokeLater(() -> { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }); + /* + * SleuthkitCase.newCase throws TskCoreExceptions with user-friendly + * messages, so propagate the exception message. + */ throw new CaseActionException(ex.getMessage(), ex); //NON-NLS } catch (UserPreferencesException ex) { logger.log(Level.SEVERE, "Error accessing case database connection info", ex); //NON-NLS SwingUtilities.invokeLater(() -> { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }); - throw new CaseActionException( - NbBundle.getMessage(Case.class, "Case.databaseConnectionInfo.error.msg"), ex); + throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.databaseConnectionInfo.error.msg"), ex); } - /** - * Two-stage initialization to avoid leaking reference to "this" in - * constructor. - */ Case newCase = new Case(caseName, caseNumber, examiner, configFilePath, xmlcm, db, caseType); changeCase(newCase); } @@ -518,13 +544,13 @@ public class Case implements SleuthkitCase.ErrorObserver { String result; // Remove all non-ASCII characters - result = caseName.replaceAll("[^\\p{ASCII}]", "_"); + result = caseName.replaceAll("[^\\p{ASCII}]", "_"); //NON-NLS // Remove all control characters - result = result.replaceAll("[\\p{Cntrl}]", "_"); + result = result.replaceAll("[\\p{Cntrl}]", "_"); //NON-NLS // Remove / \ : ? space ' " - result = result.replaceAll("[ /?:'\"\\\\]", "_"); + result = result.replaceAll("[ /?:'\"\\\\]", "_"); //NON-NLS // Make it all lowercase result = result.toLowerCase(); @@ -540,7 +566,7 @@ public class Case implements SleuthkitCase.ErrorObserver { } if (result.isEmpty()) { - result = "case"; + result = "case"; //NON-NLS } return result; @@ -549,20 +575,28 @@ public class Case implements SleuthkitCase.ErrorObserver { /** * Opens an existing case. * - * @param caseMetadataFilePath The path of the case metadata file for the - * case to be opened. + * @param caseMetadataFilePath The path of the case metadata file. * - * @throws CaseActionException + * @throws CaseActionException if there is a problem opening the case. The + * exception will have a user-friendly message + * and may be a wrapper for a lower-level + * exception. If so, + * CaseActionException.getCause will return a + * Throwable (null otherwise). */ public static void open(String caseMetadataFilePath) throws CaseActionException { + logger.log(Level.INFO, "Opening case with metadata file path {0}", caseMetadataFilePath); //NON-NLS + + /* + * Verify the extension of the case metadata file. + */ if (!caseMetadataFilePath.endsWith(CASE_DOT_EXTENSION)) { throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.checkFile.msg", CASE_DOT_EXTENSION)); } - logger.log(Level.INFO, "Opening case, case metadata file path: {0}", caseMetadataFilePath); //NON-NLS try { - /** - * Get the case metadata from the file. + /* + * Get the case metadata required to open the case database. */ CaseMetadata metadata = new CaseMetadata(Paths.get(caseMetadataFilePath)); String caseName = metadata.getCaseName(); @@ -571,7 +605,7 @@ public class Case implements SleuthkitCase.ErrorObserver { CaseType caseType = metadata.getCaseType(); String caseDir = metadata.getCaseDirectory(); - /** + /* * Open the case database. */ SleuthkitCase db; @@ -585,40 +619,57 @@ public class Case implements SleuthkitCase.ErrorObserver { try { db = SleuthkitCase.openCase(metadata.getCaseDatabaseName(), UserPreferences.getDatabaseConnectionInfo(), caseDir); } catch (UserPreferencesException ex) { - logger.log(Level.SEVERE, "Error accessing case database connection info", ex); //NON-NLS throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.databaseConnectionInfo.error.msg"), ex); } } - /** - * Do things that require a UI. + /* + * Check for the presence of the UI and do things that can only be + * done with user interaction. */ if (RuntimeProperties.coreComponentsAreActive()) { - /** + /* * If the case database was upgraded for a new schema, notify * the user. */ if (null != db.getBackupDatabasePath()) { SwingUtilities.invokeLater(() -> { - JOptionPane.showMessageDialog(null, - NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.msg", - db.getBackupDatabasePath()), + JOptionPane.showMessageDialog( + WindowManager.getDefault().getMainWindow(), + NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.msg", db.getBackupDatabasePath()), NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.title"), JOptionPane.INFORMATION_MESSAGE); }); } - /** - * TODO: This currently has no value if it there is no user to - * interact with a fid missing images dialog. + /* + * Look for the files for the data sources listed in the case + * database and give the user the opportunity to locate any that + * are missing. */ - checkImagesExist(db); + Map imgPaths = getImagePaths(db); + for (Map.Entry entry : imgPaths.entrySet()) { + long obj_id = entry.getKey(); + String path = entry.getValue(); + boolean fileExists = (pathExists(path) || driveExists(path)); + if (!fileExists) { + int ret = JOptionPane.showConfirmDialog( + WindowManager.getDefault().getMainWindow(), + NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.msg", getAppName(), path), + NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.title"), + JOptionPane.YES_NO_OPTION); + if (ret == JOptionPane.YES_OPTION) { + MissingImageDialog.makeDialog(obj_id, db); + } else { + logger.log(Level.WARNING, "Selected image files don't match old files!"); //NON-NLS + } + } + } } - /** - * Two-stage initialization to avoid leaking reference to "this" in - * constructor. TODO: Remove use of obsolete XMLCaseManagement - * class. + /* + * TODO (AUT-1885): Replace use of obsolete and unsafe + * XMLCaseManagement class with use of CaseMetadata class. */ XMLCaseManagement xmlcm = new XMLCaseManagement(); xmlcm.open(caseMetadataFilePath); @@ -626,28 +677,16 @@ public class Case implements SleuthkitCase.ErrorObserver { changeCase(openedCase); } catch (CaseMetadataException ex) { - /** - * Attempt clean up. - */ - try { - Case badCase = Case.getCurrentCase(); - badCase.closeCase(); - } catch (IllegalStateException ignored) { - } - throw new CaseActionException(ex.getMessage(), ex); //NON-NLS + throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.metaDataFileCorrupt.exception.msg"), ex); //NON-NLS } catch (TskCoreException ex) { - /** - * Attempt clean up. - */ - try { - Case badCase = Case.getCurrentCase(); - badCase.closeCase(); - } catch (IllegalStateException ignored) { - } SwingUtilities.invokeLater(() -> { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }); - throw new CaseActionException(ex.getMessage(), ex); //NON-NLS + /* + * SleuthkitCase.openCase throws TskCoreExceptions with + * user-friendly messages, so propagate the exception message. + */ + throw new CaseActionException(ex.getMessage(), ex); } } @@ -666,35 +705,6 @@ public class Case implements SleuthkitCase.ErrorObserver { return imgPaths; } - /** - * Ensure that all image paths point to valid image files - */ - private static void checkImagesExist(SleuthkitCase db) { - Map imgPaths = getImagePaths(db); - for (Map.Entry entry : imgPaths.entrySet()) { - long obj_id = entry.getKey(); - String path = entry.getValue(); - boolean fileExists = (pathExists(path) || driveExists(path)); - if (!fileExists) { - int ret = JOptionPane.showConfirmDialog(null, - NbBundle.getMessage(Case.class, - "Case.checkImgExist.confDlg.doesntExist.msg", - getAppName(), path), - NbBundle.getMessage(Case.class, - "Case.checkImgExist.confDlg.doesntExist.title"), - JOptionPane.YES_NO_OPTION); - if (ret == JOptionPane.YES_OPTION) { - - MissingImageDialog.makeDialog(obj_id, db); - - } else { - logger.log(Level.WARNING, "Selected image files don't match old files!"); //NON-NLS - } - - } - } - } - /** * Adds the image to the current case after it has been added to the DB. * Sends out event and reopens windows if needed. @@ -1585,10 +1595,10 @@ public class Case implements SleuthkitCase.ErrorObserver { if (RuntimeProperties.coreComponentsAreActive()) { // enable these menus - CallableSystemAction.get(AddImageAction.class).setEnabled(true); - CallableSystemAction.get(CaseCloseAction.class).setEnabled(true); - CallableSystemAction.get(CasePropertiesAction.class).setEnabled(true); - CallableSystemAction.get(CaseDeleteAction.class).setEnabled(true); // Delete Case menu + CallableSystemAction.get(AddImageAction.class).setEnabled(true); + CallableSystemAction.get(CaseCloseAction.class).setEnabled(true); + CallableSystemAction.get(CasePropertiesAction.class).setEnabled(true); + CallableSystemAction.get(CaseDeleteAction.class).setEnabled(true); // Delete Case menu if (toChangeTo.hasData()) { // open all top components diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseMetadata.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseMetadata.java index c43b981db2..81e53a1fc9 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseMetadata.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseMetadata.java @@ -59,25 +59,53 @@ public final class CaseMetadata { try { /* * TODO (RC): This class should eventually replace the non-public - * XMLCaseManagement class altogether. + * and unsafe XMLCaseManagement class altogether. */ XMLCaseManagement metadata = new XMLCaseManagement(); metadata.open(metadataFilePath.toString()); - caseType = metadata.getCaseType(); - caseName = metadata.getCaseName(); - if (caseName.isEmpty()) { - throw new CaseMetadataException("Case name missing"); + try { + caseType = metadata.getCaseType(); + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case type element missing"); } - caseNumber = metadata.getCaseNumber(); - examiner = metadata.getCaseExaminer(); - caseDirectory = metadata.getCaseDirectory(); - if (caseDirectory.isEmpty()) { - throw new CaseMetadataException("Case directory missing"); + try { + caseName = metadata.getCaseName(); + if (caseName.isEmpty()) { + throw new CaseMetadataException("Case name missing"); + } + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case name element missing"); } - caseDatabaseName = metadata.getDatabaseName(); - caseTextIndexName = metadata.getTextIndexName(); - if (Case.CaseType.MULTI_USER_CASE == caseType && caseDatabaseName.isEmpty()) { - throw new CaseMetadataException("Case database name missing"); + try { + caseNumber = metadata.getCaseNumber(); + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case number element missing"); + } + try { + examiner = metadata.getCaseExaminer(); + } catch (NullPointerException unused) { + throw new CaseMetadataException("Examiner element missing"); + } + try { + caseDirectory = metadata.getCaseDirectory(); + if (caseDirectory.isEmpty()) { + throw new CaseMetadataException("Case directory missing"); + } + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case directory element missing"); + } + try { + caseDatabaseName = metadata.getDatabaseName(); + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case database element missing"); + } + try { + caseTextIndexName = metadata.getTextIndexName(); + if (Case.CaseType.MULTI_USER_CASE == caseType && caseDatabaseName.isEmpty()) { + throw new CaseMetadataException("Case keyword search index name missing"); + } + } catch (NullPointerException unused) { + throw new CaseMetadataException("Case keyword search index name missing"); } } catch (CaseActionException ex) { throw new CaseMetadataException(ex.getLocalizedMessage(), ex); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java index 5ea268adf4..f879393558 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java @@ -65,7 +65,7 @@ public final class CaseOpenAction implements ActionListener { } /** - * Pops up a file chooser to allow the user to select a case meta data file + * Pops up a file chooser to allow the user to select a case metadata file * (.aut file) and attempts to open the case described by the file. * * @param e The action event. @@ -73,21 +73,28 @@ public final class CaseOpenAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { /* - * If ingest is running, do a dialog to warn the user and confirm - * abandoning the ingest. + * If ingest is running, do a dialog to warn the user and confirm the + * intent to close the current case and leave the ingest process + * incomplete. */ if (IngestManager.getInstance().isIngestRunning()) { - String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"); - NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase, + NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation( + NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"), NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"), NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); descriptor.setValue(NotifyDescriptor.NO_OPTION); Object res = DialogDisplayer.getDefault().notify(descriptor); if (res != null && res == DialogDescriptor.YES_OPTION) { + Case currentCase = null; try { - Case.getCurrentCase().closeCase(); - } catch (Exception ex) { - logger.log(Level.SEVERE, "Error closing case", ex); //NON-NLS + currentCase = Case.getCurrentCase(); + currentCase.closeCase(); + } catch (IllegalStateException ignored) { + /* + * No current case. + */ + } catch (CaseActionException ex) { + logger.log(Level.SEVERE, String.format("Error closing case at %s while ingest was running", (null != currentCase ? currentCase.getCaseDirectory() : "?")), ex); //NON-NLS } } else { return; @@ -100,17 +107,13 @@ public final class CaseOpenAction implements ActionListener { */ int retval = fileChooser.showOpenDialog(WindowManager.getDefault().getMainWindow()); if (retval == JFileChooser.APPROVE_OPTION) { - /** - * This is a bit of a hack, but close the startup window, if it was - * the source of the action invocation. + /* + * Close the startup window, if it is open. */ - try { - StartupWindowProvider.getInstance().close(); - } catch (Exception unused) { - } + StartupWindowProvider.getInstance().close(); - /** - * Try to open the case associated with the case meta data file the + /* + * Try to open the case associated with the case metadata file the * user selected. */ final String path = fileChooser.getSelectedFile().getPath(); @@ -121,12 +124,14 @@ public final class CaseOpenAction implements ActionListener { try { Case.open(path); } catch (CaseActionException ex) { - logger.log(Level.SEVERE, String.format("Could not open case at %s", path), ex); + logger.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", path), ex); //NON-NLS SwingUtilities.invokeLater(() -> { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), - ex.getMessage(), - NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS + JOptionPane.showMessageDialog( + WindowManager.getDefault().getMainWindow(), + ex.getMessage(), // Should be user-friendly + NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), //NON-NLS + JOptionPane.ERROR_MESSAGE); if (!Case.isCaseOpen()) { StartupWindowProvider.getInstance().open(); } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java index 99dcd8bfa2..89cbaad77a 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java @@ -24,6 +24,7 @@ */ package org.sleuthkit.autopsy.casemodule; +import java.awt.*; import java.nio.file.Paths; import java.awt.event.ActionListener; import java.io.File; @@ -173,6 +174,8 @@ class CasePropertiesForm extends javax.swing.JPanel { */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents + @NbBundle.Messages({"CasePropertiesForm.imagesTable.path=Path", + "CasePropertiesForm.imagesTable.remove=Remove"}) private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); @@ -205,7 +208,7 @@ class CasePropertiesForm extends javax.swing.JPanel { jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); - casePropLabel.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N + casePropLabel.setFont(casePropLabel.getFont().deriveFont(Font.BOLD, 24)); casePropLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); casePropLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.casePropLabel.text")); // NOI18N @@ -227,10 +230,10 @@ class CasePropertiesForm extends javax.swing.JPanel { } }); - genInfoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N + genInfoLabel.setFont(genInfoLabel.getFont().deriveFont(Font.BOLD, 14)); genInfoLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.genInfoLabel.text")); // NOI18N - imgInfoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N + imgInfoLabel.setFont(imgInfoLabel.getFont().deriveFont(Font.BOLD, 14)); imgInfoLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.imgInfoLabel.text")); // NOI18N OKButton.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.OKButton.text")); // NOI18N @@ -240,7 +243,8 @@ class CasePropertiesForm extends javax.swing.JPanel { }, new String [] { - "Path", "Remove" + Bundle.CasePropertiesForm_imagesTable_path(), + Bundle.CasePropertiesForm_imagesTable_remove() } ) { boolean[] canEdit = new boolean [] { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CollaborationMonitor.java b/Core/src/org/sleuthkit/autopsy/casemodule/CollaborationMonitor.java index 4ea3463acc..0fb3601d88 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CollaborationMonitor.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CollaborationMonitor.java @@ -56,11 +56,11 @@ import org.sleuthkit.autopsy.ingest.events.DataSourceAnalysisStartedEvent; */ final class CollaborationMonitor { - private static final String EVENT_CHANNEL_NAME = "%s-Collaboration-Monitor-Events"; - private static final String COLLABORATION_MONITOR_EVENT = "COLLABORATION_MONITOR_EVENT"; + private static final String EVENT_CHANNEL_NAME = "%s-Collaboration-Monitor-Events"; //NON-NLS + private static final String COLLABORATION_MONITOR_EVENT = "COLLABORATION_MONITOR_EVENT"; //NON-NLS private static final Set CASE_EVENTS_OF_INTEREST = new HashSet<>(Arrays.asList(new String[]{Case.Events.ADDING_DATA_SOURCE.toString(), Case.Events.DATA_SOURCE_ADDED.toString(), Case.Events.ADDING_DATA_SOURCE_FAILED.toString()})); private static final int NUMBER_OF_PERIODIC_TASK_THREADS = 2; - private static final String PERIODIC_TASK_THREAD_NAME = "collab-monitor-periodic-tasks-%d"; + private static final String PERIODIC_TASK_THREAD_NAME = "collab-monitor-periodic-tasks-%d"; //NON-NLS private static final long HEARTBEAT_INTERVAL_MINUTES = 1; private static final long MAX_MISSED_HEARTBEATS = 5; private static final long STALE_TASKS_DETECTION_INTERVAL_MINUTES = 2; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java index 440d0b4d20..b409e42830 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java @@ -18,9 +18,7 @@ */ package org.sleuthkit.autopsy.casemodule; -import java.awt.Dialog; -import java.awt.Dimension; -import java.awt.Toolkit; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; @@ -79,10 +77,10 @@ public class CueBannerPanel extends javax.swing.JPanel { closeButton = new javax.swing.JButton(); jSeparator1 = new javax.swing.JSeparator(); - autopsyLogo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/welcome_logo.png"))); // NOI18N + autopsyLogo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/welcome_logo.png"))); // NOI18N NON-NLS autopsyLogo.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.autopsyLogo.text")); // NOI18N - newCaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_create_new_case.png"))); // NOI18N + newCaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_create_new_case.png"))); // NOI18N NON-NLS newCaseButton.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.newCaseButton.text")); // NOI18N newCaseButton.setBorder(null); newCaseButton.setBorderPainted(false); @@ -94,7 +92,7 @@ public class CueBannerPanel extends javax.swing.JPanel { } }); - openRecentButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_open_recent.png"))); // NOI18N + openRecentButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_open_recent.png"))); // NOI18N NON-NLS openRecentButton.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openRecentButton.text")); // NOI18N openRecentButton.setBorder(null); openRecentButton.setBorderPainted(false); @@ -106,13 +104,13 @@ public class CueBannerPanel extends javax.swing.JPanel { } }); - createNewLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N + createNewLabel.setFont(createNewLabel.getFont().deriveFont(Font.PLAIN, 13)); createNewLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.createNewLabel.text")); // NOI18N - openRecentLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N + openRecentLabel.setFont(openRecentLabel.getFont().deriveFont(Font.PLAIN, 13)); openRecentLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openRecentLabel.text")); // NOI18N - openCaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_open_existing.png"))); // NOI18N + openCaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_open_existing.png"))); // NOI18N NON-NLS openCaseButton.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openCaseButton.text")); // NOI18N openCaseButton.setBorder(null); openCaseButton.setBorderPainted(false); @@ -125,7 +123,7 @@ public class CueBannerPanel extends javax.swing.JPanel { } }); - openLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N + openLabel.setFont(openLabel.getFont().deriveFont(Font.PLAIN, 13)); openLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openLabel.text")); // NOI18N closeButton.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.closeButton.text")); // NOI18N diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java b/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java index d5e5e647e5..18b2c5b8e8 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java @@ -192,7 +192,7 @@ class MissingImageDialog extends javax.swing.JDialog { } }); - lbWarning.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N + lbWarning.setFont(lbWarning.getFont().deriveFont(Font.BOLD, 12)); lbWarning.setForeground(new java.awt.Color(244, 0, 0)); org.openide.awt.Mnemonics.setLocalizedText(lbWarning, org.openide.util.NbBundle.getMessage(MissingImageDialog.class, "MissingImageDialog.lbWarning.text")); // NOI18N lbWarning.setToolTipText(org.openide.util.NbBundle.getMessage(MissingImageDialog.class, "MissingImageDialog.lbWarning.toolTipText")); // NOI18N @@ -223,7 +223,7 @@ class MissingImageDialog extends javax.swing.JDialog { .addGap(18, 18, 18)) ); - titleLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N + titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 12)); org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(MissingImageDialog.class, "MissingImageDialog.titleLabel.text")); // NOI18N titleSeparator.setForeground(new java.awt.Color(102, 102, 102)); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java index 5694ba5c70..3dde0a0056 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java @@ -215,7 +215,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener { caseParentDirWarningLabel = new javax.swing.JLabel(); caseTypeLabel = new javax.swing.JLabel(); - jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N + jLabel1.setFont(jLabel1.getFont().deriveFont(Font.BOLD, 14)); org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(NewCaseVisualPanel1.class, "NewCaseVisualPanel1.jLabel1.text_1")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(caseNameLabel, org.openide.util.NbBundle.getMessage(NewCaseVisualPanel1.class, "NewCaseVisualPanel1.caseNameLabel.text_1")); // NOI18N diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java index 9b6c29a7c5..39f831c5a1 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java @@ -39,10 +39,11 @@ import javax.swing.JOptionPane; import org.sleuthkit.autopsy.casemodule.Case.CaseType; import org.openide.windows.WindowManager; import java.awt.Cursor; +import java.util.concurrent.ExecutionException; import org.sleuthkit.autopsy.ingest.IngestManager; /** - * An action that runs the new case wizard. + * An action that creates and runs the new case wizard. */ final class NewCaseWizardAction extends CallableSystemAction { @@ -53,32 +54,39 @@ final class NewCaseWizardAction extends CallableSystemAction { @Override public void performAction() { /* - * If ingest is running, do a dialog to warn the user and confirm - * abandoning the ingest. + * If ingest is running, do a dialog to warn the user and confirm the + * intent to close the current case and leave the ingest process + * incomplete. */ if (IngestManager.getInstance().isIngestRunning()) { - String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"); - NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase, + NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation( + NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"), NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"), NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); descriptor.setValue(NotifyDescriptor.NO_OPTION); Object res = DialogDisplayer.getDefault().notify(descriptor); if (res != null && res == DialogDescriptor.YES_OPTION) { + Case currentCase = null; try { - Case.getCurrentCase().closeCase(); - } catch (Exception ex) { - Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case", ex); //NON-NLS + currentCase = Case.getCurrentCase(); + currentCase.closeCase(); + } catch (IllegalStateException ignored) { + /* + * No current case. + */ + } catch (CaseActionException ex) { + logger.log(Level.SEVERE, String.format("Error closing case at %s while ingest was running", (null != currentCase ? currentCase.getCaseDirectory() : "?")), ex); //NON-NLS } } else { return; } } WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - newCaseAction(); + runNewCaseWizard(); } - private void newCaseAction() { - final WizardDescriptor wizardDescriptor = new WizardDescriptor(getPanels()); + private void runNewCaseWizard() { + final WizardDescriptor wizardDescriptor = new WizardDescriptor(getNewCaseWizardPanels()); wizardDescriptor.setTitleFormat(new MessageFormat("{0}")); wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.newCase.windowTitle.text")); Dialog dialog = DialogDisplayer.getDefault().createDialog(wizardDescriptor); @@ -104,21 +112,14 @@ final class NewCaseWizardAction extends CallableSystemAction { AddImageAction addImageAction = SystemAction.get(AddImageAction.class); addImageAction.actionPerformed(null); } catch (Exception ex) { - logger.log(Level.SEVERE, "Error creating case", ex); //NON-NLS + logger.log(Level.SEVERE, String.format("Error creating case %s", wizardDescriptor.getProperty("caseName")), ex); //NON-NLS SwingUtilities.invokeLater(() -> { - JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getCause().getMessage() + " " - + NbBundle.getMessage(this.getClass(), "CaseExceptionWarning.CheckMultiUserOptions"), - NbBundle.getMessage(this.getClass(), "CaseCreateAction.msgDlg.cantCreateCase.msg"), - JOptionPane.ERROR_MESSAGE); //NON-NLS - /** - * This is a bit of a hack, but close the startup - * window, if it was the source of the action - * invocation. - */ - try { - StartupWindowProvider.getInstance().close(); - } catch (Exception unused) { - } + JOptionPane.showMessageDialog( + WindowManager.getDefault().getMainWindow(), + (ex instanceof ExecutionException ? ex.getCause().getMessage() : ex.getMessage()), + NbBundle.getMessage(this.getClass(), "CaseCreateAction.msgDlg.cantCreateCase.msg"), //NON-NLS + JOptionPane.ERROR_MESSAGE); + StartupWindowProvider.getInstance().close(); // RC: Why close and open? if (!Case.isCaseOpen()) { StartupWindowProvider.getInstance().open(); } @@ -137,7 +138,6 @@ final class NewCaseWizardAction extends CallableSystemAction { private void doFailedCaseCleanup(WizardDescriptor wizardDescriptor) { String createdDirectory = (String) wizardDescriptor.getProperty("createdDirectory"); //NON-NLS if (createdDirectory != null) { - logger.log(Level.INFO, "Deleting a created case directory due to an error, dir: {0}", createdDirectory); //NON-NLS Case.deleteCaseDirectory(new File(createdDirectory)); } SwingUtilities.invokeLater(() -> { @@ -146,10 +146,10 @@ final class NewCaseWizardAction extends CallableSystemAction { } /** - * Initializes the new case wizard panels. + * Creates the new case wizard panels. */ @SuppressWarnings({"unchecked", "rawtypes"}) - private WizardDescriptor.Panel[] getPanels() { + private WizardDescriptor.Panel[] getNewCaseWizardPanels() { if (panels == null) { panels = new WizardDescriptor.Panel[]{ new NewCaseWizardPanel1(), @@ -180,21 +180,33 @@ final class NewCaseWizardAction extends CallableSystemAction { return panels; } + /** + * @inheritDoc + */ @Override public String getName() { return NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.getName.text"); } + /** + * @inheritDoc + */ @Override public String iconResource() { return null; } + /** + * @inheritDoc + */ @Override public HelpCtx getHelpCtx() { return HelpCtx.DEFAULT_HELP; } + /** + * @inheritDoc + */ @Override protected boolean asynchronous() { return false; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel2.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel2.java index afbba08a6c..4712f74fe0 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel2.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel2.java @@ -170,8 +170,8 @@ class NewCaseWizardPanel2 implements WizardDescriptor.ValidatingPanel { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); @@ -119,9 +132,13 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { Case.open(casePath); } catch (CaseActionException ex) { SwingUtilities.invokeLater(() -> { + logger.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", casePath), ex); //NON-NLS WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getMessage(), - NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS + JOptionPane.showMessageDialog( + WindowManager.getDefault().getMainWindow(), + ex.getMessage(), // Should be user-friendly + NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), //NON-NLS + JOptionPane.ERROR_MESSAGE); if (!Case.isCaseOpen()) { StartupWindowProvider.getInstance().open(); } @@ -132,15 +149,6 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { } } - /** - * Sets the Close button action listener. - * - * @param e the action listener - */ - public void setCloseButtonActionListener(ActionListener e) { - this.cancelButton.addActionListener(e); - } - /** * Table model to keep track of recent cases. */ @@ -148,6 +156,9 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { private static final long serialVersionUID = 1L; + /** + * @inheritDoc + */ @Override public int getRowCount() { int count = 0; @@ -159,11 +170,17 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { return count; } + /** + * @inheritDoc + */ @Override public int getColumnCount() { return 2; } + /** + * @inheritDoc + */ @Override public String getColumnName(int column) { String colName = null; @@ -180,6 +197,9 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { return colName; } + /** + * @inheritDoc + */ @Override public Object getValueAt(int rowIndex, int columnIndex) { Object ret = null; @@ -197,15 +217,28 @@ final class OpenRecentCasePanel extends javax.swing.JPanel { return ret; } + /** + * @inheritDoc + */ @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } + /** + * @inheritDoc + */ @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { } + /** + * Shortens a path to fit the display. + * + * @param path The path to shorten. + * + * @return The shortened path. + */ private String shortenPath(String path) { String shortenedPath = path; if (shortenedPath.length() > 50) { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java b/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java index 8e9c989d5a..2df4401ad9 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2015 Basis Technology Corp. + * Copyright 2011-2016 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,7 +23,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JOptionPane; -import javax.swing.JPanel; import javax.swing.SwingUtilities; import org.openide.util.NbBundle; import org.openide.windows.WindowManager; @@ -36,21 +35,23 @@ import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.IngestManager; /** - * This class is used to add the action to the recent case menu item. When the - * the recent case menu is pressed, it should open that selected case. + * An action listener that opens a recent case. */ class RecentItems implements ActionListener { - final String caseName; - final String casePath; - private JPanel caller; // for error handling + private static final Logger logger = Logger.getLogger(RecentItems.class.getName()); + private final String caseName; + private final String caseMetaDataFilePath; /** - * the constructor + * Constructs an action listener that opens a recent case. + * + * @param caseName The name of the case. + * @param caseMetaDataFilePath The path to the case metadata file. */ - public RecentItems(String caseName, String casePath) { + public RecentItems(String caseName, String caseMetaDataFilePath) { this.caseName = caseName; - this.casePath = casePath; + this.caseMetaDataFilePath = caseMetaDataFilePath; } /** @@ -60,58 +61,65 @@ class RecentItems implements ActionListener { */ @Override public void actionPerformed(ActionEvent e) { - - // if ingest is ongoing, warn and get confirmaion before opening a different case + /* + * If ingest is running, do a dialog to warn the user and confirm the + * intent to close the current case and leave the ingest process + * incomplete. + */ if (IngestManager.getInstance().isIngestRunning()) { - // show the confirmation first to close the current case and open the "New Case" wizard panel - String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"); - NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation(closeCurrentCase, + NotifyDescriptor descriptor = new NotifyDescriptor.Confirmation( + NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning"), NbBundle.getMessage(this.getClass(), "CloseCaseWhileIngesting.Warning.title"), NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); descriptor.setValue(NotifyDescriptor.NO_OPTION); - Object res = DialogDisplayer.getDefault().notify(descriptor); if (res != null && res == DialogDescriptor.YES_OPTION) { + Case currentCase = null; try { - Case.getCurrentCase().closeCase(); // close the current case - } catch (Exception ex) { - Logger.getLogger(NewCaseWizardAction.class.getName()).log(Level.WARNING, "Error closing case.", ex); //NON-NLS + currentCase = Case.getCurrentCase(); + currentCase.closeCase(); + } catch (IllegalStateException ignored) { + /* + * No current case. + */ + } catch (CaseActionException ex) { + logger.log(Level.SEVERE, String.format("Error closing case at %s while ingest was running", (null!= currentCase ? currentCase.getCaseDirectory() : "?")),ex); //NON-NLS } } else { return; } } - // check if the file exists - if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) { - // throw an error here - JOptionPane.showMessageDialog(caller, - NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.text", - caseName), - NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.err"), + /* + * Open the case. + */ + if (caseName.equals("") || caseMetaDataFilePath.equals("") || (!new File(caseMetaDataFilePath).exists())) { + JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), + NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.text", caseName), + NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); - RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore - - //if case is not opened, open the start window + RecentCases.getInstance().removeRecentCase(caseName, caseMetaDataFilePath); if (Case.isCaseOpen() == false) { EventQueue.invokeLater(() -> { StartupWindowProvider.getInstance().open(); }); - } } else { SwingUtilities.invokeLater(() -> { WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); }); new Thread(() -> { - // Create case. try { - Case.open(casePath); + Case.open(caseMetaDataFilePath); } catch (CaseActionException ex) { SwingUtilities.invokeLater(() -> { + logger.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseMetaDataFilePath), ex); //NON-NLS WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getMessage(), - NbBundle.getMessage(RecentItems.this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS + JOptionPane.showMessageDialog( + WindowManager.getDefault().getMainWindow(), + ex.getMessage(), // Should be user-friendly + NbBundle.getMessage(RecentItems.this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), //NON-NLS + JOptionPane.ERROR_MESSAGE); if (!Case.isCaseOpen()) { StartupWindowProvider.getInstance().open(); } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/SingleUserCaseConverter.java b/Core/src/org/sleuthkit/autopsy/casemodule/SingleUserCaseConverter.java index 47d27c3ab9..2654a11c27 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/SingleUserCaseConverter.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/SingleUserCaseConverter.java @@ -49,7 +49,7 @@ public class SingleUserCaseConverter { private static final String DOTAUT = ".aut"; //NON-NLS private static final String TIMELINE_FOLDER = "Timeline"; //NON-NLS private static final String TIMELINE_FILE = "events.db"; //NON-NLS - private static final String POSTGRES_DEFAULT_DB_NAME = "postgres"; + private static final String POSTGRES_DEFAULT_DB_NAME = "postgres"; //NON-NLS private static final int MAX_DB_NAME_LENGTH = 63; public class ImportCaseData { @@ -316,7 +316,7 @@ public class SingleUserCaseConverter { Statement check = postgreSQLConnection.createStatement(); ResultSet checkResult = check.executeQuery("SELECT * FROM blackboard_artifact_types WHERE artifact_type_id=" + value + " AND type_name LIKE '" + inputResultSet.getString(2) + "' AND display_name LIKE '" + inputResultSet.getString(3) + "'"); //NON-NLS if (!checkResult.isBeforeFirst()) { // only insert if it doesn't exist - String sql = "INSERT INTO blackboard_artifact_types (artifact_type_id, type_name, display_name) VALUES (" + String sql = "INSERT INTO blackboard_artifact_types (artifact_type_id, type_name, display_name) VALUES (" //NON-NLS + value + ", '" + SleuthkitCase.escapeSingleQuotes(inputResultSet.getString(2)) + "'," + " ? )"; //NON-NLS @@ -347,7 +347,7 @@ public class SingleUserCaseConverter { Statement check = postgreSQLConnection.createStatement(); ResultSet checkResult = check.executeQuery("SELECT * FROM blackboard_attribute_types WHERE attribute_type_id=" + value + " AND type_name LIKE '" + inputResultSet.getString(2) + "' AND display_name LIKE '" + inputResultSet.getString(3) + "'"); //NON-NLS if (!checkResult.isBeforeFirst()) { // only insert if it doesn't exist - String sql = "INSERT INTO blackboard_attribute_types (attribute_type_id, type_name, display_name) VALUES (" + String sql = "INSERT INTO blackboard_attribute_types (attribute_type_id, type_name, display_name) VALUES (" //NON-NLS + value + ", '" + SleuthkitCase.escapeSingleQuotes(inputResultSet.getString(2)) + "'," + " ? )"; //NON-NLS @@ -377,7 +377,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO tsk_objects (obj_id, par_obj_id, type) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_objects (obj_id, par_obj_id, type) VALUES (" //NON-NLS + value + "," + getNullableLong(inputResultSet, 2) + "," + inputResultSet.getInt(3) + ")"); //NON-NLS @@ -397,7 +397,7 @@ public class SingleUserCaseConverter { while (inputResultSet.next()) { outputStatement = postgreSQLConnection.createStatement(); try { - outputStatement.executeUpdate("INSERT INTO tsk_image_names (obj_id, name, sequence) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_image_names (obj_id, name, sequence) VALUES (" //NON-NLS + inputResultSet.getLong(1) + ",'" + inputResultSet.getString(2) + "'," + inputResultSet.getInt(3) + ")"); //NON-NLS @@ -419,7 +419,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_image_info (obj_id, type, ssize, tzone, size, md5, display_name) VALUES (" + String sql = "INSERT INTO tsk_image_info (obj_id, type, ssize, tzone, size, md5, display_name) VALUES (" //NON-NLS + value + "," + getNullableInt(inputResultSet, 2) + "," + getNullableInt(inputResultSet, 3) + "," @@ -454,7 +454,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_fs_info (obj_id, img_offset, fs_type, block_size, block_count, root_inum, first_inum, last_inum, display_name) VALUES (" + String sql = "INSERT INTO tsk_fs_info (obj_id, img_offset, fs_type, block_size, block_count, root_inum, first_inum, last_inum, display_name) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + inputResultSet.getInt(3) + "," @@ -490,7 +490,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO tsk_files_path (obj_id, path) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_files_path (obj_id, path) VALUES (" //NON-NLS + value + ", '" + SleuthkitCase.escapeSingleQuotes(inputResultSet.getString(2)) + "')"); //NON-NLS } catch (SQLException ex) { @@ -513,7 +513,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_files (obj_id, fs_obj_id, attr_type, attr_id, name, meta_addr, meta_seq, type, has_layout, has_path, dir_type, meta_type, dir_flags, meta_flags, size, ctime, crtime, atime, mtime, mode, uid, gid, md5, known, parent_path) VALUES (" + String sql = "INSERT INTO tsk_files (obj_id, fs_obj_id, attr_type, attr_id, name, meta_addr, meta_seq, type, has_layout, has_path, dir_type, meta_type, dir_flags, meta_flags, size, ctime, crtime, atime, mtime, mode, uid, gid, md5, known, parent_path) VALUES (" //NON-NLS + value + "," + getNullableLong(inputResultSet, 2) + "," + getNullableInt(inputResultSet, 3) + "," @@ -561,7 +561,7 @@ public class SingleUserCaseConverter { while (inputResultSet.next()) { outputStatement = postgreSQLConnection.createStatement(); try { - outputStatement.executeUpdate("INSERT INTO tsk_file_layout (obj_id, byte_start, byte_len, sequence) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_file_layout (obj_id, byte_start, byte_len, sequence) VALUES (" //NON-NLS + inputResultSet.getLong(1) + "," + inputResultSet.getLong(2) + "," + inputResultSet.getLong(3) + "," @@ -583,7 +583,7 @@ public class SingleUserCaseConverter { Statement check = postgreSQLConnection.createStatement(); ResultSet checkResult = check.executeQuery("SELECT * FROM tsk_db_info WHERE schema_ver=" + inputResultSet.getInt(1) + " AND tsk_ver=" + inputResultSet.getInt(2)); //NON-NLS if (!checkResult.isBeforeFirst()) { // only insert if it doesn't exist - outputStatement.executeUpdate("INSERT INTO tsk_db_info (schema_ver, tsk_ver) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_db_info (schema_ver, tsk_ver) VALUES (" //NON-NLS + getNullableInt(inputResultSet, 1) + "," + getNullableInt(inputResultSet, 2) + ")"); //NON-NLS } @@ -605,7 +605,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tag_names (tag_name_id, display_name, description, color) VALUES (" + String sql = "INSERT INTO tag_names (tag_name_id, display_name, description, color) VALUES (" //NON-NLS + value + "," + " ? ,'" + SleuthkitCase.escapeSingleQuotes(inputResultSet.getString(3)) + "','" @@ -636,7 +636,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO reports (report_id, path, crtime, src_module_name, report_name) VALUES (" + outputStatement.executeUpdate("INSERT INTO reports (report_id, path, crtime, src_module_name, report_name) VALUES (" //NON-NLS + value + ", '" + SleuthkitCase.escapeSingleQuotes(inputResultSet.getString(2)) + "'," + inputResultSet.getInt(3) + ",'" @@ -664,7 +664,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO blackboard_artifacts (artifact_id, obj_id, artifact_type_id) VALUES (" + outputStatement.executeUpdate("INSERT INTO blackboard_artifacts (artifact_id, obj_id, artifact_type_id) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + inputResultSet.getLong(3) + ")"); //NON-NLS @@ -684,7 +684,7 @@ public class SingleUserCaseConverter { while (inputResultSet.next()) { try { - String sql = "INSERT INTO blackboard_attributes (artifact_id, artifact_type_id, source, context, attribute_type_id, value_type, value_byte, value_text, value_int32, value_int64, value_double) VALUES (" + String sql = "INSERT INTO blackboard_attributes (artifact_id, artifact_type_id, source, context, attribute_type_id, value_type, value_byte, value_text, value_int32, value_int64, value_double) VALUES (" //NON-NLS + inputResultSet.getLong(1) + "," + inputResultSet.getLong(2) + "," + " ? ," @@ -722,7 +722,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_vs_parts (obj_id, addr, start, length, descr, flags) VALUES (" + String sql = "INSERT INTO tsk_vs_parts (obj_id, addr, start, length, descr, flags) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + inputResultSet.getLong(3) + "," @@ -754,7 +754,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO tsk_vs_info (obj_id, vs_type, img_offset, block_size) VALUES (" + outputStatement.executeUpdate("INSERT INTO tsk_vs_info (obj_id, vs_type, img_offset, block_size) VALUES (" //NON-NLS + value + "," + inputResultSet.getInt(2) + "," + inputResultSet.getLong(3) + "," @@ -780,7 +780,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_files_derived (obj_id, derived_id, rederive) VALUES (" + String sql = "INSERT INTO tsk_files_derived (obj_id, derived_id, rederive) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + " ? )"; //NON-NLS @@ -808,7 +808,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - String sql = "INSERT INTO tsk_files_derived_method (derived_id, tool_name, tool_version, other) VALUES (" + String sql = "INSERT INTO tsk_files_derived_method (derived_id, tool_name, tool_version, other) VALUES (" //NON-NLS + value + ", '" + inputResultSet.getString(2) + "','" + inputResultSet.getString(3) + "'," @@ -838,7 +838,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO content_tags (tag_id, obj_id, tag_name_id, comment, begin_byte_offset, end_byte_offset) VALUES (" + outputStatement.executeUpdate("INSERT INTO content_tags (tag_id, obj_id, tag_name_id, comment, begin_byte_offset, end_byte_offset) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + inputResultSet.getLong(3) + ",'" @@ -867,7 +867,7 @@ public class SingleUserCaseConverter { if (value > biggestPK) { biggestPK = value; } - outputStatement.executeUpdate("INSERT INTO blackboard_artifact_tags (tag_id, artifact_id, tag_name_id, comment) VALUES (" + outputStatement.executeUpdate("INSERT INTO blackboard_artifact_tags (tag_id, artifact_id, tag_name_id, comment) VALUES (" //NON-NLS + value + "," + inputResultSet.getLong(2) + "," + inputResultSet.getLong(3) + ",'" @@ -1140,7 +1140,7 @@ public class SingleUserCaseConverter { * @throws SQLException if unable to open */ private static Connection getPostgreSQLConnection(ImportCaseData icd, String dbName) throws SQLException { - return DriverManager.getConnection("jdbc:postgresql://" + return DriverManager.getConnection("jdbc:postgresql://" //NON-NLS + icd.getDb().getHost() + ":" + icd.getDb().getPort() + "/" + dbName, diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java index bba2fba8c3..7eff327f14 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java @@ -81,7 +81,7 @@ public final class DataSourceAddedEvent extends AutopsyEvent implements Serializ dataSource = Case.getCurrentCase().getSleuthkitCase().getContentById(id); return dataSource; } catch (IllegalStateException | TskCoreException ex) { - logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); + logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS return null; } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java index 84121ad2de..534f6b646a 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java @@ -78,7 +78,7 @@ public final class ReportAddedEvent extends AutopsyEvent implements Serializable } return report; } catch (IllegalStateException | TskCoreException ex) { - logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); + logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS return null; } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/TagAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/TagAddedEvent.java index 88cbd023bb..365a3c0ff8 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/events/TagAddedEvent.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/TagAddedEvent.java @@ -85,7 +85,7 @@ abstract class TagAddedEvent extends AutopsyEvent implements Seri tag = getTagByID(); return tag; } catch (IllegalStateException | TskCoreException ex) { - Logger.getLogger(TagAddedEvent.class.getName()).log(Level.SEVERE, "Error doing lazy load for remote event", ex); + Logger.getLogger(TagAddedEvent.class.getName()).log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS return null; } } diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties index 4068c5be0e..d2bbdc2081 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties @@ -1,7 +1,7 @@ Metadata.tableRowTitle.name=\u540D\u524D Metadata.tableRowTitle.size=\u30B5\u30A4\u30BA -Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B -Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B +Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u540D\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 Metadata.tableRowTitle.modified=\u4FEE\u6B63\u6E08\u307F Metadata.tableRowTitle.accessed=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F Metadata.tableRowTitle.created=\u4F5C\u6210\u6E08\u307F @@ -11,9 +11,9 @@ Metadata.tableRowTitle.md5=MD5 Metadata.tableRowTitle.hashLookupResults=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u7D50\u679C Metadata.tableRowTitle.internalid=\u5185\u90E8ID Metadata.tableRowTitle.localPath=\u30ED\u30FC\u30AB\u30EB\u30D1\u30B9 -Metadata.title=\u30E1\u30BF\u30C7\u30FC\u30BF +Metadata.title=\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF Metadata.toolTip=\u30D5\u30A1\u30A4\u30EB\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002 -Metadata.nodeText.nonFilePassedIn=\u51E6\u7406\u4E2D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093 Metadata.tableRowTitle.type=\u30BF\u30A4\u30D7 Metadata.nodeText.exceptionNotice.text=\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A -Metadata.nodeText.text=Sleuth Kit istat\u30C4\u30FC\u30EB\u304B\u3089\uFF1A \ No newline at end of file +Metadata.nodeText.text=Sleuth Kit istat\u30C4\u30FC\u30EB\u304B\u3089\uFF1A +Metadata.nodeText.nonFilePassedIn=\u5165\u529B\u3055\u308C\u305F\u3082\u306E\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093 \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/core/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/core/Bundle_ja.properties index ae67dfca3b..171ced6172 100644 --- a/Core/src/org/sleuthkit/autopsy/core/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/core/Bundle_ja.properties @@ -1,14 +1,31 @@ -OpenIDE-Module-Display-Category=\u57FA\u76E4 +OpenIDE-Module-Display-Category=\u30A4\u30F3\u30D5\u30E9\u30B9\u30C8\u30E9\u30AF\u30C1\u30E3\u30FC OpenIDE-Module-Long-Description=\ - Autopsy\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30B3\u30A2\u3067\u3059\u3002\n\n\ + \u3053\u308C\u304CAutopsy\u306E\u30B3\u30A2\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u3059\u3002\n\n\ \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u307F\u3067\u5B9F\u884C\u3059\u308B\u306E\u306B\u5FC5\u8981\u306A\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\uFF1ARCP\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3001\u30A6\u30A3\u30F3\u30C9\u30A6\u30A4\u30F3\u30B0GUI\u3001Sleuth Kit\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u3001\u30C7\u30FC\u30BF\u30E2\u30C7\u30EB\uFF0F\u30B9\u30C8\u30EC\u30FC\u30B8\u3001\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u3001\u7D50\u679C\u30D3\u30E5\u30FC\u30A2\u3001\u30B3\u30F3\u30C6\u30F3\u30C4\u30D3\u30E5\u30FC\u30A2\u3001\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u7528\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF\u3001\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u3001\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u7B49\u306E\u4E3B\u8981\u30C4\u30FC\u30EB\u3002\n\n\ \u30E2\u30B8\u30E5\u30FC\u30EB\u5185\u306E\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF\u306B\u306F\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3001\u30D3\u30E5\u30FC\u30A2\u3001\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u958B\u767A\u7528\u306EAPI\u304C\u542B\u307E\u308C\u307E\u3059\u3002\ \u30E2\u30B8\u30E5\u30FC\u30EB\u306FAutopsy\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u3068\u3057\u3066\u5B9F\u88C5\u3067\u304D\u307E\u3059\u3002\n\ - \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u306F\u3044\u3051\u307E\u305B\u3093\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3051\u308C\u3070\u3001Autopsy\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\n\ - \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002http\://www.sleuthkit.org/autopsy/ + \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3051\u308C\u3070\u3001Autopsy\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\n\ + \u8A73\u7D30\u306F\u3053\u3061\u3089\u3067\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002http\://www.sleuthkit.org/autopsy/ OpenIDE-Module-Name=Autopsy-\u30B3\u30A2 OpenIDE-Module-Short-Description=Autopsy\u30B3\u30A2\u30E2\u30B8\u30E5\u30FC\u30EB org_sleuthkit_autopsy_core_update_center=http\://sleuthkit.org/autopsy/updates_ja.xml Services/AutoupdateType/org_sleuthkit_autopsy_core_update_center.settings=Autopsy\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30BB\u30F3\u30BF\u30FC Installer.errorInitJavafx.msg=JavaFX\u521D\u671F\u5316\u30A8\u30E9\u30FC -Installer.errorInitJavafx.details=\u4E00\u90E8\u306E\u6A5F\u80FD\u304C\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u6B63\u3057\u3044JRE\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u306E\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\uFF08Oracle JRE > 1.7.10\uFF09 \ No newline at end of file +Installer.errorInitJavafx.details=\u4E00\u90E8\u306E\u6A5F\u80FD\u304C\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u6B63\u3057\u3044JRE\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\uFF08Oracle JRE > 1.7.10\uFF09 +ServicesMonitor.failedService.notify.title=\u30B5\u30FC\u30D3\u30B9\u304C\u505C\u6B62\u3057\u3066\u3044\u307E\u3059 +ServicesMonitor.failedService.notify.msg={0}\u3078\u306E\u63A5\u7D9A\u304C\u30C0\u30A6\u30F3\u3057\u3066\u3044\u307E\u3059 +ServicesMonitor.restoredService.notify.title=\u30B5\u30FC\u30D3\u30B9\u304C\u7A3C\u50CD\u4E2D\u3067\u3059 +ServicesMonitor.restoredService.notify.msg={0}\u3078\u306E\u63A5\u7D9A\u304C\u5229\u7528\u3067\u304D\u307E\u3059 +ServicesMonitor.statusChange.notify.title=\u30B5\u30FC\u30D3\u30B9\u30B9\u30C6\u30FC\u30BF\u30B9\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +ServicesMonitor.statusChange.notify.msg={0}\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306F{1} +ServicesMonitor.nullServiceName.excepton.txt=\u30EA\u30AF\u30A8\u30B9\u30C8\u3055\u308C\u305F\u30B5\u30FC\u30D3\u30B9\u306F\u30CC\u30EB\u3067\u3059 +ServicesMonitor.unknownServiceName.excepton.txt=\u30EA\u30AF\u30A8\u30B9\u30C8\u3055\u308C\u305F\u30B5\u30FC\u30D3\u30B9{0}\u306F\u4E0D\u660E\u3067\u3059 +TextConverter.convert.exception.txt=\u30C6\u30AD\u30B9\u30C8{0}\u3092hex\u30C6\u30AD\u30B9\u30C8\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +TextConverter.convertFromHex.exception.txt=hex\u30C6\u30AD\u30B9\u30C8\u3092\u30C6\u30AD\u30B9\u30C8\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ServicesMonitor.KeywordSearchNull=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D3\u30B9\u3092\u898B\u3064\u3051\u308C\u307E\u305B\u3093\u3067\u3057\u305F +ServicesMonitor.InvalidPortNumber=\u7121\u52B9\u306A\u30DD\u30FC\u30C8\u756A\u53F7 +ServicesMonitor.remoteCaseDatabase.displayName.text=\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u30B1\u30FC\u30B9\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30B5\u30FC\u30D3\u30B9 +ServicesMonitor.remoteKeywordSearch.displayName.text=\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D3\u30B9 +ServicesMonitor.messaging.displayName.text=\u30E1\u30C3\u30BB\u30FC\u30B8\u30B5\u30FC\u30D3\u30B9 +ServicesMonitor.databaseConnectionInfo.error.msg=\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u63A5\u7D9A\u60C5\u5831\u3092\u5165\u624B\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ServicesMonitor.messagingService.connErr.text=\u30E1\u30C3\u30BB\u30FC\u30B8\u30B5\u30FC\u30D3\u30B9\u306E\u63A5\u7D9A\u60C5\u5831\u3092\u5165\u624B\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index b5aaec94cc..918e14b15a 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -68,7 +68,7 @@ AdvancedConfigurationDialog.cancelButton.text=Cancel DataResultPanel.directoryTablePath.text=directoryPath DataResultPanel.numberMatchLabel.text=0 DataResultPanel.matchLabel.text=Results -MediaViewVideoPanel.pauseButton.text=\u25ba +MediaViewVideoPanel.pauseButton.text=\u25BA MediaViewVideoPanel.progressLabel.text=00:00 DataContentViewerMedia.AccessibleContext.accessibleDescription= MediaViewVideoPanel.infoLabel.text=info @@ -161,10 +161,10 @@ MultiUserSettingsPanel.validationErrMsg.invalidMessgeServiceURI=Message service AutopsyOptionsPanel.jCheckBoxEnableProcTimeout.text= AutopsyOptionsPanel.jFormattedTextFieldProcTimeOutHrs.text=60 AutopsyOptionsPanel.jLabelProcessTimeOutUnits.text=hour(s) -AutopsyOptionsPanel.jLabelSetProcessTimeOut.text=Enable timeout to allow modules to automatically terminate after a set amount of time: +AutopsyOptionsPanel.jLabelSetProcessTimeOut.text=Enable timeout to allow modules to automatically terminate after a set amount of time\: DataContentViewerHex.goToOffsetLabel.text=Jump to Offset DataContentViewerHex.goToOffsetTextField.text= -DataContentViewerHex.goToOffsetTextField.msgDlg=Invalid Offset: {0} +DataContentViewerHex.goToOffsetTextField.msgDlg=Invalid Offset\: {0} DataContentViewerHex.setDataView.invalidOffset.negativeOffsetValue=Cannot jump to the resultant offset MultiUserSettingsPanel.tbOops.text= MultiUserSettingsPanel.lbTestDatabase.text= diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index db6e5b5ecc..594de9284c 100755 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -15,7 +15,6 @@ DataContentViewerString.totalPageLabel.text_1=100 DataContentViewerHex.pageLabel2.text=\u30DA\u30FC\u30B8 DataContentViewerString.pageLabel2.text=\u30DA\u30FC\u30B8 Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} \u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3 {2} -URL_ON_IMG=http\://www.sleuthkit.org/ LBL_Close=\u9589\u3058\u308B DataContentViewerString.copyMenuItem.text=\u30B3\u30D4\u30FC DataContentViewerHex.copyMenuItem.text=\u30B3\u30D4\u30FC @@ -28,8 +27,8 @@ DataContentViewerArtifact.copyMenuItem.text=\u30B3\u30D4\u30FC DataContentViewerArtifact.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E DataContentViewerArtifact.pageLabel.text=\u7D50\u679C\uFF1A AdvancedConfigurationDialog.applyButton.text=OK -DataContentViewerString.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A -DataContentViewerHex.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A +DataContentViewerString.goToPageLabel.text=\u6B21\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A +DataContentViewerHex.goToPageLabel.text=\u6B21\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A DataContentViewerString.languageLabel.text=\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E DataResultViewerThumbnail.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A @@ -37,7 +36,7 @@ DataResultViewerThumbnail.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A DataResultViewerThumbnail.imagesLabel.text=\u30A4\u30E1\u30FC\u30B8\uFF1A DataResultViewerThumbnail.imagesRangeLabel.text=- DataResultViewerThumbnail.pageNumLabel.text=- -DataResultViewerThumbnail.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\uFF1A +DataResultViewerThumbnail.goToPageLabel.text=\u6B21\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\uFF1A AdvancedConfigurationDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB DataResultPanel.directoryTablePath.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30D1\u30B9 DataResultPanel.numberMatchLabel.text=0 @@ -46,7 +45,7 @@ MediaViewVideoPanel.pauseButton.text=\u25BA MediaViewVideoPanel.progressLabel.text=00\:00 MediaViewVideoPanel.infoLabel.text=\u60C5\u5831 DataContentViewerArtifact.waitText=\u30C7\u30FC\u30BF\u3092\u53D6\u8FBC\u307F\u304A\u3088\u3073\u6E96\u5099\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u2026 -DataContentViewerArtifact.errorText=\u7D50\u679C\u306E\u53D6\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +DataContentViewerArtifact.errorText=\u7D50\u679C\u3092\u53D6\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F DataContentViewerArtifact.title=\u7D50\u679C DataContentViewerArtifact.toolTip=\u30D5\u30A1\u30A4\u30EB\u306B\u95A2\u9023\u3059\u308B\u7D50\u679C\u3092\u8868\u793A\u3057\u307E\u3059 DataContentViewerHex.goToPageTextField.msgDlg=\uFF11\u304B\u3089 {0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 @@ -77,12 +76,12 @@ FXVideoPanel.progress.bufferingFile={0}\u3092\u30D0\u30C3\u30D5\u30A1\u30EA\u30F FXVideoPanel.progressLabel.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026 FXVideoPanel.media.unsupportedFormat=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3067\u3059\u3002 GeneralOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC -GeneralOptionsPanelController.moduleErr.msg=GeneralOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -GstVideoPanel.cannotProcFile.err=\u30E1\u30C7\u30A4\u30A2\u30D7\u30EC\u30FC\u30E4\u30FC\u304C\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 +GeneralOptionsPanelController.moduleErr.msg=GeneralOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +GstVideoPanel.cannotProcFile.err=\u30E1\u30C7\u30A4\u30A2\u30D7\u30EC\u30FC\u30E4\u30FC\u3067\u306F\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 GstVideoPanel.setupVideo.infoLabel.text=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002 -GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u306F\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u9577\u3055\u3092\u78BA\u8A8D\u4E2D\u306B\u518D\u751F\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 LBL_Description=
\n \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {0} ({9})
Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {7}
Netbeans RCP\u30D3\u30EB\u30C9\: {8}
Java\: {1}; {2}
\u30B7\u30B9\u30C6\u30E0\uFF1A {3}; {4}; {5}
\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D {6}
LBL_Copyright=
Autopsy™\u306FSleuth Kit™\u3084\u305D\u306E\u4ED6\u30C4\u30FC\u30EB\u3092\u57FA\u306B\u3057\u305F\u30C7\u30B8\u30BF\u30EB\u30FB\u30D5\u30A9\u30EC\u30F3\u30B8\u30C3\u30AF\u30FB\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u3059\u3002

Copyright © 2003-2013. \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002 http\://www.sleuthkit.org.
@@ -117,12 +116,43 @@ AutopsyOptionsPanel.useGMTTimeRB.text=GMT\u3092\u4F7F\u7528 AutopsyOptionsPanel.useLocalTimeRB.text=\u30ED\u30FC\u30AB\u30EB\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u4F7F\u7528 AutopsyOptionsPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u5834\u5408\u306B\u305D\u306E\u307E\u307EHEX\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 AutopsyOptionsPanel.keepCurrentViewerRB.text=\u305D\u306E\u307E\u307E\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u3092\u4F7F\u7528 -AutopsyOptionsPanel.restartRequiredLabel.text=\u3053\u306E\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u3067\u306F\u6700\u5927{0}\u306E\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30B9\u30EC\u30C3\u30C9\u3092\u4F7F\u7528\u3059\u3079\u304D\u3067\u3059\u3002\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u518D\u8D77\u52D5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +AutopsyOptionsPanel.restartRequiredLabel.text=\u3053\u306E\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u3067\u306F\u6700\u5927{0}\u306E\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30B9\u30EC\u30C3\u30C9\u3092\u4F7F\u7528\u3059\u3079\u304D\u3067\u3059\u3002\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u518D\u8D77\u52D5\u304C\u5FC5\u8981\u3067\u3059\u3002 AutopsyOptionsPanel.jLabelSelectFile.text=\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3059\u308B\u5834\u5408\uFF1A -AutopsyOptionsPanel.jLabelHideKnownFiles.text=\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\uFF08NIST NSRL\u5185\u306E\uFF09\u3092\u4E0B\u8A18\u306B\u96A0\u3059\uFF1A +AutopsyOptionsPanel.jLabelHideKnownFiles.text=\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\uFF08NIST NSRL\u5185\u306E\uFF09\u3092\u6B21\u306B\u96A0\u3059\uFF1A AutopsyOptionsPanel.jLabelTimeDisplay.text=\u30A2\u30A4\u30C6\u30E0\u3092\u8868\u793A\u3059\u308B\u5834\u5408\uFF1A AutopsyOptionsPanel.jLabelNumThreads.text=\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u4F7F\u7528\u3059\u308B\u30B9\u30EC\u30C3\u30C9\u6570\uFF1A FXVideoPanel.progress.bufferingCancelled=\u30E1\u30C7\u30A3\u30A2\u306E\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F FXVideoPanel.progress.bufferingInterrupted=\u30E1\u30C7\u30A3\u30A2\u306E\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F FXVideoPanel.progress.errorWritingVideoToDisk=\u30D3\u30C7\u30AA\u3092\u30C7\u30A3\u30B9\u30AF\u3078\u66F8\u304D\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -URL_ON_HELP=http\://sleuthkit.org/autopsy/docs/user-docs/3.1/ +OptionsCategory_Name_Multi_User_Settings=\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC +OptionsCategory_Keywords_Multi_User_Options=\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u30AA\u30D7\u30B7\u30E7\u30F3 +MultiUserSettingsPanel.lbSolrSettings.text=Solr\u8A2D\u5B9A +MultiUserSettingsPanel.cbEnableMultiUser.text=\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u30B1\u30FC\u30B9\u3092\u6709\u52B9\u5316 +MultiUserSettingsPanel.lbDatabaseSettings.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u8A2D\u5B9A +MultiUserSettingsPanel.validationErrMsg.incomplete=\u5168\u3066\u306E\u30D0\u30EA\u30E5\u30FC\u3092\u5165\u529B +MultiUserSettingsPanel.nonWindowsOs.msg=Windows\u3067\u3057\u304B\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u7248\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort=\u7121\u52B9\u306A\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort=\u7121\u52B9\u306A\u30E1\u30C3\u30BB\u30FC\u30B8\u30B5\u30FC\u30D3\u30B9\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort=\u7121\u52B9\u306ASolr\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.validationErrMsg.invalidMessgeServiceURI=\u7121\u52B9\u306A\u30E1\u30C3\u30BB\u30FC\u30B8\u30B5\u30FC\u30D3\u30B9\u30DB\u30B9\u30C8\u3084\u30DD\u30FC\u30C8\u756A\u53F7 +AutopsyOptionsPanel.jLabelProcessTimeOutUnits.text=\u6642\u9593 +AutopsyOptionsPanel.jLabelSetProcessTimeOut.text=\u4E00\u5B9A\u306E\u6642\u9593\u304C\u904E\u304E\u305F\u5F8C\u306B\u81EA\u52D5\u7684\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u505C\u6B62\u3067\u304D\u308B\u3088\u3046\u306B\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3092\u6709\u52B9\u5316\uFF1A +DataContentViewerHex.goToOffsetLabel.text=\u30AA\u30D5\u30BB\u30C3\u30C8\u306B\u30B8\u30E3\u30F3\u30D7 +DataContentViewerHex.goToOffsetTextField.msgDlg=\u7121\u52B9\u306A\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A{0} +DataContentViewerHex.setDataView.invalidOffset.negativeOffsetValue=\u8A08\u7B97\u3055\u308C\u305F\u30AA\u30D5\u30BB\u30C3\u30C8\u306B\u30B8\u30E3\u30F3\u30D7\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +MultiUserSettingsPanel.bnTestDatabase.text=\u30C6\u30B9\u30C8 +MultiUserSettingsPanel.tbDbHostname.toolTipText=\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9 +MultiUserSettingsPanel.tbDbPort.toolTipText=\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.tbDbUsername.toolTipText=\u30E6\u30FC\u30B6\u30FC\u540D +MultiUserSettingsPanel.tbDbPassword.toolTipText=\u30D1\u30B9\u30EF\u30FC\u30C9 +MultiUserSettingsPanel.bnTestSolr.text=\u30C6\u30B9\u30C8 +MultiUserSettingsPanel.tbSolrHostname.toolTipText=\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9 +MultiUserSettingsPanel.tbSolrPort.toolTipText=\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.bnTestMessageService.text=\u30C6\u30B9\u30C8 +MultiUserSettingsPanel.lbMessageServiceSettings.text=ActiveMQ\u30E1\u30C3\u30BB\u30FC\u30B8\u30B5\u30FC\u30D3\u30B9\u8A2D\u5B9A +MultiUserSettingsPanel.tbMsgPort.toolTipText=\u30DD\u30FC\u30C8\u756A\u53F7 +MultiUserSettingsPanel.tbMsgUsername.toolTipText=\u30E6\u30FC\u30B6\u30FC\u540D\uFF08\u30AA\u30D7\u30B7\u30E7\u30CA\u30EB\uFF09 +MultiUserSettingsPanel.tbMsgPassword.toolTipText=\u30D1\u30B9\u30EF\u30FC\u30C9\uFF08\u30AA\u30D7\u30B7\u30E7\u30CA\u30EB\uFF09 +MultiUserSettingsPanel.tbMsgHostname.toolTipText=\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9 +MultiUserSettingsPanel.KeywordSearchNull=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D3\u30B9\u3092\u898B\u3064\u3051\u308C\u3089\u308C\u307E\u305B\u3093 +MultiUserSettingsPanel.InvalidPortNumber=\u7121\u52B9\u306A\u30DD\u30FC\u30C8\u756A\u53F7 diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java index 57f1a3452a..174a7f0e19 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java @@ -30,15 +30,10 @@ import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; -import java.util.logging.Level; import javax.swing.Action; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.TableColumnModelEvent; -import javax.swing.event.TableColumnModelListener; import org.netbeans.swing.outline.DefaultOutlineModel; import org.openide.explorer.ExplorerManager; import org.openide.explorer.view.OutlineView; @@ -53,10 +48,7 @@ import org.openide.nodes.NodeMemberEvent; import org.openide.nodes.NodeReorderEvent; import org.openide.nodes.Sheet; import org.openide.util.NbBundle; -import org.openide.util.NbPreferences; -import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; -import org.sleuthkit.autopsy.coreutils.Logger; /** * DataResult sortable table viewer @@ -101,52 +93,66 @@ public class DataResultViewerTable extends AbstractDataResultViewer { // don't show the root node ov.getOutline().setRootVisible(false); ov.getOutline().setDragEnabled(false); - - ov.getOutline().getColumnModel().addColumnModelListener(new TableColumnModelListener() { - @Override - public void columnAdded(TableColumnModelEvent e) {} - @Override - public void columnRemoved(TableColumnModelEvent e) {} - @Override - public void columnMarginChanged(ChangeEvent e) {} - @Override - public void columnSelectionChanged(ListSelectionEvent e) {} - @Override - public void columnMoved(TableColumnModelEvent e) { - // change the order of the column in the array/hashset - List> props = new ArrayList<>(propertiesAcc); - Node.Property prop = props.remove(e.getFromIndex()); - props.add(e.getToIndex(), prop); - - propertiesAcc.clear(); - for (int j = 0; j < props.size(); ++j) { - propertiesAcc.add(props.get(j)); - } - } - }); + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * The following lines of code were added for this feature. + */ +// ov.getOutline().getColumnModel().addColumnModelListener(new TableColumnModelListener() { +// @Override +// public void columnAdded(TableColumnModelEvent e) {} +// @Override +// public void columnRemoved(TableColumnModelEvent e) {} +// @Override +// public void columnMarginChanged(ChangeEvent e) {} +// @Override +// public void columnSelectionChanged(ListSelectionEvent e) {} +// +// @Override +// public void columnMoved(TableColumnModelEvent e) { +// // change the order of the column in the array/hashset +// List> props = new ArrayList<>(propertiesAcc); +// Node.Property prop = props.remove(e.getFromIndex()); +// props.add(e.getToIndex(), prop); +// +// propertiesAcc.clear(); +// for (int j = 0; j < props.size(); ++j) { +// propertiesAcc.add(props.get(j)); +// } +// } +// }); /** - * Add mouse listener to perform action on double-click - * A somewhat hacky way to perform action even if the column clicked - * is not the first one. + * Add mouse listener to perform action on double-click A somewhat hacky + * way to perform action even if the column clicked is not the first + * one. */ ov.getOutline().addMouseListener(new MouseListener() { @Override - public void mousePressed(MouseEvent e) {} + public void mousePressed(MouseEvent e) { + } + @Override - public void mouseReleased(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + } + @Override - public void mouseEntered(MouseEvent e) {} + public void mouseEntered(MouseEvent e) { + } + @Override - public void mouseExited(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + } + @Override public void mouseClicked(MouseEvent e) { - if(e.getClickCount() == 2) { + if (e.getClickCount() == 2) { Node[] nodes = DataResultViewerTable.this.em.getSelectedNodes(); - for(Node node : nodes) { + for (Node node : nodes) { Action action = node.getPreferredAction(); - if(action != null) + if (action != null) { action.actionPerformed(null); + } } } } @@ -354,12 +360,20 @@ public class DataResultViewerTable extends AbstractDataResultViewer { if (ov == null) { return; } - - storeState(); - + + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * The next three lines of code replaced the three lines of code that + * follow + */ +// storeState(); // set the new root as current - currentRoot = root; - List> props = loadState(); +// currentRoot = root; +// List> props = loadState(); + propertiesAcc.clear(); + DataResultViewerTable.this.getAllChildPropertyHeadersRec(root, 100); + List> props = new ArrayList<>(propertiesAcc); /* * OutlineView makes the first column be the result of @@ -423,7 +437,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer { ov.getOutline().getColumnModel().getColumn(colIndex).setPreferredWidth(colWidth); } } - + // if there's no content just auto resize all columns if (content.length <= 0) { // turn on the auto resize @@ -431,65 +445,70 @@ public class DataResultViewerTable extends AbstractDataResultViewer { } } } - + + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * The following three methods were added for this feature + */ // Store the state of current root Node. - private void storeState() { - if(currentRoot == null || propertiesAcc.isEmpty()) - return; - - TableFilterNode tfn; - if(currentRoot instanceof TableFilterNode) - tfn = (TableFilterNode) currentRoot; - else - return; - - List> props = new ArrayList<>(propertiesAcc); - for (int i = 0; i < props.size(); i++) { - Property prop = props.get(i); - NbPreferences.forModule(this.getClass()).put(getUniqueColName(prop, tfn.getItemType()), String.valueOf(i)); - } - } - +// private void storeState() { +// if(currentRoot == null || propertiesAcc.isEmpty()) +// return; +// +// TableFilterNode tfn; +// if(currentRoot instanceof TableFilterNode) +// tfn = (TableFilterNode) currentRoot; +// else +// return; +// +// List> props = new ArrayList<>(propertiesAcc); +// for (int i = 0; i < props.size(); i++) { +// Property prop = props.get(i); +// NbPreferences.forModule(this.getClass()).put(getUniqueColName(prop, tfn.getItemType()), String.valueOf(i)); +// } +// } // Load the state of current root Node if exists. - private List> loadState() { - propertiesAcc.clear(); - this.getAllChildPropertyHeadersRec(currentRoot, 100); - List> props = new ArrayList<>(propertiesAcc); - - // If node is not table filter node, use default order for columns - TableFilterNode tfn; - if(currentRoot instanceof TableFilterNode) { - tfn = (TableFilterNode) currentRoot; - } - else { - Logger.getLogger(DataResultViewerTable.class.getName()).log(Level.INFO, - "Node {0} is not TableFilterNode, columns are going to be in default order", currentRoot.getName()); - return props; - } - - List> orderedProps = new ArrayList<>(propertiesAcc); - for (Property prop : props) { - Integer value = Integer.valueOf(NbPreferences.forModule(this.getClass()).get(getUniqueColName(prop, tfn.getItemType()), "-1")); - if (value >= 0) { - /** - * The original contents of orderedProps do not matter when setting the new ordered values. The reason - * we copy propertiesAcc into it first is to give it the currect size so we can set() in any index. - */ - orderedProps.set(value, prop); - } - } - propertiesAcc.clear(); - for (Property prop : orderedProps) { - propertiesAcc.add(prop); - } - return orderedProps; - } - - // Get unique name for node and it's property. - private String getUniqueColName(Property prop, String type) { - return Case.getCurrentCase().getName() + "." + type + "." - + prop.getName().replaceAll("[^a-zA-Z0-9_]", "") + ".columnOrder"; - } +// private List> loadState() { +// propertiesAcc.clear(); +// this.getAllChildPropertyHeadersRec(currentRoot, 100); +// List> props = new ArrayList<>(propertiesAcc); +// +// // If node is not table filter node, use default order for columns +// TableFilterNode tfn; +// if (currentRoot instanceof TableFilterNode) { +// tfn = (TableFilterNode) currentRoot; +// } else { +// Logger.getLogger(DataResultViewerTable.class.getName()).log(Level.INFO, +// "Node {0} is not TableFilterNode, columns are going to be in default order", currentRoot.getName()); +// return props; +// } +// +// List> orderedProps = new ArrayList<>(propertiesAcc); +// for (Property prop : props) { +// Integer value = Integer.valueOf(NbPreferences.forModule(this.getClass()).get(getUniqueColName(prop, tfn.getItemType()), "-1")); +// if (value >= 0) { +// /** +// * The original contents of orderedProps do not matter when +// * setting the new ordered values. The reason we copy +// * propertiesAcc into it first is to give it the currect size so +// * we can set() in any index. +// */ +// orderedProps.set(value, prop); +// } +// } +// propertiesAcc.clear(); +// for (Property prop : orderedProps) { +// propertiesAcc.add(prop); +// } +// return orderedProps; +// } +// +// // Get unique name for node and it's property. +// private String getUniqueColName(Property prop, String type) { +// return Case.getCurrentCase().getName() + "." + type + "." +// + prop.getName().replaceAll("[^a-zA-Z0-9_]", "") + ".columnOrder"; +// } // Populate a two-dimensional array with rows of property values for up // to maxRows children of the node passed in. diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java b/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java index ce1fceda24..9121ad4d23 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java @@ -83,14 +83,14 @@ public class Installer extends ModuleInstall { try { Case.open(caseFile); } catch (Exception ex) { - logger.log(Level.SEVERE, "Error opening case", ex); //NON-NLS + logger.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseFile), ex); //NON-NLS } }).start(); return; } } } - Case.invokeStartupDialog(); // bring up the startup dialog + Case.invokeStartupDialog(); }); } @@ -103,12 +103,19 @@ public class Installer extends ModuleInstall { @Override public void close() { new Thread(() -> { + String caseDirName = null; try { if (Case.isCaseOpen()) { - Case.getCurrentCase().closeCase(); + Case currentCase = Case.getCurrentCase(); + caseDirName = currentCase.getCaseDirectory(); + currentCase.closeCase(); } - } catch (CaseActionException | IllegalStateException ex) { - logger.log(Level.SEVERE, "Error closing case", ex); //NON-NLS + } catch (CaseActionException ex) { + logger.log(Level.SEVERE, String.format("Error closing case with case directory %s", (null != caseDirName ? caseDirName : "?")), ex); //NON-NLS + } catch (IllegalStateException ignored) { + /* + * No current case. Case.isCaseOpen is not reliable. + */ } }).start(); } @@ -128,7 +135,7 @@ public class Installer extends ModuleInstall { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { - logger.log(Level.WARNING, "Unable to set theme. ", ex); //NON-NLS + logger.log(Level.WARNING, "Error setting OS-X look-and-feel", ex); //NON-NLS } // Store the keys that deal with menu items @@ -138,20 +145,19 @@ public class Installer extends ModuleInstall { uiEntries.put(key, UIManager.get(key)); } - // Use Metal if available + // Use Metal if available. for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { //NON-NLS try { UIManager.setLookAndFeel(info.getClassName()); - } catch (ClassNotFoundException | InstantiationException | - IllegalAccessException | UnsupportedLookAndFeelException ex) { - logger.log(Level.WARNING, "Unable to set theme. ", ex); //NON-NLS + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { + logger.log(Level.WARNING, "Error setting OS-X look-and-feel", ex); //NON-NLS } break; } } - // Overwrite the Metal menu item keys to use the Aqua versions + // Overwrite the Metal menu item keys to use the Aqua versions. uiEntries.entrySet().stream().forEach((entry) -> { UIManager.put(entry.getKey(), entry.getValue()); }); diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties index 2202e10ecb..643a4b75f1 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties @@ -23,5 +23,5 @@ Process Virtual Memory\: {2} StringExtract.illegalStateException.cannotInit.msg=Unicode table not properly initialized, cannot instantiate StringExtract ImageUtils.GetOrGenerateThumbnailTask.loadingThumbnailFor=Loading thumbnail for {0} ImageUtils.GetOrGenerateThumbnailTask.generatingPreviewFor=Generating preview for {0} -ImageUtils.ReadImageTask.mesage.text=Reading image: {0} +ImageUtils.ReadImageTask.mesage.text=Reading image\: {0} VideoUtils.genVideoThumb.progress.text=extracting temporary file {0} diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties index 47329f1599..861bb54da9 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties @@ -3,7 +3,7 @@ JLNK.noPrefPath.text=\u512A\u5148\u7684\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B PlatformUtil.nameUnknown=\u4E0D\u660E PlatformUtil.verUnknown=\u4E0D\u660E PlatformUtil.archUnknown=\u4E0D\u660E -PlatformUtil.jrePath.jreDir.msg=\u57CB\u3081\u8FBC\u307E\u308C\u305FJRE\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u4E0B\u8A18\u3067\u767A\u898B\u3055\u308C\u307E\u3057\u305F\uFF1A{0} +PlatformUtil.jrePath.jreDir.msg=\u57CB\u3081\u8FBC\u307E\u308C\u305FJRE\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u767A\u898B\u3055\u308C\u307E\u3057\u305F\uFF1A{0} PlatformUtil.jrePath.usingJavaPath.msg=JAVA\u30D0\u30A4\u30CA\u30EA\u30D1\u30B9\u3092\u4F7F\u7528\uFF1A{0} PlatformUtil.getPID.sigarNotInit.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 PlatformUtil.getPID.gen.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001{0} @@ -11,8 +11,8 @@ PlatformUtil.getJavaPID.sigarNotInit.msg=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u PlatformUtil.getJavaPID.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1} PlatformUtil.getJavaPIDs.sigarNotInit=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 PlatformUtil.getJavaPIDs.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1} -PlatformUtil.killProcess.sigarNotInit.msg=PID\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -PlatformUtil.killProcess.gen.msg=\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\uFF1A {0}, {1} +PlatformUtil.killProcess.sigarNotInit.msg=PID\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u7D42\u4E86\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PlatformUtil.killProcess.gen.msg=\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u7D42\u4E86\u3067\u304D\u307E\u305B\u3093\uFF1A {0}, {1} PlatformUtil.getProcVmUsed.sigarNotInit.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 PlatformUtil.getProcVmUsed.gen.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001{0} PlatformUtil.getJvmMemInfo.usageText=JVM\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{0}\u3001JVM\u975E\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{1} @@ -20,4 +20,8 @@ PlatformUtil.getPhysicalMemInfo.usageText=\u7269\u7406\u30E1\u30E2\u30EA\u4F7F\u PlatformUtil.getAllMemUsageInfo.usageText={0}\n\ {1}\n\ \u30D7\u30ED\u30BB\u30B9\u4EEE\u60F3\u30E1\u30E2\u30EA\uFF1A{2} -StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 \ No newline at end of file +StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 +ImageUtils.GetOrGenerateThumbnailTask.loadingThumbnailFor={0}\u306E\u30B5\u30E0\u30CD\u30FC\u30EB\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D +ImageUtils.GetOrGenerateThumbnailTask.generatingPreviewFor={0}\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u4F5C\u6210\u4E2D +ImageUtils.ReadImageTask.mesage.text={0}\u3092\u8AAD\u307F\u53D6\u308A\u4E2D +VideoUtils.genVideoThumb.progress.text=\u4E00\u6642\u30D5\u30A1\u30A4\u30EB{0}\u3092\u62BD\u51FA\u4E2D \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/FileUtil.java b/Core/src/org/sleuthkit/autopsy/coreutils/FileUtil.java index 91e12a32ba..4c742acfac 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/FileUtil.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/FileUtil.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2012-2015 Basis Technology Corp. + * Copyright 2012-2016 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,7 +31,8 @@ import java.nio.file.Path; public class FileUtil { private static final Logger logger = Logger.getLogger(FileUtil.class.getName()); - private static String TEMP_FILE_PREFIX = "Autopsy"; //NON-NLS + private static final String TEMP_FILE_NAME = "Autopsy"; //NON-NLS + private static final String TEMP_FILE_EXT = null; //NON-NLS /** * Recursively delete all of the files and sub-directories in a directory. @@ -172,16 +173,17 @@ public class FileUtil { } /** - * Test if the current user has read and write access to the path. + * Test if the current user has read and write access to the dirPath. * - * @param path The path to test for read and write access. + * @param dirPath The path to the directory to test for read and write + * access. * * @return True if we have both read and write access, false otherwise. */ - public static boolean hasReadWriteAccess(Path path) { + public static boolean hasReadWriteAccess(Path dirPath) { Path p = null; try { - p = Files.createTempFile(path, TEMP_FILE_PREFIX, null); + p = Files.createTempFile(dirPath, TEMP_FILE_NAME, TEMP_FILE_EXT); return (p.toFile().canRead() && p.toFile().canWrite()); } catch (IOException ex) { return false; @@ -194,4 +196,10 @@ public class FileUtil { } } } + + /** + * Prevents instantiation of this utility class. + */ + private FileUtil() { + } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java index 4a62a26b2c..198baaf923 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java @@ -414,8 +414,13 @@ public class BlackboardArtifactNode extends DisplayableItemNode { return true; } - @Override - public String getItemType() { - return "BlackboardArtifact"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "BlackboardArtifact"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java index f9e27a8969..257f8ddde1 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java @@ -108,8 +108,13 @@ public class BlackboardArtifactTagNode extends DisplayableItemNode { return true; } - @Override - public String getItemType() { - return "BlackboardArtifactTag"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "BlackboardArtifactTag"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index 7a2330d36b..bd7cfe8b23 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -13,7 +13,7 @@ AbstractAbstractFileNode.knownColLbl=\u65E2\u77E5 AbstractAbstractFileNode.inHashsetsColLbl=HashSet\u306B\u5B58\u5728 AbstractAbstractFileNode.md5HashColLbl=MD5\u30CF\u30C3\u30B7\u30E5 AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FSleuthkitItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305F\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305F\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0(DisplayableItem)\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 AbstractContentNode.exception.cannotChangeSysName.msg=\u30B7\u30B9\u30C6\u30E0\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002 AbstractFsContentNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 ArtifactStringContent.getStr.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 @@ -68,8 +68,8 @@ DeletedContent.deletedContentsNode.name=\u524A\u9664\u3055\u308C\u305F\u30D5\u30 DeletedContent.createSheet.name.name=\u540D\u524D DeletedContent.createSheet.name.displayName=\u540D\u524D DeletedContent.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 -DeletedContent.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 -DeletedContent.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 +DeletedContent.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +DeletedContent.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 DeletedContent.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 DeletedContent.createKeys.maxObjects.msg=\u8868\u793A\u53EF\u80FD\u306A\u6570\u3088\u308A\u3082\u591A\u304F\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u6700\u521D\u306E{0}\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 DeletedContent.createNodeForKey.typeNotSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} @@ -96,8 +96,8 @@ FileSize.fileSizeRootNode.name=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA FileSize.createSheet.name.name=\u540D\u524D FileSize.createSheet.name.displayName=\u540D\u524D FileSize.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 -FileSize.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 -FileSize.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 +FileSize.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileSize.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 FileSize.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 FileSize.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} FileTypeChildren.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} @@ -106,14 +106,14 @@ FileTypeExtensionFilters.tskVideoFilter.text=\u30D3\u30C7\u30AA FileTypeExtensionFilters.tskAudioFilter.text=\u30AA\u30FC\u30C7\u30A3\u30AA FileTypeExtensionFilters.tskArchiveFilter.text=\u30A2\u30FC\u30AB\u30A4\u30D6 FileTypeExtensionFilters.tskDocumentFilter.text=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 -FileTypeExtensionFilters.tskExecFilter.text=\u5B9F\u884C\u53EF\u80FD +FileTypeExtensionFilters.tskExecFilter.text=\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB FileTypeExtensionFilters.autDocHtmlFilter.text=HTML FileTypeExtensionFilters.autDocOfficeFilter.text=\u30AA\u30D5\u30A3\u30B9 FileTypeExtensionFilters.autoDocPdfFilter.text=PDF FileTypeExtensionFilters.autDocTxtFilter.text=\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8 FileTypeExtensionFilters.autDocRtfFilter.text=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8 -FileTypeNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 -FileTypeNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 +FileTypeNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileTypeNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 FileTypeNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 FileTypeNode.createSheet.fileExt.name=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50 FileTypeNode.createSheet.fileExt.displayName=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50 @@ -131,7 +131,7 @@ ImageNode.createSheet.name.name=\u540D\u524D ImageNode.createSheet.name.displayName=\u540D\u524D ImageNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u306F\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F\u30CC\u30EB\u3067\u3057\u305F\uFF01 -Installer.tskLibErr.msg=Sleuth Kit JNI\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\n\n\u8A73\u7D30\uFF1A {0} +Installer.tskLibErr.msg=Sleuth Kit JNI\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\uFF01\n\n\u8A73\u7D30\uFF1A {0} Installer.tskLibErr.err=\u81F4\u547D\u7684\u30A8\u30E9\u30FC\uFF01 InterestingHits.interestingItems.text=\u7591\u308F\u3057\u3044\u30A2\u30A4\u30C6\u30E0 InterestingHits.displayName.text=\u7591\u308F\u3057\u3044\u30A2\u30A4\u30C6\u30E0 @@ -185,10 +185,10 @@ RecentFiles.aut3dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF13 RecentFiles.aut4dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF14 RecentFiles.aut5dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF15 RecentFiles.aut6dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF16 -RecentFilesFilterChildren.exception.defaultVisit.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0 +RecentFilesFilterChildren.exception.defaultVisit.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u306F\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F""\u3067\u3057\u305F\uFF01 -RecentFilesFilterNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 -RecentFilesFilterNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30BF\u30A4\u30D7 +RecentFilesFilterNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +RecentFilesFilterNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 RecentFilesFilterNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 RecentFilesNode.createSheet.name.name=\u540D\u524D RecentFilesNode.createSheet.name.displayName=\u540D\u524D @@ -260,9 +260,30 @@ ReportNode.createdTimeProperty.desc=\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u ReportNode.createdTimeProperty.displayName=\u4F5C\u6210\u65E5\u6642 ReportNode.createdTimeProperty.name=\u4F5C\u6210\u65E5\u6642 ReportNode.pathProperty.desc=\u30EC\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306E\u30ED\u30FC\u30AB\u30EB\u30D1\u30B9 -ReportNode.pathProperty.displayName=\u30EC\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -ReportNode.pathProperty.name=\u30EC\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +ReportNode.pathProperty.displayName=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u30EC\u30DD\u30FC\u30C8 +ReportNode.pathProperty.name=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u30EC\u30DD\u30FC\u30C8 ReportNode.sourceModuleNameProperty.desc=\u30EC\u30DD\u30FC\u30C8\u3092\u4F5C\u6210\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u540D ReportNode.sourceModuleNameProperty.displayName=\u30BD\u30FC\u30B9\u30E2\u30B8\u30E5\u30FC\u30EB\u540D ReportNode.sourceModuleNameProperty.name=\u30BD\u30FC\u30B9\u30E2\u30B8\u30E5\u30FC\u30EB\u540D -ReportsListNode.displayName=\u30EC\u30DD\u30FC\u30C8 \ No newline at end of file +ReportsListNode.displayName=\u30EC\u30DD\u30FC\u30C8 +AbstractAbstractFileNode.mimeType=MIME\u30BF\u30A4\u30D7 +ContentTagNode.createSheet.fileModifiedTime.name=\u4FEE\u6B63\u65E5\u6642 +ContentTagNode.createSheet.fileModifiedTime.displayName=\u4FEE\u6B63\u65E5\u6642 +ContentTagNode.createSheet.fileChangedTime.name=\u5909\u66F4\u65E5\u6642 +ContentTagNode.createSheet.fileChangedTime.displayName=\u5909\u66F4\u65E5\u6642 +ContentTagNode.createSheet.fileAccessedTime.name=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +ContentTagNode.createSheet.fileAccessedTime.displayName=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +ContentTagNode.createSheet.fileCreatedTime.name=\u4F5C\u6210\u65E5\u6642 +ContentTagNode.createSheet.fileCreatedTime.displayName=\u4F5C\u6210\u65E5\u6642 +ContentTagNode.createSheet.fileSize.name=\u30B5\u30A4\u30BA +ContentTagNode.createSheet.fileSize.displayName=\u30B5\u30A4\u30BA +LocalFileNode.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +ReportNode.reportNameProperty.name=\u30EC\u30DD\u30FC\u30C8\u540D +ReportNode.reportNameProperty.displayName=\u30EC\u30DD\u30FC\u30C8\u540D +ReportNode.reportNameProperty.desc=\u30EC\u30DD\u30FC\u30C8\u306E\u540D\u524D +DeleteReportAction.actionDisplayName.singleReport=\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664 +DeleteReportAction.actionDisplayName.multipleReports=\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664 +DeleteReportAction.actionPerformed.showConfirmDialog.single.msg=\uFF11\u3064\u306E\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F +DeleteReportAction.actionPerformed.showConfirmDialog.multiple.msg={0}\u306E\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F +DeleteReportAction.actionPerformed.showConfirmDialog.checkbox.msg=\u30C7\u30A3\u30B9\u30AF\u304B\u3089\u30EC\u30DD\u30FC\u30C8\u3092\u524A\u9664\u3059\u308B\u5834\u5408\u306F\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +DeleteReportAction.actionPerformed.showConfirmDialog.title=\u524A\u9664\u3092\u78BA\u5B9A\u3059\u308B \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java index 9c92e82958..8be6cda9f4 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java @@ -122,8 +122,13 @@ class ContentTagNode extends DisplayableItemNode { return true; } - @Override - public String getItemType() { - return "ContentTag"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "ContentTag"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java index eb0af9c01c..48bfc74443 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java @@ -56,10 +56,15 @@ public class DataSourcesNode extends DisplayableItemNode { this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/image.png"); //NON-NLS } - @Override - public String getItemType() { - return "DataSources"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "DataSources"; //NON-NLS +// } /* * Custom Keys implementation that listens for new data sources being added. diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java index b1ffc42918..f2b86f8d28 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java @@ -147,10 +147,15 @@ public class DeletedContent implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "DeletedContent"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "DeletedContent"; //NON-NLS +// } } public static class DeletedContentsChildren extends ChildFactory { @@ -280,11 +285,16 @@ public class DeletedContent implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "DeletedContentChildren"; //NON-NLS - } - + /* + * TODO (AUT-1849): Correct or remove peristent column reordering + * code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "DeletedContentChildren"; //NON-NLS +// } // update the display name when new events are fired private class DeletedContentNodeObserver implements Observer { @@ -347,7 +357,6 @@ public class DeletedContent implements AutopsyVisitableItem { private final Observer observer = new DeletedContentChildrenObserver(); // Cause refresh of children if there are changes - private class DeletedContentChildrenObserver implements Observer { @Override diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java index baf0b51966..303ca71f15 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java @@ -101,8 +101,13 @@ public class DirectoryNode extends AbstractFsContentNode { return false; } - @Override - public String getItemType() { - return "Directory"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Directory"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DisplayableItemNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DisplayableItemNode.java index d5a4de315e..40f7d52b62 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DisplayableItemNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DisplayableItemNode.java @@ -40,6 +40,11 @@ public abstract class DisplayableItemNode extends AbstractNode { public abstract boolean isLeafTypeNode(); public abstract T accept(DisplayableItemNodeVisitor v); - - public abstract String getItemType(); + + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// public abstract String getItemType(); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java index a21ceecc2e..fecf47d7cd 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java @@ -191,10 +191,15 @@ public class EmailExtracted implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "EmailExtractedRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "EmailExtractedRoot"; //NON-NLS +// } } /** @@ -346,10 +351,15 @@ public class EmailExtracted implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "EmailExtractedAccount"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "EmailExtractedAccount"; //NON-NLS +// } } /** @@ -437,10 +447,15 @@ public class EmailExtracted implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "EmailExtractedFolder"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "EmailExtractedFolder"; //NON-NLS +// } } /** diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java index 5c38965bb6..146c4c72e5 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java @@ -183,10 +183,15 @@ public class ExtractedContent implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "ExtractedContentRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "ExtractedContentRoot"; //NON-NLS +// } } /** @@ -400,10 +405,15 @@ public class ExtractedContent implements AutopsyVisitableItem { return true; } - @Override - public String getItemType() { - return type.getDisplayName(); - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return type.getDisplayName(); +// } } /** diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java index 036e6a2de0..d740149ffe 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java @@ -184,8 +184,13 @@ public class FileNode extends AbstractFsContentNode { return true; } - @Override - public String getItemType() { - return "File"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "File"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java index 9acf789592..c5fee7d696 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java @@ -144,10 +144,15 @@ public class FileSize implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "FileSizeRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "FileSizeRoot"; //NON-NLS +// } } /* @@ -286,11 +291,16 @@ public class FileSize implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "FileSize"; //NON-NLS - } - + /* + * TODO (AUT-1849): Correct or remove peristent column reordering + * code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "FileSize"; //NON-NLS +// } // update the display name when new events are fired private class FileSizeNodeObserver implements Observer { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java index 04102bfead..e1b7553aba 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java @@ -82,10 +82,15 @@ public class FileTypeNode extends DisplayableItemNode { this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/file-filter-icon.png"); //NON-NLS } - @Override - public String getItemType() { - return "FileType"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "FileType"; //NON-NLS +// } // update the display name when new events are fired private class FileTypeNodeObserver implements Observer { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java index 2240d4ca24..3bbbf0b63c 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java @@ -104,16 +104,21 @@ public class FileTypesNode extends DisplayableItemNode { return s; } - @Override - public String getItemType() { - if(filter == null) - return "FileTypes"; //NON-NLS - if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER)) - return "FileTypesDoc"; //NON-NLS - if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER)) - return "FileTypesExe"; //NON-NLS - return "FileTypes"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// if(filter == null) +// return "FileTypes"; //NON-NLS +// if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER)) +// return "FileTypesDoc"; //NON-NLS +// if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER)) +// return "FileTypesExe"; //NON-NLS +// return "FileTypes"; //NON-NLS +// } /** * diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java index 6e4503bec0..6ecaec6258 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java @@ -169,10 +169,15 @@ public class HashsetHits implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "HashsetRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "HashsetRoot"; //NON-NLS +// } } /** @@ -327,10 +332,15 @@ public class HashsetHits implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "HashsetName"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "HashsetName"; //NON-NLS +// } } /** diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java index bdf90c2e8b..4a822aec09 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java @@ -110,8 +110,13 @@ public class ImageNode extends AbstractContentNode { return v.visit(this); } - @Override - public String getItemType() { - return "Image"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Image"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java index acc9013158..8faec30ab7 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java @@ -162,10 +162,15 @@ public class InterestingHits implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "InterestingHitsRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "InterestingHitsRoot"; //NON-NLS +// } } private class SetNameFactory extends ChildFactory.Detachable implements Observer { @@ -313,10 +318,15 @@ public class InterestingHits implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "InterestingHitsSetName"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "InterestingHitsSetName"; //NON-NLS +// } } private class HitFactory extends ChildFactory implements Observer { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java index 9a1290bc29..987cf72caa 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java @@ -73,7 +73,6 @@ public class KeywordHits implements AutopsyVisitableItem { private final class KeywordResults extends Observable { // Map from listName/Type to Map of keyword to set of artifact Ids - private final Map>> topLevelMap; KeywordResults() { @@ -240,10 +239,15 @@ public class KeywordHits implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "KeywordRoot"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "KeywordRoot"; //NON-NLS +// } } private class ListFactory extends ChildFactory.Detachable implements Observer { @@ -395,10 +399,15 @@ public class KeywordHits implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "KeywordList"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "KeywordList"; //NON-NLS +// } } private class TermFactory extends ChildFactory.Detachable implements Observer { @@ -493,10 +502,15 @@ public class KeywordHits implements AutopsyVisitableItem { return s; } - @Override - public String getItemType() { - return "KeywordTerm"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "KeywordTerm"; //NON-NLS +// } } public class HitsFactory extends ChildFactory.Detachable implements Observer { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java index 575695dbe7..0192f37912 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java @@ -38,11 +38,15 @@ import org.sleuthkit.datamodel.TskData; */ public class LayoutFileNode extends AbstractAbstractFileNode { - @Override - public String getItemType() { - return "LayoutFile"; //NON-NLS - } - + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "LayoutFile"; //NON-NLS +// } public static enum LayoutContentPropertyType { PARTS { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java index 3956bb93ac..45c9dd492b 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java @@ -116,8 +116,13 @@ public class LocalFileNode extends AbstractAbstractFileNode { return true; //!this.hasContentChildren(); } - @Override - public String getItemType() { - return "LocalFile"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "LocalFile"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java index 0d7d503c10..e9d8fe6b63 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java @@ -83,8 +83,13 @@ public class RecentFilesFilterNode extends DisplayableItemNode { return true; } - @Override - public String getItemType() { - return "RecentFilesFilter"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "RecentFilesFilter"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java index dd2501e19b..21751acdbc 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java @@ -66,8 +66,13 @@ public class RecentFilesNode extends DisplayableItemNode { return s; } - @Override - public String getItemType() { - return "RecentFiles"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "RecentFiles"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java index 327fdf1270..e3715787cf 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java @@ -89,10 +89,15 @@ public final class Reports implements AutopsyVisitableItem { return visitor.visit(this); } - @Override - public String getItemType() { - return "ReportsList"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "ReportsList"; //NON-NLS +// } } /** @@ -214,11 +219,15 @@ public final class Reports implements AutopsyVisitableItem { return new OpenReportAction(); } - @Override - public String getItemType() { - return "Reports"; //NON-NLS - } - + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Reports"; //NON-NLS +// } private static class DeleteReportAction extends AbstractAction { private static DeleteReportAction instance; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java index 7f761f2b05..737a931097 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java @@ -69,8 +69,13 @@ public class ResultsNode extends DisplayableItemNode { return s; } - @Override - public String getItemType() { - return "Results"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Results"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java index a9eabeccc6..16f0ac7084 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java @@ -109,10 +109,15 @@ public class Tags implements AutopsyVisitableItem { return propertySheet; } - @Override - public String getItemType() { - return "TagsRoots"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "TagsRoots"; //NON-NLS +// } } private class TagNameNodeFactory extends ChildFactory.Detachable implements Observer { @@ -271,10 +276,15 @@ public class Tags implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "TagsName"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "TagsName"; //NON-NLS +// } } /** @@ -371,10 +381,15 @@ public class Tags implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "TagsContentType"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "TagsContentType"; //NON-NLS +// } } private class ContentTagNodeFactory extends ChildFactory implements Observer { @@ -469,10 +484,15 @@ public class Tags implements AutopsyVisitableItem { updateDisplayName(); } - @Override - public String getItemType() { - return "TagsBlackboardArtifact"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "TagsBlackboardArtifact"; //NON-NLS +// } } private class BlackboardArtifactTagNodeFactory extends ChildFactory implements Observer { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java index 25314fbc00..4919594378 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java @@ -73,8 +73,13 @@ public class ViewsNode extends DisplayableItemNode { return s; } - @Override - public String getItemType() { - return "Views"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Views"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java index de5c23a0d0..16bb0b591d 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java @@ -149,8 +149,13 @@ public class VirtualDirectoryNode extends AbstractAbstractFileNode { // Listen for case events so that we can detect when case is closed Case.addPropertyChangeListener(pcl); } - + private void removeListeners() { IngestManager.getInstance().removeIngestModuleEventListener(pcl); Case.removePropertyChangeListener(pcl); @@ -190,8 +190,13 @@ public class VolumeNode extends AbstractContentNode { return v.visit(this); } - @Override - public String getItemType() { - return "Volume"; //NON-NLS - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Volume"; //NON-NLS +// } } diff --git a/Core/src/org/sleuthkit/autopsy/diagnostics/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/diagnostics/Bundle_ja.properties index 09ec101d1d..860af87697 100644 --- a/Core/src/org/sleuthkit/autopsy/diagnostics/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/diagnostics/Bundle_ja.properties @@ -2,14 +2,14 @@ CTL_PerformancePanelAction=\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u8A3A\u65A PerformancePanel.cpuTest.basemsg=CPU\u30C6\u30B9\u30C8\u5B9F\u884C\u4E2D PerformancePanel.cpuTest.cpuLabel.MBHashedPerSec.text=\uFF11\u79D2\u3054\u3068\u306B{0}MB\u30CF\u30C3\u30B7\u30E5\u5B8C\u4E86 PerformancePanel.cpuTest.cpuLabel.md5AlgNotFound.text=MD5\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F -PerformancePanel.dbTest.dbLabel.errPerformQuery.text=\u30AF\u30A8\u30EA\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +PerformancePanel.dbTest.dbLabel.errPerformQuery.text=\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F PerformancePanel.dbTest.dbLabel.recordsPerSec.text=\uFF11\u79D2\u3054\u3068\u306B{0}\u30EC\u30B3\u30FC\u30C9 -PerformancePanel.dbTest.status.running=DB\u30C6\u30B9\u30C8\u5B9F\u884C\u4E2D +PerformancePanel.dbTest.status.running=DB\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u4E2D PerformancePanel.done.statusMsg.err.text=\u30A8\u30E9\u30FC\uFF1A{0} -PerformancePanel.fileReadLabel.errMakeFileReader.text=\u30D5\u30A1\u30A4\u30EB\u30EA\u30FC\u30C0\u30FC\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +PerformancePanel.fileReadLabel.errMakeFileReader.text=\u30D5\u30A1\u30A4\u30EB\u30EA\u30FC\u30C0\u30FC\u3092\u4F5C\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F PerformancePanel.fileReadLabel.imgPathNotExist.text=\u30A4\u30E1\u30FC\u30B8\u30D1\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 PerformancePanel.FileReadTest.fileReadLabel.skipped.text=\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3057\u305F -PerformancePanel.FileReadTest.statusMsg.runningFileReadTest.text=\u30D5\u30A1\u30A4\u30EB\u30EA\u30FC\u30C7\u30A3\u30F3\u30B0\u30C6\u30B9\u30C8\u5B9F\u884C\u4E2D +PerformancePanel.FileReadTest.statusMsg.runningFileReadTest.text=\u30D5\u30A1\u30A4\u30EB\u30EA\u30FC\u30C7\u30A3\u30F3\u30B0\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u4E2D PerformancePanel.imgTest.statusMsg.runningImgReadTest.text=\u30A4\u30E1\u30FC\u30B8\u30EA\u30FC\u30C7\u30A3\u30F3\u30B0\u30C6\u30B9\u30C8\u5B9F\u884C\u4E2D PerformancePanel.jLabel1.text=\u30A4\u30E1\u30FC\u30B8\u30EA\u30FC\u30C7\u30A3\u30F3\u30B0\uFF1A PerformancePanel.jLabel2.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30EA\u30FC\u30C7\u30A3\u30F3\u30B0\uFF1A diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index 7066ffa42c..c8b8a6fd91 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -1,11 +1,11 @@ -CTL_DirectoryTreeTopComponent=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30c4\u30ea\u30fc -HINT_DirectoryTreeTopComponent=\u3053\u308c\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30c4\u30ea\u30fc\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3059 -OpenIDE-Module-Name=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30c4\u30ea\u30fc -FileSystemDetailsPanel.imgOffsetLabel.text=\u30a4\u30e1\u30fc\u30b8\u30aa\u30d5\u30bb\u30c3\u30c8\uff1a -FileSystemDetailsPanel.fsTypeLabel.text=\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u30bf\u30a4\u30d7\uff1a -FileSystemDetailsPanel.genInfoLabel.text=\u30d5\u30a1\u30a4\u30eb\u4e00\u822c\u60c5\u5831 -FileSystemDetailsPanel.jLabel2.text=\u30d0\u30a4\u30c8 -FileSystemDetailsPanel.jLabel3.text=\u30d0\u30a4\u30c8 +CTL_DirectoryTreeTopComponent=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC +HINT_DirectoryTreeTopComponent=\u3053\u308C\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +OpenIDE-Module-Name=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC +FileSystemDetailsPanel.imgOffsetLabel.text=\u30A4\u30E1\u30FC\u30B8\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A +FileSystemDetailsPanel.fsTypeLabel.text=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u30BF\u30A4\u30D7\uFF1A +FileSystemDetailsPanel.genInfoLabel.text=\u30D5\u30A1\u30A4\u30EB\u4E00\u822C\u60C5\u5831 +FileSystemDetailsPanel.jLabel2.text=\u30D0\u30A4\u30C8 +FileSystemDetailsPanel.jLabel3.text=\u30D0\u30A4\u30C8 FileSystemDetailsPanel.fsTypeValue.text=... FileSystemDetailsPanel.imgOffsetValue.text=... FileSystemDetailsPanel.volumeIDValue.text=... @@ -14,80 +14,80 @@ FileSystemDetailsPanel.blockCountValue.text=... FileSystemDetailsPanel.rootInumValue.text=... FileSystemDetailsPanel.firstInumValue.text=... FileSystemDetailsPanel.lastInumValue.text=... -FileSystemDetailsPanel.jLabel1.text=\u30d5\u30a1\u30a4\u30eb\u8a73\u7d30\u60c5\u5831 -FileSystemDetailsPanel.volumeIDLabel.text=\u30dc\u30ea\u30e5\u30fc\u30e0ID\uff1a -FileSystemDetailsPanel.blockSizeLabel.text=\u30d6\u30ed\u30c3\u30af\u30b5\u30a4\u30ba\uff1a -FileSystemDetailsPanel.blockCountLabel.text=\u30d6\u30ed\u30c3\u30af\u6570\uff1a -FileSystemDetailsPanel.rootInumLabel.text=\u30eb\u30fc\u30c8\u30e1\u30bf\u30c7\u30fc\u30bf\u30a8\u30f3\u30c8\u30ea\u30fc\uff1a -FileSystemDetailsPanel.firstInumLabel.text=\u6700\u521d\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u30a8\u30f3\u30c8\u30ea\u30fc\uff1a -FileSystemDetailsPanel.lastInumLabel.text=\u6700\u5f8c\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u30a8\u30f3\u30c8\u30ea\u30fc\uff1a +FileSystemDetailsPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u8A73\u7D30\u60C5\u5831 +FileSystemDetailsPanel.volumeIDLabel.text=\u30DC\u30EA\u30E5\u30FC\u30E0ID\uFF1A +FileSystemDetailsPanel.blockSizeLabel.text=\u30D6\u30ED\u30C3\u30AF\u30B5\u30A4\u30BA\uFF1A +FileSystemDetailsPanel.blockCountLabel.text=\u30D6\u30ED\u30C3\u30AF\u6570\uFF1A +FileSystemDetailsPanel.rootInumLabel.text=\u30EB\u30FC\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A +FileSystemDetailsPanel.firstInumLabel.text=\u6700\u521D\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A +FileSystemDetailsPanel.lastInumLabel.text=\u6700\u5F8C\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A FileSystemDetailsPanel.OKButton.text=OK -VolumeDetailsPanel.volumeIDLabel.text=\u30dc\u30ea\u30e5\u30fc\u30e0ID\uff1a +VolumeDetailsPanel.volumeIDLabel.text=\u30DC\u30EA\u30E5\u30FC\u30E0ID\uFF1A VolumeDetailsPanel.volumeIDValue.text=... VolumeDetailsPanel.startValue.text=... VolumeDetailsPanel.lengthValue.text=... VolumeDetailsPanel.descValue.text=... VolumeDetailsPanel.flagsValue.text=... -VolumeDetailsPanel.startLabel.text=\u6700\u521d\u306e\u30bb\u30af\u30bf\u30fc\uff1a -VolumeDetailsPanel.lengthLabel.text=\u30bb\u30af\u30bf\u30fc\u306e\u9577\u3055\uff1a -VolumeDetailsPanel.descLabel.text=\u8aac\u660e\uff1a -VolumeDetailsPanel.flagsLabel.text=\u30d5\u30e9\u30b0\uff1a -VolumeDetailsPanel.jLabel1.text=\u30dc\u30ea\u30e5\u30fc\u30e0\u4e00\u822c\u60c5\u5831 +VolumeDetailsPanel.startLabel.text=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC\uFF1A +VolumeDetailsPanel.lengthLabel.text=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055\uFF1A +VolumeDetailsPanel.descLabel.text=\u8AAC\u660E\uFF1A +VolumeDetailsPanel.flagsLabel.text=\u30D5\u30E9\u30B0\uFF1A +VolumeDetailsPanel.jLabel1.text=\u30DC\u30EA\u30E5\u30FC\u30E0\u4E00\u822C\u60C5\u5831 VolumeDetailsPanel.OKButton.text=OK -ImageDetailsPanel.imageInfoLabel.text=\u30a4\u30e1\u30fc\u30b8\u60c5\u5831 -ImageDetailsPanel.imgNameLabel.text=\u540d\u524d\uff1a +ImageDetailsPanel.imageInfoLabel.text=\u30A4\u30E1\u30FC\u30B8\u60C5\u5831 +ImageDetailsPanel.imgNameLabel.text=\u540D\u524D\uFF1A ImageDetailsPanel.imgNameValue.text=... -ImageDetailsPanel.imgTypeLabel.text=\u30bf\u30a4\u30d7\uff1a +ImageDetailsPanel.imgTypeLabel.text=\u30BF\u30A4\u30D7\uFF1A ImageDetailsPanel.imgTypeValue.text=... ImageDetailsPanel.OKButton.text=OK -ImageDetailsPanel.imgSectorSizeLabel.text=\u30bb\u30af\u30bf\u30fc\u30b5\u30a4\u30ba\uff1a +ImageDetailsPanel.imgSectorSizeLabel.text=\u30BB\u30AF\u30BF\u30FC\u30B5\u30A4\u30BA\uFF1A ImageDetailsPanel.imgSectorSizeValue.text=... ImageDetailsPanel.imgTotalSizeValue.text=... -ImageDetailsPanel.imgTotalSizeLabel.text=\u5408\u8a08\u30b5\u30a4\u30ba\uff1a +ImageDetailsPanel.imgTotalSizeLabel.text=\u5408\u8A08\u30B5\u30A4\u30BA\uFF1A ImageDetailsPanel.imgHashValue.text=... -ImageDetailsPanel.imgHashLabel.text=\u30cf\u30c3\u30b7\u30e5\u5024\uff1a -ChangeViewAction.menuItem.view=\u30d3\u30e5\u30fc +ImageDetailsPanel.imgHashLabel.text=\u30CF\u30C3\u30B7\u30E5\u5024\uFF1A +ChangeViewAction.menuItem.view=\u30D3\u30E5\u30FC ChangeViewAction.menuItem.view.hex=HEX -ChangeViewAction.menuItem.view.string=\u30b9\u30c8\u30ea\u30f3\u30b0 -DataResultFilterNode.action.viewFileInDir.text=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a -DataResultFilterNode.action.viewSrcFileInDir.text=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a -DataResultFilterNode.action.viewInNewWin.text=\u65b0\u898f\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u8868\u793a -DataResultFilterNode.action.openInExtViewer.text=\u5916\u90e8\u30d3\u30e5\u30fc\u30a2\u3067\u958b\u304f -DataResultFilterNode.action.searchFilesSameMd5.text=\u540c\u3058MD5\u30cf\u30c3\u30b7\u30e5\u3092\u6301\u3064\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22 -DataResultFilterNode.action.viewInDir.text=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u306b\u8868\u793a -DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5c5e\u6027\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u691c\u7d22\u3092\u958b\u304f -DirectoryTreeFilterNode.action.runIngestMods.text=\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u5b9f\u884c -DirectoryTreeTopComponent.title.text=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30ea\u30b9\u30c6\u30a3\u30f3\u30b0 -DirectoryTreeTopComponent.action.viewArtContent.text=\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a -DirectoryTreeTopComponent.moduleErr=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a8\u30e9\u30fc -DirectoryTreeTopComponent.moduleErr.msg=DirectoryTreeTopComponent\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 -ExplorerNodeActionVisitor.action.imgDetails.title=\u30a4\u30e1\u30fc\u30b8\u8a73\u7d30 -ExplorerNodeActionVisitor.action.extUnallocToSingleFiles=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u5185\u306e\u30c7\u30fc\u30bf\u3092\u8907\u6570\u306e\u30b7\u30f3\u30b0\u30eb\u30d5\u30a1\u30a4\u30eb\u306b\u62bd\u51fa -ExplorerNodeActionVisitor.action.fileSystemDetails.title=\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u8a73\u7d30 -ExplorerNodeActionVisitor.action.volumeDetails.title=\u30dc\u30ea\u30e5\u30fc\u30e0\u8a73\u7d30 -ExplorerNodeActionVisitor.action.extUnallocToSingleFile=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u5185\u306e\u30c7\u30fc\u30bf\u3092\u4e00\u3064\u306e\u30b7\u30f3\u30b0\u30eb\u30d5\u30a1\u30a4\u30eb\u306b\u62bd\u51fa -ExplorerNodeActionVisitor.volDetail.noVolMatchErr=\u30a8\u30e9\u30fc\uff1a\u4e00\u81f4\u3059\u308b\u30dc\u30ea\u30e5\u30fc\u30e0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -ExplorerNodeActionVisitor.imgDetail.noVolMatchesErr=\u30a8\u30e9\u30fc\uff1a\u4e00\u81f4\u3059\u308b\u30dc\u30ea\u30e5\u30fc\u30e0\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -ExplorerNodeActionVisitor.exception.probGetParent.text={0}\: {1}\u304b\u3089\u30da\u30a2\u30ec\u30f3\u30c8\u3092\u53d6\u5f97\u3059\u308b\u969b\u306b\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ExtractAction.title.extractFiles.text=\u30d5\u30a1\u30a4\u30eb\u3092\u62bd\u51fa -ExtractAction.extractFiles.cantCreateFolderErr.msg=\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 -ExtractAction.confDlg.destFileExist.msg=\u4fdd\u5b58\u5148\u306e\u30d5\u30a1\u30a4\u30eb{0}\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3001\u4e0a\u66f8\u304d\u3057\u307e\u3059\u304b\uff1f -ExtractAction.confDlg.destFileExist.title=\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u307e\u3059 -ExtractAction.msgDlg.cantOverwriteFile.msg=\u65e2\u5b58\u30d5\u30a1\u30a4\u30eb{0}\u3092\u4e0a\u66f8\u304d\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f -ExtractAction.notifyDlg.noFileToExtr.msg=\u62bd\u51fa\u3067\u304d\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002 -ExtractAction.progress.extracting=\u62bd\u51fa\u4e2d -ExtractAction.progress.cancellingExtraction={0}\uff08\u30ad\u30e3\u30f3\u30bb\u30eb\u4e2d\u2026\uff09 -ExtractAction.done.notifyMsg.fileExtr.text=\u30d5\u30a1\u30a4\u30eb\u304c\u62bd\u51fa\u3055\u308c\u307e\u3057\u305f\u3002 -ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306e\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u30c7\u30fc\u30bf\u306f\u65e2\u306b\u62bd\u51fa\u4e2d\u3067\u3059\u3002\u5225\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002 -ExtractUnallocAction.msgDlg.folderDoesntExist.msg=\u30d5\u30a9\u30eb\u30c0\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\u7d9a\u884c\u3059\u308b\u524d\u306b\u6709\u52b9\u306a\u30d5\u30a9\u30eb\u30c0\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002 -ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg=\u4fdd\u5b58\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044 -ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=\u3053\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u30d5\u30a1\u30a4\u30eb{0}\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u65e2\u5b58\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u304b\uff1f -ExtractUnallocAction.progress.extractUnalloc.title=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u30c7\u30fc\u30bf\u3092\u62bd\u51fa\u4e2d -ExtractUnallocAction.progress.displayName.cancelling.text=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u30c7\u30fc\u30bf\u3092\u62bd\u51fa\u4e2d\uff08\u30ad\u30e3\u30f3\u30bb\u30eb\u4e2d\u2026\uff09 -ExtractUnallocAction.processing.counter.msg=\u51e6\u7406\u4e2d\u3000{0}\uff0f{1} MBs -ExtractUnallocAction.done.notifyMsg.completedExtract.title=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u62bd\u51fa\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002 -ExtractUnallocAction.done.notifyMsg.completedExtract.msg=\u30d5\u30a1\u30a4\u30eb\u306f{0}\u3078\u62bd\u51fa\u3055\u308c\u307e\u3057\u305f -ExtractUnallocAction.done.errMsg.title=\u62bd\u51fa\u30a8\u30e9\u30fc -ExtractUnallocAction.done.errMsg.msg=\u672a\u5272\u308a\u5f53\u3066\u9818\u57df\u306e\u62bd\u51fa\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{0} -DirectoryTreeFilterNode.action.collapseAll.text=\u3059\u3079\u3066\u30b3\u30e9\u30d7\u30b9 -ExtractAction.done.notifyMsg.extractErr=\u4e0b\u8a18\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u62bd\u51fa\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a {0} \ No newline at end of file +ChangeViewAction.menuItem.view.string=\u30B9\u30C8\u30EA\u30F3\u30B0 +DataResultFilterNode.action.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataResultFilterNode.action.viewSrcFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataResultFilterNode.action.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +DataResultFilterNode.action.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F +DataResultFilterNode.action.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +DataResultFilterNode.action.viewInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u8868\u793A +DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F +DirectoryTreeFilterNode.action.runIngestMods.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u5B9F\u884C +DirectoryTreeTopComponent.title.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0 +DirectoryTreeTopComponent.action.viewArtContent.text=\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A +DirectoryTreeTopComponent.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +DirectoryTreeTopComponent.moduleErr.msg=DirectoryTreeTopComponent\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.action.imgDetails.title=\u30A4\u30E1\u30FC\u30B8\u8A73\u7D30 +ExplorerNodeActionVisitor.action.extUnallocToSingleFiles=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u5185\u306E\u30C7\u30FC\u30BF\u3092\u30B7\u30F3\u30B0\u30EB\u30D5\u30A1\u30A4\u30EB\u306B\u62BD\u51FA +ExplorerNodeActionVisitor.action.fileSystemDetails.title=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u8A73\u7D30 +ExplorerNodeActionVisitor.action.volumeDetails.title=\u30DC\u30EA\u30E5\u30FC\u30E0\u8A73\u7D30 +ExplorerNodeActionVisitor.action.extUnallocToSingleFile=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u5185\u306E\u30C7\u30FC\u30BF\u3092\u30B7\u30F3\u30B0\u30EB\u30D5\u30A1\u30A4\u30EB\u306B\u62BD\u51FA +ExplorerNodeActionVisitor.volDetail.noVolMatchErr=\u30A8\u30E9\u30FC\uFF1A\u4E00\u81F4\u3059\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.imgDetail.noVolMatchesErr=\u30A8\u30E9\u30FC\uFF1A\u4E00\u81F4\u3059\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.exception.probGetParent.text={0}\: {1}\u304B\u3089\u30DA\u30A2\u30EC\u30F3\u30C8\u3092\u53D6\u5F97\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractAction.title.extractFiles.text=\u30D5\u30A1\u30A4\u30EB\u3092\u62BD\u51FA +ExtractAction.extractFiles.cantCreateFolderErr.msg=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ExtractAction.confDlg.destFileExist.msg=\u4FDD\u5B58\u5148\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3001\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F +ExtractAction.confDlg.destFileExist.title=\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059 +ExtractAction.msgDlg.cantOverwriteFile.msg=\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB{0}\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ExtractAction.notifyDlg.noFileToExtr.msg=\u62BD\u51FA\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractAction.progress.extracting=\u62BD\u51FA\u4E2D +ExtractAction.progress.cancellingExtraction={0}\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +ExtractAction.done.notifyMsg.fileExtr.text=\u30D5\u30A1\u30A4\u30EB\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 +ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306E\u30A4\u30E1\u30FC\u30B8\u306E\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u306F\u65E2\u306B\u62BD\u51FA\u4E2D\u3067\u3059\u3002\u5225\u306E\u30A4\u30E1\u30FC\u30B8\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002 +ExtractUnallocAction.msgDlg.folderDoesntExist.msg=\u30D5\u30A9\u30EB\u30C0\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u7D9A\u884C\u3059\u308B\u524D\u306B\u6709\u52B9\u306A\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002 +ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg=\u4FDD\u5B58\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 +ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306E\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F +ExtractUnallocAction.progress.extractUnalloc.title=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D +ExtractUnallocAction.progress.displayName.cancelling.text=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +ExtractUnallocAction.processing.counter.msg={0}\uFF0F{1} MBs\u3092\u51E6\u7406\u4E2D +ExtractUnallocAction.done.notifyMsg.completedExtract.title=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u62BD\u51FA\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 +ExtractUnallocAction.done.notifyMsg.completedExtract.msg=\u30D5\u30A1\u30A4\u30EB\u306F{0}\u3078\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F +ExtractUnallocAction.done.errMsg.title=\u62BD\u51FA\u30A8\u30E9\u30FC +ExtractUnallocAction.done.errMsg.msg=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u3092\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +DirectoryTreeFilterNode.action.collapseAll.text=\u3059\u3079\u3066\u30B3\u30E9\u30D7\u30B9 +ExtractAction.done.notifyMsg.extractErr=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A {0} \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index 1fa77f5940..cabc5cc3d4 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -631,11 +631,18 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat //set node, wrap in filter node first to filter out children Node drfn = new DataResultFilterNode(originNode, DirectoryTreeTopComponent.this.em); Node kffn = new KnownFileFilterNode(drfn, KnownFileFilterNode.getSelectionContext(originNode)); - if(originNode instanceof DisplayableItemNode) { - dataResult.setNode(new TableFilterNode(kffn, true, ((DisplayableItemNode) originNode).getItemType())); - } else { - dataResult.setNode(new TableFilterNode(kffn, true)); - } + /* + * TODO (AUT-1849): Correct or remove peristent column + * reordering code + * + * The following conditional was added to support this + * feature. + */ +// if(originNode instanceof DisplayableItemNode) { +// dataResult.setNode(new TableFilterNode(kffn, true, ((DisplayableItemNode) originNode).getItemType())); +// } else { + dataResult.setNode(new TableFilterNode(kffn, true)); +// } String displayName = ""; Content content = originNode.getLookup().lookup(Content.class); @@ -772,7 +779,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat Node imagesNode = imagesNodeOrig.getNode(); - DataSourcesNode.DataSourcesNodeChildren contentRootChildren = (DataSourcesNode.DataSourcesNodeChildren) imagesNode.getChildren(); + DataSourcesNode.DataSourcesNodeChildren contentRootChildren = (DataSourcesNode.DataSourcesNodeChildren) imagesNode.getChildren(); contentRootChildren.refreshContentKeys(); //final TreeView tree = getTree(); diff --git a/Core/src/org/sleuthkit/autopsy/events/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/events/Bundle_ja.properties new file mode 100644 index 0000000000..ec61e857ea --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/events/Bundle_ja.properties @@ -0,0 +1,10 @@ +MessageServiceConnectionInfo.ConnectionCheck.Everything=\u30DB\u30B9\u30C8\u540D\u3001\u30DD\u30FC\u30C8\u756A\u53F7\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7121\u52B9\u3067\u3059 +MessageServiceConnectionInfo.ConnectionCheck.Hostname=\u7121\u52B9\u306A\u30DB\u30B9\u30C8\u540D +MessageServiceConnectionInfo.ConnectionCheck.Port=\u7121\u52B9\u306A\u30DD\u30FC\u30C8\u756A\u53F7 +MessageServiceConnectionInfo.ConnectionCheck.Username=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FC\u540D +MessageServiceConnectionInfo.ConnectionCheck.Password=\u7121\u52B9\u306A\u30D1\u30B9\u30EF\u30FC\u30C9 +MessageServiceConnectionInfo.ConnectionCheck.UsernameAndPassword=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9 +MessageServiceConnectionInfo.ConnectionCheck.HostnameOrPort=\u7121\u52B9\u306A\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306F\u30DD\u30FC\u30C8\u756A\u53F7 +MessageServiceConnectionInfo.MissingHostname=\u30DB\u30B9\u30C8\u540D\u304C\u5FC5\u8981\u3067\u3059\u3002 +MessageServiceConnectionInfo.MissingUsername=\u30E6\u30FC\u30B6\u30FC\u540D\u304C\u5FC5\u8981\u3067\u3059\u3002 +MessageServiceConnectionInfo.MissingPassword=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002 \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties index 3099e29273..b9702f4b10 100644 --- a/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties @@ -9,7 +9,7 @@ ExternalResults.Artifact.addAttribute.exception.msg2.text=\u5F15\u6570\u5024\u30 ExternalResultsImporter.findFileInCaseDatabase.errMsg1.text=\u30DA\u30A2\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9{0}\u304C\u66D6\u6627\u3067\u3059\u3002\u6700\u521D\u306B\u898B\u3064\u3051\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u5229\u7528\u3057\u307E\u3059\u3002 ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg1.text={0}\u3092\u76F8\u5BFE\u30D1\u30B9\u306B\u5909\u63DB\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{1}\u306E\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u3042\u308A\u307E\u305B\u3093\u3002 ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg2.text={0}\u306F\u30B1\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{1}\u306E\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u7D76\u5BFE\u30D1\u30B9\u3068\u4E88\u60F3\u3055\u308C\u3066\u3044\u307E\u3059\u3002 -ExternalResultsImporter.importArtifacts.caseErrMsg1.text={3}\u306E{2}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3078\u3001{0}\u5C5E\u6027\u3001\u30D0\u30EA\u30E5\u30FC\uFF1D{1}\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u5C5E\u6027\u5024\u578B\uFF1A{4} +ExternalResultsImporter.importArtifacts.caseErrMsg1.text={3}\u306E{2}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u306E{0}\u5C5E\u6027\u3001\u30D0\u30EA\u30E5\u30FC\uFF1D{1}\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u5C5E\u6027\u5024\u578B\uFF1A{4} ExternalResultsImporter.importDerivedFiles.errMsg1.text={0}\u306B\u6D3E\u751F\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30DA\u30A2\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB{1}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 ExternalResultsImporter.importDerivedFiles.errMsg2.text={0}\u306B\u6D3E\u751F\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 ExternalResultsImporter.importDerivedFiles.errMsg3.text={0}\u306B\u6D3E\u751F\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3067\u306E\u30AF\u30A8\u30EA\u30FC\uFF0F\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 @@ -17,11 +17,11 @@ ExternalResultsImporter.importReports.errMsg1.text={0}\u306B\u30EC\u30DD\u30FC\u ExternalResultsImporter.importReports.errMsg2.text={0}\u306B\u30EC\u30DD\u30FC\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExternalResultsXMLParser.parse.errMsg2.text={0}\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExternalResults.Artifact.addAttribute.exception.msg3.text=\u5024\u578B\u5F15\u6570\u304C\u7A7A\u767D\u3067\u3059\u3002 -ExternalResultsImporter.importArtifacts.errMsg1.text={1}\u304B\u3089{0}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -ExternalResultsImporter.importArtifacts.errMsg2.text={1}\u304B\u3089{0}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExternalResultsImporter.importArtifacts.errMsg1.text={1}\u306E{0}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ExternalResultsImporter.importArtifacts.errMsg2.text={1}\u306E{0}\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B1\u30FC\u30B9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExternalResultsXMLParser.getChildElement.errMsg1.text={2}\u306B\u3066\u8907\u6570\u306E{1}\u30A8\u30EC\u30E1\u30F3\u30C8\u306E{0}\u30C1\u30E3\u30A4\u30EB\u30C9\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002\u4E00\u756A\u76EE\u4EE5\u5916\u306F\u7121\u8996\u3057\u307E\u3059\u3002 ExternalResultsXMLParser.getChildElementContent.errMsg1.text={2}\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u306A\u304F\u3001{1}\u30C1\u30E3\u30A4\u30EB\u30C9\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u3042\u308B\u3001{0}\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 -ExternalResultsXMLParser.getChildElementContent.errMsg2.text={2}\u306B\u3066{1}\u30C1\u30E3\u30A4\u30EB\u30C9\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u6B20\u843D\u3057\u305F{0}\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 -ExternalResultsXMLParser.parse.errMsg1.text={1}\u306B\u3066{0}\u30EB\u30FC\u30C8\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ExternalResultsXMLParser.getChildElementContent.errMsg2.text={2}\u306B\u3066{1}\u30C1\u30E3\u30A4\u30EB\u30C9\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u306A\u3044{0}\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 +ExternalResultsXMLParser.parse.errMsg1.text={1}\u306E{0}\u30EB\u30FC\u30C8\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 ExternalResultsXMLParser.parseArtifactAttributes.errMsg1.text={1}\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u306A\u3044{0}\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 ExternalResultsXMLParser.parseAttributeValueType.errMsg1.text={2}\u30A8\u30EC\u30E1\u30F3\u30C8\u306E{1}\u5C5E\u6027\u306B\u5BFE\u3057\u3066\u3001\u8A8D\u8B58\u3055\u308C\u306A\u3044\u30D0\u30EA\u30E5\u30FC{0}\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java index 35ae84f9ff..5b510519ed 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java @@ -1,14 +1,25 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Autopsy Forensic Browser + * + * Copyright 2011-2016 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.sleuthkit.autopsy.modules.UserArtifacts; import com.sun.media.jfxmedia.logging.Logger; import java.util.List; -import org.openide.util.Exceptions; -import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.services.Blackboard.BlackboardException; import org.sleuthkit.autopsy.casemodule.services.FileManager; @@ -17,24 +28,18 @@ import org.sleuthkit.autopsy.ingest.DataSourceIngestModuleProgress; import org.sleuthkit.autopsy.ingest.IngestJobContext; import org.sleuthkit.autopsy.ingest.IngestMessage; import org.sleuthkit.autopsy.ingest.IngestServices; -import org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule; -import org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; -import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE; import org.sleuthkit.datamodel.BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.TskCoreException; -import org.sleuthkit.datamodel.TskDataException; /** - * - * @author oliver + * Test module that creates new artifact and attribute types. */ public class UserArtifactIngestModule implements DataSourceIngestModule { - private IngestJobContext context = null; private BlackboardArtifact.Type type1, type2; @Override @@ -71,18 +76,13 @@ public class UserArtifactIngestModule implements DataSourceIngestModule { "Test", //NON-NLS art1)); return ProcessResult.OK; - } catch (TskCoreException ex) { - return ProcessResult.ERROR; - } catch (TskDataException ex) { - return ProcessResult.ERROR; - } catch (BlackboardException ex) { + } catch (TskCoreException | BlackboardException ex) { return ProcessResult.ERROR; } } @Override public void startUp(IngestJobContext context) throws IngestModuleException { - this.context = context; try { type1 = Case.getCurrentCase().getServices().getBlackboard().addArtifactType("This is", "a test"); //NON-NLS type2 = Case.getCurrentCase().getServices().getBlackboard().addArtifactType("Another", "kinda test"); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java index f7e6b010d7..b63d9f928a 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java @@ -1,25 +1,35 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Autopsy Forensic Browser + * + * Copyright 2011-2016 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.sleuthkit.autopsy.modules.UserArtifacts; import org.openide.util.NbBundle; -import org.openide.util.lookup.ServiceProvider; import org.python.apache.xmlcommons.Version; import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; -import org.sleuthkit.autopsy.ingest.IngestModuleFactory; import org.sleuthkit.autopsy.ingest.IngestModuleFactoryAdapter; import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; /** - * - * @author oliver + * Factory for test module that creates new artifact and attribute types. */ //@ServiceProvider(service = IngestModuleFactory.class) public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter { - + static String getModuleName() { return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "UserArtifactIngestModuleFactory.moduleName"); } @@ -33,16 +43,17 @@ public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter public String getModuleDescription() { return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "UserArtifactIngestModuleFactory.moduleDescription"); } - + @Override public String getModuleVersionNumber() { return Version.getVersion(); } - + @Override public DataSourceIngestModule createDataSourceIngestModule(IngestModuleIngestJobSettings ingestOptions) { return new UserArtifactIngestModule(); } + @Override public boolean isDataSourceIngestModuleFactory() { return true; diff --git a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java index 2e1ba91472..de946ffd0f 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java @@ -79,9 +79,9 @@ public final class ExifParserFileIngestModule implements FileIngestModule { private Blackboard blackboard; ExifParserFileIngestModule() { - supportedMimeTypes.add("audio/x-wav"); - supportedMimeTypes.add("image/jpeg"); - supportedMimeTypes.add("image/tiff"); + supportedMimeTypes.add("audio/x-wav"); //NON-NLS + supportedMimeTypes.add("image/jpeg"); //NON-NLS + supportedMimeTypes.add("image/tiff"); //NON-NLS } @Override diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java index f44a9e7c0b..fa0a090fdc 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java @@ -166,7 +166,7 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel jPanel1.setPreferredSize(new java.awt.Dimension(687, 450)); - saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/fileextmismatch/save16.png"))); // NOI18N + saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/fileextmismatch/save16.png"))); // NOI18N NON-NLS saveButton.setText(org.openide.util.NbBundle.getMessage(FileExtMismatchSettingsPanel.class, "FileExtMismatchSettingsPanel.saveButton.text")); // NOI18N saveButton.setEnabled(false); saveButton.addActionListener(new java.awt.event.ActionListener() { diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdGlobalSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdGlobalSettingsPanel.java index e0653b5947..0b277672a2 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdGlobalSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdGlobalSettingsPanel.java @@ -444,10 +444,10 @@ final class FileTypeIdGlobalSettingsPanel extends IngestModuleGlobalSettingsPane filesSetNameTextField.setText(org.openide.util.NbBundle.getMessage(FileTypeIdGlobalSettingsPanel.class, "FileTypeIdGlobalSettingsPanel.filesSetNameTextField.text")); // NOI18N - ingestRunningWarningLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/filetypeid/warning16.png"))); // NOI18N + ingestRunningWarningLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/filetypeid/warning16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(ingestRunningWarningLabel, org.openide.util.NbBundle.getMessage(FileTypeIdGlobalSettingsPanel.class, "FileTypeIdGlobalSettingsPanel.ingestRunningWarningLabel.text")); // NOI18N - jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + jLabel1.setFont(jLabel1.getFont().deriveFont(Font.BOLD, 11)); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(FileTypeIdGlobalSettingsPanel.class, "FileTypeIdGlobalSettingsPanel.jLabel1.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(FileTypeIdGlobalSettingsPanel.class, "FileTypeIdGlobalSettingsPanel.jLabel2.text")); // NOI18N @@ -624,7 +624,7 @@ final class FileTypeIdGlobalSettingsPanel extends IngestModuleGlobalSettingsPane byte[] signatureBytes; if (FileType.Signature.Type.RAW == sigType) { try { - sigString = sigString.replaceAll("\\s", ""); + sigString = sigString.replaceAll("\\s", ""); //NON-NLS signatureBytes = DatatypeConverter.parseHexBinary(sigString); } catch (IllegalArgumentException ex) { JOptionPane.showMessageDialog(null, diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/UserDefinedFileTypesManager.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/UserDefinedFileTypesManager.java index c1b0dfe969..5dd48f58f2 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/UserDefinedFileTypesManager.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/UserDefinedFileTypesManager.java @@ -68,7 +68,7 @@ final class UserDefinedFileTypesManager { private static final String SIGNATURE_TYPE_ATTRIBUTE = "type"; //NON-NLS private static final String BYTES_TAG_NAME = "Bytes"; //NON-NLS private static final String OFFSET_TAG_NAME = "Offset"; //NON-NLS - private static final String RELATIVE_ATTRIBUTE = "RelativeToStart"; + private static final String RELATIVE_ATTRIBUTE = "RelativeToStart"; //NON-NLS private static final String INTERESTING_FILES_SET_TAG_NAME = "InterestingFileSset"; //NON-NLS private static final String ALERT_ATTRIBUTE = "alert"; //NON-NLS private static final String ENCODING_FOR_XML_FILE = "UTF-8"; //NON-NLS @@ -230,8 +230,8 @@ final class UserDefinedFileTypesManager { fileTypes.add(fileType); // Add rule for .tga - byteArray = DatatypeConverter.parseHexBinary("54525545564953494F4E2D5846494C452E00"); - fileType = new FileType("image/x-tga", new Signature(byteArray, 17, false), "", false); + byteArray = DatatypeConverter.parseHexBinary("54525545564953494F4E2D5846494C452E00"); //NON-NLS + fileType = new FileType("image/x-tga", new Signature(byteArray, 17, false), "", false); //NON-NLS fileTypes.add(fileType); } // parseHexBinary() throws this if the argument passed in is not Hex diff --git a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashLookupSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashLookupSettingsPanel.java index f55ab6ba68..6d336b290b 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashLookupSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashLookupSettingsPanel.java @@ -506,7 +506,7 @@ public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPan org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.jLabel6.text")); // NOI18N - jButton3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N + jButton3.setFont(jButton3.getFont().deriveFont(Font.PLAIN, 14)); org.openide.awt.Mnemonics.setLocalizedText(jButton3, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.jButton3.text")); // NOI18N setMinimumSize(new java.awt.Dimension(700, 430)); @@ -514,7 +514,7 @@ public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPan jPanel1.setPreferredSize(new java.awt.Dimension(671, 430)); - ingestWarningLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/warning16.png"))); // NOI18N + ingestWarningLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/warning16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(ingestWarningLabel, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.ingestWarningLabel.text")); // NOI18N hashSetTable.setModel(new javax.swing.table.DefaultTableModel( @@ -534,7 +534,7 @@ public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPan }); jScrollPane1.setViewportView(hashSetTable); - deleteDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/delete16.png"))); // NOI18N + deleteDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/delete16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(deleteDatabaseButton, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.deleteDatabaseButton.text")); // NOI18N deleteDatabaseButton.setMaximumSize(new java.awt.Dimension(140, 25)); deleteDatabaseButton.setMinimumSize(new java.awt.Dimension(140, 25)); @@ -545,7 +545,7 @@ public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPan } }); - importDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/import16.png"))); // NOI18N + importDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/import16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(importDatabaseButton, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.importDatabaseButton.text")); // NOI18N importDatabaseButton.setMaximumSize(new java.awt.Dimension(140, 25)); importDatabaseButton.setMinimumSize(new java.awt.Dimension(140, 25)); @@ -593,7 +593,7 @@ public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPan org.openide.awt.Mnemonics.setLocalizedText(optionsLabel, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.optionsLabel.text")); // NOI18N - createDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/new16.png"))); // NOI18N + createDatabaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/modules/hashdatabase/new16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(createDatabaseButton, org.openide.util.NbBundle.getMessage(HashLookupSettingsPanel.class, "HashLookupSettingsPanel.createDatabaseButton.text")); // NOI18N createDatabaseButton.setMaximumSize(new java.awt.Dimension(140, 25)); createDatabaseButton.setMinimumSize(new java.awt.Dimension(140, 25)); diff --git a/Core/src/org/sleuthkit/autopsy/modules/iOS/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/iOS/Bundle.properties index 183b0ba88a..8909d23e0e 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/iOS/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/iOS/Bundle.properties @@ -1,2 +1,5 @@ iOSModuleFactory.moduleName=iOS Analyzer iOSModuleFactory.moduleDescription=Extracts system and 3rd party app data +TextMessageAnalyzer.bbAttribute.incoming=Incoming +TextMessageAnalyzer.bbAttribute.outgoing=Outgoing +TextMessageAnalyzer.bbAttribute.smsMessage=SMS Message diff --git a/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java index 0412e2e303..44c08ae0cf 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java +++ b/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java @@ -116,17 +116,17 @@ class TextMessageAnalyzer { // @@@ NEed to put into more specific TO or FROM if (type.equals("1")) { - bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DIRECTION, moduleName, "Incoming")); + bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DIRECTION, moduleName, NbBundle.getMessage(this.getClass(), "TextMessageAnalyzer.bbAttribute.incoming"))); bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM, moduleName, address)); } else { - bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DIRECTION, moduleName, "Outgoing")); + bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DIRECTION, moduleName, NbBundle.getMessage(this.getClass(), "TextMessageAnalyzer.bbAttribute.outgoing"))); bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO, moduleName, address)); } bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME, moduleName, date)); bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DIRECTION, moduleName, type)); bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SUBJECT, moduleName, subject)); bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_TEXT, moduleName, body)); - bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE, moduleName, "SMS Message")); + bba.addAttribute(new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE, moduleName, NbBundle.getMessage(this.getClass(), "TextMessageAnalyzer.bbAttribute.smsMessage"))); try { // index the artifact for keyword search diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle_ja.properties index ae17fa6dc4..e84363de1c 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle_ja.properties @@ -14,7 +14,6 @@ FilesSetRulePanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\uFF1A FilesSetRulePanel.jLabel2.text=\u30CD\u30FC\u30E0\u30D1\u30BF\u30FC\u30F3\uFF1A FilesSetRulePanel.jLabel3.text=\u30D1\u30B9\u30D1\u30BF\u30FC\u30F3\uFF1A FilesSetRulePanel.messages.emptyNameFilter=\u7591\u308F\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u30BB\u30C3\u30C8\u30EB\u30FC\u30EB\u306F\u691C\u7D22\u3059\u308B\u540D\u524D\u304C\u5FC5\u8981\u3067\u3059\u3002 -FilesSetRulePanel.messages.filesSetRulesMustBeNamed=\u7591\u308F\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u30BB\u30C3\u30C8\u30EB\u30FC\u30EB\u306F\u540D\u524D\u304C\u5FC5\u8981\u3067\u3059\u3002 FilesSetRulePanel.messages.invalidCharInName=\u6B63\u898F\u8868\u73FE\u4EE5\u5916\u306F\\\u3001/\u3001\:\u3001*\u3001?\u3001"\u3001<\u3001>\u3092\u540D\u524D\u306B\u542B\u3081\u307E\u305B\u3093\u3002 FilesSetRulePanel.messages.invalidCharInPath=\u6B63\u898F\u8868\u73FE\u4EE5\u5916\u306F\\\u3001\:\u3001*\u3001?\u3001"\u3001<\u3001>\u3092\u30D1\u30B9\u306B\u542B\u3081\u307E\u305B\u3093\u3002 FilesSetRulePanel.messages.invalidNameRegex=\u6B63\u898F\u8868\u73FE\u306F\u6709\u52B9\u306A\u540D\u524D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF1A\n\n{0} diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java index bb89fba38f..ae93cbbc74 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java @@ -130,7 +130,7 @@ final class FilesIdentifierIngestModule implements FileIngestModule { IngestServices.getInstance().fireModuleDataEvent(new ModuleDataEvent(moduleName, BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT, Collections.singletonList(artifact))); } catch (TskCoreException ex) { - FilesIdentifierIngestModule.logger.log(Level.SEVERE, "Error posting to the blackboard", ex); //NOI18N + FilesIdentifierIngestModule.logger.log(Level.SEVERE, "Error posting to the blackboard", ex); //NOI18N NON-NLS } } } diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java index 4a77379207..f45b4e8287 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java @@ -403,7 +403,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { org.openide.awt.Mnemonics.setLocalizedText(pathRegexCheckBox, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.pathRegexCheckBox.text")); // NOI18N - pathSeparatorInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/info-icon-16.png"))); // NOI18N + pathSeparatorInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/info-icon-16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(pathSeparatorInfoLabel, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.pathSeparatorInfoLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel4.text")); // NOI18N diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsManager.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsManager.java index 3a09b34045..781846cabe 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsManager.java +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsManager.java @@ -258,11 +258,11 @@ final class InterestingItemDefsManager extends Observable { if (!rules.containsKey(rule.getUuid())) { rules.put(rule.getUuid(), rule); } else { - logger.log(Level.SEVERE, "Found duplicate rule {0} for set named {1} in interesting file sets definition file at {2}, discarding malformed set", new Object[]{rule.getUuid(), setName, filePath}); //NOI18N + logger.log(Level.SEVERE, "Found duplicate rule {0} for set named {1} in interesting file sets definition file at {2}, discarding malformed set", new Object[]{rule.getUuid(), setName, filePath}); //NOI18N NON-NLS return; } } else { - logger.log(Level.SEVERE, "Found malformed rule for set named {0} in interesting file sets definition file at {1}, discarding malformed set", new Object[]{setName, filePath}); //NOI18N + logger.log(Level.SEVERE, "Found malformed rule for set named {0} in interesting file sets definition file at {1}, discarding malformed set", new Object[]{setName, filePath}); //NOI18N NON-NLS return; } } @@ -294,7 +294,7 @@ final class InterestingItemDefsManager extends Observable { String content = elem.getTextContent(); FilesSet.Rule.FullNameFilter nameFilter; String regex = elem.getAttribute(FilesSetXML.REGEX_ATTR); - if ((!regex.isEmpty() && regex.equalsIgnoreCase("true")) || content.contains("*")) { // NON_NLS + if ((!regex.isEmpty() && regex.equalsIgnoreCase("true")) || content.contains("*")) { // NON-NLS Pattern pattern = compileRegex(content); if (pattern != null) { nameFilter = new FilesSet.Rule.FullNameFilter(pattern); @@ -352,7 +352,7 @@ final class InterestingItemDefsManager extends Observable { String content = elem.getTextContent(); FilesSet.Rule.ExtensionFilter extFilter; String regex = elem.getAttribute(FilesSetXML.REGEX_ATTR); - if ((!regex.isEmpty() && regex.equalsIgnoreCase("true")) || content.contains("*")) { // NON_NLS + if ((!regex.isEmpty() && regex.equalsIgnoreCase("true")) || content.contains("*")) { // NON-NLS Pattern pattern = compileRegex(content); if (pattern != null) { extFilter = new FilesSet.Rule.ExtensionFilter(pattern); diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsPanel.java index b4e6d5ad89..6e4cd91148 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/InterestingItemDefsPanel.java @@ -418,7 +418,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.jLabel6.text")); // NOI18N - newRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/add16.png"))); // NOI18N + newRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/add16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(newRuleButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.newRuleButton.text")); // NOI18N newRuleButton.setEnabled(false); newRuleButton.addActionListener(new java.awt.event.ActionListener() { @@ -431,7 +431,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp org.openide.awt.Mnemonics.setLocalizedText(filesRadioButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.filesRadioButton.text")); // NOI18N filesRadioButton.setEnabled(false); - editRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/edit16.png"))); // NOI18N + editRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/edit16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(editRuleButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.editRuleButton.text")); // NOI18N editRuleButton.setEnabled(false); editRuleButton.addActionListener(new java.awt.event.ActionListener() { @@ -452,7 +452,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp setDescriptionTextArea.setRows(2); setDescScrollPanel.setViewportView(setDescriptionTextArea); - editSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/edit16.png"))); // NOI18N + editSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/edit16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(editSetButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.editSetButton.text")); // NOI18N editSetButton.setEnabled(false); editSetButton.addActionListener(new java.awt.event.ActionListener() { @@ -500,7 +500,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp org.openide.awt.Mnemonics.setLocalizedText(bothRadioButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.bothRadioButton.text")); // NOI18N bothRadioButton.setEnabled(false); - deleteSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/delete16.png"))); // NOI18N + deleteSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/delete16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(deleteSetButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.deleteSetButton.text")); // NOI18N deleteSetButton.setEnabled(false); deleteSetButton.addActionListener(new java.awt.event.ActionListener() { @@ -509,7 +509,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp } }); - deleteRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/delete16.png"))); // NOI18N + deleteRuleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/delete16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(deleteRuleButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.deleteRuleButton.text")); // NOI18N deleteRuleButton.setEnabled(false); deleteRuleButton.addActionListener(new java.awt.event.ActionListener() { @@ -518,7 +518,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp } }); - newSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/add16.png"))); // NOI18N + newSetButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/add16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(newSetButton, org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.newSetButton.text")); // NOI18N newSetButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -546,7 +546,7 @@ final class InterestingItemDefsPanel extends IngestModuleGlobalSettingsPanel imp jTextArea1.setEditable(false); jTextArea1.setBackground(new java.awt.Color(240, 240, 240)); jTextArea1.setColumns(20); - jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N + jTextArea1.setFont(jTextArea1.getFont().deriveFont(Font.PLAIN, 11)); jTextArea1.setLineWrap(true); jTextArea1.setRows(3); jTextArea1.setText(org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class, "InterestingItemDefsPanel.jTextArea1.text")); // NOI18N diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java index bb8d8ed62f..f848838d02 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java @@ -214,7 +214,7 @@ final class PhotoRecCarverFileIngestModule implements FileIngestModule { "\"" + outputDirPath.toAbsolutePath() + File.separator + PHOTOREC_RESULTS_BASE + "\"", "/cmd", // NON-NLS "\"" + tempFilePath.toFile() + "\"", - "search"); // NON_NLS + "search"); // NON-NLS // Add environment variable to force PhotoRec to run with the same permissions Autopsy uses processAndSettings.environment().put("__COMPAT_LAYER", "RunAsInvoker"); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java index fabb91e94f..caff08b50c 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java +++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java @@ -149,7 +149,7 @@ class PhotoRecCarverOutputParser { } return fileManager.addCarvedFiles(carvedFileContainer); } catch (NumberFormatException | TskCoreException ex) { - logger.log(Level.SEVERE, "Error parsing PhotoRec output and inserting it into the database: {0}", ex); //NON_NLS + logger.log(Level.SEVERE, "Error parsing PhotoRec output and inserting it into the database: {0}", ex); //NON-NLS } List empty = Collections.emptyList(); diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java index 74cda734bf..1d2925060e 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java @@ -173,7 +173,7 @@ class EvalFileObj extends EvaluatableObject { if (h.getSimpleHashValue() != null) { if (h.getType().getValue().equals("MD5")) { //NON-NLS String newClause = ""; - if (h.getSimpleHashValue().getValue().toString().toLowerCase().contains("##comma##")) { + if (h.getSimpleHashValue().getValue().toString().toLowerCase().contains("##comma##")) { //NON-NLS String[] parts = h.getSimpleHashValue().getValue().toString().toLowerCase().split("##comma##"); //NON-NLS String hashList = ""; for (String s : parts) { @@ -182,7 +182,7 @@ class EvalFileObj extends EvaluatableObject { } hashList += "\'" + s + "\'"; } - newClause = "md5 IN (" + hashList + ")"; + newClause = "md5 IN (" + hashList + ")"; //NON-NLS } else { newClause = "md5=\'" + h.getSimpleHashValue().getValue().toString().toLowerCase() + "\'"; //NON-NLS } diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle.properties index 3d27e2869b..7d56265f3d 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle.properties @@ -5,4 +5,8 @@ VMExtractorIngestModule.cannotCreateOutputDir.message=Unable to create output di VMExtractorIngestModule.addedVirtualMachineImage.message=Added virtual machine image {0} VMExtractorIngestModule.searchingImage.message=Searching image for virtual machine files VMExtractorIngestModule.exportingToDisk.message=Exporting virtual machine files to disk -VMExtractorIngestModule.queuingIngestJobs.message=Queuing ingest jobs for extracted virtual machines \ No newline at end of file +VMExtractorIngestModule.queuingIngestJobs.message=Queuing ingest jobs for extracted virtual machines +VMExtractorIngestModule.msgNotify.failedExtractVM.title.txt=Failed to extract virtual machine file +VMExtractorIngestModule.msgNotify.failedExtractVM.msg.txt=Failed to write virtual machine file {0} to disk. +VMExtractorIngestModule.msgNotify.failedIngestVM.title.txt=Failed to ingest virtual machine +VMExtractorIngestModule.msgNotify.failedIngestVM.msg.txt=Failed to ingest virtual machine file {0} \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java index 73fdf77989..7e46777f8e 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java @@ -81,7 +81,7 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { } } if (null == parentDataSourceId) { - throw new IngestModuleException(String.format("Data source %s missing unique id", context.getDataSource().getName())); + throw new IngestModuleException(String.format("Data source %s missing unique id", context.getDataSource().getName())); //NON-NLS } SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); String timeStamp = dateFormat.format(Calendar.getInstance().getTime()); @@ -108,19 +108,19 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { // Not sure how long it will take for search to complete. progressBar.switchToIndeterminate(); - logger.log(Level.INFO, "Looking for virtual machine files in data source {0}", dataSource.getName()); + logger.log(Level.INFO, "Looking for virtual machine files in data source {0}", dataSource.getName()); //NON-NLS try { // look for all VM files vmFiles = findVirtualMachineFiles(dataSource); } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Error querying case database", ex); + logger.log(Level.SEVERE, "Error querying case database", ex); //NON-NLS return ProcessResult.ERROR; } if (vmFiles.isEmpty()) { // no VM files found - logger.log(Level.INFO, "No virtual machine files found in data source {0}", dataSource.getName()); + logger.log(Level.INFO, "No virtual machine files found in data source {0}", dataSource.getName()); //NON-NLS return ProcessResult.OK; } // display progress for saving each VM file to disk @@ -133,7 +133,7 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { break; } - logger.log(Level.INFO, "Saving virtual machine file {0} to disk", vmFile.getName()); + logger.log(Level.INFO, "Saving virtual machine file {0} to disk", vmFile.getName()); //NON-NLS // get vmFolderPathInsideTheImage to the folder where VM is located String vmFolderPathInsideTheImage = vmFile.getParentPath(); @@ -155,23 +155,22 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { try { writeVirtualMachineToDisk(vmFile, outputFolderForThisVM); } catch (Exception ex) { - logger.log(Level.SEVERE, "Failed to write virtual machine file "+vmFile.getName()+" to folder "+outputFolderForThisVM, ex); - MessageNotifyUtil.Notify.error("Failed to extract virtual machine file", String.format("Failed to write virtual machine file %s to disk", vmFile.getName())); + logger.log(Level.SEVERE, "Failed to write virtual machine file "+vmFile.getName()+" to folder "+outputFolderForThisVM, ex); //NON-NLS + MessageNotifyUtil.Notify.error(NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.msgNotify.failedExtractVM.title.txt"), + NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.msgNotify.failedExtractVM.msg.txt", vmFile.getName())); } // Update progress bar numFilesSaved++; progressBar.progress(NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.exportingToDisk.message"), numFilesSaved); } - logger.log(Level.INFO, "Finished saving virtual machine files to disk"); + logger.log(Level.INFO, "Finished saving virtual machine files to disk"); //NON-NLS // update progress bar progressBar.switchToDeterminate(imageFolderToOutputFolder.size()); progressBar.progress(NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.queuingIngestJobs.message")); // this is for progress bar purposes because at this point we only know in advance how many job folders to ingest, not how many data sources. int numJobsQueued = 0; - // keeps track of number of VMs ingested. A job folder may contain multiple VMs. - int numDataSourcesQueued = 0; // start processing output folders after we are done writing out all vm files for (String folder : imageFolderToOutputFolder.values()) { if (context.dataSourceIngestIsCancelled()) { @@ -180,26 +179,25 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { List vmFilesToIngest = VirtualMachineFinder.identifyVirtualMachines(Paths.get(folder)); for (String file : vmFilesToIngest) { try { - logger.log(Level.INFO, "Ingesting virtual machine file {0} in folder {1}", new Object[]{file, folder}); + logger.log(Level.INFO, "Ingesting virtual machine file {0} in folder {1}", new Object[]{file, folder}); //NON-NLS - // for extracted virtual machines there is no manifest XML file to read data source ID from so we need to create one - numDataSourcesQueued++; - String dataSourceID = parentDataSourceId + "-VM" + numDataSourcesQueued; + // for extracted virtual machines there is no manifest XML file to read data source ID from so use parent data source ID. // ingest the data sources - ingestVirtualMachineImage(Paths.get(folder, file), dataSourceID); - logger.log(Level.INFO, "Ingest complete for virtual machine file {0} in folder {1}", new Object[]{file, folder}); + ingestVirtualMachineImage(Paths.get(folder, file), parentDataSourceId); + logger.log(Level.INFO, "Ingest complete for virtual machine file {0} in folder {1}", new Object[]{file, folder}); //NON-NLS } catch (InterruptedException ex) { - logger.log(Level.INFO, "Interrupted while ingesting virtual machine file "+file+" in folder "+folder, ex); + logger.log(Level.INFO, "Interrupted while ingesting virtual machine file "+file+" in folder "+folder, ex); //NON-NLS } catch (IOException ex) { - logger.log(Level.SEVERE, "Failed to ingest virtual machine file "+file+" in folder "+folder, ex); - MessageNotifyUtil.Notify.error("Failed to ingest virtual machine", String.format("Failed to ingest virtual machine file %s", file)); + logger.log(Level.SEVERE, "Failed to ingest virtual machine file "+file+" in folder "+folder, ex); //NON-NLS + MessageNotifyUtil.Notify.error(NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.msgNotify.failedIngestVM.title.txt"), + NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.msgNotify.failedIngestVM.msg.txt", file)); } } // Update progress bar numJobsQueued++; progressBar.progress(NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.queuingIngestJobs.message"), numJobsQueued); } - logger.log(Level.INFO, "VMExtractorIngestModule completed processing of data source {0}", dataSource.getName()); + logger.log(Level.INFO, "VMExtractorIngestModule completed processing of data source {0}", dataSource.getName()); //NON-NLS return ProcessResult.OK; } @@ -278,7 +276,7 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { List dataSourceContent = new ArrayList<>(dspCallback.vmDataSources); IngestJobSettings ingestJobSettings = new IngestJobSettings(context.getExecutionContext()); for (String warning : ingestJobSettings.getWarnings()) { - logger.log(Level.WARNING, String.format("Ingest job settings warning for virtual machine file %s : %s", vmFile.toString(), warning)); + logger.log(Level.WARNING, String.format("Ingest job settings warning for virtual machine file %s : %s", vmFile.toString(), warning)); //NON-NLS } IngestServices.getInstance().postMessage(IngestMessage.createMessage(IngestMessage.MessageType.INFO, VMExtractorIngestModuleFactory.getModuleName(), @@ -333,7 +331,7 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { @Override public void done(DataSourceProcessorCallback.DataSourceProcessorResult result, List errList, List content) { for (String error : errList) { - String logMessage = String.format("Data source processor error for virtual machine file %s: %s", vmFile.toString(), error); + String logMessage = String.format("Data source processor error for virtual machine file %s: %s", vmFile.toString(), error); //NON-NLS if (DataSourceProcessorCallback.DataSourceProcessorResult.CRITICAL_ERRORS == result) { logger.log(Level.SEVERE, logMessage); } else { diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinder.java b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinder.java index c971d63392..19f51d8ab6 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinder.java +++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinder.java @@ -50,7 +50,7 @@ public final class VirtualMachineFinder { vmFiltersList.add(virtualMachineFilter); } - private static final List VMDK_EXTS = Arrays.asList(new String[]{".vmdk"}); + private static final List VMDK_EXTS = Arrays.asList(new String[]{".vmdk"}); //NON-NLS private static final GeneralFilter vmdkFilter = new GeneralFilter(VMDK_EXTS, ""); private static final List vmdkFiltersList = new ArrayList<>(); @@ -135,7 +135,7 @@ public final class VirtualMachineFinder { // line doesn't have enough fields, can't be an extent descriptor continue; } - if (splited[0].equals("RW") || splited[0].equals("RDONLY") || splited[0].equals("NOACCESS")) { + if (splited[0].equals("RW") || splited[0].equals("RDONLY") || splited[0].equals("NOACCESS")) { //NON-NLS // found an extent descriptor // remove quotation marks around the file name String extentFileName = splited[FILE_NAME_FIELD_INDX_IN_EXTENT_DESCRIPTOR].replace("\"", ""); @@ -145,7 +145,7 @@ public final class VirtualMachineFinder { } } } catch (Exception ex) { - logger.log(Level.WARNING, String.format("Error while parsing vmdk descriptor file %s", file.toString()), ex); + logger.log(Level.WARNING, String.format("Error while parsing vmdk descriptor file %s", file.toString()), ex); //NON-NLS } return extentFiles; } diff --git a/Core/src/org/sleuthkit/autopsy/python/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/python/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/python/JythonModuleLoader.java b/Core/src/org/sleuthkit/autopsy/python/JythonModuleLoader.java index 93bd39d5d9..c9175f3754 100755 --- a/Core/src/org/sleuthkit/autopsy/python/JythonModuleLoader.java +++ b/Core/src/org/sleuthkit/autopsy/python/JythonModuleLoader.java @@ -74,7 +74,7 @@ public final class JythonModuleLoader { // add python modules from 'autospy/build/cluster/InternalPythonModules' folder // which are copied from 'autopsy/*/release/InternalPythonModules' folders. - for (File f : InstalledFileLocator.getDefault().locateAll("InternalPythonModules", JythonModuleLoader.class.getPackage().getName(), false)) { + for (File f : InstalledFileLocator.getDefault().locateAll("InternalPythonModules", JythonModuleLoader.class.getPackage().getName(), false)) { //NON-NLS Collections.addAll(pythonModuleDirs, f.listFiles()); } // add python modules from 'testuserdir/python_modules' folder @@ -127,7 +127,7 @@ public final class JythonModuleLoader { interpreter.exec("reload(" + moduleName + ")"); //NON-NLS // Importing the appropriate class from the Py Script which contains multiple classes. - interpreter.exec("from " + moduleName + " import " + className); + interpreter.exec("from " + moduleName + " import " + className); //NON-NLS interpreter.exec("obj = " + className + "()"); //NON-NLS T obj = interpreter.get("obj", interfaceClass); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/report/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/report/Bundle_ja.properties index 254310d0c5..c6c931baad 100644 --- a/Core/src/org/sleuthkit/autopsy/report/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/report/Bundle_ja.properties @@ -11,11 +11,9 @@ ReportVisualPanel2.advancedButton.text=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 ArtifactSelectionDialog.deselectAllButton.text=\u3059\u3079\u3066\u9078\u629E\u89E3\u9664 ArtifactSelectionDialog.selectAllButton.text=\u3059\u3079\u3066\u9078\u629E ReportGenerationPanel.closeButton.text=\u9589\u3058\u308B -ReportGenerationPanel.cancelAllButton.text=\u3059\u3079\u3066\u30AD\u30E3\u30F3\u30BB\u30EB ReportProgressPanel.reportLabel.text=\u30EC\u30DD\u30FC\u30C8\u30E9\u30D9\u30EB ReportProgressPanel.pathLabel.text=\u30D1\u30B9\u30E9\u30D9\u30EB ReportProgressPanel.separationLabel.text=- -ReportProgressPanel.cancelButton.toolTipText=\u30AD\u30E5\u30FC\u30A4\u30F3\u30B0 ReportProgressPanel.processingLabel.text=\u30D7\u30ED\u30BB\u30B7\u30F3\u30B0\u30E9\u30D9\u30EB ReportGenerationPanel.titleLabel.text=\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u30D7\u30ED\u30B0\u30EC\u30B9 ReportVisualPanel2.taggedResultsRadioButton.text=\u30BF\u30B0\u4ED8\u3051\u3055\u308C\u305F\u7D50\u679C @@ -59,7 +57,6 @@ ReportExcel.cellVal.examiner=\u8ABF\u67FB\u62C5\u5F53\u8005\uFF1A ReportExcel.cellVal.numImages=\u30A4\u30E1\u30FC\u30B8\u6570\uFF1A ReportGenerationPanel.confDlg.sureToClose.msg=\u3053\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u672C\u5F53\u306B\u9589\u3058\u307E\u3059\u304B\uFF1F\n\u5168\u3066\u306E\u30EC\u30DD\u30FC\u30C8\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3059\u3002 ReportGenerationPanel.confDlg.title.closing=\u9589\u3058\u3066\u3044\u307E\u3059 -ReportGenerationPanel.confDlg.cancelReports.msg=\u5168\u3066\u306E\u30EC\u30DD\u30FC\u30C8\u3092\u672C\u5F53\u306B\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059\u304B\uFF1F ReportGenerator.displayProgress.title.text=\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u30D7\u30ED\u30B0\u30EC\u30B9\u2026 ReportGenerator.progress.queryingDb.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u4E2D\u2026 ReportGenerator.progress.processingFile.text={0}\u3092\u51E6\u7406\u4E2D @@ -180,7 +177,6 @@ ReportWizardPanel1.finishButton.text=\u7D42\u4E86 ReportWizardPanel2.finishButton.text=\u7D42\u4E86 ReportHTML.writeSum.reportGenOn.text={0}\u306BHTML\u30EC\u30DD\u30FC\u30C8\u306F\u751F\u6210\u3055\u308C\u307E\u3057\u305F ReportHTML.writeSum.noCaseNum=\u30B1\u30FC\u30B9\u756A\u53F7\u304C\u3042\u308A\u307E\u305B\u3093 -ReportProgressPanel.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB ReportGenerator.errors.reportErrorTitle=\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F ReportGenerator.errors.reportErrorText=\u30EC\u30DD\u30FC\u30C8\u751F\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A ReportKML.getDesc.text=\u95A2\u9023\u30D5\u30A1\u30A4\u30EB\u306E\u5EA7\u6A19\u3092\u542B\u3080KML\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u30EC\u30DD\u30FC\u30C8\u3002\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306FGoogle Earth\u30D3\u30E5\u30FC\u306B\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002 diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java index f486cc5b50..064f39f044 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java @@ -157,7 +157,7 @@ class ReportGenerationPanel extends javax.swing.JPanel { reportScrollPane.setViewportView(reportPanel); - titleLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 11)); org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(ReportGenerationPanel.class, "ReportGenerationPanel.titleLabel.text")); // NOI18N titleSeparator.setForeground(new java.awt.Color(0, 0, 0)); diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportProgressPanel.java b/Core/src/org/sleuthkit/autopsy/report/ReportProgressPanel.java index 24baeafc0c..26776ee02e 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportProgressPanel.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportProgressPanel.java @@ -308,12 +308,12 @@ public class ReportProgressPanel extends javax.swing.JPanel { setMinimumSize(new java.awt.Dimension(486, 68)); - reportLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + reportLabel.setFont(reportLabel.getFont().deriveFont(Font.BOLD, 11)); org.openide.awt.Mnemonics.setLocalizedText(reportLabel, org.openide.util.NbBundle.getMessage(ReportProgressPanel.class, "ReportProgressPanel.reportLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(pathLabel, org.openide.util.NbBundle.getMessage(ReportProgressPanel.class, "ReportProgressPanel.pathLabel.text")); // NOI18N - processingLabel.setFont(new java.awt.Font("Tahoma", 2, 10)); // NOI18N + processingLabel.setFont(processingLabel.getFont().deriveFont(Font.ITALIC, 10)); org.openide.awt.Mnemonics.setLocalizedText(processingLabel, org.openide.util.NbBundle.getMessage(ReportProgressPanel.class, "ReportProgressPanel.processingLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(separationLabel, org.openide.util.NbBundle.getMessage(ReportProgressPanel.class, "ReportProgressPanel.separationLabel.text")); // NOI18N diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java index 9b6acfd092..7c2bc5193c 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java @@ -143,7 +143,7 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener { private void popupWarning(ReportModule module) { String moduleClassName = module.getClass().getSimpleName(); - logger.log(Level.WARNING, "Invalid ReportModule: {0}", moduleClassName); // NON_NLS + logger.log(Level.WARNING, "Invalid ReportModule: {0}", moduleClassName); // NON_NLS NON-NLS DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message( NbBundle.getMessage(ReportVisualPanel1.class, "ReportVisualPanel1.invalidModuleWarning", moduleClassName), NotifyDescriptor.ERROR_MESSAGE)); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java b/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java index c0c00be083..8d88a70630 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/FXMLConstructor.java @@ -85,16 +85,16 @@ public class FXMLConstructor { try { fxmlLoader.load(); } catch (IOException exception) { - LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, falling back on default Class Loader, and trying again.", exception); + LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, falling back on default Class Loader, and trying again.", exception); //NON-NLS try { fxmlLoader.setClassLoader(FXMLLoader.getDefaultClassLoader()); fxmlLoader.load(); } catch (IOException ex) { - LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); + LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); //NON-NLS } } } catch (MalformedURLException ex) { - LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); + LOGGER.log(Level.SEVERE, "FXMLConstructor was unable to load FXML, node initialization may not be complete.", ex); //NON-NLS } } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java b/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java index ef249ff1e8..131b8db003 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java @@ -63,7 +63,7 @@ public class PromptDialogManager { try { x = new Image(new URL("nbresloc:/org/netbeans/core/startup/frame.gif").openStream()); //NOI18N } catch (IOException ex) { - LOGGER.log(Level.WARNING, "Failed to load branded icon for progress dialog.", ex); //NOI18N + LOGGER.log(Level.WARNING, "Failed to load branded icon for progress dialog.", ex); //NOI18N NON-NLS } LOGO = x; } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomIn.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomIn.java index bd58c3ccb7..fec431efe3 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomIn.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomIn.java @@ -29,7 +29,7 @@ import org.sleuthkit.autopsy.timeline.TimeLineController; */ public class ZoomIn extends Action { - private static final Image MAGNIFIER_IN = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-in-green.png"); //NOI18N + private static final Image MAGNIFIER_IN = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-in-green.png"); //NOI18N NON-NLS @NbBundle.Messages({"ZoomIn.longText=Zoom in to view about half as much time.", "ZoomIn.action.text=Zoom in"}) diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomOut.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomOut.java index 19a6630c33..214c61441c 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomOut.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomOut.java @@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.timeline.datamodel.FilteredEventsModel; */ public class ZoomOut extends Action { - private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png"); //NOI18N + private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png"); //NOI18N NON-NLS @NbBundle.Messages({"ZoomOut.longText=Zoom out to view about 50% more time.", "ZoomOut.action.text=Zoom out"}) diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomToEvents.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomToEvents.java index 7bcc076936..340d9d8182 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomToEvents.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/ZoomToEvents.java @@ -31,7 +31,7 @@ import org.sleuthkit.autopsy.timeline.datamodel.FilteredEventsModel; */ public class ZoomToEvents extends Action { - private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png", 16, 16, true, true); //NOI18N + private static final Image MAGNIFIER_OUT = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-out-red.png", 16, 16, true, true); //NOI18N NON-NLS @NbBundle.Messages({"ZoomToEvents.action.text=Zoom to events", "ZoomToEvents.longText=Zoom out to show the nearest events."}) diff --git a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/EventStripe.java b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/EventStripe.java index 7a6bb4be42..ffd8338cf0 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/EventStripe.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/EventStripe.java @@ -191,6 +191,6 @@ public final class EventStripe implements EventBundle { @Override public String toString() { - return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}'; + return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}'; //NON-NLS } } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/FilteredEventsModel.java b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/FilteredEventsModel.java index 418e45f2ea..14a0d878f8 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/FilteredEventsModel.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/FilteredEventsModel.java @@ -111,7 +111,7 @@ public final class FilteredEventsModel { @GuardedBy("this") private final ReadOnlyObjectWrapper requestedZoomParamters = new ReadOnlyObjectWrapper<>(); - private final EventBus eventbus = new EventBus("Event_Repository_EventBus"); + private final EventBus eventbus = new EventBus("Event_Repository_EventBus"); //NON-NLS /** * The underlying repo for events. Atomic access to repo is synchronized @@ -374,7 +374,7 @@ public final class FilteredEventsModel { Set updatedEventIDs = repo.deleteTag(content.getId(), null, deletedTagInfo.getTagID(), tagged); return postTagsUpdated(updatedEventIDs); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "unable to determine tagged status of content.", ex); + LOGGER.log(Level.SEVERE, "unable to determine tagged status of content.", ex); //NON-NLS } return false; } @@ -387,7 +387,7 @@ public final class FilteredEventsModel { Set updatedEventIDs = repo.deleteTag(artifact.getObjectID(), artifact.getArtifactID(), deletedTagInfo.getTagID(), tagged); return postTagsUpdated(updatedEventIDs); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "unable to determine tagged status of artifact.", ex); + LOGGER.log(Level.SEVERE, "unable to determine tagged status of artifact.", ex); //NON-NLS } return false; } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/MiscTypes.java b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/MiscTypes.java index 6f59c8f981..35e49360d3 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/MiscTypes.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/MiscTypes.java @@ -137,7 +137,7 @@ public enum MiscTypes implements EventType, ArtifactEventType { return file.getName(); } } catch (TskCoreException ex) { - Logger.getLogger(MiscTypes.class.getName()).log(Level.SEVERE, "Exif event type failed to look up backing file name", ex); + Logger.getLogger(MiscTypes.class.getName()).log(Level.SEVERE, "Exif event type failed to look up backing file name", ex); //NON-NLS } return " error loading file name"; // NON-NLS }), diff --git a/Core/src/org/sleuthkit/autopsy/timeline/db/EventDB.java b/Core/src/org/sleuthkit/autopsy/timeline/db/EventDB.java index 42a7063d58..e708fe0b99 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/db/EventDB.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/db/EventDB.java @@ -232,7 +232,7 @@ public class EventDB { return rs.getInt("count"); // NON-NLS } } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error counting all events", ex); + LOGGER.log(Level.SEVERE, "Error counting all events", ex); //NON-NLS } finally { DBLock.unlock(); } @@ -270,15 +270,15 @@ public class EventDB { HashMap counts = new HashMap<>(); DBLock.lock(); try (Statement createStatement = con.createStatement(); - ResultSet rs = createStatement.executeQuery("SELECT tag_name_display_name, COUNT(DISTINCT tag_id) AS count FROM tags" - + " WHERE event_id IN (" + StringUtils.join(eventIDsWithTags, ", ") + ")" - + " GROUP BY tag_name_id" - + " ORDER BY tag_name_display_name");) { + ResultSet rs = createStatement.executeQuery("SELECT tag_name_display_name, COUNT(DISTINCT tag_id) AS count FROM tags" //NON-NLS + + " WHERE event_id IN (" + StringUtils.join(eventIDsWithTags, ", ") + ")" //NON-NLS + + " GROUP BY tag_name_id" //NON-NLS + + " ORDER BY tag_name_display_name");) { //NON-NLS while (rs.next()) { - counts.put(rs.getString("tag_name_display_name"), rs.getLong("count")); + counts.put(rs.getString("tag_name_display_name"), rs.getLong("count")); //NON-NLS } } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Failed to get tag counts by tag name.", ex); + LOGGER.log(Level.SEVERE, "Failed to get tag counts by tag name.", ex); //NON-NLS } finally { DBLock.unlock(); } @@ -327,7 +327,7 @@ public class EventDB { final String sqlWhere = SQLHelper.getSQLWhere(filter); DBLock.lock(); try (Statement stmt = con.createStatement(); //can't use prepared statement because of complex where clause - ResultSet rs = stmt.executeQuery(" SELECT (SELECT Max(time) FROM events " + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time <=" + start + " AND " + sqlWhere + ") AS start," + ResultSet rs = stmt.executeQuery(" SELECT (SELECT Max(time) FROM events " + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time <=" + start + " AND " + sqlWhere + ") AS start," //NON-NLS + "(SELECT Min(time) FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time >= " + end + " AND " + sqlWhere + ") AS end")) { // NON-NLS while (rs.next()) { @@ -382,7 +382,7 @@ public class EventDB { try (Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query)) { while (rs.next()) { - resultIDs.add(rs.getLong("event_id")); + resultIDs.add(rs.getLong("event_id")); //NON-NLS } } catch (SQLException sqlEx) { @@ -416,7 +416,7 @@ public class EventDB { DBLock.lock(); try (ResultSet rs = getDataSourceIDsStmt.executeQuery()) { while (rs.next()) { - long datasourceID = rs.getLong("datasource_id"); + long datasourceID = rs.getLong("datasource_id"); //NON-NLS hashSet.add(datasourceID); } } catch (SQLException ex) { @@ -432,8 +432,8 @@ public class EventDB { DBLock.lock(); try (ResultSet rs = getHashSetNamesStmt.executeQuery();) { while (rs.next()) { - long hashSetID = rs.getLong("hash_set_id"); - String hashSetName = rs.getString("hash_set_name"); + long hashSetID = rs.getLong("hash_set_id"); //NON-NLS + String hashSetName = rs.getString("hash_set_name"); //NON-NLS hashSets.put(hashSetID, hashSetName); } } catch (SQLException ex) { @@ -447,7 +447,7 @@ public class EventDB { void analyze() { DBLock.lock(); try (Statement createStatement = con.createStatement()) { - boolean b = createStatement.execute("analyze; analyze sqlite_master;"); + boolean b = createStatement.execute("analyze; analyze sqlite_master;"); //NON-NLS } catch (SQLException ex) { LOGGER.log(Level.SEVERE, "Failed to analyze events db.", ex); // NON-NLS } finally { @@ -575,35 +575,35 @@ public class EventDB { } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists hash_sets " - + "( hash_set_id INTEGER primary key," - + " hash_set_name VARCHAR(255) UNIQUE NOT NULL)"; + String sql = "CREATE TABLE if not exists hash_sets " //NON-NLS + + "( hash_set_id INTEGER primary key," //NON-NLS + + " hash_set_name VARCHAR(255) UNIQUE NOT NULL)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex); + LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex); //NON-NLS } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists hash_set_hits " - + "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, " - + " event_id INTEGER REFERENCES events(event_id) not null, " - + " PRIMARY KEY (hash_set_id, event_id))"; + String sql = "CREATE TABLE if not exists hash_set_hits " //NON-NLS + + "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, " //NON-NLS + + " event_id INTEGER REFERENCES events(event_id) not null, " //NON-NLS + + " PRIMARY KEY (hash_set_id, event_id))"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex); + LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex); //NON-NLS } initializeTagsTable(); - createIndex("events", Arrays.asList("datasource_id")); - createIndex("events", Arrays.asList("event_id", "hash_hit")); - createIndex("events", Arrays.asList("event_id", "tagged")); - createIndex("events", Arrays.asList("file_id")); - createIndex("events", Arrays.asList("artifact_id")); - createIndex("events", Arrays.asList("sub_type", "short_description", "time")); - createIndex("events", Arrays.asList("base_type", "short_description", "time")); - createIndex("events", Arrays.asList("time")); - createIndex("events", Arrays.asList("known_state")); + createIndex("events", Arrays.asList("datasource_id")); //NON-NLS + createIndex("events", Arrays.asList("event_id", "hash_hit")); //NON-NLS + createIndex("events", Arrays.asList("event_id", "tagged")); //NON-NLS + createIndex("events", Arrays.asList("file_id")); //NON-NLS + createIndex("events", Arrays.asList("artifact_id")); //NON-NLS + createIndex("events", Arrays.asList("sub_type", "short_description", "time")); //NON-NLS + createIndex("events", Arrays.asList("base_type", "short_description", "time")); //NON-NLS + createIndex("events", Arrays.asList("time")); //NON-NLS + createIndex("events", Arrays.asList("known_state")); //NON-NLS try { insertRowStmt = prepareStatement( @@ -616,19 +616,19 @@ public class EventDB { getEventByIDStmt = prepareStatement("SELECT * FROM events WHERE event_id = ?"); // NON-NLS recordDBInfoStmt = prepareStatement("INSERT OR REPLACE INTO db_info (key, value) values (?, ?)"); // NON-NLS getDBInfoStmt = prepareStatement("SELECT value FROM db_info WHERE key = ?"); // NON-NLS - insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) values (?)"); - selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?"); - insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, event_id) values (?,?)"); - insertTagStmt = prepareStatement("INSERT OR IGNORE INTO tags (tag_id, tag_name_id,tag_name_display_name, event_id) values (?,?,?,?)"); - deleteTagStmt = prepareStatement("DELETE FROM tags WHERE tag_id = ?"); - countAllEventsStmt = prepareStatement("SELECT count(*) AS count FROM events"); - dropEventsTableStmt = prepareStatement("DROP TABLE IF EXISTS events"); - dropHashSetHitsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_set_hits"); - dropHashSetsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_sets"); - dropTagsTableStmt = prepareStatement("DROP TABLE IF EXISTS tags"); - dropDBInfoTableStmt = prepareStatement("DROP TABLE IF EXISTS db_ino"); - selectNonArtifactEventIDsByObjectIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id IS NULL"); - selectEventIDsBYObjectAndArtifactIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id = ?"); + insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) values (?)"); //NON-NLS + selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?"); //NON-NLS + insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, event_id) values (?,?)"); //NON-NLS + insertTagStmt = prepareStatement("INSERT OR IGNORE INTO tags (tag_id, tag_name_id,tag_name_display_name, event_id) values (?,?,?,?)"); //NON-NLS + deleteTagStmt = prepareStatement("DELETE FROM tags WHERE tag_id = ?"); //NON-NLS + countAllEventsStmt = prepareStatement("SELECT count(*) AS count FROM events"); //NON-NLS + dropEventsTableStmt = prepareStatement("DROP TABLE IF EXISTS events"); //NON-NLS + dropHashSetHitsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_set_hits"); //NON-NLS + dropHashSetsTableStmt = prepareStatement("DROP TABLE IF EXISTS hash_sets"); //NON-NLS + dropTagsTableStmt = prepareStatement("DROP TABLE IF EXISTS tags"); //NON-NLS + dropDBInfoTableStmt = prepareStatement("DROP TABLE IF EXISTS db_ino"); //NON-NLS + selectNonArtifactEventIDsByObjectIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id IS NULL"); //NON-NLS + selectEventIDsBYObjectAndArtifactIDStmt = prepareStatement("SELECT event_id FROM events WHERE file_id == ? AND artifact_id = ?"); //NON-NLS } catch (SQLException sQLException) { LOGGER.log(Level.SEVERE, "failed to prepareStatment", sQLException); // NON-NLS } @@ -643,15 +643,15 @@ public class EventDB { */ private void initializeTagsTable() { try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE IF NOT EXISTS tags " - + "(tag_id INTEGER NOT NULL," - + " tag_name_id INTEGER NOT NULL, " - + " tag_name_display_name TEXT NOT NULL, " - + " event_id INTEGER REFERENCES events(event_id) NOT NULL, " - + " PRIMARY KEY (event_id, tag_name_id))"; + String sql = "CREATE TABLE IF NOT EXISTS tags " //NON-NLS + + "(tag_id INTEGER NOT NULL," //NON-NLS + + " tag_name_id INTEGER NOT NULL, " //NON-NLS + + " tag_name_display_name TEXT NOT NULL, " //NON-NLS + + " event_id INTEGER REFERENCES events(event_id) NOT NULL, " //NON-NLS + + " PRIMARY KEY (event_id, tag_name_id))"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating tags table", ex); + LOGGER.log(Level.SEVERE, "problem creating tags table", ex); //NON-NLS } } @@ -662,7 +662,7 @@ public class EventDB { */ private void createIndex(final String tableName, final List columnList) { String indexColumns = columnList.stream().collect(Collectors.joining(",", "(", ")")); - String indexName = tableName + "_" + StringUtils.join(columnList, "_") + "_idx"; + String indexName = tableName + "_" + StringUtils.join(columnList, "_") + "_idx"; //NON-NLS try (Statement stmt = con.createStatement()) { String sql = "CREATE INDEX IF NOT EXISTS " + indexName + " ON " + tableName + indexColumns; // NON-NLS @@ -680,7 +680,7 @@ public class EventDB { private boolean hasDBColumn(@Nonnull final String dbColumn) { try (Statement stmt = con.createStatement()) { - ResultSet executeQuery = stmt.executeQuery("PRAGMA table_info(events)"); + ResultSet executeQuery = stmt.executeQuery("PRAGMA table_info(events)"); //NON-NLS while (executeQuery.next()) { if (dbColumn.equals(executeQuery.getString("name"))) { return true; @@ -693,15 +693,15 @@ public class EventDB { } private boolean hasDataSourceIDColumn() { - return hasDBColumn("datasource_id"); + return hasDBColumn("datasource_id"); //NON-NLS } private boolean hasTaggedColumn() { - return hasDBColumn("tagged"); + return hasDBColumn("tagged"); //NON-NLS } private boolean hasHashHitColumn() { - return hasDBColumn("hash_hit"); + return hasDBColumn("hash_hit"); //NON-NLS } void insertEvent(long time, EventType type, long datasourceID, long objID, @@ -764,7 +764,7 @@ public class EventDB { try (ResultSet generatedKeys = insertRowStmt.getGeneratedKeys()) { while (generatedKeys.next()) { - long eventID = generatedKeys.getLong("last_insert_rowid()"); + long eventID = generatedKeys.getLong("last_insert_rowid()"); //NON-NLS for (String name : hashSetNames) { // "insert or ignore into hash_sets (hash_set_name) values (?)" @@ -776,7 +776,7 @@ public class EventDB { selectHashSetStmt.setString(1, name); try (ResultSet rs = selectHashSetStmt.executeQuery()) { while (rs.next()) { - int hashsetID = rs.getInt("hash_set_id"); + int hashsetID = rs.getInt("hash_set_id"); //NON-NLS //"insert or ignore into hash_set_hits (hash_set_id, obj_id) values (?,?)"; insertHashHitStmt.setInt(1, hashsetID); insertHashHitStmt.setLong(2, eventID); @@ -925,14 +925,14 @@ public class EventDB { HashSet eventIDs = new HashSet<>(); try (ResultSet executeQuery = selectStmt.executeQuery();) { while (executeQuery.next()) { - eventIDs.add(executeQuery.getLong("event_id")); + eventIDs.add(executeQuery.getLong("event_id")); //NON-NLS } } //update tagged state for all event with selected ids try (Statement updateStatement = con.createStatement();) { - updateStatement.executeUpdate("UPDATE events SET tagged = " + (tagged ? 1 : 0) - + " WHERE event_id IN (" + StringUtils.join(eventIDs, ",") + ")"); + updateStatement.executeUpdate("UPDATE events SET tagged = " + (tagged ? 1 : 0) //NON-NLS + + " WHERE event_id IN (" + StringUtils.join(eventIDs, ",") + ")"); //NON-NLS } return eventIDs; @@ -986,22 +986,22 @@ public class EventDB { SQLiteJDBCLoader.getVersion(), SQLiteJDBCLoader.isNativeMode() ? "native" : "pure-java")); // NON-NLS } catch (Exception exception) { - LOGGER.log(Level.SEVERE, "Failed to determine if sqlite-jdbc is loaded in native or pure-java mode.", exception); + LOGGER.log(Level.SEVERE, "Failed to determine if sqlite-jdbc is loaded in native or pure-java mode.", exception); //NON-NLS } } private TimeLineEvent constructTimeLineEvent(ResultSet rs) throws SQLException { - return new TimeLineEvent(rs.getLong("event_id"), - rs.getLong("datasource_id"), - rs.getLong("file_id"), - rs.getLong("artifact_id"), - rs.getLong("time"), RootEventType.allTypes.get(rs.getInt("sub_type")), - rs.getString("full_description"), - rs.getString("med_description"), - rs.getString("short_description"), - TskData.FileKnown.valueOf(rs.getByte("known_state")), - rs.getInt("hash_hit") != 0, - rs.getInt("tagged") != 0); + return new TimeLineEvent(rs.getLong("event_id"), //NON-NLS + rs.getLong("datasource_id"), //NON-NLS + rs.getLong("file_id"), //NON-NLS + rs.getLong("artifact_id"), //NON-NLS + rs.getLong("time"), RootEventType.allTypes.get(rs.getInt("sub_type")), //NON-NLS + rs.getString("full_description"), //NON-NLS + rs.getString("med_description"), //NON-NLS + rs.getString("short_description"), //NON-NLS + TskData.FileKnown.valueOf(rs.getByte("known_state")), //NON-NLS + rs.getInt("hash_hit") != 0, //NON-NLS + rs.getInt("tagged") != 0); //NON-NLS } /** @@ -1031,7 +1031,7 @@ public class EventDB { final boolean useSubTypes = (zoomLevel == EventTypeZoomLevel.SUB_TYPE); //get some info about the range of dates requested - final String queryString = "SELECT count(DISTINCT events.event_id) AS count, " + typeColumnHelper(useSubTypes) + final String queryString = "SELECT count(DISTINCT events.event_id) AS count, " + typeColumnHelper(useSubTypes) //NON-NLS + " FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) + " WHERE time >= " + startTime + " AND time < " + endTime + " AND " + SQLHelper.getSQLWhere(filter) // NON-NLS + " GROUP BY " + typeColumnHelper(useSubTypes); // NON-NLS @@ -1040,8 +1040,8 @@ public class EventDB { ResultSet rs = stmt.executeQuery(queryString);) { while (rs.next()) { EventType type = useSubTypes - ? RootEventType.allTypes.get(rs.getInt("sub_type")) - : BaseTypes.values()[rs.getInt("base_type")]; + ? RootEventType.allTypes.get(rs.getInt("sub_type")) //NON-NLS + : BaseTypes.values()[rs.getInt("base_type")]; //NON-NLS typeMap.put(type, rs.getLong("count")); // NON-NLS } @@ -1090,9 +1090,9 @@ public class EventDB { //compose query string, the new-lines are only for nicer formatting if printing the entire query String query = "SELECT strftime('" + strfTimeFormat + "',time , 'unixepoch'" + timeZone + ") AS interval," // NON-NLS - + "\n group_concat(events.event_id) as event_ids," - + "\n group_concat(CASE WHEN hash_hit = 1 THEN events.event_id ELSE NULL END) as hash_hits," - + "\n group_concat(CASE WHEN tagged = 1 THEN events.event_id ELSE NULL END) as taggeds," + + "\n group_concat(events.event_id) as event_ids," //NON-NLS + + "\n group_concat(CASE WHEN hash_hit = 1 THEN events.event_id ELSE NULL END) as hash_hits," //NON-NLS + + "\n group_concat(CASE WHEN tagged = 1 THEN events.event_id ELSE NULL END) as taggeds," //NON-NLS + "\n min(time), max(time), " + typeColumn + ", " + descriptionColumn // NON-NLS + "\n FROM events" + useHashHitTablesHelper(filter) + useTagTablesHelper(filter) // NON-NLS + "\n WHERE time >= " + start + " AND time < " + end + " AND " + SQLHelper.getSQLWhere(filter) // NON-NLS @@ -1101,7 +1101,7 @@ public class EventDB { switch (Version.getBuildType()) { case DEVELOPMENT: - LOGGER.log(Level.INFO, "executing timeline query: {0}", query); + LOGGER.log(Level.INFO, "executing timeline query: {0}", query); //NON-NLS break; case RELEASE: default: @@ -1145,8 +1145,8 @@ public class EventDB { String description = rs.getString(SQLHelper.getDescriptionColumn(descriptionLOD)); EventType type = useSubTypes ? RootEventType.allTypes.get(rs.getInt("sub_type")) : BaseTypes.values()[rs.getInt("base_type")];// NON-NLS - Set hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf); - Set tagged = SQLHelper.unGroupConcat(rs.getString("taggeds"), Long::valueOf); + Set hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf); //NON-NLS + Set tagged = SQLHelper.unGroupConcat(rs.getString("taggeds"), Long::valueOf); //NON-NLS return new EventCluster(interval, type, eventIDs, hashHits, tagged, description, descriptionLOD); @@ -1217,7 +1217,7 @@ public class EventDB { } private static String typeColumnHelper(final boolean useSubTypes) { - return useSubTypes ? "sub_type" : "base_type"; + return useSubTypes ? "sub_type" : "base_type"; //NON-NLS } private long getDBInfo(DBInfoKey key, long defaultValue) { diff --git a/Core/src/org/sleuthkit/autopsy/timeline/db/EventsRepository.java b/Core/src/org/sleuthkit/autopsy/timeline/db/EventsRepository.java index ff9f46a075..638136882b 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/db/EventsRepository.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/db/EventsRepository.java @@ -97,7 +97,7 @@ public class EventsRepository { private final static Logger LOGGER = Logger.getLogger(EventsRepository.class.getName()); - private final Executor workerExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("eventrepository-worker-%d").build()); + private final Executor workerExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("eventrepository-worker-%d").build()); //NON-NLS private DBPopulationWorker dbWorker; private final EventDB eventDB; private final Case autoCase; @@ -218,7 +218,7 @@ public class EventsRepository { try { return eventStripeCache.get(params); } catch (ExecutionException ex) { - LOGGER.log(Level.SEVERE, "Failed to load Event Stripes from cache for " + params.toString(), ex); + LOGGER.log(Level.SEVERE, "Failed to load Event Stripes from cache for " + params.toString(), ex); //NON-NLS return Collections.emptyList(); } } @@ -275,7 +275,7 @@ public class EventsRepository { try { datasourcesMap.putIfAbsent(id, skCase.getContentById(id).getDataSource().getName()); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get datasource by ID.", ex); + LOGGER.log(Level.SEVERE, "Failed to get datasource by ID.", ex); //NON-NLS } } @@ -283,7 +283,7 @@ public class EventsRepository { //should this only be tags applied to files or event bearing artifacts? tagNames.setAll(skCase.getTagNamesInUse()); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); + LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); //NON-NLS } } @@ -310,7 +310,7 @@ public class EventsRepository { try { tagNames.setAll(autoCase.getSleuthkitCase().getTagNamesInUse()); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); + LOGGER.log(Level.SEVERE, "Failed to get tag names in use.", ex); //NON-NLS } } @@ -368,7 +368,7 @@ public class EventsRepository { */ @ThreadConfined(type = ThreadConfined.ThreadType.JFX) private CancellationProgressTask rebuildRepository(final DBPopulationMode mode) { - LOGGER.log(Level.INFO, "(re)starting {0} db population task", mode); + LOGGER.log(Level.INFO, "(re)starting {0} db population task", mode); //NON-NLS if (dbWorker != null) { dbWorker.cancel(); } @@ -481,7 +481,7 @@ public class EventsRepository { //reset database //TODO: can we do more incremental updates? -jm eventDB.reInitializeDB(); //grab ids of all files - List fileIDs = skCase.findAllFileIdsWhere("name != '.' AND name != '..'"); + List fileIDs = skCase.findAllFileIdsWhere("name != '.' AND name != '..'"); //NON-NLS final int numFiles = fileIDs.size(); trans = eventDB.beginTransaction(); @@ -635,7 +635,7 @@ public class EventsRepository { try { get(); } catch (CancellationException ex) { - LOGGER.log(Level.WARNING, "Timeline database population was cancelled by the user. " + LOGGER.log(Level.WARNING, "Timeline database population was cancelled by the user. " //NON-NLS + " Not all events may be present or accurate."); // NON-NLS } catch (Exception ex) { LOGGER.log(Level.WARNING, "Unexpected exception while populating database.", ex); // NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/timeline/db/SQLHelper.java b/Core/src/org/sleuthkit/autopsy/timeline/db/SQLHelper.java index e605fb18df..04eb7c970b 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/db/SQLHelper.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/db/SQLHelper.java @@ -62,12 +62,12 @@ class SQLHelper { static String useHashHitTablesHelper(RootFilter filter) { HashHitsFilter hashHitFilter = filter.getHashHitsFilter(); - return hashHitFilter.isActive() ? " LEFT JOIN hash_set_hits " : " "; + return hashHitFilter.isActive() ? " LEFT JOIN hash_set_hits " : " "; //NON-NLS } static String useTagTablesHelper(RootFilter filter) { TagsFilter tagsFilter = filter.getTagsFilter(); - return tagsFilter.isActive() ? " LEFT JOIN tags " : " "; + return tagsFilter.isActive() ? " LEFT JOIN tags " : " "; //NON-NLS } /** @@ -93,13 +93,13 @@ class SQLHelper { return filter.getSubFilters().stream() .filter(Filter::isSelected) .map(SQLHelper::getSQLWhere) - .collect(Collectors.joining(" and ", "( ", ")")); + .collect(Collectors.joining(" and ", "( ", ")")); //NON-NLS } private static String getSQLWhere(UnionFilter filter) { return filter.getSubFilters().stream() .filter(Filter::isSelected).map(SQLHelper::getSQLWhere) - .collect(Collectors.joining(" or ", "( ", ")")); + .collect(Collectors.joining(" or ", "( ", ")")); //NON-NLS } static String getSQLWhere(RootFilter filter) { @@ -143,7 +143,7 @@ class SQLHelper { } else { throw new IllegalArgumentException("getSQLWhere not defined for " + filter.getClass().getCanonicalName()); } - result = StringUtils.deleteWhitespace(result).equals("(1and1and1)") ? "1" : result; + result = StringUtils.deleteWhitespace(result).equals("(1and1and1)") ? "1" : result; //NON-NLS result = StringUtils.deleteWhitespace(result).equals("()") ? "1" : result; return result; } @@ -158,7 +158,7 @@ class SQLHelper { private static String getSQLWhere(DescriptionFilter filter) { if (filter.isActive()) { - String likeOrNotLike = (filter.getFilterMode() == DescriptionFilter.FilterMode.INCLUDE ? "" : " NOT") + " LIKE '"; + String likeOrNotLike = (filter.getFilterMode() == DescriptionFilter.FilterMode.INCLUDE ? "" : " NOT") + " LIKE '"; //NON-NLS return "(" + getDescriptionColumn(filter.getDescriptionLoD()) + likeOrNotLike + filter.getDescription() + "' )"; // NON-NLS } else { return "1"; @@ -172,8 +172,8 @@ class SQLHelper { .filter((TagNameFilter t) -> t.isSelected() && !t.isDisabled()) .map((TagNameFilter t) -> String.valueOf(t.getTagName().getId())) .collect(Collectors.joining(", ", "(", ")")); - return "(events.event_id == tags.event_id AND " - + "tags.tag_name_id IN " + tagNameIDs + ") "; + return "(events.event_id == tags.event_id AND " //NON-NLS + + "tags.tag_name_id IN " + tagNameIDs + ") "; //NON-NLS } else { return "1"; } @@ -187,7 +187,7 @@ class SQLHelper { .filter((HashSetFilter t) -> t.isSelected() && !t.isDisabled()) .map((HashSetFilter t) -> String.valueOf(t.getHashSetID())) .collect(Collectors.joining(", ", "(", ")")); - return "(hash_set_hits.hash_set_id IN " + hashSetIDs + " AND hash_set_hits.event_id == events.event_id)"; + return "(hash_set_hits.hash_set_id IN " + hashSetIDs + " AND hash_set_hits.event_id == events.event_id)"; //NON-NLS } else { return "1"; } @@ -195,14 +195,14 @@ class SQLHelper { private static String getSQLWhere(DataSourceFilter filter) { if (filter.isActive()) { - return "(datasource_id = '" + filter.getDataSourceID() + "')"; + return "(datasource_id = '" + filter.getDataSourceID() + "')"; //NON-NLS } else { return "1"; } } private static String getSQLWhere(DataSourcesFilter filter) { - return (filter.isActive()) ? "(datasource_id in (" + return (filter.isActive()) ? "(datasource_id in (" //NON-NLS + filter.getSubFilters().stream() .filter(AbstractFilter::isActive) .map((dataSourceFilter) -> String.valueOf(dataSourceFilter.getDataSourceID())) @@ -215,9 +215,9 @@ class SQLHelper { return "1"; } String strippedFilterText = StringUtils.strip(filter.getText()); - return "((med_description like '%" + strippedFilterText + "%')" - + " or (full_description like '%" + strippedFilterText + "%')" - + " or (short_description like '%" + strippedFilterText + "%'))"; + return "((med_description like '%" + strippedFilterText + "%')" //NON-NLS + + " or (full_description like '%" + strippedFilterText + "%')" //NON-NLS + + " or (short_description like '%" + strippedFilterText + "%'))"; //NON-NLS } else { return "1"; } @@ -240,7 +240,7 @@ class SQLHelper { return "1"; //then collapse clause to true } } - return "(sub_type IN (" + StringUtils.join(getActiveSubTypes(typeFilter), ",") + "))"; + return "(sub_type IN (" + StringUtils.join(getActiveSubTypes(typeFilter), ",") + "))"; //NON-NLS } private static List getActiveSubTypes(TypeFilter filter) { @@ -288,12 +288,12 @@ class SQLHelper { static String getDescriptionColumn(DescriptionLoD lod) { switch (lod) { case FULL: - return "full_description"; + return "full_description"; //NON-NLS case MEDIUM: - return "med_description"; + return "med_description"; //NON-NLS case SHORT: default: - return "short_description"; + return "short_description"; //NON-NLS } } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java index 2a5473bb52..04b0370b42 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java @@ -78,7 +78,7 @@ class EventNode extends DisplayableItemNode { try { timePropery.setValue(getDateTimeString()); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - LOGGER.log(Level.SEVERE, "unexpected error setting date/time property on EventNode explorer node", ex); + LOGGER.log(Level.SEVERE, "unexpected error setting date/time property on EventNode explorer node", ex); //NON-NLS } }); @@ -121,11 +121,15 @@ class EventNode extends DisplayableItemNode { throw new UnsupportedOperationException("Not supported yet."); // NON-NLS //To change body of generated methods, choose Tools | Templates. } - @Override - public String getItemType() { - return "Event"; - } - + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "Event"; +// } /** * We use TimeProperty instead of a normal NodeProperty to correctly display * the date/time when the user changes the timezone setting. diff --git a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventRootNode.java b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventRootNode.java index 401d30e336..9ad3a2bb2f 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventRootNode.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventRootNode.java @@ -70,10 +70,15 @@ public class EventRootNode extends DisplayableItemNode { return childCount; } - @Override - public String getItemType() { - return "EventRoot"; - } + /* + * TODO (AUT-1849): Correct or remove peristent column reordering code + * + * Added to support this feature. + */ +// @Override +// public String getItemType() { +// return "EventRoot"; +// } /** * The node factories used to make lists of files to send to the result diff --git a/Core/src/org/sleuthkit/autopsy/timeline/filters/DescriptionFilter.java b/Core/src/org/sleuthkit/autopsy/timeline/filters/DescriptionFilter.java index 5ac569c6f9..c31049e21d 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/filters/DescriptionFilter.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/filters/DescriptionFilter.java @@ -19,6 +19,8 @@ package org.sleuthkit.autopsy.timeline.filters; import java.util.Objects; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.timeline.zooming.DescriptionLoD; public class DescriptionFilter extends AbstractFilter { @@ -69,10 +71,12 @@ public class DescriptionFilter extends AbstractFilter { return description; } + @NbBundle.Messages({"DescriptionFilter.mode.exclude=Exclude", + "DescriptionFilter.mode.include=Include"}) public enum FilterMode { - EXCLUDE("Exclude"), - INCLUDE("Include"); + EXCLUDE(Bundle.DescriptionFilter_mode_exclude()), + INCLUDE(Bundle.DescriptionFilter_mode_include()); private final String displayName; diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/AbstractVisualizationPane.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/AbstractVisualizationPane.java index 59be79531a..eeefc35904 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/AbstractVisualizationPane.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/AbstractVisualizationPane.java @@ -223,7 +223,7 @@ public abstract class AbstractVisualizationPane extends BorderPane { - private static final Image ClEAR_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/cross-script.png", 16, 16, true, true, true); - private static final Image ZOOM_TO_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-fit.png", 16, 16, true, true, true); + private static final Image ClEAR_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/cross-script.png", 16, 16, true, true, true); //NON-NLS + private static final Image ZOOM_TO_INTERVAL_ICON = new Image("/org/sleuthkit/autopsy/timeline/images/magnifier-zoom-fit.png", 16, 16, true, true, true); //NON-NLS private static final double STROKE_WIDTH = 3; private static final double HALF_STROKE = STROKE_WIDTH / 2; diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java index f0ab8a9860..1bca199dbb 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/DetailViewPane.java @@ -391,6 +391,8 @@ public class DetailViewPane extends AbstractVisualizationPane { @@ -415,8 +417,8 @@ public class DetailViewPane extends AbstractVisualizationPane, ParentType extends EventBundle, ParentNodeType extends EventBundleNodeBase> extends StackPane { private static final Logger LOGGER = Logger.getLogger(EventBundleNodeBase.class.getName()); - private static final Image HASH_PIN = new Image("/org/sleuthkit/autopsy/images/hashset_hits.png"); //NOI18N + private static final Image HASH_PIN = new Image("/org/sleuthkit/autopsy/images/hashset_hits.png"); //NOI18N NON-NLS private static final Image TAG = new Image("/org/sleuthkit/autopsy/images/green-tag-icon-16.png"); // NON-NLS //NOI18N static final CornerRadii CORNER_RADII_3 = new CornerRadii(3); @@ -131,7 +132,7 @@ public abstract class EventBundleNodeBase tooltTipTask = new Task() { { - updateTitle("loading tooltip"); + updateTitle(Bundle.EventBundleNodeBase_toolTip_loading2()); } @Override @@ -248,7 +254,7 @@ public abstract class EventBundleNodeBase implements TimeLineChart { - private static final String styleSheet = GuideLine.class.getResource("EventsDetailsChart.css").toExternalForm(); + private static final String styleSheet = GuideLine.class.getResource("EventsDetailsChart.css").toExternalForm(); //NON-NLS private static final Image HIDE = new Image("/org/sleuthkit/autopsy/timeline/images/eye--minus.png"); // NON-NLS private static final Image SHOW = new Image("/org/sleuthkit/autopsy/timeline/images/eye--plus.png"); // NON-NLS - private static final Image MARKER = new Image("/org/sleuthkit/autopsy/timeline/images/marker.png", 16, 16, true, true, true); + private static final Image MARKER = new Image("/org/sleuthkit/autopsy/timeline/images/marker.png", 16, 16, true, true, true); //NON-NLS private static final int PROJECTED_LINE_Y_OFFSET = 5; private static final int PROJECTED_LINE_STROKE_WIDTH = 5; private static final int MINIMUM_EVENT_NODE_GAP = 4; @@ -725,11 +725,13 @@ public final class EventDetailsChart extends XYChart impl } } + @NbBundle.Messages({"HideDescriptionAction.displayName=Hide", + "HideDescriptionAction.displayMsg=Hide this group from the details view."}) class HideDescriptionAction extends Action { HideDescriptionAction(String description, DescriptionLoD descriptionLoD) { - super("Hide"); - setLongText("Hide this group from the details view."); + super(Bundle.HideDescriptionAction_displayName()); + setLongText(Bundle.HideDescriptionAction_displayMsg()); setGraphic(new ImageView(HIDE)); setEventHandler((ActionEvent t) -> { final DescriptionFilter testFilter = new DescriptionFilter( @@ -749,10 +751,11 @@ public final class EventDetailsChart extends XYChart impl } } + @NbBundle.Messages({"UnhideDescriptionAction.displayName=Unhide"}) class UnhideDescriptionAction extends Action { UnhideDescriptionAction(String description, DescriptionLoD descriptionLoD) { - super("Unhide"); + super(Bundle.UnhideDescriptionAction_displayName()); setGraphic(new ImageView(SHOW)); setEventHandler((ActionEvent t) -> getController().getQuickHideFilters().stream() diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/GuideLine.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/GuideLine.java index 0c8cbfeffd..a462a92b9e 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/GuideLine.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/GuideLine.java @@ -53,7 +53,7 @@ class GuideLine extends Line { Axis xAxis = chart.getXAxis(); endYProperty().bind(chart.heightProperty().subtract(xAxis.heightProperty().subtract(xAxis.tickLengthProperty()))); - getStyleClass().add("guide-line"); + getStyleClass().add("guide-line"); //NON-NLS Tooltip.install(this, tooltip); tooltip.setOnShowing(showing -> tooltip.setText(Bundle.GuideLine_tooltip_text(getDateTimeAsString()))); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java index d99bf5658f..d5a0ecdad0 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/FilterSetPanel.java @@ -53,9 +53,6 @@ import org.sleuthkit.autopsy.timeline.filters.DescriptionFilter; import org.sleuthkit.autopsy.timeline.filters.Filter; import org.sleuthkit.autopsy.timeline.filters.RootFilter; import org.sleuthkit.autopsy.timeline.filters.TypeFilter; -import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_none; -import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_only; -import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_filtering_menuItem_select; /** * The FXML controller for the filter ui. @@ -65,7 +62,7 @@ import static org.sleuthkit.autopsy.timeline.ui.filtering.Bundle.Timeline_ui_fil */ final public class FilterSetPanel extends BorderPane { - private static final Image TICK = new Image("org/sleuthkit/autopsy/timeline/images/tick.png"); + private static final Image TICK = new Image("org/sleuthkit/autopsy/timeline/images/tick.png"); //NON-NLS @FXML private Button applyButton; @@ -103,7 +100,9 @@ final public class FilterSetPanel extends BorderPane { "Timeline.ui.filtering.menuItem.none=none", "Timeline.ui.filtering.menuItem.only=only", "Timeline.ui.filtering.menuItem.others=others", - "Timeline.ui.filtering.menuItem.select=select"}) + "Timeline.ui.filtering.menuItem.select=select", + "FilterSetPanel.hiddenDescriptionsListView.unhideAndRm=Unhide and remove from list", + "FilterSetPanel.hiddenDescriptionsListView.remove=Remove from list"}) void initialize() { assert applyButton != null : "fx:id=\"applyButton\" was not injected: check your FXML file 'FilterSetPanel.fxml'."; // NON-NLS @@ -123,14 +122,14 @@ final public class FilterSetPanel extends BorderPane { t.getValue().setSelected(Boolean.TRUE); }); }); - MenuItem none = new MenuItem(Timeline_ui_filtering_menuItem_none()); + MenuItem none = new MenuItem(Bundle.Timeline_ui_filtering_menuItem_none()); none.setOnAction(e -> { row.getTreeItem().getParent().getChildren().forEach((TreeItem t) -> { t.getValue().setSelected(Boolean.FALSE); }); }); - MenuItem only = new MenuItem(Timeline_ui_filtering_menuItem_only()); + MenuItem only = new MenuItem(Bundle.Timeline_ui_filtering_menuItem_only()); only.setOnAction(e -> { row.getTreeItem().getParent().getChildren().forEach((TreeItem t) -> { if (t == row.getTreeItem()) { @@ -151,7 +150,7 @@ final public class FilterSetPanel extends BorderPane { }); }); final ContextMenu rowMenu = new ContextMenu(); - Menu select = new Menu(Timeline_ui_filtering_menuItem_select()); + Menu select = new Menu(Bundle.Timeline_ui_filtering_menuItem_select()); select.setOnAction(e -> { row.getItem().setSelected(!row.getItem().isSelected()); }); @@ -212,9 +211,9 @@ final public class FilterSetPanel extends BorderPane { private void configureText(Boolean newValue) { if (newValue) { - setText("Unhide and remove from list"); + setText(Bundle.FilterSetPanel_hiddenDescriptionsListView_unhideAndRm()); } else { - setText("Remove from list"); + setText(Bundle.FilterSetPanel_hiddenDescriptionsListView_remove()); } } })); @@ -257,12 +256,13 @@ final public class FilterSetPanel extends BorderPane { }); } - @NbBundle.Messages({"FilterSetPanel.applyButton.text=Apply"}) + @NbBundle.Messages({"FilterSetPanel.applyButton.text=Apply", + "FilterSetPanel.applyButton.longText=(Re)Apply filters"}) private class ApplyFiltersAction extends Action { ApplyFiltersAction() { super(Bundle.FilterSetPanel_applyButton_text()); - setLongText("(Re)Apply filters"); + setLongText(Bundle.FilterSetPanel_applyButton_longText()); setGraphic(new ImageView(TICK)); setEventHandler((ActionEvent t) -> { applyFilters(); diff --git a/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomParams.java b/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomParams.java index 95304d61af..bd24ca9b38 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomParams.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/zooming/ZoomParams.java @@ -130,7 +130,7 @@ public class ZoomParams { @Override public String toString() { - return "ZoomParams{" + "timeRange=" + timeRange + ", typeZoomLevel=" + typeZoomLevel + ", filter=" + filter + ", descrLOD=" + descrLOD + '}'; + return "ZoomParams{" + "timeRange=" + timeRange + ", typeZoomLevel=" + typeZoomLevel + ", filter=" + filter + ", descrLOD=" + descrLOD + '}'; //NON-NLS } } diff --git a/CoreLibs/nbproject/project.properties b/CoreLibs/nbproject/project.properties index 6b1c4edae5..35f2e8e8c6 100644 --- a/CoreLibs/nbproject/project.properties +++ b/CoreLibs/nbproject/project.properties @@ -68,7 +68,7 @@ file.reference.slf4j-simple-1.6.1.jar=release/modules/ext/slf4j-simple-1.6.1.jar file.reference.stax-api-1.0.1.jar=release/modules/ext/stax-api-1.0.1.jar file.reference.xml-apis-1.0.b2.jar=release/modules/ext/xml-apis-1.0.b2.jar file.reference.xmlbeans-2.3.0.jar=release/modules/ext/xmlbeans-2.3.0.jar -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial javadoc.reference.controlsfx-8.40.10.jar=release/modules/ext/controlsfx-8.40.10-javadoc.jar javadoc.reference.guava-18.0.jar=release/modules/ext/guava-18.0-javadoc.jar diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties index 92a8c0ab97..bbc1bac4b1 100644 --- a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties +++ b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties @@ -1,7 +1,7 @@ OpenIDE-Module-Display-Category=\u30E9\u30A4\u30D6\u30E9\u30EA OpenIDE-Module-Name=Autopsy-\u30B3\u30A2\u30E9\u30A4\u30D6\u30E9\u30EA OpenIDE-Module-Long-Description=\ - \u30B3\u30A2\u30E2\u30B8\u30E5\u30FC\u30EB\u7528\u306E\u5916\u90E8\u30E9\u30A4\u30D6\u30E9\u30EA\u30C7\u30A3\u30DA\u30F3\u30C7\u30F3\u30B7\u30FC\u3002\n\ + \u30B3\u30A2\u30E2\u30B8\u30E5\u30FC\u30EB\u7528\u306E\u5916\u90E8\u30E9\u30A4\u30D6\u30E9\u30EA\u3078\u306E\u4F9D\u5B58\u95A2\u4FC2\u3002\n\ \u30E9\u30A4\u30D6\u30E9\u30EA\u306F\u4ED6\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u3082\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u304D\u307E\u3059\u3002 OpenIDE-Module-Short-Description=Autopsy\u30B3\u30A2\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u5916\u90E8\u30E9\u30A4\u30D6\u30E9\u30EA SigarLoader.linkErr.msg=Sigar\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u304A\u4F7F\u3044\u306E\u74B0\u5883\u306B\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u91CD\u5927\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3001OS\u30EC\u30D9\u30EB\u306E\u30E1\u30C8\u30EA\u30AF\u30B9\u306F\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002 \ No newline at end of file diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FXMLConstructor.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FXMLConstructor.java index 55d45ac5f5..ec846c1f36 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FXMLConstructor.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FXMLConstructor.java @@ -39,7 +39,7 @@ public class FXMLConstructor { private static Logger logger = Logger.getLogger(FXMLConstructor.class.getName()); static public void construct(Object n, String fxmlFileName) { - final String name = "nbres:/" + StringUtils.replace(n.getClass().getPackage().getName(), ".", "/") + "/" + fxmlFileName; + final String name = "nbres:/" + StringUtils.replace(n.getClass().getPackage().getName(), ".", "/") + "/" + fxmlFileName; //NON-NLS try { FXMLLoader fxmlLoader = new FXMLLoader(new URL(name)); @@ -53,12 +53,12 @@ public class FXMLConstructor { fxmlLoader.setClassLoader(FXMLLoader.getDefaultClassLoader()); fxmlLoader.load(); } catch (IOException ex) { - String msg = String.format("Failed to load fxml file %s", fxmlFileName); + String msg = String.format("Failed to load fxml file %s", fxmlFileName); //NON-NLS logger.log(Level.SEVERE, msg, ex); } } } catch (MalformedURLException ex) { - String msg = String.format("Malformed URL %s", name); + String msg = String.format("Malformed URL %s", name); //NON-NLS logger.log(Level.SEVERE, msg, ex); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileIDSelectionModel.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileIDSelectionModel.java index e2109389fd..812ace17e9 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileIDSelectionModel.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileIDSelectionModel.java @@ -72,7 +72,7 @@ public class FileIDSelectionModel { try { fileNodes.add(new FileNode(controller.getSleuthKitCase().getAbstractFileById(id))); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get abstract file by its ID", ex); + LOGGER.log(Level.SEVERE, "Failed to get abstract file by its ID", ex); //NON-NLS } } FileNode[] fileNodeArray = fileNodes.stream().toArray(FileNode[]::new); @@ -84,7 +84,7 @@ public class FileIDSelectionModel { try { etc.getExplorerManager().setSelectedNodes(fileNodeArray); } catch (PropertyVetoException ex) { - LOGGER.log(Level.SEVERE, "Explorer manager selection was vetoed.", ex); + LOGGER.log(Level.SEVERE, "Explorer manager selection was vetoed.", ex); //NON-NLS } }); }); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileTypeUtils.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileTypeUtils.java index 4498021484..72b1eba094 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileTypeUtils.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/FileTypeUtils.java @@ -93,31 +93,31 @@ public enum FileTypeUtils { .collect(Collectors.toList())); //add list of known image extensions imageExtensions.addAll(Arrays.asList( - "bmp" //Bitmap - , "gif" //gif - , "jpg", "jpeg", "jpe", "jp2", "jpx" //jpeg variants - , "pbm", "pgm", "ppm" // Portable image format variants - , "png" //portable network graphic - , "tga" //targa - , "psd" //photoshop - , "tif", "tiff" //tiff variants - , "yuv", "ico" //icons - , "ai" //illustrator - , "svg" //scalable vector graphics - , "sn", "ras" //sun raster - , "ico" //windows icons - , "tga" //targa + "bmp" //Bitmap NON-NLS + , "gif" //gif NON-NLS + , "jpg", "jpeg", "jpe", "jp2", "jpx" //jpeg variants NON-NLS + , "pbm", "pgm", "ppm" // Portable image format variants NON-NLS + , "png" //portable network graphic NON-NLS + , "tga" //targa NON-NLS + , "psd" //photoshop NON-NLS + , "tif", "tiff" //tiff variants NON-NLS + , "yuv", "ico" //icons NON-NLS + , "ai" //illustrator NON-NLS + , "svg" //scalable vector graphics NON-NLS + , "sn", "ras" //sun raster NON-NLS + , "ico" //windows icons NON-NLS + , "tga" //targa NON-NLS )); //add list of known video extensions - videoExtensions.addAll(Arrays.asList("fxm", "aaf", "3gp", "asf", "avi", - "m1v", "m2v", "m4v", "mp4", "mov", "mpeg", "mpg", "mpe", "mp4", - "rm", "wmv", "mpv", "flv", "swf")); + videoExtensions.addAll(Arrays.asList("fxm", "aaf", "3gp", "asf", "avi", //NON-NLS + "m1v", "m2v", "m4v", "mp4", "mov", "mpeg", "mpg", "mpe", "mp4", //NON-NLS + "rm", "wmv", "mpv", "flv", "swf")); //NON-NLS supportedExtensions = Sets.union(imageExtensions, videoExtensions); //add list of mimetypes to count as videos even though they aren't prefixed by video/ - videoMimeTypes.addAll(Arrays.asList("application/x-shockwave-flash")); + videoMimeTypes.addAll(Arrays.asList("application/x-shockwave-flash")); //NON-NLS supportedMimeTypes.addAll(videoMimeTypes); @@ -128,14 +128,14 @@ public enum FileTypeUtils { * fixed, we should remove application/x-123 from the list of supported * mime types. */ - supportedMimeTypes.addAll(Arrays.asList("application/x-123")); + supportedMimeTypes.addAll(Arrays.asList("application/x-123")); //NON-NLS //add list of mimetypes ImageIO claims to support supportedMimeTypes.addAll(Stream.of(ImageIO.getReaderMIMETypes()) .map(String::toLowerCase) .collect(Collectors.toList())); - supportedMimeTypes.removeIf("application/octet-stream"::equals); //this is rarely usefull + supportedMimeTypes.removeIf("application/octet-stream"::equals); //this is rarely usefull NON-NLS } public static Set getAllSupportedMimeTypes() { @@ -151,7 +151,7 @@ public enum FileTypeUtils { try { FILE_TYPE_DETECTOR = new FileTypeDetector(); } catch (FileTypeDetector.FileTypeDetectorInitException ex) { - LOGGER.log(Level.SEVERE, "Failed to initialize File Type Detector, will fall back on extensions in some situations.", ex); + LOGGER.log(Level.SEVERE, "Failed to initialize File Type Detector, will fall back on extensions in some situations.", ex); //NON-NLS } } return FILE_TYPE_DETECTOR; @@ -178,6 +178,25 @@ public enum FileTypeUtils { return ImageUtils.isGIF(file); } + public static Optional getMimeType(AbstractFile file) throws TskCoreException { + final FileTypeDetector fileTypeDetector = getFileTypeDetector(); + if (nonNull(fileTypeDetector)) { + return Optional.ofNullable(fileTypeDetector.getFileType(file)); + } + return Optional.empty(); + } + + static boolean isDrawableMimeType(String mimeType) { + if (isNull(mimeType)) { + return false; + } else { + String mimeTypeLower = mimeType.toLowerCase(); + return mimeTypeLower.startsWith("image/") + || mimeTypeLower.startsWith("video/") + || supportedMimeTypes.contains(mimeTypeLower); + } + } + /** * does the given file have drawable/supported mime type * @@ -188,21 +207,7 @@ public enum FileTypeUtils { * mimetype could not be detected. */ static Optional hasDrawableMimeType(AbstractFile file) throws TskCoreException { - - final FileTypeDetector fileTypeDetector = getFileTypeDetector(); - if (nonNull(fileTypeDetector)) { - String mimeType = fileTypeDetector.getFileType(file); - if (isNull(mimeType)) { - return Optional.empty(); - } else { - mimeType = mimeType.toLowerCase(); - return Optional.of(mimeType.startsWith("image/") - || mimeType.startsWith("video/") - || supportedMimeTypes.contains(mimeType)); - } - } - - return Optional.empty(); + return getMimeType(file).map(FileTypeUtils::isDrawableMimeType); } /** @@ -216,17 +221,14 @@ public enum FileTypeUtils { */ public static boolean isVideoFile(AbstractFile file) { try { - final FileTypeDetector fileTypeDetector = getFileTypeDetector(); - if (nonNull(fileTypeDetector)) { - String mimeType = fileTypeDetector.getFileType(file); - if (nonNull(mimeType)) { - mimeType = mimeType.toLowerCase(); - return mimeType.startsWith("video/") || videoMimeTypes.contains(mimeType); - } - } + return getMimeType(file) + .map(String::toLowerCase) + .map(mimeType -> + mimeType.startsWith("video/") + || videoMimeTypes.contains(mimeType)) + .orElseGet(() -> FileTypeUtils.videoExtensions.contains(file.getNameExtension())); } catch (TskCoreException ex) { - LOGGER.log(Level.INFO, "failed to get mime type for " + file.getName(), ex); + return FileTypeUtils.videoExtensions.contains(file.getNameExtension()); } - return FileTypeUtils.videoExtensions.contains(file.getNameExtension()); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java index b749c9cdde..c3aedf6dcc 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java @@ -58,6 +58,7 @@ import org.apache.commons.lang3.StringUtils; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; import org.openide.util.Cancellable; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.casemodule.events.ContentTagDeletedEvent; @@ -289,38 +290,44 @@ public final class ImageGalleryController implements Executor { * aren't, add a blocking progress spinner with appropriate message. */ @ThreadConfined(type = ThreadConfined.ThreadType.JFX) + @NbBundle.Messages({"ImageGalleryController.noGroupsDlg.msg1=No groups are fully analyzed; but listening to ingest is disabled. " + + " No groups will be available until ingest is finished and listening is re-enabled.", + "ImageGalleryController.noGroupsDlg.msg2=No groups are fully analyzed yet, but ingest is still ongoing. Please Wait.", + "ImageGalleryController.noGroupsDlg.msg3=No groups are fully analyzed yet, but image / video data is still being populated. Please Wait.", + "ImageGalleryController.noGroupsDlg.msg4=There are no images/videos available from the added datasources; but listening to ingest is disabled. " + + " No groups will be available until ingest is finished and listening is re-enabled.", + "ImageGalleryController.noGroupsDlg.msg5=There are no images/videos in the added datasources.", + "ImageGalleryController.noGroupsDlg.msg6=There are no fully analyzed groups to display:" + + " the current Group By setting resulted in no groups, " + + "or no groups are fully analyzed but ingest is not running."}) public void checkForGroups() { if (groupManager.getAnalyzedGroups().isEmpty()) { if (IngestManager.getInstance().isIngestRunning()) { if (listeningEnabled.get() == false) { replaceNotification(fullUIStackPane, - new NoGroupsDialog("No groups are fully analyzed; but listening to ingest is disabled. " - + " No groups will be available until ingest is finished and listening is re-enabled.")); + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg1())); } else { replaceNotification(fullUIStackPane, - new NoGroupsDialog("No groups are fully analyzed yet, but ingest is still ongoing. Please Wait.", + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg2(), new ProgressIndicator())); } } else if (getFileUpdateQueueSizeProperty().get() > 0) { replaceNotification(fullUIStackPane, - new NoGroupsDialog("No groups are fully analyzed yet, but image / video data is still being populated. Please Wait.", + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg3(), new ProgressIndicator())); } else if (db != null && db.countAllFiles() <= 0) { // there are no files in db if (listeningEnabled.get() == false) { replaceNotification(fullUIStackPane, - new NoGroupsDialog("There are no images/videos available from the added datasources; but listening to ingest is disabled. " - + " No groups will be available until ingest is finished and listening is re-enabled.")); + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg4())); } else { replaceNotification(fullUIStackPane, - new NoGroupsDialog("There are no images/videos in the added datasources.")); + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg5())); } } else if (!groupManager.isRegrouping()) { replaceNotification(centralStackPane, - new NoGroupsDialog("There are no fully analyzed groups to display:" - + " the current Group By setting resulted in no groups, " - + "or no groups are fully analyzed but ingest is not running.")); + new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg6())); } } else { @@ -399,7 +406,7 @@ public final class ImageGalleryController implements Executor { * reset the state of the controller (eg if the case is closed) */ public synchronized void reset() { - LOGGER.info("resetting ImageGalleryControler to initial state."); + LOGGER.info("resetting ImageGalleryControler to initial state."); //NON-NLS selectionModel.clearSelection(); setListeningEnabled(false); ThumbnailCache.getDefault().clearCache(); @@ -436,7 +443,7 @@ public final class ImageGalleryController implements Executor { @Nullable synchronized public DrawableFile getFileFromId(Long fileID) throws TskCoreException { if (Objects.isNull(db)) { - LOGGER.log(Level.WARNING, "Could not get file from id, no DB set. The case is probably closed."); + LOGGER.log(Level.WARNING, "Could not get file from id, no DB set. The case is probably closed."); //NON-NLS return null; } return db.getFileFromID(fileID); @@ -462,7 +469,7 @@ public final class ImageGalleryController implements Executor { */ void onStart() { Platform.setImplicitExit(false); - LOGGER.info("setting up ImageGallery listeners"); + LOGGER.info("setting up ImageGallery listeners"); //NON-NLS //TODO can we do anything usefull in an InjestJobEventListener? //IngestManager.getInstance().addIngestJobEventListener((PropertyChangeEvent evt) -> {}); IngestManager.getInstance().addIngestModuleEventListener(new IngestModuleEventListener()); @@ -546,7 +553,7 @@ public final class ImageGalleryController implements Executor { }); } catch (InterruptedException ex) { - LOGGER.log(Level.SEVERE, "Failed to run DB worker thread", ex); + LOGGER.log(Level.SEVERE, "Failed to run DB worker thread", ex); //NON-NLS } } } @@ -559,6 +566,8 @@ public final class ImageGalleryController implements Executor { /** * Abstract base class for task to be done on {@link DBWorkerThread} */ + @NbBundle.Messages({"ImageGalleryController.InnerTask.progress.name=progress", + "ImageGalleryController.InnerTask.message.name=status"}) static public abstract class InnerTask implements Runnable, Cancellable { public double getProgress() { @@ -577,8 +586,8 @@ public final class ImageGalleryController implements Executor { this.message.set(Status); } SimpleObjectProperty state = new SimpleObjectProperty<>(Worker.State.READY); - SimpleDoubleProperty progress = new SimpleDoubleProperty(this, "pregress"); - SimpleStringProperty message = new SimpleStringProperty(this, "status"); + SimpleDoubleProperty progress = new SimpleDoubleProperty(this, Bundle.ImageGalleryController_InnerTask_progress_name()); + SimpleStringProperty message = new SimpleStringProperty(this, Bundle.ImageGalleryController_InnerTask_message_name()); public SimpleDoubleProperty progressProperty() { return progress; @@ -659,7 +668,7 @@ public final class ImageGalleryController implements Executor { // This is one of the places where we get many errors if the case is closed during processing. // We don't want to print out a ton of exceptions if this is the case. if (Case.isCaseOpen()) { - Logger.getLogger(UpdateFileTask.class.getName()).log(Level.SEVERE, "Error in UpdateFile task"); + Logger.getLogger(UpdateFileTask.class.getName()).log(Level.SEVERE, "Error in UpdateFile task"); //NON-NLS } } } @@ -685,7 +694,7 @@ public final class ImageGalleryController implements Executor { // This is one of the places where we get many errors if the case is closed during processing. // We don't want to print out a ton of exceptions if this is the case. if (Case.isCaseOpen()) { - Logger.getLogger(RemoveFileTask.class.getName()).log(Level.SEVERE, "Case was closed out from underneath RemoveFile task"); + Logger.getLogger(RemoveFileTask.class.getName()).log(Level.SEVERE, "Case was closed out from underneath RemoveFile task"); //NON-NLS } } @@ -699,6 +708,10 @@ public final class ImageGalleryController implements Executor { * adds them to the Drawable DB. Uses the presence of a mimetype as an * approximation to 'analyzed'. */ + @NbBundle.Messages({"CopyAnalyzedFiles.populatingDb.status=populating analyzed image/video database", + "CopyAnalyzedFiles.committingDb.status=commiting image/video database", + "CopyAnalyzedFiles.stopCopy.status=Stopping copy to drawable db task.", + "CopyAnalyzedFiles.errPopulating.errMsg=There was an error populating Image Gallery database."}) static private class CopyAnalyzedFiles extends InnerTask { private final ImageGalleryController controller; @@ -712,28 +725,28 @@ public final class ImageGalleryController implements Executor { } static private final String FILE_EXTENSION_CLAUSE = - "(name LIKE '%." - + StringUtils.join(FileTypeUtils.getAllSupportedExtensions(), "' OR name LIKE '%.") + "(name LIKE '%." //NON-NLS + + StringUtils.join(FileTypeUtils.getAllSupportedExtensions(), "' OR name LIKE '%.") //NON-NLS + "')"; static private final String MIMETYPE_CLAUSE = - "(mime_type LIKE '" - + StringUtils.join(FileTypeUtils.getAllSupportedMimeTypes(), "' OR mime_type LIKE '") + "(mime_type LIKE '" //NON-NLS + + StringUtils.join(FileTypeUtils.getAllSupportedMimeTypes(), "' OR mime_type LIKE '") //NON-NLS + "') "; static private final String DRAWABLE_QUERY = //grab files with supported extension FILE_EXTENSION_CLAUSE //grab files with supported mime-types - + " OR " + MIMETYPE_CLAUSE + + " OR " + MIMETYPE_CLAUSE //NON-NLS //grab files with image or video mime-types even if we don't officially support them - + " OR mime_type LIKE 'video/%' OR mime_type LIKE 'image/%'"; - private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("populating analyzed image/video database"); + + " OR mime_type LIKE 'video/%' OR mime_type LIKE 'image/%'"; //NON-NLS + private ProgressHandle progressHandle = ProgressHandleFactory.createHandle(Bundle.CopyAnalyzedFiles_populatingDb_status()); @Override public void run() { progressHandle.start(); - updateMessage("populating analyzed image/video database"); + updateMessage(Bundle.CopyAnalyzedFiles_populatingDb_status()); try { //grab all files with supported extension or detected mime types @@ -747,7 +760,7 @@ public final class ImageGalleryController implements Executor { int units = 0; for (final AbstractFile f : files) { if (isCancelled()) { - LOGGER.log(Level.WARNING, "Task cancelled: not all contents may be transfered to drawable database."); + LOGGER.log(Level.WARNING, "Task cancelled: not all contents may be transfered to drawable database."); //NON-NLS progressHandle.finish(); break; } @@ -757,14 +770,16 @@ public final class ImageGalleryController implements Executor { if (known) { taskDB.removeFile(f.getId(), tr); //remove known files } else { - final Optional hasMimeType = FileTypeUtils.hasDrawableMimeType(f); - if (hasMimeType.isPresent()) { - if (hasMimeType.get()) { //supported mimetype => analyzed + Optional mimeType = FileTypeUtils.getMimeType(f); + if (mimeType.isPresent()) { + //mime type + if (FileTypeUtils.isDrawableMimeType(mimeType.get())) { //supported mimetype => analyzed taskDB.updateFile(DrawableFile.create(f, true, false), tr); } else { //unsupported mimtype => analyzed but shouldn't include taskDB.removeFile(f.getId(), tr); } } else { + //no mime tyoe if (FileTypeUtils.isDrawable(f)) { //no mime type but supported => add as not analyzed taskDB.insertFile(DrawableFile.create(f, false, false), tr); @@ -784,17 +799,17 @@ public final class ImageGalleryController implements Executor { progressHandle.finish(); - progressHandle = ProgressHandleFactory.createHandle("commiting image/video database"); - updateMessage("commiting image/video database"); + progressHandle = ProgressHandleFactory.createHandle(Bundle.CopyAnalyzedFiles_committingDb_status()); + updateMessage(Bundle.CopyAnalyzedFiles_committingDb_status()); updateProgress(1.0); progressHandle.start(); taskDB.commitTransaction(tr, true); } catch (TskCoreException ex) { - progressHandle.progress("Stopping copy to drawable db task."); - Logger.getLogger(CopyAnalyzedFiles.class.getName()).log(Level.WARNING, "Stopping copy to drawable db task. Failed to transfer all database contents: " + ex.getMessage()); - MessageNotifyUtil.Notify.warn("There was an error populating Image Gallery database.", ex.getMessage()); + progressHandle.progress(Bundle.CopyAnalyzedFiles_stopCopy_status()); + Logger.getLogger(CopyAnalyzedFiles.class.getName()).log(Level.WARNING, "Stopping copy to drawable db task. Failed to transfer all database contents: " + ex.getMessage()); //NON-NLS + MessageNotifyUtil.Notify.warn(Bundle.CopyAnalyzedFiles_errPopulating_errMsg(), ex.getMessage()); progressHandle.finish(); updateMessage(""); updateProgress(-1.0); @@ -816,6 +831,8 @@ public final class ImageGalleryController implements Executor { * TODO: create methods to simplify progress value/text updates to both * netbeans and ImageGallery progress/status */ + @NbBundle.Messages({"PrePopulateDataSourceFiles.prepopulatingDb.status=prepopulating image/video database", + "PrePopulateDataSourceFiles.committingDb.status=commiting image/video database"}) private class PrePopulateDataSourceFiles extends InnerTask { private final Content dataSource; @@ -826,9 +843,9 @@ public final class ImageGalleryController implements Executor { * check for supported images */ // (name like '.jpg' or name like '.png' ...) - private final String DRAWABLE_QUERY = "(name LIKE '%." + StringUtils.join(FileTypeUtils.getAllSupportedExtensions(), "' OR name LIKE '%.") + "') "; + private final String DRAWABLE_QUERY = "(name LIKE '%." + StringUtils.join(FileTypeUtils.getAllSupportedExtensions(), "' OR name LIKE '%.") + "') "; //NON-NLS - private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("prepopulating image/video database", this); + private ProgressHandle progressHandle = ProgressHandleFactory.createHandle(Bundle.PrePopulateDataSourceFiles_prepopulatingDb_status(), this); /** * @@ -848,10 +865,10 @@ public final class ImageGalleryController implements Executor { @Override public void run() { progressHandle.start(); - updateMessage("prepopulating image/video database"); + updateMessage(Bundle.PrePopulateDataSourceFiles_prepopulatingDb_status()); try { - String fsQuery = "(fs_obj_id IS NULL) "; //default clause + String fsQuery = "(fs_obj_id IS NULL) "; //default clause NON-NLS /* * NOTE: Logical files currently (Apr '15) have a null value for * fs_obj_id in DB. for them, we will not specify a fs_obj_id, @@ -872,10 +889,10 @@ public final class ImageGalleryController implements Executor { //use this clause to only grab files from the newly added filesystems. fsQuery = fileSystems.stream() .map(fileSystem -> String.valueOf(fileSystem.getId())) - .collect(Collectors.joining(" OR fs_obj_id = ", "(fs_obj_id = ", ") ")); + .collect(Collectors.joining(" OR fs_obj_id = ", "(fs_obj_id = ", ") ")); //NON-NLS } - final List files = getSleuthKitCase().findAllFilesWhere(fsQuery + " AND " + DRAWABLE_QUERY); + final List files = getSleuthKitCase().findAllFilesWhere(fsQuery + " AND " + DRAWABLE_QUERY); //NON-NLS progressHandle.switchToDeterminate(files.size()); //do in transaction @@ -883,7 +900,7 @@ public final class ImageGalleryController implements Executor { int units = 0; for (final AbstractFile f : files) { if (isCancelled()) { - LOGGER.log(Level.WARNING, "task cancelled: not all contents may be transfered to database"); + LOGGER.log(Level.WARNING, "task cancelled: not all contents may be transfered to database"); //NON-NLS progressHandle.finish(); break; } @@ -893,13 +910,13 @@ public final class ImageGalleryController implements Executor { } progressHandle.finish(); - progressHandle = ProgressHandleFactory.createHandle("commiting image/video database"); + progressHandle = ProgressHandleFactory.createHandle(Bundle.PrePopulateDataSourceFiles_committingDb_status()); progressHandle.start(); db.commitTransaction(tr, false); } catch (TskCoreException ex) { - Logger.getLogger(PrePopulateDataSourceFiles.class.getName()).log(Level.WARNING, "failed to transfer all database contents", ex); + Logger.getLogger(PrePopulateDataSourceFiles.class.getName()).log(Level.WARNING, "failed to transfer all database contents", ex); //NON-NLS } progressHandle.finish(); @@ -954,7 +971,7 @@ public final class ImageGalleryController implements Executor { } } catch (TskCoreException ex) { //TODO: What to do here? - LOGGER.log(Level.WARNING, "Unable to determine if file is drawable and not known. Not making any changes to DB", ex); + LOGGER.log(Level.WARNING, "Unable to determine if file is drawable and not known. Not making any changes to DB", ex); //NON-NLS throw new RuntimeException(ex); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryModule.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryModule.java index 0a37825f54..770df56132 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryModule.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryModule.java @@ -22,6 +22,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import org.apache.commons.lang3.StringUtils; import static org.apache.commons.lang3.StringUtils.isNotBlank; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableDB; @@ -30,11 +32,12 @@ import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; /** static definitions and utilities for the ImageGallery module */ +@NbBundle.Messages({"ImageGalleryModule.moduleName=Image Gallery"}) public class ImageGalleryModule { private static final Logger LOGGER = Logger.getLogger(ImageGalleryModule.class.getName()); - private static final String MODULE_NAME = "Image Gallery"; + private static final String MODULE_NAME = Bundle.ImageGalleryModule_moduleName(); static String getModuleName() { return MODULE_NAME; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java index be83d9e236..bb44a60ec1 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.imagegallery; +import java.awt.*; import java.awt.event.ActionEvent; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; @@ -83,17 +84,17 @@ final class ImageGalleryOptionsPanel extends javax.swing.JPanel { furtherDescriptionArea.setBackground(new java.awt.Color(240, 240, 240)); furtherDescriptionArea.setColumns(20); - furtherDescriptionArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N + furtherDescriptionArea.setFont(furtherDescriptionArea.getFont().deriveFont(Font.PLAIN, 11)); // NOI18N furtherDescriptionArea.setLineWrap(true); furtherDescriptionArea.setRows(5); furtherDescriptionArea.setText(NbBundle.getMessage(ImageGalleryOptionsPanel.class, "ImageGalleryOptionsPanel.furtherDescriptionArea.text")); // NOI18N furtherDescriptionArea.setWrapStyleWord(true); furtherDescriptionArea.setPreferredSize(new java.awt.Dimension(378, 74)); - infoIconLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/imagegallery/images/info-icon-16.png"))); // NOI18N + infoIconLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/imagegallery/images/info-icon-16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(infoIconLabel, NbBundle.getMessage(ImageGalleryOptionsPanel.class, "ImageGalleryOptionsPanel.infoIconLabel.text")); // NOI18N - unavailableDuringInjestLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/imagegallery/images/warning16.png"))); // NOI18N + unavailableDuringInjestLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/imagegallery/images/warning16.png"))); // NOI18N NON-NLS org.openide.awt.Mnemonics.setLocalizedText(unavailableDuringInjestLabel, NbBundle.getMessage(ImageGalleryOptionsPanel.class, "ImageGalleryOptionsPanel.unavailableDuringInjestLabel.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryPreferences.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryPreferences.java index 5a89b5f257..51c0b5cb85 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryPreferences.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryPreferences.java @@ -29,7 +29,7 @@ class ImageGalleryPreferences { private static final Preferences preferences = NbPreferences.forModule(ImageGalleryPreferences.class); /** key for the listening enabled for new cases setting */ - private static final String ENABLED_BY_DEFAULT = "enabled_by_default"; + private static final String ENABLED_BY_DEFAULT = "enabled_by_default"; //NON-NLS /** * Return setting of whether Image Analyzer should be automatically enabled diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java index d1e8f3a236..e927312ee3 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java @@ -68,7 +68,7 @@ import org.sleuthkit.autopsy.imagegallery.gui.navpanel.HashHitGroupList; }) public final class ImageGalleryTopComponent extends TopComponent implements ExplorerManager.Provider, Lookup.Provider { - public final static String PREFERRED_ID = "ImageGalleryTopComponent"; + public final static String PREFERRED_ID = "ImageGalleryTopComponent"; // NON-NLS private static final Logger LOGGER = Logger.getLogger(ImageGalleryTopComponent.class.getName()); private static boolean topComponentInitialized = false; @@ -81,11 +81,11 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl // } // } // timeLineController.openTimeLine(); - final ImageGalleryTopComponent tc = (ImageGalleryTopComponent) WindowManager.getDefault().findTopComponent("ImageGalleryTopComponent"); + final ImageGalleryTopComponent tc = (ImageGalleryTopComponent) WindowManager.getDefault().findTopComponent(PREFERRED_ID); if (tc != null) { topComponentInitialized = true; WindowManager.getDefault().isTopComponentFloating(tc); - Mode mode = WindowManager.getDefault().findMode("timeline"); + Mode mode = WindowManager.getDefault().findMode("timeline"); // NON-NLS if (mode != null) { mode.dockInto(tc); } @@ -96,12 +96,12 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl public static void closeTopComponent() { if (topComponentInitialized) { - final TopComponent etc = WindowManager.getDefault().findTopComponent("ImageGalleryTopComponent"); + final TopComponent etc = WindowManager.getDefault().findTopComponent(PREFERRED_ID); if (etc != null) { try { etc.close(); } catch (Exception e) { - LOGGER.log(Level.SEVERE, "failed to close ImageGalleryTopComponent", e); + LOGGER.log(Level.SEVERE, "failed to close " + PREFERRED_ID, e); // NON-NLS } } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/PerCaseProperties.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/PerCaseProperties.java index 75a35fc798..89a40977f3 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/PerCaseProperties.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/PerCaseProperties.java @@ -37,9 +37,9 @@ import org.sleuthkit.autopsy.coreutils.Logger; */ class PerCaseProperties { - public static final String ENABLED = "enabled"; + public static final String ENABLED = "enabled"; //NON-NLS - public static final String STALE = "stale"; + public static final String STALE = "stale"; //NON-NLS private final Case theCase; @@ -88,7 +88,7 @@ class PerCaseProperties { * @return true if the config exists, false otherwise. */ public synchronized boolean configExists(String moduleName) { - Path get = Paths.get(theCase.getModuleDirectory(), moduleName, theCase.getName() + ".properties"); + Path get = Paths.get(theCase.getModuleDirectory(), moduleName, theCase.getName() + ".properties"); //NON-NLS return Files.exists(get); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java index 67c4a10dfa..a0c962c775 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java @@ -101,7 +101,7 @@ public enum ThumbnailCache { try { return cache.get(file.getId(), () -> load(file)); } catch (UncheckedExecutionException | CacheLoader.InvalidCacheLoadException | ExecutionException ex) { - LOGGER.log(Level.WARNING, "Failed to load thumbnail for file: " + file.getName(), ex.getCause()); + LOGGER.log(Level.WARNING, "Failed to load thumbnail for file: " + file.getName(), ex.getCause()); //NON-NLS return null; } } @@ -111,7 +111,7 @@ public enum ThumbnailCache { try { return get(ImageGalleryController.getDefault().getFileFromId(fileID)); } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "Failed to load thumbnail for file: " + fileID, ex.getCause()); + LOGGER.log(Level.WARNING, "Failed to load thumbnail for file: " + fileID, ex.getCause()); //NON-NLS return null; } } @@ -142,9 +142,9 @@ public enum ThumbnailCache { return cachedThumbnail; } } catch (MalformedURLException ex) { - LOGGER.log(Level.WARNING, "Unable to parse cache file path: " + cachFile.getPath(), ex); + LOGGER.log(Level.WARNING, "Unable to parse cache file path: " + cachFile.getPath(), ex); //NON-NLS } catch (IOException ex) { - LOGGER.log(Level.WARNING, "Unable to read cache file " + cachFile.getPath(), ex); + LOGGER.log(Level.WARNING, "Unable to read cache file " + cachFile.getPath(), ex); //NON-NLS } } return null; @@ -176,7 +176,7 @@ public enum ThumbnailCache { return Optional.of(ImageUtils.getCachedThumbnailFile(file.getAbstractFile(), MAX_THUMBNAIL_SIZE)); } catch (Exception e) { - LOGGER.log(Level.WARNING, "Failed to create cache file.{0}", e.getLocalizedMessage()); + LOGGER.log(Level.WARNING, "Failed to create cache file.{0}", e.getLocalizedMessage()); //NON-NLS return Optional.empty(); } } @@ -193,7 +193,7 @@ public enum ThumbnailCache { try { cache.put(Long.MIN_VALUE, newGetThumbnailTask.get()); } catch (InterruptedException | ExecutionException ex) { - LOGGER.log(Level.SEVERE, "There was an exception even though thumbnail task succedded for. This should not be possible.", ex); + LOGGER.log(Level.SEVERE, "There was an exception even though thumbnail task succedded for. This should not be possible.", ex); //NON-NLS } } }); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java index 28a377aade..92e9a979c2 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java @@ -28,6 +28,8 @@ import javafx.application.Platform; import javafx.scene.control.Alert; import javafx.scene.control.Menu; import javax.swing.SwingWorker; + +import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; @@ -59,8 +61,12 @@ public class AddDrawableTagAction extends AddTagAction { } @Override + @NbBundle.Messages({"AddDrawableTagAction.displayName.plural=Tag Files", + "AddDrawableTagAction.displayName.singular=Tag File"}) protected String getActionDisplayName() { - return Utilities.actionsGlobalContext().lookupAll(AbstractFile.class).size() > 1 ? "Tag Files" : "Tag File"; + return Utilities.actionsGlobalContext().lookupAll(AbstractFile.class).size() > 1 + ? Bundle.AddDrawableTagAction_displayName_plural() + : Bundle.AddDrawableTagAction_displayName_singular(); } @Override @@ -70,6 +76,8 @@ public class AddDrawableTagAction extends AddTagAction { } @Override + @NbBundle.Messages({"# {0} - fileID", + "AddDrawableTagAction.addTagsToFiles.alert=Unable to tag file {0}."}) public void addTagsToFiles(TagName tagName, String comment, Set selectedFiles) { new SwingWorker() { @@ -78,7 +86,7 @@ public class AddDrawableTagAction extends AddTagAction { for (Long fileID : selectedFiles) { try { final DrawableFile file = controller.getFileFromId(fileID); - LOGGER.log(Level.INFO, "tagging {0} with {1} and comment {2}", new Object[]{file.getName(), tagName.getDisplayName(), comment}); + LOGGER.log(Level.INFO, "tagging {0} with {1} and comment {2}", new Object[]{file.getName(), tagName.getDisplayName(), comment}); //NON-NLS // check if the same tag is being added for the same abstract file. DrawableTagsManager tagsManager = controller.getTagsManager(); @@ -89,16 +97,16 @@ public class AddDrawableTagAction extends AddTagAction { .findAny(); if (duplicateTagName.isPresent()) { - LOGGER.log(Level.INFO, "{0} already tagged as {1}. Skipping.", new Object[]{file.getName(), tagName.getDisplayName()}); + LOGGER.log(Level.INFO, "{0} already tagged as {1}. Skipping.", new Object[]{file.getName(), tagName.getDisplayName()}); //NON-NLS } else { - LOGGER.log(Level.INFO, "Tagging {0} as {1}", new Object[]{file.getName(), tagName.getDisplayName()}); + LOGGER.log(Level.INFO, "Tagging {0} as {1}", new Object[]{file.getName(), tagName.getDisplayName()}); //NON-NLS controller.getTagsManager().addContentTag(file, tagName, comment); } } catch (TskCoreException tskCoreException) { - LOGGER.log(Level.SEVERE, "Error tagging file", tskCoreException); + LOGGER.log(Level.SEVERE, "Error tagging file", tskCoreException); //NON-NLS Platform.runLater(() -> { - new Alert(Alert.AlertType.ERROR, "Unable to tag file " + fileID + ".").show(); + new Alert(Alert.AlertType.ERROR, Bundle.AddDrawableTagAction_addTagsToFiles_alert(fileID)).show(); }); } } @@ -111,7 +119,7 @@ public class AddDrawableTagAction extends AddTagAction { try { get(); } catch (InterruptedException | ExecutionException ex) { - LOGGER.log(Level.SEVERE, "unexpected exception while tagging files", ex); + LOGGER.log(Level.SEVERE, "unexpected exception while tagging files", ex); //NON-NLS } } }.execute(); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddTagAction.java index 91c2af6503..7742ec583c 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddTagAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddTagAction.java @@ -25,6 +25,8 @@ import javafx.event.ActionEvent; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javax.swing.SwingUtilities; + +import org.openide.util.NbBundle; import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.actions.GetTagNameAndCommentDialog; @@ -71,13 +73,17 @@ abstract class AddTagAction { */ // @@@ This user interface has some significant usability issues and needs // to be reworked. + @NbBundle.Messages({"AddTagAction.menuItem.quickTag=Quick Tag", + "AddTagAction.menuItem.noTags=No tags", + "AddTagAction.menuItem.newTag=New Tag...", + "AddTagAction.menuItem.tagAndComment=Tag and Comment..."}) protected class TagMenu extends Menu { TagMenu(ImageGalleryController controller) { super(getActionDisplayName()); // Create a "Quick Tag" sub-menu. - Menu quickTagMenu = new Menu("Quick Tag"); + Menu quickTagMenu = new Menu(Bundle.AddTagAction_menuItem_quickTag()); getItems().add(quickTagMenu); /* @@ -87,7 +93,7 @@ abstract class AddTagAction { */ Collection tagNames = controller.getTagsManager().getNonCategoryTagNames(); if (tagNames.isEmpty()) { - MenuItem empty = new MenuItem("No tags"); + MenuItem empty = new MenuItem(Bundle.AddTagAction_menuItem_noTags()); empty.setDisable(true); quickTagMenu.getItems().add(empty); } else { @@ -105,7 +111,7 @@ abstract class AddTagAction { * Selecting this item initiates a dialog that can be used to create * or select a tag name and adds a tag with the resulting name. */ - MenuItem newTagMenuItem = new MenuItem("New Tag..."); + MenuItem newTagMenuItem = new MenuItem(Bundle.AddTagAction_menuItem_newTag()); newTagMenuItem.setOnAction((ActionEvent t) -> { SwingUtilities.invokeLater(() -> { TagName tagName = GetTagNameDialog.doDialog(getIGWindow()); @@ -122,7 +128,7 @@ abstract class AddTagAction { * name with an optional comment and adds a tag with the resulting * name. */ - MenuItem tagAndCommentItem = new MenuItem("Tag and Comment..."); + MenuItem tagAndCommentItem = new MenuItem(Bundle.AddTagAction_menuItem_tagAndComment()); tagAndCommentItem.setOnAction((ActionEvent t) -> { SwingUtilities.invokeLater(() -> { GetTagNameAndCommentDialog.TagNameAndComment tagNameAndComment = GetTagNameAndCommentDialog.doDialog(getIGWindow()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Back.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Back.java index 4488d94967..ca11b8420a 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Back.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Back.java @@ -24,20 +24,22 @@ import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; /** * */ //TODO: This and the corresponding timeline action are identical except for the type of the controller... abstract something! -jm +@NbBundle.Messages({"Back_diplayName=Back"}) public class Back extends Action { - private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/arrow-180.png", 16, 16, true, true, true); + private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/arrow-180.png", 16, 16, true, true, true); //NON-NLS private final ImageGalleryController controller; public Back(ImageGalleryController controller) { - super("Back"); + super(Bundle.Back_diplayName()); setGraphic(new ImageView(BACK_IMAGE)); setAccelerator(new KeyCodeCombination(KeyCode.LEFT, KeyCodeCombination.ALT_DOWN)); this.controller = controller; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java index 9d89b4fb1b..8c819373c8 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java @@ -35,6 +35,8 @@ import javafx.scene.input.KeyCodeCombination; import javax.annotation.Nonnull; import javax.annotation.concurrent.Immutable; import javax.swing.JOptionPane; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.Category; @@ -52,6 +54,7 @@ import org.sleuthkit.datamodel.TskCoreException; * TODO: since we are not using actionsGlobalContext anymore and this has * diverged from autopsy action, make this extend from controlsfx Action */ +@NbBundle.Messages({"CategorizeAction.displayName=Categorize"}) public class CategorizeAction extends AddTagAction { private static final Logger LOGGER = Logger.getLogger(CategorizeAction.class.getName()); @@ -71,7 +74,7 @@ public class CategorizeAction extends AddTagAction { @Override protected String getActionDisplayName() { - return "Categorize"; + return Bundle.CategorizeAction_displayName(); } @Override @@ -86,7 +89,7 @@ public class CategorizeAction extends AddTagAction { } public void addTagsToFiles(TagName tagName, String comment, Set selectedFiles, boolean createUndo) { - Logger.getAnonymousLogger().log(Level.INFO, "categorizing{0} as {1}", new Object[]{selectedFiles.toString(), tagName.getDisplayName()}); + Logger.getAnonymousLogger().log(Level.INFO, "categorizing{0} as {1}", new Object[]{selectedFiles.toString(), tagName.getDisplayName()}); //NON-NLS controller.queueDBWorkerTask(new CategorizeTask(selectedFiles, tagName, comment, createUndo)); } @@ -97,7 +100,7 @@ public class CategorizeAction extends AddTagAction { static private class CategoryMenu extends Menu { CategoryMenu(ImageGalleryController controller) { - super("Categorize"); + super(Bundle.CategorizeAction_displayName()); // Each category get an item in the sub-menu. Selecting one of these menu items adds // a tag with the associated category. @@ -114,6 +117,9 @@ public class CategorizeAction extends AddTagAction { } } + @NbBundle.Messages({"# {0} - fileID number", + "CategorizeTask.errorUnable.msg=Unable to categorize {0}.", + "CategorizeTask.errorUnable.title=Categorizing Error"}) private class CategorizeTask extends ImageGalleryController.InnerTask { private final Set fileIDs; @@ -132,6 +138,7 @@ public class CategorizeAction extends AddTagAction { } + @Override public void run() { final DrawableTagsManager tagsManager = controller.getTagsManager(); @@ -157,7 +164,7 @@ public class CategorizeAction extends AddTagAction { try { tagsManager.deleteContentTag(ct); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Error removing old categories result", ex); + LOGGER.log(Level.SEVERE, "Error removing old categories result", ex); //NON-NLS } }); } else { @@ -170,8 +177,11 @@ public class CategorizeAction extends AddTagAction { } } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Error categorizing result", ex); - JOptionPane.showMessageDialog(null, "Unable to categorize " + fileID + ".", "Categorizing Error", JOptionPane.ERROR_MESSAGE); + LOGGER.log(Level.SEVERE, "Error categorizing result", ex); //NON-NLS + JOptionPane.showMessageDialog(null, + Bundle.CategorizeTask_errorUnable_msg(fileID), + Bundle.CategorizeTask_errorUnable_title(), + JOptionPane.ERROR_MESSAGE); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java index 27ab1cd8b1..57f8afa2cf 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java @@ -23,6 +23,7 @@ import java.util.logging.Level; import javafx.event.ActionEvent; import javax.swing.SwingWorker; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; @@ -38,8 +39,9 @@ public class DeleteFollowUpTagAction extends Action { private static final Logger LOGGER = Logger.getLogger(DeleteFollowUpTagAction.class.getName()); + @NbBundle.Messages("DeleteFollwUpTagAction.displayName=Delete Follow Up Tag") public DeleteFollowUpTagAction(final ImageGalleryController controller, final DrawableFile file) { - super("Delete Follow Up Tag"); + super(Bundle.DeleteFollwUpTagAction_displayName()); setEventHandler((ActionEvent t) -> { new SwingWorker() { @@ -57,7 +59,7 @@ public class DeleteFollowUpTagAction extends Action { } } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to delete follow up tag.", ex); + LOGGER.log(Level.SEVERE, "Failed to delete follow up tag.", ex); //NON-NLS } return null; } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Forward.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Forward.java index c94cfc5ffb..1688d6e6d2 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Forward.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Forward.java @@ -24,20 +24,22 @@ import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; /** * */ //TODO: This and the corresponding timeline action are identical except for the type of the controller... abstract something! -jm +@NbBundle.Messages({"Forward.displayName=Forward"}) public class Forward extends Action { - private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/arrow.png", 16, 16, true, true, true); + private static final Image BACK_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/arrow.png", 16, 16, true, true, true); //NON-NLS private final ImageGalleryController controller; public Forward(ImageGalleryController controller) { - super("Forward"); + super(Bundle.Forward_displayName()); setGraphic(new ImageView(BACK_IMAGE)); setAccelerator(new KeyCodeCombination(KeyCode.RIGHT, KeyCodeCombination.ALT_DOWN)); this.controller = controller; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/NextUnseenGroup.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/NextUnseenGroup.java index 0d446cda84..a5e9215a6b 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/NextUnseenGroup.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/NextUnseenGroup.java @@ -26,6 +26,7 @@ import javafx.event.ActionEvent; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.GroupViewState; @@ -34,15 +35,17 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.GroupViewState; * Marks the currently fisplayed group as "seen" and advances to the next unseen * group */ +@NbBundle.Messages({"NextUnseenGroup.markGroupSeen=Mark Group Seen", + "NextUnseenGroup.nextUnseenGroup=Next Unseen group"}) public class NextUnseenGroup extends Action { private static final Image END = - new Image(NextUnseenGroup.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/control-stop.png")); + new Image(NextUnseenGroup.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/control-stop.png")); //NON-NLS private static final Image ADVANCE = - new Image(NextUnseenGroup.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/control-double.png")); + new Image(NextUnseenGroup.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/control-double.png")); //NON-NLS - private static final String MARK_GROUP_SEEN = "Mark Group Seen"; - private static final String NEXT_UNSEEN_GROUP = "Next Unseen group"; + private static final String MARK_GROUP_SEEN = Bundle.NextUnseenGroup_markGroupSeen(); + private static final String NEXT_UNSEEN_GROUP = Bundle.NextUnseenGroup_nextUnseenGroup(); private final ImageGalleryController controller; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java index b1f1f651b7..ea0d04abf8 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java @@ -41,10 +41,14 @@ import org.sleuthkit.autopsy.imagegallery.ImageGalleryTopComponent; @ActionRegistration( // iconBase = "org/sleuthkit/autopsy/imagegallery/images/lightbulb.png", lazy = false, displayName = "#CTL_OpenAction") -@Messages("CTL_OpenAction=View Images/Videos") +@Messages({"CTL_OpenAction=View Images/Videos", + "OpenAction.stale.confDlg.msg=The image / video database may be out of date. " + + "Do you want to update and listen for further ingest results?\n" + + "Choosing 'yes' will update the database and enable listening to future ingests.", + "OpenAction.stale.confDlg.title=Image Gallery"}) public final class OpenAction extends CallableSystemAction { - private static final String VIEW_IMAGES_VIDEOS = "View Images/Videos"; + private static final String VIEW_IMAGES_VIDEOS = Bundle.CTL_OpenAction(); private static final boolean fxInited = Installer.isJavaFxInited(); @@ -83,11 +87,8 @@ public final class OpenAction extends CallableSystemAction { if (ImageGalleryModule.isDrawableDBStale(currentCase)) { //drawable db is stale, ask what to do - int answer = JOptionPane.showConfirmDialog(WindowManager.getDefault().getMainWindow(), "The image / video database may be out of date. " + "Do you want to update and listen for further ingest results?\n" - + "Choosing 'yes' will update the database and enable listening to future ingests." - + " Choosing 'no' will display the out of date results." - + " Choosing 'cancel' will close the image /video gallery", - "Image Gallery", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); + int answer = JOptionPane.showConfirmDialog(WindowManager.getDefault().getMainWindow(), Bundle.OpenAction_stale_confDlg_msg(), + Bundle.OpenAction_stale_confDlg_title(), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); switch (answer) { case JOptionPane.YES_OPTION: diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java index ba33d077ba..20d6357241 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java @@ -32,14 +32,15 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; * Wraps {@link ExternalViewerAction} in a ControlsFX {@link Action} with * appropriate text and graphic */ -@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer"}) +@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer", + "OpenExternalViewerAction.displayName=External Viewer"}) public class OpenExternalViewerAction extends Action { - private static final Image EXTERNAL = new Image(OpenExternalViewerAction.class.getResource("/org/sleuthkit/autopsy/imagegallery/images/external.png").toExternalForm()); + private static final Image EXTERNAL = new Image(OpenExternalViewerAction.class.getResource("/org/sleuthkit/autopsy/imagegallery/images/external.png").toExternalForm()); //NON-NLS private static final ActionEvent ACTION_EVENT = new ActionEvent(OpenExternalViewerAction.class, ActionEvent.ACTION_PERFORMED, ""); //Swing ActionEvent //NOI18N public OpenExternalViewerAction(DrawableFile file) { - super("External Viewer"); + super(Bundle.OpenExternalViewerAction_displayName()); /** * TODO: why is the name passed to the action? it means we duplicate diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenHelpAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenHelpAction.java index a75a786317..265412146f 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenHelpAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenHelpAction.java @@ -44,9 +44,9 @@ public final class OpenHelpAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { try { - Desktop.getDesktop().browse(URI.create("http://sleuthkit.org/autopsy/docs/user-docs/4.0/image_gallery_page.html")); + Desktop.getDesktop().browse(URI.create("http://sleuthkit.org/autopsy/docs/user-docs/4.0/image_gallery_page.html")); //NON-NLS } catch (IOException ex) { - Logger.getLogger(OpenHelpAction.class.getName()).log(Level.SEVERE, "failed to open help page", ex); + Logger.getLogger(OpenHelpAction.class.getName()).log(Level.SEVERE, "failed to open help page", ex); //NON-NLS } } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/RedoAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/RedoAction.java index e3ce54cd7c..2e0f4d0d9d 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/RedoAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/RedoAction.java @@ -23,17 +23,19 @@ import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; /** * Action that redoes the last undone command */ +@NbBundle.Messages({"RedoAction.name=Redo"}) public class RedoAction extends Action { - private static final Image REDO_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/redo.png", 16, 16, true, true, true); + private static final Image REDO_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/redo.png", 16, 16, true, true, true); //NON-NLS public RedoAction(ImageGalleryController controller) { - super("Redo"); + super(Bundle.RedoAction_name()); setGraphic(new ImageView(REDO_IMAGE)); setAccelerator(new KeyCodeCombination(KeyCode.Y, KeyCodeCombination.CONTROL_DOWN)); setEventHandler(actionEvent -> controller.getUndoManager().redo()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/UndoAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/UndoAction.java index 0285c57bb7..1cc673808f 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/UndoAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/UndoAction.java @@ -23,17 +23,19 @@ import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import org.controlsfx.control.action.Action; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; /** * Action that undoes the last undoable command */ +@NbBundle.Messages({"UndoAction.displayName=Undo"}) public class UndoAction extends Action { - private static final Image UNDO_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/undo.png", 16, 16, true, true, true); + private static final Image UNDO_IMAGE = new Image("/org/sleuthkit/autopsy/imagegallery/images/undo.png", 16, 16, true, true, true); //NON-NLS public UndoAction(ImageGalleryController controller) { - super("Undo"); + super(Bundle.UndoAction_displayName()); setGraphic(new ImageView(UNDO_IMAGE)); setAccelerator(new KeyCodeCombination(KeyCode.Z, KeyCodeCombination.CONTROL_DOWN)); setEventHandler(actionEvent -> controller.getUndoManager().undo()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/Category.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/Category.java index 1567a1b2b4..5717828fe7 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/Category.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/Category.java @@ -24,10 +24,17 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; import javafx.scene.paint.Color; +import org.openide.util.NbBundle; /** * Enum to represent the six categories in the DHS image categorization scheme. */ +@NbBundle.Messages({"Category.one=CAT-1: Child Exploitation (Illegal)", + "Category.two=CAT-2: Child Exploitation (Non-Illegal/Age Difficult)", + "Category.three=CAT-3: CGI/Animation (Child Exploitive)", + "Category.four=CAT-4: Exemplar/Comparison (Internal Use Only)", + "Category.five=CAT-5: Non-pertinent", + "Category.zero=CAT-0: Uncategorized"}) public enum Category { /* @@ -35,12 +42,12 @@ public enum Category { * preserves the fact that lower category numbers are first/most sever, * except 0 which is last */ - ONE(Color.RED, 1, "CAT-1: Child Exploitation (Illegal)"), - TWO(Color.ORANGE, 2, "CAT-2: Child Exploitation (Non-Illegal/Age Difficult)"), - THREE(Color.YELLOW, 3, "CAT-3: CGI/Animation (Child Exploitive)"), - FOUR(Color.BISQUE, 4, "CAT-4: Exemplar/Comparison (Internal Use Only)"), - FIVE(Color.GREEN, 5, "CAT-5: Non-pertinent"), - ZERO(Color.LIGHTGREY, 0, "CAT-0: Uncategorized"); + ONE(Color.RED, 1, Bundle.Category_one()), + TWO(Color.ORANGE, 2, Bundle.Category_two()), + THREE(Color.YELLOW, 3, Bundle.Category_three()), + FOUR(Color.BISQUE, 4, Bundle.Category_four()), + FIVE(Color.GREEN, 5, Bundle.Category_five()), + ZERO(Color.LIGHTGREY, 0, Bundle.Category_zero()); public static ImmutableList getNonZeroCategories() { return nonZeroCategories; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java index d2018d422c..464c2492b0 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java @@ -68,8 +68,8 @@ public class CategoryManager { * Used to distribute {@link CategoryChangeEvent}s */ private final EventBus categoryEventBus = new AsyncEventBus(Executors.newSingleThreadExecutor( - new BasicThreadFactory.Builder().namingPattern("Category Event Bus").uncaughtExceptionHandler((Thread t, Throwable e) -> { - LOGGER.log(Level.SEVERE, "Uncaught exception in category event bus handler", e); + new BasicThreadFactory.Builder().namingPattern("Category Event Bus").uncaughtExceptionHandler((Thread t, Throwable e) -> { //NON-NLS + LOGGER.log(Level.SEVERE, "Uncaught exception in category event bus handler", e); //NON-NLS }).build() )); @@ -176,7 +176,7 @@ public class CategoryManager { longAdder.add(db.getCategoryCount(cat)); longAdder.increment(); } catch (IllegalStateException ex) { - LOGGER.log(Level.WARNING, "Case closed while getting files"); + LOGGER.log(Level.WARNING, "Case closed while getting files"); //NON-NLS } return longAdder; } @@ -210,8 +210,8 @@ public class CategoryManager { try { categoryEventBus.unregister(listener); } catch (IllegalArgumentException e) { - if (e.getMessage().contains("missing event subscriber for an annotated method. Is " + listener + " registered?")) { - LOGGER.log(Level.WARNING, "Attempted to unregister {0} for category change events, but it was not registered.", listener.toString()); + if (e.getMessage().contains("missing event subscriber for an annotated method. Is " + listener + " registered?")) { //NON-NLS + LOGGER.log(Level.WARNING, "Attempted to unregister {0} for category change events, but it was not registered.", listener.toString()); //NON-NLS } else { throw e; } @@ -254,12 +254,12 @@ public class CategoryManager { try { tagsManager.deleteContentTag(ct); } catch (TskCoreException tskException) { - LOGGER.log(Level.SEVERE, "Failed to delete content tag. Unable to maintain categories in a consistent state.", tskException); + LOGGER.log(Level.SEVERE, "Failed to delete content tag. Unable to maintain categories in a consistent state.", tskException); //NON-NLS } } } } catch (TskCoreException tskException) { - LOGGER.log(Level.SEVERE, "Failed to get content tags for content. Unable to maintain category in a consistent state.", tskException); + LOGGER.log(Level.SEVERE, "Failed to get content tags for content. Unable to maintain category in a consistent state.", tskException); //NON-NLS } Category newCat = CategoryManager.categoryFromTagName(addedTag.getName()); if (newCat != Category.ZERO) { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java index eb3a7ed64d..8222c1effe 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java @@ -27,6 +27,7 @@ import javafx.beans.property.ReadOnlyStringWrapper; import javafx.beans.property.StringProperty; import javafx.scene.image.Image; import org.apache.commons.lang3.StringUtils; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.datamodel.TagName; @@ -37,22 +38,37 @@ import org.sleuthkit.datamodel.TagName; * TODO: Review and refactor DrawableAttribute related code with an eye to usage * of type paramaters and multivalued attributes */ +@NbBundle.Messages({"DrawableAttribute.md5hash=MD5 Hash", + "DrawableAttribute.name=Name", + "DrawableAttribute.analyzed=Analyzed", + "DrawableAttribute.category=Category", + "DrawableAttribute.tags=Tags", + "DrawableAttribute.path=Path", + "DrawableAttribute.createdTime=Created Time", + "DrawableAttribute.modifiedTime=Modified Time", + "DrawableAttribute.cameraMake=Camera Make", + "DrawableAttribute.cameraModel=Camera Model", + "DrawableAttribute.hashSet=Hashset", + "DrawableAttribute.intObjID=Internal Object ID", + "DrawableAttribute.width=Width", + "DrawableAttribute.height=Height", + "DrawableAttribute.mimeType=MIME type"}) public class DrawableAttribute> { public final static DrawableAttribute MD5_HASH = - new DrawableAttribute<>(AttributeName.MD5_HASH, "MD5 Hash", + new DrawableAttribute<>(AttributeName.MD5_HASH, Bundle.DrawableAttribute_md5hash(), false, - "icon-hashtag.png", + "icon-hashtag.png", // NON-NLS f -> Collections.singleton(f.getMd5Hash())); public final static DrawableAttribute NAME = - new DrawableAttribute<>(AttributeName.NAME, "Name", + new DrawableAttribute<>(AttributeName.NAME, Bundle.DrawableAttribute_name(), true, - "folder-rename.png", + "folder-rename.png", //NON-NLS f -> Collections.singleton(f.getName())); public final static DrawableAttribute ANALYZED = - new DrawableAttribute<>(AttributeName.ANALYZED, "Analyzed", + new DrawableAttribute<>(AttributeName.ANALYZED, Bundle.DrawableAttribute_analyzed(), true, "", f -> Collections.singleton(f.isAnalyzed())); @@ -66,75 +82,75 @@ public class DrawableAttribute> { * advantage. move categories into DrawableDB? */ public final static DrawableAttribute CATEGORY = - new DrawableAttribute<>(AttributeName.CATEGORY, "Category", + new DrawableAttribute<>(AttributeName.CATEGORY, Bundle.DrawableAttribute_category(), false, - "category-icon.png", + "category-icon.png", //NON-NLS f -> Collections.singleton(f.getCategory())); public final static DrawableAttribute TAGS = - new DrawableAttribute<>(AttributeName.TAGS, "Tags", + new DrawableAttribute<>(AttributeName.TAGS, Bundle.DrawableAttribute_tags(), false, - "tag_red.png", + "tag_red.png", //NON-NLS DrawableFile::getTagNames); public final static DrawableAttribute PATH = - new DrawableAttribute<>(AttributeName.PATH, "Path", + new DrawableAttribute<>(AttributeName.PATH, Bundle.DrawableAttribute_path(), true, - "folder_picture.png", + "folder_picture.png", //NON-NLS f -> Collections.singleton(f.getDrawablePath())); public final static DrawableAttribute CREATED_TIME = - new DrawableAttribute<>(AttributeName.CREATED_TIME, "Created Time", + new DrawableAttribute<>(AttributeName.CREATED_TIME, Bundle.DrawableAttribute_createdTime(), true, - "clock--plus.png", + "clock--plus.png", //NON-NLS f -> Collections.singleton(ContentUtils.getStringTime(f.getCrtime(), f))); public final static DrawableAttribute MODIFIED_TIME = - new DrawableAttribute<>(AttributeName.MODIFIED_TIME, "Modified Time", + new DrawableAttribute<>(AttributeName.MODIFIED_TIME, Bundle.DrawableAttribute_modifiedTime(), true, - "clock--pencil.png", + "clock--pencil.png", //NON-NLS f -> Collections.singleton(ContentUtils.getStringTime(f.getMtime(), f))); public final static DrawableAttribute MAKE = - new DrawableAttribute<>(AttributeName.MAKE, "Camera Make", + new DrawableAttribute<>(AttributeName.MAKE, Bundle.DrawableAttribute_cameraMake(), true, - "camera.png", + "camera.png", //NON-NLS f -> Collections.singleton(f.getMake())); public final static DrawableAttribute MODEL = - new DrawableAttribute<>(AttributeName.MODEL, "Camera Model", + new DrawableAttribute<>(AttributeName.MODEL, Bundle.DrawableAttribute_cameraModel(), true, - "camera.png", + "camera.png", //NON-NLS f -> Collections.singleton(f.getModel())); public final static DrawableAttribute HASHSET = - new DrawableAttribute<>(AttributeName.HASHSET, "Hashset", + new DrawableAttribute<>(AttributeName.HASHSET, Bundle.DrawableAttribute_hashSet(), true, - "hashset_hits.png", + "hashset_hits.png", //NON-NLS DrawableFile::getHashSetNamesUnchecked); public final static DrawableAttribute OBJ_ID = - new DrawableAttribute<>(AttributeName.OBJ_ID, "Internal Object ID", + new DrawableAttribute<>(AttributeName.OBJ_ID, Bundle.DrawableAttribute_intObjID(), true, "", f -> Collections.singleton(f.getId())); public final static DrawableAttribute WIDTH = - new DrawableAttribute<>(AttributeName.WIDTH, "Width", + new DrawableAttribute<>(AttributeName.WIDTH, Bundle.DrawableAttribute_width(), false, - "arrow-resize.png", + "arrow-resize.png", //NON-NLS f -> Collections.singleton(f.getWidth())); public final static DrawableAttribute HEIGHT = - new DrawableAttribute<>(AttributeName.HEIGHT, "Height", + new DrawableAttribute<>(AttributeName.HEIGHT, Bundle.DrawableAttribute_height(), false, - "arrow-resize-090.png", + "arrow-resize-090.png", //NON-NLS f -> Collections.singleton(f.getHeight())); public final static DrawableAttribute MIME_TYPE = - new DrawableAttribute<>(AttributeName.MIME_TYPE, "MIME type", + new DrawableAttribute<>(AttributeName.MIME_TYPE, Bundle.DrawableAttribute_mimeType(), false, - "mime_types.png", + "mime_types.png", //NON-NLS f -> Collections.singleton(f.getMIMEType())); final private static List< DrawableAttribute> groupables = @@ -170,7 +186,7 @@ public class DrawableAttribute> { * time they are needed */ if (null == icon && StringUtils.isNotBlank(imageName)) { - this.icon = new Image("org/sleuthkit/autopsy/imagegallery/images/" + imageName, true); + this.icon = new Image("org/sleuthkit/autopsy/imagegallery/images/" + imageName, true); //NON-NLS } return icon; } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index 61ef672bc2..034fbe3b03 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -42,6 +42,7 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; import java.util.stream.Collectors; +import javax.annotation.Nonnull; import javax.annotation.concurrent.GuardedBy; import javax.swing.SortOrder; import org.apache.commons.lang3.StringUtils; @@ -77,11 +78,11 @@ public final class DrawableDB { private static final org.sleuthkit.autopsy.coreutils.Logger LOGGER = Logger.getLogger(DrawableDB.class.getName()); //column name constants////////////////////// - private static final String ANALYZED = "analyzed"; + private static final String ANALYZED = "analyzed"; //NON-NLS - private static final String OBJ_ID = "obj_id"; + private static final String OBJ_ID = "obj_id"; //NON-NLS - private static final String HASH_SET_NAME = "hash_set_name"; + private static final String HASH_SET_NAME = "hash_set_name"; //NON-NLS private final PreparedStatement insertHashSetStmt; @@ -140,7 +141,7 @@ public final class DrawableDB { try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException ex) { - LOGGER.log(Level.SEVERE, "Failed to load sqlite JDBC driver", ex); + LOGGER.log(Level.SEVERE, "Failed to load sqlite JDBC driver", ex); //NON-NLS } } private final SleuthkitCase tskCase; @@ -201,33 +202,33 @@ public final class DrawableDB { Files.createDirectories(dbPath.getParent()); if (initializeDBSchema()) { updateFileStmt = prepareStatement( - "INSERT OR REPLACE INTO drawable_files (obj_id , path, name, created_time, modified_time, make, model, analyzed) " - + "VALUES (?,?,?,?,?,?,?,?)"); + "INSERT OR REPLACE INTO drawable_files (obj_id , path, name, created_time, modified_time, make, model, analyzed) " //NON-NLS + + "VALUES (?,?,?,?,?,?,?,?)"); //NON-NLS insertFileStmt = prepareStatement( - "INSERT OR IGNORE INTO drawable_files (obj_id , path, name, created_time, modified_time, make, model, analyzed) " - + "VALUES (?,?,?,?,?,?,?,?)"); + "INSERT OR IGNORE INTO drawable_files (obj_id , path, name, created_time, modified_time, make, model, analyzed) " //NON-NLS + + "VALUES (?,?,?,?,?,?,?,?)"); //NON-NLS - removeFileStmt = prepareStatement("DELETE FROM drawable_files WHERE obj_id = ?"); + removeFileStmt = prepareStatement("DELETE FROM drawable_files WHERE obj_id = ?"); //NON-NLS - pathGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE path = ? ", DrawableAttribute.PATH); - nameGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE name = ? ", DrawableAttribute.NAME); - created_timeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE created_time = ? ", DrawableAttribute.CREATED_TIME); - modified_timeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE modified_time = ? ", DrawableAttribute.MODIFIED_TIME); - makeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE make = ? ", DrawableAttribute.MAKE); - modelGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE model = ? ", DrawableAttribute.MODEL); - analyzedGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE analyzed = ?", DrawableAttribute.ANALYZED); - hashSetGroupStmt = prepareStatement("SELECT drawable_files.obj_id AS obj_id, analyzed FROM drawable_files , hash_sets , hash_set_hits WHERE drawable_files.obj_id = hash_set_hits.obj_id AND hash_sets.hash_set_id = hash_set_hits.hash_set_id AND hash_sets.hash_set_name = ?", DrawableAttribute.HASHSET); + pathGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE path = ? ", DrawableAttribute.PATH); //NON-NLS + nameGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE name = ? ", DrawableAttribute.NAME); //NON-NLS + created_timeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE created_time = ? ", DrawableAttribute.CREATED_TIME); //NON-NLS + modified_timeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE modified_time = ? ", DrawableAttribute.MODIFIED_TIME); //NON-NLS + makeGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE make = ? ", DrawableAttribute.MAKE); //NON-NLS + modelGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE model = ? ", DrawableAttribute.MODEL); //NON-NLS + analyzedGroupStmt = prepareStatement("SELECT obj_id , analyzed FROM drawable_files WHERE analyzed = ?", DrawableAttribute.ANALYZED); //NON-NLS + hashSetGroupStmt = prepareStatement("SELECT drawable_files.obj_id AS obj_id, analyzed FROM drawable_files , hash_sets , hash_set_hits WHERE drawable_files.obj_id = hash_set_hits.obj_id AND hash_sets.hash_set_id = hash_set_hits.hash_set_id AND hash_sets.hash_set_name = ?", DrawableAttribute.HASHSET); //NON-NLS - updateGroupStmt = prepareStatement("insert or replace into groups (seen, value, attribute) values( ?, ? , ?)"); - insertGroupStmt = prepareStatement("insert or ignore into groups (value, attribute) values (?,?)"); + updateGroupStmt = prepareStatement("insert or replace into groups (seen, value, attribute) values( ?, ? , ?)"); //NON-NLS + insertGroupStmt = prepareStatement("insert or ignore into groups (value, attribute) values (?,?)"); //NON-NLS - groupSeenQueryStmt = prepareStatement("SELECT seen FROM groups WHERE value = ? AND attribute = ?"); + groupSeenQueryStmt = prepareStatement("SELECT seen FROM groups WHERE value = ? AND attribute = ?"); //NON-NLS - selectHashSetNamesStmt = prepareStatement("SELECT DISTINCT hash_set_name FROM hash_sets"); - insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) VALUES (?)"); - selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?"); + selectHashSetNamesStmt = prepareStatement("SELECT DISTINCT hash_set_name FROM hash_sets"); //NON-NLS + insertHashSetStmt = prepareStatement("INSERT OR IGNORE INTO hash_sets (hash_set_name) VALUES (?)"); //NON-NLS + selectHashSetStmt = prepareStatement("SELECT hash_set_id FROM hash_sets WHERE hash_set_name = ?"); //NON-NLS - insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, obj_id) VALUES (?,?)"); + insertHashHitStmt = prepareStatement("INSERT OR IGNORE INTO hash_set_hits (hash_set_id, obj_id) VALUES (?,?)"); //NON-NLS for (Category cat : Category.values()) { insertGroup(cat.getDisplayName(), DrawableAttribute.CATEGORY); @@ -289,12 +290,12 @@ public final class DrawableDB { public static DrawableDB getDrawableDB(Path dbPath, ImageGalleryController controller) { try { - return new DrawableDB(dbPath.resolve("drawable.db"), controller); + return new DrawableDB(dbPath.resolve("drawable.db"), controller); //NON-NLS } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "sql error creating database connection", ex); + LOGGER.log(Level.SEVERE, "sql error creating database connection", ex); //NON-NLS return null; } catch (ExceptionInInitializerError | IOException ex) { - LOGGER.log(Level.SEVERE, "error creating database connection", ex); + LOGGER.log(Level.SEVERE, "error creating database connection", ex); //NON-NLS return null; } } @@ -304,33 +305,33 @@ public final class DrawableDB { //this should match Sleuthkit db setupt try (Statement statement = con.createStatement()) { //reduce i/o operations, we have no OS crash recovery anyway - statement.execute("PRAGMA synchronous = OFF;"); + statement.execute("PRAGMA synchronous = OFF;"); //NON-NLS //allow to query while in transaction - no need read locks - statement.execute("PRAGMA read_uncommitted = True;"); + statement.execute("PRAGMA read_uncommitted = True;"); //NON-NLS //TODO: do we need this? - statement.execute("PRAGMA foreign_keys = ON"); + statement.execute("PRAGMA foreign_keys = ON"); //NON-NLS //TODO: test this - statement.execute("PRAGMA journal_mode = MEMORY"); + statement.execute("PRAGMA journal_mode = MEMORY"); //NON-NLS // //we don't use this feature, so turn it off for minimal speed up on queries //this is deprecated and not recomended - statement.execute("PRAGMA count_changes = OFF;"); + statement.execute("PRAGMA count_changes = OFF;"); //NON-NLS //this made a big difference to query speed - statement.execute("PRAGMA temp_store = MEMORY"); + statement.execute("PRAGMA temp_store = MEMORY"); //NON-NLS //this made a modest improvement in query speeds - statement.execute("PRAGMA cache_size = 50000"); + statement.execute("PRAGMA cache_size = 50000"); //NON-NLS //we never delete anything so... - statement.execute("PRAGMA auto_vacuum = 0"); + statement.execute("PRAGMA auto_vacuum = 0"); //NON-NLS } try { - LOGGER.log(Level.INFO, String.format("sqlite-jdbc version %s loaded in %s mode", + LOGGER.log(Level.INFO, String.format("sqlite-jdbc version %s loaded in %s mode", //NON-NLS SQLiteJDBCLoader.getVersion(), SQLiteJDBCLoader.isNativeMode() - ? "native" : "pure-java")); + ? "native" : "pure-java")); //NON-NLS } catch (Exception exception) { - LOGGER.log(Level.WARNING, "exception while checking sqlite-jdbc version and mode", exception); + LOGGER.log(Level.WARNING, "exception while checking sqlite-jdbc version and mode", exception); //NON-NLS } } @@ -349,92 +350,92 @@ public final class DrawableDB { setPragmas(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem accessing database", ex); + LOGGER.log(Level.SEVERE, "problem accessing database", ex); //NON-NLS return false; } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists drawable_files " - + "( obj_id INTEGER PRIMARY KEY, " - + " path VARCHAR(255), " - + " name VARCHAR(255), " - + " created_time integer, " - + " modified_time integer, " - + " make VARCHAR(255), " - + " model VARCHAR(255), " - + " analyzed integer DEFAULT 0)"; + String sql = "CREATE TABLE if not exists drawable_files " //NON-NLS + + "( obj_id INTEGER PRIMARY KEY, " //NON-NLS + + " path VARCHAR(255), " //NON-NLS + + " name VARCHAR(255), " //NON-NLS + + " created_time integer, " //NON-NLS + + " modified_time integer, " //NON-NLS + + " make VARCHAR(255), " //NON-NLS + + " model VARCHAR(255), " //NON-NLS + + " analyzed integer DEFAULT 0)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating drawable_files table", ex); + LOGGER.log(Level.SEVERE, "problem creating drawable_files table", ex); //NON-NLS return false; } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists groups " - + "(group_id INTEGER PRIMARY KEY, " - + " value VARCHAR(255) not null, " - + " attribute VARCHAR(255) not null, " - + " seen integer DEFAULT 0, " - + " UNIQUE(value, attribute) )"; + String sql = "CREATE TABLE if not exists groups " //NON-NLS + + "(group_id INTEGER PRIMARY KEY, " //NON-NLS + + " value VARCHAR(255) not null, " //NON-NLS + + " attribute VARCHAR(255) not null, " //NON-NLS + + " seen integer DEFAULT 0, " //NON-NLS + + " UNIQUE(value, attribute) )"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating groups table", ex); + LOGGER.log(Level.SEVERE, "problem creating groups table", ex); //NON-NLS return false; } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists hash_sets " - + "( hash_set_id INTEGER primary key," - + " hash_set_name VARCHAR(255) UNIQUE NOT NULL)"; + String sql = "CREATE TABLE if not exists hash_sets " //NON-NLS + + "( hash_set_id INTEGER primary key," //NON-NLS + + " hash_set_name VARCHAR(255) UNIQUE NOT NULL)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex); + LOGGER.log(Level.SEVERE, "problem creating hash_sets table", ex); //NON-NLS return false; } try (Statement stmt = con.createStatement()) { - String sql = "CREATE TABLE if not exists hash_set_hits " - + "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, " - + " obj_id INTEGER REFERENCES drawable_files(obj_id) not null, " - + " PRIMARY KEY (hash_set_id, obj_id))"; + String sql = "CREATE TABLE if not exists hash_set_hits " //NON-NLS + + "(hash_set_id INTEGER REFERENCES hash_sets(hash_set_id) not null, " //NON-NLS + + " obj_id INTEGER REFERENCES drawable_files(obj_id) not null, " //NON-NLS + + " PRIMARY KEY (hash_set_id, obj_id))"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex); + LOGGER.log(Level.SEVERE, "problem creating hash_set_hits table", ex); //NON-NLS return false; } try (Statement stmt = con.createStatement()) { - String sql = "CREATE INDEX if not exists path_idx ON drawable_files(path)"; + String sql = "CREATE INDEX if not exists path_idx ON drawable_files(path)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem creating path_idx", ex); + LOGGER.log(Level.WARNING, "problem creating path_idx", ex); //NON-NLS } try (Statement stmt = con.createStatement()) { - String sql = "CREATE INDEX if not exists name_idx ON drawable_files(name)"; + String sql = "CREATE INDEX if not exists name_idx ON drawable_files(name)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem creating name_idx", ex); + LOGGER.log(Level.WARNING, "problem creating name_idx", ex); //NON-NLS } try (Statement stmt = con.createStatement()) { - String sql = "CREATE INDEX if not exists make_idx ON drawable_files(make)"; + String sql = "CREATE INDEX if not exists make_idx ON drawable_files(make)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem creating make_idx", ex); + LOGGER.log(Level.WARNING, "problem creating make_idx", ex); //NON-NLS } try (Statement stmt = con.createStatement()) { - String sql = "CREATE INDEX if not exists model_idx ON drawable_files(model)"; + String sql = "CREATE INDEX if not exists model_idx ON drawable_files(model)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem creating model_idx", ex); + LOGGER.log(Level.WARNING, "problem creating model_idx", ex); //NON-NLS } try (Statement stmt = con.createStatement()) { - String sql = "CREATE INDEX if not exists analyzed_idx ON drawable_files(analyzed)"; + String sql = "CREATE INDEX if not exists analyzed_idx ON drawable_files(analyzed)"; //NON-NLS stmt.execute(sql); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem creating analyzed_idx", ex); + LOGGER.log(Level.WARNING, "problem creating analyzed_idx", ex); //NON-NLS } return true; @@ -455,7 +456,7 @@ public final class DrawableDB { closeStatements(); con.close(); } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "Failed to close connection to drawable.db", ex); + LOGGER.log(Level.WARNING, "Failed to close connection to drawable.db", ex); //NON-NLS } } con = null; @@ -464,10 +465,10 @@ public final class DrawableDB { public void openDBCon() { try { if (con == null || con.isClosed()) { - con = DriverManager.getConnection("jdbc:sqlite:" + dbPath.toString()); + con = DriverManager.getConnection("jdbc:sqlite:" + dbPath.toString()); //NON-NLS } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "Failed to open connection to drawable.db", ex); + LOGGER.log(Level.WARNING, "Failed to open connection to drawable.db", ex); //NON-NLS } } @@ -518,7 +519,7 @@ public final class DrawableDB { names.add(rs.getString(HASH_SET_NAME)); } } catch (SQLException sQLException) { - LOGGER.log(Level.WARNING, "failed to get hash set names", sQLException); + LOGGER.log(Level.WARNING, "failed to get hash set names", sQLException); //NON-NLS } finally { dbReadUnlock(); } @@ -533,11 +534,11 @@ public final class DrawableDB { groupSeenQueryStmt.setString(2, groupKey.getAttribute().attrName.toString()); try (ResultSet rs = groupSeenQueryStmt.executeQuery()) { while (rs.next()) { - return rs.getBoolean("seen"); + return rs.getBoolean("seen"); //NON-NLS } } } catch (SQLException ex) { - String msg = String.format("Failed to get is group seen for group key %s", groupKey.getValueDisplayName()); + String msg = String.format("Failed to get is group seen for group key %s", groupKey.getValueDisplayName()); //NON-NLS LOGGER.log(Level.WARNING, msg, ex); } finally { dbReadUnlock(); @@ -555,7 +556,7 @@ public final class DrawableDB { updateGroupStmt.setString(3, gk.getAttribute().attrName.toString()); updateGroupStmt.execute(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error marking group as seen", ex); + LOGGER.log(Level.SEVERE, "Error marking group as seen", ex); //NON-NLS } finally { dbWriteUnlock(); } @@ -588,18 +589,27 @@ public final class DrawableDB { insertOrUpdateFile(f, tr, updateFileStmt); } - private void insertOrUpdateFile(DrawableFile f, DrawableTransaction tr, PreparedStatement stmt) { + /** + * Update (or insert) a file in(to) the drawable db. Weather this is an + * insert or an update depends on the given prepared statement. This method + * also inserts hash set hits and groups into their respective tables for + * the given file. + * + * //TODO: this is a kinda weird design, is their a better way? //TODO: + * implement batch version -jm + * + * @param f The file to insert. + * @param tr a transaction to use, must not be null + * @param stmt the statement that does the actull inserting + */ + private void insertOrUpdateFile(DrawableFile f, @Nonnull DrawableTransaction tr, @Nonnull PreparedStatement stmt) { - //TODO: implement batch version -jm if (tr.isClosed()) { throw new IllegalArgumentException("can't update database with closed transaction"); } dbWriteLock(); try { - // Update the list of file IDs in memory - addImageFileToList(f.getId()); - // "INSERT OR IGNORE/ INTO drawable_files (path, name, created_time, modified_time, make, model, analyzed)" stmt.setLong(1, f.getId()); stmt.setString(2, f.getDrawablePath()); @@ -610,6 +620,8 @@ public final class DrawableDB { stmt.setString(7, f.getModel()); stmt.setBoolean(8, f.isAnalyzed()); stmt.executeUpdate(); + // Update the list of file IDs in memory + addImageFileToList(f.getId()); try { for (String name : f.getHashSetNames()) { @@ -623,7 +635,7 @@ public final class DrawableDB { selectHashSetStmt.setString(1, name); try (ResultSet rs = selectHashSetStmt.executeQuery()) { while (rs.next()) { - int hashsetID = rs.getInt("hash_set_id"); + int hashsetID = rs.getInt("hash_set_id"); //NON-NLS //"insert or ignore into hash_set_hits (hash_set_id, obj_id) values (?,?)"; insertHashHitStmt.setInt(1, hashsetID); insertHashHitStmt.setLong(2, f.getId()); @@ -633,24 +645,29 @@ public final class DrawableDB { } } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "failed to insert/update hash hits for file" + f.getName(), ex); + LOGGER.log(Level.SEVERE, "failed to insert/update hash hits for file" + f.getContentPathSafe(), ex); //NON-NLS } //and update all groups this file is in for (DrawableAttribute attr : DrawableAttribute.getGroupableAttrs()) { Collection> vals = attr.getValue(f); - for (Object val : vals) { - insertGroup(val.toString(), attr); + for (Comparable val : vals) { + //use empty string for null values (mime_type), this shouldn't happen! + if (null != val) { + insertGroup(val.toString(), attr); + } } } tr.addUpdatedFile(f.getId()); } catch (SQLException | NullPointerException ex) { - // This is one of the places where we get an error if the case is closed during processing, - // which doesn't need to be reported here. + /* + * This is one of the places where we get an error if the case is + * closed during processing, which doesn't need to be reported here. + */ if (Case.isCaseOpen()) { - LOGGER.log(Level.SEVERE, "failed to insert/update file" + f.getName(), ex); + LOGGER.log(Level.SEVERE, "failed to insert/update file" + f.getContentPathSafe(), ex); //NON-NLS } } finally { @@ -676,12 +693,12 @@ public final class DrawableDB { public Boolean isFileAnalyzed(long fileId) { dbReadLock(); try (Statement stmt = con.createStatement(); - ResultSet analyzedQuery = stmt.executeQuery("SELECT analyzed FROM drawable_files WHERE obj_id = " + fileId)) { + ResultSet analyzedQuery = stmt.executeQuery("SELECT analyzed FROM drawable_files WHERE obj_id = " + fileId)) { //NON-NLS while (analyzedQuery.next()) { return analyzedQuery.getBoolean(ANALYZED); } } catch (SQLException ex) { - String msg = String.format("Failed to determine if file %s is finalized", String.valueOf(fileId)); + String msg = String.format("Failed to determine if file %s is finalized", String.valueOf(fileId)); //NON-NLS LOGGER.log(Level.WARNING, msg, ex); } finally { dbReadUnlock(); @@ -695,12 +712,12 @@ public final class DrawableDB { dbReadLock(); try (Statement stmt = con.createStatement(); //Can't make this a preprared statement because of the IN ( ... ) - ResultSet analyzedQuery = stmt.executeQuery("SELECT COUNT(analyzed) AS analyzed FROM drawable_files WHERE analyzed = 1 AND obj_id IN (" + StringUtils.join(fileIds, ", ") + ")")) { + ResultSet analyzedQuery = stmt.executeQuery("SELECT COUNT(analyzed) AS analyzed FROM drawable_files WHERE analyzed = 1 AND obj_id IN (" + StringUtils.join(fileIds, ", ") + ")")) { //NON-NLS while (analyzedQuery.next()) { return analyzedQuery.getInt(ANALYZED) == fileIds.size(); } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem counting analyzed files: ", ex); + LOGGER.log(Level.WARNING, "problem counting analyzed files: ", ex); //NON-NLS } finally { dbReadUnlock(); } @@ -717,7 +734,7 @@ public final class DrawableDB { // In testing, this method appears to be a lot faster than doing one large select statement for (Long fileID : fileIDsInGroup) { Statement stmt = con.createStatement(); - ResultSet analyzedQuery = stmt.executeQuery("SELECT analyzed FROM drawable_files WHERE obj_id = " + fileID); + ResultSet analyzedQuery = stmt.executeQuery("SELECT analyzed FROM drawable_files WHERE obj_id = " + fileID); //NON-NLS while (analyzedQuery.next()) { if (analyzedQuery.getInt(ANALYZED) == 0) { return false; @@ -727,10 +744,10 @@ public final class DrawableDB { } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem counting analyzed files: ", ex); + LOGGER.log(Level.WARNING, "problem counting analyzed files: ", ex); //NON-NLS } } catch (TskCoreException tskCoreException) { - LOGGER.log(Level.WARNING, "problem counting analyzed files: ", tskCoreException); + LOGGER.log(Level.WARNING, "problem counting analyzed files: ", tskCoreException); //NON-NLS } finally { dbReadUnlock(); } @@ -756,7 +773,7 @@ public final class DrawableDB { dbReadLock(); try { statement = con.createStatement(); - rs = statement.executeQuery("SELECT obj_id FROM drawable_files WHERE " + sqlWhereClause); + rs = statement.executeQuery("SELECT obj_id FROM drawable_files WHERE " + sqlWhereClause); //NON-NLS while (rs.next()) { ret.add(rs.getLong(1)); } @@ -767,14 +784,14 @@ public final class DrawableDB { try { rs.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing result set after executing findAllFileIdsWhere", ex); + LOGGER.log(Level.SEVERE, "Error closing result set after executing findAllFileIdsWhere", ex); //NON-NLS } } if (statement != null) { try { statement.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing statement after executing findAllFileIdsWhere", ex); + LOGGER.log(Level.SEVERE, "Error closing statement after executing findAllFileIdsWhere", ex); //NON-NLS } } dbReadUnlock(); @@ -808,14 +825,14 @@ public final class DrawableDB { try { rs.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing result set after executing countFilesWhere", ex); + LOGGER.log(Level.SEVERE, "Error closing result set after executing countFilesWhere", ex); //NON-NLS } } if (statement != null) { try { statement.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing statement after executing countFilesWhere", ex); + LOGGER.log(Level.SEVERE, "Error closing statement after executing countFilesWhere", ex); //NON-NLS } } dbReadUnlock(); @@ -845,14 +862,14 @@ public final class DrawableDB { try { rs.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing result set after executing countFiles", ex); + LOGGER.log(Level.SEVERE, "Error closing result set after executing countFiles", ex); //NON-NLS } } if (statement != null) { try { statement.close(); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error closing statement after executing countFiles", ex); + LOGGER.log(Level.SEVERE, "Error closing statement after executing countFiles", ex); //NON-NLS } } dbReadUnlock(); @@ -883,15 +900,15 @@ public final class DrawableDB { default: dbReadLock(); //TODO: convert this to prepared statement - StringBuilder query = new StringBuilder("SELECT " + groupBy.attrName.toString() + ", COUNT(*) FROM drawable_files GROUP BY " + groupBy.attrName.toString()); + StringBuilder query = new StringBuilder("SELECT " + groupBy.attrName.toString() + ", COUNT(*) FROM drawable_files GROUP BY " + groupBy.attrName.toString()); //NON-NLS String orderByClause = ""; switch (sortBy) { case GROUP_BY_VALUE: - orderByClause = " ORDER BY " + groupBy.attrName.toString(); + orderByClause = " ORDER BY " + groupBy.attrName.toString(); //NON-NLS break; case FILE_COUNT: - orderByClause = " ORDER BY COUNT(*)"; + orderByClause = " ORDER BY COUNT(*)"; //NON-NLS break; case NONE: // case PRIORITY: @@ -905,10 +922,10 @@ public final class DrawableDB { switch (sortOrder) { case DESCENDING: - sortOrderClause = " DESC"; + sortOrderClause = " DESC"; //NON-NLS break; case ASCENDING: - sortOrderClause = " ASC"; + sortOrderClause = " ASC"; //NON-NLS break; default: orderByClause = ""; @@ -930,7 +947,7 @@ public final class DrawableDB { vals.add(value); } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "Unable to get values for attribute", ex); + LOGGER.log(Level.WARNING, "Unable to get values for attribute", ex); //NON-NLS } finally { dbReadUnlock(); } @@ -951,7 +968,7 @@ public final class DrawableDB { } catch (SQLException sQLException) { // Don't need to report it if the case was closed if (Case.isCaseOpen()) { - LOGGER.log(Level.SEVERE, "Unable to insert group", sQLException); + LOGGER.log(Level.SEVERE, "Unable to insert group", sQLException); //NON-NLS } } finally { dbWriteUnlock(); @@ -972,7 +989,7 @@ public final class DrawableDB { AbstractFile f = tskCase.getAbstractFileById(id); return DrawableFile.create(f, analyzed, isVideoFile(f)); } catch (IllegalStateException ex) { - LOGGER.log(Level.SEVERE, "there is no case open; failed to load file with id: " + id, ex); + LOGGER.log(Level.SEVERE, "there is no case open; failed to load file with id: " + id, ex); //NON-NLS return null; } } @@ -991,7 +1008,7 @@ public final class DrawableDB { return DrawableFile.create(f, areFilesAnalyzed(Collections.singleton(id)), isVideoFile(f)); } catch (IllegalStateException ex) { - LOGGER.log(Level.SEVERE, "there is no case open; failed to load file with id: {0}", id); + LOGGER.log(Level.SEVERE, "there is no case open; failed to load file with id: {0}", id); //NON-NLS return null; } } @@ -1020,7 +1037,7 @@ public final class DrawableDB { } } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "failed to get file for group:" + groupKey.getAttribute() + " == " + groupKey.getValue(), ex); + LOGGER.log(Level.WARNING, "failed to get file for group:" + groupKey.getAttribute() + " == " + groupKey.getValue(), ex); //NON-NLS } finally { dbReadUnlock(); } @@ -1042,14 +1059,14 @@ public final class DrawableDB { public int countAllFiles() { int result = -1; dbReadLock(); - try (ResultSet rs = con.createStatement().executeQuery("SELECT COUNT(*) AS COUNT FROM drawable_files")) { + try (ResultSet rs = con.createStatement().executeQuery("SELECT COUNT(*) AS COUNT FROM drawable_files")) { //NON-NLS while (rs.next()) { result = rs.getInt("COUNT"); break; } } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "Error accessing SQLite database"); + LOGGER.log(Level.SEVERE, "Error accessing SQLite database"); //NON-NLS } finally { dbReadUnlock(); } @@ -1081,7 +1098,7 @@ public final class DrawableDB { //TODO: delete from hash_set_hits table also... } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "failed to delete row for obj_id = " + id, ex); + LOGGER.log(Level.WARNING, "failed to delete row for obj_id = " + id, ex); //NON-NLS } finally { dbWriteUnlock(); } @@ -1093,7 +1110,7 @@ public final class DrawableDB { public class MultipleTransactionException extends IllegalStateException { - private static final String CANNOT_HAVE_MORE_THAN_ONE_OPEN_TRANSACTIO = "cannot have more than one open transaction"; + private static final String CANNOT_HAVE_MORE_THAN_ONE_OPEN_TRANSACTIO = "cannot have more than one open transaction"; //NON-NLS public MultipleTransactionException() { super(CANNOT_HAVE_MORE_THAN_ONE_OPEN_TRANSACTIO); @@ -1137,12 +1154,12 @@ public final class DrawableDB { dbReadLock(); try { Statement stmt = con.createStatement(); - ResultSet analyzedQuery = stmt.executeQuery("select obj_id from drawable_files"); + ResultSet analyzedQuery = stmt.executeQuery("select obj_id from drawable_files"); //NON-NLS while (analyzedQuery.next()) { addImageFileToList(analyzedQuery.getLong(OBJ_ID)); } } catch (SQLException ex) { - LOGGER.log(Level.WARNING, "problem loading file IDs: ", ex); + LOGGER.log(Level.WARNING, "problem loading file IDs: ", ex); //NON-NLS } finally { dbReadUnlock(); } @@ -1194,9 +1211,9 @@ public final class DrawableDB { .count(); } } catch (IllegalStateException ex) { - LOGGER.log(Level.WARNING, "Case closed while getting files"); + LOGGER.log(Level.WARNING, "Case closed while getting files"); //NON-NLS } catch (TskCoreException ex1) { - LOGGER.log(Level.SEVERE, "Failed to get content tags by tag name.", ex1); + LOGGER.log(Level.SEVERE, "Failed to get content tags by tag name.", ex1); //NON-NLS } return -1; @@ -1231,15 +1248,15 @@ public final class DrawableDB { //count the fileids that are in the given list and don't have a non-zero category assigned to them. String name = - "SELECT COUNT(obj_id) FROM tsk_files where obj_id IN " + fileIdsList - + " AND obj_id NOT IN (SELECT obj_id FROM content_tags WHERE content_tags.tag_name_id IN " + catTagNameIDs + ")"; + "SELECT COUNT(obj_id) FROM tsk_files where obj_id IN " + fileIdsList //NON-NLS + + " AND obj_id NOT IN (SELECT obj_id FROM content_tags WHERE content_tags.tag_name_id IN " + catTagNameIDs + ")"; //NON-NLS try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery(name); ResultSet resultSet = executeQuery.getResultSet();) { while (resultSet.next()) { - return resultSet.getLong("count(obj_id)"); + return resultSet.getLong("count(obj_id)"); //NON-NLS } } catch (SQLException | TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Error getting category count.", ex); + LOGGER.log(Level.SEVERE, "Error getting category count.", ex); //NON-NLS } return -1; @@ -1274,7 +1291,7 @@ public final class DrawableDB { con.setAutoCommit(false); } catch (SQLException ex) { - LOGGER.log(Level.SEVERE, "failed to set auto-commit to to false", ex); + LOGGER.log(Level.SEVERE, "failed to set auto-commit to to false", ex); //NON-NLS } } @@ -1285,7 +1302,7 @@ public final class DrawableDB { con.rollback(); updatedFiles.clear(); } catch (SQLException ex1) { - LOGGER.log(Level.SEVERE, "Exception while attempting to rollback!!", ex1); + LOGGER.log(Level.SEVERE, "Exception while attempting to rollback!!", ex1); //NON-NLS } finally { close(); } @@ -1307,9 +1324,9 @@ public final class DrawableDB { } } catch (SQLException ex) { if (Case.isCaseOpen()) { - LOGGER.log(Level.SEVERE, "Error commiting drawable.db.", ex); + LOGGER.log(Level.SEVERE, "Error commiting drawable.db.", ex); //NON-NLS } else { - LOGGER.log(Level.WARNING, "Error commiting drawable.db - case is closed."); + LOGGER.log(Level.WARNING, "Error commiting drawable.db - case is closed."); //NON-NLS } rollback(); } @@ -1322,9 +1339,9 @@ public final class DrawableDB { con.setAutoCommit(true); } catch (SQLException ex) { if (Case.isCaseOpen()) { - LOGGER.log(Level.SEVERE, "Error setting auto-commit to true.", ex); + LOGGER.log(Level.SEVERE, "Error setting auto-commit to true.", ex); //NON-NLS } else { - LOGGER.log(Level.SEVERE, "Error setting auto-commit to true - case is closed"); + LOGGER.log(Level.SEVERE, "Error setting auto-commit to true - case is closed"); //NON-NLS } } finally { closed = true; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java index 14fbf4265c..979429b880 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java @@ -186,9 +186,9 @@ public abstract class DrawableFile extends AbstractFile .map(Tag::getName) .collect(Collectors.toSet()); } catch (TskCoreException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName(), ex); + Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName(), ex); //NON-NLS } catch (IllegalStateException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "there is no case open; failed to look up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName()); + Logger.getAnonymousLogger().log(Level.WARNING, "there is no case open; failed to look up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName()); //NON-NLS } return Collections.emptySet(); } @@ -223,7 +223,7 @@ public abstract class DrawableFile extends AbstractFile } } } catch (TskCoreException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up {0}/{1}" + " " + " for {2}", new Object[]{artType.getDisplayName(), attrType.getDisplayName(), getName()}); + Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up {0}/{1}" + " " + " for {2}", new Object[]{artType.getDisplayName(), attrType.getDisplayName(), getName()}); //NON-NLS } return ""; } @@ -255,7 +255,7 @@ public abstract class DrawableFile extends AbstractFile .orElse(Category.ZERO) ); } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "problem looking up category for file " + this.getName() + ex.getLocalizedMessage()); + LOGGER.log(Level.WARNING, "problem looking up category for file " + this.getName() + ex.getLocalizedMessage()); //NON-NLS } catch (IllegalStateException ex) { // We get here many times if the case is closed during ingest, so don't print out a ton of warnings. } @@ -333,7 +333,7 @@ public abstract class DrawableFile extends AbstractFile drawablePath = StringUtils.removeEnd(getUniquePath(), getName()); return drawablePath; } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "failed to get drawablePath from {0}", getName()); + LOGGER.log(Level.WARNING, "failed to get drawablePath from {0}", getName()); //NON-NLS return ""; } } @@ -344,7 +344,7 @@ public abstract class DrawableFile extends AbstractFile try { return getHashSetNames(); } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "Failed to get hash set names", ex); + LOGGER.log(Level.WARNING, "Failed to get hash set names", ex); //NON-NLS return Collections.emptySet(); } } @@ -362,7 +362,7 @@ public abstract class DrawableFile extends AbstractFile return this.getUniquePath(); } catch (TskCoreException tskCoreException) { String contentName = this.getName(); - LOGGER.log(Level.SEVERE, "Failed to get unique path for " + contentName, tskCoreException); //NOI18N + LOGGER.log(Level.SEVERE, "Failed to get unique path for " + contentName, tskCoreException); //NOI18N NON-NLS return contentName; } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java index 0d122a6219..cdadb53b94 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java @@ -28,6 +28,7 @@ import java.util.logging.Level; import java.util.stream.Collectors; import javax.annotation.Nonnull; import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.casemodule.events.ContentTagDeletedEvent; import org.sleuthkit.autopsy.casemodule.services.TagsManager; @@ -41,11 +42,12 @@ import org.sleuthkit.datamodel.TskCoreException; * Manages Tags, Tagging, and the relationship between Categories and Tags in * the autopsy Db. delegates some, work to the backing {@link TagsManager}. */ +@NbBundle.Messages({"DrawableTagsManager.followUp=Follow Up"}) public class DrawableTagsManager { private static final Logger LOGGER = Logger.getLogger(DrawableTagsManager.class.getName()); - private static final String FOLLOW_UP = "Follow Up"; + private static final String FOLLOW_UP = Bundle.DrawableTagsManager_followUp(); final private Object autopsyTagsManagerLock = new Object(); private TagsManager autopsyTagsManager; @@ -53,8 +55,8 @@ public class DrawableTagsManager { /** Used to distribute {@link TagsChangeEvent}s */ private final EventBus tagsEventBus = new AsyncEventBus( Executors.newSingleThreadExecutor( - new BasicThreadFactory.Builder().namingPattern("Tags Event Bus").uncaughtExceptionHandler((Thread t, Throwable e) -> { - LOGGER.log(Level.SEVERE, "uncaught exception in event bus handler", e); + new BasicThreadFactory.Builder().namingPattern("Tags Event Bus").uncaughtExceptionHandler((Thread t, Throwable e) -> { //NON-NLS + LOGGER.log(Level.SEVERE, "uncaught exception in event bus handler", e); //NON-NLS }).build() )); @@ -147,7 +149,7 @@ public class DrawableTagsManager { .distinct().sorted() .collect(Collectors.toList()); } catch (TskCoreException | IllegalStateException ex) { - LOGGER.log(Level.WARNING, "couldn't access case", ex); + LOGGER.log(Level.WARNING, "couldn't access case", ex); //NON-NLS } return Collections.emptyList(); } @@ -183,7 +185,7 @@ public class DrawableTagsManager { throw new TskCoreException("tagame exists but wasn't found", ex); } } catch (IllegalStateException ex) { - LOGGER.log(Level.SEVERE, "Case was closed out from underneath", ex); + LOGGER.log(Level.SEVERE, "Case was closed out from underneath", ex); //NON-NLS throw new TskCoreException("Case was closed out from underneath", ex); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/HashSetManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/HashSetManager.java index a04646c310..9b3b3218f1 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/HashSetManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/HashSetManager.java @@ -46,7 +46,7 @@ public class HashSetManager { try { return db.getHashSetsForFile(fileID); } catch (TskCoreException ex) { - Logger.getLogger(HashSetManager.class.getName()).log(Level.SEVERE, "Failed to get Hash Sets for file", ex); + Logger.getLogger(HashSetManager.class.getName()).log(Level.SEVERE, "Failed to get Hash Sets for file", ex); //NON-NLS return Collections.emptySet(); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java index 4249fe3c24..01e5cfd983 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java @@ -46,7 +46,7 @@ public class ImageFile extends DrawableFile { @Override String getMessageTemplate(final Exception exception) { - return "Failed to read image {0}: " + exception.toString(); + return "Failed to read image {0}: " + exception.toString(); //NON-NLS } @Override diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java index 20724ef0bc..1da586f603 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java @@ -29,6 +29,7 @@ import javafx.scene.media.Media; import javafx.scene.media.MediaException; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ImageUtils; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.VideoUtils; @@ -39,7 +40,7 @@ public class VideoFile extends DrawableFile { private static final Logger LOGGER = Logger.getLogger(VideoFile.class.getName()); - private static final Image VIDEO_ICON = new Image("org/sleuthkit/autopsy/imagegallery/images/Clapperboard.png"); + private static final Image VIDEO_ICON = new Image("org/sleuthkit/autopsy/imagegallery/images/Clapperboard.png"); //NON-NLS VideoFile(T file, Boolean analyzed) { super(file, analyzed); @@ -53,7 +54,7 @@ public class VideoFile extends DrawableFile { @Override String getMessageTemplate(final Exception exception) { - return "Failed to get image preview for video {0}: " + exception.toString(); + return "Failed to get image preview for video {0}: " + exception.toString(); //NON-NLS } @Override @@ -63,6 +64,7 @@ public class VideoFile extends DrawableFile { private SoftReference mediaRef; + @NbBundle.Messages({"VideoFile.getMedia.progress=writing temporary file to disk"}) public Media getMedia() throws IOException, MediaException { Media media = (mediaRef != null) ? mediaRef.get() : null; @@ -73,7 +75,7 @@ public class VideoFile extends DrawableFile { if (cacheFile.exists() == false || cacheFile.length() < getAbstractFile().getSize()) { Files.createParentDirs(cacheFile); - ProgressHandle progressHandle = ProgressHandleFactory.createHandle("writing temporary file to disk"); + ProgressHandle progressHandle = ProgressHandleFactory.createHandle(Bundle.VideoFile_getMedia_progress()); progressHandle.start(100); ContentUtils.writeToFile(this.getAbstractFile(), cacheFile, progressHandle, null, true); progressHandle.finish(); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/DrawableGroup.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/DrawableGroup.java index f3020830a9..1b8b7d72c8 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/DrawableGroup.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/DrawableGroup.java @@ -126,7 +126,7 @@ public class DrawableGroup implements Comparable { .filter(Boolean::booleanValue) .count()); } catch (IllegalStateException | NullPointerException ex) { - LOGGER.log(Level.WARNING, "could not access case during getFilesWithHashSetHitsCount()"); + LOGGER.log(Level.WARNING, "could not access case during getFilesWithHashSetHitsCount()"); //NON-NLS } } @@ -145,7 +145,7 @@ public class DrawableGroup implements Comparable { uncatCount.set(ImageGalleryController.getDefault().getDatabase().getCategoryCount(Category.ZERO, fileIDs)); } catch (IllegalStateException | NullPointerException ex) { - LOGGER.log(Level.WARNING, "could not access case during getFilesWithHashSetHitsCount()"); + LOGGER.log(Level.WARNING, "could not access case during getFilesWithHashSetHitsCount()"); //NON-NLS } } @@ -202,7 +202,7 @@ public class DrawableGroup implements Comparable { @Override public String toString() { - return "Grouping{ keyProp=" + groupKey + '}'; + return "Grouping{ keyProp=" + groupKey + '}'; //NON-NLS } @Override diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupKey.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupKey.java index 79cbb1fba2..1073d587da 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupKey.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupKey.java @@ -57,7 +57,7 @@ public class GroupKey> implements Comparable @Override public String toString() { - return "GroupKey: " + getAttribute().attrName + " = " + getValue(); + return "GroupKey: " + getAttribute().attrName + " = " + getValue(); //NON-NLS } @Override diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java index 200ef32a16..cebcd6c222 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java @@ -62,6 +62,7 @@ import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.casemodule.events.ContentTagDeletedEvent; @@ -195,10 +196,10 @@ public class GroupManager { DrawableFile file = db.getFileFromID(fileID); return getGroupKeysForFile(file); } else { - Logger.getLogger(GroupManager.class.getName()).log(Level.WARNING, "Failed to load file with id: {0} from database. There is no database assigned.", fileID); + Logger.getLogger(GroupManager.class.getName()).log(Level.WARNING, "Failed to load file with id: {0} from database. There is no database assigned.", fileID); //NON-NLS } } catch (TskCoreException ex) { - Logger.getLogger(GroupManager.class.getName()).log(Level.SEVERE, "failed to load file with id: " + fileID + " from database", ex); + Logger.getLogger(GroupManager.class.getName()).log(Level.SEVERE, "failed to load file with id: " + fileID + " from database", ex); //NON-NLS } return Collections.emptySet(); } @@ -347,11 +348,11 @@ public class GroupManager { break; case MIME_TYPE: HashSet types = new HashSet<>(); - try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery("select group_concat(obj_id), mime_type from tsk_files group by mime_type "); + try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery("select group_concat(obj_id), mime_type from tsk_files group by mime_type "); //NON-NLS ResultSet resultSet = executeQuery.getResultSet();) { while (resultSet.next()) { - final String mimeType = resultSet.getString("mime_type"); - String objIds = resultSet.getString("group_concat(obj_id)"); + final String mimeType = resultSet.getString("mime_type"); //NON-NLS + String objIds = resultSet.getString("group_concat(obj_id)"); //NON-NLS Pattern.compile(",").splitAsStream(objIds) .map(Long::valueOf) @@ -370,7 +371,7 @@ public class GroupManager { return values; } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "TSK error getting list of type {0}", groupBy.getDisplayName()); + LOGGER.log(Level.WARNING, "TSK error getting list of type {0}", groupBy.getDisplayName()); //NON-NLS return Collections.emptyList(); } @@ -416,7 +417,7 @@ public class GroupManager { } } - return db.findAllFileIdsWhere("obj_id NOT IN (" + StringUtils.join(files, ',') + ")"); + return db.findAllFileIdsWhere("obj_id NOT IN (" + StringUtils.join(files, ',') + ")"); //NON-NLS } else { List contentTags = tagsManager.getContentTagsByTagName(tagsManager.getTagName(category)); @@ -428,7 +429,7 @@ public class GroupManager { } } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "TSK error getting files in Category:" + category.getDisplayName(), ex); + LOGGER.log(Level.WARNING, "TSK error getting files in Category:" + category.getDisplayName(), ex); //NON-NLS throw ex; } } @@ -444,7 +445,7 @@ public class GroupManager { } return files; } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "TSK error getting files with Tag:" + tagName.getDisplayName(), ex); + LOGGER.log(Level.WARNING, "TSK error getting files with Tag:" + tagName.getDisplayName(), ex); //NON-NLS throw ex; } } @@ -531,7 +532,7 @@ public class GroupManager { /** * an executor to submit async ui related background tasks to. */ - final ExecutorService regroupExecutor = Executors.newSingleThreadExecutor(new BasicThreadFactory.Builder().namingPattern("ui task -%d").build()); + final ExecutorService regroupExecutor = Executors.newSingleThreadExecutor(new BasicThreadFactory.Builder().namingPattern("ui task -%d").build()); //NON-NLS public ReadOnlyDoubleProperty regroupProgress() { return regroupProgress.getReadOnlyProperty(); @@ -682,7 +683,7 @@ public class GroupManager { return group; } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "failed to get files for group: " + groupKey.getAttribute().attrName.toString() + " = " + groupKey.getValue(), ex); + LOGGER.log(Level.SEVERE, "failed to get files for group: " + groupKey.getAttribute().attrName.toString() + " = " + groupKey.getValue(), ex); //NON-NLS } } } @@ -693,13 +694,13 @@ public class GroupManager { HashSet hashSet = new HashSet<>(); String query = (null == mimeType) - ? "SELECT obj_id FROM tsk_files WHERE mime_type IS NULL" - : "SELECT obj_id FROM tsk_files WHERE mime_type = '" + mimeType + "'"; + ? "SELECT obj_id FROM tsk_files WHERE mime_type IS NULL" //NON-NLS + : "SELECT obj_id FROM tsk_files WHERE mime_type = '" + mimeType + "'"; //NON-NLS try (SleuthkitCase.CaseDbQuery executeQuery = controller.getSleuthKitCase().executeQuery(query); ResultSet resultSet = executeQuery.getResultSet();) { while (resultSet.next()) { - final long fileID = resultSet.getLong("obj_id"); + final long fileID = resultSet.getLong("obj_id"); //NON-NLS if (db.isInDB(fileID)) { hashSet.add(fileID); } @@ -717,6 +718,13 @@ public class GroupManager { * {@link Groupings} for them */ @SuppressWarnings({"unchecked", "rawtypes"}) + @NbBundle.Messages({"# {0} - groupBy attribute Name", + "# {1} - sortBy name", + "# {2} - sort Order", + "ReGroupTask.displayTitle=regrouping files by {0} sorted by {1} in {2} order", + "# {0} - groupBy attribute Name", + "# {1} - atribute value", + "ReGroupTask.progressUpdate=regrouping files by {0} : {1}"}) private class ReGroupTask> extends LoggedTask { private ProgressHandle groupProgress; @@ -728,7 +736,7 @@ public class GroupManager { private final SortOrder sortOrder; public ReGroupTask(DrawableAttribute groupBy, GroupSortBy sortBy, SortOrder sortOrder) { - super("regrouping files by " + groupBy.attrName.toString() + " sorted by " + sortBy.name() + " in " + sortOrder.toString() + " order", true); + super(Bundle.ReGroupTask_displayTitle(groupBy.attrName.toString(), sortBy.name(), sortOrder.toString()), true); this.groupBy = groupBy; this.sortBy = sortBy; @@ -747,7 +755,7 @@ public class GroupManager { return null; } - groupProgress = ProgressHandleFactory.createHandle("regrouping files by " + groupBy.attrName.toString() + " sorted by " + sortBy.name() + " in " + sortOrder.toString() + " order", this); + groupProgress = ProgressHandleFactory.createHandle(Bundle.ReGroupTask_displayTitle(groupBy.attrName.toString(), sortBy.name(), sortOrder.toString()), this); Platform.runLater(() -> { analyzedGroups.clear(); unSeenGroups.clear(); @@ -765,9 +773,9 @@ public class GroupManager { return null;//abort } p++; - updateMessage("regrouping files by " + groupBy.attrName.toString() + " : " + val); + updateMessage(Bundle.ReGroupTask_progressUpdate(groupBy.attrName.toString(), val)); updateProgress(p, vals.size()); - groupProgress.progress("regrouping files by " + groupBy.attrName.toString() + " : " + val, p); + groupProgress.progress(Bundle.ReGroupTask_progressUpdate(groupBy.attrName.toString(), val), p); popuplateIfAnalyzed(new GroupKey(groupBy, val), this); } Platform.runLater(() -> FXCollections.sort(analyzedGroups, sortBy.getGrpComparator(sortOrder))); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupSortBy.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupSortBy.java index 53f464dbb0..5d8740b343 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupSortBy.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupSortBy.java @@ -27,6 +27,7 @@ import javax.swing.SortOrder; import static javax.swing.SortOrder.ASCENDING; import static javax.swing.SortOrder.DESCENDING; import org.apache.commons.lang3.StringUtils; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableAttribute; @@ -35,13 +36,17 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableAttribute; * down in Toolbar as well as each enum value having the stategy * ({@link Comparator}) for sorting the groups */ +@NbBundle.Messages({"GroupSortBy.groupSize=Group Size", + "GroupSortBy.groupName=Group Name", + "GroupSortBy.none=None", + "GroupSortBy.priority=Priority"}) public enum GroupSortBy implements ComparatorProvider { /** * sort the groups by the number of files in each sort the groups by the * number of files in each */ - FILE_COUNT("Group Size", true, "folder-open-image.png") { + FILE_COUNT(Bundle.GroupSortBy_groupSize(), true, "folder-open-image.png") { //NON-NLS @Override public Comparator getGrpComparator(final SortOrder sortOrder) { return applySortOrder(sortOrder, Comparator.comparingInt(DrawableGroup::getSize)); @@ -56,7 +61,7 @@ public enum GroupSortBy implements ComparatorProvider { * sort the groups by the natural order of the grouping value ( eg group * them by path alphabetically ) */ - GROUP_BY_VALUE("Group Name", true, "folder-rename.png") { + GROUP_BY_VALUE(Bundle.GroupSortBy_groupName(), true, "folder-rename.png") { //NON-NLS @Override public Comparator getGrpComparator(final SortOrder sortOrder) { return applySortOrder(sortOrder, Comparator.comparing(t -> t.getGroupByValueDislpayName())); @@ -71,7 +76,7 @@ public enum GroupSortBy implements ComparatorProvider { * don't sort the groups just use what ever order they come in (ingest * order) */ - NONE("None", false, "prohibition.png") { + NONE(Bundle.GroupSortBy_none(), false, "prohibition.png") { //NON-NLS @Override public Comparator getGrpComparator(SortOrder sortOrder) { return new NoOpComparator<>(); @@ -85,7 +90,7 @@ public enum GroupSortBy implements ComparatorProvider { /** * sort the groups by some priority metric to be determined and implemented */ - PRIORITY("Priority", false, "hashset_hits.png") { + PRIORITY(Bundle.GroupSortBy_priority(), false, "hashset_hits.png") { //NON-NLS @Override public Comparator getGrpComparator(SortOrder sortOrder) { return Comparator.nullsLast(Comparator.comparingDouble(DrawableGroup::getHashHitDensity).thenComparingInt(DrawableGroup::getSize).reversed()); @@ -128,7 +133,7 @@ public enum GroupSortBy implements ComparatorProvider { public Image getIcon() { if (icon == null) { if (StringUtils.isBlank(imageName) == false) { - this.icon = new Image("org/sleuthkit/autopsy/imagegallery/images/" + imageName, true); + this.icon = new Image("org/sleuthkit/autopsy/imagegallery/images/" + imageName, true); //NON-NLS } } return icon; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/NoGroupsDialog.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/NoGroupsDialog.java index 402694bd07..872a2afc6b 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/NoGroupsDialog.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/NoGroupsDialog.java @@ -53,7 +53,7 @@ public class NoGroupsDialog extends GridPane { } private NoGroupsDialog() { - FXMLConstructor.construct(this, "NoGroupsDialog.fxml"); + FXMLConstructor.construct(this, "NoGroupsDialog.fxml"); //NON-NLS } public NoGroupsDialog(String message) { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.java index c1d2fe7a7b..607dcd1b1c 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.java @@ -28,6 +28,7 @@ import javafx.scene.control.Label; import javafx.scene.control.ProgressBar; import javafx.scene.control.Tooltip; import javafx.scene.layout.AnchorPane; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; /** @@ -62,6 +63,9 @@ public class StatusBar extends AnchorPane { private ProgressBar bgTaskProgressBar; @FXML + @NbBundle.Messages({"StatusBar.fileUpdateTaskLabel.text= File Update Tasks", + "StatusBar.bgTaskLabel.text=Regrouping", + "StatuBar.toolTip=Some data may be out of date. Enable Image Gallery in Tools | Options | Image /Video Gallery , after ingest is complete to update the Image Gallery data."}) void initialize() { assert fileTaskProgresBar != null : "fx:id=\"fileTaskProgresBar\" was not injected: check your FXML file 'StatusBar.fxml'."; assert fileUpdateTaskLabel != null : "fx:id=\"fileUpdateTaskLabel\" was not injected: check your FXML file 'StatusBar.fxml'."; @@ -69,7 +73,7 @@ public class StatusBar extends AnchorPane { assert bgTaskLabel != null : "fx:id=\"bgTaskLabel\" was not injected: check your FXML file 'StatusBar.fxml'."; assert bgTaskProgressBar != null : "fx:id=\"bgTaskProgressBar\" was not injected: check your FXML file 'StatusBar.fxml'."; - fileUpdateTaskLabel.textProperty().bind(controller.getFileUpdateQueueSizeProperty().asString().concat(" File Update Tasks"));//;setText(newSize.toString() + " File Update Tasks"); + fileUpdateTaskLabel.textProperty().bind(controller.getFileUpdateQueueSizeProperty().asString().concat(Bundle.StatusBar_fileUpdateTaskLabel_text()));//;setText(newSize.toString() + " File Update Tasks"); fileTaskProgresBar.progressProperty().bind(controller.getFileUpdateQueueSizeProperty().negate()); // controller.getFileUpdateQueueSizeProperty().addListener((ov, oldSize, newSize) -> { // Platform.runLater(() -> { @@ -83,7 +87,7 @@ public class StatusBar extends AnchorPane { if(controller.regroupProgress().lessThan(1.0).get()){ // Regrouping in progress bgTaskProgressBar.progressProperty().setValue(-1.0); - bgTaskLabel.setText("Regrouping"); + bgTaskLabel.setText(Bundle.StatusBar_bgTaskLabel_text()); } else{ // Clear the progress bar bgTaskProgressBar.progressProperty().setValue(0.0); @@ -94,14 +98,14 @@ public class StatusBar extends AnchorPane { Platform.runLater(() -> { - staleLabel.setTooltip(new Tooltip("Some data may be out of date. Enable Image Gallery in Tools | Options | Image /Video Gallery , after ingest is complete to update the Image Gallery data.")); + staleLabel.setTooltip(new Tooltip(Bundle.StatuBar_toolTip())); }); staleLabel.visibleProperty().bind(controller.stale()); } public StatusBar(ImageGalleryController controller) { this.controller = controller; - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("StatusBar.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("StatusBar.fxml")); //NON-NLS fxmlLoader.setRoot(this); fxmlLoader.setController(this); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/SummaryTablePane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/SummaryTablePane.java index 6fe4ce9b44..b9b1c04813 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/SummaryTablePane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/SummaryTablePane.java @@ -79,7 +79,7 @@ public class SummaryTablePane extends AnchorPane { public SummaryTablePane(ImageGalleryController controller) { this.controller = controller; - FXMLConstructor.construct(this, "SummaryTablePane.fxml"); + FXMLConstructor.construct(this, "SummaryTablePane.fxml"); //NON-NLS } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/Toolbar.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/Toolbar.java index 91ca4a142c..5c68a94436 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/Toolbar.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/Toolbar.java @@ -142,7 +142,7 @@ public class Toolbar extends ToolBar { try { new TagGroupAction(controller.getTagsManager().getFollowUpTagName(), controller).handle(actionEvent); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Could create follow up tag menu item", ex); + LOGGER.log(Level.SEVERE, "Could create follow up tag menu item", ex); //NON-NLS } }); @@ -213,7 +213,7 @@ public class Toolbar extends ToolBar { private Toolbar(ImageGalleryController controller) { this.controller = controller; - FXMLConstructor.construct(this, "Toolbar.fxml"); + FXMLConstructor.construct(this, "Toolbar.fxml"); //NON-NLS } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java index 9b60278865..01b0e5dd1b 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java @@ -40,19 +40,20 @@ import javafx.scene.media.MediaView; import javafx.scene.text.Text; import javafx.util.Duration; import javafx.util.StringConverter; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.FXMLConstructor; import org.sleuthkit.autopsy.imagegallery.datamodel.VideoFile; public class VideoPlayer extends BorderPane { - private static final Image VOLUME_HIGH = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume.png"); - private static final Image VOLUME_LOW = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-low.png"); - private static final Image VOLUME_ZERO = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-none.png"); - private static final Image VOLUME_MUTE = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-control-mute.png"); + private static final Image VOLUME_HIGH = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume.png"); //NON-NLS + private static final Image VOLUME_LOW = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-low.png"); //NON-NLS + private static final Image VOLUME_ZERO = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-none.png"); //NON-NLS + private static final Image VOLUME_MUTE = new Image("/org/sleuthkit/autopsy/imagegallery/images/speaker-volume-control-mute.png"); //NON-NLS - private static final Image PLAY = new Image("/org/sleuthkit/autopsy/imagegallery/images/media_controls_play_small.png", true); - private static final Image PAUSE = new Image("/org/sleuthkit/autopsy/imagegallery/images/media_controls_pause_small.png", true); + private static final Image PLAY = new Image("/org/sleuthkit/autopsy/imagegallery/images/media_controls_play_small.png", true); //NON-NLS + private static final Image PAUSE = new Image("/org/sleuthkit/autopsy/imagegallery/images/media_controls_pause_small.png", true); //NON-NLS private final MediaPlayer mp; @@ -106,6 +107,8 @@ public class VideoPlayer extends BorderPane { private final VideoFile file; @FXML + @NbBundle.Messages({"# {0} - exception type", + "VideoPlayer.errNotice={0}\nSee the logs for details."}) void initialize() { assert controlButton != null : "fx:id=\"controlButton\" was not injected: check your FXML file 'MediaControl.fxml'."; assert timeSlider != null : "fx:id=\"timeSlider\" was not injected: check your FXML file 'MediaControl.fxml'."; @@ -114,14 +117,14 @@ public class VideoPlayer extends BorderPane { final MediaException ex = mp.getError(); if (ex != null) { Platform.runLater(() -> { - Logger.getLogger(VideoFile.class.getName()).log(Level.WARNING, ex.getType() + " Failed to initialize MediaControl for file " + file.getName(), ex); - setCenter(new Text(ex.getType() + "\nSee the logs for details.")); + Logger.getLogger(VideoFile.class.getName()).log(Level.WARNING, ex.getType() + " Failed to initialize MediaControl for file " + file.getName(), ex); //NON-NLS + setCenter(new Text(Bundle.VideoPlayer_errNotice(ex.getType()))); setBottom(null); }); } }); mp.statusProperty().addListener((observableStatus, oldStatus, newStatus) -> { - Logger.getAnonymousLogger().log(Level.INFO, "media player: {0}", newStatus); + Logger.getAnonymousLogger().log(Level.INFO, "media player: {0}", newStatus); //NON-NLS }); mediaView.setMediaPlayer(mp); mediaView.fitHeightProperty().bind(this.heightProperty().subtract(playControlBar.heightProperty())); @@ -236,7 +239,7 @@ public class VideoPlayer extends BorderPane { public VideoPlayer(MediaPlayer mp, VideoFile file) { this.file = file; this.mp = mp; - FXMLConstructor.construct(this, "MediaControl.fxml"); + FXMLConstructor.construct(this, "MediaControl.fxml"); //NON-NLS } protected void updateTime() { @@ -277,10 +280,10 @@ public class VideoPlayer extends BorderPane { int elapsedSeconds = totalSeconds - elapsedMinutes * 60; if (elapsedHours > 0) { - return String.format("%d:%02d:%02d", elapsedHours, + return String.format("%d:%02d:%02d", elapsedHours, //NON-NLS elapsedMinutes, elapsedSeconds); } else { - return String.format("%02d:%02d", elapsedMinutes, + return String.format("%02d:%02d", elapsedMinutes, //NON-NLS elapsedSeconds); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java index 674aad0260..badfc20b92 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java @@ -54,7 +54,7 @@ public class DrawableTile extends DrawableTileBase { try { setEffect(Objects.equals(newValue, getFileID()) ? LAST_SELECTED_EFFECT : null); } catch (java.lang.IllegalStateException ex) { - Logger.getLogger(DrawableTile.class.getName()).log(Level.WARNING, "Error displaying tile"); + Logger.getLogger(DrawableTile.class.getName()).log(Level.WARNING, "Error displaying tile"); //NON-NLS } }; @@ -78,7 +78,7 @@ public class DrawableTile extends DrawableTileBase { public DrawableTile(GroupPane gp, ImageGalleryController controller) { super(gp, controller); - FXMLConstructor.construct(this, "DrawableTile.fxml"); + FXMLConstructor.construct(this, "DrawableTile.fxml"); //NON-NLS } /** diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java index 2058737b3c..3b16fa6b77 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java @@ -95,8 +95,8 @@ public abstract class DrawableTileBase extends DrawableUIBase { private static final Border SELECTED_BORDER = new Border(new BorderStroke(Color.BLUE, BorderStrokeStyle.SOLID, new CornerRadii(2), new BorderWidths(3))); //TODO: do this in CSS? -jm - protected static final Image followUpIcon = new Image("org/sleuthkit/autopsy/imagegallery/images/flag_red.png"); - protected static final Image followUpGray = new Image("org/sleuthkit/autopsy/imagegallery/images/flag_gray.png"); + protected static final Image followUpIcon = new Image("org/sleuthkit/autopsy/imagegallery/images/flag_red.png"); //NON-NLS + protected static final Image followUpGray = new Image("org/sleuthkit/autopsy/imagegallery/images/flag_gray.png"); //NON-NLS protected final FileIDSelectionModel selectionModel; private static ContextMenu contextMenu; @@ -145,6 +145,8 @@ public abstract class DrawableTileBase extends DrawableUIBase { * @param groupPane the value of groupPane * @param controller the value of controller */ + @NbBundle.Messages({"DrawableTileBase.menuItem.extractFiles=Extract File(s)", + "DrawableTileBase.menuItem.showContentViewer=Show Content Viewer"}) protected DrawableTileBase(GroupPane groupPane, final ImageGalleryController controller) { super(controller); this.groupPane = groupPane; @@ -204,7 +206,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { menuItems.add(new AddDrawableTagAction(getController()).getPopupMenu()); - final MenuItem extractMenuItem = new MenuItem("Extract File(s)"); + final MenuItem extractMenuItem = new MenuItem(Bundle.DrawableTileBase_menuItem_extractFiles()); extractMenuItem.setOnAction((ActionEvent t) -> { SwingUtilities.invokeLater(() -> { TopComponent etc = WindowManager.getDefault().findTopComponent(ImageGalleryTopComponent.PREFERRED_ID); @@ -213,10 +215,10 @@ public abstract class DrawableTileBase extends DrawableUIBase { }); menuItems.add(extractMenuItem); - MenuItem contentViewer = new MenuItem("Show Content Viewer"); + MenuItem contentViewer = new MenuItem(Bundle.DrawableTileBase_menuItem_showContentViewer()); contentViewer.setOnAction((ActionEvent t) -> { SwingUtilities.invokeLater(() -> { - new NewWindowViewAction("Show Content Viewer", new FileNode(file.getAbstractFile())).actionPerformed(null); + new NewWindowViewAction(Bundle.DrawableTileBase_menuItem_showContentViewer(), new FileNode(file.getAbstractFile())).actionPerformed(null); }); }); menuItems.add(contentViewer); @@ -260,7 +262,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { selectionModel.clearAndSelect(file.getId()); new AddDrawableTagAction(getController()).addTag(getController().getTagsManager().getFollowUpTagName(), ""); } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to add Follow Up tag. Could not load TagName.", ex); + LOGGER.log(Level.SEVERE, "Failed to add Follow Up tag. Could not load TagName.", ex); //NON-NLS } } else { new DeleteFollowUpTagAction(getController(), file).handle(event); @@ -276,7 +278,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { return DrawableAttribute.TAGS.getValue(getFile().get()).stream() .anyMatch(followUpTagName::equals); } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "failed to get follow up tag name ", ex); + LOGGER.log(Level.WARNING, "failed to get follow up tag name ", ex); //NON-NLS return true; } } else { @@ -363,7 +365,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { }); } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get followup tag name. Unable to update follow up status for file. ", ex); + LOGGER.log(Level.SEVERE, "Failed to get followup tag name. Unable to update follow up status for file. ", ex); //NON-NLS } }); } @@ -380,7 +382,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { updateFollowUpIcon(); } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get followup tag name. Unable to update follow up status for file. ", ex); + LOGGER.log(Level.SEVERE, "Failed to get followup tag name. Unable to update follow up status for file. ", ex); //NON-NLS } }); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java index d77eee7f44..1a6bfd227e 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java @@ -102,7 +102,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView try { fileOpt = Optional.ofNullable(getController().getFileFromId(fileIDOpt.get())); } catch (TskCoreException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "failed to get DrawableFile for obj_id" + fileIDOpt.get(), ex); + Logger.getAnonymousLogger().log(Level.WARNING, "failed to get DrawableFile for obj_id" + fileIDOpt.get(), ex); //NON-NLS fileOpt = Optional.empty(); } return fileOpt; @@ -147,7 +147,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView myTask.setOnFailed(failed -> { Throwable exception = myTask.getException(); if (exception instanceof OutOfMemoryError - && exception.getMessage().contains("Java heap space")) { + && exception.getMessage().contains("Java heap space")) { //NON-NLS showErrorNode(Bundle.DrawableUIBase_errorLabel_OOMText(), file); } else { showErrorNode(Bundle.DrawableUIBase_errorLabel_text(), file); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java index 96d30afd93..1219e2d1a8 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java @@ -92,7 +92,7 @@ public interface DrawableView { } catch (NullPointerException ex) { // I think this happens when we're in the process of removing images from the view while // also trying to update it? - Logger.getLogger(DrawableView.class.getName()).log(Level.WARNING, "Error looking up hash set hits"); + Logger.getLogger(DrawableView.class.getName()).log(Level.WARNING, "Error looking up hash set hits"); //NON-NLS return false; } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java index a31001fd2f..965736ece8 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java @@ -89,6 +89,8 @@ import javafx.scene.layout.Priority; import javafx.scene.layout.Region; import javafx.scene.paint.Color; import javafx.util.Duration; + +import javax.ejb.MessageDriven; import javax.swing.Action; import javax.swing.SwingUtilities; import org.apache.commons.lang3.StringUtils; @@ -97,6 +99,7 @@ import org.controlsfx.control.GridView; import org.controlsfx.control.SegmentedButton; import org.controlsfx.control.action.ActionUtils; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.util.actions.Presenter; import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; @@ -273,7 +276,7 @@ public class GroupPane extends BorderPane { undoAction = new UndoAction(controller); redoAction = new RedoAction(controller); - FXMLConstructor.construct(this, "GroupPane.fxml"); + FXMLConstructor.construct(this, "GroupPane.fxml"); //NON-NLS } @ThreadConfined(type = ThreadType.JFX) @@ -330,10 +333,14 @@ public class GroupPane extends BorderPane { /** * create the string to display in the group header */ + @NbBundle.Messages({"# {0} - default group name", + "# {1} - hashset hits count", + "# {2} - group size", + "GroupPane.headerString={0} -- {1} hash set hits / {2} files"}) protected String getHeaderString() { return isNull(getGroup()) ? "" - : StringUtils.defaultIfBlank(getGroup().getGroupByValueDislpayName(), DrawableGroup.getBlankGroupName()) + " -- " - + getGroup().getHashSetHitsCount() + " hash set hits / " + getGroup().getSize() + " files"; + : Bundle.GroupPane_headerString(StringUtils.defaultIfBlank(getGroup().getGroupByValueDislpayName(), DrawableGroup.getBlankGroupName()), + getGroup().getHashSetHitsCount(), getGroup().getSize()); } ContextMenu getContextMenu() { @@ -390,6 +397,7 @@ public class GroupPane extends BorderPane { * checks that FXML loading went ok and performs additional setup */ @FXML + @NbBundle.Messages({"GroupPane.gridViewContextMenuItem.extractFiles=Extract File(s)"}) void initialize() { assert cat0Toggle != null : "fx:id=\"cat0Toggle\" was not injected: check your FXML file 'SlideShowView.fxml'."; assert cat1Toggle != null : "fx:id=\"cat1Toggle\" was not injected: check your FXML file 'SlideShowView.fxml'."; @@ -451,13 +459,13 @@ public class GroupPane extends BorderPane { try { tagSelectedSplitMenu.setText(controller.getTagsManager().getFollowUpTagName().getDisplayName()); } catch (TskCoreException tskCoreException) { - LOGGER.log(Level.WARNING, "failed to load FollowUpTagName", tskCoreException); + LOGGER.log(Level.WARNING, "failed to load FollowUpTagName", tskCoreException); //NON-NLS } tagSelectedSplitMenu.setOnAction(actionEvent -> { try { new TagSelectedFilesAction(controller.getTagsManager().getFollowUpTagName(), controller).handle(actionEvent); } catch (TskCoreException tskCoreException) { - LOGGER.log(Level.WARNING, "failed to load FollowUpTagName", tskCoreException); + LOGGER.log(Level.WARNING, "failed to load FollowUpTagName", tskCoreException); //NON-NLS } }); @@ -528,7 +536,7 @@ public class GroupPane extends BorderPane { } } } - final MenuItem extractMenuItem = new MenuItem("Extract File(s)"); + final MenuItem extractMenuItem = new MenuItem(Bundle.GroupPane_gridViewContextMenuItem_extractFiles()); extractMenuItem.setOnAction((ActionEvent t) -> { SwingUtilities.invokeLater(() -> { TopComponent etc = WindowManager.getDefault().findTopComponent(ImageGalleryTopComponent.PREFERRED_ID); @@ -730,7 +738,7 @@ public class GroupPane extends BorderPane { if (gridView == null || gridView.getSkin() == null) { return Optional.empty(); } - return Optional.ofNullable((ScrollBar) gridView.getSkin().getNode().lookup(".scroll-bar")); + return Optional.ofNullable((ScrollBar) gridView.getSkin().getNode().lookup(".scroll-bar")); //NON-NLS } void makeSelection(Boolean shiftDown, Long newFileID) { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java index 32b8b8c71f..24e2072aec 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java @@ -50,6 +50,7 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.Region; import javafx.scene.text.Text; import javafx.util.Pair; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.casemodule.events.ContentTagDeletedEvent; import org.sleuthkit.autopsy.coreutils.Logger; @@ -84,10 +85,11 @@ public class MetaDataPane extends DrawableUIBase { public MetaDataPane(ImageGalleryController controller) { super(controller); - FXMLConstructor.construct(this, "MetaDataPane.fxml"); + FXMLConstructor.construct(this, "MetaDataPane.fxml"); //NON-NLS } @FXML + @NbBundle.Messages({"MetaDataPane.tableView.placeholder=Select a file to show its details here."}) void initialize() { assert attributeColumn != null : "fx:id=\"attributeColumn\" was not injected: check your FXML file 'MetaDataPane.fxml'."; assert imageView != null : "fx:id=\"imageView\" was not injected: check your FXML file 'MetaDataPane.fxml'."; @@ -116,7 +118,7 @@ public class MetaDataPane extends DrawableUIBase { }); tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); - tableView.setPlaceholder(new Label("Select a file to show its details here.")); + tableView.setPlaceholder(new Label(Bundle.MetaDataPane_tableView_placeholder())); tableView.getColumns().setAll(Arrays.asList(attributeColumn, valueColumn)); attributeColumn.setPrefWidth(USE_COMPUTED_SIZE); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java index 59d747a655..1818f65521 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java @@ -77,7 +77,7 @@ public class SlideShowView extends DrawableTileBase { SlideShowView(GroupPane gp, ImageGalleryController controller) { super(gp, controller); - FXMLConstructor.construct(this, "SlideShowView.fxml"); + FXMLConstructor.construct(this, "SlideShowView.fxml"); //NON-NLS } @FXML @@ -137,7 +137,7 @@ public class SlideShowView extends DrawableTileBase { }); } catch (NullPointerException ex) { // The case has likely been closed - LOGGER.log(Level.WARNING, "Error accessing groupPane"); + LOGGER.log(Level.WARNING, "Error accessing groupPane"); //NON-NLS } } @@ -278,9 +278,12 @@ public class SlideShowView extends DrawableTileBase { * @return supplemental text to include in the label, specifically: "image x * of y" */ + @NbBundle.Messages({"# {0} - file id number", + "# {1} - number of file ids", + "SlideShowView.supplementalText={0} of {1} in group"}) private String getSupplementalText() { final ObservableList fileIds = getGroupPane().getGroup().getFileIDs(); - return getFileID().map(fileID -> " ( " + (fileIds.indexOf(fileID) + 1) + " of " + fileIds.size() + " in group )") + return getFileID().map(fileID -> " ( " + Bundle.SlideShowView_supplementalText(fileIds.indexOf(fileID) + 1, fileIds.size()) + " )") .orElse(""); } @@ -324,7 +327,7 @@ public class SlideShowView extends DrawableTileBase { final Media media = file.getMedia(); return new VideoPlayer(new MediaPlayer(media), file); } catch (MediaException | IOException | OutOfMemoryError ex) { - LOGGER.log(Level.WARNING, "Failed to initialize VideoPlayer for {0} : " + ex.toString(), file.getContentPathSafe()); + LOGGER.log(Level.WARNING, "Failed to initialize VideoPlayer for {0} : " + ex.toString(), file.getContentPathSafe()); //NON-NLS return doReadImageTask(file); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupComparators.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupComparators.java index c7bce311c4..a5bbb40f49 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupComparators.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupComparators.java @@ -21,27 +21,34 @@ package org.sleuthkit.autopsy.imagegallery.gui.navpanel; import com.google.common.collect.ImmutableList; import java.util.Comparator; import java.util.function.Function; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.DrawableGroup; /** * */ +@NbBundle.Messages({"GroupComparators.uncategorizedCount=Uncategorized Count", + "GroupComparators.groupName=Group Name", + "GroupComparators.hitCount=Hit Count", + "GroupComparators.groupSize=Group Size", + "GroupComparators.hitDensity=Hit Density"}) final class GroupComparators> implements Comparator { static final GroupComparators UNCATEGORIZED_COUNT = - new GroupComparators<>("Uncategorized Count", DrawableGroup::getUncategorizedCount, String::valueOf, false); + new GroupComparators<>(Bundle.GroupComparators_uncategorizedCount(), DrawableGroup::getUncategorizedCount, String::valueOf, false); static final GroupComparators ALPHABETICAL = - new GroupComparators<>("Group Name", DrawableGroup::getGroupByValueDislpayName, String::valueOf, false); + new GroupComparators<>(Bundle.GroupComparators_groupName(), DrawableGroup::getGroupByValueDislpayName, String::valueOf, false); static final GroupComparators HIT_COUNT = - new GroupComparators<>("Hit Count", DrawableGroup::getHashSetHitsCount, String::valueOf, true); + new GroupComparators<>(Bundle.GroupComparators_hitCount(), DrawableGroup::getHashSetHitsCount, String::valueOf, true); static final GroupComparators FILE_COUNT = - new GroupComparators<>("Group Size", DrawableGroup::getSize, String::valueOf, true); + new GroupComparators<>(Bundle.GroupComparators_groupSize(), DrawableGroup::getSize, String::valueOf, true); static final GroupComparators HIT_FILE_RATIO = - new GroupComparators<>("Hit Density", DrawableGroup::getHashHitDensity, density -> String.format("%.2f", density) + "%", true); + new GroupComparators<>(Bundle.GroupComparators_hitDensity(), DrawableGroup::getHashHitDensity, density -> String.format("%.2f", density) + "%", true); //NON-NLS private final static ImmutableList> values = ImmutableList.of(UNCATEGORIZED_COUNT, ALPHABETICAL, HIT_COUNT, FILE_COUNT, HIT_FILE_RATIO); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupListCell.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupListCell.java index 6951d67997..37caa8bd78 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupListCell.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupListCell.java @@ -42,7 +42,7 @@ class GroupListCell extends ListCell { * folder(with no DrawableFiles) in the file system hierarchy. */ private static final Image EMPTY_FOLDER_ICON = - new Image(GroupTreeCell.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/folder.png")); + new Image(GroupTreeCell.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/folder.png")); //NON-NLS /** * reference to group files listener that allows us to remove it from a @@ -70,8 +70,8 @@ class GroupListCell extends ListCell { GroupListCell(ReadOnlyObjectProperty> sortOrderProperty) { this.sortOrder = sortOrderProperty; - getStylesheets().add(GroupTreeCell.class.getResource("GroupTreeCell.css").toExternalForm()); - getStyleClass().add("groupTreeCell"); //reduce indent to 5, default is 10 which uses up a lot of space. + getStylesheets().add(GroupTreeCell.class.getResource("GroupTreeCell.css").toExternalForm()); //NON-NLS + getStyleClass().add("groupTreeCell"); //reduce indent to 5, default is 10 which uses up a lot of space. NON-NLS //since end of path is probably more interesting put ellipsis at front setTextOverrun(OverrunStyle.LEADING_ELLIPSIS); @@ -145,7 +145,7 @@ class GroupListCell extends ListCell { private String getSeenStyleClass() { return Optional.ofNullable(getItem()) .map(DrawableGroup::isSeen) - .map(seen -> seen ? "" : "-fx-font-weight:bold;") + .map(seen -> seen ? "" : "-fx-font-weight:bold;") //NON-NLS .orElse(""); //if item is null or group is null } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTree.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTree.java index e371644944..ffe9df9a51 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTree.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTree.java @@ -32,6 +32,8 @@ import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.image.ImageView; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.util.Beta; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.imagegallery.FXMLConstructor; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; @@ -53,15 +55,16 @@ final public class GroupTree extends NavPanel> { public GroupTree(ImageGalleryController controller) { super(controller); - FXMLConstructor.construct(this, "NavPanel.fxml"); + FXMLConstructor.construct(this, "NavPanel.fxml"); //NON-NLS } @FXML @Override + @NbBundle.Messages({"GroupTree.displayName.allGroups=All Groups"}) void initialize() { super.initialize(); - setText("All Groups"); - setGraphic(new ImageView("org/sleuthkit/autopsy/imagegallery/images/Folder-icon.png")); + setText(Bundle.GroupTree_displayName_allGroups()); + setGraphic(new ImageView("org/sleuthkit/autopsy/imagegallery/images/Folder-icon.png")); //NON-NLS getBorderPane().setCenter(groupTree); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeCell.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeCell.java index 917aa35084..a26ec693c7 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeCell.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/GroupTreeCell.java @@ -47,7 +47,7 @@ class GroupTreeCell extends TreeCell { * folder(with no DrawableFiles) in the file system hierarchy. */ private static final Image EMPTY_FOLDER_ICON = - new Image(GroupTreeCell.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/folder.png")); + new Image(GroupTreeCell.class.getResourceAsStream("/org/sleuthkit/autopsy/imagegallery/images/folder.png")); //NON-NLS /** * reference to group files listener that allows us to remove it from a @@ -75,8 +75,8 @@ class GroupTreeCell extends TreeCell { GroupTreeCell(ReadOnlyObjectProperty> sortOrderProperty) { this.sortOrder = sortOrderProperty; - getStylesheets().add(GroupTreeCell.class.getResource("GroupTreeCell.css").toExternalForm()); - getStyleClass().add("groupTreeCell"); //reduce indent to 5, default is 10 which uses up a lot of space. + getStylesheets().add(GroupTreeCell.class.getResource("GroupTreeCell.css").toExternalForm()); //NON-NLS + getStyleClass().add("groupTreeCell"); //reduce indent to 5, default is 10 which uses up a lot of space. NON-NLS //since end of path is probably more interesting put ellipsis at front setTextOverrun(OverrunStyle.LEADING_ELLIPSIS); @@ -161,7 +161,7 @@ class GroupTreeCell extends TreeCell { return Optional.ofNullable(getItem()) .map(GroupTreeNode::getGroup) .map(DrawableGroup::isSeen) - .map(seen -> seen ? "" : "-fx-font-weight:bold;") + .map(seen -> seen ? "" : "-fx-font-weight:bold;") //NON-NLS .orElse(""); //if item is null or group is null } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/HashHitGroupList.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/HashHitGroupList.java index 71f8aa026f..03c6663369 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/HashHitGroupList.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/navpanel/HashHitGroupList.java @@ -24,6 +24,7 @@ import javafx.fxml.FXML; import javafx.scene.control.ListView; import javafx.scene.control.SelectionModel; import javafx.scene.image.ImageView; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.imagegallery.FXMLConstructor; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; @@ -47,7 +48,7 @@ final public class HashHitGroupList extends NavPanel { public HashHitGroupList(ImageGalleryController controller) { super(controller); - FXMLConstructor.construct(this, "NavPanel.fxml"); + FXMLConstructor.construct(this, "NavPanel.fxml"); //NON-NLS } @ThreadConfined(type = ThreadConfined.ThreadType.JFX) @@ -68,11 +69,12 @@ final public class HashHitGroupList extends NavPanel { @FXML @Override + @NbBundle.Messages({"HashHitGroupList.displayName.onlyHashHits=Only Hash Hits"}) void initialize() { super.initialize(); - setText("Only Hash Hits"); - setGraphic(new ImageView("org/sleuthkit/autopsy/imagegallery/images/hashset_hits.png")); + setText(Bundle.HashHitGroupList_displayName_onlyHashHits()); + setGraphic(new ImageView("org/sleuthkit/autopsy/imagegallery/images/hashset_hits.png")); //NON-NLS getBorderPane().setCenter(groupList); sorted = getController().getGroupManager().getAnalyzedGroups().filtered((DrawableGroup t) -> t.getHashSetHitsCount() > 0).sorted(getDefaultComparator()); diff --git a/KeywordSearch/nbproject/project.properties b/KeywordSearch/nbproject/project.properties index 999c6bd7ac..cb50270b3e 100644 --- a/KeywordSearch/nbproject/project.properties +++ b/KeywordSearch/nbproject/project.properties @@ -1,4 +1,4 @@ -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index 39ce8b000a..ec90106241 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -110,7 +110,7 @@ KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window KeywordSearchIngestModule.init.badInitMsg=Keyword search server was not properly initialized, cannot run keyword search ingest. KeywordSearchIngestModule.init.tryStopSolrMsg={0}
Please try stopping old java Solr process (if it exists) and restart the application. KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. -KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=Only indexing will be done and and keyword search will be skipped (you can still add keyword lists using the Keyword Lists - Add to Ingest). +KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=Only indexing will be done and keyword search will be skipped (you can still add keyword lists using the Keyword Lists - Add to Ingest). KeywordSearchIngestModule.doInBackGround.displayName=Periodic Keyword Search KeywordSearchIngestModule.doInBackGround.finalizeMsg= - Finalizing KeywordSearchIngestModule.doInBackGround.pendingMsg= (Pending) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index f02aafb699..ea8d0a5c4d 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -40,24 +40,24 @@ KeywordSearchEditListPanel.keywordsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\uFF OpenIDE-Module-Short-Description=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u30D3\u30E5\u30FC\u30A2\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30C4\u30FC\u30EB KeywordSearchListsViewerPanel.manageListsButton.toolTipText=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3001\u30EA\u30B9\u30C8\u306E\u8A2D\u5B9A\u3068\u95A2\u9023\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u306E\u7BA1\u7406\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002 AbstractKeywordSearchPerformer.search.dialogErrorHeader=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A8\u30E9\u30FC -AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC -AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u5B9F\u884C\u4E2D -AbstractKeywordSearchPerformer.search.ingestInProgressBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u5B9F\u884C\u4E2D
\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u7D50\u679C\u304C\u4E0D\u5B8C\u5168\u306B\u306A\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002
\u3053\u306E\u691C\u7D22\u3092\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F -AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u304C\u7A7A\u767D\u3067\u3059\u3002\u6700\u4F4E\uFF11\u3064\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044\u3002 -AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u307E\u3060\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002
\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u518D\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u3000{0}\u3000\u5206\u6BCE\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002 +AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30AF\u30A8\u30EA\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC +AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u4E2D +AbstractKeywordSearchPerformer.search.ingestInProgressBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u4E2D
\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u7D50\u679C\u304C\u4E0D\u5B8C\u5168\u306B\u306A\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002
\u3053\u306E\u691C\u7D22\u3092\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F +AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u304C\u7A7A\u767D\u3067\u3059\u3002\u6700\u4F4E\uFF11\u3064\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u306B\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044\u3002 +AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u307E\u3060\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002
\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u518D\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F{0}\u5206\u3054\u3068\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002 AbstractKeywordSearchPerformer.search.noFilesIdxdMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002
\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6709\u52B9\u5316\u3057\u3066\u30A4\u30E1\u30FC\u30B8\u3092\u518D\u5EA6\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3002 -ExtractedContentPanel.setMarkup.panelTxt=\u30C6\u30AD\u30B9\u30C8\u30ED\u30FC\u30C9\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044... +ExtractedContentPanel.setMarkup.panelTxt=\u30C6\u30AD\u30B9\u30C8\u30ED\u30FC\u30C9\u4E2D...\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002 ExtractedContentViewer.toString=\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8 -ExtractedContentViewer.toolTip=\u30D5\u30A1\u30A4\u30EB\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u7D50\u679C\u304B\u3089\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3002\u3053\u306E\u30D3\u30E5\u30FC\u30A2\u3092\u30A2\u30AF\u30C6\u30A3\u30D9\u30A4\u30C8\u3059\u308B\u306B\u306F\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u4E0A\u3067\u5B9F\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 -ExtractedContentViewer.getTitle=\u30C6\u30AD\u30B9\u30C8 +ExtractedContentViewer.toolTip=\u30D5\u30A1\u30A4\u30EB\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u7D50\u679C\u304B\u3089\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3002\u3053\u306E\u30D3\u30E5\u30FC\u30A2\u3092\u6709\u52B9\u5316\u3059\u308B\u306B\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +ExtractedContentViewer.getTitle=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8 ExtractedContentViewer.getSolrContent.knownFileMsg=

{0}\u306F\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u3067\u3059\uFF08MDS\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u304F\u3068\uFF09\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002

-ExtractedContentViewer.getSolrContent.noTxtYetMsg=

{0}\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002
\u30C6\u30AD\u30B9\u30C8\u304C\u7121\u3044\u304B\u3001\u307E\u3060\u89E3\u6790\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u306A\u304B\u3063\u305F\u306E\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002

-HighlightedMatchesSource.getMarkup.noMatchMsg=
\u3053\u306E\u30DA\u30FC\u30B8\u4E0A\u3067\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u542B\u307E\u308C\u3066\u3044\u305F\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
\u5225\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\u3059\u308B\u304B\u3001\u30AA\u30EA\u30B8\u30CA\u30EB\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B\u306E\u306B\u3001\u300C\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u300D\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002
+ExtractedContentViewer.getSolrContent.noTxtYetMsg=

{0}\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002
\u30C6\u30AD\u30B9\u30C8\u304C\u7121\u3044\u304B\u3001\u307E\u3060\u89E3\u6790\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u306A\u304B\u3063\u305F\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002

+HighlightedMatchesSource.getMarkup.noMatchMsg=
\u3053\u306E\u30DA\u30FC\u30B8\u4E0A\u3067\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u542B\u307E\u308C\u3066\u3044\u305F\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
\u30D2\u30C3\u30C8\u3057\u305F\u7D50\u679C\u3092\u898B\u308B\u306E\u306B\u5225\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\u3059\u308B\u304B\u3001\u30AA\u30EA\u30B8\u30CA\u30EB\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B\u306E\u306B\u3001\u300C\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u300D\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002
HighlightedMatchesSource.toString=\u691C\u7D22\u7D50\u679C -Installer.reportPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E {3} \u306E {2} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002 -Installer.reportStopPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30B9\u30C8\u30C3\u30D7\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E {1} \u306E {2} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Installer.reportPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E{3}\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E{2}\u3092\u5909\u66F4\u3059\u308B\u691C\u8A0E\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002 +Installer.reportStopPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30B9\u30C8\u30C3\u30D7\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E{3}\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E{2}\u3092\u5909\u66F4\u3059\u308B\u691C\u8A0E\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002 Installer.errorInitKsmMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u8D77\u52D5\u30A8\u30E9\u30FC -Installer.reportInitError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E {2} \u306E {3} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002 +Installer.reportInitError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E{3}\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E{2}\u3092\u5909\u66F4\u3059\u308B\u691C\u8A0E\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002 KeywordSearchConfigurationPanel.customizeComponents.title=\u30A2\u30C9\u30D0\u30F3\u30B9\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u8A2D\u5B9A KeywordSearchConfigurationPanel.customizeComponents.listTabTitle=\u30EA\u30B9\u30C8 KeywordSearchConfigurationPanel.customizeComponents.stringExtTitle=\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA @@ -73,8 +73,8 @@ KeywordSearchConfigurationPanel1.customizeComponents.noOwDefaultMsg=\u30C7\u30D5 KeywordSearchConfigurationPanel1.customizeComponents.kwListExistMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 <{0}> \u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F KeywordSearchConfigurationPanel1.customizeComponents.kwListSavedMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 <{0}> \u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F KeywordSearchEditListPanel.customizeComponents.kwReToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u306F\u6B63\u7FA9\u8868\u73FE\u3067\u3059 -KeywordSearchEditListPanel.customizeComponents.addWordToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30EA\u30B9\u30C8\u306B\u5358\u8A9E\u3092\u8FFD\u52A0 -KeywordSearchEditListPanel.customizeComponents.enterNewWordToolTip=\u65B0\u898F\u5358\u8A9E\u3084\u4E00\u6B63\u898F\u8868\u73FE\u3092\u5165\u529B +KeywordSearchEditListPanel.customizeComponents.addWordToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30EA\u30B9\u30C8\u306B\u65B0\u3057\u3044\u5358\u8A9E\u3092\u8FFD\u52A0 +KeywordSearchEditListPanel.customizeComponents.enterNewWordToolTip=\u691C\u7D22\u3059\u308B\u306E\u306B\u65B0\u898F\u5358\u8A9E\u307E\u305F\u306F\u6B63\u898F\u8868\u73FE\u3092\u5165\u529B KeywordSearchEditListPanel.customizeComponents.exportToFile=\u65E2\u5B58\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 KeywordSearchEditListPanel.customizeComponents.saveCurrentWIthNewNameToolTip=\u65E2\u5B58\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u540D\u524D\u3092\u4ED8\u3051\u3066\u4FDD\u5B58 KeywordSearchEditListPanel.customizeComponents.removeSelectedMsg=\u9078\u629E\u3057\u305F\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u304B\u3089\u524A\u9664 @@ -89,13 +89,13 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=\u30A8\ KeywordSearchEditListPanel.kwColName=\u30AD\u30FC\u30EF\u30FC\u30C9 KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u6B63\u898F\u8868\u73FE KeywordSearchFilterNode.getFileActions.openExternViewActLbl=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F -KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u4E00\u306EMD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A -KeywordSearchIngestModule.init.badInitMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D0\u30FC\u304C\u6B63\u3057\u304F\u8D77\u52D5\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 -KeywordSearchIngestModule.init.tryStopSolrMsg={0}
\u53E4\u3044java Solr\u51E6\u7406\u3092\uFF08\u5B58\u5728\u3059\u308C\u3070\uFF09\u505C\u6B62\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +KeywordSearchIngestModule.init.badInitMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D0\u30FC\u304C\u6B63\u3057\u304F\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +KeywordSearchIngestModule.init.tryStopSolrMsg={0}
\u53E4\u3044java Solr\u51E6\u7406\u3092\uFF08\u3082\u3057\u5B58\u5728\u3059\u308C\u3070\uFF09\u505C\u6B62\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002 KeywordSearchIngestModule.init.noKwInLstMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002 -KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3060\u3051\u5B9F\u884C\u3055\u308C\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF08\u300C\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 - \u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0\u300D\u3092\u4F7F\u7528\u3057\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u306E\u306F\u53EF\u80FD\u3067\u3059 -KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u30BF\u30A4\u30D7\u306E\u30D5\u30A1\u30A4\u30EB +KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3060\u3051\u5B9F\u884C\u3055\u308C\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002\uFF08\u300C\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 - \u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0\u300D\u3092\u4F7F\u7528\u3057\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u306E\u306F\u53EF\u80FD\u3067\u3059\u3002\uFF09 +KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u30BF\u30A4\u30D7\u304C\u3042\u308B\u30D5\u30A1\u30A4\u30EB KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=\u4E00\u822C\u7684\u306A\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u62BD\u51FA\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB KeywordSearchIngestModule.postIndexSummary.mdOnlyLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u307E\u3057\u305F KeywordSearchIngestModule.postIndexSummary.idxErrLbl=\u30A8\u30E9\u30FC\uFF08\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC\uFF09 @@ -103,9 +103,9 @@ KeywordSearchIngestModule.postIndexSummary.errTxtLbl=\u30A8\u30E9\u30FC\uFF08\u3 KeywordSearchIngestModule.postIndexSummary.errIoLbl=\u30A8\u30E9\u30FC\uFF08I/O\uFF09 KeywordSearchIngestModule.postIndexSummary.kwIdxResultsLbl=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u7D50\u679C KeywordSearchIngestModule.postIndexSummary.kwIdxErrsTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30A8\u30E9\u30FC -KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B{0}\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u304C{0}\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 KeywordSearchIngestModule.postIndexSummary.kwIdxWarnMsgTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u8B66\u544A -KeywordSearchIngestModule.postIndexSummary.idxErrReadFilesMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u3084\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u7834\u640D\u3057\u305F\u30E1\u30C7\u30A3\u30A2\u3084\u30D5\u30A1\u30A4\u30EB\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchIngestModule.postIndexSummary.idxErrReadFilesMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u304C\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3080\u969B\u3084\u30C6\u30AD\u30B9\u30C8\u3092\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u7834\u640D\u3057\u305F\u30E1\u30C7\u30A3\u30A2\u3084\u30D5\u30A1\u30A4\u30EB\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchListsViewerPanel.initIngest.addIngestTitle=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0 KeywordSearchListsViewerPanel.initIngest.addIngestMsg=\u8FFD\u52A0\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\u3067\u304D\u307E\u3059
\u305D\u3057\u3066\u5B9F\u884C\u4E2D\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0\u3067\u304D\u307E\u3059
\u6B21\u56DE\u306E\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u518D\u69CB\u7BC9\u306E\u3068\u304D\u306B\u9078\u629E\u3055\u308C\u305F\u30EA\u30B9\u30C8\u3082\u691C\u7D22\u3055\u308C\u307E\u3059\u3002 KeywordSearchListsViewerPanel.initIngest.searchIngestTitle=\u691C\u7D22 @@ -124,7 +124,7 @@ KeywordSearch.cancelImportMsg=\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u30AD\u30E3\u KeywordSearch.overwriteListPrompt=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 <{0}> \u306F\u30ED\u30FC\u30AB\u30EB\u306B\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F KeywordSearch.importOwConflict=\u30EA\u30B9\u30C8\u30A4\u30F3\u30DD\u30FC\u30C8\u306E\u554F\u984C KeywordSearch.kwListFailImportMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u304C\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -KeywordSearchListsManagementPanel.fileExtensionFilterLbl=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB +KeywordSearchListsManagementPanel.fileExtensionFilterLbl=Autopsy\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(xml) KeywordSearch.listImportFeatureTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u30A4\u30F3\u30DD\u30FC\u30C8 KeywordSearchIngestModule.moduleName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 DropdownSearchPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E @@ -154,21 +154,21 @@ HighlightedMatchesSource.nextPage.exception.msg=\u6B21\u306E\u30DA\u30FC\u30B8\u HighlightedMatchesSource.previousPage.exception.msg=\u524D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 HighlightedMatchesSource.nextItem.exception.msg=\u6B21\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 HighlightedMatchesSource.previousItem.exception.msg=\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 -Ingester.ingest.exception.unknownImgId.msg=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID\uFF1A{0} +Ingester.ingest.exception.unknownImgId.msg=\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u30D5\u30A1\u30A4\u30EB\uFF1A{0}\u306E\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306E\u30A8\u30E9\u30FC\uFF1A{0} -Ingester.ingestExtract.exception.solrTimeout.msg=\u4E0B\u8A18\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, \u540D\u524D\: {1} +Ingester.ingestExtract.exception.solrTimeout.msg=\u6B21\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, \u540D\u524D\: {1} Ingester.ingestExtract.exception.probPostToSolr.msg=Solr\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002ID\uFF1A{0}, \u540D\u524D\: {1} Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=Solr\u30B3\u30A2\u304C\u5229\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3002 Ingester.UpRequestTask.run.exception.probReadFile.msg=\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u53D6\u308A\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Ingester.UpRequestTask.run.exception.solrProb.msg=Solr\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3059 -Ingester.UpRequestTask.run.exception.probPostToSolr.msg=\u30D5\u30A1\u30A4\u30EB\u30B3\u30F3\u30C6\u30F3\u30C4\u3092Solr\u306B\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002SolrException\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\uFF1A{0} +Ingester.UpRequestTask.run.exception.probPostToSolr.msg=\u30D5\u30A1\u30A4\u30EB\u30B3\u30F3\u30C6\u30F3\u30C4\u3092Solr\u306B\u8F09\u305B\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002SolrException\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\uFF1A{0} Ingester.FscContentStream.getSrcInfo=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} Ingester.FscContentStream.getReader=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 Ingester.NullContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} Ingester.NullContentStream.getReader=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 KeywordSearch.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC -KeywordSearch.fireNumIdxFileChg.moduleErr.msg=KeywordSearch\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearch.fireNumIdxFileChg.moduleErr.msg=KeywordSearch\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchIngestModule.init.exception.errConnToSolr.msg=Solr\u30B5\u30FC\u30D0\u3078\u63A5\u7D9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} KeywordSearchListsEncase.save.exception.msg=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 KeywordSearchListsEncase.save2.exception.msg=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 @@ -176,48 +176,47 @@ KeywordSearchListsEncase.encaseMetaType.exception.msg=\u30B5\u30DD\u30FC\u30C8\u KeywordSearchListsManagementPanel.getColName.text=\u540D\u524D KeywordSearchListsManagementPanel.setValueAt.exception.msg=\u30BB\u30EB\u306E\u7DE8\u96C6\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 KeywordSearchOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC -KeywordSearchOptionsPanelController.moduleErr.msg1=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchOptionsPanelController.moduleErr.msg2=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchOptionsPanelController.moduleErr.msg1=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchOptionsPanelController.moduleErr.msg2=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchQueryManager.pathText.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 KeywordSearchResultFactory.progress.saving=\u7D50\u679C\u3092\u4FDD\u5B58\u4E2D\uFF1A{0} KeywordSearchSettings.moduleName.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 KeywordSearchSettings.properties_options.text={0}_\u30AA\u30D7\u30B7\u30E7\u30F3 KeywordSearchSettings.propertiesNSRL.text={0}_NSRL KeywordSearchSettings.propertiesScripts.text={0}_\u30B9\u30AF\u30EA\u30D7\u30C8 -NoOpenCoreException.err.noOpenSorlCore.msg=\u73FE\u5728\u958B\u3044\u3066\u3044\u308BSolr\u30B3\u30A2\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +NoOpenCoreException.err.noOpenSorlCore.msg=\u73FE\u5728\u958B\u3044\u3066\u3044\u308BSolr\u30B3\u30A2\u304C\u3042\u308A\u307E\u305B\u3093\u3002 Server.start.exception.cantStartSolr.msg=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.start.exception.cantStartSolr.msg2=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.isRunning.exception.errCheckSolrRunning.msg=Solr\u30B5\u30FC\u30D0\u306E\u7A3C\u50CD\u72B6\u614B\u3092\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Server.isRunning.exception.errCheckSolrRunning.msg2=Solr\u30B5\u30FC\u30D0\u306E\u7A3C\u50CD\u72B6\u614B\u3092\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Server.openCore.exception.alreadyOpen.msg=\u3059\u3067\u306B\u958B\u3044\u3066\u3044\u308B\u30B3\u30A2\u3067\u3059\uFF01\u307E\u305A\u660E\u793A\u7684\u306B\u30B3\u30A2\u3092\u9589\u3058\u3066\u4E0B\u3055\u3044\u3002 +Server.isRunning.exception.errCheckSolrRunning.msg2=Solr\u30B5\u30FC\u30D0\u304C\u7A3C\u50CD\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Server.openCore.exception.alreadyOpen.msg=\u3059\u3067\u306B\u958B\u3044\u3066\u3044\u308B\u30B3\u30A2\u3067\u3059\uFF01\u307E\u305A\u78BA\u5B9F\u306B\u30B3\u30A2\u3092\u9589\u3058\u3066\u4E0B\u3055\u3044\u3002 Server.queryNumIdxFiles.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Server.queryNumIdxChunks.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30C1\u30E3\u30F3\u30AF\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Server.queryNumIdxDocs.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Server.queryIsIdxd.exception.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Server.queryNumFileChunks.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30C1\u30E3\u30F3\u30AF\u306E\u6570\u3092\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Server.query.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} -Server.query2.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} -Server.queryTerms.exception.msg=Terms\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Server.openCore.exception.msg=\u30B3\u30A2\u3092\u958B\u304F\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u307E\u3060\u7A3C\u50CD\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -Server.openCore.exception.cantOpen.msg=\u30B3\u30A2\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F -Server.openCore.exception.cantOpen.msg2=\u30B3\u30A2\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F +Server.query.exception.msg=\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +Server.query2.exception.msg=\u30AF\u30A8\u30EA\uFF1A{0}\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Server.queryTerms.exception.msg=Terms\u30AF\u30A8\u30EA\: {0}\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Server.openCore.exception.msg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D3\u30B9\u304C\u307E\u3060\u7A3C\u50CD\u3057\u3066\u3044\u307E\u305B\u3093 +Server.openCore.exception.cantOpen.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u307E\u305F\u306F\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F Server.request.exception.exception.msg=Solr\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u767A\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.commit.exception.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u30B3\u30DF\u30C3\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F -Server.addDoc.exception.msg=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Server.addDoc.exception.msg=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u6B21\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} Server.close.exception.msg=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 Server.solrServerNoPortException.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u306B\u4F7F\u7528\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306F\u30DD\u30FC\u30C8{0}\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30DD\u30FC\u30C8\u306F\u4F7F\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8{1}\u30DD\u30FC\u30C8\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u4E0B\u3055\u3044\u3002 -KeywordSearchIngestModule.doInBackGround.displayName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 +KeywordSearchIngestModule.doInBackGround.displayName=\u5B9A\u671F\u7684\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 KeywordSearchIngestModule.doInBackGround.finalizeMsg=- \u6700\u7D42\u51E6\u7406\u4E2D KeywordSearchIngestModule.doInBackGround.pendingMsg=\uFF08\u30DA\u30F3\u30C7\u30A3\u30F3\u30B0\uFF09 SearchRunner.doInBackGround.cancelMsg=\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 -Server.addDoc.exception.msg2=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Server.addDoc.exception.msg2=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u6B21\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} ExtractedContentViewer.getSolrContent.txtBodyItal={0} Keyword.toString.text=Keyword'{'query\={0}, isLiteral\={1}, keywordType\={2}'}' KeywordSearchJobSettingsPanel.keywordSearchEncodings.text=- KeywordSearchJobSettingsPanel.languagesValLabel.text=- KeywordSearchJobSettingsPanel.encodingsLabel.text=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\uFF1A -KeywordSearchJobSettingsPanel.titleLabel.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u6709\u52B9\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\uFF1A +KeywordSearchJobSettingsPanel.titleLabel.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u306B\u6709\u52B9\u306B\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\uFF1A KeywordSearchJobSettingsPanel.languagesLabel.toolTipText=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3002\u30A2\u30C9\u30D0\u30F3\u30B9\u8A2D\u5B9A\u304B\u3089\u5909\u66F4\u304C\u53EF\u80FD\u3067\u3059\u3002 KeywordSearchJobSettingsPanel.languagesLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A KeywordSearchGlobalLanguageSettingsPanel.enableUTF8Checkbox.text=UTF8\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u306E\u6709\u52B9\u5316 @@ -257,16 +256,16 @@ KeywordSearchIngestModule.listThLbl=\u30EA\u30B9\u30C8 KeywordSearchIngestModule.previewThLbl=\u30D7\u30EC\u30D3\u30E5\u30FC KeywordSearchIngestModule.regExpHitLbl=\u6B63\u898F\u8868\u73FE\u30D2\u30C3\u30C8\uFF1A KeywordSearchIngestModule.regExThLbl=\u6B63\u898F\u8868\u73FE -KeywordSearchListsAbstract.addList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchListsAbstract.addList.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.addList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.addList.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchListsAbstract.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC KeywordSearchPanel.searchDropButton.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 SearchRunner.updateTimer.title.text=SearchRunner\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30BF\u30A4\u30DE\u30FC -KeywordSearchListsAbstract.deleteList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchListsAbstract.saveList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchListsAbstract.saveList.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchListsAbstract.writeLists.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 -KeywordSearchListsAbstract.writeLists.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.deleteList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.saveList.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.saveList.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.writeLists.errMsg1.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchListsAbstract.writeLists.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchListsManagementPanel.newKeywordListDescription=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30EA\u30B9\u30C8\u3068\u3057\u3066\u5B58\u5728\u3057\u307E\u3059\u3002\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u4F7F\u7528\u4E2D\u306E\u307F\u3053\u306E\u30EA\u30B9\u30C8\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F\uFF08\u3053\u306E\u5909\u66F4\u306F\u7D99\u7D9A\u3055\u308C\u307E\u305B\u3093\uFF09 KeywordSearchListsManagementPanel.newKeywordListDescription2=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F KeywordSearchModuleFactory.createFileIngestModule.exception.msg=\u8A2D\u5B9A\u3092\u884C\u3046\u70BA\u306E\u60F3\u5B9A\u3055\u308C\u308B\u5F15\u6570\u306Finstanceof KeywordSearchJobSettings @@ -274,3 +273,16 @@ KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=\u8A2D\u5B9A\ SearchRunner.Searcher.done.err.msg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F KeywordSearchGlobalSearchSettingsPanel.timeRadioButton5.text=\u5B9A\u671F\u7684\u691C\u7D22\u7121\u3057 KeywordSearchGlobalSearchSettingsPanel.timeRadioButton5.toolTipText=\u5168\u4F53\u7684\u306B\u4E00\u756A\u901F\u3044\u3067\u3059\u304C\u3001\u51E6\u7406\u304C\u5B8C\u4E86\u3059\u308B\u307E\u3067\u7D50\u679C\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093 +HighlightedMatchesSource.getMarkup.queryFailedMsg=
\u30AD\u30FC\u30EF\u30FC\u30C9\u306B\u30D2\u30C3\u30C8\u3057\u305F\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
Autopsy\u304CSolr\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3067\u304D\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
\ +KeywordSearch.openCore.notification.msg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F +KeywordSearch.closeCore.notification.msg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u9589\u3058\u308B\u969B\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +KeywordSearchListsManagementPanel.fileExtensionFilterLb2=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u30A8\u30F3\u30B1\u30FC\u30B9\u3059\u308B(txt) +Server.connect.exception.msg=Solr\u30B5\u30FC\u30D0\u30FC\u3078\u306E\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A +Server.openCore.exception.noIndexDir.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u307E\u305F\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +KeywordSearchIngestModule.startUp.noOpenCore.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u304C\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u307E\u305F\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +KeywordSearchIngestModule.startUp.fileTypeDetectorInitializationException.msg=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u30C7\u30A3\u30C6\u30AF\u30BF\u3092\u8D77\u52D5\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +SolrConnectionCheck.HostnameOrPort=hostname\u3084\u30DD\u30FC\u30C8\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059\u3002 +SolrConnectionCheck.Hostname=hostname\u304C\u7121\u52B9\u3067\u3059\u3002 +SolrConnectionCheck.Port=\u30DD\u30FC\u30C8\u756A\u53F7\u304C\u7121\u52B9\u3067\u3059\u3002 +SolrConnectionCheck.MissingHostname=hostname\u304C\u6B20\u3051\u3066\u307E\u3059\u3002 +RawText.getText.error.msg=\u30C6\u30AD\u30B9\u30C8\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F diff --git a/RecentActivity/nbproject/project.properties b/RecentActivity/nbproject/project.properties index a31b0c2f01..bc09675c9d 100644 --- a/RecentActivity/nbproject/project.properties +++ b/RecentActivity/nbproject/project.properties @@ -1,5 +1,5 @@ file.reference.gson-2.1.jar=release/modules/ext/gson-2.1.jar -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties index d48bb0de81..d86b71dec9 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties @@ -1,7 +1,7 @@ OpenIDE-Module-Display-Category=Ingest Module OpenIDE-Module-Long-Description=\ Recent Activity ingest module.\n\n\ - The module extracts useful information about the recent user activity on the disk image being ingested, such as:\n\n- Recently open documents,\n- Web acitivity (sites visited, stored cookies, bookmarked sites, search engine queries, file downloads),\n- Recently attached devices,\n- Installed programs.\n\n\ + The module extracts useful information about the recent user activity on the disk image being ingested, such as\:\n\n- Recently open documents,\n- Web acitivity (sites visited, stored cookies, bookmarked sites, search engine queries, file downloads),\n- Recently attached devices,\n- Installed programs.\n\n\ The module currently supports Windows only disk images. \n\ The plugin is also fully functional when deployed on Windows version of Autopsy. OpenIDE-Module-Name=RecentActivity diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties index cbbcb03a7d..47af63c1ac 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties @@ -1,89 +1,89 @@ OpenIDE-Module-Display-Category=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB OpenIDE-Module-Long-Description=\ \u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n\n\ - \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306E\u30C7\u30A3\u30B9\u30AF\u30A4\u30E1\u30FC\u30B8\u306E\u6700\u8FD1\u306E\u30E6\u30FC\u30B6\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u306B\u95A2\u3057\u3066\u5F79\u7ACB\u3064\u60C5\u5831\u3092\u62BD\u51FA\u3057\u307E\u3059\u3002\u4F8B\u3048\u3070\uFF1A\n\n-\u6700\u8FD1\u958B\u3044\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\n-\u30A6\u30A7\u30D6\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\uFF08\u8A2A\u308C\u305F\u30B5\u30A4\u30C8\u3001Cookie\u3001\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u3055\u308C\u305F\u30B5\u30A4\u30C8\u3001\u30B5\u30FC\u30C1\u30A8\u30F3\u30B8\u30F3\u30AF\u30A8\u30EA\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF09\u3001\n-\u6700\u8FD1\u30A2\u30BF\u30C3\u30C1\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u3001\n-\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u30D7\u30ED\u30B0\u30E9\u30E0\u3002\n\n\ + \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306E\u30C7\u30A3\u30B9\u30AF\u30A4\u30E1\u30FC\u30B8\u304B\u3089\u6709\u7528\u306A\u6700\u8FD1\u306E\u30E6\u30FC\u30B6\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u3092\u62BD\u51FA\u3057\u307E\u3059\u3002\u4F8B\u3048\u3070\uFF1A\n\n-\u6700\u8FD1\u958B\u3044\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\n-\u30A6\u30A7\u30D6\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\uFF08\u8A2A\u308C\u305F\u30B5\u30A4\u30C8\u3001\u4FDD\u5B58\u3055\u308C\u305FCookie\u3001\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u3055\u308C\u305F\u30B5\u30A4\u30C8\u3001\u30B5\u30FC\u30C1\u30A8\u30F3\u30B8\u30F3\u30AF\u30A8\u30EA\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF09\u3001\n-\u6700\u8FD1\u63A5\u7D9A\u3057\u305F\u30C7\u30D0\u30A4\u30B9\u3001\n-\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u30D7\u30ED\u30B0\u30E9\u30E0\u3002\n\n\ \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u73FE\u5728Windows\u306E\u30C7\u30A3\u30B9\u30AF\u30A4\u30E1\u30FC\u30B8\u3057\u304B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002\n\ - \u30D7\u30E9\u30B0\u30A4\u30F3\u306FWindows\u7248\u306EAutopsy\u306B\u3066\u5229\u7528\u3059\u308B\u3068\u5B8C\u5168\u6A5F\u80FD\u3057\u307E\u3059\u3002 + \u30D7\u30E9\u30B0\u30A4\u30F3\u306FWindows\u7248\u306EAutopsy\u3092\u5229\u7528\u3059\u308B\u3068\u5168\u3066\u306E\u6A5F\u80FD\u304C\u4F7F\u3048\u307E\u3059\u3002 OpenIDE-Module-Name=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 OpenIDE-Module-Short-Description=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u30D5\u30A1\u30A4\u30F3\u30C0\u30FC\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB Chrome.moduleName=Chrome -Chrome.getHistory.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Chrome.getHistory.errMsg.couldntFindAnyFiles=\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u3055\u308C\u305FChrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -Chrome.getHistory.errMsg.errAnalyzingFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getHistory.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Chrome.getHistory.errMsg.couldntFindAnyFiles=\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u3055\u308C\u305FChrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +Chrome.getHistory.errMsg.errAnalyzingFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F Chrome.parentModuleName=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 -Chrome.getBookmark.errMsg.errGettingFiles=Chrome\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Chrome.getBookmark.errMsg.errAnalyzingFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getBookmark.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getBookmark.errMsg.errAnalyzingFile3={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getBookmark.errMsg.errAnalyzingFile4={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getCookie.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Chrome.getCookie.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getDownload.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Chrome.getDownload.errMsg.errAnalyzeFiles1={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Chrome.getLogin.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -Chrome.getLogin.errMsg.errAnalyzingFiles={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getBookmark.errMsg.errGettingFiles=Chrome\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Chrome.getBookmark.errMsg.errAnalyzingFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getBookmark.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getBookmark.errMsg.errAnalyzingFile3={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getBookmark.errMsg.errAnalyzingFile4={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getCookie.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Chrome.getCookie.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getDownload.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Chrome.getDownload.errMsg.errAnalyzeFiles1={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Chrome.getLogin.errMsg.errGettingFiles=Chrome\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Chrome.getLogin.errMsg.errAnalyzingFiles={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F Extract.dbConn.errMsg.failedToQueryDb={0}\:\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30AF\u30A8\u30EA\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 ExtractIE.moduleName.text=Internet Explorer -ExtractIE.getBookmark.errMsg.errGettingBookmarks={0}\: Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.getBookmark.errMsg.errGettingBookmarks={0}\: Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExtractIE.parentModuleName.noSpace=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 ExtractIE.parentModuleName=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 -ExtractIE.getURLFromIEBmkFile.errMsg={0}\:Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB{1}\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -ExtractIE.getURLFromIEBmkFile.errMsg2={0}\:Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB{1}\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -ExtractIE.getCookie.errMsg.errGettingFile={0}\:Internet Explorer cookie\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -ExtractIE.getCookie.errMsg.errReadingIECookie={0}\:Internet Explorer cookie{1}\u306E\u8AAD\u307F\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.getURLFromIEBmkFile.errMsg={0}\:Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB{1}\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractIE.getURLFromIEBmkFile.errMsg2={0}\:Internet Explorer\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB{1}\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractIE.getCookie.errMsg.errGettingFile={0}\:Internet Explorer\u306Ecookie\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.getCookie.errMsg.errReadingIECookie={0}\:Internet Explorer\u306Ecookie{1}\u3092\u8AAD\u307F\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExtractIE.getHistory.errMsg.unableToGetHist={0}\:Internet Explorer\u5C65\u6B74\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1Apasco\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F -ExtractIE.getHistory.errMsg.errGettingHistFiles={0}\:Internet Explorer\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.getHistory.errMsg.errGettingHistFiles={0}\:Internet Explorer\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExtractIE.getHistory.errMsg.noHistFiles=Internet Explorer\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -ExtractIE.getHistory.errMsg.errWriteFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u66F8\u304D\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -ExtractIE.getHistory.errMsg.errProcHist={0}\: Internet Explorer\u5C65\u6B74\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.getHistory.errMsg.errWriteFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u66F8\u304D\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractIE.getHistory.errMsg.errProcHist={0}\: Internet Explorer\u5C65\u6B74\u3092\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExtractIE.parsePascoOutput.errMsg.notFound={0}\:Pasco\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{1} -ExtractIE.parsePascoOutput.errMsg.errParsing={0}\:Internet Explorer\u5C65\u6B74\u30A8\u30F3\u30C8\u30EA{1}\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -ExtractIE.parsePascoOutput.errMsg.errParsingEntry={0}\: Internet Explorer\u5C65\u6B74\u30A8\u30F3\u30C8\u30EA\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +ExtractIE.parsePascoOutput.errMsg.errParsing={0}\:Internet Explorer\u5C65\u6B74\u30A8\u30F3\u30C8\u30EA{1}\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractIE.parsePascoOutput.errMsg.errParsingEntry={0}\: Internet Explorer\u5C65\u6B74\u30A8\u30F3\u30C8\u30EA\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ExtractRegistry.moduleName.text=\u30EC\u30B8\u30B9\u30C8\u30EA -ExtractRegistry.findRegFiles.errMsg.errReadingFile=\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\uFF1A{0}\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -ExtractRegistry.analyzeRegFiles.errMsg.errWritingTemp={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractRegistry.findRegFiles.errMsg.errReadingFile=\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\uFF1A{0}\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractRegistry.analyzeRegFiles.errMsg.errWritingTemp={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F ExtractRegistry.analyzeRegFiles.failedParsingResults={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\u7D50\u679C\u306E\u30D1\u30FC\u30B9\u306B\u5931\u6557\u3057\u307E\u3057\u305F{1} ExtractRegistry.parentModuleName.noSpace=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 ExtractRegistry.programName=\u30EC\u30B8\u30B9\u30C8\u30EA\u30EA\u30C3\u30D1\u30FC -ExtractRegistry.analyzeRegFiles.errMsg.errReadingRegFile={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB - {1}\u306E\u8AAD\u307F\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractRegistry.analyzeRegFiles.errMsg.errReadingRegFile={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB - {1}\u3092\u8AAD\u307F\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile2={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile3={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile4={0}\:\u30EC\u30B8\u30B9\u30C8\u30EA\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F Firefox.moduleName=FireFox -Firefox.getHistory.errMsg.errFetchingFiles=Firefox\u306E\u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Firefox.getHistory.errMsg.errFetchingFiles=Firefox\u306E\u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getHistory.errMsg.noFilesFound=Firefox\u5C65\u6B74\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 Firefox.getHistory.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F Firefox.parentModuleName.noSpace=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 Firefox.parentModuleName=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 -Firefox.getBookmark.errMsg.errFetchFiles=Firefox\u306E\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Firefox.getBookmark.errMsg.errFetchFiles=Firefox\u306E\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getBookmark.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u306E\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Firefox.getCookie.errMsg.errFetchFile=Firefox\u306Ecookie\u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Firefox.getCookie.errMsg.errFetchFile=Firefox\u306Ecookie\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getCookie.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F Firefox.getDlPre24.errMsg.errFetchFiles=Firefox\u306E\u300C\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u300D\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getDlPre24.errMsg.errAnalyzeFiles={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Firefox.getDlPre24.errMsg.errParsingArtifacts={0}\:{1} Firefox\u30A6\u30A7\u30D6\u5C65\u6B74\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Firefox.getDlPre24.errMsg.errParsingArtifacts={0}\:{1} Firefox\u30A6\u30A7\u30D6\u5C65\u6B74\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getDlV24.errMsg.errFetchFiles=Firefox\u306E\u300C\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u300D\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 Firefox.getDlV24.errMsg.errAnalyzeFile={0}\:\u30D5\u30A1\u30A4\u30EB\:{1}\u3092\u89E3\u6790\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -Firefox.getDlV24.errMsg.errParsingArtifacts={0}\:{1} Firefox\u30A6\u30A7\u30D6\u5C65\u6B74\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Firefox.getDlV24.errMsg.errParsingArtifacts={0}\:{1} Firefox\u30A6\u30A7\u30D6\u5C65\u6B74\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 RAImageIngestModule.process.started={0}\u3092\u958B\u59CB\u3057\u307E\u3057\u305F -RAImageIngestModule.process.errModFailed={0}\u5931\u6557\u3057\u307E\u3057\u305F - \u8A73\u7D30\u306F\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044
-RAImageIngestModule.process.errModErrs={0}\u306B\u306F\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F -- \u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044 +RAImageIngestModule.process.errModFailed={0}\u5931\u6557\u3057\u307E\u3057\u305F - \u8A73\u7D30\u306F\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044
+RAImageIngestModule.process.errModErrs={0}\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F -- \u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044 RAImageIngestModule.process.errMsg.errsEncountered=

\u89E3\u6790\u4E2D\u306B\u767A\u751F\u3057\u305F\u30A8\u30E9\u30FC\uFF1A

    RAImageIngestModule.process.errMsgSub.oneErr=1\u3064\u306E\u30A8\u30E9\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F RAImageIngestModule.process.errMsgSub.nErrs={0}\u306E\u30A8\u30E9\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F RAImageIngestModule.process.ingestMsg.finished=\u5B8C\u4E86 {0} - {1} -RAImageIngestModule.process.errMsg.noErrs=

    \u30A8\u30E9\u30FC\u306F\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002

    -RAImageIngestModule.process.errMsgSub.noErrs=\u30A8\u30E9\u30FC\u306F\u30EC\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +RAImageIngestModule.process.errMsg.noErrs=

    \u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002

    +RAImageIngestModule.process.errMsgSub.noErrs=\u30A8\u30E9\u30FC\u304C\u30EC\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 RAImageIngestModule.process.histMsg.title=

    {0}\u306B\u95A2\u3057\u3066\u306E\u30D6\u30E9\u30A6\u30B6\u30C7\u30FC\u30BF\uFF1A

      RAImageIngestModule.process.histMsg.found= \u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002 RAImageIngestModule.process.histMsg.notFnd=\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 RAImageIngestModule.process.ingestMsg.results={0} - \u30D6\u30E9\u30A6\u30B6\u7D50\u679C -RAImageIngestModule.complete.errMsg.failed={0} \u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F - \u8A73\u7D30\u306F\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044
      +RAImageIngestModule.complete.errMsg.failed={0} \u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F - \u8A73\u7D30\u306F\u30ED\u30B0\u3092\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044
      RAImageIngestModule.getName=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 RAImageIngestModule.getDesc=\u30A6\u30A7\u30D6\u30D6\u30E9\u30A6\u30B8\u30F3\u30B0\u3001\u6700\u8FD1\u958B\u3044\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\u6700\u8FD1\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u305F\u30D7\u30ED\u30B0\u30E9\u30E0\u7B49\u306E\u6700\u8FD1\u306E\u30E6\u30FC\u30B6\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u3092\u62BD\u51FA\u3057\u307E\u3059\u3002 -RecentDocumentsByLnk.getRecDoc.errMsg.errGetLnkFiles={0}\:lnk \u30D5\u30A1\u30A4\u30EB\u306E\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 -RecentDocumentsByLnk.getRecDoc.errParsingFile={0}\: \u6700\u8FD1\u306E\u30D5\u30A1\u30A4\u30EB{1}\u306E\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +RecentDocumentsByLnk.getRecDoc.errMsg.errGetLnkFiles={0}\:lnk\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +RecentDocumentsByLnk.getRecDoc.errParsingFile={0}\: \u6700\u8FD1\u306E\u30D5\u30A1\u30A4\u30EB{1}\u3092\u30D1\u30FC\u30B9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F RecentDocumentsByLnk.parentModuleName.noSpace=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 RecentDocumentsByLnk.parentModuleName=\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3 SearchEngineURLQueryAnalyzer.moduleName.text=\u691C\u7D22\u30A8\u30F3\u30B8\u30F3 diff --git a/ScalpelCarver/nbproject/platform.properties b/ScalpelCarver/nbproject/platform.properties index d19032bb98..6894d213d1 100755 --- a/ScalpelCarver/nbproject/platform.properties +++ b/ScalpelCarver/nbproject/platform.properties @@ -1,4 +1,5 @@ branding.token=autopsy +nbplatform.active=default # Version of platform that is automatically downloaded # Note build.xml has similar definitions that should be kept in sync (manually) netbeans-plat-version=7.3.1 diff --git a/ScalpelCarver/nbproject/project.properties b/ScalpelCarver/nbproject/project.properties index cafb7bf34e..815054aa0d 100644 --- a/ScalpelCarver/nbproject/project.properties +++ b/ScalpelCarver/nbproject/project.properties @@ -1,4 +1,4 @@ -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties index 5dc1dca03d..2f387da587 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties @@ -7,7 +7,7 @@ OpenIDE-Module-Short-Description=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u304 ScalpelCarverIngestModule.moduleName=Scalpel\u30AB\u30FC\u30D0 ScalpelCarverIngestModule.moduleDesc.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u3059\u308B\u969B\u306B\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u5207\u308A\u51FA\u3057\u307E\u3059\u3002\n\ \u5207\u308A\u51FA\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u518D\u5EA6\u89E3\u6790\u3055\u308C\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002 -ScalpelCarverIngestModule.startUp.exception.msg1=\u73FE\u6642\u70B9\u3067\u306F\u3001Scalpel\u30AB\u30FC\u30D3\u30F3\u30B0\u30E2\u30B8\u30E5\u30FC\u30EB\u306FWindows OS\u4EE5\u5916\u3068\u306F\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ScalpelCarverIngestModule.startUp.exception.msg1=\u73FE\u5728\u3001Scalpel\u30AB\u30FC\u30D3\u30F3\u30B0\u30E2\u30B8\u30E5\u30FC\u30EB\u306FWindows OS\u4EE5\u5916\u3068\u306F\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002 ScalpelCarverIngestModule.startUp.exception.msg2=Scalpel\u30AB\u30FC\u30D0\u306E\u521D\u671F\u5316\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 ScalpelCarverIngestModule.startUp.exception.msg3=Scalpel\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 ScalpelCarverIngestModule.startUp.exception.msg4=Scalpel\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30D1\u30B9\u304C\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 \ No newline at end of file diff --git a/Testing/nbproject/project.properties b/Testing/nbproject/project.properties index 0735c621fa..7ec0a803eb 100644 --- a/Testing/nbproject/project.properties +++ b/Testing/nbproject/project.properties @@ -1,4 +1,4 @@ -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ diff --git a/docs/doxygen-user/case_management.dox b/docs/doxygen-user/case_management.dox index 2521dd9bf2..5771c12166 100755 --- a/docs/doxygen-user/case_management.dox +++ b/docs/doxygen-user/case_management.dox @@ -14,7 +14,7 @@ There are several ways to create a new case: The New Case wizard dialog will open and you will need to enter the case name and base directory. A directory for the case will be created inside of the "base directory". If the directory already exists, you will need to either delete the existing directory or choose a different combination of names. -\image html case-newcase.png +\image html case-newcase.PNG NOTE: You will only have the option of making a multi-user case if you have configured Autopsy with multi-user settings. See \ref install_multiuser_page for installation instructions and \ref creating_multi_user_cases for details on creating multi-user cases. diff --git a/docs/doxygen-user/data_sources.dox b/docs/doxygen-user/data_sources.dox index aeb2428ef6..9e1f4acf3b 100755 --- a/docs/doxygen-user/data_sources.dox +++ b/docs/doxygen-user/data_sources.dox @@ -44,9 +44,11 @@ You cannot remove a data source from a case. \section ds_img Adding a Disk Image Autopsy supports disk images in the following formats: -- Raw Single (For example: *.img, *.dd, *.raw, etc) +- Raw Single (For example: *.img, *.dd, *.raw, *.bin) - Raw Split (For example: *.001, *.002, *.aa, *.ab, etc) -- EnCase (For example: *.e01, *e02, etc) +- EnCase (For example: *.e01, *.e02, etc) +- Virtual Machines (For example: *.vmdk, *.vhd) + To add a disk image: diff --git a/docs/doxygen-user/e01_verifier.dox b/docs/doxygen-user/e01_verifier.dox index 7c1f6100e6..57188a3362 100755 --- a/docs/doxygen-user/e01_verifier.dox +++ b/docs/doxygen-user/e01_verifier.dox @@ -26,6 +26,6 @@ Seeing Results You only see results from this module if the E01 is corrupted. A failure to load is shown below. -\image html e01-verifier.png +\image html e01-verifier.PNG */ diff --git a/docs/doxygen-user/filetype.dox b/docs/doxygen-user/filetype.dox index 633d317d14..8bc5a511cf 100644 --- a/docs/doxygen-user/filetype.dox +++ b/docs/doxygen-user/filetype.dox @@ -18,7 +18,7 @@ You do not need to configure anything with this module unless you want to define From there, you can define rules based on the offset of the signature and if the signature is a byte sequence of an ASCII string. -\image html filetype.png +\image html filetype.PNG Using the Module ====== diff --git a/docs/doxygen-user/hashdb_lookup.dox b/docs/doxygen-user/hashdb_lookup.dox index 20d948302d..44b9174d2e 100755 --- a/docs/doxygen-user/hashdb_lookup.dox +++ b/docs/doxygen-user/hashdb_lookup.dox @@ -54,7 +54,7 @@ Ingest Settings ------ When hashsets are configured, the user can select the hashsets to use during the ingest process. -\image html hash-lookup.png +\image html hash-lookup.PNG @@ -63,6 +63,6 @@ Seeing Results Results show up in the tree as "Hashset Hits", grouped by the name of the hash set. -\image html hashset-hits.png +\image html hashset-hits.PNG */ diff --git a/docs/doxygen-user/image_gallery.dox b/docs/doxygen-user/image_gallery.dox index d79f499d0e..be0c3c4b87 100644 --- a/docs/doxygen-user/image_gallery.dox +++ b/docs/doxygen-user/image_gallery.dox @@ -36,12 +36,12 @@ The tool has been designed specifically with child-exploitation cases in mind an Name|Description|Color ----|-----------------|------ -CAT-0|Uncategorized|![gray](ImageGallery/gray.png) -CAT-1|Child Abuse Material |![red](ImageGallery/red.png) -CAT-2|Child Exploitative / Age Difficult|![orange](ImageGallery/orange.png) -CAT-3|CGI / Animation|![yellow](ImageGallery/yellow.png) -CAT-4|Comparison Images |![bisque](ImageGallery/bisque.png) -CAT-5|Non-pertinent|![green](ImageGallery/green.png) +CAT-0|Uncategorized|![gray](ImageGallery/gray.PNG) +CAT-1|Child Abuse Material |![red](ImageGallery/red.PNG) +CAT-2|Child Exploitative / Age Difficult|![orange](ImageGallery/orange.PNG) +CAT-3|CGI / Animation|![yellow](ImageGallery/yellow.PNG) +CAT-4|Comparison Images |![bisque](ImageGallery/bisque.PNG) +CAT-5|Non-pertinent|![green](ImageGallery/green.PNG) GUI controls ================= @@ -82,10 +82,10 @@ Each file is represented in the main display area via a small tile. The tile sh | image | description | meaning| |----|----|-----| | | solid colored border | file’s assigned category.| -| ![](ImageGallery/purpledash.png) "" | purple dashed border | file has a known bad hashset hit, but has not yet been categorized. | -| ![](ImageGallery/hashset_hits.png) ""|pushpin | file has a known bad hashset hit| -| ![](ImageGallery/video-file.png) ""| clapboard on document | video file| -| ![](ImageGallery/flag_red.png) ""| a red flag | file has been 'flagged' as with the follow up tag| +| ![](ImageGallery/purpledash.PNG) "" | purple dashed border | file has a known bad hashset hit, but has not yet been categorized. | +| ![](ImageGallery/hashset_hits.PNG) ""|pushpin | file has a known bad hashset hit| +| ![](ImageGallery/video-file.PNG) ""| clapboard on document | video file| +| ![](ImageGallery/flag_red.PNG) ""| a red flag | file has been 'flagged' as with the follow up tag| Slide Show Mode diff --git a/docs/doxygen-user/images/ImageGallery/application_view_tile.png b/docs/doxygen-user/images/ImageGallery/application_view_tile.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/application_view_tile.png rename to docs/doxygen-user/images/ImageGallery/application_view_tile.PNG diff --git a/docs/doxygen-user/images/ImageGallery/bisque.png b/docs/doxygen-user/images/ImageGallery/bisque.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/bisque.png rename to docs/doxygen-user/images/ImageGallery/bisque.PNG diff --git a/docs/doxygen-user/images/ImageGallery/drawabletile.png b/docs/doxygen-user/images/ImageGallery/drawabletile.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/drawabletile.png rename to docs/doxygen-user/images/ImageGallery/drawabletile.PNG diff --git a/docs/doxygen-user/images/ImageGallery/flag_gray.png b/docs/doxygen-user/images/ImageGallery/flag_gray.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/flag_gray.png rename to docs/doxygen-user/images/ImageGallery/flag_gray.PNG diff --git a/docs/doxygen-user/images/ImageGallery/flag_red.png b/docs/doxygen-user/images/ImageGallery/flag_red.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/flag_red.png rename to docs/doxygen-user/images/ImageGallery/flag_red.PNG diff --git a/docs/doxygen-user/images/ImageGallery/folder_picture.png b/docs/doxygen-user/images/ImageGallery/folder_picture.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/folder_picture.png rename to docs/doxygen-user/images/ImageGallery/folder_picture.PNG diff --git a/docs/doxygen-user/images/ImageGallery/gray.png b/docs/doxygen-user/images/ImageGallery/gray.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/gray.png rename to docs/doxygen-user/images/ImageGallery/gray.PNG diff --git a/docs/doxygen-user/images/ImageGallery/green.png b/docs/doxygen-user/images/ImageGallery/green.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/green.png rename to docs/doxygen-user/images/ImageGallery/green.PNG diff --git a/docs/doxygen-user/images/ImageGallery/hashset_hits.png b/docs/doxygen-user/images/ImageGallery/hashset_hits.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/hashset_hits.png rename to docs/doxygen-user/images/ImageGallery/hashset_hits.PNG diff --git a/docs/doxygen-user/images/ImageGallery/orange.png b/docs/doxygen-user/images/ImageGallery/orange.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/orange.png rename to docs/doxygen-user/images/ImageGallery/orange.PNG diff --git a/docs/doxygen-user/images/ImageGallery/purpledash.png b/docs/doxygen-user/images/ImageGallery/purpledash.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/purpledash.png rename to docs/doxygen-user/images/ImageGallery/purpledash.PNG diff --git a/docs/doxygen-user/images/ImageGallery/red.png b/docs/doxygen-user/images/ImageGallery/red.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/red.png rename to docs/doxygen-user/images/ImageGallery/red.PNG diff --git a/docs/doxygen-user/images/ImageGallery/slide.png b/docs/doxygen-user/images/ImageGallery/slide.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/slide.png rename to docs/doxygen-user/images/ImageGallery/slide.PNG diff --git a/docs/doxygen-user/images/ImageGallery/video-file.png b/docs/doxygen-user/images/ImageGallery/video-file.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/video-file.png rename to docs/doxygen-user/images/ImageGallery/video-file.PNG diff --git a/docs/doxygen-user/images/ImageGallery/yellow.png b/docs/doxygen-user/images/ImageGallery/yellow.PNG similarity index 100% rename from docs/doxygen-user/images/ImageGallery/yellow.png rename to docs/doxygen-user/images/ImageGallery/yellow.PNG diff --git a/docs/doxygen-user/images/nsrl_import_process.png b/docs/doxygen-user/images/nsrl_import_process.PNG similarity index 100% rename from docs/doxygen-user/images/nsrl_import_process.png rename to docs/doxygen-user/images/nsrl_import_process.PNG diff --git a/docs/doxygen-user/images/nsrl_imported.png b/docs/doxygen-user/images/nsrl_imported.PNG similarity index 100% rename from docs/doxygen-user/images/nsrl_imported.png rename to docs/doxygen-user/images/nsrl_imported.PNG diff --git a/docs/doxygen-user/images/screenshot.png b/docs/doxygen-user/images/screenshot.PNG similarity index 100% rename from docs/doxygen-user/images/screenshot.png rename to docs/doxygen-user/images/screenshot.PNG diff --git a/docs/doxygen-user/images/ui-layout-1.png b/docs/doxygen-user/images/ui-layout-1.PNG similarity index 100% rename from docs/doxygen-user/images/ui-layout-1.png rename to docs/doxygen-user/images/ui-layout-1.PNG diff --git a/docs/doxygen-user/ingest.dox b/docs/doxygen-user/ingest.dox index 1d2257433d..27a3412d0e 100644 --- a/docs/doxygen-user/ingest.dox +++ b/docs/doxygen-user/ingest.dox @@ -10,7 +10,7 @@ This page covers the use of ingest modules. Specific pages will cover the confi Ingest modules are configured to find user content quickly. The ingest modules are grouped into pipelines and each file goes down the pipeline, module by module. A pipeline may have modules in the following order: -\image html ingest_pipeline.png +\image html ingest_pipeline.PNG Multiple pipelines may be running at the same time. By default, two pipelines are running, but you can add more depending on how many cores you have on your system. You can configure the number of pipelines to make in the "Tools", "Options", "General" area. @@ -31,7 +31,7 @@ Once ingest is started, you can review the currently running ingest tasks in the You will be presented with an interface to configure the ingest modules. From here, you can choose to enable or disable each module and some modules will have further configuration settings. -\image html select-ingest-modules.png +\image html select-ingest-modules.PNG There are two places to configure ingest modules. When you select the module name, you may have some "run time" options to configure in the panel to the right. These are generally settings that you may want to change from image to image. diff --git a/docs/doxygen-user/quick_start_guide.dox b/docs/doxygen-user/quick_start_guide.dox index 35bc8aae60..67afb60c9f 100755 --- a/docs/doxygen-user/quick_start_guide.dox +++ b/docs/doxygen-user/quick_start_guide.dox @@ -43,7 +43,7 @@ While ingest modules are running in the background, you will see a progress bar \section s1a Analysis Basics -\image html screenshot.png +\image html screenshot.PNG You will start all of your analysis techniques from the tree on the left. diff --git a/docs/doxygen-user/recent_activity.dox b/docs/doxygen-user/recent_activity.dox index 41efe651c0..adf3d5fa3f 100755 --- a/docs/doxygen-user/recent_activity.dox +++ b/docs/doxygen-user/recent_activity.dox @@ -24,6 +24,6 @@ Seeing Results ------ Results show up in the tree under "Extracted Content". -\image html extracted_content.png +\image html extracted_content.PNG */ diff --git a/docs/doxygen/modContent.dox b/docs/doxygen/modContent.dox index 1bf3fd5420..830091a189 100755 --- a/docs/doxygen/modContent.dox +++ b/docs/doxygen/modContent.dox @@ -4,7 +4,7 @@ DataContentViewer modules exist in the lower-right area of the default Autopsy interface, as shown below. -\image html viewer_image.jpg "Module Viewer Areas" +\image html viewer_image.JPG "Module Viewer Areas" They can analyze a single file that the user has identified from either browsing directories, keyword search, etc. It doesn't matter to these modules how the user found the file. These modules allow the user to view the file in various ways. The default program comes with a hex and strings view and other modules exist to display pictures and videos as images instead of just a series of bytes. diff --git a/docs/doxygen/modResult.dox b/docs/doxygen/modResult.dox index 0daab56fa6..12f37ead61 100755 --- a/docs/doxygen/modResult.dox +++ b/docs/doxygen/modResult.dox @@ -3,7 +3,7 @@ \section result_overview Overview DataResultViewer modules exist in the upper-right area of the default Autopsy interface, as shown below. -\image html viewer_image.jpg "Module Viewer Areas" +\image html viewer_image.JPG "Module Viewer Areas" They display a set of files that are passed into the viewer from the tree on the left, keyword searching, or other searches. The main idea is that the same set of files can be viewed in table form, thumbnail form, or any other form that you can think of. Once a file is selected from the DataResult area, it is passed to the DataContent area for display. diff --git a/docs/doxygen/viewer_image.jpg b/docs/doxygen/viewer_image.JPG similarity index 100% rename from docs/doxygen/viewer_image.jpg rename to docs/doxygen/viewer_image.JPG diff --git a/pythonExamples/dataSourceIngestModule.py b/pythonExamples/dataSourceIngestModule.py index 6e99ee3cee..0c1961b60f 100755 --- a/pythonExamples/dataSourceIngestModule.py +++ b/pythonExamples/dataSourceIngestModule.py @@ -140,7 +140,7 @@ class SampleJythonDataSourceIngestModule(DataSourceIngestModule): # Make an artifact on the blackboard. TSK_INTERESTING_FILE_HIT is a generic type of # artfiact. Refer to the developer docs for other examples. art = file.newArtifact(BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT) - att = BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), SampleJythonDataSourceIngestModuleFactory.moduleName, "Test file") + att = BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME, SampleJythonDataSourceIngestModuleFactory.moduleName, "Test file") art.addAttribute(att) # This will work in 4.0.1 and beyond diff --git a/pythonExamples/fileIngestModule.py b/pythonExamples/fileIngestModule.py index fb7633521b..43d486204e 100755 --- a/pythonExamples/fileIngestModule.py +++ b/pythonExamples/fileIngestModule.py @@ -128,7 +128,7 @@ class SampleJythonFileIngestModule(FileIngestModule): # Make an artifact on the blackboard. TSK_INTERESTING_FILE_HIT is a generic type of # artifact. Refer to the developer docs for other examples. art = file.newArtifact(BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT) - att = BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + att = BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME, SampleJythonFileIngestModuleFactory.moduleName, "Text Files") art.addAttribute(att) diff --git a/thunderbirdparser/nbproject/project.properties b/thunderbirdparser/nbproject/project.properties index 0fd53bef25..fbdabd0fc1 100644 --- a/thunderbirdparser/nbproject/project.properties +++ b/thunderbirdparser/nbproject/project.properties @@ -3,7 +3,7 @@ file.reference.apache-mime4j-core-0.8.0-SNAPSHOT.jar=release/modules/ext/apache- file.reference.apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT-sources.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT-sources.jar file.reference.apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT.jar=release/modules/ext/apache-mime4j-mbox-iterator-0.8.0-SNAPSHOT.jar file.reference.java-libpst-1.0-SNAPSHOT.jar=release/modules/ext/java-libpst-1.0-SNAPSHOT.jar -javac.source=1.7 +javac.source=1.8 javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties index 39fa1f3833..bf1cb7ba93 100644 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties @@ -1,26 +1,27 @@ -OpenIDE-Module-Display-Category=\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb -OpenIDE-Module-Long-Description=\ - Thunderbird\u30d1\u30fc\u30b5\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n\n\ - \u3053\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u51e6\u7406\u3055\u308c\u305f\u30c7\u30a3\u30b9\u30af\u30a4\u30e1\u30fc\u30b8\u304b\u3089Thunderbird E\u30e1\u30fc\u30eb\u30d5\u30a9\u30eb\u30c0\u30fc\u968e\u5c64\u3092\u62bd\u51fa\u3057\u3001\u898b\u3064\u304b\u3063\u305f\u30d5\u30a9\u30eb\u30c0\u968e\u5c64\u3068E\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u7d50\u679c\u3068\u3057\u3066\u6295\u7a3f\u3057\u307e\u3059\u3002 -OpenIDE-Module-Name=Thunderbird\u30d1\u30fc\u30b5 -OpenIDE-Module-Short-Description=Thunderbird\u30d1\u30fc\u30b5E\u30e1\u30fc\u30eb\u30fb\u30a8\u30af\u30b9\u30c8\u30e9\u30af\u30bf\u30fc\u30fb\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb -MboxParser.parse.errMsg.failedToReadFile=\u30c7\u30a3\u30b9\u30af\u304b\u3089mbox\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002 -MboxParser.parse.errMsg.couldntFindCharset=\u9069\u5207\u306a\u6587\u5b57\u30bb\u30c3\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 -MboxParser.parse.errMsg.failedToParseNMsgs={0}\u500b\u306eE\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -MboxParser.handleAttch.errMsg.failedToCreateOnDisk=\u30a2\u30bf\u30c3\u30c1\u30e1\u30f3\u30c8\u3092\u30c7\u30a3\u30b9\u30af\: {0}\u3078\u62bd\u51fa\u3059\u308b\u306e\u306b\u5931\u6557\u3057\u307e\u3057\u305f (MBOX) -MboxParser.handleAttch.failedWriteToDisk=\u30a2\u30bf\u30c3\u30c1\u30e1\u30f3\u30c8\u3092\u30c7\u30a3\u30b9\u30af\: {0}\u3078\u62bd\u51fa\u3059\u308b\u306e\u306b\u5931\u6557\u3057\u307e\u3057\u305f -PstParser.parse.errMsg.failedToParseNMsgs={0}\u500b\u306eE\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -PstParser.extractAttch.errMsg.failedToExtractToDisk=\u30a2\u30bf\u30c3\u30c1\u30e1\u30f3\u30c8\u3092\u30c7\u30a3\u30b9\u30af\: {0}\u3078\u62bd\u51fa\u3059\u308b\u306e\u306b\u5931\u6557\u3057\u307e\u3057\u305f (PST) -ThunderbirdMboxFileIngestModule.moduleName=E\u30e1\u30fc\u30eb\u30d1\u30fc\u30b5 -ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace=\u30c7\u30a3\u30b9\u30af\u9818\u57df\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002\u30d1\u30fc\u30b9\u3059\u308b\u70ba\u306b{0}\u3092\u30b3\u30d4\u30fc\u3067\u304d\u307e\u305b\u3093\u3002 -ThunderbirdMboxFileIngestModule.encryptionFileLevel=\u30d5\u30a1\u30a4\u30eb\u30ec\u30d9\u30eb\u6697\u53f7\u5316 -ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg={0}\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ThunderbirdMboxFileIngestModule.processPst.errProcFile.details=Outlook 2003\u304a\u3088\u3073\u305d\u308c\u4ee5\u964d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u3057\u304b\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg2={0}\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg={0}\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ThunderbirdMboxFileIngestModule.processMBox.errProfFile.details=\u30c7\u30a3\u30b9\u30af\u9818\u57df\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002\u30d1\u30fc\u30b9\u3059\u308b\u70ba\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3067\u304d\u307e\u305b\u3093\u3002 -ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg2={0}\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ThunderbirdMboxFileIngestModule.getDesc.text=\u3053\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306fmbox\u304a\u3088\u3073pst/ost\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u51fa\u3001\u30d1\u30fc\u30b9\u3057\u3001blackboard\u306eE\u30e1\u30fc\u30eb\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u306b\u30c7\u30fc\u30bf\u3092\u6295\u5165\u3057\u307e\u3059\u3002 -ThunderbirdMboxFileIngestModule.handleAttch.errMsg={0}\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ThunderbirdMboxFileIngestModule.handleAttch.errMsg.details={0}\u306e\u540d\u79f0\u3092\u6301\u3064\u30a2\u30bf\u30c3\u30c1\u30e1\u30f3\u30c8\u3092\u30b1\u30fc\u30b9\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 -ThunderbirdMboxFileIngestModule.notAvail=\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093 \ No newline at end of file +OpenIDE-Module-Display-Category=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB +OpenIDE-Module-Long-Description=\ \ + Email\u30D1\u30FC\u30B5\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n\n\ + \u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306FMBOX\u3068PST e-mail\u30D5\u30A1\u30A4\u30EB\u3092\u62BD\u51FA\u3057\u3001Blackboard\u306B\u8F09\u305B\u307E\u3059\u3002 \n\ + Thunderbird\u306EMBOX\u30D5\u30A1\u30A4\u30EB\u306E\u30D5\u30A9\u30EB\u30C0\u69CB\u9020\u3092\u628A\u63E1\u3057\u3066\u3044\u307E\u3059\u3002 +OpenIDE-Module-Name=Email\u30D1\u30FC\u30B5 +OpenIDE-Module-Short-Description=MOBX\u3068PST\u30D5\u30A1\u30A4\u30EB\u3092\u30D1\u30FC\u30B9\u3057\u307E\u3059 +MboxParser.parse.errMsg.failedToReadFile=\u30C7\u30A3\u30B9\u30AF\u304B\u3089mbox\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +MboxParser.parse.errMsg.couldntFindCharset=\u9069\u5207\u306A\u6587\u5B57\u30BB\u30C3\u30C8\u30A8\u30F3\u30B3\u30FC\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +MboxParser.parse.errMsg.failedToParseNMsgs={0}\u500B\u306EEmail\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u62BD\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +MboxParser.handleAttch.errMsg.failedToCreateOnDisk=MBOX\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u30C7\u30A3\u30B9\u30AF\: {0}\u3078\u62BD\u51FA\u3059\u308B\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F +MboxParser.handleAttch.failedWriteToDisk=\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u30C7\u30A3\u30B9\u30AF\: {0}\u3078\u62BD\u51FA\u3059\u308B\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F +PstParser.parse.errMsg.failedToParseNMsgs={0}\u500B\u306EEmail\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u62BD\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +PstParser.extractAttch.errMsg.failedToExtractToDisk=PST\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u30C7\u30A3\u30B9\u30AF\: {0}\u3078\u62BD\u51FA\u3059\u308B\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.moduleName=Email\u30D1\u30FC\u30B5 +ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace=\u30C7\u30A3\u30B9\u30AF\u9818\u57DF\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\u30D1\u30FC\u30B9\u3059\u308B\u70BA\u306B{0}\u3092\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093\u3002 +ThunderbirdMboxFileIngestModule.encryptionFileLevel=\u30D5\u30A1\u30A4\u30EB\u30EC\u30D9\u30EB\u6697\u53F7\u5316 +ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.processPst.errProcFile.details=Outlook 2003\u304A\u3088\u3073\u305D\u308C\u4EE5\u964D\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304B\u3089\u306E\u30D5\u30A1\u30A4\u30EB\u3057\u304B\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg2={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.processMBox.errProfFile.details=\u30C7\u30A3\u30B9\u30AF\u9818\u57DF\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\u30D1\u30FC\u30B9\u3059\u308B\u70BA\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093\u3002 +ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg2={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.getDesc.text=\u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306Fmbox\u304A\u3088\u3073pst/ost\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u51FA\u3001\u30D1\u30FC\u30B9\u3057\u3001blackboard\u306EEmail\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u306B\u7D50\u679C\u3092\u6295\u5165\u3057\u307E\u3059\u3002 +ThunderbirdMboxFileIngestModule.handleAttch.errMsg={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ThunderbirdMboxFileIngestModule.handleAttch.errMsg.details={0}\u306E\u540D\u79F0\u3092\u6301\u3064\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u30B1\u30FC\u30B9\u306B\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +ThunderbirdMboxFileIngestModule.notAvail=\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 \ No newline at end of file