diff --git a/.gitignore b/.gitignore index 24fd05a53f..feb9e958e7 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,6 @@ !/Ingest/nbproject/project.properties /branding_spear /installer_spear -Bundle_*.properties */genfiles.properties genfiles.properties /branding/core/core.jar/org/netbeans/core/startup/Bundle.properties diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/AddContentToHashDbAction.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/AddContentToHashDbAction.java index 9326fd61cd..93789e0308 100755 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/AddContentToHashDbAction.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/AddContentToHashDbAction.java @@ -27,6 +27,8 @@ import javax.swing.AbstractAction; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; + +import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.util.Lookup; import org.openide.util.actions.Presenter; @@ -41,6 +43,10 @@ import static org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb; */ final class AddContentToHashDbAction extends AbstractAction implements Presenter.Popup { private static AddContentToHashDbAction instance; + private final static String SINGLE_SELECTION_NAME = NbBundle.getMessage(AddContentToHashDbAction.class, + "AddContentToHashDbAction.singleSelectionName"); + private final static String MULTIPLE_SELECTION_NAME = NbBundle.getMessage(AddContentToHashDbAction.class, + "AddContentToHashDbAction.multipleSelectionName"); /** * AddContentToHashDbAction is a singleton to support multi-selection of nodes, since @@ -70,8 +76,6 @@ final class AddContentToHashDbAction extends AbstractAction implements Presenter // Instances of this class are used to implement the a pop up menu for this // action. private final class AddContentToHashDbMenu extends JMenu { - private final static String SINGLE_SELECTION_NAME = "Add file to hash database"; - private final static String MULTIPLE_SELECTION_NAME = "Add files to hash database"; AddContentToHashDbMenu() { super(SINGLE_SELECTION_NAME); @@ -117,7 +121,9 @@ final class AddContentToHashDbAction extends AbstractAction implements Presenter } } else { - JMenuItem empty = new JMenuItem("No hash databases configured"); + JMenuItem empty = new JMenuItem( + NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.ContentMenu.noHashDbsConfigd")); empty.setEnabled(false); add(empty); } @@ -126,7 +132,8 @@ final class AddContentToHashDbAction extends AbstractAction implements Presenter // a hash database creation dialog and adds the selected files to the // the new database. addSeparator(); - JMenuItem newHashSetItem = new JMenuItem("Create database..."); + JMenuItem newHashSetItem = new JMenuItem(NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.ContentMenu.createDbItem")); newHashSetItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -147,13 +154,26 @@ final class AddContentToHashDbAction extends AbstractAction implements Presenter try { hashSet.addHashes(file); } - catch (TskCoreException ex) { - Logger.getLogger(AddContentToHashDbAction.class.getName()).log(Level.SEVERE, "Error adding to hash database", ex); - JOptionPane.showMessageDialog(null, "Unable to add " + file.getName() + " to the hash database.", "Add to Hash Database Error", JOptionPane.ERROR_MESSAGE); + catch (TskCoreException ex) { + //noinspection HardCodedStringLiteral + Logger.getLogger(AddContentToHashDbAction.class.getName()).log(Level.SEVERE, "Error adding to hash database", ex); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.addFilesToHashSet.unableToAddFileMsg", + file.getName()), + NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.addFilesToHashSet.addToHashDbErr"), + JOptionPane.ERROR_MESSAGE); } } else { - JOptionPane.showMessageDialog(null, "Unable to add the " + (files.size() > 1 ? "files" : "file") + " to the hash database. Hashes have not been calculated. Please configure and run an appropriate ingest module.", "Add to Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.addFilesToHashSet.unableToAddFileSzMsg", + files.size() > 1 ? "files" : "file"), + NbBundle.getMessage(this.getClass(), + "AddContentToHashDbAction.addFilesToHashSet.addToHashDbErr"), + JOptionPane.ERROR_MESSAGE); break; } } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties index b452e495e2..b8ebe373f5 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties @@ -4,14 +4,13 @@ OpenIDE-Module-Long-Description=\ The ingest module analyzes files in the disk image and marks them as "known" (based on NSRL database lookup for "known" files) and "bad / interesting" (based on one or more databases supplied by the user).\n\n\ The module also contains additional non-ingest tools that are integrated in the GUI, such as file lookup by hash and hash database configuration. OpenIDE-Module-Name=HashDatabase -HashDbSimplePanel.knownLabel.text=NSRL Database: +OptionsCategory_Name_HashDatabase=Hash Database +OptionsCategory_Keywords_HashDatabase=Hash Database +HashDbSimplePanel.knownLabel.text=NSRL Database: HashDbSimplePanel.notableLabel.text=Known Bad Database(s): HashDbSimplePanel.knownValLabel.text=- HashDbSimplePanel.notableValLabel.text=- HashDbSearchPanel.hashTable.columnModel.title0=MD5 Hashes -HashDbSearchPanel.hashTable.columnModel.title3=Title 4 -HashDbSearchPanel.hashTable.columnModel.title2=Title 3 -HashDbSearchPanel.hashTable.columnModel.title1=Title 2 HashDbSearchPanel.addButton.text=Add Hash HashDbSearchPanel.hashField.text= HashDbSearchPanel.hashLabel.text=MD5 hash: @@ -25,7 +24,7 @@ OpenIDE-Module-Short-Description=Hash Database Ingest Module and hash db tools HashDbImportDatabaseDialog.jLabel1.text=Hash Set Name: HashDbImportDatabaseDialog.databasePathTextField.text= HashDbImportDatabaseDialog.knownBadRadioButton.text=Known Bad -HashDbImportDatabaseDialog.jLabel2.text=Type of database: +HashDbImportDatabaseDialog.jLabel2.text=Type of database\: HashDbImportDatabaseDialog.okButton.text=OK HashDbImportDatabaseDialog.cancelButton.text=Cancel HashDbCreateDatabaseDialog.jLabel2.text=Type: @@ -50,12 +49,11 @@ HashDbConfigPanel.indexLabel.text=Index Status: HashDbConfigPanel.informationLabel.text=Information HashDbConfigPanel.importDatabaseButton.text=Import Database HashDbConfigPanel.deleteDatabaseButton.text=Delete Database -HashDbConfigPanel.indexPathLabelLabel.text=Index Path: +HashDbConfigPanel.indexPathLabelLabel.text=Index Path: HashDbConfigPanel.indexPathLabel.text=No database selected ModalNoButtons.CURRENTDB_LABEL.text=(CurrentDb) ModalNoButtons.CURRENTLYON_LABEL.text=Currently Indexing x of y ModalNoButtons.GO_GET_COFFEE_LABEL.text=Hash databases are currently being indexed, this may take some time. -ModalNoButtons.cancelButton.text=Cancel ModalNoButtons.CANCEL_BUTTON.text=Cancel HashDbSimpleConfigPanel.knownBadHashDbsLabel.text=Select known BAD hash databases to use: HashDbSimpleConfigPanel.knownHashDbsLabel.text=Select known hash databases to use: @@ -79,3 +77,130 @@ HashDbCreateDatabaseDialog.okButton.text=OK HashDbCreateDatabaseDialog.databasePathTextField.text= HashDbConfigPanel.searchDuringIngestCheckbox.text=Search during ingest HashDbConfigPanel.sendIngestMessagesCheckBox.text=Send ingest messages +AddContentToHashDbAction.ContentMenu.noHashDbsConfigd=No hash databases configured +AddContentToHashDbAction.ContentMenu.createDbItem=Create database... +AddContentToHashDbAction.addFilesToHashSet.addToHashDbErr=Add to Hash Database Error +AddContentToHashDbAction.addFilesToHashSet.unableToAddFileMsg=Unable to add {0} to the hash database. +AddContentToHashDbAction.addFilesToHashSet.unableToAddFileSzMsg=Unable to add the {0} to the hash database. Hashes have not been calculated. Please configure and run an appropriate ingest module. +HashDatabaseOptionsPanelController.moduleErr=Module Error +HashDatabaseOptionsPanelController.moduleErrMsg=A module caused an error listening to HashDatabaseOptionsPanelController updates. See log to determine which module. Some data could be incomplete. +HashDbConfigPanel.noSelectionText=No database selected +HashDbConfigPanel.errorGettingPathText=Error occurred getting path +HashDbConfigPanel.errorGettingIndexStatusText=Error occurred getting status +HashDbConfigPanel.setName.hashSetConfig=Hash Set Configuration +HashDbConfigPanel.indexButtonText.index=Index +HashDbConfigPanel.indexButtonText.indexing=Indexing +HashDbConfigPanel.indexStatusText.indexGen=Index is currently being generated +HashDbConfigPanel.indexStatusText.indexOnly=Index only +HashDbConfigPanel.indexStatusText.indexed=Indexed +HashDbConfigPanel.indexButtonText.reIndex=Re-Index +HashDbConfigPanel.indexStatusText.noIndex=No index +HashDbConfigPanel.dbsNotIndexedMsg=The following databases are not indexed, would you like to index them now? \ + {0} +HashDbConfigPanel.dbNotIndexedMsg=The following database is not indexed, would you like to index it now? \ +{0} +HashDbConfigPanel.unindexedDbsMsg=Unindexed databases +HashDbConfigPanel.allUnindexedDbsRmFromListMsg=All unindexed databases will be removed from the list +HashDbConfigPanel.nameColLbl=Name +HashDbConfigPanel.editingCellsNotSupportedMsg=Editing of cells is not supported +HashDbConfigPanel.deleteDbActionConfirmMsg=This will remove the hash database for all cases. Do you want to proceed? +HashDbConfigPanel.deleteDbActionMsg=Delete Hash Database from Configuration +HashDbCreateDatabaseDialog.defaultFileName=hashset +HashDbCreateDatabaseDialog.createHashDbMsg=Create Hash Database +HashDbCreateDatabaseDialog.hashDbMustHaveFileExtensionMsg=The hash database file must have a .{0} extension. +HashDbCreateDatabaseDialog.fileNameErr=File Name Error +HashDbCreateDatabaseDialog.fileNameAlreadyExistsMsg=A file with this name already exists. Please choose a new file name. +HashDbCreateDatabaseDialog.fileExistsErr=File Already Exists Error +HashDbCreateDatabaseDialog.mustEnterHashSetNameMsg=A hash set name must be entered. +HashDbCreateDatabaseDialog.createHashDbErr=Create Hash Database Error +HashDbCreateDatabaseDialog.mustEnterHashDbPathMsg=A database path must be entered. +HashDbCreateDatabaseDialog.errMsg.hashDbCreationErr=Hash database creation error +HashDbCreateDatabaseDialog.cannotCreateFileAtLocMsg=Cannot create a hash database file at the selected location. +HashDbCreateDatabaseDialog.failedToCreateHashDbMsg=Failed to create the hash database. +HashDbImportDatabaseDialog.importHashDbMsg=Import Hash Database +HashDbImportDatabaseDialog.fileNameExtFilter.text=Hash Database File +HashDbImportDatabaseDialog.failedToGetDbPathMsg=Failed to get the path of the selected database. +HashDbImportDatabaseDialog.importHashDbErr=Import Hash Database Error +HashDbImportDatabaseDialog.mustSelectHashDbFilePathMsg=A hash database file path must be selected. +HashDbImportDatabaseDialog.hashDbDoesNotExistMsg=The selected hash database does not exist. +HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg=Failed to open hash database at {0}. +HashDbIngestModule.moduleName=Hash Lookup +HashDbIngestModule.moduleDescription=Identifies known and notables files using supplied hash databases, such as a standard NSRL database. +HashDbIngestModule.noKnownHashDbSetMsg=No known hash database set +HashDbIngestModule.knownFileSearchWillNotExecuteWarn=Known file search will not be executed. +HashDbIngestModule.noKnownBadHashDbSetMsg=No known bad hash database set +HashDbIngestModule.knownBadFileSearchWillNotExecuteWarn=Known bad file search will not be executed. +HashDbIngestModule.fileReadErrorMsg=Read Error\: {0} +HashDbIngestModule.calcHashValueErr=Error encountered while calculating the hash value for {0}. +HashDbIngestModule.hashLookupErrorMsg=Hash Lookup Error\: {0} +HashDbIngestModule.settingKnownBadStateErr=Error encountered while setting known bad state for {0}. +HashDbIngestModule.lookingUpKnownBadHashValueErr=Error encountered while looking up known bad hash value for {0}. +HashDbIngestModule.settingsKnownStateErr=Error encountered while setting known state for {0}. +HashDbIngestModule.lookingUpKnownHashValueErr=Error encountered while looking up known hash value for {0}. +HashDbIngestModule.postToBB.fileName=File Name +HashDbIngestModule.postToBB.md5Hash=MD5 Hash +HashDbIngestModule.postToBB.hashsetName=Hashset Name +HashDbIngestModule.postToBB.knownBadMsg=Known Bad\: {0} +HashDbIngestModule.complete.knownBadsFound=Known bads found\: +HashDbIngestModule.complete.totalCalcTime=Total Calculation Time +HashDbIngestModule.complete.totalLookupTime=Total Lookup Time +HashDbIngestModule.complete.databasesUsed=Databases Used\: +HashDbIngestModule.complete.hashLookupResults=Hash Lookup Results +HashDbManager.moduleErrorListeningToUpdatesMsg=A module caused an error listening to HashDbManager updates. See log to determine which module. Some data could be incomplete. +HashDbManager.replacingDuplicateHashsetNameMsg=Duplicate hash set name {0} found.\ +Replacing with {1}. +HashDbManager.openHashDbErr=Open Hash Database Error +HashDbManager.unableToOpenHashDbMsg=Unable to open {0} hash database. +HashDbManager.savedBackupOfOldConfigMsg={0}\ +A backup copy of the old configuration has been saved as\ +{1} +HashDbManager.baseMessage.updatedFormatHashDbConfig=The format of the hash database configuration file has been updated. +HashDbManager.msgBoxTitle.confFileFmtChanged=Configuration File Format Changed +HashDbManager.dlgMsg.dbNotFoundAtLoc=Database {0} could not be found at location\ +{1}\ +Would you like to search for the file? +HashDbManager.dlgTitle.MissingDb=Missing Database +HashDbManager.progress.indexingHashSet=Indexing {0} +HashDbManager.dlgMsg.errorIndexingHashSet=Error indexing {0} hash database. +HashDbManager.hashDbIndexingErr=Hash Database Indexing Error +HashDbPanelSearchAction.actionName=File Search by MD5 Hash +HashDbSearchAction.dlgMsg.noFilesHaveMD5Calculated=No files currently have an MD5 hash calculated, run HashDB ingest first. +HashDbSearchManager.MD5HashSearch=MD5 Hash Search +HashDbSearchManager.noResultsFoundMsg=No results were found. +HashDbSearchPanel.titleText.ingestOngoing=Ingest is ongoing; this service will be unavailable until it finishes. +HashDbSearchPanel.noFilesHaveMD5HashMsg=No files currently have an MD5 hash. +HashDbSearchPanel.errorText.noHashesAddedMsg=Error\: No hashes have been added. +HashDbSearchPanel.errorText.hashAlreadyAddedMsg=Error\: Hash has already been added. +HashDbSearchPanel.errorText.invalidMD5HashMsg=Error\: That is not a valid MD5 hash. +HashDbSearchThread.progress.cancellingSearch={0} (Cancelling...) +HashDbSearchThread.name.searching=Searching +HashDbSearchThread.noMoreFilesWithMD5Msg=No other files with the same MD5 hash were found. +HashDbSimpleConfigPanel.dlgMsg.mustIndexDbBeforeUse=Hash databases must be indexed before they can be used for ingest +ModalNoButtons.indexingDbsTitle=Indexing databases +ModalNoButtons.indexingDbTitle=Indexing database +ModalNoButtons.exitHashDbIndexingMsg=You are about to exit out of indexing your hash databases. \ +The generated index will be left unusable. If you choose to continue,\ + please delete the corresponding -md5.idx file in the hash folder.\ + Exit indexing? +ModalNoButtons.dlgTitle.unfinishedIndexing=Unfinished Indexing +ModalNoButtons.indexThis.currentlyIndexing1Db=Currently indexing 1 database +ModalNoButtons.indexThese.currentlyIndexing1OfNDbs=Currently indexing 1 of {0} +ModalNoButtons.propChg.currentlyIndexingXofN=Currently indexing {0} of {1} +HashDbManager.duplicateHashSetNameExceptionMsg=The hash set name ''{0}'' has already been used for another hash database. +HashDbManager.hashDbDoesNotExistExceptionMsg=No hash database found at\ +{0} +HashDbManager.hashDbFileExistsExceptionMsg=A file already exists at\ +{0} +HashDbManager.hashDbAlreadyAddedExceptionMsg=The hash database at\ +{0}\ +has already been created or imported. +HashDbManager.illegalHashDbFileNameExtensionMsg=The hash database file name must have a .{0} extension. +HashDbManager.moduleErr=Module Error +HashDbManager.knownBad.text=Known Bad +HashDbManager.known.text=Known +HashDbManager.fileNameExtensionFilter.title=Hash Database File +HashDbSearchAction.dlgMsg.title=File Search by MD5 Hash +HashDbSearchAction.getName.text=Hash Search +HashDbSearchPanel.dlgMsg.title=File Search by MD5 Hash +AddContentToHashDbAction.singleSelectionName=Add file to hash database +AddContentToHashDbAction.multipleSelectionName=Add files to hash database diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle_ja.properties b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle_ja.properties new file mode 100644 index 0000000000..189c4b9ed5 --- /dev/null +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle_ja.properties @@ -0,0 +1,194 @@ +HashDbSimplePanel.knownLabel.text=NSRL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +OpenIDE-Module-Display-Category=\u30E2\u30B8\u30E5\u30FC\u30EB\u633F\u5165 +OpenIDE-Module-Long-Description=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30E2\u30B8\u30E5\u30FC\u30EB\u633F\u5165 \n\n\ +\u30C7\u30A3\u30B9\u30AF\u30A4\u30E1\u30FC\u30B8\u306B\u3042\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u89E3\u6790\u3057\u3001\u300C\u65E2\u77E5\u300D\uFF08NSRL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u300C\u65E2\u77E5\u300D\u30D5\u30A1\u30A4\u30EB\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u57FA\u306B\uFF09\u307E\u305F\u306F\u300C\u4E0D\u826F\uFF0F\u7591\u308F\u3057\u3044\u300D\uFF08\u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\uFF11\u3064\u307E\u305F\u306F\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u57FA\u306B\uFF09\u3068\u30DE\u30FC\u30AF\u3057\u307E\u3059\u3002\n\n\ +\u30CF\u30C3\u30B7\u30E5\u3084\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30B3\u30F3\u30D5\u30A3\u30AE\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\u306B\u57FA\u3065\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u306A\u3069\u3001\u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306FGUI\u306B\u9023\u643A\u3057\u3066\u3044\u308B\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3057\u306A\u3044\u3001\u8FFD\u52A0\u306E\u30C4\u30FC\u30EB\u304C\u542B\u307E\u308C\u307E\u3059\u3002 +OpenIDE-Module-Name=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +HashDbSimplePanel.notableLabel.text=\u65E2\u77E5\u306E\u4E0D\u826F\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +HashDbSearchPanel.hashTable.columnModel.title0=MD5\u30CF\u30C3\u30B7\u30E5 +HashDbSearchPanel.addButton.text=\u30CF\u30C3\u30B7\u30E5\u3092\u8FFD\u52A0 +HashDbSearchPanel.hashLabel.text=MD5\u30CF\u30C3\u30B7\u30E5\uFF1A +HashDbSearchPanel.searchButton.text=\u691C\u7D22 +HashDbSearchPanel.removeButton.text=\u9078\u629E\u3057\u305F\u3082\u306E\u3092\u524A\u9664 +HashDbSearchPanel.titleLabel.text=\u4E0B\u8A18\u306EMD5\u30CF\u30C3\u30B7\u30E5\u4ED8\u304D\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\uFF1A +HashDbSearchPanel.errorField.text=\u30A8\u30E9\u30FC\uFF1A\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u30CF\u30C3\u30B7\u30E5\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +HashDbSearchPanel.saveBox.text=\u30CF\u30C3\u30B7\u30E5\u3092\u8A18\u61B6 +HashDbSearchPanel.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +OpenIDE-Module-Short-Description=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u633F\u5165\u30E2\u30B8\u30E5\u30FC\u30EB\u304A\u3088\u3073\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C4\u30FC\u30EB +HashDbImportDatabaseDialog.jLabel1.text=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u306E\u540D\u524D\uFF1A +HashDbImportDatabaseDialog.knownBadRadioButton.text=\u65E2\u77E5\u306E\u60AA\u8CEA +HashDbImportDatabaseDialog.jLabel2.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u7A2E\u985E\uFF1A +HashDbImportDatabaseDialog.okButton.text=OK +HashDbImportDatabaseDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +HashDbCreateDatabaseDialog.jLabel2.text=\u7A2E\u985E\uFF1A +HashDbCreateDatabaseDialog.knownBadRadioButton.text=\u65E2\u77E5\u306E\u60AA\u8CEA +HashDbCreateDatabaseDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +HashDbConfigPanel.nameLabel.text=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u306E\u540D\u524D\uFF1A +HashDbConfigPanel.hashDbNameLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +HashDbConfigPanel.hashDatabasesLabel.text=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\uFF1A +HashDbConfigPanel.hashDbLocationLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +HashDbConfigPanel.ingestWarningLabel.text=\u51E6\u7406\u4E2D\u3067\u3059\u3002\u5B8C\u4E86\u3059\u308B\u307E\u3067\u4E00\u90E8\u306E\u8A2D\u5B9A\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +HashDbConfigPanel.jButton3.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 +HashDbConfigPanel.jLabel6.text=\u7A2E\u985E\uFF1A +HashDbConfigPanel.jLabel4.text=\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\uFF1A +HashDbConfigPanel.jLabel2.text=\u540D\u524D\uFF1A +HashDbConfigPanel.optionsLabel.text=\u30AA\u30D7\u30B7\u30E7\u30F3 +HashDbConfigPanel.typeLabel.text=\u7A2E\u985E\uFF1A +HashDbConfigPanel.locationLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\uFF1A +HashDbConfigPanel.hashDbIndexStatusLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +HashDbConfigPanel.hashDbTypeLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +HashDbConfigPanel.indexButton.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 +HashDbConfigPanel.indexLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A +HashDbConfigPanel.informationLabel.text=\u30A4\u30F3\u30D5\u30A9\u30E1\u30FC\u30B7\u30E7\u30F3 +HashDbConfigPanel.importDatabaseButton.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 +HashDbConfigPanel.deleteDatabaseButton.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u524A\u9664 +HashDbConfigPanel.indexPathLabelLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30D1\u30B9\uFF1A +HashDbConfigPanel.indexPathLabel.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +ModalNoButtons.CURRENTLYON_LABEL.text=y\u306Ex\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +ModalNoButtons.GO_GET_COFFEE_LABEL.text=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D\u3067\u3059\u3002\u6642\u9593\u304C\u304B\u304B\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002 +ModalNoButtons.CANCEL_BUTTON.text=\u30AD\u30E3\u30F3\u30BB\u30EB +HashDbSimpleConfigPanel.knownBadHashDbsLabel.text=\u65E2\u77E5\u306E\u60AA\u8CEA\u306A\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u51E6\u7406\u306B\u5229\u7528\uFF1A +HashDbImportDatabaseDialog.knownRadioButton.text=\u65E2\u77E5\uFF08NSRL\u307E\u305F\u306F\u305D\u306E\u4ED6\uFF09 +HashDbCreateDatabaseDialog.knownRadioButton.text=\u65E2\u77E5 +HashDbCreateDatabaseDialog.jLabel1.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\uFF1A +HashDbCreateDatabaseDialog.saveAsButton.text=\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58\u2026 +HashDbImportDatabaseDialog.jLabel3.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\uFF1A +HashDbCreateDatabaseDialog.searchDuringIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u691C\u7D22 +HashDbImportDatabaseDialog.searchDuringIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u691C\u7D22 +HashDbCreateDatabaseDialog.sendIngestMessagesCheckbox.text=\u51E6\u7406\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u308B +HashDbImportDatabaseDialog.sendIngestMessagesCheckbox.text=\u51E6\u7406\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u308B +HashDbConfigPanel.createDatabaseButton.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u4F5C\u6210 +HashDbImportDatabaseDialog.openButton.text=\u958B\u304F... +HashDbSimpleConfigPanel.alwaysCalcHashesCheckbox.text=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u306A\u304F\u3066\u3082\u3001\u30CF\u30C3\u30B7\u30E5\u5024\u3092\u8A08\u7B97 +HashDbCreateDatabaseDialog.jLabel3.text=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u306E\u540D\u524D\uFF1A +HashDbCreateDatabaseDialog.okButton.text=OK +HashDbConfigPanel.searchDuringIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u691C\u7D22 +HashDbConfigPanel.sendIngestMessagesCheckBox.text=\u51E6\u7406\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u308B +AddContentToHashDbAction.ContentMenu.noHashDbsConfigd=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +AddContentToHashDbAction.ContentMenu.createDbItem=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u4F5C\u6210... +AddContentToHashDbAction.addFilesToHashSet.addToHashDbErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30A8\u30E9\u30FC\u306B\u8FFD\u52A0 +AddContentToHashDbAction.addFilesToHashSet.unableToAddFileMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B {0} \u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +AddContentToHashDbAction.addFilesToHashSet.unableToAddFileSzMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B {0} \u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30CF\u30C3\u30B7\u30E5\u5024\u304C\u8A08\u7B97\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u9069\u5207\u306A\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8A2D\u5B9A\u3057\u3001\u5B9F\u884C\u3057\u3066\u4E0B\u3055\u3044\u3002 +HashDatabaseOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +HashDatabaseOptionsPanelController.moduleErrMsg=HashDatabaseOptionsPanelController\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\u304C\u539F\u56E0\u306A\u306E\u304B\u3092\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u5B8C\u5168\u3067\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002 +HashDbConfigPanel.noSelectionText=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +HashDbConfigPanel.errorGettingPathText=\u30D1\u30B9\u306E\u5165\u624B\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +HashDbConfigPanel.errorGettingIndexStatusText=\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +HashDbConfigPanel.setName.hashSetConfig=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u8A2D\u5B9A +HashDbConfigPanel.indexButtonText.index=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 +HashDbConfigPanel.indexButtonText.indexing=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +HashDbConfigPanel.indexStatusText.indexGen=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u4E2D\u3067\u3059 +HashDbConfigPanel.indexStatusText.indexOnly=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u307F +HashDbConfigPanel.indexStatusText.indexed=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u6E08\u307F +HashDbConfigPanel.indexButtonText.reIndex=\u518D\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 +HashDbConfigPanel.indexStatusText.noIndex=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u7121\u3057 +HashDbConfigPanel.dbsNotIndexedMsg=\u4E0B\u8A18\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3057\u307E\u3059\u304B\uFF1F\ + {0} +HashDbConfigPanel.unindexedDbsMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u306A\u3044\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +HashDbConfigPanel.allUnindexedDbsRmFromListMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u306A\u3044\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306F\u30EA\u30B9\u30C8\u304B\u3089\u524A\u9664\u3055\u308C\u307E\u3059 +HashDbConfigPanel.nameColLbl=\u540D\u524D +HashDbConfigPanel.editingCellsNotSupportedMsg=\u30BB\u30EB\u306F\u7DE8\u96C6\u4E0D\u53EF\u3067\u3059 +HashDbConfigPanel.deleteDbActionConfirmMsg=\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u304A\u3051\u308B\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F +HashDbConfigPanel.deleteDbActionMsg=\u8A2D\u5B9A\u304B\u3089\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u524A\u9664 +HashDbCreateDatabaseDialog.createHashDbMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u4F5C\u6210 +HashDbCreateDatabaseDialog.hashDbMustHaveFileExtensionMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u306F .{0} \u306E\u62E1\u5F35\u5B50\u304C\u5FC5\u8981\u3067\u3059\u3002 +HashDbCreateDatabaseDialog.fileNameErr=\u30D5\u30A1\u30A4\u30EB\u540D\u30A8\u30E9\u30FC +HashDbCreateDatabaseDialog.fileNameAlreadyExistsMsg=\u540C\u540D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u5225\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u8A2D\u5B9A\u3057\u3066\u4E0B\u3055\u3044\u3002 +HashDbCreateDatabaseDialog.fileExistsErr=\u30D5\u30A1\u30A4\u30EB\u304C\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u30A8\u30E9\u30FC +HashDbCreateDatabaseDialog.mustEnterHashSetNameMsg=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u540D\u306E\u5165\u529B\u304C\u5FC5\u8981\u3067\u3059 +HashDbCreateDatabaseDialog.createHashDbErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u4F5C\u6210\u30A8\u30E9\u30FC +HashDbCreateDatabaseDialog.mustEnterHashDbPathMsg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\u306E\u5165\u529B\u304C\u5FC5\u8981\u3067\u3059\u3002 +HashDbCreateDatabaseDialog.errMsg.hashDbCreationErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u4F5C\u6210\u30A8\u30E9\u30FC +HashDbCreateDatabaseDialog.cannotCreateFileAtLocMsg=\u6307\u5B9A\u3055\u308C\u305F\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +HashDbCreateDatabaseDialog.failedToCreateHashDbMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +HashDbImportDatabaseDialog.importHashDbMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 +HashDbImportDatabaseDialog.fileNameExtFilter.text=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +HashDbImportDatabaseDialog.failedToGetDbPathMsg=\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30D1\u30B9\u306E\u5165\u624B\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +HashDbImportDatabaseDialog.importHashDbErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u30A8\u30E9\u30FC +HashDbImportDatabaseDialog.mustSelectHashDbFilePathMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u306E\u9078\u629E\u304C\u5FC5\u8981\u3067\u3059\u3002 +HashDbImportDatabaseDialog.hashDbDoesNotExistMsg=\u9078\u629E\u3055\u308C\u305F\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg=\ {0}\u3067\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u958B\u304F\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.moduleName=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7 +HashDbIngestModule.moduleDescription=\u6A19\u6E96\u306ENSRL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306A\u3069\u3001\u63D0\u4F9B\u3055\u308C\u305F\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u5229\u7528\u3057\u3066\u65E2\u77E5\u307E\u305F\u306F\u7591\u308F\u3057\u3044\u3082\u306E\u3092\u7279\u5B9A\u3057\u307E\u3059\u3002 +HashDbIngestModule.noKnownHashDbSetMsg=\u65E2\u77E5\u306E\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 +HashDbIngestModule.knownFileSearchWillNotExecuteWarn=\u65E2\u77E5\u306E\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u304C\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +HashDbIngestModule.noKnownBadHashDbSetMsg=\u65E2\u77E5\u306E\u60AA\u8CEA\u306A\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30BB\u30C3\u30C8\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +HashDbSimpleConfigPanel.knownHashDbsLabel.text=\u65E2\u77E5\u306E\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u51E6\u7406\u306B\u5229\u7528\uFF1A +HashDbConfigPanel.dbNotIndexedMsg=\u4E0B\u8A18\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3057\u307E\u3059\u304B\uFF1F\ + {0} +HashDbIngestModule.knownBadFileSearchWillNotExecuteWarn=\u65E2\u77E5\u306E\u60AA\u8CEA\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +HashDbIngestModule.fileReadErrorMsg=\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC\uFF1A {0} +HashDbIngestModule.calcHashValueErr=\ {0}\u306E\u30CF\u30C3\u30B7\u30E5\u5024\u3092\u8A08\u7B97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.hashLookupErrorMsg=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u30A8\u30E9\u30FC\uFF1A {0} +HashDbIngestModule.settingKnownBadStateErr={0}\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u65E2\u77E5\u306E\u60AA\u8CEA\u3068\u8A2D\u5B9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.lookingUpKnownBadHashValueErr={0}\u306E\u65E2\u77E5\u306E\u60AA\u8CEA\u30CF\u30C3\u30B7\u30E5\u5024\u3092\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.settingsKnownStateErr={0}\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u65E2\u77E5\u3068\u8A2D\u5B9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.lookingUpKnownHashValueErr={0}\u306E\u65E2\u77E5\u306E\u4E0D\u826F\u30CF\u30C3\u30B7\u30E5\u5024\u3092\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +HashDbIngestModule.postToBB.fileName=\u30D5\u30A1\u30A4\u30EB\u540D +HashDbIngestModule.postToBB.md5Hash=MD5\u30CF\u30C3\u30B7\u30E5 +HashDbIngestModule.postToBB.hashsetName=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u540D +HashDbIngestModule.postToBB.knownBadMsg=\u65E2\u77E5\u306E\u60AA\u8CEA\: {0} +HashDbIngestModule.complete.knownBadsFound=\u767A\u898B\u3055\u308C\u305F\u65E2\u77E5\u306E\u60AA\u8CEA\uFF1A +HashDbIngestModule.complete.totalCalcTime=\u8A08\u7B97\u6642\u9593\u306E\u5408\u8A08 +HashDbIngestModule.complete.totalLookupTime=\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u6642\u9593\u306E\u5408\u8A08 +HashDbIngestModule.complete.databasesUsed=\u5229\u7528\u3057\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\uFF1A +HashDbIngestModule.complete.hashLookupResults=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u7D50\u679C +HashDbManager.moduleErrorListeningToUpdatesMsg=HashDbManager\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\u304C\u539F\u56E0\u306A\u306E\u304B\u3092\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u5B8C\u5168\u3067\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002 +HashDbManager.replacingDuplicateHashsetNameMsg=\u8907\u88FD\u306E\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u540D {0} \u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002\ + {1}\u306B\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002 +HashDbManager.openHashDbErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u958B\u304F\u30A8\u30E9\u30FC +HashDbManager.unableToOpenHashDbMsg=\ {0} \u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u958B\u3051\u307E\u305B\u3093\u3002 +HashDbManager.savedBackupOfOldConfigMsg={0}\ +\u53E4\u3044\u8A2D\u5B9A\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u30B3\u30D4\u30FC\u304C\u4E0B\u8A18\u306E\u901A\u308A\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F\u3002\ +{1} +HashDbManager.baseMessage.updatedFormatHashDbConfig=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306E\u5F62\u5F0F\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F\u3002 +HashDbManager.msgBoxTitle.confFileFmtChanged=\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u306E\u5909\u66F4\u5B8C\u4E86 +HashDbManager.dlgMsg.dbNotFoundAtLoc=\ {0} \u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306F\u4E0B\u8A18\u306E\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\ + {1}\ + \u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3057\u307E\u3059\u304B\uFF1F +HashDbManager.dlgTitle.MissingDb=\u6B20\u843D\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +HashDbManager.progress.indexingHashSet=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D {0} +HashDbManager.dlgMsg.errorIndexingHashSet=\ {0} \u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D\u306E\u30A8\u30E9\u30FC +HashDbManager.hashDbIndexingErr=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D\u306E\u30A8\u30E9\u30FC +HashDbPanelSearchAction.actionName=MD5\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u304F\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +HashDbSearchAction.dlgMsg.noFilesHaveMD5Calculated=MD5\u30CF\u30C3\u30B7\u30E5\u304C\u8A08\u7B97\u3055\u308C\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u307E\u305A\u306FHashDB\u3092\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3057\u3066\u4E0B\u3055\u3044\u3002 +HashDbSearchManager.MD5HashSearch=MD5\u30CF\u30C3\u30B7\u30E5\u691C\u7D22 +HashDbSearchManager.noResultsFoundMsg=\u4E00\u81F4\u3059\u308B\u3082\u306E\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +HashDbSearchPanel.titleText.ingestOngoing=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\uFF1B\u5B8C\u4E86\u3059\u308B\u307E\u3067\u3053\u306E\u30B5\u30FC\u30D3\u30B9\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +HashDbSearchPanel.noFilesHaveMD5HashMsg=MD5\u30CF\u30C3\u30B7\u30E5\u4ED8\u304D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +HashDbSearchPanel.errorText.noHashesAddedMsg=\u30A8\u30E9\u30FC\uFF1A\u30CF\u30C3\u30B7\u30E5\u304C\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +HashDbSearchPanel.errorText.hashAlreadyAddedMsg=\u30A8\u30E9\u30FC\uFF1A\u30CF\u30C3\u30B7\u30E5\u304C\u65E2\u306B\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +HashDbSearchPanel.errorText.invalidMD5HashMsg=\u30A8\u30E9\u30FC\uFF1A\u6709\u52B9\u306AMD5\u30CF\u30C3\u30B7\u30E5\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +HashDbSearchThread.progress.cancellingSearch={0}\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +HashDbSearchThread.name.searching=\u691C\u7D22\u4E2D +HashDbSearchThread.noMoreFilesWithMD5Msg=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u4ED8\u304D\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4ED6\u306B\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +HashDbSimpleConfigPanel.dlgMsg.mustIndexDbBeforeUse=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u5229\u7528\u3059\u308B\u306B\u306F\u3001\u4E8B\u524D\u306B\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +ModalNoButtons.indexingDbsTitle=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +ModalNoButtons.indexingDbTitle=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +ModalNoButtons.exitHashDbIndexingMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u4E2D\u6B62\u3057\u307E\u3059\u3002\ +\u4F5C\u6210\u3055\u308C\u305F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u5229\u7528\u4E0D\u53EF\u3068\u306A\u308A\u307E\u3059\u3002\u7D9A\u884C\u3059\u308B\u969B\u306F\u30CF\u30C3\u30B7\u30E5\u30D5\u30A9\u30EB\u30C0\u5185\u306B\u3042\u308B\u3001\u5BFE\u5FDC\u3059\u308B-md5.idx \u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066\u4E0B\u3055\u3044\u3002\ +\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u4E2D\u6B62\u3057\u307E\u3059\u304B\uFF1F +ModalNoButtons.dlgTitle.unfinishedIndexing=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u672A\u5B8C\u4E86 +ModalNoButtons.indexThis.currentlyIndexing1Db=\uFF11\u3064\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +ModalNoButtons.indexThese.currentlyIndexing1OfNDbs=\uFF11\uFF0F {0}\u3064\u76EE\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +ModalNoButtons.propChg.currentlyIndexingXofN={0}\uFF0F {1}\u3064\u76EE\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u4E2D +HashDbManager.duplicateHashSetNameExceptionMsg=\u30CF\u30C3\u30B7\u30E5\u30BB\u30C3\u30C8\u540D''{0}''\u306F\u65E2\u306B\u5225\u306E\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +HashDbManager.hashDbDoesNotExistExceptionMsg=\u4E0B\u8A18\u3067\u306F\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\ +{0} +HashDbManager.hashDbFileExistsExceptionMsg=\u4E0B\u8A18\u306B\u306F\u65E2\u306B\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\ +{0} +HashDbManager.hashDbAlreadyAddedExceptionMsg=\u4E0B\u8A18\u306E\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\ +{0}\ +\u306F\u65E2\u306B\u4F5C\u6210\u307E\u305F\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +HashDbManager.illegalHashDbFileNameExtensionMsg=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u540D\u306F.{0}\u306E\u62E1\u5F35\u5B50\u304C\u5FC5\u8981\u3067\u3059\u3002 +HashDbManager.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +HashDbManager.knownBad.text=\u65E2\u77E5\u306E\u60AA\u8CEA +HashDbManager.known.text=\u65E2\u77E5 +HashDbManager.fileNameExtensionFilter.title=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +HashDbSearchAction.dlgMsg.title=MD5\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +HashDbSearchAction.getName.text=\u30CF\u30C3\u30B7\u30E5\u691C\u7D22 +HashDbSearchPanel.dlgMsg.title=MD5\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u304F\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +AddContentToHashDbAction.singleSelectionName=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0 +AddContentToHashDbAction.multipleSelectionName=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0 +OptionsCategory_Name_HashDatabase=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +OptionsCategory_Keywords_HashDatabase=\u30CF\u30C3\u30B7\u30E5\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 \ No newline at end of file diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java index e6400363dc..5ddac1c794 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java @@ -25,6 +25,7 @@ import javax.swing.JComponent; import org.netbeans.spi.options.OptionsPanelController; import org.openide.util.HelpCtx; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; import java.util.logging.Level; import org.sleuthkit.autopsy.coreutils.Logger; @@ -36,7 +37,8 @@ position = 3, keywords = "#OptionsCategory_Keywords_HashDatabase", keywordsCategory = "HashDatabase", id = "HashDatabase") -@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_HashDatabase=Hash Database", "OptionsCategory_Keywords_HashDatabase=Hash Database"}) +// moved messages to Bundle.properties +//@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_HashDatabase=Hash Database", "OptionsCategory_Keywords_HashDatabase=Hash Database"}) public final class HashDatabaseOptionsPanelController extends OptionsPanelController { private HashDbConfigPanel panel; @@ -106,7 +108,10 @@ public final class HashDatabaseOptionsPanelController extends OptionsPanelContro } catch (Exception e) { logger.log(Level.SEVERE, "HashDatabaseOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to HashDatabaseOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "HashDatabaseOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "HashDatabaseOptionsPanelController.moduleErrMsg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -115,7 +120,10 @@ public final class HashDatabaseOptionsPanelController extends OptionsPanelContro } catch (Exception e) { logger.log(Level.SEVERE, "HashDatabaseOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to HashDatabaseOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "HashDatabaseOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "HashDatabaseOptionsPanelController.moduleErrMsg"), + MessageNotifyUtil.MessageType.ERROR); } } } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbConfigPanel.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbConfigPanel.java index 4fa82d4a2c..ac224925e4 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbConfigPanel.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbConfigPanel.java @@ -36,6 +36,8 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableCellRenderer; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponents.OptionsPanel; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.IngestManager; @@ -47,9 +49,12 @@ import org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb.KnownFilesType; * Instances of this class provide a comprehensive UI for managing the hash sets configuration. */ public final class HashDbConfigPanel extends javax.swing.JPanel implements OptionsPanel { - private static final String NO_SELECTION_TEXT = "No database selected"; - private static final String ERROR_GETTING_PATH_TEXT = "Error occurred getting path"; - private static final String ERROR_GETTING_INDEX_STATUS_TEXT = "Error occurred getting status"; + private static final String NO_SELECTION_TEXT = NbBundle + .getMessage(HashDbConfigPanel.class, "HashDbConfigPanel.noSelectionText"); + private static final String ERROR_GETTING_PATH_TEXT = NbBundle + .getMessage(HashDbConfigPanel.class, "HashDbConfigPanel.errorGettingPathText"); + private static final String ERROR_GETTING_INDEX_STATUS_TEXT = NbBundle + .getMessage(HashDbConfigPanel.class, "HashDbConfigPanel.errorGettingIndexStatusText"); private HashDbManager hashSetManager = HashDbManager.getInstance(); private HashSetTableModel hashSetTableModel = new HashSetTableModel(); @@ -71,7 +76,7 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio } private void customizeComponents() { - setName("Hash Set Configuration"); + setName(NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.setName.hashSetConfig")); this.ingestWarningLabel.setVisible(false); this.hashSetTable.setModel(hashSetTableModel); this.hashSetTable.setTableHeader(null); @@ -109,7 +114,7 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio // Update indexing components. hashDbIndexStatusLabel.setText(NO_SELECTION_TEXT); hashDbIndexStatusLabel.setForeground(Color.black); - indexButton.setText("Index"); + indexButton.setText(NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.index")); indexButton.setEnabled(false); // Update ingest options. @@ -140,7 +145,7 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio hashDbLocationLabel.setText(shortenPath(db.getDatabasePath())); } catch (TskCoreException ex) { - Logger.getLogger(HashDbConfigPanel.class.getName()).log(Level.SEVERE, "Error getting database path of " + db.getHashSetName() + " hash database", ex); + Logger.getLogger(HashDbConfigPanel.class.getName()).log(Level.SEVERE, "Error getting database path of " + db.getHashSetName() + " hash database", ex); hashDbLocationLabel.setText(ERROR_GETTING_PATH_TEXT); } @@ -148,39 +153,45 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio indexPathLabel.setText(shortenPath(db.getIndexPath())); } catch (TskCoreException ex) { - Logger.getLogger(HashDbConfigPanel.class.getName()).log(Level.SEVERE, "Error getting index path of " + db.getHashSetName() + " hash database", ex); + Logger.getLogger(HashDbConfigPanel.class.getName()).log(Level.SEVERE, "Error getting index path of " + db.getHashSetName() + " hash database", ex); indexPathLabel.setText(ERROR_GETTING_PATH_TEXT); } // Update indexing components. try { if (db.isIndexing()) { - indexButton.setText("Indexing"); - hashDbIndexStatusLabel.setText("Index is currently being generated"); + indexButton.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.indexing")); + hashDbIndexStatusLabel.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexStatusText.indexGen")); hashDbIndexStatusLabel.setForeground(Color.black); indexButton.setEnabled(false); } else if (db.hasIndex()) { if (db.hasIndexOnly()) { - hashDbIndexStatusLabel.setText("Index only"); + hashDbIndexStatusLabel.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexStatusText.indexOnly")); } else { - hashDbIndexStatusLabel.setText("Indexed"); + hashDbIndexStatusLabel.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexStatusText.indexed")); } hashDbIndexStatusLabel.setForeground(Color.black); if (db.canBeReIndexed()) { - indexButton.setText("Re-Index"); + indexButton.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.reIndex")); indexButton.setEnabled(true); } else { - indexButton.setText("Index"); + indexButton.setText(NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.index")); indexButton.setEnabled(false); } } else { - hashDbIndexStatusLabel.setText("No index"); + hashDbIndexStatusLabel.setText( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexStatusText.noIndex")); hashDbIndexStatusLabel.setForeground(Color.red); - indexButton.setText("Index"); + indexButton.setText(NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.index")); indexButton.setEnabled(true); } } @@ -188,7 +199,7 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio Logger.getLogger(HashDbConfigPanel.class.getName()).log(Level.SEVERE, "Error getting index state of hash database", ex); hashDbIndexStatusLabel.setText(ERROR_GETTING_INDEX_STATUS_TEXT); hashDbIndexStatusLabel.setForeground(Color.red); - indexButton.setText("Index"); + indexButton.setText(NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.indexButtonText.index")); indexButton.setEnabled(false); } @@ -282,12 +293,15 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio total+= "\n" + hdb.getHashSetName(); } if(plural){ - message = "The following databases are not indexed, would you like to index them now? \n " + total; + message = NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.dbsNotIndexedMsg", total); } else{ - message = "The following database is not indexed, would you like to index it now? \n" + total; + message = NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.dbNotIndexedMsg", total); } - int res = JOptionPane.showConfirmDialog(this, message, "Unindexed databases", JOptionPane.YES_NO_OPTION); + int res = JOptionPane.showConfirmDialog(this, message, + NbBundle.getMessage(this.getClass(), + "HashDbConfigPanel.unindexedDbsMsg"), + JOptionPane.YES_NO_OPTION); if(res == JOptionPane.YES_OPTION){ ModalNoButtons indexingDialog = new ModalNoButtons(this, new Frame(),unindexed); indexingDialog.setLocationRelativeTo(null); @@ -296,7 +310,8 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio hashSetTableModel.refreshModel(); } if(res == JOptionPane.NO_OPTION){ - JOptionPane.showMessageDialog(this, "All unindexed databases will be removed the list"); + JOptionPane.showMessageDialog(this, NbBundle.getMessage(this.getClass(), + "HashDbConfigPanel.allUnindexedDbsRmFromListMsg")); removeThese(unindexed); } } @@ -362,7 +377,7 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio @Override public String getColumnName(int column) { - return "Name"; + return NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.nameColLbl"); } @Override @@ -387,7 +402,8 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { - throw new UnsupportedOperationException("Editing of cells is not supported"); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.editingCellsNotSupportedMsg")); } @Override @@ -720,7 +736,12 @@ public final class HashDbConfigPanel extends javax.swing.JPanel implements Optio }//GEN-LAST:event_indexButtonActionPerformed private void deleteDatabaseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteDatabaseButtonActionPerformed - if (JOptionPane.showConfirmDialog(null, "This will remove the hash database for all cases. Do you want to proceed? ", "Delete Hash Database from Configuration", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { + if (JOptionPane.showConfirmDialog(null, + NbBundle.getMessage(this.getClass(), + "HashDbConfigPanel.deleteDbActionConfirmMsg"), + NbBundle.getMessage(this.getClass(), "HashDbConfigPanel.deleteDbActionMsg"), + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { HashDb hashDb = ((HashSetTable)hashSetTable).getSelection(); if (hashDb != null) { hashSetManager.removeHashDatabase(hashDb); diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbCreateDatabaseDialog.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbCreateDatabaseDialog.java index 842f1d5e06..2935304dcb 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbCreateDatabaseDialog.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbCreateDatabaseDialog.java @@ -24,6 +24,8 @@ import java.awt.Toolkit; import java.io.File; import java.io.IOException; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; @@ -44,7 +46,8 @@ import org.sleuthkit.autopsy.hashdatabase.HashDbManager.IllegalHashDatabaseFileN */ final class HashDbCreateDatabaseDialog extends javax.swing.JDialog { - private static final String DEFAULT_FILE_NAME = "hashset"; + private static final String DEFAULT_FILE_NAME = NbBundle + .getMessage(HashDbCreateDatabaseDialog.class, "HashDbCreateDatabaseDialog.defaultFileName"); private JFileChooser fileChooser = null; private HashDb newHashDb = null; @@ -54,7 +57,7 @@ final class HashDbCreateDatabaseDialog extends javax.swing.JDialog { * or known bad. */ HashDbCreateDatabaseDialog() { - super(new JFrame(), "Create Hash Database", true); + super(new JFrame(), NbBundle.getMessage(HashDbCreateDatabaseDialog.class, "HashDbCreateDatabaseDialog.createHashDbMsg"), true); initFileChooser(); initComponents(); display(); @@ -74,13 +77,24 @@ final class HashDbCreateDatabaseDialog extends javax.swing.JDialog { public void approveSelection() { File selectedFile = getSelectedFile(); if (!FilenameUtils.getExtension(selectedFile.getName()).equalsIgnoreCase(HashDbManager.getHashDatabaseFileExtension())) { - if (JOptionPane.showConfirmDialog(this, "The hash database file must have a ." + HashDbManager.getHashDatabaseFileExtension() + " extension.", "File Name Error", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) { + if (JOptionPane.showConfirmDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.hashDbMustHaveFileExtensionMsg", + HashDbManager.getHashDatabaseFileExtension()), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.fileNameErr"), + JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) { cancelSelection(); } return; } if (selectedFile.exists()) { - if (JOptionPane.showConfirmDialog(this, "A file with this name already exists. Please choose a new file name.", "File Already Exists Error", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) { + if (JOptionPane.showConfirmDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.fileNameAlreadyExistsMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.fileExistsErr"), + JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) { cancelSelection(); } return; @@ -310,12 +324,22 @@ final class HashDbCreateDatabaseDialog extends javax.swing.JDialog { // dialog to allow the user to try again, if desired. if (hashSetNameTextField.getText().isEmpty()) { - JOptionPane.showMessageDialog(this, "A hash set name must be entered.", "Create Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.mustEnterHashSetNameMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.createHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } if (databasePathTextField.getText().isEmpty()) { - JOptionPane.showMessageDialog(this, "A database path must be entered.", "Create Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.mustEnterHashDbPathMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.createHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } @@ -327,24 +351,39 @@ final class HashDbCreateDatabaseDialog extends javax.swing.JDialog { type = KnownFilesType.KNOWN_BAD; } - String errorMessage = "Hash database creation error"; + String errorMessage = NbBundle + .getMessage(this.getClass(), "HashDbCreateDatabaseDialog.errMsg.hashDbCreationErr"); try { newHashDb = HashDbManager.getInstance().addNewHashDatabase(hashSetNameTextField.getText(), fileChooser.getSelectedFile().getCanonicalPath(), searchDuringIngestCheckbox.isSelected(), sendIngestMessagesCheckbox.isSelected(), type); } catch (IOException ex) { Logger.getLogger(HashDbCreateDatabaseDialog.class.getName()).log(Level.WARNING, errorMessage, ex); - JOptionPane.showMessageDialog(this, "Cannot create a hash database file at the selected location.", "Create Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.cannotCreateFileAtLocMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.createHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } catch (HashDatabaseFileAlreadyExistsException | DuplicateHashSetNameException | HashDatabaseAlreadyAddedException | IllegalHashDatabaseFileNameExtensionException ex) { Logger.getLogger(HashDbCreateDatabaseDialog.class.getName()).log(Level.WARNING, errorMessage, ex); - JOptionPane.showMessageDialog(this, ex.getMessage(), "Create Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + ex.getMessage(), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.createHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } catch (TskCoreException ex) { Logger.getLogger(HashDbCreateDatabaseDialog.class.getName()).log(Level.SEVERE, errorMessage, ex); - JOptionPane.showMessageDialog(this, "Failed to create the hash database.", "Create Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.failedToCreateHashDbMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.createHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbImportDatabaseDialog.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbImportDatabaseDialog.java index 33516bad99..0262ed74db 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbImportDatabaseDialog.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbImportDatabaseDialog.java @@ -23,6 +23,8 @@ import java.awt.Toolkit; import java.io.File; import java.io.IOException; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; @@ -53,7 +55,9 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog { * known, or known bad. */ HashDbImportDatabaseDialog() { - super(new JFrame(), "Import Hash Database", true); + super(new JFrame(), + NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.importHashDbMsg"), + true); initFileChooser(); initComponents(); display(); @@ -71,7 +75,8 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog { fileChooser.setDragEnabled(false); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); String[] EXTENSION = new String[] { "txt", "kdb", "idx", "hash", "Hash", "hsh"}; - FileNameExtensionFilter filter = new FileNameExtensionFilter("Hash Database File", EXTENSION); + FileNameExtensionFilter filter = new FileNameExtensionFilter( + NbBundle.getMessage(this.getClass(), "HashDbImportDatabaseDialog.fileNameExtFilter.text"), EXTENSION); fileChooser.setFileFilter(filter); fileChooser.setMultiSelectionEnabled(false); } @@ -268,7 +273,9 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog { } catch (IOException ex) { Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.SEVERE, "Failed to get path of selected database", ex); - JOptionPane.showMessageDialog(this, "Failed to get the path of the selected database."); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.failedToGetDbPathMsg")); } } }//GEN-LAST:event_openButtonActionPerformed @@ -294,17 +301,32 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog { // dialog to allow the user to try again, if desired. if(hashSetNameTextField.getText().isEmpty()) { - JOptionPane.showMessageDialog(this, "A hash set name must be entered.", "Import Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbCreateDatabaseDialog.mustEnterHashSetNameMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.importHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } if(selectedFilePath.isEmpty()) { - JOptionPane.showMessageDialog(this, "A hash database file path must be selected.", "Import Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.mustSelectHashDbFilePathMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.importHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } File file = new File(selectedFilePath); if (!file.exists()) { - JOptionPane.showMessageDialog(this, "The selected hash database does not exist.", "Import Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.hashDbDoesNotExistMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.importHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } @@ -316,18 +338,28 @@ final class HashDbImportDatabaseDialog extends javax.swing.JDialog { type = KnownFilesType.KNOWN_BAD; } - String errorMessage = "Failed to open hash database at " + selectedFilePath + "."; + String errorMessage = NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg", + selectedFilePath); try { selectedHashDb = HashDbManager.getInstance().addExistingHashDatabase(hashSetNameTextField.getText(), selectedFilePath, searchDuringIngestCheckbox.isSelected(), sendIngestMessagesCheckbox.isSelected(), type); } catch (HashDatabaseDoesNotExistException | DuplicateHashSetNameException | HashDatabaseAlreadyAddedException ex) { Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.WARNING, errorMessage, ex); - JOptionPane.showMessageDialog(this, ex.getMessage(), "Import Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + ex.getMessage(), + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.importHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } catch (TskCoreException ex) { Logger.getLogger(HashDbCreateDatabaseDialog.class.getName()).log(Level.SEVERE, errorMessage, ex); - JOptionPane.showMessageDialog(this, errorMessage, "Import Hash Database Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + errorMessage, + NbBundle.getMessage(this.getClass(), + "HashDbImportDatabaseDialog.importHashDbErr"), + JOptionPane.ERROR_MESSAGE); return; } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java index 91ecb5de88..412b67d4b2 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Version; @@ -47,8 +49,10 @@ import org.sleuthkit.datamodel.HashInfo; public class HashDbIngestModule extends IngestModuleAbstractFile { private static HashDbIngestModule instance = null; - public final static String MODULE_NAME = "Hash Lookup"; - public final static String MODULE_DESCRIPTION = "Identifies known and notables files using supplied hash databases, such as a standard NSRL database."; + public final static String MODULE_NAME = NbBundle.getMessage(HashDbIngestModule.class, + "HashDbIngestModule.moduleName"); + public final static String MODULE_DESCRIPTION = NbBundle.getMessage(HashDbIngestModule.class, + "HashDbIngestModule.moduleDescription"); final public static String MODULE_VERSION = Version.getVersion(); private static final Logger logger = Logger.getLogger(HashDbIngestModule.class.getName()); private static final int MAX_COMMENT_SIZE = 500; @@ -151,10 +155,20 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { calcHashesIsSet = hashDbManager.getAlwaysCalculateHashes(); if (knownHashSets.isEmpty()) { - services.postMessage(IngestMessage.createWarningMessage(++messageId, this, "No known hash database set", "Known file search will not be executed.")); + services.postMessage(IngestMessage.createWarningMessage(++messageId, + this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.noKnownHashDbSetMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.knownFileSearchWillNotExecuteWarn"))); } if (knownBadHashSets.isEmpty()) { - services.postMessage(IngestMessage.createWarningMessage(++messageId, this, "No known bad hash database set", "Known bad file search will not be executed.")); + services.postMessage(IngestMessage.createWarningMessage(++messageId, + this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.noKnownBadHashDbSetMsg"), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.knownBadFileSearchWillNotExecuteWarn"))); } } @@ -207,8 +221,14 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { calctime += (System.currentTimeMillis() - calcstart); } catch (IOException ex) { logger.log(Level.WARNING, "Error calculating hash of file " + name, ex); - services.postMessage(IngestMessage.createErrorMessage(++messageId, HashDbIngestModule.this, "Read Error: " + name, - "Error encountered while calculating the hash value for " + name + ".")); + services.postMessage(IngestMessage.createErrorMessage(++messageId, + HashDbIngestModule.this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.fileReadErrorMsg", + name), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.calcHashValueErr", + name))); return ProcessResult.ERROR; } } @@ -227,8 +247,14 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { skCase.setKnown(file, TskData.FileKnown.BAD); } catch (TskException ex) { logger.log(Level.WARNING, "Couldn't set known bad state for file " + name + " - see sleuthkit log for details", ex); - services.postMessage(IngestMessage.createErrorMessage(++messageId, HashDbIngestModule.this, "Hash Lookup Error: " + name, - "Error encountered while setting known bad state for " + name + ".")); + services.postMessage(IngestMessage.createErrorMessage(++messageId, + HashDbIngestModule.this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.hashLookupErrorMsg", + name), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.settingKnownBadStateErr", + name))); ret = ProcessResult.ERROR; } String hashSetName = db.getHashSetName(); @@ -252,8 +278,14 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { logger.log(Level.WARNING, "Couldn't lookup known bad hash for file " + name + " - see sleuthkit log for details", ex); - services.postMessage(IngestMessage.createErrorMessage(++messageId, HashDbIngestModule.this, "Hash Lookup Error: " + name, - "Error encountered while looking up known bad hash value for " + name + ".")); + services.postMessage(IngestMessage.createErrorMessage(++messageId, + HashDbIngestModule.this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.hashLookupErrorMsg", + name), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.lookingUpKnownBadHashValueErr", + name))); ret = ProcessResult.ERROR; } } @@ -271,16 +303,28 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { break; } catch (TskException ex) { logger.log(Level.WARNING, "Couldn't set known state for file " + name + " - see sleuthkit log for details", ex); - services.postMessage(IngestMessage.createErrorMessage(++messageId, HashDbIngestModule.this, "Hash Lookup Error: " + name, - "Error encountered while setting known state for " + name + ".")); + services.postMessage(IngestMessage.createErrorMessage(++messageId, + HashDbIngestModule.this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.hashLookupErrorMsg", + name), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.settingsKnownStateErr", + name))); ret = ProcessResult.ERROR; } } lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { logger.log(Level.WARNING, "Couldn't lookup known hash for file " + name + " - see sleuthkit log for details", ex); - services.postMessage(IngestMessage.createErrorMessage(++messageId, HashDbIngestModule.this, "Hash Lookup Error: " + name, - "Error encountered while looking up known hash value for " + name + ".")); + services.postMessage(IngestMessage.createErrorMessage(++messageId, + HashDbIngestModule.this, + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.hashLookupErrorMsg", + name), + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.lookingUpKnownHashValueErr", + name))); ret = ProcessResult.ERROR; } } @@ -307,27 +351,37 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { detailsSb.append(""); //hit detailsSb.append(""); - detailsSb.append(""); - detailsSb.append(""); + detailsSb.append(""); + detailsSb.append(""); detailsSb.append(""); detailsSb.append(""); - detailsSb.append(""); + detailsSb.append(""); detailsSb.append(""); detailsSb.append(""); detailsSb.append(""); - detailsSb.append(""); + detailsSb.append(""); detailsSb.append(""); detailsSb.append(""); detailsSb.append("
File Name").append(abstractFile.getName()).append("") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.fileName")) + .append("") + .append(abstractFile.getName()) + .append("
MD5 Hash") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.md5Hash")) + .append("").append(md5Hash).append("
Hashset Name") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.hashsetName")) + .append("").append(hashSetName).append("
"); services.postMessage(IngestMessage.createDataMessage(++messageId, this, - "Known Bad: " + abstractFile.getName(), - detailsSb.toString(), - abstractFile.getName() + md5Hash, - badFile)); + NbBundle.getMessage(this.getClass(), + "HashDbIngestModule.postToBB.knownBadMsg", + abstractFile.getName()), + detailsSb.toString(), + abstractFile.getName() + md5Hash, + badFile)); } services.fireModuleDataEvent(new ModuleDataEvent(MODULE_NAME, ARTIFACT_TYPE.TSK_HASHSET_HIT, Collections.singletonList(badFile))); } catch (TskException ex) { @@ -343,20 +397,33 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { //details detailsSb.append(""); - detailsSb.append(""); + detailsSb.append(""); detailsSb.append(""); - detailsSb.append("\n"); - detailsSb.append("\n"); + detailsSb.append("\n"); + detailsSb.append("\n"); detailsSb.append("
Known bads found:
") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.knownBadsFound")) + .append("").append(knownBadCount).append("
Total Calculation Time").append(calctime).append("
Total Lookup Time").append(lookuptime).append("
") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalCalcTime")) + .append("").append(calctime).append("
") + .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalLookupTime")) + .append("").append(lookuptime).append("
"); - detailsSb.append("

Databases Used:

\n