This commit is contained in:
Nick Davis 2016-02-02 21:10:09 -05:00
commit d0ba74ed2d
141 changed files with 1380 additions and 1119 deletions

View File

@ -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

View File

@ -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}
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

View File

@ -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

View File

@ -1,217 +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=<html> \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</html>
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=<html>\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<br />\u3053\u306e\u307e\u307e\u5b9f\u884c\u3057\u3001\u65b0\u898f\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f</html>
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=<html> \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</html>
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=<html>\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<br />\u3053\u306E\u307E\u307E\u5B9F\u884C\u3057\u3001\u65B0\u898F\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0\u3057\u307E\u3059\u304B\uFF1F</html>
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.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
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

View File

@ -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"));
}
}
@ -542,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();
@ -564,7 +566,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
}
if (result.isEmpty()) {
result = "case";
result = "case"; //NON-NLS
}
return result;

View File

@ -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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//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 [] {

View File

@ -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<String> 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;

View File

@ -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

View File

@ -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));

View File

@ -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

View File

@ -170,8 +170,8 @@ class NewCaseWizardPanel2 implements WizardDescriptor.ValidatingPanel<WizardDesc
@Override
public void storeSettings(WizardDescriptor settings) {
NewCaseVisualPanel2 currentComponent = getComponent();
settings.putProperty("caseNumber", currentComponent.getCaseNumber());
settings.putProperty("caseExaminer", currentComponent.getExaminer());
settings.putProperty("caseNumber", currentComponent.getCaseNumber()); //NON-NLS
settings.putProperty("caseExaminer", currentComponent.getExaminer()); //NON-NLS
}
@Override

View File

@ -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,

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -85,7 +85,7 @@ abstract class TagAddedEvent<T extends Tag> 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;
}
}

View File

@ -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=\u5165\u529B\u3055\u308C\u305F\u3082\u306E\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
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

View File

@ -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
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

View File

@ -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=

View File

@ -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=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif;">\n <b>\u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A</b> {0} ({9}) <br><b>Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A</b> {7} <br><b>Netbeans RCP\u30D3\u30EB\u30C9\:</b> {8} <br> <b>Java\:</b> {1}; {2}<br> <b>\u30B7\u30B9\u30C6\u30E0\uFF1A</b> {3}; {4}; {5}<br><b>\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D</b> {6}</div>
LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy&trade;\u306FSleuth Kit&trade;\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<br> <br>Copyright &copy; 2003-2013. \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002 <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>. </div>
@ -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

View File

@ -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}

View File

@ -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
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

View File

@ -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
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

View File

@ -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

View File

@ -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}
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}

View File

@ -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

View File

@ -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

View File

@ -171,8 +171,6 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter {
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()) {
@ -183,11 +181,9 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter {
try {
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; //NON-NLS
// 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);
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); //NON-NLS

View File

@ -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
}
}

View File

@ -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;
}

View File

@ -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"})

View File

@ -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"})

View File

@ -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."})

View File

@ -191,6 +191,6 @@ public final class EventStripe implements EventBundle<EventCluster> {
@Override
public String toString() {
return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}';
return "EventStripe{" + "description=" + description + ", eventIDs=" + eventIDs.size() + '}'; //NON-NLS
}
}

View File

@ -111,7 +111,7 @@ public final class FilteredEventsModel {
@GuardedBy("this")
private final ReadOnlyObjectWrapper<ZoomParams> 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<Long> 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<Long> 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;
}

View File

@ -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
}),

View File

@ -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<String, Long> 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<String> 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<Long> 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<Long> hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf);
Set<Long> tagged = SQLHelper.unGroupConcat(rs.getString("taggeds"), Long::valueOf);
Set<Long> hashHits = SQLHelper.unGroupConcat(rs.getString("hash_hits"), Long::valueOf); //NON-NLS
Set<Long> 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) {

View File

@ -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<Void> 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<Long> fileIDs = skCase.findAllFileIdsWhere("name != '.' AND name != '..'");
List<Long> 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

View File

@ -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<Integer> 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
}
}

View File

@ -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
}
});

View File

@ -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;

View File

@ -223,7 +223,7 @@ public abstract class AbstractVisualizationPane<X, Y, NodeType extends Node, Cha
try {
this.hasEvents.set(updateTask.get());
} catch (InterruptedException | ExecutionException ex) {
LOGGER.log(Level.SEVERE, "Unexpected exception updating visualization", ex); //NOI18N
LOGGER.log(Level.SEVERE, "Unexpected exception updating visualization", ex); //NOI18N NON-NLS
}
break;
}

View File

@ -53,8 +53,8 @@ import org.sleuthkit.autopsy.timeline.TimeLineController;
*/
public abstract class IntervalSelector<X> 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;

