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("File Name | ");
- detailsSb.append("").append(abstractFile.getName()).append(" | ");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.fileName"))
+ .append(" | ");
+ detailsSb.append("")
+ .append(abstractFile.getName())
+ .append(" | ");
detailsSb.append("
");
detailsSb.append("");
- detailsSb.append("MD5 Hash | ");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.md5Hash"))
+ .append(" | ");
detailsSb.append("").append(md5Hash).append(" | ");
detailsSb.append("
");
detailsSb.append("");
- detailsSb.append("Hashset Name | ");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.postToBB.hashsetName"))
+ .append(" | ");
detailsSb.append("").append(hashSetName).append(" | ");
detailsSb.append("
");
detailsSb.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("Known bads found: | ");
+ detailsSb.append("
")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.knownBadsFound"))
+ .append(" | ");
detailsSb.append("").append(knownBadCount).append(" |
");
- detailsSb.append("Total Calculation Time | ").append(calctime).append(" |
\n");
- detailsSb.append("Total Lookup Time | ").append(lookuptime).append(" |
\n");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalCalcTime"))
+ .append(" | ").append(calctime).append(" |
\n");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalLookupTime"))
+ .append(" | ").append(lookuptime).append(" |
\n");
detailsSb.append("
");
- detailsSb.append("Databases Used:
\n");
+ detailsSb.append("")
+ .append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.databasesUsed"))
+ .append("
\n");
for (HashDb db : knownBadHashSets) {
detailsSb.append("- ").append(db.getHashSetName()).append("
\n");
}
detailsSb.append("
");
- services.postMessage(IngestMessage.createMessage(++messageId, IngestMessage.MessageType.INFO, this, "Hash Lookup Results", detailsSb.toString()));
+ services.postMessage(IngestMessage.createMessage(++messageId,
+ IngestMessage.MessageType.INFO,
+ this,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbIngestModule.complete.hashLookupResults"),
+ detailsSb.toString()));
}
}
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbManager.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbManager.java
index 342beb9b30..781082ee24 100755
--- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbManager.java
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbManager.java
@@ -31,6 +31,8 @@ import javax.swing.filechooser.FileNameExtensionFilter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
import org.sleuthkit.autopsy.coreutils.XMLUtil;
import org.w3c.dom.Document;
@@ -52,8 +54,7 @@ import org.sleuthkit.datamodel.HashInfo;
import org.sleuthkit.datamodel.SleuthkitJNI;
import org.sleuthkit.datamodel.TskCoreException;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
-import java.util.logging.Level;
-import org.sleuthkit.autopsy.coreutils.Logger;
+
/**
* This class implements a singleton that manages the set of hash databases
* used to classify files as unknown, known or known bad.
@@ -63,11 +64,11 @@ public class HashDbManager implements PropertyChangeListener {
private static final String ROOT_ELEMENT = "hash_sets";
private static final String SET_ELEMENT = "hash_set";
private static final String SET_NAME_ATTRIBUTE = "name";
- private static final String SET_TYPE_ATTRIBUTE = "type";
+ private static final String SET_TYPE_ATTRIBUTE = "type";
private static final String SEARCH_DURING_INGEST_ATTRIBUTE = "use_for_ingest";
private static final String SEND_INGEST_MESSAGES_ATTRIBUTE = "show_inbox_messages";
private static final String PATH_ELEMENT = "hash_set_path";
- private static final String LEGACY_PATH_NUMBER_ATTRIBUTE = "number";
+ private static final String LEGACY_PATH_NUMBER_ATTRIBUTE = "number";
private static final String CONFIG_FILE_NAME = "hashsets.xml";
private static final String XSD_FILE_NAME = "HashsetsSchema.xsd";
private static final String ENCODING = "UTF-8";
@@ -123,31 +124,32 @@ public class HashDbManager implements PropertyChangeListener {
class DuplicateHashSetNameException extends Exception {
private DuplicateHashSetNameException(String hashSetName) {
- super("The hash set name '"+ hashSetName +"' has already been used for another hash database.");
+ super(NbBundle.getMessage(HashDbManager.class, "HashDbManager.duplicateHashSetNameExceptionMsg", hashSetName));
}
}
class HashDatabaseDoesNotExistException extends Exception {
private HashDatabaseDoesNotExistException(String path) {
- super("No hash database found at\n" + path);
+ super(NbBundle.getMessage(HashDbManager.class, "HashDbManager.hashDbDoesNotExistExceptionMsg", path));
}
}
class HashDatabaseFileAlreadyExistsException extends Exception {
private HashDatabaseFileAlreadyExistsException(String path) {
- super("A file already exists at\n" + path);
+ super(NbBundle.getMessage(HashDbManager.class, "HashDbManager.hashDbFileExistsExceptionMsg", path));
}
}
class HashDatabaseAlreadyAddedException extends Exception {
private HashDatabaseAlreadyAddedException(String path) {
- super("The hash database at\n" + path + "\nhas already been created or imported.");
+ super(NbBundle.getMessage(HashDbManager.class, "HashDbManager.hashDbAlreadyAddedExceptionMsg", path));
}
}
class IllegalHashDatabaseFileNameExtensionException extends Exception {
private IllegalHashDatabaseFileNameExtensionException() {
- super("The hash database file name must have a ." + getHashDatabaseFileExtension() + " extension.");
+ super(NbBundle.getMessage(HashDbManager.class, "HashDbManager.illegalHashDbFileNameExtensionMsg",
+ getHashDatabaseFileExtension()));
}
}
@@ -244,7 +246,10 @@ public class HashDbManager implements PropertyChangeListener {
}
catch (Exception e) {
logger.log(Level.SEVERE, "HashDbManager listener threw exception", e);
- MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to HashDbManager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
+ MessageNotifyUtil.Notify.show(
+ "Module Error",
+ NbBundle.getMessage(this.getClass(), "HashDbManager.moduleErrorListeningToUpdatesMsg"),
+ MessageNotifyUtil.MessageType.ERROR);
}
return hashDb;
}
@@ -319,7 +324,10 @@ public class HashDbManager implements PropertyChangeListener {
}
catch (Exception e) {
logger.log(Level.SEVERE, "HashDbManager listener threw exception", e);
- MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to HashDbManager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
+ MessageNotifyUtil.Notify.show(
+ "Module Error",
+ NbBundle.getMessage(this.getClass(), "HashDbManager.moduleErrorListeningToUpdatesMsg"),
+ MessageNotifyUtil.MessageType.ERROR);
}
}
@@ -536,7 +544,12 @@ public class HashDbManager implements PropertyChangeListener {
newHashSetName = hashSetName + suffix;
}
while (hashSetNames.contains(newHashSetName));
- JOptionPane.showMessageDialog(null, "Duplicate hash set name " + hashSetName + " found.\nReplacing with " + newHashSetName + ".", "Open Hash Database Error", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbManager.replacingDuplicateHashsetNameMsg",
+ hashSetName, newHashSetName),
+ NbBundle.getMessage(this.getClass(), "HashDbManager.openHashDbErr"),
+ JOptionPane.ERROR_MESSAGE);
hashSetName = newHashSetName;
}
@@ -595,7 +608,11 @@ public class HashDbManager implements PropertyChangeListener {
}
catch (HashDatabaseDoesNotExistException | DuplicateHashSetNameException | HashDatabaseAlreadyAddedException | TskCoreException ex) {
Logger.getLogger(HashDbManager.class.getName()).log(Level.SEVERE, "Error opening hash database", ex);
- JOptionPane.showMessageDialog(null, "Unable to open " + dbPath + " hash database.", "Open Hash Database Error", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbManager.unableToOpenHashDbMsg", dbPath),
+ NbBundle.getMessage(this.getClass(), "HashDbManager.openHashDbErr"),
+ JOptionPane.ERROR_MESSAGE);
}
}
else {
@@ -617,11 +634,18 @@ public class HashDbManager implements PropertyChangeListener {
if (updatedSchema) {
String backupFilePath = configFilePath + ".v1_backup";
- String messageBoxTitle = "Configuration File Format Changed";
- String baseMessage = "The format of the hash database configuration file has been updated.";
+ String messageBoxTitle = NbBundle.getMessage(this.getClass(),
+ "HashDbManager.msgBoxTitle.confFileFmtChanged");
+ String baseMessage = NbBundle.getMessage(this.getClass(),
+ "HashDbManager.baseMessage.updatedFormatHashDbConfig");
try {
FileUtils.copyFile(new File(configFilePath), new File (backupFilePath));
- JOptionPane.showMessageDialog(null, baseMessage + "\nA backup copy of the old configuration has been saved as\n" + backupFilePath, messageBoxTitle, JOptionPane.INFORMATION_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbManager.savedBackupOfOldConfigMsg",
+ baseMessage, backupFilePath),
+ messageBoxTitle,
+ JOptionPane.INFORMATION_MESSAGE);
}
catch (IOException ex) {
Logger.getLogger(HashDbManager.class.getName()).log(Level.WARNING, "Failed to save backup of old format configuration file to " + backupFilePath, ex);
@@ -643,7 +667,11 @@ public class HashDbManager implements PropertyChangeListener {
// Give the user an opportunity to find the desired file.
String newPath = null;
- if (JOptionPane.showConfirmDialog(null, "Database " + hashSetName + " could not be found at location\n" + configuredPath + "\nWould you like to search for the file?", "Missing Database", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+ if (JOptionPane.showConfirmDialog(null,
+ NbBundle.getMessage(this.getClass(), "HashDbManager.dlgMsg.dbNotFoundAtLoc",
+ hashSetName, configuredPath),
+ NbBundle.getMessage(this.getClass(), "HashDbManager.dlgTitle.MissingDb"),
+ JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
newPath = searchForFile();
if (null != newPath && !newPath.isEmpty()) {
database = new File(newPath);
@@ -661,7 +689,8 @@ public class HashDbManager implements PropertyChangeListener {
fc.setDragEnabled(false);
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
String[] EXTENSION = new String[] { "txt", "idx", "hash", "Hash", "kdb" };
- FileNameExtensionFilter filter = new FileNameExtensionFilter("Hash Database File", EXTENSION);
+ FileNameExtensionFilter filter = new FileNameExtensionFilter(
+ NbBundle.getMessage(this.getClass(), "HashDbManager.fileNameExtensionFilter.title"), EXTENSION);
fc.setFileFilter(filter);
fc.setMultiSelectionEnabled(false);
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
@@ -686,8 +715,8 @@ public class HashDbManager implements PropertyChangeListener {
* object should be classified.
*/
public enum KnownFilesType{
- KNOWN("Known"),
- KNOWN_BAD("Known Bad");
+ KNOWN(NbBundle.getMessage(HashDbManager.class, "HashDbManager.known.text")),
+ KNOWN_BAD(NbBundle.getMessage(HashDbManager.class, "HashDbManager.knownBad.text"));
private String displayName;
@@ -861,7 +890,8 @@ public class HashDbManager implements PropertyChangeListener {
@Override
protected Object doInBackground() {
hashDb.indexing = true;
- progress = ProgressHandleFactory.createHandle("Indexing " + hashDb.hashSetName);
+ progress = ProgressHandleFactory.createHandle(
+ NbBundle.getMessage(this.getClass(), "HashDbManager.progress.indexingHashSet", hashDb.hashSetName));
progress.start();
progress.switchToIndeterminate();
try {
@@ -869,7 +899,12 @@ public class HashDbManager implements PropertyChangeListener {
}
catch (TskCoreException ex) {
Logger.getLogger(HashDb.class.getName()).log(Level.SEVERE, "Error indexing hash database", ex);
- JOptionPane.showMessageDialog(null, "Error indexing " + hashDb.getHashSetName() + " hash database.", "Hash Database Indexing Error", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbManager.dlgMsg.errorIndexingHashSet",
+ hashDb.getHashSetName()),
+ NbBundle.getMessage(this.getClass(), "HashDbManager.hashDbIndexingErr"),
+ JOptionPane.ERROR_MESSAGE);
}
return null;
}
@@ -884,7 +919,10 @@ public class HashDbManager implements PropertyChangeListener {
}
catch (Exception e) {
logger.log(Level.SEVERE, "HashDbManager listener threw exception", e);
- MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to HashDbManager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR);
+ MessageNotifyUtil.Notify.show(
+ NbBundle.getMessage(this.getClass(), "HashDbManager.moduleErr"),
+ NbBundle.getMessage(this.getClass(), "HashDbManager.moduleErrorListeningToUpdatesMsg"),
+ MessageNotifyUtil.MessageType.ERROR);
}
}
}
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanelSearchAction.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanelSearchAction.java
index 8f260ac76e..732ad2908d 100644
--- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanelSearchAction.java
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanelSearchAction.java
@@ -25,6 +25,7 @@ import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
import org.openide.util.actions.CallableSystemAction;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.corecomponents.AdvancedConfigurationCleanDialog;
@@ -35,7 +36,7 @@ import org.sleuthkit.autopsy.corecomponents.AdvancedConfigurationCleanDialog;
*/
class HashDbPanelSearchAction extends CallableSystemAction {
- static final String ACTION_NAME = "File Search by MD5 Hash";
+ static final String ACTION_NAME = NbBundle.getMessage(HashDbPanelSearchAction.class, "HashDbPanelSearchAction.actionName");
private static HashDbPanelSearchAction instance = null;
HashDbPanelSearchAction() {
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchAction.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchAction.java
index 960efe949f..c02fba9f90 100644
--- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchAction.java
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchAction.java
@@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.hashdatabase;
import javax.swing.JOptionPane;
import org.openide.nodes.Node;
import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
import org.openide.util.actions.CallableSystemAction;
import org.sleuthkit.autopsy.datamodel.ContentUtils;
import org.sleuthkit.autopsy.directorytree.HashSearchProvider;
@@ -103,8 +104,11 @@ class HashDbSearchAction extends CallableSystemAction implements HashSearchProvi
if (HashDbSearcher.countFilesMd5Hashed() > 0) {
doSearch();
} else {
- JOptionPane.showMessageDialog(null, "No files currently have an MD5 hash calculated, run HashDB ingest first.",
- "File Search by MD5 Hash", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbSearchAction.dlgMsg.noFilesHaveMD5Calculated"),
+ NbBundle.getMessage(this.getClass(), "HashDbSearchAction.dlgMsg.title"),
+ JOptionPane.ERROR_MESSAGE);
}
}
@@ -115,7 +119,7 @@ class HashDbSearchAction extends CallableSystemAction implements HashSearchProvi
@Override
public String getName() {
- return "Hash Search";
+ return NbBundle.getMessage(this.getClass(), "HashDbSearchAction.getName.text");
}
@Override
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchManager.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchManager.java
index ffe2b99587..282dea1ac7 100644
--- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchManager.java
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchManager.java
@@ -26,6 +26,7 @@ import javax.swing.JOptionPane;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
+import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.sleuthkit.autopsy.corecomponents.DataResultTopComponent;
import org.sleuthkit.datamodel.AbstractFile;
@@ -78,11 +79,17 @@ import org.sleuthkit.datamodel.AbstractFile;
rootNode = Node.EMPTY;
}
- final String pathText = "MD5 Hash Search";
- TopComponent searchResultWin = DataResultTopComponent.createInstance("MD5 Hash Search", pathText, rootNode, kvCollection.size());
+ final String pathText = NbBundle.getMessage(this.getClass(), "HashDbSearchManager.MD5HashSearch");
+ TopComponent searchResultWin = DataResultTopComponent.createInstance(
+ NbBundle.getMessage(this.getClass(), "HashDbSearchManager.MD5HashSearch"),
+ pathText,
+ rootNode,
+ kvCollection.size());
+
searchResultWin.requestActive();
} else {
- JOptionPane.showMessageDialog(null, "No results were found.");
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(), "HashDbSearchManager.noResultsFoundMsg"));
}
}
}
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchPanel.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchPanel.java
index be291f91d2..9df96dd09e 100644
--- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchPanel.java
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSearchPanel.java
@@ -24,6 +24,8 @@ import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
+
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
@@ -56,10 +58,10 @@ import org.sleuthkit.autopsy.ingest.IngestManager;
boolean running = IngestManager.getDefault().isIngestRunning();
if(running) {
titleLabel.setForeground(Color.red);
- titleLabel.setText("Ingest is ongoing; this service will be unavailable until it finishes.");
+ titleLabel.setText(NbBundle.getMessage(this.getClass(), "HashDbSearchPanel.titleText.ingestOngoing"));
} else {
titleLabel.setForeground(Color.black);
- titleLabel.setText("Search for files with the following MD5 hash(es):");
+ titleLabel.setText(NbBundle.getMessage(this.getClass(), "HashDbSearchPanel.titleLabel.text"));
}
hashField.setEditable(!running);
searchButton.setEnabled(!running);
@@ -151,7 +153,7 @@ import org.sleuthkit.autopsy.ingest.IngestManager;
},
new String [] {
- "MD5 Hashes"
+ NbBundle.getMessage(this.getClass(), "HashDbSearchPanel.hashTable.columnModel.title0")
}
) {
Class[] types = new Class [] {
@@ -294,12 +296,15 @@ import org.sleuthkit.autopsy.ingest.IngestManager;
if(HashDbSearcher.countFilesMd5Hashed() > 0) {
return doSearch();
} else {
- JOptionPane.showMessageDialog(null, "No files currently have an MD5 hash.",
- "File Search by MD5 Hash", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null,
+ NbBundle.getMessage(this.getClass(),
+ "HashDbSearchPanel.noFilesHaveMD5HashMsg"),
+ NbBundle.getMessage(this.getClass(), "HashDbSearchPanel.dlgMsg.title"),
+ JOptionPane.ERROR_MESSAGE);
return false;
}
} else {
- errorField.setText("Error: No hashes have been added.");
+ errorField.setText(NbBundle.getMessage(this.getClass(), "HashDbSearchPanel.errorText.noHashesAddedMsg"));
errorField.setVisible(true);
return false;
}
@@ -331,7 +336,8 @@ import org.sleuthkit.autopsy.ingest.IngestManager;
for(int i=0; i {
logger.log(Level.INFO, "Starting background processing for file search by MD5 hash.");
// Setup progress bar
- final String displayName = "Searching";
+ final String displayName = NbBundle.getMessage(this.getClass(), "HashDbSearchThread.name.searching");
progress = ProgressHandleFactory.createHandle(displayName, new Cancellable() {
@Override
public boolean cancel() {
if (progress != null)
- progress.setDisplayName(displayName + " (Cancelling...)");
+ progress.setDisplayName(
+ NbBundle.getMessage(this.getClass(), "HashDbSearchThread.progress.cancellingSearch",
+ displayName));
return HashDbSearchThread.this.cancel(true);
}
});
@@ -97,7 +101,9 @@ class HashDbSearchThread extends SwingWorker