View File

@ -391,6 +391,8 @@ public class DetailViewPane extends AbstractVisualizationPane<DateTime, EventStr
"DetailViewPane.loggedTask.queryDb=Retreiving event data",
"DetailViewPane.loggedTask.name=Updating Details View",
"DetailViewPane.loggedTask.updateUI=Populating visualization",
"DetailViewPane.loggedTask.continueButton=Continue",
"DetailViewPane.loggedTask.backButton=Back (Cancel)",
"# {0} - number of events",
"DetailViewPane.loggedTask.prompt=You are about to show details for {0} events. This might be very slow or even crash Autopsy.\n\nDo you want to continue?"})
private class DetailsUpdateTask extends VisualizationUpdateTask<Interval> {
@ -415,8 +417,8 @@ public class DetailViewPane extends AbstractVisualizationPane<DateTime, EventStr
@Override
protected ButtonType call() throws Exception {
ButtonType ContinueButtonType = new ButtonType("Continue", ButtonBar.ButtonData.OK_DONE);
ButtonType back = new ButtonType("Back (Cancel)", ButtonBar.ButtonData.CANCEL_CLOSE);
ButtonType ContinueButtonType = new ButtonType(Bundle.DetailViewPane_loggedTask_continueButton(), ButtonBar.ButtonData.OK_DONE);
ButtonType back = new ButtonType(Bundle.DetailViewPane_loggedTask_backButton(), ButtonBar.ButtonData.CANCEL_CLOSE);
Alert alert = new Alert(Alert.AlertType.WARNING, Bundle.DetailViewPane_loggedTask_prompt(eventStripes.size()), ContinueButtonType, back);
alert.setHeaderText("");

View File

@ -84,10 +84,11 @@ import org.sleuthkit.datamodel.TskCoreException;
/**
*
*/
@NbBundle.Messages({"EventBundleNodeBase.toolTip.loading=loading..."})
public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentType>, ParentType extends EventBundle<BundleType>, ParentNodeType extends EventBundleNodeBase<ParentType, BundleType, ?>> 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<BundleType extends EventBundle<ParentT
final ImageView tagIV = new ImageView(TAG);
final HBox infoHBox = new HBox(5, descrLabel, countLabel, hashIV, tagIV);
private final Tooltip tooltip = new Tooltip("loading...");
private final Tooltip tooltip = new Tooltip(Bundle.EventBundleNodeBase_toolTip_loading());
private Timeline timeline;
public EventBundleNodeBase(EventDetailsChart chart, BundleType eventBundle, ParentNodeType parentNode) {
@ -226,13 +227,18 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
"# {2} - description",
"# {3} - start date/time",
"# {4} - end date/time",
"EventBundleNodeBase.tooltip.text={0} {1} events\n{2}\nbetween\t{3}\nand \t{4}"})
"EventBundleNodeBase.tooltip.text={0} {1} events\n{2}\nbetween\t{3}\nand \t{4}",
"EventBundleNodeBase.toolTip.loading2=loading tooltip",
"# {0} - hash set count string",
"EventBundleNodeBase.toolTip.hashSetHits=\n\nHash Set Hits\n{0}",
"# {0} - tag count string",
"EventBundleNodeBase.toolTip.tags=\n\nTags\n{0}"})
@ThreadConfined(type = ThreadConfined.ThreadType.JFX)
private void installTooltip() {
if (tooltip.getText().equalsIgnoreCase("loading...")) {
if (tooltip.getText().equalsIgnoreCase(Bundle.EventBundleNodeBase_toolTip_loading())) {
final Task<String> tooltTipTask = new Task<String>() {
{
updateTitle("loading tooltip");
updateTitle(Bundle.EventBundleNodeBase_toolTip_loading2());
}
@Override
@ -248,7 +254,7 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
}
}
} catch (TskCoreException ex) {
LOGGER.log(Level.SEVERE, "Error getting hashset hit info for event.", ex);
LOGGER.log(Level.SEVERE, "Error getting hashset hit info for event.", ex); //NON-NLS
}
}
String hashSetCountsString = hashSetCounts.entrySet().stream()
@ -266,8 +272,8 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
return Bundle.EventBundleNodeBase_tooltip_text(getEventIDs().size(), getEventType(), getDescription(),
TimeLineController.getZonedFormatter().print(getStartMillis()),
TimeLineController.getZonedFormatter().print(getEndMillis() + 1000))
+ (hashSetCountsString.isEmpty() ? "" : "\n\nHash Set Hits\n" + hashSetCountsString)
+ (tagCountsString.isEmpty() ? "" : "\n\nTags\n" + tagCountsString);
+ (hashSetCountsString.isEmpty() ? "" : Bundle.EventBundleNodeBase_toolTip_hashSetHits(hashSetCountsString))
+ (tagCountsString.isEmpty() ? "" : Bundle.EventBundleNodeBase_toolTip_tags(tagCountsString));
}
@Override
@ -277,7 +283,7 @@ public abstract class EventBundleNodeBase<BundleType extends EventBundle<ParentT
tooltip.setText(get());
tooltip.setGraphic(null);
} catch (InterruptedException | ExecutionException ex) {
LOGGER.log(Level.SEVERE, "Tooltip generation failed.", ex);
LOGGER.log(Level.SEVERE, "Tooltip generation failed.", ex); //NON-NLS
}
}
};

View File

@ -207,7 +207,7 @@ final public class EventClusterNode extends EventBundleNodeBase<EventCluster, Ev
descLOD.set(loadedDescriptionLoD);
}
} catch (InterruptedException | ExecutionException ex) {
LOGGER.log(Level.SEVERE, "Error loading subnodes", ex);
LOGGER.log(Level.SEVERE, "Error loading subnodes", ex); //NON-NLS
}
chart.requestChartLayout();
chart.setCursor(null);

View File

@ -96,10 +96,10 @@ import org.sleuthkit.autopsy.timeline.zooming.DescriptionLoD;
*/
public final class EventDetailsChart extends XYChart<DateTime, EventStripe> implements TimeLineChart<DateTime> {
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<DateTime, EventStripe> 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<DateTime, EventStripe> 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()

View File

@ -53,7 +53,7 @@ class GuideLine extends Line {
Axis<DateTime> 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())));

View File

@ -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<Filter> 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<Filter> 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();

View File

@ -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
}
}

View File

@ -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

View File

@ -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);
}

View File

@ -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
}
});
});

View File

@ -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<String> 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;

View File

@ -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<Worker.State> 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;
}
@ -786,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);
@ -818,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;
@ -828,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);
/**
*
@ -850,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,
@ -874,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<AbstractFile> files = getSleuthKitCase().findAllFilesWhere(fsQuery + " AND " + DRAWABLE_QUERY);
final List<AbstractFile> files = getSleuthKitCase().findAllFilesWhere(fsQuery + " AND " + DRAWABLE_QUERY); //NON-NLS
progressHandle.switchToDeterminate(files.size());
//do in transaction
@ -885,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;
}
@ -895,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();
@ -956,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);
}
}

View File

@ -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;

View File

@ -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);

View File

@ -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

View File

@ -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
}
}
}

View File

@ -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);
}

View File

@ -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
}
}
});

View File

@ -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<Long> selectedFiles) {
new SwingWorker<Void, Void>() {
@ -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();

View File

@ -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<TagName> 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());

View File

@ -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;

View File

@ -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<Long> 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<Long> 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);
}
}

View File

@ -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<Void, Void>() {
@ -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;
}

View File

@ -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;

View File

@ -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;

View File

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

View File

@ -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

View File

@ -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
}
}
}

View File

@ -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());

View File

@ -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());

View File

@ -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<Category> getNonZeroCategories() {
return nonZeroCategories;

View File

@ -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) {

View File

@ -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<T extends Comparable<T>> {
public final static DrawableAttribute<String> 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<String> 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<Boolean> 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<T extends Comparable<T>> {
* advantage. move categories into DrawableDB?
*/
public final static DrawableAttribute<Category> 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<TagName> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<Long> 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<Double> 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<Double> 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<String> 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<T extends Comparable<T>> {
* 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;
}

View File

@ -78,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;
@ -141,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;
@ -202,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);
@ -290,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;
}
}
@ -305,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
}
}
@ -350,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;
@ -456,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;
@ -465,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
}
}
@ -519,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();
}
@ -534,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();
@ -556,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();
}
@ -635,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());
@ -645,7 +645,7 @@ public final class DrawableDB {
}
}
} catch (TskCoreException ex) {
LOGGER.log(Level.SEVERE, "failed to insert/update hash hits for file" + f.getContentPathSafe(), 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
@ -667,7 +667,7 @@ public final class DrawableDB {
* closed during processing, which doesn't need to be reported here.
*/
if (Case.isCaseOpen()) {
LOGGER.log(Level.SEVERE, "failed to insert/update file" + f.getContentPathSafe(), ex);
LOGGER.log(Level.SEVERE, "failed to insert/update file" + f.getContentPathSafe(), ex); //NON-NLS
}
} finally {
@ -693,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();
@ -712,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();
}
@ -734,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;
@ -744,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();
}
@ -773,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));
}
@ -784,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();
@ -825,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();
@ -862,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();
@ -900,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:
@ -922,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 = "";
@ -947,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();
}
@ -968,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();
@ -989,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;
}
}
@ -1008,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;
}
}
@ -1037,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();
}
@ -1059,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();
}
@ -1098,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();
}
@ -1110,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);
@ -1154,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();
}
@ -1211,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;
@ -1248,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;
@ -1291,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
}
}
@ -1302,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();
}
@ -1324,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();
}
@ -1339,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;

View File

@ -186,9 +186,9 @@ public abstract class DrawableFile<T extends AbstractFile> 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<T extends AbstractFile> 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<T extends AbstractFile> 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<T extends AbstractFile> 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<T extends AbstractFile> 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<T extends AbstractFile> 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;
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -46,7 +46,7 @@ public class ImageFile<T extends AbstractFile> extends DrawableFile<T> {
@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

View File

@ -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<T extends AbstractFile> extends DrawableFile<T> {
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<T extends AbstractFile> extends DrawableFile<T> {
@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<T extends AbstractFile> extends DrawableFile<T> {
private SoftReference<Media> 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<T extends AbstractFile> extends DrawableFile<T> {
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();

View File

@ -126,7 +126,7 @@ public class DrawableGroup implements Comparable<DrawableGroup> {
.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<DrawableGroup> {
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<DrawableGroup> {
@Override
public String toString() {
return "Grouping{ keyProp=" + groupKey + '}';
return "Grouping{ keyProp=" + groupKey + '}'; //NON-NLS
}
@Override

View File

@ -57,7 +57,7 @@ public class GroupKey<T extends Comparable<T>> implements Comparable<GroupKey<T>
@Override
public String toString() {
return "GroupKey: " + getAttribute().attrName + " = " + getValue();
return "GroupKey: " + getAttribute().attrName + " = " + getValue(); //NON-NLS
}
@Override

View File

@ -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<String> 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<ContentTag> 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<Long> 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<A extends Comparable<A>> extends LoggedTask<Void> {
private ProgressHandle groupProgress;
@ -728,7 +736,7 @@ public class GroupManager {
private final SortOrder sortOrder;
public ReGroupTask(DrawableAttribute<A> 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<A>(groupBy, val), this);
}
Platform.runLater(() -> FXCollections.sort(analyzedGroups, sortBy.getGrpComparator(sortOrder)));

View File

@ -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<DrawableGroup> 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<DrawableGroup> 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<DrawableGroup> 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<DrawableGroup> 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;

View File

@ -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) {

View File

@ -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);

View File

@ -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
}

View File

@ -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
}
}

View File

@ -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);
}
}

View File

@ -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
}
/**

View File

@ -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
}
});
}

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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) {

View File

@ -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);

View File

@ -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<Long> 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);
}
}

View File

@ -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<T extends Comparable<T>> implements Comparator<DrawableGroup> {
static final GroupComparators<Long> UNCATEGORIZED_COUNT =
new GroupComparators<>("Uncategorized Count", DrawableGroup::getUncategorizedCount, String::valueOf, false);
new GroupComparators<>(Bundle.GroupComparators_uncategorizedCount(), DrawableGroup::getUncategorizedCount, String::valueOf, false);
static final GroupComparators<String> ALPHABETICAL =
new GroupComparators<>("Group Name", DrawableGroup::getGroupByValueDislpayName, String::valueOf, false);
new GroupComparators<>(Bundle.GroupComparators_groupName(), DrawableGroup::getGroupByValueDislpayName, String::valueOf, false);
static final GroupComparators<Long> HIT_COUNT =
new GroupComparators<>("Hit Count", DrawableGroup::getHashSetHitsCount, String::valueOf, true);
new GroupComparators<>(Bundle.GroupComparators_hitCount(), DrawableGroup::getHashSetHitsCount, String::valueOf, true);
static final GroupComparators<Integer> FILE_COUNT =
new GroupComparators<>("Group Size", DrawableGroup::getSize, String::valueOf, true);
new GroupComparators<>(Bundle.GroupComparators_groupSize(), DrawableGroup::getSize, String::valueOf, true);
static final GroupComparators<Double> 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<GroupComparators<?>> values = ImmutableList.of(UNCATEGORIZED_COUNT, ALPHABETICAL, HIT_COUNT, FILE_COUNT, HIT_FILE_RATIO);

View File

@ -42,7 +42,7 @@ class GroupListCell extends ListCell<DrawableGroup> {
* 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<DrawableGroup> {
GroupListCell(ReadOnlyObjectProperty<GroupComparators<?>> 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<DrawableGroup> {
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
}

View File

@ -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<TreeItem<GroupTreeNode>> {
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);

Some files were not shown because too many files have changed in this diff Show More