From 87144d9088f368808df109d28301c5d8b98f20c9 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Thu, 30 Jan 2014 10:26:45 -0500 Subject: [PATCH 01/90] zoom out bug fix --- .../org/sleuthkit/autopsy/timeline/Timeline.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index 190aa2a7d5..cd6f1d37d7 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -129,6 +129,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, private ComboBox fxDropdownSelectYears; //Dropdown box for selecting years. Useful when the charts' scale means some years are unclickable, despite having events. private final Stack> fxStackPrevCharts = new Stack>(); //Stack for storing drill-up information. private BarChart fxChartTopLevel; //the topmost chart, used for resetting to default view. + private BarChart fxMonthView; //the month chart private DataResultPanel dataResultPanel; private DataContentPanel dataContentPanel; private ProgressHandle progress; @@ -142,7 +143,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, private EventHandler fxMouseExitedListener; private SleuthkitCase skCase; private boolean fxInited = false; - + private int monthCounter = 0; public Timeline() { super(); @@ -277,7 +278,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, if (fxStackPrevCharts.size() == 0) { bc = fxChartTopLevel; } else { - bc = fxStackPrevCharts.pop(); + bc = fxStackPrevCharts.pop(); } fxChartEvents = bc; fxScrollEvents.setContent(fxChartEvents); @@ -410,7 +411,6 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, * Always 12 per year, empty months are represented by no bar. */ private BarChart createMonthsWithDrill(final YearEpoch ye) { - final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); xAxis.setLabel("Month (" + ye.year + ")"); @@ -465,7 +465,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, bc.autosize(); bc.setPrefWidth(FRAME_WIDTH); bc.setLegendVisible(false); - fxStackPrevCharts.push(bc); + fxMonthView= bc; return bc; } @@ -538,7 +538,13 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, }); } bc.autosize(); - bc.setPrefWidth(FRAME_WIDTH); + bc.setPrefWidth(FRAME_WIDTH); + monthCounter++; + if (monthCounter==12) + { + fxStackPrevCharts.push(fxMonthView); + monthCounter=0; + } return bc; } From 0d7abe2b1b0c1ad881479a2d507eb80c7c3fc238 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Mon, 3 Feb 2014 10:19:19 -0500 Subject: [PATCH 02/90] changed timezone and times to UTC for display --- Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index 190aa2a7d5..3aeaf07cdb 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -41,6 +41,7 @@ import java.util.List; import java.util.Locale; import java.util.Scanner; import java.util.Stack; +import java.util.TimeZone; import java.util.logging.Level; import javafx.application.Platform; import javafx.beans.value.ChangeListener; @@ -75,7 +76,6 @@ import org.openide.awt.ActionReference; import org.openide.awt.ActionReferences; import org.openide.awt.ActionRegistration; import org.openide.modules.InstalledFileLocator; -import org.openide.modules.ModuleInstall; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.util.HelpCtx; @@ -112,7 +112,7 @@ import org.sleuthkit.datamodel.TskCoreException; * */ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, PropertyChangeListener { - + private static final Logger logger = Logger.getLogger(Timeline.class.getName()); private final java.io.File macRoot = InstalledFileLocator.getDefault().locate("mactime", Timeline.class.getPackage().getName(), false); private TimelineFrame mainFrame; //frame for holding all the elements @@ -147,7 +147,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, super(); fxInited = Installer.isJavaFxInited(); - + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); //sets the default timezone to UTC unless otherwise stated } //Swing components and JavafX components don't play super well together From 2bf0f22002d86fb5ef9288d147c6f336bff29530 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Mon, 3 Feb 2014 13:06:21 -0500 Subject: [PATCH 03/90] added object ID column --- .../autopsy/datamodel/AbstractAbstractFileNode.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java index 6b3a8cbc54..e37bff7245 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java @@ -161,8 +161,14 @@ public abstract class AbstractAbstractFileNode extends A @Override public String toString() { return "MD5 Hash"; + } + }, + ObjectID { + @Override + public String toString() { + return "Object ID"; } - } + }, } @@ -201,6 +207,7 @@ public abstract class AbstractAbstractFileNode extends A map.put(AbstractFilePropertyType.KNOWN.toString(), content.getKnown().getName()); map.put(AbstractFilePropertyType.HASHSETS.toString(), getHashSetHitsForFile(content)); map.put(AbstractFilePropertyType.MD5HASH.toString(), content.getMd5Hash() == null ? "" : content.getMd5Hash()); + map.put(AbstractFilePropertyType.ObjectID.toString(), content.getId()); } From 4ded0acbf3ea5e534ee6510f187c5d106338b664 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Wed, 5 Feb 2014 16:58:45 -0500 Subject: [PATCH 04/90] Timeline bargraph now same as user timezone or GMT --- .../sleuthkit/autopsy/timeline/Timeline.java | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index db32c74fdc..f223d547bd 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -43,6 +43,7 @@ import java.util.Scanner; import java.util.Stack; import java.util.TimeZone; import java.util.logging.Level; +import java.util.prefs.Preferences; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; @@ -80,6 +81,7 @@ import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.Presenter; import org.openide.util.lookup.Lookups; @@ -100,7 +102,8 @@ import org.sleuthkit.autopsy.coreutils.ExecUtil; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.TskCoreException; - +import org.sleuthkit.autopsy.datamodel.ArtifactStringContent; +import org.sleuthkit.datamodel.Content; @ActionID(category = "Tools", id = "org.sleuthkit.autopsy.timeline.Timeline") @ActionRegistration(displayName = "#CTL_MakeTimeline", lazy = false) @ActionReferences(value = { @@ -147,7 +150,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, super(); fxInited = Installer.isJavaFxInited(); - TimeZone.setDefault(TimeZone.getTimeZone("UTC")); //sets the default timezone to UTC unless otherwise stated + // TimeZone.setDefault(TimeZone.getTimeZone("UTC")); //sets the default timezone to UTC unless otherwise stated } //Swing components and JavafX components don't play super well together @@ -914,17 +917,36 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, int prevYear = -1; YearEpoch ye = null; + while (scan.hasNextLine()) { String[] s = scan.nextLine().split(","); //1999-02-08T11:08:08Z, 78706, m..b, rrwxrwxrwx, 0, 0, 8355, /img... - // break the date into mon, day and year: Note that the ISO times are in GMT - String[] datetime = s[0].split("T"); //{1999-02-08, 11:08:08Z} - String[] date = datetime[0].split("-"); // {1999, 02, 08} + // break the date into year,month,day,hour,minute, and second: Note that the ISO times are in GMT + String delims = "[T:Z\\-]+"; + String[] date = s[0].split(delims); //{1999,02,08,11,08,08,...} + int year = Integer.valueOf(date[0]); int month = Integer.valueOf(date[1]) - 1; //Months are zero indexed: 1 = February, 6 = July, 11 = December int day = Integer.valueOf(date[2]); //Days are 1 indexed + int hour=Integer.valueOf(date[3]); + int minute=Integer.valueOf(date[4]); + int second=Integer.valueOf(date[5]); + + Preferences generalPanelPrefs = NbPreferences.root().node("/org/sleuthkit/autopsy/core"); //access Use GMT? checkbox + boolean useLocalTime = generalPanelPrefs.getBoolean("useLocalTime", true); - // get the object id out of the modified outpu + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); //set calendar to GMT due to ISO format + calendar.set(year, month, day, hour, minute, second); + day=calendar.get(Calendar.DAY_OF_MONTH); // this is needed or else timezone change wont work for some reason + //conversion to GMT + if (!useLocalTime) + { + calendar.setTimeZone(TimeZone.getTimeZone("GMT")); + } + else calendar.setTimeZone(TimeZone.getDefault());// local timezone OF the user. should be what the user SETS at startup + + day=calendar.get(Calendar.DAY_OF_MONTH);//get the day which may be affected by timezone change + long ObjId = Long.valueOf(s[4]); // when the year changes, create and add a new YearEpoch object to the list @@ -961,7 +983,6 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, // Get report path String bodyFilePath = moduleDir.getAbsolutePath() + java.io.File.separator + currentCase.getName() + "-" + datenotime + ".txt"; - // Run query to get all files final String filesAndDirs = "name != '.' " + "AND name != '..'"; From e64efe3587939aba827b86f57da257454349984b Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Thu, 6 Feb 2014 11:17:39 -0500 Subject: [PATCH 05/90] created methods to call localtime --- .../autopsy/corecomponents/GeneralPanel.form | 3 ++ .../autopsy/corecomponents/GeneralPanel.java | 11 ++++++ .../autopsy/datamodel/ContentUtils.java | 23 ++++++++--- .../sleuthkit/autopsy/timeline/Timeline.java | 39 ++++++++++++------- 4 files changed, 58 insertions(+), 18 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.form b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.form index a2c34ea3f8..432bd9b5c3 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.form +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.form @@ -148,6 +148,9 @@ + + + diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java index 2b702bef4b..3b3c77a876 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.corecomponents; import java.util.prefs.Preferences; import org.openide.util.NbPreferences; +import org.sleuthkit.autopsy.datamodel.ContentUtils; final class GeneralPanel extends javax.swing.JPanel { @@ -33,6 +34,7 @@ final class GeneralPanel extends javax.swing.JPanel { GeneralPanel(GeneralOptionsPanelController controller) { this.controller = controller; initComponents(); + ContentUtils.setLocalTime(useLocalTimeRB.isSelected()); // TODO listen to changes in form fields and call controller.changed() } @@ -80,6 +82,11 @@ final class GeneralPanel extends javax.swing.JPanel { buttonGroup3.add(useGMTTimeRB); org.openide.awt.Mnemonics.setLocalizedText(useGMTTimeRB, org.openide.util.NbBundle.getMessage(GeneralPanel.class, "GeneralPanel.useGMTTimeRB.text")); // NOI18N + useGMTTimeRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + useGMTTimeRBActionPerformed(evt); + } + }); org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(GeneralPanel.class, "GeneralPanel.jLabel3.text")); // NOI18N @@ -144,6 +151,10 @@ final class GeneralPanel extends javax.swing.JPanel { // TODO add your handling code here: }//GEN-LAST:event_useBestViewerRBActionPerformed + private void useGMTTimeRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useGMTTimeRBActionPerformed + ContentUtils.setLocalTime(useLocalTimeRB.isSelected()); + }//GEN-LAST:event_useGMTTimeRBActionPerformed + void load() { boolean keepPreferredViewer = prefs.getBoolean(KEEP_PREFERRED_VIEWER, false); keepCurrentViewerRB.setSelected(keepPreferredViewer); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java index 121b5a1cfa..3dee14bff4 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java @@ -50,7 +50,7 @@ public final class ContentUtils { private final static Logger logger = Logger.getLogger(ContentUtils.class.getName()); private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); private static final SimpleDateFormat dateFormatterISO8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); - + private static boolean localTime; // don't instantiate private ContentUtils() { throw new AssertionError(); @@ -104,12 +104,11 @@ public final class ContentUtils { public static String getStringTimeISO8601(long epochSeconds, Content c) { return getStringTimeISO8601(epochSeconds, getTimeZone(c)); } - + public static TimeZone getTimeZone(Content c) { - Preferences generalPanelPrefs = NbPreferences.root().node("/org/sleuthkit/autopsy/core"); - boolean useLocalTime = generalPanelPrefs.getBoolean("useLocalTime", true); + try { - if (!useLocalTime) { + if (!localTime()) { return TimeZone.getTimeZone("GMT"); } else { @@ -360,4 +359,18 @@ public final class ContentUtils { + cntnt.getClass().getSimpleName()); } } + /**sets localTime value based on button in GeneralPanel.java + * + * @param flag + */ + public static void setLocalTime(boolean flag) { + localTime = flag; + } + /** returns true if local time is selected. + * returns false if GMT is selected. + * @return + */ + public static boolean localTime(){ + return localTime; + } } diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index f223d547bd..952e907562 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -99,11 +99,11 @@ import org.sleuthkit.autopsy.datamodel.DisplayableItemNodeVisitor; import org.sleuthkit.autopsy.datamodel.FileNode; import org.sleuthkit.autopsy.ingest.IngestManager; import org.sleuthkit.autopsy.coreutils.ExecUtil; +import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.TskCoreException; -import org.sleuthkit.autopsy.datamodel.ArtifactStringContent; -import org.sleuthkit.datamodel.Content; + @ActionID(category = "Tools", id = "org.sleuthkit.autopsy.timeline.Timeline") @ActionRegistration(displayName = "#CTL_MakeTimeline", lazy = false) @ActionReferences(value = { @@ -145,7 +145,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, private EventHandler fxMouseExitedListener; private SleuthkitCase skCase; private boolean fxInited = false; - + private static boolean localTime = true; public Timeline() { super(); @@ -922,7 +922,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, String[] s = scan.nextLine().split(","); //1999-02-08T11:08:08Z, 78706, m..b, rrwxrwxrwx, 0, 0, 8355, /img... // break the date into year,month,day,hour,minute, and second: Note that the ISO times are in GMT - String delims = "[T:Z\\-]+"; + String delims = "[T:Z\\-]+"; //split by the delimiters String[] date = s[0].split(delims); //{1999,02,08,11,08,08,...} int year = Integer.valueOf(date[0]); @@ -932,21 +932,20 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, int minute=Integer.valueOf(date[4]); int second=Integer.valueOf(date[5]); - Preferences generalPanelPrefs = NbPreferences.root().node("/org/sleuthkit/autopsy/core"); //access Use GMT? checkbox - boolean useLocalTime = generalPanelPrefs.getBoolean("useLocalTime", true); - + setLocalTime(localTime); Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); //set calendar to GMT due to ISO format calendar.set(year, month, day, hour, minute, second); - day=calendar.get(Calendar.DAY_OF_MONTH); // this is needed or else timezone change wont work for some reason + day=calendar.get(Calendar.DAY_OF_MONTH); // this is needed or else timezone change wont work. probably incorrect optimization by compiler + //conversion to GMT - if (!useLocalTime) - { + if (!localTime()) { calendar.setTimeZone(TimeZone.getTimeZone("GMT")); } - else calendar.setTimeZone(TimeZone.getDefault());// local timezone OF the user. should be what the user SETS at startup + else{ + calendar.setTimeZone(TimeZone.getDefault());// local timezone OF the user. should be what the user SETS at startup + } day=calendar.get(Calendar.DAY_OF_MONTH);//get the day which may be affected by timezone change - long ObjId = Long.valueOf(s[4]); // when the year changes, create and add a new YearEpoch object to the list @@ -1128,7 +1127,21 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, public void performAction() { initTimeline(); } - + + /**set localTime by getting it from ContentUtils class + * + * @param flag + */ + public static void setLocalTime(boolean flag) { + localTime = ContentUtils.localTime(); + } + /**returns whether user has set localTime settings, or GMT if false + * + * @return + */ + public static boolean localTime() { + return localTime; + } private void initTimeline() { if (!Case.existsCurrentCase()) { return; From e16ef6082cbb31e7e6a25bd732cd0b891799f4d6 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\tshahi" Date: Fri, 7 Feb 2014 13:26:17 -0500 Subject: [PATCH 06/90] renamed variables and functions for timezone check --- .../autopsy/corecomponents/GeneralPanel.java | 4 ++-- .../autopsy/datamodel/ContentUtils.java | 18 +++++++++--------- .../sleuthkit/autopsy/timeline/Timeline.java | 19 ++----------------- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java index 3b3c77a876..3d697b07ab 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralPanel.java @@ -34,7 +34,7 @@ final class GeneralPanel extends javax.swing.JPanel { GeneralPanel(GeneralOptionsPanelController controller) { this.controller = controller; initComponents(); - ContentUtils.setLocalTime(useLocalTimeRB.isSelected()); + ContentUtils.setDisplayInLocalTime(useLocalTimeRB.isSelected()); // TODO listen to changes in form fields and call controller.changed() } @@ -152,7 +152,7 @@ final class GeneralPanel extends javax.swing.JPanel { }//GEN-LAST:event_useBestViewerRBActionPerformed private void useGMTTimeRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useGMTTimeRBActionPerformed - ContentUtils.setLocalTime(useLocalTimeRB.isSelected()); + ContentUtils.setDisplayInLocalTime(useLocalTimeRB.isSelected()); }//GEN-LAST:event_useGMTTimeRBActionPerformed void load() { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java index 3dee14bff4..9cc844cae6 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java @@ -50,7 +50,7 @@ public final class ContentUtils { private final static Logger logger = Logger.getLogger(ContentUtils.class.getName()); private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); private static final SimpleDateFormat dateFormatterISO8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); - private static boolean localTime; + private static boolean displayInLocalTime; // don't instantiate private ContentUtils() { throw new AssertionError(); @@ -108,7 +108,7 @@ public final class ContentUtils { public static TimeZone getTimeZone(Content c) { try { - if (!localTime()) { + if (!getDisplayInLocalTime()) { return TimeZone.getTimeZone("GMT"); } else { @@ -359,18 +359,18 @@ public final class ContentUtils { + cntnt.getClass().getSimpleName()); } } - /**sets localTime value based on button in GeneralPanel.java + /**sets displayInlocalTime value based on button in GeneralPanel.java * * @param flag */ - public static void setLocalTime(boolean flag) { - localTime = flag; + public static void setDisplayInLocalTime(boolean flag) { + displayInLocalTime = flag; } - /** returns true if local time is selected. - * returns false if GMT is selected. + /** get global timezone setting for displaying time values + * * @return */ - public static boolean localTime(){ - return localTime; + public static boolean getDisplayInLocalTime(){ + return displayInLocalTime; } } diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index 952e907562..675bfc318f 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -145,7 +145,6 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, private EventHandler fxMouseExitedListener; private SleuthkitCase skCase; private boolean fxInited = false; - private static boolean localTime = true; public Timeline() { super(); @@ -932,13 +931,13 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, int minute=Integer.valueOf(date[4]); int second=Integer.valueOf(date[5]); - setLocalTime(localTime); Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); //set calendar to GMT due to ISO format calendar.set(year, month, day, hour, minute, second); day=calendar.get(Calendar.DAY_OF_MONTH); // this is needed or else timezone change wont work. probably incorrect optimization by compiler //conversion to GMT - if (!localTime()) { + + if (!ContentUtils.getDisplayInLocalTime()) { calendar.setTimeZone(TimeZone.getTimeZone("GMT")); } else{ @@ -1128,20 +1127,6 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, initTimeline(); } - /**set localTime by getting it from ContentUtils class - * - * @param flag - */ - public static void setLocalTime(boolean flag) { - localTime = ContentUtils.localTime(); - } - /**returns whether user has set localTime settings, or GMT if false - * - * @return - */ - public static boolean localTime() { - return localTime; - } private void initTimeline() { if (!Case.existsCurrentCase()) { return; From 6b5b8cf0aa64534463fbe335b3c3878fa8da43ec Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 11 Feb 2014 13:39:22 -0500 Subject: [PATCH 07/90] Added a command to switch report to HTML instead of XML format. --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index 6d6c078280..49a501c8eb 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -299,10 +299,13 @@ public class RegressionTest extends TestCase { logger.info("Generate Report Button"); JDialog reportDialog = JDialogOperator.waitJDialog("Generate Report", false, false); JDialogOperator reportDialogOperator = new JDialogOperator(reportDialog); + JListOperator listOperator = new JListOperator(reportDialogOperator); JButtonOperator jbo0 = new JButtonOperator(reportDialogOperator, "Next"); DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy-HH-mm-ss"); Date date = new Date(); String datenotime = dateFormat.format(date); + listOperator.clickOnItem(2, 1); + new Timeout("pausing", 1000).sleep() jbo0.pushNoBlock(); new Timeout("pausing", 1000).sleep(); JButtonOperator jbo1 = new JButtonOperator(reportDialogOperator, "Finish"); From ece9456d029b8a4fe9105921a41f2430da1da21a Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 11 Feb 2014 13:46:40 -0500 Subject: [PATCH 08/90] Fixing a syntax error. --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index 49a501c8eb..35f96c96c4 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -305,7 +305,7 @@ public class RegressionTest extends TestCase { Date date = new Date(); String datenotime = dateFormat.format(date); listOperator.clickOnItem(2, 1); - new Timeout("pausing", 1000).sleep() + new Timeout("pausing", 1000).sleep(); jbo0.pushNoBlock(); new Timeout("pausing", 1000).sleep(); JButtonOperator jbo1 = new JButtonOperator(reportDialogOperator, "Finish"); From 8f8fe23bdb4e3a0427ce6007ac933d42419a3320 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 11 Feb 2014 13:55:53 -0500 Subject: [PATCH 09/90] One more fixed syntax error. --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index 35f96c96c4..186be10a90 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -56,6 +56,7 @@ import org.netbeans.jemmy.operators.JLabelOperator; import org.netbeans.jemmy.operators.JTabbedPaneOperator; import org.netbeans.jemmy.operators.JTableOperator; import org.netbeans.jemmy.operators.JTextFieldOperator; +import org.netbeans.jemmy.operators.JListOperator; import org.netbeans.junit.NbModuleSuite; import org.openide.util.Exceptions; import org.sleuthkit.autopsy.ingest.IngestManager; From 41e0695bf212fdeaea3002f8eb2a64e7bc659bb5 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 11 Feb 2014 15:28:18 -0500 Subject: [PATCH 10/90] Matching develop branch UI. --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index 186be10a90..fff49b76e6 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -305,7 +305,7 @@ public class RegressionTest extends TestCase { DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy-HH-mm-ss"); Date date = new Date(); String datenotime = dateFormat.format(date); - listOperator.clickOnItem(2, 1); + listOperator.clickOnItem(1, 1); new Timeout("pausing", 1000).sleep(); jbo0.pushNoBlock(); new Timeout("pausing", 1000).sleep(); From 6d1ccd6b34bdc3d6629e9a2bae02d9d046a86faf Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 21 Feb 2014 16:03:39 -0500 Subject: [PATCH 11/90] Pulled static strings into Bundle.properties. Added empty ja properties file. --- .../corecomponentinterfaces/Bundle.properties | 2 ++ .../Bundle_ja.properties | 0 .../CoreComponentControl.java | 24 +++++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle.properties index 1468238a77..a1c78ba931 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle.properties @@ -1 +1,3 @@ OpenIDE-Module-Name=CoreComponentInterfaces +CoreComponentControl.CTL_DirectoryTreeTopComponent=Directory Tree +CoreComponentControl.CTL_FavoritesTopComponent=Favorites diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/CoreComponentControl.java b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/CoreComponentControl.java index 2ada97d001..43b3c63629 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/CoreComponentControl.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/CoreComponentControl.java @@ -22,6 +22,8 @@ import java.util.Collection; import java.util.Iterator; import java.util.Set; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.util.Lookup; import org.openide.windows.Mode; @@ -37,6 +39,10 @@ import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent; public class CoreComponentControl { private static final Logger logger = Logger.getLogger(CoreComponentControl.class.getName()); + private static final String DIRECTORY_TREE = NbBundle.getMessage(CoreComponentControl.class, + "CoreComponentControl.CTL_DirectoryTreeTopComponent"); + private static final String FAVORITES = NbBundle.getMessage(CoreComponentControl.class, + "CoreComponentControl.CTL_FavoritesTopComponent"); /** * Opens all TopComponent windows that are needed ({@link DataExplorer}, {@link DataResult}, and @@ -83,6 +89,7 @@ public class CoreComponentControl { Set modes = wm.getModes(); Iterator iter = wm.getModes().iterator(); + TopComponent directoryTree = null; TopComponent favorites = null; String tcName = ""; @@ -94,16 +101,13 @@ public class CoreComponentControl { logger.log(Level.INFO, "tcName was null"); tcName = ""; } - switch (tcName) { - case "Directory Tree": - directoryTree = tc; - break; - case "Favorites": - favorites = tc; - break; - default: - tc.close(); - break; + // switch requires constant strings, so converted to if/else. + if (DIRECTORY_TREE.equals(tcName)) { + directoryTree = tc; + } else if (FAVORITES.equals(tcName)) { + favorites = tc; + } else { + tc.close(); } } } From 9e21f77fa1f9add53ed358f333ded3ebcaa28018 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 21 Feb 2014 16:46:16 -0500 Subject: [PATCH 12/90] Pulled static strings into Bundle.properties. Added empty ja properties file. --- .../autopsy/contentviewers/Bundle.properties | 16 +++++++++ .../contentviewers/Bundle_ja.properties | 0 .../autopsy/contentviewers/Metadata.java | 35 ++++++++++--------- 3 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties create mode 100644 Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties new file mode 100644 index 0000000000..a8565de787 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties @@ -0,0 +1,16 @@ +Metadata.tableRowTitle.name=Name +Metadata.tableRowTitle.size=Size +Metadata.tableRowTitle.fileNameAlloc=File Name Allocation +Metadata.tableRowTitle.metadataAlloc=Metadata Allocation +Metadata.tableRowTitle.modified=Modified +Metadata.tableRowTitle.accessed=Accessed +Metadata.tableRowTitle.created=Created +Metadata.tableRowTitle.changed=Changed +Metadata.tableRowContent.md5notCalc=Not calculated +Metadata.tableRowTitle.md5=MD5 +Metadata.tableRowTitle.hashLookupResults=Hash Lookup Results +Metadata.tableRowTitle.internalid=Internal ID +Metadata.tableRowTitle.localPath=Local Path +Metadata.title=Metadata +Metadata.toolTip=Displays metadata about the file. +Metadata.nodeText.nonFilePassedIn=Non-file passed in \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Metadata.java b/Core/src/org/sleuthkit/autopsy/contentviewers/Metadata.java index 20de49affd..ab29df1d2b 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Metadata.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Metadata.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.contentviewers; import java.awt.Component; import org.openide.nodes.Node; +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer; import org.sleuthkit.autopsy.datamodel.AbstractAbstractFileNode; @@ -122,7 +123,7 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer public void setNode(Node node) { AbstractFile file = node.getLookup().lookup(AbstractFile.class); if (file == null) { - setText("Non-file passed in"); + setText(NbBundle.getMessage(this.getClass(), "Metadata.nodeText.nonFilePassedIn")); return; } @@ -130,29 +131,29 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer startTable(sb); try { - addRow(sb, "Name", file.getUniquePath()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.name"), file.getUniquePath()); } catch (TskCoreException ex) { - addRow(sb, "Name", file.getParentPath() + "/" + file.getName()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.name"), file.getParentPath() + "/" + file.getName()); } - addRow(sb, "Size", new Long(file.getSize()).toString() ); - addRow(sb, "File Name Allocation", file.getDirFlagAsString()); - addRow(sb, "Metadata Allocation", file.getMetaFlagsAsString()); - addRow(sb, "Modified", ContentUtils.getStringTime(file.getMtime(), file)); - addRow(sb, "Accessed", ContentUtils.getStringTime(file.getAtime(), file)); - addRow(sb, "Created", ContentUtils.getStringTime(file.getCrtime(), file)); - addRow(sb, "Changed", ContentUtils.getStringTime(file.getCtime(), file)); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.size"), new Long(file.getSize()).toString() ); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.fileNameAlloc"), file.getDirFlagAsString()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.metadataAlloc"), file.getMetaFlagsAsString()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.modified"), ContentUtils.getStringTime(file.getMtime(), file)); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.accessed"), ContentUtils.getStringTime(file.getAtime(), file)); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.created"), ContentUtils.getStringTime(file.getCrtime(), file)); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.changed"), ContentUtils.getStringTime(file.getCtime(), file)); String md5 = file.getMd5Hash(); if (md5 == null) { - md5 = "Not calculated"; + md5 = NbBundle.getMessage(this.getClass(), "Metadata.tableRowContent.md5notCalc"); } - addRow(sb, "MD5", md5); - addRow(sb, "Hash Lookup Results", file.getKnown().toString()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.md5"), md5); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.hashLookupResults"), file.getKnown().toString()); - addRow(sb, "Internal ID", new Long(file.getId()).toString()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.internalid"), new Long(file.getId()).toString()); if (file.getType().compareTo(TSK_DB_FILES_TYPE_ENUM.LOCAL) == 0) { - addRow(sb, "Local Path", file.getLocalAbsPath()); + addRow(sb, NbBundle.getMessage(this.getClass(), "Metadata.tableRowTitle.localPath"), file.getLocalAbsPath()); } endTable(sb); @@ -161,12 +162,12 @@ public class Metadata extends javax.swing.JPanel implements DataContentViewer @Override public String getTitle() { - return "Metadata"; + return NbBundle.getMessage(this.getClass(), "Metadata.title"); } @Override public String getToolTip() { - return "Displays metadata about the file."; + return NbBundle.getMessage(this.getClass(), "Metadata.toolTip"); } @Override From 79b4e2e6483ceff7975069d15289b03d8cce726e Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 21 Feb 2014 17:47:05 -0500 Subject: [PATCH 13/90] Pulled static strings into Bundle.properties. First half of classes completed. --- .../autopsy/corecomponents/Bundle.properties | 32 +++++++++++++++++++ .../DataContentViewerArtifact.java | 10 +++--- .../corecomponents/DataContentViewerHex.java | 24 ++++++++------ .../DataContentViewerMedia.java | 6 ++-- .../DataContentViewerString.java | 29 +++++++++++------ .../corecomponents/DataResultPanel.java | 8 +++-- .../corecomponents/DataResultViewerTable.java | 17 ++++++---- .../DataResultViewerThumbnail.java | 20 +++++++++--- .../autopsy/corecomponents/FXVideoPanel.java | 11 ++++--- 9 files changed, 114 insertions(+), 43 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index 1cefe19010..e1189cfa69 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -112,3 +112,35 @@ GeneralPanel.useGMTTimeRB.text=Use GMT GeneralPanel.jLabel3.text=Hide known files in the Directory Listing when: GeneralPanel.viewsHideKnownCB.text=Selecting under Views GeneralPanel.dataSourcesHideKnownCB.text=Selecting under Data Sources +DataContentViewerArtifact.waitText=Retrieving and preparing data, please wait... +DataContentViewerArtifact.errorText=Error retrieving result +DataContentViewerArtifact.title=Results +DataContentViewerArtifact.toolTip=Displays Results associated with the file +DataContentViewerHex.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0} +DataContentViewerHex.goToPageTextField.err=Invalid page number +DataContentViewerHex.setDataView.errorText=(offset {0}-{1} could not be read) +DataContentViewerHex.title=Hex +DataContentViewerHex.toolTip=Displays the binary contents of a file as hexidecimal, with bytes that are displayable as ASCII characters on the right. +DataContentViewerMedia.title=Media +DataContentViewerMedia.toolTip=Displays supported multimedia files (images, videos, audio) +DataContentViewerString.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0} +DataContentViewerString.goToPageTextField.err=Invalid page number +DataContentViewerString.setDataView.errorText=(offset {0}-{1} could not be read) +DataContentViewerString.setDataView.errorNoText=(offset {0}-{1} contains no text) +DataContentViewerString.title=Strings +DataContentViewerString.toolTip=Displays ASCII and Unicode strings extracted from the file. +DataResultPanel.dummyNodeDisplayName=Please Wait... +DataResultViewerTable.firstColLbl=Name +DataResultViewerTable.illegalArgExc.noChildFromParent=Couldn't get a child Node from the given parent. +DataResultViewerTable.illegalArgExc.childWithoutPropertySet=Child Node doesn't have the regular PropertySet. +DataResultViewerTable.title=Table +DataResultViewerTable.dummyNodeDisplayName=Please Wait... +DataResultViewerThumbnail.title=Thumbnail +DataResultViewerThumbnail.goToPageTextField.msgDlg=Please enter a valid page number between 1 and {0} +DataResultViewerThumbnail.goToPageTextField.err=Invalid page number +DataResultViewerThumbnail.genThumbs=Generating Thumbnails... +DataResultViewerThumbnail.pageNumbers.curOfTotal={0} of {1} +FXVideoPanel.mediaPane.infoLabel=Playback of deleted videos is not supported, use an external player. +FXVideoPanel.progress.bufferingFile=Buffering {0} +FXVideoPanel.progressLabel.buffering=Buffering... +FXVideoPanel.media.unsupportedFormat=Unsupported Format. diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java index f979f74688..4cc0e394a6 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java @@ -27,6 +27,8 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JMenuItem; import javax.swing.JTextPane; @@ -53,8 +55,8 @@ import org.sleuthkit.datamodel.TskCoreException; public class DataContentViewerArtifact extends javax.swing.JPanel implements DataContentViewer{ private final static Logger logger = Logger.getLogger(DataContentViewerArtifact.class.getName()); - private final static String WAIT_TEXT = "Retrieving and preparing data, please wait..."; - private final static String ERROR_TEXT = "Error retrieving result"; + private final static String WAIT_TEXT = NbBundle.getMessage(DataContentViewerArtifact.class, "DataContentViewerArtifact.waitText"); + private final static String ERROR_TEXT = NbBundle.getMessage(DataContentViewerArtifact.class, "DataContentViewerArtifact.errorText"); private Node currentNode; // @@@ Remove this when the redundant setNode() calls problem is fixed. private int currentPage = 1; private final Object lock = new Object(); @@ -288,12 +290,12 @@ public class DataContentViewerArtifact extends javax.swing.JPanel implements Dat @Override public String getTitle() { - return "Results"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerArtifact.title"); } @Override public String getToolTip() { - return "Displays Results associated with the file"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerArtifact.toolTip"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerHex.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerHex.java index 0e28a337f8..fbf63346fb 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerHex.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerHex.java @@ -23,6 +23,8 @@ import java.awt.Cursor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JMenuItem; import javax.swing.JOptionPane; @@ -257,8 +259,13 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont pageNumber = totalPages + 1; } if (pageNumber > totalPages || pageNumber < 1) { - JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + totalPages, - "Invalid page number", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "DataContentViewerHex.goToPageTextField.msgDlg", + totalPages), + NbBundle.getMessage(this.getClass(), + "DataContentViewerHex.goToPageTextField.err"), + JOptionPane.WARNING_MESSAGE); return; } setDataView(pageNumber); @@ -309,16 +316,16 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont try { bytesRead = dataSource.read(data, offset, pageLength); // read the data } catch (TskException ex) { - errorText = "(offset " + offset + "-" + (offset + pageLength) - + " could not be read)"; + errorText = NbBundle.getMessage(this.getClass(), "DataContentViewerHex.setDataView.errorText", offset, + offset + pageLength); logger.log(Level.WARNING, "Error while trying to show the hex content.", ex); } } // set the data on the bottom and show it if (bytesRead <= 0) { - errorText = "(offset " + offset + "-" + (offset + pageLength) - + " could not be read)"; + errorText = NbBundle.getMessage(this.getClass(), "DataContentViewerHex.setDataView.errorText", offset, + offset + pageLength); } @@ -378,13 +385,12 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont @Override public String getTitle() { - return "Hex"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerHex.title"); } @Override public String getToolTip() { - return "Displays the binary contents of a file as hexidecimal, with " - + "bytes that are displayable as ASCII characters on the right."; + return NbBundle.getMessage(this.getClass(), "DataContentViewerHex.toolTip"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java index 7bd6c0d1cd..d7a2c63814 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java @@ -24,6 +24,8 @@ import java.awt.Dimension; import java.util.Arrays; import java.util.logging.Level; import javax.imageio.ImageIO; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.Node; import org.openide.util.lookup.ServiceProvider; @@ -164,12 +166,12 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo @Override public String getTitle() { - return "Media"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerMedia.title"); } @Override public String getToolTip() { - return "Displays supported multimedia files (images, videos, audio)"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerMedia.toolTip"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerString.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerString.java index 5223f61920..98dc842a1d 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerString.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerString.java @@ -24,6 +24,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JMenuItem; import javax.swing.JOptionPane; @@ -286,8 +288,13 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC pageNumber = maxPage + 1; } if (pageNumber > maxPage || pageNumber < 1) { - JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + maxPage, - "Invalid page number", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "DataContentViewerString.goToPageTextField.msgDlg", + maxPage), + NbBundle.getMessage(this.getClass(), + "DataContentViewerString.goToPageTextField.err"), + JOptionPane.WARNING_MESSAGE); return; } currentOffset = (pageNumber - 1) * pageLength; @@ -346,8 +353,9 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC try { bytesRead = dataSource.read(data, offset, pageLength); // read the data } catch (TskException ex) { - text = "(offset " + currentOffset + "-" + (currentOffset + pageLength) - + " could not be read)"; + text = NbBundle.getMessage(this.getClass(), + "DataContentViewerString.setDataView.errorText", currentOffset, + currentOffset + pageLength); logger.log(Level.WARNING, "Error while trying to show the String content.", ex); } } @@ -359,12 +367,13 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC StringExtractResult res = stringExtract.extract(data, bytesRead, 0); text = res.getText(); if (text.trim().isEmpty()) { - text = "(offset " + currentOffset + "-" + (currentOffset + pageLength) - + " contains no text)"; + text = NbBundle.getMessage(this.getClass(), + "DataContentViewerString.setDataView.errorNoText", currentOffset, + currentOffset + pageLength); } } else { - text = "(offset " + currentOffset + "-" + (currentOffset + pageLength) - + " could not be read)"; + text = NbBundle.getMessage(this.getClass(), "DataContentViewerString.setDataView.errorText", currentOffset, + currentOffset + pageLength); } // disable or enable the next button @@ -459,12 +468,12 @@ public class DataContentViewerString extends javax.swing.JPanel implements DataC @Override public String getTitle() { - return "Strings"; + return NbBundle.getMessage(this.getClass(), "DataContentViewerString.title"); } @Override public String getToolTip() { - return "Displays ASCII and Unicode strings extracted from the file."; + return NbBundle.getMessage(this.getClass(), "DataContentViewerString.toolTip"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java index eb5ecf409b..9bd06d8718 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java @@ -36,6 +36,7 @@ import org.openide.nodes.NodeListener; import org.openide.nodes.NodeMemberEvent; import org.openide.nodes.NodeReorderEvent; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.corecomponentinterfaces.DataContent; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult; @@ -67,8 +68,9 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C private final DummyNodeListener dummyNodeListener = new DummyNodeListener(); private static final Logger logger = Logger.getLogger(DataResultPanel.class.getName() ); - private boolean listeningToTabbedPane = false; - + private boolean listeningToTabbedPane = false; + private static final String DUMMY_NODE_DISPLAY_NAME = NbBundle.getMessage(DataResultPanel.class, + "DataResultPanel.dummyNodeDisplayName"); /** * Creates new DataResultPanel * Default constructor, needed mostly for the palette/UI builder @@ -619,7 +621,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C } private class DummyNodeListener implements NodeListener { - private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait..."; + private volatile boolean load = true; public void reset() { diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java index 6cde1ad2a2..958a0da2ca 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerTable.java @@ -29,6 +29,8 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JTable; import javax.swing.ListSelectionModel; @@ -57,10 +59,11 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; //@ServiceProvider(service = DataResultViewer.class) public class DataResultViewerTable extends AbstractDataResultViewer { - private String firstColumnLabel = "Name"; + private String firstColumnLabel = NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.firstColLbl"); private Set propertiesAcc = new LinkedHashSet<>(); private static final Logger logger = Logger.getLogger(DataResultViewerTable.class.getName()); private final DummyNodeListener dummyNodeListener = new DummyNodeListener(); + private static final String DUMMY_NODE_DISPLAY_NAME = NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.dummyNodeDisplayName"); /** * Creates a DataResultViewerTable object that is compatible with node @@ -154,7 +157,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; Node firstChild = parent.getChildren().getNodeAt(0); if (firstChild == null) { - throw new IllegalArgumentException("Couldn't get a child Node from the given parent."); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.noChildFromParent")); } else { for (PropertySet ps : firstChild.getPropertySets()) { if (ps.getName().equals(Sheet.PROPERTIES)) { @@ -162,7 +166,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; } } - throw new IllegalArgumentException("Child Node doesn't have the regular PropertySet."); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.childWithoutPropertySet")); } } @@ -180,7 +185,8 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; Property[] properties = null; if (firstChild == null) { - throw new IllegalArgumentException("Couldn't get a child Node from the given parent."); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "DataResultViewerTable.illegalArgExc.noChildFromParent")); } else { Set allProperties = new LinkedHashSet(); while (firstChild != null) { @@ -406,7 +412,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; @Override public String getTitle() { - return "Table"; + return NbBundle.getMessage(this.getClass(), "DataResultViewerTable.title"); } @Override @@ -477,7 +483,6 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; } private class DummyNodeListener implements NodeListener { - private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait..."; private volatile boolean load = true; public void reset() { diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerThumbnail.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerThumbnail.java index bdbe02a4f1..a98298223e 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerThumbnail.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultViewerThumbnail.java @@ -26,6 +26,8 @@ import java.beans.PropertyChangeListener; import java.util.Arrays; import java.util.logging.Level; import javax.swing.JOptionPane; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.ListSelectionModel; import javax.swing.SwingWorker; @@ -327,7 +329,7 @@ import org.sleuthkit.datamodel.TskCoreException; @Override public String getTitle() { - return "Thumbnail"; + return NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.title"); } @Override @@ -380,8 +382,13 @@ import org.sleuthkit.datamodel.TskCoreException; } if (newPage > totalPages || newPage < 1) { - JOptionPane.showMessageDialog(this, "Please enter a valid page number between 1 and " + totalPages, - "Invalid page number", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "DataResultViewerThumbnail.goToPageTextField.msgDlg", + totalPages), + NbBundle.getMessage(this.getClass(), + "DataResultViewerThumbnail.goToPageTextField.err"), + JOptionPane.WARNING_MESSAGE); return; } @@ -407,7 +414,8 @@ import org.sleuthkit.datamodel.TskCoreException; pagePrevButton.setEnabled(false); pageNextButton.setEnabled(false); goToPageField.setEnabled(false); - progress = ProgressHandleFactory.createHandle("Generating Thumbnails..."); + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.genThumbs")); progress.start(); progress.switchToIndeterminate(); Node root = em.getRootContext(); @@ -435,7 +443,9 @@ import org.sleuthkit.datamodel.TskCoreException; pageNumLabel.setText(""); imagesRangeLabel.setText(""); } else { - pageNumLabel.setText(Integer.toString(curPage) + " of " + Integer.toString(totalPages)); + pageNumLabel.setText( + NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.pageNumbers.curOfTotal", + Integer.toString(curPage), Integer.toString(totalPages))); final int imagesFrom = (curPage - 1) * ThumbnailViewChildren.IMAGES_PER_PAGE + 1; final int imagesTo = curPageImages + (curPage - 1) * ThumbnailViewChildren.IMAGES_PER_PAGE; imagesRangeLabel.setText(imagesFrom + "-" + imagesTo); diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/FXVideoPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/FXVideoPanel.java index 584b140934..12156aad2c 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/FXVideoPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/FXVideoPanel.java @@ -62,6 +62,7 @@ import javax.swing.SwingWorker; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; import org.openide.util.Cancellable; +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.openide.util.lookup.ServiceProviders; import org.sleuthkit.autopsy.casemodule.Case; @@ -139,7 +140,7 @@ public class FXVideoPanel extends MediaViewVideoPanel { currentFile = file; final boolean deleted = file.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC); if (deleted) { - mediaPane.setInfoLabelText("Playback of deleted videos is not supported, use an external player."); + mediaPane.setInfoLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.mediaPane.infoLabel")); removeAll(); return; } @@ -242,13 +243,15 @@ public class FXVideoPanel extends MediaViewVideoPanel { @Override protected Object doInBackground() throws Exception { success = false; - progress = ProgressHandleFactory.createHandle("Buffering " + sFile.getName(), new Cancellable() { + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "FXVideoPanel.progress.bufferingFile", sFile.getName()), + new Cancellable() { @Override public boolean cancel() { return ExtractMedia.this.cancel(true); } }); - mediaPane.setProgressLabelText("Buffering... "); + mediaPane.setProgressLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.progressLabel.buffering")); progress.start(); progress.switchToDeterminate(100); try { @@ -394,7 +397,7 @@ public class FXVideoPanel extends MediaViewVideoPanel { mediaView.setMediaPlayer(mediaPlayer); } catch (MediaException ex) { this.setProgressLabelText(""); - this.setInfoLabelText("Unsupported Format."); + this.setInfoLabelText(NbBundle.getMessage(this.getClass(), "FXVideoPanel.media.unsupportedFormat")); } } From c7abd17c07d570064b22571e99c6d48422510dcf Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 24 Feb 2014 12:20:59 -0500 Subject: [PATCH 14/90] Pulled static strings into Bundle.properties. Remaining classes completed. Added empty Bundle_ja.properties. --- .../autopsy/corecomponents/Bundle.properties | 61 +++++++++---------- .../corecomponents/Bundle_ja.properties | 0 .../GeneralOptionsPanelController.java | 14 ++++- .../autopsy/corecomponents/GstVideoPanel.java | 33 +++++----- .../corecomponents/MediaViewImagePanel.java | 6 +- .../ProductInformationPanel.java | 32 +++++++--- .../corecomponents/TableFilterNode.java | 3 +- 7 files changed, 89 insertions(+), 60 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index e1189cfa69..cb4c57a920 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -1,38 +1,14 @@ CTL_DataContentAction=DataContent CTL_DataContentTopComponent=Data Content -CTL_NodeTableAction=NodeTable -CTL_NodeTableTopComponent=NodeTable Window -CTL_HexViewAction=HexView -CTL_HexViewTopComponent=Hex View -CTL_StringViewAction=StringView -CTL_StringViewTopComponent=String View -CTL_CustomAboutAction=About +OptionsCategory_Name_General=General +OptionsCategory_Keywords_General=general HINT_DataContentTopComponent=This is a DataContent window HINT_NodeTableTopComponent=This is a DataResult window -HINT_HexViewTopComponent=This is a HexView window -HINT_StringViewTopComponent=This is a StringView window OpenIDE-Module-Name=CoreComponents -OutputViewPanel.prevPageButton.text=Previous Page -OutputViewPanel.totalPageLabel.text=100 -OutputViewPanel.ofLabel.text=of -OutputViewPanel.currentPageLabel.text=1 -OutputViewPanel.pageLabel.text=Page: -OutputViewPanel.filePathLabel.text=FilePath -OutputViewPanel.nextPageButton.text=Next Page -DataContentViewerHex.filePathLabel.text=FilePath -DataContentViewerHex.pageLabel.text=Page: -DataContentViewerHex.currentPageLabel.text=1 -DataContentViewerHex.ofLabel.text=of -DataContentViewerHex.totalPageLabel.text=100 DataContentViewerHex.prevPageButton.text= DataContentViewerHex.nextPageButton.text= -DataContentViewerString.totalPageLabel.text=100 DataContentViewerString.prevPageButton.text= DataContentViewerString.nextPageButton.text= -DataContentViewerString.filePathLabel.text=FilePath -DataContentViewerString.pageLabel.text=Page: -DataContentViewerString.currentPageLabel.text=1 -DataContentViewerString.ofLabel.text=of DataContentViewerHex.pageLabel.text_1=Page: DataContentViewerHex.currentPageLabel.text_1=1 DataContentViewerHex.ofLabel.text_1=of @@ -41,7 +17,6 @@ DataContentViewerString.pageLabel.text_1=Page: DataContentViewerString.currentPageLabel.text_1=1 DataContentViewerString.ofLabel.text_1=of DataContentViewerString.totalPageLabel.text_1=100 -DataContentViewerPicture.picLabel.text=[Picture goes Here] DataContentViewerHex.pageLabel2.text=Page DataContentViewerString.pageLabel2.text=Page @@ -54,13 +29,13 @@ URL_ON_IMG=http://www.sleuthkit.org/ #SwingBrowser -LBL_SwingBrowserDescription=Simple HTML Browser based on a Swing component -MSG_cannot_create_browser=Cannot create Swing HTML Browser. -Services/Browsers/SwingBrowser.settings=Swing HTML Browser +#LBL_SwingBrowserDescription=Simple HTML Browser based on a Swing component +#MSG_cannot_create_browser=Cannot create Swing HTML Browser. +#Services/Browsers/SwingBrowser.settings=Swing HTML Browser LBL_Close=Close -MNE_Close=C -ACSN_Close=Close -ACSD_Close=Close +#MNE_Close=C +#ACSN_Close=Close +#ACSD_Close=Close DataContentViewerString.copyMenuItem.text=Copy DataContentViewerHex.copyMenuItem.text=Copy DataContentViewerString.selectAllMenuItem.text=Select All @@ -144,3 +119,23 @@ FXVideoPanel.mediaPane.infoLabel=Playback of deleted videos is not supported, us FXVideoPanel.progress.bufferingFile=Buffering {0} FXVideoPanel.progressLabel.buffering=Buffering... FXVideoPanel.media.unsupportedFormat=Unsupported Format. +GeneralOptionsPanelController.moduleErr=Module Error +GeneralOptionsPanelController.moduleErr.msg=A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete. +GstVideoPanel.cannotProcFile.err=The media player cannot process this file. +GstVideoPanel.initGst.gstException.msg=Error initializing gstreamer for audio/video viewing and frame extraction capabilities. Video and audio viewing will be disabled. +GstVideoPanel.initGst.otherException.msg=Error initializing gstreamer for audio/video viewing frame extraction capabilities. Video and audio viewing will be disabled. +GstVideoPanel.setupVideo.infoLabel.text=Playback of deleted videos is not supported, use an external player. +GstVideoPanel.exception.problemFile.msg=Cannot capture frames from this file ({0}). +GstVideoPanel.exception.problemPlay.msg=Problem with video file; problem when attempting to play while obtaining duration. +GstVideoPanel.exception.problemPause.msg=Problem with video file; problem when attempting to pause while obtaining duration. +GstVideoPanel.exception.problemPauseCaptFrame.msg=Problem with video file; problem when attempting to pause while capturing a frame. +GstVideoPanel.exception.problemPlayCaptFrame.msg=Problem with video file; problem when attempting to play while capturing a frame. +GstVideoPanel.exception.problemStopCaptFrame.msg=Problem with video file; problem when attempting to stop while capturing a frame. +GstVideoPanel.progress.buffering=Buffering... +GstVideoPanel.progressLabel.bufferingErr=Error buffering file +MediaViewImagePanel.imgFileTooLarge.msg=Could not load image file (too large)\: {0} +ProductInformationPanel.actVerboseLogging.text=Activate verbose logging +ProductInformationPanel.verbLoggingEnabled.text=Verbose logging enabled +ProductInformationPanel.propertyUnknown.text=unknown +ProductInformationPanel.getVMValue.text={0} {1} +TableFilterNode.displayName.text=Name diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralOptionsPanelController.java b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralOptionsPanelController.java index 14b8ffec3f..42b95989c9 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralOptionsPanelController.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/GeneralOptionsPanelController.java @@ -10,6 +10,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; @@ -20,7 +21,8 @@ iconBase = "org/sleuthkit/autopsy/corecomponents/general-options.png", position = 1, keywords = "#OptionsCategory_Keywords_General", keywordsCategory = "General") -@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_General=General", "OptionsCategory_Keywords_General=general"}) +// moved to Bundle +//@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_General=General", "OptionsCategory_Keywords_General=general"}) public final class GeneralOptionsPanelController extends OptionsPanelController { private GeneralPanel panel; @@ -81,7 +83,10 @@ public final class GeneralOptionsPanelController extends OptionsPanelController } catch (Exception e) { logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -90,7 +95,10 @@ public final class GeneralOptionsPanelController extends OptionsPanelController } catch (Exception e) { logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } } diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/GstVideoPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/GstVideoPanel.java index 8317221553..e0df2e61c5 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/GstVideoPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/GstVideoPanel.java @@ -51,6 +51,7 @@ import org.gstreamer.swing.VideoComponent; import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandleFactory; import org.openide.util.Cancellable; +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.openide.util.lookup.ServiceProviders; import org.sleuthkit.autopsy.casemodule.Case; @@ -73,7 +74,7 @@ public class GstVideoPanel extends MediaViewVideoPanel { private boolean gstInited; private static final long MIN_FRAME_INTERVAL_MILLIS = 500; private static final long FRAME_CAPTURE_TIMEOUT_MILLIS = 1000; - private static final String MEDIA_PLAYER_ERROR_STRING = "The media player cannot process this file."; + private static final String MEDIA_PLAYER_ERROR_STRING = NbBundle.getMessage(GstVideoPanel.class, "GstVideoPanel.cannotProcFile.err"); //playback private long durationMillis = 0; private VideoProgressWorker videoProgressWorker; @@ -163,15 +164,15 @@ public class GstVideoPanel extends MediaViewVideoPanel { } catch (GstException e) { gstInited = false; logger.log(Level.SEVERE, "Error initializing gstreamer for audio/video viewing and frame extraction capabilities", e); - MessageNotifyUtil.Notify.error("Error initializing gstreamer for audio/video viewing and frame extraction capabilities. " - + " Video and audio viewing will be disabled. ", + MessageNotifyUtil.Notify.error( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.initGst.gstException.msg"), e.getMessage()); return false; } catch (UnsatisfiedLinkError | NoClassDefFoundError | Exception e) { gstInited = false; logger.log(Level.SEVERE, "Error initializing gstreamer for audio/video viewing and extraction capabilities", e); - MessageNotifyUtil.Notify.error("Error initializing gstreamer for audio/video viewing frame extraction capabilities. " - + " Video and audio viewing will be disabled. ", + MessageNotifyUtil.Notify.error( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.initGst.otherException.msg"), e.getMessage()); return false; } @@ -186,7 +187,7 @@ public class GstVideoPanel extends MediaViewVideoPanel { currentFile = file; final boolean deleted = file.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC); if (deleted) { - infoLabel.setText("Playback of deleted videos is not supported, use an external player."); + infoLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.setupVideo.infoLabel.text")); videoPanel.removeAll(); pauseButton.setEnabled(false); progressSlider.setEnabled(false); @@ -315,7 +316,8 @@ public class GstVideoPanel extends MediaViewVideoPanel { // throw exception if this file is known to be problematic if (badVideoFiles.contains(file.getName())) { - throw new Exception("Cannot capture frames from this file (" + file.getName() + ")."); + throw new Exception( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemFile.msg", file.getName())); } // set up a PlayBin2 object @@ -329,13 +331,13 @@ public class GstVideoPanel extends MediaViewVideoPanel { if (ret == StateChangeReturn.FAILURE) { // add this file to the set of known bad ones badVideoFiles.add(file.getName()); - throw new Exception("Problem with video file; problem when attempting to play while obtaining duration."); + throw new Exception(NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPlay.msg")); } ret = playbin.pause(); if (ret == StateChangeReturn.FAILURE) { // add this file to the set of known bad ones badVideoFiles.add(file.getName()); - throw new Exception("Problem with video file; problem when attempting to pause while obtaining duration."); + throw new Exception(NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPause.msg")); } playbin.getState(); @@ -361,7 +363,8 @@ public class GstVideoPanel extends MediaViewVideoPanel { if (ret == StateChangeReturn.FAILURE) { // add this file to the set of known bad ones badVideoFiles.add(file.getName()); - throw new Exception("Problem with video file; problem when attempting to pause while capturing a frame."); + throw new Exception( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPauseCaptFrame.msg")); } playbin.getState(); @@ -374,7 +377,8 @@ public class GstVideoPanel extends MediaViewVideoPanel { if (ret == StateChangeReturn.FAILURE) { // add this file to the set of known bad ones badVideoFiles.add(file.getName()); - throw new Exception("Problem with video file; problem when attempting to play while capturing a frame."); + throw new Exception( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemPlayCaptFrame.msg")); } // wait for FrameCaptureRGBListener to finish @@ -391,7 +395,8 @@ public class GstVideoPanel extends MediaViewVideoPanel { if (ret == StateChangeReturn.FAILURE) { // add this file to the set of known bad ones badVideoFiles.add(file.getName()); - throw new Exception("Problem with video file; problem when attempting to stop while capturing a frame."); + throw new Exception( + NbBundle.getMessage(this.getClass(), "GstVideoPanel.exception.problemStopCaptFrame.msg")); } if (image == null) { @@ -690,7 +695,7 @@ public class GstVideoPanel extends MediaViewVideoPanel { return ExtractMedia.this.cancel(true); } }); - progressLabel.setText("Buffering... "); + progressLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.progress.buffering")); progress.start(); progress.switchToDeterminate(100); try { @@ -723,7 +728,7 @@ public class GstVideoPanel extends MediaViewVideoPanel { void playMedia() { if (jFile == null || !jFile.exists()) { - progressLabel.setText("Error buffering file"); + progressLabel.setText(NbBundle.getMessage(this.getClass(), "GstVideoPanel.progressLabel.bufferingErr")); return; } ClockTime dur = null; diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewImagePanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewImagePanel.java index e5acab4cb7..70505058bc 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewImagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewImagePanel.java @@ -33,6 +33,8 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javax.imageio.ImageIO; import javax.swing.SwingUtilities; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.corelibs.ScalrWrapper; import org.sleuthkit.autopsy.coreutils.Logger; @@ -160,7 +162,9 @@ import org.sleuthkit.datamodel.ReadContentInputStream; return; } catch (OutOfMemoryError ex) { logger.log(Level.WARNING, "Could not load image file into media view (too large): " + fileName, ex); - MessageNotifyUtil.Notify.warn("Could not load image file (too large): " + file.getName(), ex.getMessage()); + MessageNotifyUtil.Notify.warn( + NbBundle.getMessage(this.getClass(), "MediaViewImagePanel.imgFileTooLarge.msg", file.getName()), + ex.getMessage()); return; } finally { try { diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/ProductInformationPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/ProductInformationPanel.java index 0499404c42..81ad1dd840 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/ProductInformationPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/ProductInformationPanel.java @@ -109,7 +109,8 @@ public class ProductInformationPanel extends JPanel implements HyperlinkListener jScrollPane2.setViewportView(description); verboseLoggingButton.setBackground(new java.awt.Color(255, 255, 255)); - verboseLoggingButton.setText("Activate verbose logging"); + verboseLoggingButton.setText( + NbBundle.getMessage(this.getClass(), "ProductInformationPanel.actVerboseLogging.text")); verboseLoggingButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { activateVerboseLogging(evt); @@ -196,7 +197,8 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve private void disableVerboseLoggingButton() { this.verboseLoggingButton.setEnabled(false); - this.verboseLoggingButton.setText("Verbose logging enabled"); + this.verboseLoggingButton.setText( + NbBundle.getMessage(this.getClass(), "ProductInformationPanel.verbLoggingEnabled.text")); } private void closeDialog() { @@ -225,17 +227,30 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve private static String getOperatingSystemValue() { return NbBundle.getMessage(ProductInformationPanel.class, "Format_OperatingSystem_Value", - System.getProperty("os.name", "unknown"), - System.getProperty("os.version", "unknown"), - System.getProperty("os.arch", "unknown")); + System.getProperty("os.name", + NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.propertyUnknown.text")), + System.getProperty("os.version", + NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.propertyUnknown.text")), + System.getProperty("os.arch", + NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.propertyUnknown.text"))); } private static String getJavaValue() { - return System.getProperty("java.version", "unknown"); + return System.getProperty("java.version", + NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.propertyUnknown.text")); } private static String getVMValue() { - return System.getProperty("java.vm.name", "unknown") + " " + System.getProperty("java.vm.version", ""); + return NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.getVMValue.text", + System.getProperty("java.vm.name", + NbBundle.getMessage(ProductInformationPanel.class, + "ProductInformationPanel.propertyUnknown.text")), + System.getProperty("java.vm.version", "")); } private static String getSystemLocaleValue() { @@ -248,7 +263,8 @@ private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:eve } private static String getEncodingValue() { - return System.getProperty("file.encoding", "unknown"); + return System.getProperty("file.encoding", + NbBundle.getMessage(ProductInformationPanel.class, "ProductInformationPanel.propertyUnknown.text")); } public void setCopyright(String text) { diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/TableFilterNode.java b/Core/src/org/sleuthkit/autopsy/corecomponents/TableFilterNode.java index 535d541a02..4715658265 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/TableFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/TableFilterNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.corecomponents; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.openide.util.NbBundle; /** * This class is used to filter the nodes that we want to show on the "TreeTableView". @@ -46,7 +47,7 @@ public class TableFilterNode extends FilterNode { @Override public String getDisplayName() { if (createChild) { - return "Name"; + return NbBundle.getMessage(this.getClass(), "TableFilterNode.displayName.text"); } else { return super.getDisplayName(); } From 9c0036c6239eed0adbf1b12d59f25ee367f3efe5 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Mon, 24 Feb 2014 13:37:15 -0500 Subject: [PATCH 15/90] Print statements to debug lack of hashdb hits during regression tests. --- .../HashDatabaseOptionsPanelController.java | 2 ++ .../autopsy/hashdatabase/HashDbIngestModule.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java index 5ddac1c794..bd2f57edd4 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java @@ -53,7 +53,9 @@ public final class HashDatabaseOptionsPanelController extends OptionsPanelContro @Override public void applyChanges() { + System.out.println("in applyChanges, before store"); getPanel().store(); + System.out.println("in applyChanges, after store"); changed = false; } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java index 78bf96bae1..d0ad256519 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java @@ -209,6 +209,7 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { private ProcessResult processFile(AbstractFile file) { // bail out if we have no hashes set if ((knownHashSets.isEmpty()) && (knownBadHashSets.isEmpty()) && (calcHashesIsSet == false)) { + System.out.println("processFile, no hashes set"); return ProcessResult.OK; } @@ -239,6 +240,7 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { ProcessResult ret = ProcessResult.OK; for (HashDb db : knownBadHashSets) { try { + System.out.println("in processFile known bad"); long lookupstart = System.currentTimeMillis(); HashInfo hashInfo = db.lookUp(file); if (null != hashInfo) { @@ -247,6 +249,7 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { try { skCase.setKnown(file, TskData.FileKnown.BAD); } catch (TskException ex) { + System.out.println("in processFile couldn't set known bad state 252"); 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, @@ -273,11 +276,13 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { break; } } - + System.out.println("About to postHashHitToBlackboard"); postHashSetHitToBlackboard(file, md5Hash, hashSetName, comment, db.getSendIngestMessages()); + System.out.println("Out of postHashHitToBlackboard"); } lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { + System.out.println("in processFile couldn't lookup known bad state 252"); 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, @@ -297,12 +302,14 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { if (!foundBad) { for (HashDb db : knownHashSets) { try { + System.out.println("in processFile 205"); long lookupstart = System.currentTimeMillis(); if (db.hasMd5HashOf(file)) { try { skCase.setKnown(file, TskData.FileKnown.KNOWN); break; } catch (TskException ex) { + System.out.println("in processFile couldn't set known bad state 311"); 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, @@ -317,6 +324,7 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { } lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { + System.out.println("in processFile couldn't lookup known bad state 326"); 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, @@ -335,6 +343,7 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { } private void postHashSetHitToBlackboard(AbstractFile abstractFile, String md5Hash, String hashSetName, String comment, boolean showInboxMessage) { + System.out.printf("at postHashSetHitToBlackboard"); try { BlackboardArtifact badFile = abstractFile.newArtifact(ARTIFACT_TYPE.TSK_HASHSET_HIT); //TODO Revisit usage of deprecated constructor as per TSK-583 From 41f00f3e8238a4188c008ed2eaf31677133feb39 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 24 Feb 2014 14:20:25 -0500 Subject: [PATCH 16/90] Pulled static strings into Bundle.properties. Added empty Bundle_ja.properties. --- .../autopsy/coreutils/Bundle.properties | 22 +++++++ .../autopsy/coreutils/Bundle_ja.properties | 0 .../org/sleuthkit/autopsy/coreutils/JLNK.java | 4 +- .../autopsy/coreutils/ModuleSettings.java | 2 +- .../autopsy/coreutils/PlatformUtil.java | 63 +++++++++++-------- .../autopsy/coreutils/StringExtract.java | 5 +- 6 files changed, 67 insertions(+), 29 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties index 1c9c5c6495..6b4fb53f53 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties @@ -1,2 +1,24 @@ OpenIDE-Module-Name=CoreUtils +JLNK.noPrefPath.text=No preferred path found +PlatformUtil.nameUnknown=unknown +PlatformUtil.verUnknown=unknown +PlatformUtil.archUnknown=unknown +PlatformUtil.jrePath.jreDir.msg=Embedded jre directory found in\: {0} +PlatformUtil.jrePath.usingJavaPath.msg=Using java binary path\: {0} +PlatformUtil.getPID.sigarNotInit.msg=Can't get PID, sigar not initialized +PlatformUtil.getPID.gen.msg=Can''t get PID,{0} +PlatformUtil.getJavaPID.sigarNotInit.msg=Can't get PID of a java process, sigar not initialized +PlatformUtil.getJavaPID.gen.msg=Can''t get PID for query\: {0}, {1} +PlatformUtil.getJavaPIDs.sigarNotInit=Can't get PIDs of a java process, sigar not initialized +PlatformUtil.getJavaPIDs.gen.msg=Can''t get PIDs for query\: {0}, {1} +PlatformUtil.killProcess.sigarNotInit.msg=Can't kill process by pid, sigar not initialized. +PlatformUtil.killProcess.gen.msg=Can''t kill process\: {0}, {1} +PlatformUtil.getProcVmUsed.sigarNotInit.msg=Can't get virt mem used, sigar not initialized. +PlatformUtil.getProcVmUsed.gen.msg=Can''t get virt mem used, {0} +PlatformUtil.getJvmMemInfo.usageText=JVM heap usage\: {0}, JVM non-heap usage\: {1} +PlatformUtil.getPhysicalMemInfo.usageText=Physical memory usage (max, total, free)\: {0}, {1}, {2} +PlatformUtil.getAllMemUsageInfo.usageText={0}\ +{1}\ +Process Virtual Memory\: {2} +StringExtract.illegalStateException.cannotInit.msg=Unicode table not properly initialized, cannot instantiate StringExtract diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/JLNK.java b/Core/src/org/sleuthkit/autopsy/coreutils/JLNK.java index 3312ab7b06..ff9787c405 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/JLNK.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/JLNK.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.coreutils; import java.io.File; import java.util.ArrayList; import java.util.List; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.LnkEnums.CommonNetworkRelativeLinkFlags; import org.sleuthkit.autopsy.coreutils.LnkEnums.DriveType; import org.sleuthkit.autopsy.coreutils.LnkEnums.FileAttributesFlags; @@ -294,7 +296,7 @@ import org.sleuthkit.autopsy.coreutils.LnkEnums.NetworkProviderType; } return ret; } - return "No preferred path found"; + return NbBundle.getMessage(this.getClass(), "JLNK.noPrefPath.text"); } public String getBestName() { diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/ModuleSettings.java b/Core/src/org/sleuthkit/autopsy/coreutils/ModuleSettings.java index 15d5e3d7a3..e6d97afe0f 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/ModuleSettings.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/ModuleSettings.java @@ -36,7 +36,7 @@ import java.util.logging.Level; */ public class ModuleSettings { - // The directory where the properties file is lcoated + // The directory where the properties file is located private final static String moduleDirPath = PlatformUtil.getUserConfigDirectory(); public static final String DEFAULT_CONTEXT = "GeneralContext"; public static final String MAIN_SETTINGS = "Case"; diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java index 40ced93327..1fd342806e 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java @@ -37,6 +37,7 @@ import org.hyperic.sigar.Sigar; import org.hyperic.sigar.ptql.ProcessFinder; import org.openide.modules.InstalledFileLocator; import org.openide.modules.Places; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.LocalDisk; import org.sleuthkit.datamodel.SleuthkitJNI; import org.sleuthkit.datamodel.TskCoreException; @@ -48,9 +49,9 @@ import org.sleuthkit.datamodel.TskCoreException; public class PlatformUtil { private static String javaPath = null; - public static final String OS_NAME_UNKNOWN = "unknown"; - public static final String OS_VERSION_UNKNOWN = "unknown"; - public static final String OS_ARCH_UNKNOWN = "unknown"; + public static final String OS_NAME_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.nameUnknown"); + public static final String OS_VERSION_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.verUnknown"); + public static final String OS_ARCH_UNKNOWN = NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.archUnknown"); private static volatile long pid = -1; private static volatile Sigar sigar = null; private static volatile MemoryMXBean memoryManager = null; @@ -118,7 +119,10 @@ public class PlatformUtil { File jrePath = new File(getInstallPath() + File.separator + "jre"); if (jrePath != null && jrePath.exists() && jrePath.isDirectory()) { - System.out.println("Embedded jre directory found in: " + jrePath.getAbsolutePath()); + System.out.println( + NbBundle.getMessage(PlatformUtil.class, + "PlatformUtil.jrePath.jreDir.msg", + jrePath.getAbsolutePath())); javaPath = jrePath.getAbsolutePath() + File.separator + "bin" + File.separator + "java"; } else { //else use system installed java in PATH env variable @@ -126,7 +130,7 @@ public class PlatformUtil { } - System.out.println("Using java binary path: " + javaPath); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.jrePath.usingJavaPath.msg", javaPath)); return javaPath; @@ -427,10 +431,10 @@ public class PlatformUtil { if (sigar != null) { pid = sigar.getPid(); } else { - System.out.println("Can't get PID, sigar not initialized"); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getPID.sigarNotInit.msg")); } } catch (Exception e) { - System.out.println("Can't get PID," + e.toString()); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getPID.gen.msg", e.toString())); } return pid; @@ -457,10 +461,11 @@ public class PlatformUtil { ProcessFinder finder = new ProcessFinder(sigar); jpid = finder.findSingleProcess(sigarQuery); } else { - System.out.println("Can't get PID of a java process, sigar not initialized"); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPID.sigarNotInit.msg")); } } catch (Exception e) { - System.out.println("Can't get PID for query: " + sigarQuery + ", " + e.toString()); + System.out.println( + NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPID.gen.msg", sigarQuery, e.toString())); } return jpid; @@ -487,10 +492,11 @@ public class PlatformUtil { ProcessFinder finder = new ProcessFinder(sigar); jpids = finder.find(sigarQuery); } else { - System.out.println("Can't get PIDs of a java process, sigar not initialized"); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPIDs.sigarNotInit")); } } catch (Exception e) { - System.out.println("Can't get PIDs for query: " + sigarQuery + ", " + e.toString()); + System.out.println( + NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getJavaPIDs.gen.msg", sigarQuery, e.toString())); } return jpids; @@ -509,10 +515,11 @@ public class PlatformUtil { if (sigar != null) { sigar.kill(pid, 9); } else { - System.out.println("Can't kill process by pid, sigar not initialized."); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.killProcess.sigarNotInit.msg")); } } catch (Exception e) { - System.out.println("Can't kill process: " + pid + ", " + e.toString()); + System.out.println( + NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.killProcess.gen.msg", pid, e.toString())); } } @@ -532,12 +539,12 @@ public class PlatformUtil { } if (sigar == null || pid == -1) { - System.out.println("Can't get virt mem used, sigar not initialized. "); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getProcVmUsed.sigarNotInit.msg")); return -1; } virtMem = sigar.getProcMem(pid).getSize(); } catch (Exception e) { - System.out.println("Can't get virt mem used, " + e.toString()); + System.out.println(NbBundle.getMessage(PlatformUtil.class, "PlatformUtil.getProcVmUsed.gen.msg", e.toString())); } return virtMem; @@ -557,9 +564,9 @@ public class PlatformUtil { final MemoryUsage heap = memoryManager.getHeapMemoryUsage(); final MemoryUsage nonHeap = memoryManager.getNonHeapMemoryUsage(); - return "JVM heap usage: " + heap.toString() + ", JVM non-heap usage: " + nonHeap.toString(); - - + return NbBundle.getMessage(PlatformUtil.class, + "PlatformUtil.getJvmMemInfo.usageText", + heap.toString(), nonHeap.toString()); } /** @@ -572,9 +579,9 @@ public class PlatformUtil { final long maxMemory = runTime.maxMemory(); final long totalMemory = runTime.totalMemory(); final long freeMemory = runTime.freeMemory(); - return "Physical memory usage (max, total, free): " - + Long.toString(maxMemory) + ", " + Long.toString(totalMemory) - + ", " + Long.toString(freeMemory); + return NbBundle.getMessage(PlatformUtil.class, + "PlatformUtil.getPhysicalMemInfo.usageText", + Long.toString(maxMemory), Long.toString(totalMemory), Long.toString(freeMemory)); } /** @@ -583,10 +590,14 @@ public class PlatformUtil { * @return formatted string with all memory usage info */ public static String getAllMemUsageInfo() { - StringBuilder sb = new StringBuilder(); - sb.append(PlatformUtil.getPhysicalMemInfo()).append("\n"); - sb.append(PlatformUtil.getJvmMemInfo()).append("\n"); - sb.append("Process Virtual Memory: ").append(PlatformUtil.getProcessVirtualMemoryUsed()); - return sb.toString(); +// StringBuilder sb = new StringBuilder(); +// sb.append(PlatformUtil.getPhysicalMemInfo()).append("\n"); +// sb.append(PlatformUtil.getJvmMemInfo()).append("\n"); +// sb.append("Process Virtual Memory: ").append(PlatformUtil.getProcessVirtualMemoryUsed()); +// return sb.toString(); + return NbBundle.getMessage(PlatformUtil.class, + "PlatformUtil.getAllMemUsageInfo.usageText", + PlatformUtil.getPhysicalMemInfo(), PlatformUtil.getJvmMemInfo(), + PlatformUtil.getProcessVirtualMemoryUsed()); } } diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/StringExtract.java b/Core/src/org/sleuthkit/autopsy/coreutils/StringExtract.java index d6c43c24cc..5179859211 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/StringExtract.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/StringExtract.java @@ -26,6 +26,8 @@ import java.util.List; import java.util.Properties; import java.util.StringTokenizer; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.StringExtract.StringExtractUnicodeTable.SCRIPT; @@ -78,7 +80,8 @@ public class StringExtract { unicodeTable = StringExtractUnicodeTable.getInstance(); if (unicodeTable == null) { - throw new IllegalStateException("Unicode table not properly initialized, cannot instantiate StringExtract"); + throw new IllegalStateException( + NbBundle.getMessage(StringExtract.class, "StringExtract.illegalStateException.cannotInit.msg")); } setEnabledScripts(SUPPORTED_SCRIPTS); From 590d5ef384887dcf0824837b64d1512ae39238f3 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Mon, 24 Feb 2014 15:21:05 -0500 Subject: [PATCH 17/90] Print statements no longer needed. --- .../HashDatabaseOptionsPanelController.java | 2 -- .../autopsy/hashdatabase/HashDbIngestModule.java | 11 +---------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java index bd2f57edd4..5ddac1c794 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDatabaseOptionsPanelController.java @@ -53,9 +53,7 @@ public final class HashDatabaseOptionsPanelController extends OptionsPanelContro @Override public void applyChanges() { - System.out.println("in applyChanges, before store"); getPanel().store(); - System.out.println("in applyChanges, after store"); changed = false; } diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java index d0ad256519..78bf96bae1 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestModule.java @@ -209,7 +209,6 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { private ProcessResult processFile(AbstractFile file) { // bail out if we have no hashes set if ((knownHashSets.isEmpty()) && (knownBadHashSets.isEmpty()) && (calcHashesIsSet == false)) { - System.out.println("processFile, no hashes set"); return ProcessResult.OK; } @@ -240,7 +239,6 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { ProcessResult ret = ProcessResult.OK; for (HashDb db : knownBadHashSets) { try { - System.out.println("in processFile known bad"); long lookupstart = System.currentTimeMillis(); HashInfo hashInfo = db.lookUp(file); if (null != hashInfo) { @@ -249,7 +247,6 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { try { skCase.setKnown(file, TskData.FileKnown.BAD); } catch (TskException ex) { - System.out.println("in processFile couldn't set known bad state 252"); 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, @@ -276,13 +273,11 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { break; } } - System.out.println("About to postHashHitToBlackboard"); + postHashSetHitToBlackboard(file, md5Hash, hashSetName, comment, db.getSendIngestMessages()); - System.out.println("Out of postHashHitToBlackboard"); } lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { - System.out.println("in processFile couldn't lookup known bad state 252"); 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, @@ -302,14 +297,12 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { if (!foundBad) { for (HashDb db : knownHashSets) { try { - System.out.println("in processFile 205"); long lookupstart = System.currentTimeMillis(); if (db.hasMd5HashOf(file)) { try { skCase.setKnown(file, TskData.FileKnown.KNOWN); break; } catch (TskException ex) { - System.out.println("in processFile couldn't set known bad state 311"); 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, @@ -324,7 +317,6 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { } lookuptime += (System.currentTimeMillis() - lookupstart); } catch (TskException ex) { - System.out.println("in processFile couldn't lookup known bad state 326"); 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, @@ -343,7 +335,6 @@ public class HashDbIngestModule extends IngestModuleAbstractFile { } private void postHashSetHitToBlackboard(AbstractFile abstractFile, String md5Hash, String hashSetName, String comment, boolean showInboxMessage) { - System.out.printf("at postHashSetHitToBlackboard"); try { BlackboardArtifact badFile = abstractFile.newArtifact(ARTIFACT_TYPE.TSK_HASHSET_HIT); //TODO Revisit usage of deprecated constructor as per TSK-583 From 7bd2a895a09b367e439f3f6551fbf5e0cd834074 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 24 Feb 2014 17:58:18 -0500 Subject: [PATCH 18/90] Pulled static strings into Bundle.properties. Part way through module. --- .../datamodel/AbstractAbstractFileNode.java | 40 ++--- .../datamodel/AbstractContentChildren.java | 9 +- .../datamodel/AbstractContentNode.java | 5 +- .../datamodel/AbstractFsContentNode.java | 3 +- .../datamodel/ArtifactStringContent.java | 10 +- .../autopsy/datamodel/ArtifactTypeNode.java | 18 ++- .../datamodel/BlackboardArtifactNode.java | 40 +++-- .../datamodel/BlackboardArtifactTagNode.java | 27 +++- .../autopsy/datamodel/Bundle.properties | 141 ++++++++++++++++++ .../autopsy/datamodel/ContentTagNode.java | 19 ++- .../autopsy/datamodel/ContentTagTypeNode.java | 9 +- .../autopsy/datamodel/ContentUtils.java | 7 +- .../datamodel/DataModelActionsFactory.java | 53 ++++--- .../autopsy/datamodel/DataSourcesNode.java | 11 +- .../autopsy/datamodel/DeletedContent.java | 37 +++-- .../autopsy/datamodel/DirectoryNode.java | 11 +- .../autopsy/datamodel/EmailExtracted.java | 43 +++--- .../datamodel/ExtractedContentNode.java | 9 +- .../sleuthkit/autopsy/datamodel/FileNode.java | 13 +- .../sleuthkit/autopsy/datamodel/FileSize.java | 22 +-- .../autopsy/datamodel/FileTypeChildren.java | 7 +- .../datamodel/FileTypeExtensionFilters.java | 47 ++++-- .../autopsy/datamodel/FileTypeNode.java | 17 ++- .../autopsy/datamodel/FileTypesNode.java | 9 +- .../autopsy/datamodel/HashsetHits.java | 18 ++- .../autopsy/datamodel/ImageNode.java | 12 +- .../autopsy/datamodel/Installer.java | 10 +- .../autopsy/datamodel/InterestingHits.java | 23 +-- .../autopsy/datamodel/KeyValueNode.java | 11 +- .../autopsy/datamodel/KeywordHits.java | 80 +++++----- .../datamodel/KnownFileFilterNode.java | 5 +- 31 files changed, 537 insertions(+), 229 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java index 6b3a8cbc54..a84b0048b5 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java @@ -22,6 +22,8 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Map; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; @@ -52,115 +54,115 @@ public abstract class AbstractAbstractFileNode extends A NAME { @Override public String toString() { - return "Name"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.nameColLbl"); } }, LOCATION { @Override public String toString() { - return "Location"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.locationColLbl"); } }, MOD_TIME { @Override public String toString() { - return "Modified Time"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.modifiedTimeColLbl"); } }, CHANGED_TIME { @Override public String toString() { - return "Change Time"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.changeTimeColLbl"); } }, ACCESS_TIME { @Override public String toString() { - return "Access Time"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.accessTimeColLbl"); } }, CREATED_TIME { @Override public String toString() { - return "Created Time"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.createdTimeColLbl"); } }, SIZE { @Override public String toString() { - return "Size"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.sizeColLbl"); } }, FLAGS_DIR { @Override public String toString() { - return "Flags(Dir)"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.flagsDirColLbl"); } }, FLAGS_META { @Override public String toString() { - return "Flags(Meta)"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.flagsMetaColLbl"); } }, MODE { @Override public String toString() { - return "Mode"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.modeColLbl"); } }, USER_ID { @Override public String toString() { - return "UserID"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.useridColLbl"); } }, GROUP_ID { @Override public String toString() { - return "GroupID"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.groupidColLbl"); } }, META_ADDR { @Override public String toString() { - return "Meta Addr."; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.metaAddrColLbl"); } }, ATTR_ADDR { @Override public String toString() { - return "Attr. Addr."; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.attrAddrColLbl"); } }, TYPE_DIR { @Override public String toString() { - return "Type(Dir)"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.typeDirColLbl"); } }, TYPE_META { @Override public String toString() { - return "Type(Meta)"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.typeMetaColLbl"); } }, KNOWN { @Override public String toString() { - return "Known"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.knownColLbl"); } }, HASHSETS { @Override public String toString() { - return "In Hashsets"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.inHashsetsColLbl"); } }, MD5HASH { @Override public String toString() { - return "MD5 Hash"; + return NbBundle.getMessage(this.getClass(), "AbstractAbstractFileNode.md5HashColLbl"); } } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentChildren.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentChildren.java index 87494f2e1f..73cc5186b2 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentChildren.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentChildren.java @@ -21,7 +21,7 @@ package org.sleuthkit.autopsy.datamodel; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children.Keys; import org.openide.nodes.Node; -import org.sleuthkit.autopsy.datamodel.KeywordHits.KeywordHitsRootNode; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.DerivedFile; import org.sleuthkit.datamodel.Directory; import org.sleuthkit.datamodel.File; @@ -106,7 +106,8 @@ abstract class AbstractContentChildren extends Keys { @Override protected AbstractContentNode defaultVisit(SleuthkitVisitableItem di) { - throw new UnsupportedOperationException("No Node defined for the given SleuthkitItem"); + throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(), + "AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg")); } } @@ -186,7 +187,9 @@ abstract class AbstractContentChildren extends Keys { @Override protected AbstractNode defaultVisit(AutopsyVisitableItem di) { - throw new UnsupportedOperationException("No Node defined for the given DisplayableItem"); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), + "AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg")); } } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java index cf16f2b07f..94d853c749 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.Content; @@ -63,7 +65,8 @@ public abstract class AbstractContentNode extends ContentNode @Override public void setName(String name) { - throw new UnsupportedOperationException("Can't change the system name."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "AbstractContentNode.exception.cannotChangeSysName.msg")); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractFsContentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractFsContentNode.java index 782541ca78..366025da11 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractFsContentNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractFsContentNode.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.datamodel; import java.util.LinkedHashMap; import java.util.Map; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.AbstractFile; @@ -73,7 +74,7 @@ public abstract class AbstractFsContentNode extends Abst AbstractFilePropertyType[] fsTypes = AbstractFilePropertyType.values(); final int FS_PROPS_LEN = fsTypes.length; - final String NO_DESCR = "no description"; + final String NO_DESCR = NbBundle.getMessage(this.getClass(), "AbstractFsContentNode.noDesc.text"); for (int i = 0; i < FS_PROPS_LEN; ++i) { final AbstractFilePropertyType propType = AbstractFilePropertyType.values()[i]; final String propString = propType.toString(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java index 12470453c1..088d18588b 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java @@ -22,6 +22,8 @@ import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.TimeZone; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; @@ -135,7 +137,9 @@ public class ArtifactStringContent implements StringContent { //add file path buffer.append(""); - buffer.append("Source File Path"); + buffer.append(""); + buffer.append(NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.srcFilePath.text")); + buffer.append(""); buffer.append(""); buffer.append(path); buffer.append(""); @@ -146,7 +150,7 @@ public class ArtifactStringContent implements StringContent { stringContent = buffer.toString(); } catch (TskException ex) { - stringContent = "Error getting content"; + stringContent = NbBundle.getMessage(this.getClass(), "ArtifactStringContent.getStr.err"); } } @@ -159,7 +163,7 @@ public class ArtifactStringContent implements StringContent { } catch (TskException ex) { logger.log(Level.WARNING, "Getting file failed", ex); } - throw new IllegalArgumentException("Couldn't get file from database"); + throw new IllegalArgumentException(NbBundle.getMessage(ArtifactStringContent.class, "ArtifactStringContent.exception.msg")); } private static TimeZone getTimeZone(BlackboardArtifact artifact) { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java index f97fa2c6fc..5dc9f18907 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.Map; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; @@ -65,15 +67,15 @@ public class ArtifactTypeNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Artifact Type", - "Artifact Type", - "no description", - type.getDisplayName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.text"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.text"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.noDesc.text"), + type.getDisplayName())); - ss.put(new NodeProperty("Child Count", - "Child Count", - "no description", - childCount)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.text"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.text"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.noDesc.text"), + childCount)); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java index 2178d3be0e..4ead0f896b 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java @@ -24,6 +24,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.Children; import org.openide.nodes.Sheet; @@ -103,15 +105,15 @@ public class BlackboardArtifactNode extends DisplayableItemNode { ss = Sheet.createPropertiesSet(); s.put(ss); } - final String NO_DESCR = "no description"; + final String NO_DESCR = NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.noDesc.text"); Map map = new LinkedHashMap(); fillPropertyMap(map, artifact); - ss.put(new NodeProperty("Source File", - "Source File", - NO_DESCR, - associated.getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.text"), + NO_DESCR, + associated.getName())); for (Map.Entry entry : map.entrySet()) { ss.put(new NodeProperty(entry.getKey(), @@ -135,7 +137,10 @@ public class BlackboardArtifactNode extends DisplayableItemNode { AbstractFile af = (AbstractFile) associated; ext = af.getNameExtension(); } - ss.put(new NodeProperty("Extension", "Extension", NO_DESCR, ext)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.text"), + NO_DESCR, + ext)); try { String actualMimeType = ""; @@ -151,7 +156,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode { if (actualMimeType.isEmpty()) { logger.log(Level.WARNING, "Could not find expected TSK_FILE_TYPE_SIG attribute."); } else { - ss.put(new NodeProperty("MIME Type", "MIME Type", NO_DESCR, actualMimeType)); + ss.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.text"), + NO_DESCR, + actualMimeType)); } } catch (TskCoreException ex) { logger.log(Level.WARNING, "Error while searching for TSK_FILE_TYPE_SIG attribute: ", ex); @@ -167,8 +176,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode { } if (sourcePath.isEmpty() == false) { - ss.put(new NodeProperty("File Path", "File Path", - NO_DESCR, sourcePath)); + ss.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.text"), + NO_DESCR, + sourcePath)); } } else { String dataSource = ""; @@ -184,8 +196,11 @@ public class BlackboardArtifactNode extends DisplayableItemNode { } if (dataSource.isEmpty() == false) { - ss.put(new NodeProperty("Data Source", "Data Source", - NO_DESCR, dataSource)); + ss.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.text"), + NO_DESCR, + dataSource)); } } @@ -300,7 +315,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { } catch (TskException ex) { logger.log(Level.WARNING, "Getting file failed", ex); } - throw new IllegalArgumentException("Couldn't get file from database"); + throw new IllegalArgumentException( + NbBundle.getMessage(BlackboardArtifactNode.class, "BlackboardArtifactNode.getAssocCont.exception.msg")); } private static HighlightLookup getHighlightLookup(BlackboardArtifact artifact, Content content) { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java index 3503776324..29cf64cefa 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java @@ -24,6 +24,7 @@ import java.util.logging.Logger; import javax.swing.Action; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.actions.DeleteBlackboardArtifactTagAction; import org.sleuthkit.datamodel.BlackboardArtifactTag; @@ -57,18 +58,34 @@ public class BlackboardArtifactTagNode extends DisplayableItemNode { propertySheet.put(properties); } - properties.put(new NodeProperty("Source File", "Source File", "", tag.getContent().getName())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFile.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFile.text"), + "", + tag.getContent().getName())); String contentPath; try { contentPath = tag.getContent().getUniquePath(); } catch (TskCoreException ex) { Logger.getLogger(ContentTagNode.class.getName()).log(Level.SEVERE, "Failed to get path for content (id = " + tag.getContent().getId() + ")", ex); - contentPath = "Unavailable"; + contentPath = NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.unavail.text"); } - properties.put(new NodeProperty("Source File Path", "Source File Path", "", contentPath)); - properties.put(new NodeProperty("Result Type", "Result Type", "", tag.getArtifact().getDisplayName())); - properties.put(new NodeProperty("Comment", "Comment", "", tag.getComment())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFilePath.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.srcFilePath.text"), + "", + contentPath)); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.resultType.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.resultType.text"), + "", + tag.getArtifact().getDisplayName())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.comment.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagNode.createSheet.comment.text"), + "", + tag.getComment())); return propertySheet; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties index cd313e7b75..40ba78b479 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties @@ -1 +1,142 @@ OpenIDE-Module-Name=DataModel +AbstractAbstractFileNode.nameColLbl=Name +AbstractAbstractFileNode.locationColLbl=Location +AbstractAbstractFileNode.modifiedTimeColLbl=Modified Time +AbstractAbstractFileNode.changeTimeColLbl=Change Time +AbstractAbstractFileNode.accessTimeColLbl=Access Time +AbstractAbstractFileNode.createdTimeColLbl=Created Time +AbstractAbstractFileNode.sizeColLbl=Size +AbstractAbstractFileNode.flagsDirColLbl=Flags(Dir) +AbstractAbstractFileNode.flagsMetaColLbl=Flags(Meta) +AbstractAbstractFileNode.modeColLbl=Mode +AbstractAbstractFileNode.useridColLbl=UserID +AbstractAbstractFileNode.groupidColLbl=GroupID +AbstractAbstractFileNode.metaAddrColLbl=Meta Addr. +AbstractAbstractFileNode.attrAddrColLbl=Attr. Addr. +AbstractAbstractFileNode.typeDirColLbl=Type(Dir) +AbstractAbstractFileNode.typeMetaColLbl=Type(Meta) +AbstractAbstractFileNode.knownColLbl=Known +AbstractAbstractFileNode.inHashsetsColLbl=In Hashsets +AbstractAbstractFileNode.md5HashColLbl=MD5 Hash +AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=No Node defined for the given SleuthkitItem +AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=No Node defined for the given DisplayableItem +AbstractContentNode.exception.cannotChangeSysName.msg=Can't change the system name. +AbstractFsContentNode.noDesc.text=no description +ArtifactStringContent.getStr.srcFilePath.text=Source File Path +ArtifactStringContent.getStr.err=Error getting content +ArtifactStringContent.exception.msg=Couldn't get file from database +ArtifactTypeNode.createSheet.artType.text=Artifact Type +ArtifactTypeNode.noDesc.text=no description +ArtifactTypeNode.createSheet.childCnt.text=Child Count +BlackboardArtifactNode.noDesc.text=no description +BlackboardArtifactNode.createSheet.srcFile.text=Source File +BlackboardArtifactNode.createSheet.ext.text=Extension +BlackboardArtifactNode.createSheet.mimeType.text=MIME Type +BlackboardArtifactNode.createSheet.filePath.text=File Path +BlackboardArtifactNode.createSheet.dataSrc.text=Data Source +BlackboardArtifactNode.getAssocCont.exception.msg=Couldn't get file from database +BlackboardArtifactTagNode.createSheet.srcFile.text=Source File +BlackboardArtifactTagNode.createSheet.unavail.text=Unavailable +BlackboardArtifactTagNode.createSheet.srcFilePath.text=Source File Path +BlackboardArtifactTagNode.createSheet.resultType.text=Result Type +BlackboardArtifactTagNode.createSheet.comment.text=Comment +ContentTagNode.createSheet.file.text=File +ContentTagNode.createSheet.unavail.text=Unavailable +ContentTagNode.createSheet.filePath.text=File Path +ContentTagNode.createSheet.comment.text=Comment +ContentTagTypeNode.displayName.text=File Tags +ContentTagTypeNode.createSheet.name.text=Name +ContentUtils.exception.msg=Can''t extract a {0} +DataModelActionsFactory.srcFileInDir.text=View Source File in Directory +DataModelActionsFactory.fileInDir.text=View File in Directory +DataModelActionsFactory.viewNewWin.text=View in New Window +DataModelActionsFactory.openExtViewer.text=Open in External Viewer +DataModelActionsFactory.srfFileSameMD5.text=Search for files with the same MD5 hash +DataSourcesNode.name=Data Sources +DataSourcesNode.createSheet.name.text=Name +DataSourcesNode.noDesc.text=no description +DeletedContent.fsDelFilter.text=File System +DeletedContent.allDelFilter.text=All +DeletedContent.deletedContentsNode.name=Deleted Files +DeletedContent.createSheet.name.text=Name +DeletedContent.noDesc.text=no description +DeletedContent.createSheet.filterType.text=Filter Type +DeletedContent.createKeys.maxObjects.msg=There are more Deleted Files than can be displayed. Only the first {0} Deleted Files will be shown. +DeletedContent.createNodeForKey.typeNotSupported.msg=Not supported for this type of Displayable Item\: {0} +DirectoryNode.parFolder.text=[parent folder] +DirectoryNode.curFolder.text=[current folder] +DirectoryNode.getActions.viewFileInDir.text=View File in Directory +DirectoryNode.viewInNewWin.text=View in New Window +EmailExtracted.mailAccount.text=Account +EmailExtracted.mailFolder.text=Folder +EmailExtracted.defaultAcct.text=Default +EmailExtracted.defaultFolder.text=Default +EmailExtracted.createSheet.name.text=Name +EmailExtracted.noDesc.text=no description +ExtractedContentNode.name.text=Extracted Content +ExtractedContentNode.createSheet.name.text=Name +ExtractedContentNode.noDesc.text=no description +FileNode.viewFileInDir.text=View File in Directory +FileNode.getActions.viewInNewWin.text=View in New Window +FileNode.getActions.openInExtViewer.text=Open in External Viewer +FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash +FileSize.fileSizeRootNode.name=File Size +FileSize.createSheet.name=Name +FileSize.noDesc.text=no description +FileSize.createSheet.filterType.text=Filter Type +FileSize.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0} +FileTypeChildren.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0} +FileTypeExtensionFilters.tskImgFilter.text=Images +FileTypeExtensionFilters.tskVideoFilter.text=Videos +FileTypeExtensionFilters.tskAudioFilter.text=Audio +FileTypeExtensionFilters.tskArchiveFilter.text=Archives +FileTypeExtensionFilters.tskDocumentFilter.text=Documents +FileTypeExtensionFilters.tskExecFilter.text=Executable +FileTypeExtensionFilters.autDocHtmlFilter.text=HTML +FileTypeExtensionFilters.autDocOfficeFilter.text=Office +FileTypeExtensionFilters.autoDocPdfFilter.text=PDF +FileTypeExtensionFilters.autDocTxtFilter.text=Plain Text +FileTypeExtensionFilters.autDocRtfFilter.text=Rich Text +FileTypeNode.createSheet.filterType.text=Filter Type +FileTypeNode.noDesc.text=no description +FileTypeNode.createSheet.fileExt.text=File Extensions +FileTypesNode.fname.text=File Types +FileTypesNode.createSheet.name=Name +FileTypesNode.noDesc.text=no description +HashsetHits.createSheet.name=Name +HashsetHits.noDesc.text=no description +ImageNode.getActions.viewInNewWin.text=View in New Window +ImageNode.getActions.openFileSearchByAttr.text=Open File Search by Attributes +ImageNode.createSheet.name=Name +ImageNode.noDesc.text=no description +Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI test call returned without error, but version string was null\! +Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI test call returned without error, but version string was ""\! +Installer.tskLibErr.msg=Problem with Sleuth Kit JNI. Test call failed\!\ +\ +Details\: {0} +Installer.tskLibErr.err=Fatal Error\! +InterestingHits.nodeName.text=INTERESTING ITEMS +InterestingHits.displayName.text=Interesting Items +InterestingHits.createSheet.name=Name +InterestingHits.noDesc.text=no description +KeyValueNode.createSheet.name=Name +KeyValueNode.createSheet.na=n/a +KeywordHits.kwHits.text=Keyword Hits +KeywordHits.simpleLiteralSearch.text=Single Literal Keyword Search +KeywordHits.singleRegexSearch.text=Single Regular Expression Search +KeywordHits.createSheet.name=Name +KeywordHits.noDesc.text=no description +KeywordHits.createSheet.listName.text=List Name +KeywordHits.createSheet.numChildren.text=Number of Children +KeywordHits.createSheet.filesWithHits.text=Files with Hits +KeywordHits.createNodeForKey.modTime.displayName=Modified Time +KeywordHits.createNodeForKey.modTime.desc=Modified Time +KeywordHits.createNodeForKey.accessTime.displayName=Access Time +KeywordHits.createNodeForKey.accessTime.desc=Access Time +KeywordHits.createNodeForKey.chgTime.displayName=Change Time +KeywordHits.createNodeForKey.chgTime.desc=Change Time +KeywordHits.createNodeForKey.chgTime.name=ChangeTime +KeywordHits.createNodeForKey.accessTime.name=AccessTime +KeywordHits.createNodeForKey.modTime.name=ModifiedTime +KnownFileFilterNode.selectionContext.dataSources=Data Sources +KnownFileFilterNode.selectionContext.views=Views diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java index 5749b53aa3..ec5ae640ed 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java @@ -25,6 +25,7 @@ import java.util.logging.Logger; import javax.swing.Action; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.actions.DeleteContentTagAction; import org.sleuthkit.datamodel.ContentTag; @@ -57,17 +58,27 @@ import org.sleuthkit.datamodel.TskCoreException; propertySheet.put(properties); } - properties.put(new NodeProperty("File", "File", "", tag.getContent().getName())); + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.text"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.text"), + "", + tag.getContent().getName())); String contentPath; try { contentPath = tag.getContent().getUniquePath(); } catch (TskCoreException ex) { Logger.getLogger(ContentTagNode.class.getName()).log(Level.SEVERE, "Failed to get path for content (id = " + tag.getContent().getId() + ")", ex); - contentPath = "Unavailable"; + contentPath = NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.unavail.text"); } - properties.put(new NodeProperty("File Path", "File Path", "", contentPath)); - properties.put(new NodeProperty("Comment", "Comment", "", tag.getComment())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.text"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.text"), + "", + contentPath)); + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.text"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.text"), + "", + tag.getComment())); return propertySheet; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java index 41dad8ac5b..76136d57fd 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java @@ -24,6 +24,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; @@ -37,7 +38,7 @@ import org.sleuthkit.datamodel.TskCoreException; * then by tag name. */ public class ContentTagTypeNode extends DisplayableItemNode { - private static final String DISPLAY_NAME = "File Tags"; + private static final String DISPLAY_NAME = NbBundle.getMessage(ContentTagTypeNode.class, "ContentTagTypeNode.displayName.text"); private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png"; public ContentTagTypeNode(TagName tagName) { @@ -65,7 +66,11 @@ public class ContentTagTypeNode extends DisplayableItemNode { propertySheet.put(properties); } - properties.put(new NodeProperty("Name", "Name", "", getName())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.text"), + "", + getName())); return propertySheet; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java index 121b5a1cfa..cfd7b56f7f 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentUtils.java @@ -25,6 +25,8 @@ import java.text.SimpleDateFormat; import java.util.TimeZone; import java.util.logging.Level; import java.util.prefs.Preferences; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.SwingWorker; import org.netbeans.api.progress.ProgressHandle; @@ -356,8 +358,9 @@ public final class ContentUtils { @Override protected Void defaultVisit(Content cntnt) { - throw new UnsupportedOperationException("Can't extract a " - + cntnt.getClass().getSimpleName()); + throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(), + "ContentUtils.exception.msg", + cntnt.getClass().getSimpleName())); } } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java index 6660d61868..b69f25ef6d 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.ArrayList; import java.util.List; import javax.swing.Action; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.actions.AddBlackboardArtifactTagAction; import org.sleuthkit.autopsy.actions.AddContentTagAction; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; @@ -46,17 +48,28 @@ import org.sleuthkit.datamodel.VirtualDirectory; // method could be implemented. If the different nodes are necessary, is it merely because of some misuse of the Visitor pattern somewhere? // 2. All of this would be much improved by not constructing nodes with actions, but this might be necessary with pushing of nodes rather than use of lookups to // handle selections. -class DataModelActionsFactory { +class DataModelActionsFactory { + public static final String VIEW_SOURCE_FILE_IN_DIR = NbBundle + .getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.srcFileInDir.text"); + public static final String VIEW_FILE_IN_DIR = NbBundle + .getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.fileInDir.text"); + public static final String VIEW_IN_NEW_WINDOW = NbBundle + .getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.viewNewWin.text"); + public static final String OPEN_IN_EXTERNAL_VIEWER = NbBundle + .getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.openExtViewer.text"); + public static final String SEARCH_FOR_FILES_SAME_MD5 = NbBundle + .getMessage(DataModelActionsFactory.class, "DataModelActionsFactory.srfFileSameMD5.text"); + static List getActions(File file, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file)); final FileNode fileNode = new FileNode(file); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", fileNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", fileNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, fileNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, fileNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); - actions.add(new HashSearchAction("Search for files with the same MD5 hash", fileNode)); + actions.add(new HashSearchAction(SEARCH_FOR_FILES_SAME_MD5, fileNode)); actions.add(null); // creates a menu separator actions.add(AddContentTagAction.getInstance()); if (isArtifactSource) { @@ -68,11 +81,11 @@ class DataModelActionsFactory { static List getActions(LayoutFile file, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file)); LayoutFileNode layoutFileNode = new LayoutFileNode(file); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", layoutFileNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", layoutFileNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, layoutFileNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, layoutFileNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance());// actions.add(null); // creates a menu separator @@ -86,11 +99,11 @@ class DataModelActionsFactory { static List getActions(Directory directory, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), directory)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), directory)); DirectoryNode directoryNode = new DirectoryNode(directory); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", directoryNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", directoryNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator @@ -104,11 +117,11 @@ class DataModelActionsFactory { static List getActions(VirtualDirectory directory, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), directory)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), directory)); VirtualDirectoryNode directoryNode = new VirtualDirectoryNode(directory); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", directoryNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", directoryNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator @@ -122,11 +135,11 @@ class DataModelActionsFactory { static List getActions(LocalFile file, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file)); final LocalFileNode localFileNode = new LocalFileNode(file); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", localFileNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", localFileNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator @@ -140,11 +153,11 @@ class DataModelActionsFactory { static List getActions(DerivedFile file, boolean isArtifactSource) { List actions = new ArrayList<>(); - actions.add(new ViewContextAction((isArtifactSource ? "View Source File in Directory" : "View File in Directory"), file)); + actions.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), file)); final LocalFileNode localFileNode = new LocalFileNode(file); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", localFileNode)); - actions.add(new ExternalViewerAction("Open in External Viewer", localFileNode)); + actions.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode)); + actions.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java index c8f2e93e29..9859f63114 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.datamodel; import java.util.List; import org.openide.nodes.AbstractNode; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.Content; @@ -29,7 +30,7 @@ import org.sleuthkit.datamodel.Content; */ public class DataSourcesNode extends DisplayableItemNode { - public static final String NAME = "Data Sources"; + public static final String NAME = NbBundle.getMessage(DataSourcesNode.class, "DataSourcesNode.name"); public DataSourcesNode(List images) { super(new RootContentChildren(images), Lookups.singleton(NAME)); @@ -57,10 +58,10 @@ public class DataSourcesNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - NAME)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "DataSourcesNode.noDesc.text"), + NAME)); return s; } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java index bf85dd703a..27b384b7f6 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java @@ -29,6 +29,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.AbstractFile; @@ -51,8 +52,12 @@ public class DeletedContent implements AutopsyVisitableItem { public enum DeletedContentFilter implements AutopsyVisitableItem { - FS_DELETED_FILTER(0, "FS_DELETED_FILTER", "File System"), - ALL_DELETED_FILTER(1, "ALL_DELETED_FILTER", "All"); + FS_DELETED_FILTER(0, + "FS_DELETED_FILTER", + NbBundle.getMessage(DeletedContent.class, "DeletedContent.fsDelFilter.text")), + ALL_DELETED_FILTER(1, + "ALL_DELETED_FILTER", + NbBundle.getMessage(DeletedContent.class, "DeletedContent.allDelFilter.text")); private int id; private String name; private String displayName; @@ -97,7 +102,8 @@ public class DeletedContent implements AutopsyVisitableItem { public static class DeletedContentsNode extends DisplayableItemNode { - private static final String NAME = "Deleted Files"; + private static final String NAME = NbBundle.getMessage(DeletedContent.class, + "DeletedContent.deletedContentsNode.name"); private SleuthkitCase skCase; DeletedContentsNode(SleuthkitCase skCase) { @@ -127,10 +133,10 @@ public class DeletedContent implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - NAME)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "DeletedContent.noDesc.text"), + NAME)); return s; } } @@ -191,9 +197,10 @@ public class DeletedContent implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Filter Type", - "Filter Type", - "no description", + ss.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "DeletedContent.noDesc.text"), filter.getDisplayName())); return s; @@ -225,9 +232,9 @@ public class DeletedContent implements AutopsyVisitableItem { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - JOptionPane.showMessageDialog(null, "There are more Deleted Files than can be displayed. Only the first " - + (MAX_OBJECTS - 1) - + " Deleted Files will be shown."); + JOptionPane.showMessageDialog(null, NbBundle.getMessage(this.getClass(), + "DeletedContent.createKeys.maxObjects.msg", + MAX_OBJECTS - 1)); } }); } @@ -330,7 +337,9 @@ public class DeletedContent implements AutopsyVisitableItem { @Override protected AbstractNode defaultVisit(Content di) { - throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString()); + throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(), + "DeletedContent.createNodeForKey.typeNotSupported.msg", + di.toString())); } }); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java index 624facfebc..ced9942d07 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.ArrayList; import java.util.List; import javax.swing.Action; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; import org.sleuthkit.autopsy.actions.AddContentTagAction; import org.sleuthkit.autopsy.directorytree.ExtractAction; @@ -36,8 +38,8 @@ import org.sleuthkit.datamodel.TskData.TSK_FS_NAME_FLAG_ENUM; */ public class DirectoryNode extends AbstractFsContentNode { - public static final String DOTDOTDIR = "[parent folder]"; - public static final String DOTDIR = "[current folder]"; + public static final String DOTDOTDIR = NbBundle.getMessage(DirectoryNode.class, "DirectoryNode.parFolder.text"); + public static final String DOTDIR = NbBundle.getMessage(DirectoryNode.class, "DirectoryNode.curFolder.text"); public DirectoryNode(Directory dir) { this(dir, true); @@ -70,10 +72,11 @@ public class DirectoryNode extends AbstractFsContentNode { public Action[] getActions(boolean popup) { List actions = new ArrayList<>(); if (!getDirectoryBrowseMode()) { - actions.add(new ViewContextAction("View File in Directory", this)); + actions.add(new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DirectoryNode.getActions.viewFileInDir.text"), this)); actions.add(null); // creates a menu separator } - actions.add(new NewWindowViewAction("View in New Window", this)); + actions.add(new NewWindowViewAction(NbBundle.getMessage(this.getClass(), "DirectoryNode.viewInNewWin.text"), this)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java index c5311b3d20..b9a3bd5db2 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java @@ -26,8 +26,9 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; -import org.openide.nodes.AbstractNode; import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; @@ -49,8 +50,8 @@ public class EmailExtracted implements AutopsyVisitableItem { private static final String LABEL_NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getLabel(); private static final String DISPLAY_NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getDisplayName(); private static final Logger logger = Logger.getLogger(EmailExtracted.class.getName()); - private static final String MAIL_ACCOUNT = "Account"; - private static final String MAIL_FOLDER = "Folder"; + private static final String MAIL_ACCOUNT = NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.mailAccount.text"); + private static final String MAIL_FOLDER = NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.mailFolder.text"); private static final String MAIL_PATH_SEPARATOR = "/"; private SleuthkitCase skCase; private Map>> accounts; @@ -104,8 +105,8 @@ public class EmailExtracted implements AutopsyVisitableItem { if (split.length < 4) { logger.log(Level.WARNING, "Unexpected number of tokens when parsing email PATH: " + split.length + ", will use defaults"); - parsed.put(MAIL_ACCOUNT, "Default"); - parsed.put(MAIL_FOLDER, "Default"); + parsed.put(MAIL_ACCOUNT, NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.defaultAcct.text")); + parsed.put(MAIL_FOLDER, NbBundle.getMessage(EmailExtracted.class, "EmailExtracted.defaultFolder.text")); return parsed; } @@ -152,10 +153,10 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + getName())); return s; } @@ -234,10 +235,10 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + getName())); return s; } @@ -281,10 +282,10 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + getName())); return s; } @@ -351,10 +352,10 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + getName())); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java index bd63cdb7e2..e1cebc2fed 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.datamodel; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -29,7 +30,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; */ public class ExtractedContentNode extends DisplayableItemNode { - public static final String NAME = "Extracted Content"; + public static final String NAME = NbBundle.getMessage(ExtractedContentNode.class, "ExtractedContentNode.name.text"); public ExtractedContentNode(SleuthkitCase skCase) { super(Children.create(new ExtractedContentChildren(skCase), true), Lookups.singleton(NAME)); @@ -57,9 +58,9 @@ public class ExtractedContentNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.text"), + NbBundle.getMessage(this.getClass(), "ExtractedContentNode.noDesc.text"), NAME)); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java index f16325609a..7c6fc354dd 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.ArrayList; import java.util.List; import javax.swing.Action; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; import org.sleuthkit.autopsy.actions.AddContentTagAction; import org.sleuthkit.autopsy.directorytree.ExternalViewerAction; @@ -76,14 +78,17 @@ public class FileNode extends AbstractFsContentNode { public Action[] getActions(boolean popup) { List actionsList = new ArrayList<>(); if (!this.getDirectoryBrowseMode()) { - actionsList.add(new ViewContextAction("View File in Directory", this)); + actionsList.add(new ViewContextAction(NbBundle.getMessage(this.getClass(), "FileNode.viewFileInDir.text"), this)); actionsList.add(null); // creates a menu separator } - actionsList.add(new NewWindowViewAction("View in New Window", this)); - actionsList.add(new ExternalViewerAction("Open in External Viewer", this)); + actionsList.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "FileNode.getActions.viewInNewWin.text"), this)); + actionsList.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "FileNode.getActions.openInExtViewer.text"), this)); actionsList.add(null); // creates a menu separator actionsList.add(ExtractAction.getInstance()); - actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this)); + actionsList.add(new HashSearchAction( + NbBundle.getMessage(this.getClass(), "FileNode.getActions.searchFilesSameMD5.text"), this)); actionsList.add(null); // creates a menu separator actionsList.add(AddContentTagAction.getInstance()); actionsList.addAll(ContextMenuExtensionPoint.getActions()); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java index 2d8b44f8e5..7cfe49367d 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java @@ -27,6 +27,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.AbstractFile; @@ -99,7 +100,7 @@ public class FileSize implements AutopsyVisitableItem { public static class FileSizeRootNode extends DisplayableItemNode { - private static final String NAME = "File Size"; + private static final String NAME = NbBundle.getMessage(FileSize.class, "FileSize.fileSizeRootNode.name"); private SleuthkitCase skCase; FileSizeRootNode(SleuthkitCase skCase) { @@ -129,9 +130,9 @@ public class FileSize implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name"), + NbBundle.getMessage(this.getClass(), "FileSize.noDesc.text"), NAME)); return s; } @@ -193,10 +194,10 @@ public class FileSize implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Filter Type", - "Filter Type", - "no description", - filter.getDisplayName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "FileSize.noDesc.text"), + filter.getDisplayName())); return s; } @@ -327,7 +328,10 @@ public class FileSize implements AutopsyVisitableItem { @Override protected AbstractNode defaultVisit(Content di) { - throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString()); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), + "FileSize.exception.notSupported.msg", + di.toString())); } }); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeChildren.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeChildren.java index 3376e9f0d9..4628c6f607 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeChildren.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeChildren.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.AbstractNode; import org.openide.nodes.ChildFactory; @@ -125,7 +127,10 @@ class FileTypeChildren extends ChildFactory { @Override protected AbstractNode defaultVisit(Content di) { - throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString()); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), + "FileTypeChildren.exception.notSupported.msg", + di.toString())); } }); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeExtensionFilters.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeExtensionFilters.java index b90a257419..aa98f52fd4 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeExtensionFilters.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeExtensionFilters.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.Arrays; import java.util.List; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.SleuthkitCase; /** @@ -31,12 +33,24 @@ import org.sleuthkit.datamodel.SleuthkitCase; // root node filters public enum RootFilter implements AutopsyVisitableItem,SearchFilterInterface { - TSK_IMAGE_FILTER(0, "TSK_IMAGE_FILTER", "Images", FileTypeExtensions.getImageExtensions()), - TSK_VIDEO_FILTER(1, "TSK_VIDEO_FILTER", "Videos", FileTypeExtensions.getVideoExtensions()), - TSK_AUDIO_FILTER(2, "TSK_AUDIO_FILTER", "Audio", FileTypeExtensions.getAudioExtensions()), - TSK_ARCHIVE_FILTER(3, "TSK_ARCHIVE_FILTER", "Archives", FileTypeExtensions.getArchiveExtensions()), - TSK_DOCUMENT_FILTER(3, "TSK_DOCUMENT_FILTER", "Documents", Arrays.asList(".doc", ".docx", ".pdf", ".xls", ".rtf", ".txt")), - TSK_EXECUTABLE_FILTER(3, "TSK_EXECUTABLE_FILTER", "Executable", Arrays.asList(".exe", ".dll", ".bat", ".cmd", ".com")); + TSK_IMAGE_FILTER(0, "TSK_IMAGE_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskImgFilter.text"), + FileTypeExtensions.getImageExtensions()), + TSK_VIDEO_FILTER(1, "TSK_VIDEO_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskVideoFilter.text"), + FileTypeExtensions.getVideoExtensions()), + TSK_AUDIO_FILTER(2, "TSK_AUDIO_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskAudioFilter.text"), + FileTypeExtensions.getAudioExtensions()), + TSK_ARCHIVE_FILTER(3, "TSK_ARCHIVE_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskArchiveFilter.text"), + FileTypeExtensions.getArchiveExtensions()), + TSK_DOCUMENT_FILTER(3, "TSK_DOCUMENT_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskDocumentFilter.text"), + Arrays.asList(".doc", ".docx", ".pdf", ".xls", ".rtf", ".txt")), + TSK_EXECUTABLE_FILTER(3, "TSK_EXECUTABLE_FILTER", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.tskExecFilter.text"), + Arrays.asList(".exe", ".dll", ".bat", ".cmd", ".com")); private int id; private String name; @@ -78,12 +92,21 @@ import org.sleuthkit.datamodel.SleuthkitCase; // document sub-node filters public enum DocumentFilter implements AutopsyVisitableItem,SearchFilterInterface { - AUT_DOC_HTML(0, "AUT_DOC_HTML", "HTML", Arrays.asList(".htm", ".html")), - AUT_DOC_OFFICE(1, "AUT_DOC_OFFICE", "Office", Arrays.asList(".doc", ".docx", - ".odt", ".xls", ".xlsx", ".ppt", ".pptx")), - AUT_DOC_PDF(2, "AUT_DOC_PDF", "PDF", Arrays.asList(".pdf")), - AUT_DOC_TXT(3, "AUT_DOC_TXT", "Plain Text", Arrays.asList(".txt")), - AUT_DOC_RTF(4, "AUT_DOC_RTF", "Rich Text", Arrays.asList(".rtf")); + AUT_DOC_HTML(0, "AUT_DOC_HTML", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocHtmlFilter.text"), + Arrays.asList(".htm", ".html")), + AUT_DOC_OFFICE(1, "AUT_DOC_OFFICE", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocOfficeFilter.text"), + Arrays.asList(".doc", ".docx", ".odt", ".xls", ".xlsx", ".ppt", ".pptx")), + AUT_DOC_PDF(2, "AUT_DOC_PDF", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autoDocPdfFilter.text"), + Arrays.asList(".pdf")), + AUT_DOC_TXT(3, "AUT_DOC_TXT", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocTxtFilter.text"), + Arrays.asList(".txt")), + AUT_DOC_RTF(4, "AUT_DOC_RTF", + NbBundle.getMessage(FileTypeExtensionFilters.class, "FileTypeExtensionFilters.autDocRtfFilter.text"), + Arrays.asList(".rtf")); private int id; private String name; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java index 02c8b89e1c..282d22761f 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -61,19 +62,19 @@ public class FileTypeNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Filter Type", - "Filter Type", - "no description", - filter.getDisplayName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.text"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.noDesc.text"), + filter.getDisplayName())); String extensions = ""; for (String ext : filter.getFilter()) { extensions += "'" + ext + "', "; } extensions = extensions.substring(0, extensions.lastIndexOf(',')); - ss.put(new NodeProperty("File Extensions", - "File Extensions", - "no description", - extensions)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.text"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.text"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.noDesc.text"), + extensions)); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java index 98b64f7d9b..23a6ca6d8e 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -28,7 +29,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; */ public class FileTypesNode extends DisplayableItemNode { - private static final String FNAME = "File Types"; + private static final String FNAME = NbBundle.getMessage(FileTypesNode.class, "FileTypesNode.fname.text"); private SleuthkitCase skCase; /** @@ -71,9 +72,9 @@ public class FileTypesNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "FileTypesNode.noDesc.text"), getName())); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java index 846cd5f7f5..2a714d8bf8 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java @@ -28,6 +28,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.AbstractNode; import org.openide.nodes.ChildFactory; @@ -131,10 +133,10 @@ public class HashsetHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.noDesc.text"), + getName())); return s; } @@ -177,10 +179,10 @@ public class HashsetHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.noDesc.text"), + getName())); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java index bea81eebc7..a25d0aac7f 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import javax.swing.Action; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.directorytree.ExplorerNodeActionVisitor; import org.sleuthkit.autopsy.directorytree.FileSearchAction; import org.sleuthkit.autopsy.directorytree.NewWindowViewAction; @@ -66,8 +67,10 @@ public class ImageNode extends AbstractContentNode { public Action[] getActions(boolean context) { List actionsList = new ArrayList(); - actionsList.add(new NewWindowViewAction("View in New Window", this)); - actionsList.add(new FileSearchAction("Open File Search by Attributes")); + actionsList.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "ImageNode.getActions.viewInNewWin.text"), this)); + actionsList.add(new FileSearchAction( + NbBundle.getMessage(this.getClass(), "ImageNode.getActions.openFileSearchByAttr.text"))); actionsList.addAll(ExplorerNodeActionVisitor.getActions(content)); return actionsList.toArray(new Action[0]); @@ -82,7 +85,10 @@ public class ImageNode extends AbstractContentNode { s.put(ss); } - ss.put(new NodeProperty("Name", "Name", "no description", getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "ImageNode.noDesc.text"), + getName())); // @@@ add more properties here... return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Installer.java b/Core/src/org/sleuthkit/autopsy/datamodel/Installer.java index 1357b0ccd6..a9fa9c2a48 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Installer.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Installer.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel; import java.awt.Component; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JOptionPane; import org.openide.LifecycleManager; @@ -62,9 +64,9 @@ public class Installer extends ModuleInstall { String skVersion = SleuthkitJNI.getVersion(); if (skVersion == null) { - throw new Exception("Sleuth Kit JNI test call returned without error, but version string was null!"); + throw new Exception(NbBundle.getMessage(this.getClass(), "Installer.exception.tskVerStringNull.msg")); } else if (skVersion.length() == 0) { - throw new Exception("Sleuth Kit JNI test call returned without error, but version string was \"\"!"); + throw new Exception(NbBundle.getMessage(this.getClass(), "Installer.exception.taskVerStringBang.msg")); } else { logger.log(Level.CONFIG, "Sleuth Kit Version: {0}", skVersion); } @@ -75,8 +77,8 @@ public class Installer extends ModuleInstall { // Normal error box log handler won't be loaded yet, so show error here. final Component parentComponent = null; // Use default window frame. - final String message = "Problem with Sleuth Kit JNI. Test call failed!\n\nDetails: " + e.toString(); - final String title = "Fatal Error!"; + final String message = NbBundle.getMessage(this.getClass(), "Installer.tskLibErr.msg", e.toString()); + final String title = NbBundle.getMessage(this.getClass(), "Installer.tskLibErr.err"); final int messageType = JOptionPane.ERROR_MESSAGE; JOptionPane.showMessageDialog( diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java index cc165631f4..b860fe2ea2 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java @@ -27,6 +27,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; @@ -41,8 +43,9 @@ import org.sleuthkit.datamodel.TskException; public class InterestingHits implements AutopsyVisitableItem { - private static final String INTERESTING_ITEMS = "INTERESTING ITEMS"; - private static final String DISPLAY_NAME = "Interesting Items"; + private static final String INTERESTING_ITEMS = NbBundle + .getMessage(InterestingHits.class, "InterestingHits.nodeName.text"); + private static final String DISPLAY_NAME = NbBundle.getMessage(InterestingHits.class, "InterestingHits.displayName.text"); private static final Logger logger = Logger.getLogger(InterestingHits.class.getName()); private SleuthkitCase skCase; private Map> interestingItemsMap; @@ -132,10 +135,10 @@ public class InterestingHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.noDesc.text"), + getName())); return s; } @@ -178,10 +181,10 @@ public class InterestingHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.noDesc.text"), + getName())); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java index e1330f0f92..89d90fa371 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java @@ -23,6 +23,7 @@ import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Sheet; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.AbstractFile; @@ -78,12 +79,18 @@ import org.sleuthkit.datamodel.AbstractFile; // table view drops first column of properties under assumption // that it contains the node's name - ss.put(new NodeProperty("Name", "Name", "n/a", data.getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name"), + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.na"), + data.getName())); for (Map.Entry entry : data.getMap().entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); - ss.put(new NodeProperty(key, key, "n/a", value)); + ss.put(new NodeProperty(key, + key, + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.na"), + value)); } return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java index 59055bdcff..1d4e7435f5 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java @@ -27,12 +27,13 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; -import org.openide.util.Exceptions; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; @@ -48,10 +49,12 @@ public class KeywordHits implements AutopsyVisitableItem { private SleuthkitCase skCase; private static final Logger logger = Logger.getLogger(KeywordHits.class.getName()); - private static final String KEYWORD_HITS = "Keyword Hits"; + private static final String KEYWORD_HITS = NbBundle.getMessage(KeywordHits.class, "KeywordHits.kwHits.text"); public static final String NAME = BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getLabel(); - public static final String SIMPLE_LITERAL_SEARCH = "Single Literal Keyword Search"; - public static final String SIMPLE_REGEX_SEARCH = "Single Regular Expression Search"; + public static final String SIMPLE_LITERAL_SEARCH = NbBundle + .getMessage(KeywordHits.class, "KeywordHits.simpleLiteralSearch.text"); + public static final String SIMPLE_REGEX_SEARCH = NbBundle + .getMessage(KeywordHits.class, "KeywordHits.singleRegexSearch.text"); // Map from String (list name) to Map from string (keyword) to set (artifact ids) private Map>> topLevelMap; private Map>> listsMap; @@ -190,10 +193,10 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + getName())); return s; } @@ -240,16 +243,16 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("List Name", - "List Name", - "no description", - name)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + name)); - ss.put(new NodeProperty("Number of Children", - "Number of Children", - "no description", - children.size())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + children.size())); return s; } @@ -321,16 +324,16 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty("List Name", - "List Name", - "no description", - getDisplayName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + getDisplayName())); - ss.put(new NodeProperty("Files with Hits", - "Files with Hits", - "no description", - children.size())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.text"), + NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + children.size())); return s; } @@ -371,19 +374,28 @@ public class KeywordHits implements AutopsyVisitableItem { return n; } - n.addNodeProperty(new NodeProperty("ModifiedTime", - "Modified Time", - "Modified Time", + n.addNodeProperty(new NodeProperty( + NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.modTime.name"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.modTime.displayName"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.modTime.desc"), ContentUtils.getStringTime(file.getMtime(), file))); - n.addNodeProperty(new NodeProperty("AccessTime", - "Access Time", - "Access Time", + n.addNodeProperty(new NodeProperty( + NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.accessTime.name"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.accessTime.displayName"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.accessTime.desc"), ContentUtils.getStringTime(file.getAtime(), file))); - n.addNodeProperty(new NodeProperty("ChangeTime", - "Change Time", - "Change Time", + n.addNodeProperty(new NodeProperty( + NbBundle.getMessage(this.getClass(), "KeywordHits.createNodeForKey.chgTime.name"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.chgTime.displayName"), + NbBundle.getMessage(this.getClass(), + "KeywordHits.createNodeForKey.chgTime.desc"), ContentUtils.getStringTime(file.getCtime(), file))); - + return n; } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KnownFileFilterNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/KnownFileFilterNode.java index 30cb2ddab3..ce37222728 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KnownFileFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KnownFileFilterNode.java @@ -23,6 +23,7 @@ import java.util.prefs.PreferenceChangeListener; import java.util.prefs.Preferences; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.openide.util.NbBundle; import org.openide.util.NbPreferences; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.TskData; @@ -56,8 +57,8 @@ public class KnownFileFilterNode extends FilterNode { * is a sub-node of. (i.e. Data Sources, Views, Results) */ public enum SelectionContext { - DATA_SOURCES("Data Sources"), // Subnode of DataSources - VIEWS("Views"), // Subnode of Views + DATA_SOURCES(NbBundle.getMessage(KnownFileFilterNode.class, "KnownFileFilterNode.selectionContext.dataSources")), // Subnode of DataSources + VIEWS(NbBundle.getMessage(KnownFileFilterNode.class, "KnownFileFilterNode.selectionContext.views")), // Subnode of Views OTHER(""); // Subnode of another node. private final String displayName; From 6eeee4aef68da96a17521416d507bd752e142fd5 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 24 Feb 2014 15:30:30 -0800 Subject: [PATCH 19/90] Completed translation of core-corecompoenentinterface --- .../autopsy/corecomponentinterfaces/Bundle_ja.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties index e69de29bb2..8e2fd233f8 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties @@ -0,0 +1,3 @@ +OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 +CoreComponentControl.CTL_DirectoryTreeTopComponent=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30C4\u30EA\u30FC +CoreComponentControl.CTL_FavoritesTopComponent=\u304A\u6C17\u306B\u5165\u308A \ No newline at end of file From 8d53fc2126d12998ab678cdef4ea5090cb8167dc Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 24 Feb 2014 16:13:22 -0800 Subject: [PATCH 20/90] Initial translation 2 questions on Jira --- .../autopsy/contentviewers/Bundle_ja.properties | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties index e69de29bb2..5bc99142a5 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties @@ -0,0 +1,16 @@ +Metadata.tableRowTitle.name=\u540D\u79F0 +Metadata.tableRowTitle.size=\u30B5\u30A4\u30BA +#todo is file name allocation same as file allocation? +Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +Metadata.tableRowTitle.modified=\u4FEE\u6B63\u6E08\u307F +Metadata.tableRowTitle.accessed=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F +Metadata.tableRowTitle.created=\u4F5C\u6210\u6E08\u307F +Metadata.tableRowTitle.changed=\u5909\u66F4\u6E08\u307F +Metadata.tableRowContent.md5notCalc=\u672A\u8A08\u7B97 +Metadata.tableRowTitle.md5=MD5 +Metadata.tableRowTitle.hashLookupResults=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7\u7D50\u679C +Metadata.tableRowTitle.internalid=\u5185\u90E8ID +Metadata.tableRowTitle.localPath=\u30ED\u30FC\u30AB\u30EB\u30D1\u30B9 +Metadata.title=\u30E1\u30BF\u30C7\u30FC\u30BF +Metadata.toolTip=\u30D5\u30A1\u30A4\u30EB\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002 \ No newline at end of file From 4cf1c5474fc5cec0c6213832df1daa7de6943e26 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 24 Feb 2014 16:20:11 -0800 Subject: [PATCH 21/90] Completed translation --- .../autopsy/corecomponentinterfaces/Bundle_ja.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties new file mode 100644 index 0000000000..c0fc921783 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties @@ -0,0 +1 @@ +OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 \ No newline at end of file From 01251e448a7d8842fc12b64f5d737d59018ab9ea Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 24 Feb 2014 18:14:27 -0800 Subject: [PATCH 22/90] Completed translation --- .../corecomponents/Bundle_ja.properties | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties new file mode 100644 index 0000000000..b16066f34b --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -0,0 +1,26 @@ +CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 +CTL_DataContentTopComponent=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 +CTL_NodeTableAction=\u30CE\u30FC\u30C9\u8868 +CTL_NodeTableTopComponent=\u30CE\u30FC\u30C9\u8868\u30C6\u30FC\u30D6\u30EB +CTL_HexViewAction=Hex\u30D3\u30E5\u30FC +CTL_HexViewTopComponent=Hex\u30D3\u30E5\u30FC +CTL_StringViewAction=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC +CTL_StringViewTopComponent=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC +#todo what is this "about"? About action? Need the noun to make translation sound natural +CTL_CustomAboutAction= +HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_HexViewTopComponent=\u3053\u308C\u306FHex\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_StringViewTopComponent=\u3053\u308C\u306F\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 +OutputViewPanel.prevPageButton.text=\u524D\u306E\u30DA\u30FC\u30B8 +OutputViewPanel.currentPageLabel.text=1 +OutputViewPanel.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A +OutputViewPanel.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +OutputViewPanel.nextPageButton.text=\u6B21\u306E\u30DA\u30FC\u30B8 +DataContentViewerHex.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +DataContentViewerHex.pageLabel.text=\u30DA\u30FC\u30B8 +DataContentViewerHex.currentPageLabel.text=1 +DataContentViewerHex.totalPageLabel.text=100 +DataContentViewerString.totalPageLabel.text=100 +DataContentViewerString.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 \ No newline at end of file From 14be2e9ce5e888890f21e384eae03c03af525ed4 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 25 Feb 2014 12:56:02 -0500 Subject: [PATCH 23/90] Pulled remaining static strings into Bundle.properties. Created Bundle_ja --- .../autopsy/datamodel/ArtifactTypeNode.java | 14 +- .../datamodel/BlackboardArtifactNode.java | 20 +- .../autopsy/datamodel/Bundle.properties | 200 ++++++++++++++---- .../autopsy/datamodel/Bundle_ja.properties | 0 .../autopsy/datamodel/ContentTagNode.java | 15 +- .../autopsy/datamodel/ContentTagTypeNode.java | 5 +- .../autopsy/datamodel/DataSourcesNode.java | 8 +- .../autopsy/datamodel/DeletedContent.java | 12 +- .../autopsy/datamodel/EmailExtracted.java | 24 +-- .../datamodel/ExtractedContentNode.java | 7 +- .../sleuthkit/autopsy/datamodel/FileSize.java | 12 +- .../autopsy/datamodel/FileTypeNode.java | 12 +- .../autopsy/datamodel/FileTypesNode.java | 6 +- .../autopsy/datamodel/HashsetHits.java | 16 +- .../autopsy/datamodel/ImageNode.java | 6 +- .../autopsy/datamodel/InterestingHits.java | 14 +- .../autopsy/datamodel/KeyValueNode.java | 8 +- .../autopsy/datamodel/KeywordHits.java | 30 +-- .../autopsy/datamodel/LayoutFileNode.java | 16 +- .../autopsy/datamodel/LocalFileNode.java | 17 +- .../autopsy/datamodel/RecentFiles.java | 22 +- .../datamodel/RecentFilesFilterChildren.java | 7 +- .../datamodel/RecentFilesFilterNode.java | 9 +- .../autopsy/datamodel/RecentFilesNode.java | 11 +- .../autopsy/datamodel/ResultsNode.java | 11 +- .../autopsy/datamodel/TagNameNode.java | 42 ++-- .../sleuthkit/autopsy/datamodel/TagsNode.java | 8 +- .../autopsy/datamodel/ViewsNode.java | 11 +- .../datamodel/VirtualDirectoryNode.java | 12 +- .../autopsy/datamodel/VolumeNode.java | 34 ++- 30 files changed, 395 insertions(+), 214 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java index 5dc9f18907..92d1be9395 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactTypeNode.java @@ -18,12 +18,10 @@ */ package org.sleuthkit.autopsy.datamodel; -import java.util.Map; import java.util.logging.Level; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; -import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Sheet; import org.openide.util.lookup.Lookups; @@ -67,14 +65,14 @@ public class ArtifactTypeNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.text"), - NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.text"), - NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.name"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.displayName"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.artType.desc"), type.getDisplayName())); - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.text"), - NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.text"), - NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.name"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.displayName"), + NbBundle.getMessage(this.getClass(), "ArtifactTypeNode.createSheet.childCnt.desc"), childCount)); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java index 4ead0f896b..d15b1fc0c3 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java @@ -110,8 +110,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { Map map = new LinkedHashMap(); fillPropertyMap(map, artifact); - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.text"), - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.srcFile.displayName"), NO_DESCR, associated.getName())); @@ -137,8 +137,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { AbstractFile af = (AbstractFile) associated; ext = af.getNameExtension(); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.text"), - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.ext.displayName"), NO_DESCR, ext)); @@ -157,8 +157,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { logger.log(Level.WARNING, "Could not find expected TSK_FILE_TYPE_SIG attribute."); } else { ss.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.text"), - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.mimeType.displayName"), NO_DESCR, actualMimeType)); } @@ -177,8 +177,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { if (sourcePath.isEmpty() == false) { ss.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.text"), - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.filePath.displayName"), NO_DESCR, sourcePath)); } @@ -197,8 +197,8 @@ public class BlackboardArtifactNode extends DisplayableItemNode { if (dataSource.isEmpty() == false) { ss.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.text"), - NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.text"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactNode.createSheet.dataSrc.displayName"), NO_DESCR, dataSource)); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties index 40ba78b479..e22111e7c2 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties @@ -25,27 +25,39 @@ AbstractFsContentNode.noDesc.text=no description ArtifactStringContent.getStr.srcFilePath.text=Source File Path ArtifactStringContent.getStr.err=Error getting content ArtifactStringContent.exception.msg=Couldn't get file from database -ArtifactTypeNode.createSheet.artType.text=Artifact Type -ArtifactTypeNode.noDesc.text=no description -ArtifactTypeNode.createSheet.childCnt.text=Child Count +ArtifactTypeNode.createSheet.artType.name=Artifact Type +ArtifactTypeNode.createSheet.artType.displayName=Artifact Type +ArtifactTypeNode.createSheet.artType.desc=no description +ArtifactTypeNode.createSheet.childCnt.name=Child Count +ArtifactTypeNode.createSheet.childCnt.displayName=Child Count +ArtifactTypeNode.createSheet.childCnt.desc=no description BlackboardArtifactNode.noDesc.text=no description -BlackboardArtifactNode.createSheet.srcFile.text=Source File -BlackboardArtifactNode.createSheet.ext.text=Extension -BlackboardArtifactNode.createSheet.mimeType.text=MIME Type -BlackboardArtifactNode.createSheet.filePath.text=File Path -BlackboardArtifactNode.createSheet.dataSrc.text=Data Source +BlackboardArtifactNode.createSheet.srcFile.name=Source File +BlackboardArtifactNode.createSheet.srcFile.displayName=Source File +BlackboardArtifactNode.createSheet.ext.name=Extension +BlackboardArtifactNode.createSheet.ext.displayName=Extension +BlackboardArtifactNode.createSheet.mimeType.name=MIME Type +BlackboardArtifactNode.createSheet.mimeType.displayName=MIME Type +BlackboardArtifactNode.createSheet.filePath.name=File Path +BlackboardArtifactNode.createSheet.filePath.displayName=File Path +BlackboardArtifactNode.createSheet.dataSrc.name=Data Source +BlackboardArtifactNode.createSheet.dataSrc.displayName=Data Source BlackboardArtifactNode.getAssocCont.exception.msg=Couldn't get file from database BlackboardArtifactTagNode.createSheet.srcFile.text=Source File BlackboardArtifactTagNode.createSheet.unavail.text=Unavailable BlackboardArtifactTagNode.createSheet.srcFilePath.text=Source File Path BlackboardArtifactTagNode.createSheet.resultType.text=Result Type BlackboardArtifactTagNode.createSheet.comment.text=Comment -ContentTagNode.createSheet.file.text=File -ContentTagNode.createSheet.unavail.text=Unavailable -ContentTagNode.createSheet.filePath.text=File Path -ContentTagNode.createSheet.comment.text=Comment +ContentTagNode.createSheet.file.name=File +ContentTagNode.createSheet.file.displayName=File +ContentTagNode.createSheet.unavail.path=Unavailable +ContentTagNode.createSheet.filePath.name=File Path +ContentTagNode.createSheet.filePath.displayName=File Path +ContentTagNode.createSheet.comment.name=Comment +ContentTagNode.createSheet.comment.displayName=Comment ContentTagTypeNode.displayName.text=File Tags -ContentTagTypeNode.createSheet.name.text=Name +ContentTagTypeNode.createSheet.name.name=Name +ContentTagTypeNode.createSheet.name.displayName=Name ContentUtils.exception.msg=Can''t extract a {0} DataModelActionsFactory.srcFileInDir.text=View Source File in Directory DataModelActionsFactory.fileInDir.text=View File in Directory @@ -53,14 +65,18 @@ DataModelActionsFactory.viewNewWin.text=View in New Window DataModelActionsFactory.openExtViewer.text=Open in External Viewer DataModelActionsFactory.srfFileSameMD5.text=Search for files with the same MD5 hash DataSourcesNode.name=Data Sources -DataSourcesNode.createSheet.name.text=Name -DataSourcesNode.noDesc.text=no description +DataSourcesNode.createSheet.name.name=Name +DataSourcesNode.createSheet.name.displayName=Name +DataSourcesNode.createSheet.name.desc=no description DeletedContent.fsDelFilter.text=File System DeletedContent.allDelFilter.text=All DeletedContent.deletedContentsNode.name=Deleted Files -DeletedContent.createSheet.name.text=Name -DeletedContent.noDesc.text=no description -DeletedContent.createSheet.filterType.text=Filter Type +DeletedContent.createSheet.name.name=Name +DeletedContent.createSheet.name.displayName=Name +DeletedContent.createSheet.name.desc=no description +DeletedContent.createSheet.filterType.name=Filter Type +DeletedContent.createSheet.filterType.displayName=Filter Type +DeletedContent.createSheet.filterType.desc=no description DeletedContent.createKeys.maxObjects.msg=There are more Deleted Files than can be displayed. Only the first {0} Deleted Files will be shown. DeletedContent.createNodeForKey.typeNotSupported.msg=Not supported for this type of Displayable Item\: {0} DirectoryNode.parFolder.text=[parent folder] @@ -71,19 +87,24 @@ EmailExtracted.mailAccount.text=Account EmailExtracted.mailFolder.text=Folder EmailExtracted.defaultAcct.text=Default EmailExtracted.defaultFolder.text=Default -EmailExtracted.createSheet.name.text=Name -EmailExtracted.noDesc.text=no description +EmailExtracted.createSheet.name.name=Name +EmailExtracted.createSheet.name.displayName=Name +EmailExtracted.createSheet.name.desc=no description ExtractedContentNode.name.text=Extracted Content -ExtractedContentNode.createSheet.name.text=Name -ExtractedContentNode.noDesc.text=no description +ExtractedContentNode.createSheet.name.name=Name +ExtractedContentNode.createSheet.name.displayName=Name +ExtractedContentNode.createSheet.name.desc=no description FileNode.viewFileInDir.text=View File in Directory FileNode.getActions.viewInNewWin.text=View in New Window FileNode.getActions.openInExtViewer.text=Open in External Viewer FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash FileSize.fileSizeRootNode.name=File Size -FileSize.createSheet.name=Name -FileSize.noDesc.text=no description -FileSize.createSheet.filterType.text=Filter Type +FileSize.createSheet.name.name=Name +FileSize.createSheet.name.displayName=Name +FileSize.createSheet.name.desc=no description +FileSize.createSheet.filterType.name=Filter Type +FileSize.createSheet.filterType.displayName=Filter Type +FileSize.createSheet.filterType.desc=no description FileSize.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0} FileTypeChildren.exception.notSupported.msg=Not supported for this type of Displayable Item\: {0} FileTypeExtensionFilters.tskImgFilter.text=Images @@ -97,38 +118,54 @@ FileTypeExtensionFilters.autDocOfficeFilter.text=Office FileTypeExtensionFilters.autoDocPdfFilter.text=PDF FileTypeExtensionFilters.autDocTxtFilter.text=Plain Text FileTypeExtensionFilters.autDocRtfFilter.text=Rich Text -FileTypeNode.createSheet.filterType.text=Filter Type -FileTypeNode.noDesc.text=no description -FileTypeNode.createSheet.fileExt.text=File Extensions +FileTypeNode.createSheet.filterType.name=Filter Type +FileTypeNode.createSheet.filterType.displayName=Filter Type +FileTypeNode.createSheet.filterType.desc=no description +FileTypeNode.createSheet.fileExt.name=File Extensions +FileTypeNode.createSheet.fileExt.displayName=File Extensions +FileTypeNode.createSheet.fileExt.desc=no description FileTypesNode.fname.text=File Types -FileTypesNode.createSheet.name=Name -FileTypesNode.noDesc.text=no description -HashsetHits.createSheet.name=Name -HashsetHits.noDesc.text=no description +FileTypesNode.createSheet.name.name=Name +FileTypesNode.createSheet.name.displayName=Name +FileTypesNode.createSheet.name.desc=no description +HashsetHits.createSheet.name.name=Name +HashsetHits.createSheet.name.displayName=Name +HashsetHits.createSheet.name.desc=no description ImageNode.getActions.viewInNewWin.text=View in New Window ImageNode.getActions.openFileSearchByAttr.text=Open File Search by Attributes -ImageNode.createSheet.name=Name -ImageNode.noDesc.text=no description +ImageNode.createSheet.name.name=Name +ImageNode.createSheet.name.displayName=Name +ImageNode.createSheet.name.desc=no description Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI test call returned without error, but version string was null\! Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI test call returned without error, but version string was ""\! Installer.tskLibErr.msg=Problem with Sleuth Kit JNI. Test call failed\!\ \ Details\: {0} Installer.tskLibErr.err=Fatal Error\! -InterestingHits.nodeName.text=INTERESTING ITEMS +InterestingHits.interestingItems.text=INTERESTING ITEMS InterestingHits.displayName.text=Interesting Items -InterestingHits.createSheet.name=Name -InterestingHits.noDesc.text=no description -KeyValueNode.createSheet.name=Name -KeyValueNode.createSheet.na=n/a +InterestingHits.createSheet.name.name=Name +InterestingHits.createSheet.name.displayName=Name +InterestingHits.createSheet.name.desc=no description +KeyValueNode.createSheet.name.name=Name +KeyValueNode.createSheet.name.displayName=Name +KeyValueNode.createSheet.name.desc=n/a +KeyValueNode.createSheet.map.desc=n/a KeywordHits.kwHits.text=Keyword Hits KeywordHits.simpleLiteralSearch.text=Single Literal Keyword Search KeywordHits.singleRegexSearch.text=Single Regular Expression Search -KeywordHits.createSheet.name=Name -KeywordHits.noDesc.text=no description -KeywordHits.createSheet.listName.text=List Name -KeywordHits.createSheet.numChildren.text=Number of Children -KeywordHits.createSheet.filesWithHits.text=Files with Hits +KeywordHits.createSheet.name.name=Name +KeywordHits.createSheet.name.displayName=Name +KeywordHits.createSheet.name.desc=no description +KeywordHits.createSheet.listName.name=List Name +KeywordHits.createSheet.listName.displayName=List Name +KeywordHits.createSheet.listName.desc=no description +KeywordHits.createSheet.numChildren.name=Number of Children +KeywordHits.createSheet.numChildren.displayName=Number of Children +KeywordHits.createSheet.numChildren.desc=no description +KeywordHits.createSheet.filesWithHits.name=Files with Hits +KeywordHits.createSheet.filesWithHits.displayName=Files with Hits +KeywordHits.createSheet.filesWithHits.desc=no description KeywordHits.createNodeForKey.modTime.displayName=Modified Time KeywordHits.createNodeForKey.modTime.desc=Modified Time KeywordHits.createNodeForKey.accessTime.displayName=Access Time @@ -140,3 +177,78 @@ KeywordHits.createNodeForKey.accessTime.name=AccessTime KeywordHits.createNodeForKey.modTime.name=ModifiedTime KnownFileFilterNode.selectionContext.dataSources=Data Sources KnownFileFilterNode.selectionContext.views=Views +LayoutFileNode.propertyType.parts=Parts +LayoutFileNode.createSheet.name.name=Name +LayoutFileNode.createSheet.name.displayName=Name +LayoutFileNode.createSheet.name.desc=no description +LayoutFileNode.createSheet.noDescr.text=no description +LayoutFileNode.getActions.viewInNewWin.text=View in New Window +LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer +LocalFileNode.createSheet.name.name=Name +LocalFileNode.createSheet.name.displayName=Name +LocalFileNode.createSheet.name.desc=no description +LocalFileNode.createSheet.noDescr.text=no description +LocalFileNode.getActions.viewInNewWin.text=View in New Window +LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer +LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash +RecentFiles.aut0DayFilter.displayName.text=Final Day +RecentFiles.aut1dayFilter.displayName.text=Final Day - 1 +RecentFiles.aut2dayFilter.displayName.text=Final Day - 2 +RecentFiles.aut3dayFilter.displayName.text=Final Day - 3 +RecentFiles.aut4dayFilter.displayName.text=Final Day - 4 +RecentFiles.aut5dayFilter.displayName.text=Final Day - 5 +RecentFiles.aut6dayFilter.displayName.text=Final Day - 6 +RecentFilesFilterChildren.exception.defaultVisit.msg=Not supported for this type of Displayable Item\: {0} +RecentFilesFilterNode.createSheet.filterType.name=Filter Type +RecentFilesFilterNode.createSheet.filterType.displayName=Filter Type +RecentFilesFilterNode.createSheet.filterType.desc=no description +RecentFilesNode.createSheet.name.name=Name +RecentFilesNode.createSheet.name.displayName=Name +RecentFilesNode.createSheet.name.desc=no description +RecentFilesNode.name.text=Recent Files +ResultsNode.name.text=Results +ResultsNode.createSheet.name.name=Name +ResultsNode.createSheet.name.displayName=Name +ResultsNode.createSheet.name.desc=no description +TagNameNode.namePlusTags.text={0} Tags +TagNameNode.contentTagTypeNodeKey.text=Content Tags +TagNameNode.bbArtTagTypeNodeKey.text=Result Tags +TagNameNode.bookmark.text=Bookmark +TagNameNode.createSheet.name.name=Name +TagNameNode.createSheet.name.displayName=Name +TagsNode.displayName.text=Tags +TagsNode.createSheet.name.name=Name +TagsNode.createSheet.name.displayName=Name +ViewsNode.name.text=Views +ViewsNode.createSheet.name.name=Name +ViewsNode.createSheet.name.displayName=Name +ViewsNode.createSheet.name.desc=no description +VirtualDirectoryNode.getActions.viewInNewWin.text=View in New Window +VirtualDirectoryNode.createSheet.name.name=Name +VirtualDirectoryNode.createSheet.name.displayName=Name +VirtualDirectoryNode.createSheet.name.desc=no description +VirtualDirectoryNode.createSheet.noDesc=no description +VolumeNode.getActions.viewInNewWin.text=View in New Window +VolumeNode.createSheet.name.name=Name +VolumeNode.createSheet.name.displayName=Name +VolumeNode.createSheet.name.desc=no description +VolumeNode.createSheet.id.name=ID +VolumeNode.createSheet.id.displayName=ID +VolumeNode.createSheet.id.desc=no description +VolumeNode.createSheet.startSector.name=Starting Sector +VolumeNode.createSheet.startSector.displayName=Starting Sector +VolumeNode.createSheet.startSector.desc=no description +VolumeNode.createSheet.lenSectors.name=Length in Sectors +VolumeNode.createSheet.lenSectors.displayName=Length in Sectors +VolumeNode.createSheet.lenSectors.desc=no description +VolumeNode.createSheet.description.name=Description +VolumeNode.createSheet.description.displayName=Description +VolumeNode.createSheet.description.desc=no description +VolumeNode.createSheet.flags.name=Flags +VolumeNode.createSheet.flags.displayName=Flags +VolumeNode.createSheet.flags.desc=no description + + + + + diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java index ec5ae640ed..efaa296933 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java @@ -58,8 +58,8 @@ import org.sleuthkit.datamodel.TskCoreException; propertySheet.put(properties); } - properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.text"), - NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.text"), + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.name"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.file.displayName"), "", tag.getContent().getName())); String contentPath; @@ -68,15 +68,14 @@ import org.sleuthkit.datamodel.TskCoreException; } catch (TskCoreException ex) { Logger.getLogger(ContentTagNode.class.getName()).log(Level.SEVERE, "Failed to get path for content (id = " + tag.getContent().getId() + ")", ex); - contentPath = NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.unavail.text"); + contentPath = NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.unavail.path"); } - properties.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.text"), - NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.text"), + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.name"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.filePath.displayName"), "", contentPath)); - properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.text"), - NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.text"), + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.name"), + NbBundle.getMessage(this.getClass(), "ContentTagNode.createSheet.comment.displayName"), "", tag.getComment())); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java index 76136d57fd..b6a39b0266 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagTypeNode.java @@ -66,9 +66,8 @@ public class ContentTagTypeNode extends DisplayableItemNode { propertySheet.put(properties); } - properties.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.text"), + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "ContentTagTypeNode.createSheet.name.displayName"), "", getName())); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java index 9859f63114..26d2409bf4 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java @@ -19,7 +19,7 @@ package org.sleuthkit.autopsy.datamodel; import java.util.List; -import org.openide.nodes.AbstractNode; + import org.openide.nodes.Sheet; import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; @@ -58,9 +58,9 @@ public class DataSourcesNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "DataSourcesNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "DataSourcesNode.createSheet.name.desc"), NAME)); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java index 27b384b7f6..f2e6bc1912 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java @@ -133,9 +133,9 @@ public class DeletedContent implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "DeletedContent.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.name.desc"), NAME)); return s; } @@ -198,9 +198,9 @@ public class DeletedContent implements AutopsyVisitableItem { } ss.put(new NodeProperty( - NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "DeletedContent.noDesc.text"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.name"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.displayName"), + NbBundle.getMessage(this.getClass(), "DeletedContent.createSheet.filterType.desc"), filter.getDisplayName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java index b9a3bd5db2..0a993de2ec 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java @@ -153,9 +153,9 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"), getName())); return s; @@ -235,9 +235,9 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"), getName())); return s; @@ -282,9 +282,9 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"), getName())); return s; @@ -352,9 +352,9 @@ public class EmailExtracted implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "EmailExtracted.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "EmailExtracted.createSheet.name.desc"), getName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java index e1cebc2fed..781d975f85 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContentNode.java @@ -18,7 +18,6 @@ */ package org.sleuthkit.autopsy.datamodel; -import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Sheet; import org.openide.util.NbBundle; @@ -58,9 +57,9 @@ public class ExtractedContentNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.text"), - NbBundle.getMessage(this.getClass(), "ExtractedContentNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "ExtractedContentNode.createSheet.name.desc"), NAME)); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java index 7cfe49367d..0c2ca91b45 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java @@ -130,9 +130,9 @@ public class FileSize implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name"), - NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name"), - NbBundle.getMessage(this.getClass(), "FileSize.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.name.desc"), NAME)); return s; } @@ -194,9 +194,9 @@ public class FileSize implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "FileSize.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.name"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.displayName"), + NbBundle.getMessage(this.getClass(), "FileSize.createSheet.filterType.desc"), filter.getDisplayName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java index 282d22761f..317dbe0a63 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypeNode.java @@ -62,18 +62,18 @@ public class FileTypeNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.text"), - NbBundle.getMessage(this.getClass(), "FileTypeNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.name"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.displayName"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.filterType.desc"), filter.getDisplayName())); String extensions = ""; for (String ext : filter.getFilter()) { extensions += "'" + ext + "', "; } extensions = extensions.substring(0, extensions.lastIndexOf(',')); - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.text"), - NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.text"), - NbBundle.getMessage(this.getClass(), "FileTypeNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.name"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.displayName"), + NbBundle.getMessage(this.getClass(), "FileTypeNode.createSheet.fileExt.desc"), extensions)); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java index 23a6ca6d8e..953e7a1d45 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java @@ -72,9 +72,9 @@ public class FileTypesNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "FileTypesNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "FileTypesNode.createSheet.name.desc"), getName())); return s; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java index 2a714d8bf8..602b952c20 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java @@ -20,8 +20,6 @@ package org.sleuthkit.autopsy.datamodel; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -31,12 +29,10 @@ import java.util.logging.Level; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; -import org.openide.nodes.AbstractNode; import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; -import org.openide.util.Exceptions; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; @@ -133,9 +129,9 @@ public class HashsetHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "HashsetHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.desc"), getName())); return s; @@ -179,9 +175,9 @@ public class HashsetHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "HashsetHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "HashsetHits.createSheet.name.desc"), getName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java index a25d0aac7f..b3a3274d55 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java @@ -85,9 +85,9 @@ public class ImageNode extends AbstractContentNode { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "ImageNode.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "ImageNode.createSheet.name.desc"), getName())); // @@@ add more properties here... diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java index b860fe2ea2..214eec198f 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java @@ -44,7 +44,7 @@ import org.sleuthkit.datamodel.TskException; public class InterestingHits implements AutopsyVisitableItem { private static final String INTERESTING_ITEMS = NbBundle - .getMessage(InterestingHits.class, "InterestingHits.nodeName.text"); + .getMessage(InterestingHits.class, "InterestingHits.interestingItems.text"); private static final String DISPLAY_NAME = NbBundle.getMessage(InterestingHits.class, "InterestingHits.displayName.text"); private static final Logger logger = Logger.getLogger(InterestingHits.class.getName()); private SleuthkitCase skCase; @@ -135,9 +135,9 @@ public class InterestingHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "InterestingHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.desc"), getName())); return s; @@ -181,9 +181,9 @@ public class InterestingHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "InterestingHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "InterestingHits.createSheet.name.desc"), getName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java index 89d90fa371..0ed726de05 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeyValueNode.java @@ -79,9 +79,9 @@ import org.sleuthkit.datamodel.AbstractFile; // table view drops first column of properties under assumption // that it contains the node's name - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name"), - NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.na"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.name.desc"), data.getName())); for (Map.Entry entry : data.getMap().entrySet()) { @@ -89,7 +89,7 @@ import org.sleuthkit.datamodel.AbstractFile; Object value = entry.getValue(); ss.put(new NodeProperty(key, key, - NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.na"), + NbBundle.getMessage(this.getClass(), "KeyValueNode.createSheet.map.desc"), value)); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java index 1d4e7435f5..b517642978 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java @@ -193,9 +193,9 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name"), - NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.name.desc"), getName())); return s; @@ -243,15 +243,15 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.displayName"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.desc"), name)); - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.displayName"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.numChildren.desc"), children.size())); return s; @@ -324,15 +324,15 @@ public class KeywordHits implements AutopsyVisitableItem { s.put(ss); } - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.displayName"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.listName.desc"), getDisplayName())); - ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.text"), - NbBundle.getMessage(this.getClass(), "KeywordHits.noDesc.text"), + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.name"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.displayName"), + NbBundle.getMessage(this.getClass(), "KeywordHits.createSheet.filesWithHits.desc"), children.size())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java index a896442f04..569318dd02 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/LayoutFileNode.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import javax.swing.Action; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; import org.sleuthkit.autopsy.directorytree.ExternalViewerAction; import org.sleuthkit.autopsy.directorytree.ExtractAction; @@ -42,7 +43,7 @@ public class LayoutFileNode extends AbstractAbstractFileNode { PARTS { @Override public String toString() { - return "Parts"; + return NbBundle.getMessage(this.getClass(), "LayoutFileNode.propertyType.parts"); } } } @@ -75,9 +76,12 @@ public class LayoutFileNode extends AbstractAbstractFileNode { Map map = new LinkedHashMap(); fillPropertyMap(map, content); - ss.put(new NodeProperty("Name", "Name", "no description", getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "LayoutFileNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "LayoutFileNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "LayoutFileNode.createSheet.name.desc"), + getName())); - final String NO_DESCR = "no description"; + final String NO_DESCR = NbBundle.getMessage(this.getClass(), "LayoutFileNode.createSheet.noDescr.text"); for (Map.Entry entry : map.entrySet()) { ss.put(new NodeProperty(entry.getKey(), entry.getKey(), NO_DESCR, entry.getValue())); } @@ -104,8 +108,10 @@ public class LayoutFileNode extends AbstractAbstractFileNode { @Override public Action[] getActions(boolean context) { List actionsList = new ArrayList<>(); - actionsList.add(new NewWindowViewAction("View in New Window", this)); - actionsList.add(new ExternalViewerAction("Open in External Viewer", this)); + actionsList.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.viewInNewWin.text"), this)); + actionsList.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.openInExtViewer.text"), this)); actionsList.add(null); // creates a menu separator actionsList.add(ExtractAction.getInstance()); actionsList.add(null); // creates a menu separator diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java index 02121410da..38aa2d7ab7 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/LocalFileNode.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import javax.swing.Action; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; import org.sleuthkit.autopsy.directorytree.ExternalViewerAction; import org.sleuthkit.autopsy.directorytree.ExtractAction; @@ -67,9 +68,12 @@ public class LocalFileNode extends AbstractAbstractFileNode { Map map = new LinkedHashMap(); fillPropertyMap(map, content); - ss.put(new NodeProperty("Name", "Name", "no description", getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "LocalFileNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "LocalFileNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "LocalFileNode.createSheet.name.desc"), + getName())); - final String NO_DESCR = "no description"; + final String NO_DESCR = NbBundle.getMessage(this.getClass(), "LocalFileNode.createSheet.noDescr.text"); for (Map.Entry entry : map.entrySet()) { ss.put(new NodeProperty(entry.getKey(), entry.getKey(), NO_DESCR, entry.getValue())); } @@ -81,11 +85,14 @@ public class LocalFileNode extends AbstractAbstractFileNode { @Override public Action[] getActions(boolean context) { List actionsList = new ArrayList<>(); - actionsList.add(new NewWindowViewAction("View in New Window", this)); - actionsList.add(new ExternalViewerAction("Open in External Viewer", this)); + actionsList.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.viewInNewWin.text"), this)); + actionsList.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.openInExtViewer.text"), this)); actionsList.add(null); // creates a menu separator actionsList.add(ExtractAction.getInstance()); - actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this)); + actionsList.add(new HashSearchAction( + NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.searchFilesSameMd5.text"), this)); actionsList.add(null); // creates a menu separator actionsList.add(AddContentTagAction.getInstance()); actionsList.addAll(ContextMenuExtensionPoint.getActions()); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFiles.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFiles.java index 2745951574..75168f8b21 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFiles.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFiles.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.datamodel; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.SleuthkitCase; /** @@ -28,13 +29,20 @@ import org.sleuthkit.datamodel.SleuthkitCase; SleuthkitCase skCase; public enum RecentFilesFilter implements AutopsyVisitableItem { - AUT_0DAY_FILTER(0, "AUT_0DAY_FILTER", "Final Day", 0), - AUT_1DAY_FILTER(0, "AUT_1DAY_FILTER", "Final Day - 1", 1), - AUT_2DAY_FILTER(0, "AUT_2DAY_FILTER", "Final Day - 2", 2), - AUT_3DAY_FILTER(0, "AUT_3DAY_FILTER", "Final Day - 3", 3), - AUT_4DAY_FILTER(0, "AUT_4DAY_FILTER", "Final Day - 4", 4), - AUT_5DAY_FILTER(0, "AUT_5DAY_FILTER", "Final Day - 5", 5), - AUT_6DAY_FILTER(0, "AUT_6DAY_FILTER", "Final Day - 6", 6); + AUT_0DAY_FILTER(0, "AUT_0DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut0DayFilter.displayName.text"), 0), + AUT_1DAY_FILTER(0, "AUT_1DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut1dayFilter.displayName.text"), 1), + AUT_2DAY_FILTER(0, "AUT_2DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut2dayFilter.displayName.text"), 2), + AUT_3DAY_FILTER(0, "AUT_3DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut3dayFilter.displayName.text"), 3), + AUT_4DAY_FILTER(0, "AUT_4DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut4dayFilter.displayName.text"), 4), + AUT_5DAY_FILTER(0, "AUT_5DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut5dayFilter.displayName.text"), 5), + AUT_6DAY_FILTER(0, "AUT_6DAY_FILTER", + NbBundle.getMessage(RecentFiles.class, "RecentFiles.aut6dayFilter.displayName.text"), 6); private int id; private String name; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterChildren.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterChildren.java index 374fe54db2..636f1f82e8 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterChildren.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterChildren.java @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.AbstractNode; import org.openide.nodes.ChildFactory; @@ -136,7 +138,10 @@ import org.sleuthkit.datamodel.TskData; @Override protected AbstractNode defaultVisit(Content di) { - throw new UnsupportedOperationException("Not supported for this type of Displayable Item: " + di.toString()); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), + "RecentFilesFilterChildren.exception.defaultVisit.msg", + di.toString())); } }); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java index 6646eb24c3..4b898b1aa6 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesFilterNode.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.datamodel; import java.util.Calendar; import java.util.Locale; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; @@ -71,9 +73,10 @@ public class RecentFilesFilterNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Filter Type", - "Filter Type", - "no description", + ss.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "RecentFilesFilterNode.createSheet.filterType.name"), + NbBundle.getMessage(this.getClass(), "RecentFilesFilterNode.createSheet.filterType.displayName"), + NbBundle.getMessage(this.getClass(), "RecentFilesFilterNode.createSheet.filterType.desc"), filter.getDisplayName())); return s; diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java index ecacf715e2..83488e4bff 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/RecentFilesNode.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.datamodel; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -29,7 +30,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; */ public class RecentFilesNode extends DisplayableItemNode { - private static final String NAME = "Recent Files"; + private static final String NAME = NbBundle.getMessage(RecentFilesNode.class, "RecentFilesNode.name.text"); private SleuthkitCase skCase; RecentFilesNode(SleuthkitCase skCase) { @@ -60,10 +61,10 @@ public class RecentFilesNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - NAME)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "RecentFilesNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "RecentFilesNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "RecentFilesNode.createSheet.name.desc"), + NAME)); return s; } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java index cbd1d941ea..eb48ab3ff0 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ResultsNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel; import java.util.Arrays; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -28,7 +29,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; */ public class ResultsNode extends DisplayableItemNode { - public static final String NAME = "Results"; + public static final String NAME = NbBundle.getMessage(ResultsNode.class, "ResultsNode.name.text"); public ResultsNode(SleuthkitCase sleuthkitCase) { super(new RootContentChildren(Arrays.asList(new ExtractedContent(sleuthkitCase), @@ -62,10 +63,10 @@ public class ResultsNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - NAME)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ResultsNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "ResultsNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "ResultsNode.createSheet.name.desc"), + NAME)); return s; } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/TagNameNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/TagNameNode.java index 38d140b039..eb6d09a4d0 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/TagNameNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/TagNameNode.java @@ -24,6 +24,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; @@ -40,9 +41,14 @@ public class TagNameNode extends DisplayableItemNode { private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png"; private static final String BOOKMARK_TAG_ICON_PATH = "org/sleuthkit/autopsy/images/star-bookmark-icon-16.png"; private final TagName tagName; + private static final String CONTENT_TAG_TYPE_NODE_KEY = NbBundle.getMessage(TagNameNode.class, + "TagNameNode.contentTagTypeNodeKey.text"); + private static final String BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY = NbBundle.getMessage(TagNameNode.class, + "TagNameNode.bbArtTagTypeNodeKey.text"); public TagNameNode(TagName tagName) { - super(Children.create(new TagTypeNodeFactory(tagName), true), Lookups.singleton(tagName.getDisplayName() + " Tags")); + super(Children.create(new TagTypeNodeFactory(tagName), true), Lookups.singleton( + NbBundle.getMessage(TagNameNode.class, "TagNameNode.namePlusTags.text", tagName.getDisplayName()))); this.tagName = tagName; long tagsCount = 0; @@ -56,7 +62,7 @@ public class TagNameNode extends DisplayableItemNode { super.setName(tagName.getDisplayName()); super.setDisplayName(tagName.getDisplayName() + " (" + tagsCount + ")"); - if (tagName.getDisplayName().equals("Bookmark")) { + if (tagName.getDisplayName().equals(NbBundle.getMessage(this.getClass(), "TagNameNode.bookmark.text"))) { setIconBaseWithExtension(BOOKMARK_TAG_ICON_PATH); } else { @@ -73,7 +79,10 @@ public class TagNameNode extends DisplayableItemNode { propertySheet.put(properties); } - properties.put(new NodeProperty("Name", "Name", tagName.getDescription(), getName())); + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "TagNameNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "TagNameNode.createSheet.name.displayName"), + tagName.getDescription(), + getName())); return propertySheet; } @@ -91,8 +100,6 @@ public class TagNameNode extends DisplayableItemNode { } private static class TagTypeNodeFactory extends ChildFactory { - private static final String CONTENT_TAG_TYPE_NODE_KEY = "Content Tags"; - private static final String BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY = "Result Tags"; private final TagName tagName; TagTypeNodeFactory(TagName tagName) { @@ -108,14 +115,23 @@ public class TagNameNode extends DisplayableItemNode { @Override protected Node createNodeForKey(String key) { - switch (key) { - case CONTENT_TAG_TYPE_NODE_KEY: - return new ContentTagTypeNode(tagName); - case BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY: - return new BlackboardArtifactTagTypeNode(tagName); - default: - Logger.getLogger(TagNameNode.class.getName()).log(Level.SEVERE, "{0} not a recognized key", key); - return null; +// switch (key) { +// case CONTENT_TAG_TYPE_NODE_KEY: +// return new ContentTagTypeNode(tagName); +// case BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY: +// return new BlackboardArtifactTagTypeNode(tagName); +// default: +// Logger.getLogger(TagNameNode.class.getName()).log(Level.SEVERE, "{0} not a recognized key", key); +// return null; +// } + // converted switch to if/else due to non-constant strings in case key + if (CONTENT_TAG_TYPE_NODE_KEY.equals(key)) { + return new ContentTagTypeNode(tagName); + } else if (BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY.equals(key)) { + return new BlackboardArtifactTagTypeNode(tagName); + } else { + Logger.getLogger(TagNameNode.class.getName()).log(Level.SEVERE, "{0} not a recognized key", key); + return null; } } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/TagsNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/TagsNode.java index b9acc010e7..6b6569319a 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/TagsNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/TagsNode.java @@ -24,6 +24,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; @@ -37,7 +38,7 @@ import org.sleuthkit.datamodel.TskCoreException; * tag name. */ class TagsNode extends DisplayableItemNode { - private static final String DISPLAY_NAME = "Tags"; + private static final String DISPLAY_NAME = NbBundle.getMessage(TagsNode.class, "TagsNode.displayName.text"); private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png"; public TagsNode() { @@ -66,7 +67,10 @@ import org.sleuthkit.datamodel.TskCoreException; propertySheet.put(properties); } - properties.put(new NodeProperty("Name", "Name", "", getName())); + properties.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "TagsNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "TagsNode.createSheet.name.displayName"), + "", + getName())); return propertySheet; } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java index 1690eb310b..50473bb5db 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ViewsNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel; import java.util.Arrays; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.datamodel.SleuthkitCase; @@ -30,7 +31,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; */ public class ViewsNode extends DisplayableItemNode { - public static final String NAME = "Views"; + public static final String NAME = NbBundle.getMessage(ViewsNode.class, "ViewsNode.name.text"); public ViewsNode(SleuthkitCase sleuthkitCase) { super(new RootContentChildren(Arrays.asList( @@ -64,10 +65,10 @@ public class ViewsNode extends DisplayableItemNode { s.put(ss); } - ss.put(new NodeProperty("Name", - "Name", - "no description", - NAME)); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "ViewsNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "ViewsNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "ViewsNode.createSheet.name.desc"), + NAME)); return s; } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java index d1a66fd25c..400275f62b 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import javax.swing.Action; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.directorytree.ExtractAction; @@ -77,7 +78,8 @@ public class VirtualDirectoryNode extends AbstractAbstractFileNode actions = new ArrayList<>(); - actions.add(new NewWindowViewAction("View in New Window", this)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.getActions.viewInNewWin.text"), this)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); actions.add(null); // creates a menu separator @@ -97,9 +99,13 @@ public class VirtualDirectoryNode extends AbstractAbstractFileNode map = new LinkedHashMap(); fillPropertyMap(map, content); - ss.put(new NodeProperty("Name", "Name", "no description", getName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), + "VirtualDirectoryNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.createSheet.name.desc"), + getName())); - final String NO_DESCR = "no description"; + final String NO_DESCR = NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.createSheet.noDesc"); for (Map.Entry entry : map.entrySet()) { ss.put(new NodeProperty(entry.getKey(), entry.getKey(), NO_DESCR, entry.getValue())); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java index 9e009a8f0a..26d7b8dde5 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import javax.swing.Action; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.directorytree.ExplorerNodeActionVisitor; import org.sleuthkit.autopsy.directorytree.NewWindowViewAction; import org.sleuthkit.datamodel.Volume; @@ -70,7 +71,8 @@ public class VolumeNode extends AbstractContentNode { public Action[] getActions(boolean popup) { List actionsList = new ArrayList(); - actionsList.add(new NewWindowViewAction("View in New Window", this)); + actionsList.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "VolumeNode.getActions.viewInNewWin.text"), this)); actionsList.addAll(ExplorerNodeActionVisitor.getActions(content)); return actionsList.toArray(new Action[0]); @@ -85,12 +87,30 @@ public class VolumeNode extends AbstractContentNode { s.put(ss); } - ss.put(new NodeProperty("Name", "Name", "no description", this.getDisplayName())); - ss.put(new NodeProperty("ID", "ID", "no description", content.getAddr())); - ss.put(new NodeProperty("Starting Sector", "Starting Sector", "no description", content.getStart())); - ss.put(new NodeProperty("Length in Sectors", "Length in Sectors", "no description", content.getLength())); - ss.put(new NodeProperty("Description", "Description", "no description", content.getDescription())); - ss.put(new NodeProperty("Flags", "Flags", "no description", content.getFlagsAsString())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.name.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.name.desc"), + this.getDisplayName())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.id.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.id.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.id.desc"), + content.getAddr())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.startSector.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.startSector.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.startSector.desc"), + content.getStart())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.lenSectors.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.lenSectors.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.lenSectors.desc"), + content.getLength())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.description.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.description.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.description.desc"), + content.getDescription())); + ss.put(new NodeProperty(NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.flags.name"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.flags.displayName"), + NbBundle.getMessage(this.getClass(), "VolumeNode.createSheet.flags.desc"), + content.getFlagsAsString())); return s; } From da60c4ec80ca84dc745da5df77cc80d5694e7e8b Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 13:00:48 -0500 Subject: [PATCH 24/90] Testing a theory about timeouts causing the post-ingest hang. --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index fff49b76e6..bd762b4a4d 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -279,7 +279,8 @@ public class RegressionTest extends TestCase { // but randomize the timing so that we don't always get the same error // consistently, making it seem like default behavior Random rand = new Random(); - new Timeout("pausing", 10000 + (rand.nextInt(15000) + 5000)).sleep(); + new Timeout("pausing", 10000).sleep(); + //new Timeout("pausing", 10000 + (rand.nextInt(15000) + 5000)).sleep(); screenshot("Finished Ingest"); } From 7060219f585e17a88871f77d0e882df9b6b74142 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 13:37:31 -0500 Subject: [PATCH 25/90] Adding more logging. --- .../sleuthkit/autopsy/testing/RegressionTest.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index bd762b4a4d..28379d5c5c 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -265,22 +265,27 @@ public class RegressionTest extends TestCase { new Timeout("pausing", 5000).sleep(); // give it a second (or five) to process } logger.info("Enqueue took " + (System.currentTimeMillis() - start) + "ms"); + int count = 0; while (man.isIngestRunning()) { - + count++; new Timeout("pausing", 1000).sleep(); // give it a second (or five) to process } + logger.info("count was " + count); + count = 0; new Timeout("pausing", 15000).sleep(); // give it a second (or fifteen) to process boolean sleep = true; while (man.areModulesRunning()) { - new Timeout("pausing", 5000).sleep(); // give it a second (or five) to process + count++; + logger.info("count is " + count); + new Timeout("pausing", 5000).sleep(); // give it a second (or five) to process } + logger.info("Ingest (including enqueue) took " + (System.currentTimeMillis() - start) + "ms"); // allow keyword search to finish saving artifacts, just in case // but randomize the timing so that we don't always get the same error // consistently, making it seem like default behavior Random rand = new Random(); - new Timeout("pausing", 10000).sleep(); - //new Timeout("pausing", 10000 + (rand.nextInt(15000) + 5000)).sleep(); + new Timeout("pausing", 10000 + (rand.nextInt(15000) + 5000)).sleep(); screenshot("Finished Ingest"); } From 9ea848b525558ba935661f9a8aeb1de3ca368238 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 14:17:42 -0500 Subject: [PATCH 26/90] Logging to see which module is hanging up regression tests. --- Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 6ccd1b89dd..485a9012e6 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -591,6 +591,7 @@ public class IngestManager { public synchronized boolean areModulesRunning() { for (IngestModuleAbstract serv : abstractFileModules) { if (serv.hasBackgroundJobsRunning()) { + logger.info("module " + serv.toString() " is running"); return true; } } From a33fb0f115c9767f8964ec8ba3787768a232aca6 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 14:26:04 -0500 Subject: [PATCH 27/90] Making log statement a bit more clear. --- Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 485a9012e6..2e2f7bd6db 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -591,7 +591,7 @@ public class IngestManager { public synchronized boolean areModulesRunning() { for (IngestModuleAbstract serv : abstractFileModules) { if (serv.hasBackgroundJobsRunning()) { - logger.info("module " + serv.toString() " is running"); + logger.log(Level.INFO, "Module " + serv.toString() + " is running"); return true; } } From aa5fc9766866c6cc56e8f6bfac7da717d5af9604 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 14:50:31 -0500 Subject: [PATCH 28/90] Trying a different logging method. --- Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 2e2f7bd6db..4e5eea7cc1 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -591,7 +591,7 @@ public class IngestManager { public synchronized boolean areModulesRunning() { for (IngestModuleAbstract serv : abstractFileModules) { if (serv.hasBackgroundJobsRunning()) { - logger.log(Level.INFO, "Module " + serv.toString() + " is running"); + logger.info("Module " + serv.toString() + " is running"); return true; } } From 8e54ea18ec9f9a1786290b2041fe61be507e1568 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 25 Feb 2014 15:19:22 -0500 Subject: [PATCH 29/90] Pulled static strings into Bundle.properties. Created Bundle_ja --- .../BlackboardArtifactTagTypeNode.java | 10 +++- .../autopsy/directorytree/Bundle.properties | 53 +++++++++++++++++-- .../directorytree/Bundle_ja.properties | 0 .../directorytree/ChangeViewAction.java | 7 +-- .../directorytree/DataResultFilterNode.java | 46 ++++++++++------ .../DirectoryTreeFilterNode.java | 10 ++-- .../DirectoryTreeTopComponent.java | 12 +++-- .../ExplorerNodeActionVisitor.java | 26 ++++++--- .../autopsy/directorytree/ExtractAction.java | 26 ++++++--- .../directorytree/ExtractUnallocAction.java | 29 +++++++--- .../directorytree/ResultDeleteAction.java | 16 ++++-- 11 files changed, 178 insertions(+), 57 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/BlackboardArtifactTagTypeNode.java b/Core/src/org/sleuthkit/autopsy/directorytree/BlackboardArtifactTagTypeNode.java index 067b68a49c..0b3d2099d7 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/BlackboardArtifactTagTypeNode.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/BlackboardArtifactTagTypeNode.java @@ -24,6 +24,7 @@ import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.nodes.Sheet; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; @@ -42,7 +43,8 @@ import org.sleuthkit.datamodel.TskCoreException; * and blackboard artifact tags, grouped first by tag type, then by tag name. */ public class BlackboardArtifactTagTypeNode extends DisplayableItemNode { - private static final String DISPLAY_NAME = "Result Tags"; + private static final String DISPLAY_NAME = NbBundle.getMessage(BlackboardArtifactTagTypeNode.class, + "BlackboardArtifactTagTypeNode.displayName.text"); private static final String ICON_PATH = "org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png"; public BlackboardArtifactTagTypeNode(TagName tagName) { @@ -70,7 +72,11 @@ public class BlackboardArtifactTagTypeNode extends DisplayableItemNode { propertySheet.put(properties); } - properties.put(new NodeProperty("Name", "Name", "", getName())); + properties.put(new NodeProperty( + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagTypeNode.createSheet.name.name"), + NbBundle.getMessage(this.getClass(), "BlackboardArtifactTagTypeNode.createSheet.name.displayName"), + "", + getName())); return propertySheet; } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties index 0420f6278a..dfef5e7451 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties @@ -1,7 +1,6 @@ -CTL_DirectoryTreeAction=DirectoryTree -CTL_DirectoryTreeExplorerAction=DirectoryTreeExplorer +#CTL_DirectoryTreeAction=DirectoryTree +#CTL_DirectoryTreeExplorerAction=DirectoryTreeExplorer CTL_DirectoryTreeTopComponent=Directory Tree -#CTL_FileBrowserAction=FileBrowser (new) HINT_DirectoryTreeTopComponent=This is a DirectoryTree window OpenIDE-Module-Name=DirectoryTree FileSystemDetailsPanel.imgOffsetLabel.text=Image Offset: @@ -51,3 +50,51 @@ ImageDetailsPanel.imgTotalSizeValue.text=... ImageDetailsPanel.imgTotalSizeLabel.text=Total Size: ImageDetailsPanel.imgHashValue.text=... ImageDetailsPanel.imgHashLabel.text=Hash Value: +BlackboardArtifactTagTypeNode.displayName.text=Result Tags +BlackboardArtifactTagTypeNode.createSheet.name.name=Name +BlackboardArtifactTagTypeNode.createSheet.name.displayName=Name +ChangeViewAction.menuItem.view=View +ChangeViewAction.menuItem.view.hex=Hex +ChangeViewAction.menuItem.view.string=String +DataResultFilterNode.action.viewFileInDir.text=View File in Directory +DataResultFilterNode.action.viewSrcFileInDir.text=View Source File in Directory +DataResultFilterNode.action.viewInNewWin.text=View in New Window +DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer +DataResultFilterNode.action.searchFilesSameMd5.text=Search for files with the same MD5 hash +DataResultFilterNode.action.viewInDir.text=View in Directory +DirectoryTreeFilterNode.action.collapseAll.text=Collapse All +DirectoryTreeFilterNode.action.openFileSrcByAttr.text=Open File Search by Attributes +DirectoryTreeFilterNode.action.runIngestMods.text=Run Ingest Modules +DirectoryTreeTopComponent.title.text=Directory Listing +DirectoryTreeTopComponent.action.viewArtContent.text=View Artifact Content +DirectoryTreeTopComponent.moduleErr=Module Error +DirectoryTreeTopComponent.moduleErr.msg=A module caused an error listening to DirectoryTreeTopComponent updates. See log to determine which module. Some data could be incomplete. +ExplorerNodeActionVisitor.action.imgDetails.title=Image Details +ExplorerNodeActionVisitor.action.extUnallocToSingleFiles=Extract Unallocated Space to Single Files +ExplorerNodeActionVisitor.action.fileSystemDetails.title=File System Details +ExplorerNodeActionVisitor.action.volumeDetails.title=Volume Details +ExplorerNodeActionVisitor.action.extUnallocToSingleFile=Extract Unallocated Space to Single File +ExplorerNodeActionVisitor.volDetail.noVolMatchErr=Error\: No Volume Matches. +ExplorerNodeActionVisitor.imgDetail.noVolMatchesErr=Error\: No Volume Matches. +ExplorerNodeActionVisitor.exception.probGetParent.text=Problem getting parent from {0}\: {1} +ExtractAction.title.extractFiles.text=Extract File(s) +ExtractAction.extractFiles.cantCreateFolderErr.msg=Couldn't create selected folder. +ExtractAction.confDlg.destFileExist.msg=Destination file {0} already exists, overwrite? +ExtractAction.confDlg.destFileExist.title=File Exists +ExtractAction.msgDlg.cantOverwriteFile.msg=Couldn''t overwrite existing file {0} +ExtractAction.notifyDlg.noFileToExtr.msg=No file(s) to extract. +ExtractAction.progress.extracting=Extracting +ExtractAction.progress.cancellingExtraction={0} (Cancelling...) +ExtractAction.done.notifyMsg.fileExtr.text=File(s) extracted. +ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=Unallocated Space is already being extracted on this Image. Please select a different Image. +ExtractUnallocAction.msgDlg.folderDoesntExist.msg=Folder does not exist. Please choose a valid folder before continuing +ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg=Select directory to save to +ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=The Unalloc File for this volume, {0} already exists, do you want to replace it? +ExtractUnallocAction.progress.extractUnalloc.title=Extracting Unallocated Space +ExtractUnallocAction.progress.displayName.cancelling.text=Extracting Unallocated Space (Cancelling...) +ExtractUnallocAction.processing.counter.msg=processing {0} of {1} MBs +ExtractUnallocAction.done.notifyMsg.completedExtract.title=Completed extraction of unallocated space. +ExtractUnallocAction.done.notifyMsg.completedExtract.msg=Files were extracted to {0} +ResultDeleteAction.actionPerf.confDlg.delAllResults.msg=Are you sure you want to delete all {0} results? +ResultDeleteAction.actoinPerf.confDlg.delAllresults.details={0} Results Deletion +ResultDeleteAction.exception.invalidAction.msg=Invalid action type\: {0} diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ChangeViewAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ChangeViewAction.java index 1c6c42ce58..751948690f 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ChangeViewAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ChangeViewAction.java @@ -23,6 +23,7 @@ import javax.swing.AbstractAction; import javax.swing.JMenu; import javax.swing.JMenuItem; import org.openide.nodes.Node; +import org.openide.util.NbBundle; import org.openide.util.actions.Presenter; import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent; import org.sleuthkit.autopsy.corecomponents.DataContentViewerHex; @@ -95,9 +96,9 @@ import org.sleuthkit.autopsy.coreutils.Logger; */ @Override public JMenuItem getPopupPresenter() { - JMenu item = new JMenu("View"); - item.add(new ChangeViewAction("Hex", 1, node)); - item.add(new ChangeViewAction("String", 2, node)); + JMenu item = new JMenu(NbBundle.getMessage(this.getClass(), "ChangeViewAction.menuItem.view")); + item.add(new ChangeViewAction(NbBundle.getMessage(this.getClass(), "ChangeViewAction.menuItem.view.hex"), 1, node)); + item.add(new ChangeViewAction(NbBundle.getMessage(this.getClass(), "ChangeViewAction.menuItem.view.string"), 2, node)); return item; } } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java index 2d1941968f..506a37741c 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.directorytree; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.actions.AddBlackboardArtifactTagAction; import org.sleuthkit.autopsy.actions.AddContentTagAction; import java.awt.event.ActionEvent; @@ -190,16 +191,19 @@ public class DataResultFilterNode extends FilterNode { if (artifactTypeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID() || artifactTypeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID() ) { - actions.add(new ViewContextAction("View File in Directory", ban)); + actions.add(new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewFileInDir.text"), ban)); } else { // if the artifact links to another file, add an action to go to // that file Content c = findLinked(ban); if (c != null) { - actions.add(new ViewContextAction("View File in Directory", c)); + actions.add(new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewFileInDir.text"), c)); } // action to go to the source file of the artifact - actions.add(new ViewContextAction("View Source File in Directory", ban)); + actions.add(new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewSrcFileInDir.text"), ban)); } File f = ban.getLookup().lookup(File.class); LayoutFile lf = null; @@ -209,11 +213,14 @@ public class DataResultFilterNode extends FilterNode { if (f != null) { final FileNode fn = new FileNode(f); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", fn)); - actions.add(new ExternalViewerAction("Open in External Viewer", fn)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), fn)); + actions.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), fn)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); - actions.add(new HashSearchAction("Search for files with the same MD5 hash", fn)); + actions.add(new HashSearchAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.searchFilesSameMd5.text"), fn)); //add file/result tag if itself is not a tag if (artifactTypeID != BlackboardArtifact.ARTIFACT_TYPE.TSK_TAG_FILE.getTypeID() @@ -227,8 +234,10 @@ public class DataResultFilterNode extends FilterNode { if ((d = ban.getLookup().lookup(Directory.class)) != null) { DirectoryNode dn = new DirectoryNode(d); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", dn)); - actions.add(new ExternalViewerAction("Open in External Viewer", dn)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), dn)); + actions.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), dn)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); @@ -244,8 +253,10 @@ public class DataResultFilterNode extends FilterNode { if ((vd = ban.getLookup().lookup(VirtualDirectory.class)) != null) { VirtualDirectoryNode dn = new VirtualDirectoryNode(vd); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", dn)); - actions.add(new ExternalViewerAction("Open in External Viewer", dn)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), dn)); + actions.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), dn)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); @@ -260,8 +271,10 @@ public class DataResultFilterNode extends FilterNode { } else if ((lf = ban.getLookup().lookup(LayoutFile.class)) != null) { LayoutFileNode lfn = new LayoutFileNode(lf); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", lfn)); - actions.add(new ExternalViewerAction("Open in External Viewer", lfn)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), lfn)); + actions.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), lfn)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); @@ -277,8 +290,10 @@ public class DataResultFilterNode extends FilterNode { || (locF = ban.getLookup().lookup(DerivedFile.class)) != null) { final LocalFileNode locfn = new LocalFileNode(locF); actions.add(null); // creates a menu separator - actions.add(new NewWindowViewAction("View in New Window", locfn)); - actions.add(new ExternalViewerAction("Open in External Viewer", locfn)); + actions.add(new NewWindowViewAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), locfn)); + actions.add(new ExternalViewerAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), locfn)); actions.add(null); // creates a menu separator actions.add(ExtractAction.getInstance()); @@ -423,7 +438,8 @@ public class DataResultFilterNode extends FilterNode { @Override public AbstractAction visit(BlackboardArtifactNode ban) { - return new ViewContextAction("View in Directory", ban); + return new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInDir.text"), ban); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java index cd3322fd81..836dc68710 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java @@ -27,6 +27,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; import org.openide.util.lookup.ProxyLookup; import org.sleuthkit.autopsy.coreutils.Logger; @@ -46,7 +47,8 @@ import org.sleuthkit.datamodel.TskCoreException; */ class DirectoryTreeFilterNode extends FilterNode { - private static final Action collapseAll = new CollapseAction("Collapse All"); + private static final Action collapseAll = new CollapseAction( + NbBundle.getMessage(DirectoryTreeFilterNode.class, "DirectoryTreeFilterNode.action.collapseAll.text")); private static final Logger logger = Logger.getLogger(DirectoryTreeFilterNode.class.getName()); /** @@ -105,11 +107,13 @@ class DirectoryTreeFilterNode extends FilterNode { // file search action final Image img = this.getLookup().lookup(Image.class); if (img != null) { - actions.add(new FileSearchAction("Open File Search by Attributes")); + actions.add(new FileSearchAction( + NbBundle.getMessage(this.getClass(), "DirectoryTreeFilterNode.action.openFileSrcByAttr.text"))); } //ingest action - actions.add(new AbstractAction("Run Ingest Modules") { + actions.add(new AbstractAction( + NbBundle.getMessage(this.getClass(), "DirectoryTreeFilterNode.action.runIngestMods.text")) { @Override public void actionPerformed(ActionEvent e) { final IngestDialog ingestDialog = new IngestDialog(); diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index 2f6fc03f22..199d3cebd3 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -81,7 +81,8 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat private transient ExplorerManager em = new ExplorerManager(); private static DirectoryTreeTopComponent instance; - private DataResultTopComponent dataResult = new DataResultTopComponent(true, "Directory Listing"); + private DataResultTopComponent dataResult = new DataResultTopComponent(true, NbBundle.getMessage(this.getClass(), + "DirectoryTreeTopComponent.title.text")); private LinkedList backList; private LinkedList forwardList; /** @@ -1014,7 +1015,9 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat @Override public void viewArtifactContent(BlackboardArtifact art) { - new ViewContextAction("View Artifact Content", new BlackboardArtifactNode(art)).actionPerformed(null); + new ViewContextAction( + NbBundle.getMessage(this.getClass(), "DirectoryTreeTopComponent.action.viewArtContent.text"), + new BlackboardArtifactNode(art)).actionPerformed(null); } // private class HistoryManager { @@ -1033,7 +1036,10 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat } catch (Exception e) { logger.log(Level.SEVERE, "DirectoryTreeTopComponent listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to DirectoryTreeTopComponent updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "DirectoryTreeTopComponent.moduleErr"), + NbBundle.getMessage(this.getClass(), + "DirectoryTreeTopComponent.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExplorerNodeActionVisitor.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExplorerNodeActionVisitor.java index 8ea28dd457..55dd6deef8 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExplorerNodeActionVisitor.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExplorerNodeActionVisitor.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.directorytree; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.actions.AddContentTagAction; import java.awt.Toolkit; import java.awt.Dimension; @@ -81,22 +82,27 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default visit(final Image img) { List lst = new ArrayList(); - lst.add(new ImageDetails("Image Details", img)); + lst.add(new ImageDetails( + NbBundle.getMessage(this.getClass(), "ExplorerNodeActionVisitor.action.imgDetails.title"), img)); //TODO lst.add(new ExtractAction("Extract Image", img)); - lst.add(new ExtractUnallocAction("Extract Unallocated Space to Single Files", img)); + lst.add(new ExtractUnallocAction( + NbBundle.getMessage(this.getClass(), "ExplorerNodeActionVisitor.action.extUnallocToSingleFiles"), img)); return lst; } @Override public List visit(final FileSystem fs) { - return Collections.singletonList(new FileSystemDetails("File System Details", fs)); + return Collections.singletonList(new FileSystemDetails( + NbBundle.getMessage(this.getClass(), "ExplorerNodeActionVisitor.action.fileSystemDetails.title"), fs)); } @Override public List visit(final Volume vol) { List lst = new ArrayList(); - lst.add(new VolumeDetails("Volume Details", vol)); - lst.add(new ExtractUnallocAction("Extract Unallocated Space to Single File", vol)); + lst.add(new VolumeDetails( + NbBundle.getMessage(this.getClass(), "ExplorerNodeActionVisitor.action.volumeDetails.title"), vol)); + lst.add(new ExtractUnallocAction( + NbBundle.getMessage(this.getClass(), "ExplorerNodeActionVisitor.action.extUnallocToSingleFile"), vol)); return lst; } @@ -197,7 +203,8 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default 0) { if (lockedImages.contains(currentImage)) { - MessageNotifyUtil.Message.info("Unallocated Space is already being extracted on this Image. Please select a different Image."); + MessageNotifyUtil.Message.info(NbBundle.getMessage(this.getClass(), "ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg")); //JOptionPane.showMessageDialog(new Frame(), "Unallocated Space is already being extracted on this Image. Please select a different Image."); return; } @@ -111,7 +112,8 @@ import org.sleuthkit.datamodel.VolumeSystem; public void approveSelection() { File f = getSelectedFile(); if (!f.exists() && getDialogType() == SAVE_DIALOG || !f.canWrite()) { - JOptionPane.showMessageDialog(this, "Folder does not exist. Please choose a valid folder before continuing"); + JOptionPane.showMessageDialog(this, NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.msgDlg.folderDoesntExist.msg")); return; } super.approveSelection(); @@ -119,7 +121,8 @@ import org.sleuthkit.datamodel.VolumeSystem; }; fc.setCurrentDirectory(new File(Case.getCurrentCase().getCaseDirectory() + File.separator + "Export")); - fc.setDialogTitle("Select directory to save to"); + fc.setDialogTitle( + NbBundle.getMessage(this.getClass(), "ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg")); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fc.setAcceptAllFileFilterUsed(false); int returnValue = fc.showSaveDialog((Component) e.getSource()); @@ -130,7 +133,9 @@ import org.sleuthkit.datamodel.VolumeSystem; if (u.llf != null && u.llf.size() > 0 && !lockedVols.contains(u.getFileName())) { //Format for single Unalloc File is ImgName-Unalloc-ImgObjectID-VolumeID.dat if (u.FileInstance.exists()) { - int res = JOptionPane.showConfirmDialog(new Frame(), "The Unalloc File for this volume, " + u.getFileName() + " already exists, do you want to replace it?"); + int res = JOptionPane.showConfirmDialog(new Frame(), NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg", + u.getFileName())); if (res == JOptionPane.YES_OPTION) { u.FileInstance.delete(); } else { @@ -222,13 +227,15 @@ import org.sleuthkit.datamodel.VolumeSystem; @Override protected Integer doInBackground() { try { - progress = ProgressHandleFactory.createHandle("Extracting Unallocated Space", new Cancellable() { + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "ExtractUnallocAction.progress.extractUnalloc.title"), new Cancellable() { @Override public boolean cancel() { logger.log(Level.INFO, "Canceling extraction of unallocated space"); canceled = true; if (progress != null) { - progress.setDisplayName("Extracting Unallocated Space" + " (Cancelling...)"); + progress.setDisplayName(NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.progress.displayName.cancelling.text")); } return true; } @@ -254,7 +261,9 @@ import org.sleuthkit.datamodel.VolumeSystem; while(offsetPerFile != f.getSize() && !canceled){ if (++kbs % 128 == 0) { mbs++; - progress.progress("processing " + mbs + " of " + totalSizeinMegs + " MBs", mbs-1); + progress.progress(NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.processing.counter.msg", + mbs, totalSizeinMegs), mbs-1); } bytesRead = f.read(buf, offsetPerFile, MAX_BYTES); offsetPerFile+= bytesRead; @@ -295,7 +304,11 @@ import org.sleuthkit.datamodel.VolumeSystem; lockedVols.remove(u.getFileName()); } if (!canceled && !lus.isEmpty()) { - MessageNotifyUtil.Notify.info("Completed extraction of unallocated space.", "Files were extracted to " + lus.get(0).getFile().getParent()); + MessageNotifyUtil.Notify.info(NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.done.notifyMsg.completedExtract.title"), + NbBundle.getMessage(this.getClass(), + "ExtractUnallocAction.done.notifyMsg.completedExtract.msg", + lus.get(0).getFile().getParent())); } } } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ResultDeleteAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ResultDeleteAction.java index 05ff64d947..43e5891fbb 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ResultDeleteAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ResultDeleteAction.java @@ -23,6 +23,8 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.AbstractAction; import javax.swing.JOptionPane; @@ -89,15 +91,21 @@ import org.sleuthkit.datamodel.SleuthkitCase; viewer.refreshTree(BlackboardArtifact.ARTIFACT_TYPE.fromID(art.getArtifactTypeID())); } else if (this.actionType == ActionType.TYPE_ARTIFACTS) { if (JOptionPane.showConfirmDialog(null, - "Are you sure you want to delete all " + artType.getDisplayName() + " results?", - artType.getDisplayName() + " Results Deletion", JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { + NbBundle.getMessage(this.getClass(), + "ResultDeleteAction.actionPerf.confDlg.delAllResults.msg", + artType.getDisplayName()), + NbBundle.getMessage(this.getClass(), + "ResultDeleteAction.actoinPerf.confDlg.delAllresults.details", + artType.getDisplayName()), JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { deleteArtifacts(artType); DirectoryTreeTopComponent viewer = DirectoryTreeTopComponent.findInstance(); viewer.refreshTree(artType); } } else { - throw new IllegalArgumentException("Invalid action type: " + this.actionType); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ResultDeleteAction.exception.invalidAction.msg", + this.actionType)); } } From b9f14fc61b2eab455dadf8678514573f21e48065 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 25 Feb 2014 15:45:31 -0500 Subject: [PATCH 30/90] removing unused variable --- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java index 28379d5c5c..bc57c6caea 100755 --- a/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java +++ b/Testing/test/qa-functional/src/org/sleuthkit/autopsy/testing/RegressionTest.java @@ -267,13 +267,10 @@ public class RegressionTest extends TestCase { logger.info("Enqueue took " + (System.currentTimeMillis() - start) + "ms"); int count = 0; while (man.isIngestRunning()) { - count++; new Timeout("pausing", 1000).sleep(); // give it a second (or five) to process } - logger.info("count was " + count); - count = 0; new Timeout("pausing", 15000).sleep(); // give it a second (or fifteen) to process - boolean sleep = true; + //boolean sleep = true; while (man.areModulesRunning()) { count++; logger.info("count is " + count); From c90e7c56f7a811adb630516930e518d0fe860342 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 25 Feb 2014 15:47:25 -0500 Subject: [PATCH 31/90] Pulled static strings into Bundle.properties. Created Bundle_ja --- .../autopsy/filesearch/Bundle.properties | 41 ++++++++----------- .../autopsy/filesearch/Bundle_ja.properties | 0 .../autopsy/filesearch/DateSearchFilter.java | 4 +- .../autopsy/filesearch/FileSearchAction.java | 3 +- .../autopsy/filesearch/FileSearchDialog.java | 5 ++- .../autopsy/filesearch/FileSearchPanel.java | 26 +++++++----- .../filesearch/KnownStatusSearchFilter.java | 5 ++- .../autopsy/filesearch/NameSearchFilter.java | 5 ++- .../autopsy/filesearch/SearchNode.java | 3 +- 9 files changed, 52 insertions(+), 40 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties index afeec73469..b8958f62c5 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties @@ -1,31 +1,9 @@ -CTL_FileSearchAction=File Search by Attributes -CTL_FileSearchTopComponent=File Search by Attributes -HINT_FileSearchTopComponent=This is a FileSearch window OpenIDE-Module-Name=FileSearch -FileSearchTopComponent.searchTermLabel1.text=Search for files that match the following criteria: -FileSearchTopComponent.searchButton1.text=Search -FileSearchTopComponent.sizeCheckBox1.text=Size: -FileSearchTopComponent.noteNameLabel1.text=*Note: Name match is case insensitive and matches
any part of the file name. Regular expressions are
not currently supported. -FileSearchTopComponent.searchTextField1.text= -FileSearchTopComponent.nameCheckBox1.text=Name: -FileSearchTopComponent.jLabel8.text=Timezone: -FileSearchTopComponent.jLabel7.text=*The date format is mm/dd/yyyy -FileSearchTopComponent.jLabel6.text=*Empty fields mean "No Limit" -FileSearchTopComponent.createdCheckBox1.text=Created -FileSearchTopComponent.accessedCheckBox1.text=Accessed -FileSearchTopComponent.changedCheckBox1.text=Changed -FileSearchTopComponent.modifiedCheckBox1.text=Modified -FileSearchTopComponent.dateToButtonCalendar1.text= -FileSearchTopComponent.dateToTextField1.text= -FileSearchTopComponent.jLabel5.text=to -FileSearchTopComponent.dateFromTextField1.text= -FileSearchTopComponent.dateFromButtonCalendar1.text= -FileSearchTopComponent.dateCheckBox1.text=Date: -FileSearchTopComponent.dateFiltersButton1.text=Date Filters KnownStatusSearchPanel.knownCheckBox.text=Known Status: KnownStatusSearchPanel.knownBadOptionCheckBox.text=Known bad KnownStatusSearchPanel.knownOptionCheckBox.text=Known (NSRL or other) KnownStatusSearchPanel.unknownOptionCheckBox.text=Unknown +DateSearchFilter.noneSelectedMsg.text=At least one date type must be selected\! DateSearchPanel.dateCheckBox.text=Date: DateSearchPanel.jLabel4.text=Timezone: DateSearchPanel.jLabel3.text=*The date format is mm/dd/yyyy @@ -55,3 +33,20 @@ DateSearchPanel.cutMenuItem.text=Cut DateSearchPanel.selectAllMenuItem.text=Select All DateSearchPanel.pasteMenuItem.text=Paste DateSearchPanel.copyMenuItem.text=Copy +FileSearchAction.getName.text=File Search by Attributes +FileSearchDialog.frame.title=File Search by Attributes +FileSearchDialog.frame.msg=File Search by Attributes +FileSearchPanel.custComp.label.text=Search for files that match the following criteria\: +FileSearchPanel.filterTitle.name=Name +FileSearchPanel.filterTitle.metadata=Metadata +FileSearchPanel.filterTitle.knownStatus=Known Status +FileSearchPanel.searchButton.text=Search +FileSearchPanel.search.results.title=File Search Results {0} +FileSearchPanel.search.results.pathText=Filename Search Results\: +FileSearchPanel.search.results.msg=File Search\: {0} matches found +FileSearchPanel.search.results.details=Large number of matches may impact performance on some operations +FileSearchPanel.search.exception.noFilterSelected.msg=At least one filter must be selected. +FileSearchPanel.search.validationErr.msg=Validation Error\: {0} +KnownStatusSearchFilter.noneSelectedMsg.text=At least one known status must be selected\! +NameSearchFilter.emptyNameMsg.text=Must enter something for name search. +SearchNode.getName.text=Search Result diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java index d945207ba8..0c9113ef6a 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java @@ -38,6 +38,8 @@ import javax.swing.JList; import javax.swing.JSeparator; import javax.swing.ListCellRenderer; import javax.swing.border.EmptyBorder; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; /** @@ -46,7 +48,7 @@ import org.sleuthkit.autopsy.casemodule.Case; */ class DateSearchFilter extends AbstractFileSearchFilter { - private static final String NONE_SELECTED_MESSAGE = "At least one date type must be selected!"; + private static final String NONE_SELECTED_MESSAGE = NbBundle.getMessage(DateSearchFilter.class, "DateSearchFilter.noneSelectedMsg.text"); private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yyyy"); private static final String SEPARATOR = "SEPARATOR"; diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchAction.java b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchAction.java index 52b7f69991..02f181df16 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchAction.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchAction.java @@ -22,6 +22,7 @@ import java.awt.event.ActionEvent; 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.directorytree.FileSearchProvider; @@ -66,7 +67,7 @@ import org.sleuthkit.autopsy.directorytree.FileSearchProvider; @Override public String getName() { - return "File Search by Attributes"; + return NbBundle.getMessage(this.getClass(), "FileSearchAction.getName.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchDialog.java b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchDialog.java index 726f0826e2..f689d34640 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchDialog.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchDialog.java @@ -24,6 +24,8 @@ */ package org.sleuthkit.autopsy.filesearch; +import org.openide.util.NbBundle; + import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; @@ -37,7 +39,8 @@ import javax.swing.JFrame; /** Creates new form FileSearchDialog */ public FileSearchDialog() { - super(new JFrame("File Search by Attributes"), "File Search by Attributes", true); + super(new JFrame(NbBundle.getMessage(FileSearchDialog.class, "FileSearchDialog.frame.title")), + NbBundle.getMessage(FileSearchDialog.class, "FileSearchDialog.frame.msg"), true); initComponents(); setResizable(false); diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java index 492510e739..e063636c24 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java @@ -35,6 +35,8 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -84,20 +86,20 @@ import org.sleuthkit.datamodel.TskCoreException; this.add(filterPanel, BorderLayout.CENTER); - JLabel label = new JLabel("Search for files that match the following criteria:"); + JLabel label = new JLabel(NbBundle.getMessage(this.getClass(), "FileSearchPanel.custComp.label.text")); label.setAlignmentX(Component.LEFT_ALIGNMENT); label.setBorder(new EmptyBorder(0, 0, 10, 0)); filterPanel.add(label); // Create and add filter areas - this.filterAreas.add(new FilterArea("Name", new NameSearchFilter())); + this.filterAreas.add(new FilterArea(NbBundle.getMessage(this.getClass(), "FileSearchPanel.filterTitle.name"), new NameSearchFilter())); List metadataFilters = new ArrayList(); metadataFilters.add(new SizeSearchFilter()); metadataFilters.add(new DateSearchFilter()); - this.filterAreas.add(new FilterArea("Metadata", metadataFilters)); + this.filterAreas.add(new FilterArea(NbBundle.getMessage(this.getClass(), "FileSearchPanel.filterTitle.metadata"), metadataFilters)); - this.filterAreas.add(new FilterArea("Known Status", new KnownStatusSearchFilter())); + this.filterAreas.add(new FilterArea(NbBundle.getMessage(this.getClass(), "FileSearchPanel.filterTitle.knownStatus"), new KnownStatusSearchFilter())); for (FilterArea fa : this.filterAreas) { fa.setMaximumSize(new Dimension(Integer.MAX_VALUE, fa.getMinimumSize().height)); @@ -106,7 +108,7 @@ import org.sleuthkit.datamodel.TskCoreException; } // Create and add search button - this.searchButton = new JButton("Search"); + this.searchButton = new JButton(NbBundle.getMessage(this.getClass(), "FileSearchPanel.searchButton.text")); this.searchButton.setAlignmentX(Component.LEFT_ALIGNMENT); filterPanel.add(searchButton); @@ -140,8 +142,8 @@ import org.sleuthkit.datamodel.TskCoreException; this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); try { if (this.anyFiltersEnabled()) { - String title = "File Search Results " + (++resultWindowCount); - String pathText = "Filename Search Results:"; + String title = NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.results.title", ++resultWindowCount); + String pathText = NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.results.pathText"); // try to get the number of matches first Case currentCase = Case.getCurrentCase(); // get the most updated case @@ -173,15 +175,17 @@ import org.sleuthkit.datamodel.TskCoreException; */ if (totalMatches > 10000) { // show info - String msg = "File Search: " + totalMatches + " matches found"; - String details = "Large number of matches may impact performance on some operations"; + String msg = NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.results.msg", totalMatches); + String details = NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.results.details"); MessageNotifyUtil.Notify.info(msg, details); } } else { - throw new FilterValidationException("At least one filter must be selected."); + throw new FilterValidationException( + NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.exception.noFilterSelected.msg")); } } catch (FilterValidationException ex) { - NotifyDescriptor d = new NotifyDescriptor.Message("Validation Error: " + ex.getMessage()); + NotifyDescriptor d = new NotifyDescriptor.Message( + NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.validationErr.msg", ex.getMessage())); DialogDisplayer.getDefault().notify(d); } finally { this.setCursor(null); diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/KnownStatusSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/KnownStatusSearchFilter.java index 501a13c440..f76ae9d664 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/KnownStatusSearchFilter.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/KnownStatusSearchFilter.java @@ -19,6 +19,8 @@ package org.sleuthkit.autopsy.filesearch; import java.awt.event.ActionListener; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.TskData.FileKnown; /** @@ -26,7 +28,8 @@ import org.sleuthkit.datamodel.TskData.FileKnown; */ class KnownStatusSearchFilter extends AbstractFileSearchFilter { - private static final String NONE_SELECTED_MESSAGE = "At least one known status must be selected!"; + private static final String NONE_SELECTED_MESSAGE = NbBundle + .getMessage(KnownStatusSearchFilter.class, "KnownStatusSearchFilter.noneSelectedMsg.text"); KnownStatusSearchFilter(KnownStatusSearchPanel panel) { super(panel); diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/NameSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/NameSearchFilter.java index 3940a6fff8..7fd24a5d8d 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/NameSearchFilter.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/NameSearchFilter.java @@ -19,6 +19,8 @@ package org.sleuthkit.autopsy.filesearch; import java.awt.event.ActionListener; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.filesearch.FileSearchFilter.FilterValidationException; /** @@ -27,7 +29,8 @@ import org.sleuthkit.autopsy.filesearch.FileSearchFilter.FilterValidationExcepti */ class NameSearchFilter extends AbstractFileSearchFilter { - private static final String EMPTY_NAME_MESSAGE = "Must enter something for name search."; + private static final String EMPTY_NAME_MESSAGE = NbBundle + .getMessage(NameSearchFilter.class, "NameSearchFilter.emptyNameMsg.text"); public NameSearchFilter() { this(new NameSearchPanel()); diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/SearchNode.java b/Core/src/org/sleuthkit/autopsy/filesearch/SearchNode.java index 9984f6ea74..bde25acd3b 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/SearchNode.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/SearchNode.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.filesearch; import java.util.List; import org.openide.nodes.AbstractNode; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.AbstractFile; /** @@ -38,6 +39,6 @@ class SearchNode extends AbstractNode { @Override public String getName() { - return "Search Result"; + return NbBundle.getMessage(this.getClass(), "SearchNode.getName.text"); } } From 04c2135c388180d2632bf5b02a40c8632264c7ae Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 25 Feb 2014 18:10:56 -0500 Subject: [PATCH 32/90] Pulled static strings into Bundle.properties. Created Bundle_ja --- .../autopsy/ingest/Bundle.properties | 98 ++++++++++++++++--- .../autopsy/ingest/Bundle_ja.properties | 0 .../autopsy/ingest/DataSourceTask.java | 4 +- .../ingest/GeneralIngestConfigurator.java | 13 ++- .../ingest/IngestDataSourceThread.java | 12 ++- .../autopsy/ingest/IngestDialog.java | 8 +- .../autopsy/ingest/IngestManager.java | 88 +++++++++++------ .../autopsy/ingest/IngestMessage.java | 28 +++--- .../autopsy/ingest/IngestMessagePanel.java | 37 +++++-- .../ingest/IngestMessageTopComponent.java | 7 +- .../autopsy/ingest/IngestModuleLoader.java | 36 ++++--- .../autopsy/ingest/IngestMonitor.java | 8 +- .../autopsy/ingest/IngestScheduler.java | 35 ++++--- .../autopsy/ingest/PipelineContext.java | 4 +- 14 files changed, 270 insertions(+), 108 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/ingest/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties index 0674b59bf7..da2453df41 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties @@ -1,21 +1,6 @@ OpenIDE-Module-Name=Ingest -CTL_IngestAction=Ingest -CTL_IngestMessagesAction=Ingest Messages CTL_IngestMessageTopComponent=Messages -CTL_IngestTopComponent=Ingest HINT_IngestMessageTopComponent=Messages windows -HINT_IngestTopComponent=Ingest window -IngestTopComponent.messageFrame.title=Messages -IngestTopComponent.ingestProgressLabel.text=File Ingest Progress -IngestControlPanel.topLable.text=Image ingest modules -IngestControlPanel.startButton.text=Start -IngestDialogPanel.ingestServicesLabel.text=Image Ingest Modules -IngestDialogForm2.okButton.text=OK -IngestDialogForm2.cancelButton.text=Cancel -IngestDialogForm.cancelButton.text=Cancel -IngestDialogForm.startButton.text=Start -IngestDialogForm.jLabel1.text=Ingest Modules -IngestTopComponent.refreshFreqLabel.text=Refresh frequency IngestMessageDetailsPanel.backButton.text= IngestMessageDetailsPanel.viewArtifactButton.text=Go to Result IngestMessageDetailsPanel.viewContentButton.text=Go to Directory @@ -34,3 +19,86 @@ IngestMessagePanel.totalUniqueMessagesNameLabel.text=Unique: IngestMessagePanel.totalUniqueMessagesNameVal.text=- IngestDialogPanel.processUnallocCheckbox.text=Process Unallocated Space IngestDialogPanel.processUnallocCheckbox.toolTipText=Processes unallocated space, such as deleted files. Produces more complete results, but it may take longer to process on large images. +DataSourceTask.toString.text=ScheduledTask'{'input\={0}, modules\={1}'}' +GeneralIngestConfigurator.modName.tbirdParser.text=Thunderbird Parser +GeneralIngestConfigurator.modName.mboxParser.text=MBox Parser +GeneralIngestConfigurator.modName.emailParser.text=Email Parser +GeneralIngestConfigurator.enabledMods.notFound.msg={0} was previously enabled, but could not be found +IngestDataSourceThread.displayName.text={0} dataSource id\:{1} +IngestDataSourceThread.progress.pending={0} (Pending...) +IngestDataSourceThread.progress.cancelling={0} (Cancelling...) +IngestDialog.title.text=Ingest Modules +IngestDialog.startButton.title=Start +IngestDialog.closeButton.title=Close +IngestManager.moduleProperties.text=ingest +IngestManager.moduleErr=Module Error +IngestManager.moduleErr.errListenToUpdates.msg=A module caused an error listening to Ingest Manager updates. See log to determine which module. Some data could be incomplete. +IngestManager.displayInitError.failedToLoad.msg=Failed to load {0} ingest module.\ +\ +No ingest modules will be run. Please disable the module or fix the error and restart ingest by right clicking on the data source and selecting Run Ingest Modules.\ +\ +Error\: {1} +IngestManager.getFileModStats.moduleInfo.text={0} took\: {1} secs. to process()\ +IngestManager.toString.startTime.text=Start time\: {0}{1} +IngestManager.toString.endTime.text=End time\: {0}{1} +IngestManager.toString.totalIngestTime.text=Total ingest time\: {0}{1} +IngestManager.toString.totalErrs.text=Total errors\: {0}{1} +IngestManager.toString.errsPerMod.text=Errors per module\: +IngestManager.toHtmlStr.ingestTime.text=Ingest time\: {0} +IngestManager.toHtmlStr.totalErrs.text=Total errors\: {0} +IngestManager.toHtmlStr.module.text=Module +IngestManager.toHtmlStr.time.text=Time +IngestManager.toHtmlStr.errors.text=Errors +IngestManager.IngestAbstractFileProcessor.displayName=File Ingest +IngestManager.IngestAbstractFileProcessor.process.cancelling={0} (Cancelling...) +IngestManager.EnqueueWorker.displayName.text=Queueing Ingest +IngestManager.EnqueueWorker.process.cancelling={0} (Cancelling...) +IngestManager.datatSourceIngest.progress.text=DataSource Ingest {0} +IngestManager.fileIngest.progress.text=File Ingest {0} +IngestMessage.toString.type.text=type\: {0} +IngestMessage.toString.source.text=\ source\: {0} +IngestMessage.toString.date.text=\ date\: {0} +IngestMessage.toString.subject.text=\ subject\: {0} +IngestMessage.toString.details.text=\ details\: {0} +IngestMessage.toString.data.text=\ data\: {0} +IngestMessage.exception.typeSrcSubjNotNull.msg=message type, source and subject cannot be null +IngestMessage.exception.srcSubjNotNull.msg=source and subject cannot be null +IngestMessage.exception.srcSubjDetailsDataNotNull.msg=source, subject, details and data cannot be null +IngestMessagePanel.moduleErr=Module Error +IngestMessagePanel.moduleErr.errListenUpdates.text=A module caused an error listening to IngestMessagePanel updates. See log to determine which module. Some data could be incomplete. +IngestMessagePanel.MsgTableMod.colNames.module=Module +IngestMessagePanel.MsgTableMod.colNames.num=Num +IngestMessagePanel.MsgTableMod.colNames.new=New? +IngestMessagePanel.MsgTableMod.colNames.subject=Subject +IngestMessagePanel.MsgTableMod.colNames.timestamp=Timestamp +IngestMessagePanel.BooleanRenderer.exception.nonBoolVal.msg=Tried to use BooleanRenderer on non-boolean value. +IngestMessagePanel.DateRenderer.exception.nonDateVal.text=Tried to use DateRenderer on non-Date value. +IngestMessageTopComponent.displayReport.option.OK=OK +IngestMessageTopComponent.displayReport.option.GenRpt=Generate Report +IngestMessageTopComponent.msgDlg.ingestRpt.text=Ingest Report +IngestModuleLoader.moduleErr=Module Error +IngestModuleLoader.moduleErr.errListenUpdates.msg=A module caused an error listening to IngestModuleLoader updates. See log to determine which module. Some data could be incomplete. +IngestModuleLoader.exception.notImplemented.msg=Not yet implemented +IngestModuleLoader.exception.cantFindPipeline.msg=Could not find expected pipeline of type\: {0}, cannot add autodiscovered module\: {1} +IngestModuleLoader.save.comment.text=Saved by\: {0} on\: {1} +IngestModuleLoader.loadRawPipeline.exception.cantLoadXML.msg=Could not load pipeline config XML\: {0} +IngestModuleLoader.loadRawPipeline.exception.invalidFileFormat.msg=Error loading pipeline configuration\: invalid file format. +IngestModuleLoader.loadRawPipeline.exception.noPipelinesInConf.msg=No pipelines found in the pipeline configuration\: {0} +IngestModuleLoader.exception.noPipelineTypeForStr.msg=No PIPELINE_TYPE for string\: {0} +IngestMonitor.mgrErrMsg.lowDiskSpace.title=Ingest stopped - low disk space on {0} +IngestMonitor.mgrErrMsg.lowDiskSpace.msg=Stopping ingest due to low disk space on disk {0}. \ +Ensure the Case drive has at least 1GB free space and restart ingest. +IngestScheduler.FileSched.toString.rootDirs.text=\ +RootDirs(sorted), size\: {0} +IngestScheduler.FileSched.toString.curDirs.text=\ +CurDirs(stack), size\: {0} +IngestScheduler.FileSched.toString.curFiles.text=\ +CurFiles, size\: {0} +IngestScheduler.fileTask.toString.long=ProcessTask'{'file\={0}\: {1}'}' +IngestScheduler.fileTask.toString.short=ProcessTask'{'file\={0}\: {1}'}' +IngestScheduler.FileTask.next.exception.msg=No next ProcessTask, check hasNext() first\! +IngestScheduler.remove.exception.notSupported.msg=Not supported. +IngestScheduler.DataSourceScheduler.exception.next.msg=There is no data source tasks in the queue, check hasNext() +IngestScheduler.DataSourceScheduler.exception.remove.msg=Removing of scheduled data source ingest tasks is not supported. +IngestScheduler.DataSourceScheduler.toString.size=DataSourceQueue, size\: {0} +PipelineContext.toString.text=pipelineContext'{'task\={0}'}' diff --git a/Core/src/org/sleuthkit/autopsy/ingest/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/ingest/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceTask.java b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceTask.java index 01bac09f19..7877057d80 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceTask.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceTask.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.ingest; import java.util.List; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.Content; /** @@ -72,7 +74,7 @@ class DataSourceTask { @Override public String toString() { - return "ScheduledTask{" + "input=" + input + ", modules=" + modules + '}'; + return NbBundle.getMessage(this.getClass(), "DataSourceTask.toString.text", input, modules); } /** diff --git a/Core/src/org/sleuthkit/autopsy/ingest/GeneralIngestConfigurator.java b/Core/src/org/sleuthkit/autopsy/ingest/GeneralIngestConfigurator.java index 203e98cbe8..b96ad9cd49 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/GeneralIngestConfigurator.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/GeneralIngestConfigurator.java @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.datamodel.Content; @@ -104,9 +106,11 @@ public class GeneralIngestConfigurator implements IngestConfigurator { // the UI component. List enabledModules = new ArrayList<>(); for (String moduleName : enabledList) { - if (moduleName.equals("Thunderbird Parser") - || moduleName.equals("MBox Parser")) { - moduleName = "Email Parser"; + if (moduleName.equals( + NbBundle.getMessage(this.getClass(), "GeneralIngestConfigurator.modName.tbirdParser.text")) + || moduleName.equals( + NbBundle.getMessage(this.getClass(), "GeneralIngestConfigurator.modName.mboxParser.text"))) { + moduleName = NbBundle.getMessage(this.getClass(), "GeneralIngestConfigurator.modName.emailParser.text"); } IngestModuleAbstract moduleFound = null; @@ -120,7 +124,8 @@ public class GeneralIngestConfigurator implements IngestConfigurator { enabledModules.add(moduleFound); } else { - messages.add(moduleName + " was previously enabled, but could not be found"); + messages.add(NbBundle.getMessage(this.getClass(), "GeneralIngestConfigurator.enabledMods.notFound.msg", + moduleName)); } } ingestDialogPanel.setEnabledIngestModules(enabledModules); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestDataSourceThread.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestDataSourceThread.java index 8c427eeff1..217a568344 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestDataSourceThread.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestDataSourceThread.java @@ -23,6 +23,8 @@ import java.awt.EventQueue; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.SwingWorker; import org.netbeans.api.progress.ProgressHandle; @@ -95,13 +97,17 @@ import org.sleuthkit.datamodel.Content; logger.log(Level.INFO, "Pending module: " + module.getName()); - final String displayName = module.getName() + " dataSource id:" + dataSource.getId(); - progress = ProgressHandleFactory.createHandle(displayName + " (Pending...)", new Cancellable() { + final String displayName = NbBundle.getMessage(this.getClass(), "IngestDataSourceThread.displayName.text", + module.getName(), + dataSource.getId()); + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "IngestDataSourceThread.progress.pending", displayName), new Cancellable() { @Override public boolean cancel() { logger.log(Level.INFO, "DataSource ingest module " + module.getName() + " cancelled by user."); if (progress != null) { - progress.setDisplayName(displayName + " (Cancelling...)"); + progress.setDisplayName( + NbBundle.getMessage(this.getClass(), "IngestDataSourceThread.progress.cancelling", displayName)); } return IngestDataSourceThread.this.cancel(true); } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestDialog.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestDialog.java index fb68c15a5e..b6cedc099f 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestDialog.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestDialog.java @@ -32,6 +32,8 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.Content; /** @@ -40,7 +42,7 @@ import org.sleuthkit.datamodel.Content; */ public class IngestDialog extends JDialog { - private static final String TITLE = "Ingest Modules"; + private static final String TITLE = NbBundle.getMessage(IngestDialog.class, "IngestDialog.title.text"); private static Dimension DIMENSIONS = new Dimension(500, 300); private IngestConfigurator ingestConfigurator; @@ -77,8 +79,8 @@ public class IngestDialog extends JDialog { setLocation((screenDimension.width - w) / 2, (screenDimension.height - h) / 2); add(ingestConfigurator.getIngestConfigPanel(), BorderLayout.PAGE_START); - JButton startButton = new JButton("Start"); - JButton closeButton = new JButton("Close"); + JButton startButton = new JButton(NbBundle.getMessage(this.getClass(), "IngestDialog.startButton.title")); + JButton closeButton = new JButton(NbBundle.getMessage(this.getClass(), "IngestDialog.closeButton.title")); startButton.addActionListener(new ActionListener() { @Override diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 6ccd1b89dd..2ec75440d2 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -32,6 +32,8 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.SwingWorker; import org.netbeans.api.progress.ProgressHandle; @@ -77,7 +79,8 @@ public class IngestManager { //module loader private IngestModuleLoader moduleLoader = null; //property file name id for the module - public final static String MODULE_PROPERTIES = "ingest"; + public final static String MODULE_PROPERTIES = NbBundle.getMessage(IngestManager.class, + "IngestManager.moduleProperties.text"); private volatile int messageID = 0; /** @@ -212,7 +215,9 @@ public class IngestManager { } catch (Exception e) { logger.log(Level.SEVERE, "Ingest manager listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Ingest Manager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr"), + NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr.errListenToUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -227,7 +232,9 @@ public class IngestManager { } catch (Exception e) { logger.log(Level.SEVERE, "Ingest manager listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Ingest Manager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr"), + NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr.errListenToUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -242,7 +249,9 @@ public class IngestManager { } catch (Exception e) { logger.log(Level.SEVERE, "Ingest manager listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Ingest Manager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr"), + NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr.errListenToUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -256,7 +265,9 @@ public class IngestManager { } catch (Exception e) { logger.log(Level.SEVERE, "Ingest manager listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Ingest Manager updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr"), + NbBundle.getMessage(IngestManager.class, "IngestManager.moduleErr.errListenToUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -495,11 +506,8 @@ public class IngestManager { */ private void displayInitError(String moduleName, String errorMessage) { MessageNotifyUtil.Message.error( - "Failed to load " + moduleName + " ingest module.\n\n" - + "No ingest modules will be run. Please disable the module " - + "or fix the error and restart ingest by right clicking on " - + "the data source and selecting Run Ingest Modules.\n\n" - + "Error: " + errorMessage); + NbBundle.getMessage(this.getClass(), "IngestManager.displayInitError.failedToLoad.msg", moduleName, + errorMessage)); } /** @@ -856,9 +864,9 @@ public class IngestManager { String getFileModuleStats() { StringBuilder sb = new StringBuilder(); for (final String moduleName : fileModuleTimers.keySet()) { - sb.append(moduleName).append(" took: ") - .append(fileModuleTimers.get(moduleName) / 1000) - .append(" secs. to process()").append('\n'); + sb.append(NbBundle.getMessage(this.getClass(), + "IngestManager.getFileModStats.moduleInfo.text", + moduleName, fileModuleTimers.get(moduleName) / 1000)); } return sb.toString(); } @@ -868,15 +876,18 @@ public class IngestManager { final String EOL = System.getProperty("line.separator"); StringBuilder sb = new StringBuilder(); if (startTime != null) { - sb.append("Start time: ").append(dateFormatter.format(startTime)).append(EOL); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toString.startTime.text", + dateFormatter.format(startTime), EOL)); } if (endTime != null) { - sb.append("End time: ").append(dateFormatter.format(endTime)).append(EOL); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toString.endTime.text", + dateFormatter.format(endTime), EOL)); } - sb.append("Total ingest time: ").append(getTotalTimeString()).append(EOL); - sb.append("Total errors: ").append(errorsTotal).append(EOL); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toString.totalIngestTime.text", + getTotalTimeString(), EOL)); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toString.totalErrs.text", errorsTotal, EOL)); if (errorsTotal > 0) { - sb.append("Errors per module:"); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toString.errsPerMod.text")); for (String moduleName : errors.keySet()) { sb.append("\t").append(moduleName).append(": ").append(errors.get(moduleName)).append(EOL); } @@ -887,9 +898,18 @@ public class IngestManager { public String toHtmlString() { StringBuilder sb = new StringBuilder(); sb.append(""); - sb.append("Ingest time: ").append(getTotalTimeString()).append("
"); - sb.append("Total errors: ").append(errorsTotal).append("
"); - sb.append("\n"); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toHtmlStr.ingestTime.text", + getTotalTimeString())) + .append("
"); + sb.append(NbBundle.getMessage(this.getClass(), "IngestManager.toHtmlStr.totalErrs.text", errorsTotal)) + .append("
"); + sb.append("
ModuleTimeErrors
\n"); for (final String moduleName : fileModuleTimers.keySet()) { sb.append("
") + .append(NbBundle.getMessage(this.getClass(), "IngestManager.toHtmlStr.module.text")) + .append("") + .append(NbBundle.getMessage(this.getClass(), "IngestManager.toHtmlStr.time.text")) + .append("") + .append(NbBundle.getMessage(this.getClass(), "IngestManager.toHtmlStr.errors.text")) + .append("
").append(moduleName).append(""); @@ -993,13 +1013,16 @@ public class IngestManager { IngestManager.fireModuleEvent(IngestModuleEvent.STARTED.toString(), s.getName()); } - final String displayName = "File Ingest"; + final String displayName = NbBundle + .getMessage(this.getClass(), "IngestManager.IngestAbstractFileProcessor.displayName"); progress = ProgressHandleFactory.createHandle(displayName, new Cancellable() { @Override public boolean cancel() { logger.log(Level.INFO, "Filed ingest cancelled by user."); if (progress != null) { - progress.setDisplayName(displayName + " (Cancelling...)"); + progress.setDisplayName(NbBundle.getMessage(this.getClass(), + "IngestManager.IngestAbstractFileProcessor.process.cancelling", + displayName)); } return IngestAbstractFileProcessor.this.cancel(true); } @@ -1169,13 +1192,16 @@ public class IngestManager { @Override protected Object doInBackground() throws Exception { - final String displayName = "Queueing Ingest"; + final String displayName = NbBundle + .getMessage(this.getClass(), "IngestManager.EnqueueWorker.displayName.text"); progress = ProgressHandleFactory.createHandle(displayName, new Cancellable() { @Override public boolean cancel() { logger.log(Level.INFO, "Queueing ingest cancelled by user."); if (progress != null) { - progress.setDisplayName(displayName + " (Cancelling...)"); + progress.setDisplayName( + NbBundle.getMessage(this.getClass(), "IngestManager.EnqueueWorker.process.cancelling", + displayName)); } return EnqueueWorker.this.cancel(true); } @@ -1274,10 +1300,12 @@ public class IngestManager { logger.log(Level.INFO, "Queing data source ingest task: " + dataSourceTask); - progress.progress("DataSource Ingest" + " " + inputName, processed); + progress.progress(NbBundle.getMessage(this.getClass(), "IngestManager.datatSourceIngest.progress.text", + inputName), processed); final IngestScheduler.DataSourceScheduler dataSourceScheduler = scheduler.getDataSourceScheduler(); dataSourceScheduler.schedule(dataSourceTask); - progress.progress("DataSource Ingest" + " " + inputName, ++processed); + progress.progress(NbBundle.getMessage(this.getClass(), "IngestManager.datatSourceIngest.progress.text", + inputName), ++processed); /* Schedule the file-level ingest modules for the children of the data source */ @@ -1285,10 +1313,12 @@ public class IngestManager { new DataSourceTask(input, fileMods, getProcessUnallocSpace()); logger.log(Level.INFO, "Queing file ingest task: " + fTask); - progress.progress("File Ingest" + " " + inputName, processed); + progress.progress( + NbBundle.getMessage(this.getClass(), "IngestManager.fileIngest.progress.text", inputName), processed); final IngestScheduler.FileScheduler fileScheduler = scheduler.getFileScheduler(); fileScheduler.schedule(fTask); - progress.progress("File Ingest" + " " + inputName, ++processed); + progress.progress( + NbBundle.getMessage(this.getClass(), "IngestManager.fileIngest.progress.text", inputName), ++processed); } //for data sources } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessage.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessage.java index de0da0cae3..77e22204e1 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessage.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessage.java @@ -20,7 +20,8 @@ package org.sleuthkit.autopsy.ingest; import java.text.SimpleDateFormat; import java.util.Date; -import org.sleuthkit.autopsy.datamodel.KeyValue; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.BlackboardArtifact; /** @@ -101,18 +102,19 @@ public class IngestMessage { public String toString() { StringBuilder sb = new StringBuilder(); sb.append(Long.toString(ID)).append(": "); - sb.append("type: ").append(messageType.name()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestMessage.toString.type.text", messageType.name())); if (source != null) //can be null for manager messages { - sb.append(" source: ").append(source.getName()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestMessage.toString.source.text", source.getName())); } - sb.append(" date: ").append(dateFormat.format(datePosted)); - sb.append(" subject: ").append(subject); + sb.append( + NbBundle.getMessage(this.getClass(), "IngestMessage.toString.date.text", dateFormat.format(datePosted))); + sb.append(NbBundle.getMessage(this.getClass(), "IngestMessage.toString.subject.text", subject)); if (detailsHtml != null) { - sb.append(" details: ").append(detailsHtml); + sb.append(NbBundle.getMessage(this.getClass(), "IngestMessage.toString.details.text", detailsHtml)); } if (data != null) { - sb.append(" data: ").append(data.toString()).append(' '); + sb.append(NbBundle.getMessage(this.getClass(), "IngestMessage.toString.data.text", data.toString())); } return sb.toString(); } @@ -176,7 +178,8 @@ public class IngestMessage { */ public static IngestMessage createMessage(long ID, MessageType messageType, IngestModuleAbstract source, String subject, String detailsHtml) { if (messageType == null || source == null || subject == null) { - throw new IllegalArgumentException("message type, source and subject cannot be null"); + throw new IllegalArgumentException( + NbBundle.getMessage(IngestMessage.class, "IngestMessage.exception.typeSrcSubjNotNull.msg")); } return new IngestMessage(ID, messageType, source, subject, detailsHtml, null); } @@ -204,7 +207,8 @@ public class IngestMessage { */ public static IngestMessage createErrorMessage(long ID, IngestModuleAbstract source, String subject, String detailsHtml) { if (source == null || subject == null) { - throw new IllegalArgumentException("source and subject cannot be null"); + throw new IllegalArgumentException( + NbBundle.getMessage(IngestMessage.class, "IngestMessage.exception.srcSubjNotNull.msg")); } return new IngestMessage(ID, MessageType.ERROR, source, subject, detailsHtml, null); } @@ -219,7 +223,8 @@ public class IngestMessage { */ public static IngestMessage createWarningMessage(long ID, IngestModuleAbstract source, String subject, String detailsHtml) { if (source == null || subject == null) { - throw new IllegalArgumentException("source and subject cannot be null"); + throw new IllegalArgumentException( + NbBundle.getMessage(IngestMessage.class, "IngestMessage.exception.srcSubjNotNull.msg")); } return new IngestMessage(ID, MessageType.WARNING, source, subject, detailsHtml, null); } @@ -236,7 +241,8 @@ public class IngestMessage { */ public static IngestMessage createDataMessage(long ID, IngestModuleAbstract source, String subject, String detailsHtml, String uniqueKey, BlackboardArtifact data) { if (source == null || subject == null || detailsHtml == null || data == null) { - throw new IllegalArgumentException("source, subject, details and data cannot be null"); + throw new IllegalArgumentException( + NbBundle.getMessage(IngestMessage.class, "IngestMessage.exception.srcSubjDetailsDataNotNull.msg")); } IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml, uniqueKey); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java index 782737bb15..0a2eed57c0 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java @@ -38,6 +38,8 @@ import java.util.Map; import java.util.logging.Level; import javax.swing.JLabel; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JTable; import javax.swing.ListSelectionModel; @@ -52,8 +54,6 @@ import javax.swing.table.TableCellRenderer; import org.sleuthkit.autopsy.ingest.IngestMessage.*; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; -import java.util.logging.Level; -import org.sleuthkit.autopsy.coreutils.Logger; /** * Notification window showing messages from modules to user @@ -300,7 +300,10 @@ class IngestMessagePanel extends JPanel implements TableModelListener { } catch (Exception e) { logger.log(Level.SEVERE, "IngestMessagePanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to IngestMessagePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "IngestMessagePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.moduleErr.errListenUpdates.text"), + MessageNotifyUtil.MessageType.ERROR); } //update labels @@ -325,7 +328,10 @@ class IngestMessagePanel extends JPanel implements TableModelListener { } catch (Exception e) { logger.log(Level.SEVERE, "IngestMessagePanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to IngestMessagePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "IngestMessagePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.moduleErr.errListenUpdates.text"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -344,7 +350,10 @@ class IngestMessagePanel extends JPanel implements TableModelListener { } catch (Exception e) { logger.log(Level.SEVERE, "IngestMessagePanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to IngestMessagePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "IngestMessagePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.moduleErr.errListenUpdates.text"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -357,13 +366,21 @@ class IngestMessagePanel extends JPanel implements TableModelListener { } catch (Exception ee) { logger.log(Level.SEVERE, "IngestMessagePanel listener threw exception", ee); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to IngestMessagePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "IngestMessagePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.moduleErr.errListenUpdates.text"), + MessageNotifyUtil.MessageType.ERROR); } } private class MessageTableModel extends AbstractTableModel { - private String[] columnNames = new String[]{"Module", "Num", "New?", "Subject", "Timestamp"}; + private String[] columnNames = new String[]{ + NbBundle.getMessage(this.getClass(), "IngestMessagePanel.MsgTableMod.colNames.module"), + NbBundle.getMessage(this.getClass(), "IngestMessagePanel.MsgTableMod.colNames.num"), + NbBundle.getMessage(this.getClass(), "IngestMessagePanel.MsgTableMod.colNames.new"), + NbBundle.getMessage(this.getClass(), "IngestMessagePanel.MsgTableMod.colNames.subject"), + NbBundle.getMessage(this.getClass(), "IngestMessagePanel.MsgTableMod.colNames.timestamp")}; private List messageData = new ArrayList(); //for keeping track of messages to group, per module, by uniqness private Map>> groupings = new HashMap>>(); @@ -845,7 +862,8 @@ class IngestMessagePanel extends JPanel implements TableModelListener { if (value instanceof Boolean) { boolVal = ((Boolean)value).booleanValue(); } else { - throw new RuntimeException("Tried to use BooleanRenderer on non-boolean value."); + throw new RuntimeException(NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.BooleanRenderer.exception.nonBoolVal.msg")); } String aValue = boolVal ? bulletChar : ""; @@ -928,7 +946,8 @@ class IngestMessagePanel extends JPanel implements TableModelListener { DateFormat df = new SimpleDateFormat("HH:mm:ss"); aValue = df.format(date); } else { - throw new RuntimeException("Tried to use DateRenderer on non-Date value."); + throw new RuntimeException(NbBundle.getMessage(this.getClass(), + "IngestMessagePanel.DateRenderer.exception.nonDateVal.text")); } Component cell = super.getTableCellRendererComponent(table, aValue, isSelected, hasFocus, row, column); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java index d4a9ab9cce..529948616c 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java @@ -249,11 +249,12 @@ import org.sleuthkit.datamodel.Content; @Override public void displayReport(String ingestReport) { - Object[] options = {"OK", - "Generate Report"}; + Object[] options = {NbBundle.getMessage(this.getClass(), "IngestMessageTopComponent.displayReport.option.OK"), + NbBundle.getMessage(this.getClass(), + "IngestMessageTopComponent.displayReport.option.GenRpt")}; final int choice = JOptionPane.showOptionDialog(null, ingestReport, - "Ingest Report", + NbBundle.getMessage(this.getClass(), "IngestMessageTopComponent.msgDlg.ingestRpt.text"), JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleLoader.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleLoader.java index c3f406c89e..d5ba207771 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleLoader.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleLoader.java @@ -48,10 +48,7 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.openide.modules.ModuleInfo; -import org.openide.util.Exceptions; -import org.openide.util.Lookup; -import org.openide.util.LookupEvent; -import org.openide.util.LookupListener; +import org.openide.util.*; import org.reflections.Reflections; import org.reflections.scanners.ResourcesScanner; import org.reflections.scanners.SubTypesScanner; @@ -611,7 +608,10 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; } catch (Exception e) { logger.log(Level.SEVERE, "IngestModuleLoader listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to IngestModuleLoader updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "IngestModuleLoader.moduleErr"), + NbBundle.getMessage(this.getClass(), + "IngestModuleLoader.moduleErr.errListenUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -633,7 +633,8 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; * @param newOrder new order to set */ void setModuleOrder(IngestModuleLoader.XmlPipelineRaw.PIPELINE_TYPE pipeLineType, String moduleLocation, int newOrder) throws IngestModuleLoaderException { - throw new IngestModuleLoaderException("Not yet implemented"); + throw new IngestModuleLoaderException( + NbBundle.getMessage(this.getClass(), "IngestModuleLoader.exception.notImplemented.msg")); } /** @@ -665,7 +666,9 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; } } if (pipeline == null) { - throw new IngestModuleLoaderException("Could not find expected pipeline of type: " + pipelineType.toString() + ", cannot add autodiscovered module: " + moduleLocation); + throw new IngestModuleLoaderException( + NbBundle.getMessage(this.getClass(), "IngestModuleLoader.exception.cantFindPipeline.msg", + pipelineType.toString(), moduleLocation)); } else { pipeline.modules.add(modRaw); logger.log(Level.INFO, "Added a new module " + moduleClass.getName() + " to pipeline " + pipelineType.toString()); @@ -706,8 +709,9 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; Document doc = docBuilder.newDocument(); - Comment comment = doc.createComment("Saved by: " + getClass().getName() - + " on: " + dateFormatter.format(System.currentTimeMillis())); + Comment comment = doc.createComment( + NbBundle.getMessage(this.getClass(), "IngestModuleLoader.save.comment.text", getClass().getName(), + dateFormatter.format(System.currentTimeMillis()))); doc.appendChild(comment); Element rootEl = doc.createElement(IngestModuleLoader.XmlPipelineRaw.XML_PIPELINE_ROOT); doc.appendChild(rootEl); @@ -885,18 +889,23 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; private void loadRawPipeline() throws IngestModuleLoaderException { final Document doc = XMLUtil.loadDoc(IngestModuleLoader.class, absFilePath, XSDFILE); if (doc == null) { - throw new IngestModuleLoaderException("Could not load pipeline config XML: " + this.absFilePath); + throw new IngestModuleLoaderException( + NbBundle.getMessage(this.getClass(), "IngestModuleLoader.loadRawPipeline.exception.cantLoadXML.msg", + this.absFilePath)); } Element root = doc.getDocumentElement(); if (root == null) { - String msg = "Error loading pipeline configuration: invalid file format."; + String msg = NbBundle + .getMessage(this.getClass(), "IngestModuleLoader.loadRawPipeline.exception.invalidFileFormat.msg"); logger.log(Level.SEVERE, msg); throw new IngestModuleLoaderException(msg); } NodeList pipelineNodes = root.getElementsByTagName(IngestModuleLoader.XmlPipelineRaw.XML_PIPELINE_EL); int numPipelines = pipelineNodes.getLength(); if (numPipelines == 0) { - throw new IngestModuleLoaderException("No pipelines found in the pipeline configuration: " + absFilePath); + throw new IngestModuleLoaderException(NbBundle.getMessage(this.getClass(), + "IngestModuleLoader.loadRawPipeline.exception.noPipelinesInConf.msg", + absFilePath)); } for (int pipelineNum = 0; pipelineNum < numPipelines; ++pipelineNum) { //process pipelines @@ -1026,7 +1035,8 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; return types[i]; } } - throw new IllegalArgumentException("No PIPELINE_TYPE for string: " + s); + throw new IllegalArgumentException( + NbBundle.getMessage(IngestModuleLoader.class, "IngestModuleLoader.exception.noPipelineTypeForStr.msg", s)); } private static final String XML_PIPELINE_ROOT = "PIPELINE_CONFIG"; private static final String XML_PIPELINE_EL = "PIPELINE"; diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java index b483c3d35c..08c7d658dd 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java @@ -27,6 +27,8 @@ import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.SimpleFormatter; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.Timer; import org.openide.util.Exceptions; @@ -164,9 +166,9 @@ import org.sleuthkit.autopsy.coreutils.PlatformUtil; MONITOR_LOGGER.log(Level.SEVERE, "Stopping ingest due to low disk space on disk " + diskPath); logger.log(Level.SEVERE, "Stopping ingest due to low disk space on disk " + diskPath); manager.stopAll(); - manager.postMessage(IngestMessage.createManagerErrorMessage("Ingest stopped - low disk space on " + diskPath, - "Stopping ingest due to low disk space on disk " + diskPath - + ". \nEnsure the Case drive has at least 1GB free space and restart ingest.")); + manager.postMessage(IngestMessage.createManagerErrorMessage( + NbBundle.getMessage(this.getClass(), "IngestMonitor.mgrErrMsg.lowDiskSpace.title", diskPath), + NbBundle.getMessage(this.getClass(), "IngestMonitor.mgrErrMsg.lowDiskSpace.msg", diskPath))); } } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestScheduler.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestScheduler.java index 3b9836bf68..b663b2ac28 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestScheduler.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestScheduler.java @@ -31,8 +31,9 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; -import org.sleuthkit.autopsy.ingest.IngestScheduler.FileScheduler.FileTask; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.ContentVisitor; @@ -134,15 +135,18 @@ class IngestScheduler { @Override public synchronized String toString() { StringBuilder sb = new StringBuilder(); - sb.append("\nRootDirs(sorted), size: ").append(rootProcessTasks.size()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestScheduler.FileSched.toString.rootDirs.text", + rootProcessTasks.size())); for (FileTask task : rootProcessTasks) { sb.append(task.toString()).append(" "); } - sb.append("\nCurDirs(stack), size: ").append(curDirProcessTasks.size()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestScheduler.FileSched.toString.curDirs.text", + curDirProcessTasks.size())); for (FileTask task : curDirProcessTasks) { sb.append(task.toString()).append(" "); } - sb.append("\nCurFiles, size: ").append(curFileProcessTasks.size()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestScheduler.FileSched.toString.curFiles.text", + curFileProcessTasks.size())); for (FileTask task : curFileProcessTasks) { sb.append(task.toString()).append(" "); } @@ -224,13 +228,13 @@ class IngestScheduler { @Override public String toString() { try { - return "ProcessTask{" + "file=" + file.getId() + ": " - + file.getUniquePath() + "}"; // + ", dataSourceTask=" + dataSourceTask + '}'; + return NbBundle.getMessage(this.getClass(), "IngestScheduler.fileTask.toString.long", file.getId(), + file.getUniquePath()); // + ", dataSourceTask=" + dataSourceTask + '}'; } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Cound not get unique path of file in queue, ", ex); } - return "ProcessTask{" + "file=" + file.getId() + ": " - + file.getName() + '}'; + return NbBundle.getMessage(this.getClass(), "IngestScheduler.fileTask.toString.short", file.getId(), + file.getName()); } /** @@ -432,7 +436,8 @@ class IngestScheduler { @Override public synchronized FileTask next() { if (!hasNext()) { - throw new IllegalStateException("No next ProcessTask, check hasNext() first!"); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "IngestScheduler.FileTask.next.exception.msg")); } //dequeue the last in the list @@ -502,7 +507,8 @@ class IngestScheduler { @Override public void remove() { - throw new UnsupportedOperationException("Not supported."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "IngestScheduler.remove.exception.notSupported.msg")); } /** @@ -933,7 +939,8 @@ class IngestScheduler { @Override public synchronized DataSourceTask next() throws IllegalStateException { if (!hasNext()) { - throw new IllegalStateException("There is no data source tasks in the queue, check hasNext()"); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "IngestScheduler.DataSourceScheduler.exception.next.msg")); } final DataSourceTask ret = tasks.pollFirst(); @@ -960,7 +967,8 @@ class IngestScheduler { @Override public void remove() { - throw new UnsupportedOperationException("Removing of scheduled data source ingest tasks is not supported. "); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "IngestScheduler.DataSourceScheduler.exception.remove.msg")); } synchronized void empty() { @@ -974,7 +982,8 @@ class IngestScheduler { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("DataSourceQueue, size: ").append(getCount()); + sb.append(NbBundle.getMessage(this.getClass(), "IngestScheduler.DataSourceScheduler.toString.size", + getCount())); for (DataSourceTask task : tasks) { sb.append(task.toString()).append(" "); } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/PipelineContext.java b/Core/src/org/sleuthkit/autopsy/ingest/PipelineContext.java index 1e2b69e981..1ea7de6033 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/PipelineContext.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/PipelineContext.java @@ -18,6 +18,8 @@ */ package org.sleuthkit.autopsy.ingest; +import org.openide.util.NbBundle; + import java.util.Objects; /** @@ -45,7 +47,7 @@ public class PipelineContext { @Override public String toString() { - return "pipelineContext{" + "task=" + task + '}'; + return NbBundle.getMessage(this.getClass(), "PipelineContext.toString.text", task); } @Override From 252465792f739baf22b0189de1aaf4542d0ee8dd Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 25 Feb 2014 17:01:09 -0800 Subject: [PATCH 33/90] Partially translated --- .../corecomponents/Bundle_ja.properties | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index e69de29bb2..95779d8b56 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -0,0 +1,121 @@ +CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 +CTL_DataContentTopComponent=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 +CTL_NodeTableAction=\u30CE\u30FC\u30C9\u8868 +CTL_NodeTableTopComponent=\u30CE\u30FC\u30C9\u8868\u30C6\u30FC\u30D6\u30EB +CTL_HexViewAction=Hex\u30D3\u30E5\u30FC +CTL_HexViewTopComponent=Hex\u30D3\u30E5\u30FC +CTL_StringViewAction=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC +CTL_StringViewTopComponent=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC +#todo what is this "about"? About action? Need the noun to make translation sound natural +CTL_CustomAboutAction= +HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_HexViewTopComponent=\u3053\u308C\u306FHex\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_StringViewTopComponent=\u3053\u308C\u306F\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 +OutputViewPanel.prevPageButton.text=\u524D\u306E\u30DA\u30FC\u30B8 +OutputViewPanel.currentPageLabel.text=1 +OutputViewPanel.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A +OutputViewPanel.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +OutputViewPanel.nextPageButton.text=\u6B21\u306E\u30DA\u30FC\u30B8 +DataContentViewerHex.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +DataContentViewerHex.pageLabel.text=\u30DA\u30FC\u30B8 +DataContentViewerHex.currentPageLabel.text=1 +DataContentViewerHex.totalPageLabel.text=100 +DataContentViewerString.totalPageLabel.text=100 +DataContentViewerString.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +OptionsCategory_Name_General=\u4E00\u822C +OptionsCategory_Keywords_General=\u4E00\u822C +DataContentViewerHex.pageLabel.text_1=\u30DA\u30FC\u30B8\uFF1A +DataContentViewerHex.currentPageLabel.text_1=1 +DataContentViewerHex.totalPageLabel.text_1=100 +DataContentViewerString.pageLabel.text_1=\u30DA\u30FC\u30B8\uFF1A +DataContentViewerString.currentPageLabel.text_1=1 +DataContentViewerString.totalPageLabel.text_1=100 +DataContentViewerHex.pageLabel2.text=\u30DA\u30FC\u30B8 +DataContentViewerString.pageLabel2.text=\u30DA\u30FC\u30B8 +Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} {2}\u4E0A\u3067\u5B9F\u884C\u4E2D +URL_ON_IMG=http\://www.sleuthkit.org/ +LBL_Close=\u9589\u3058\u308B +DataContentViewerString.copyMenuItem.text=\u30B3\u30D4\u30FC +DataContentViewerHex.copyMenuItem.text=\u30B3\u30D4\u30FC +DataContentViewerString.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +DataContentViewerHex.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +DataContentViewerArtifact.totalPageLabel.text=100 +DataContentViewerArtifact.pageLabel2.text=\u7D50\u679C +DataContentViewerArtifact.currentPageLabel.text=1 +DataContentViewerArtifact.copyMenuItem.text=\u30B3\u30D4\u30FC +DataContentViewerArtifact.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +DataContentViewerArtifact.pageLabel.text=\u7D50\u679C\uFF1A +AdvancedConfigurationDialog.applyButton.text=OK +DataContentViewerString.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A +DataContentViewerHex.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A +DataContentViewerString.languageLabel.text=\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A +DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30C7\u30FC\u30BF\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\u306E\u969B\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E +DataResultViewerThumbnail.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A +DataResultViewerThumbnail.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A +DataResultViewerThumbnail.imagesLabel.text=\u753B\u50CF\uFF1A +DataResultViewerThumbnail.imagesRangeLabel.text=- +DataResultViewerThumbnail.pageNumLabel.text=- +DataResultViewerThumbnail.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\uFF1A +GeneralPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3059\u308B\u969B\uFF1A +GeneralPanel.useBestViewerRB.text=\u6700\u3082\u5C02\u9580\u7684\u306A\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u306B\u5909\u66F4 +GeneralPanel.keepCurrentViewerRB.text=\u305D\u306E\u307E\u307E\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u3092\u4F7F\u7528 +GeneralPanel.useBestViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306FHex\u304B\u3089\u30E1\u30C7\u30A3\u30A2\u306B\u5909\u66F4\u3059\u308B\u3002 +GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306F\u305D\u306E\u307E\u307EHex\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 +AdvancedConfigurationDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB +DataResultPanel.directoryTablePath.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30D1\u30B9 +DataResultPanel.numberMatchLabel.text=0 +DataResultPanel.matchLabel.text=\u7D50\u679C +MediaViewVideoPanel.pauseButton.text=\u25BA +MediaViewVideoPanel.progressLabel.text=00\:00 +MediaViewVideoPanel.infoLabel.text=\u60C5\u5831 +GeneralPanel.jLabel2.text=\u30A2\u30A4\u30C6\u30E0\u3092\u8868\u793A\u3059\u308B\u969B\uFF1A +GeneralPanel.useLocalTimeRB.text=\u30ED\u30FC\u30AB\u30EB\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u4F7F\u7528 +GeneralPanel.useGMTTimeRB.text=GMT\u3092\u4F7F\u7528 +GeneralPanel.jLabel3.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0\u5185\u306E\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u306F\u4E0B\u8A18\u306E\u5834\u5408\u306B\u96A0\u3059\uFF1A +#todo checking meaning with Nick +GeneralPanel.viewsHideKnownCB.text=\u30D3\u30E5\u30FC\u3092\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 +GeneralPanel.dataSourcesHideKnownCB.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 +DataContentViewerArtifact.waitText=\u30C7\u30FC\u30BF\u3092\u53D6\u8FBC\u307F\u304A\u3088\u3073\u6E96\u5099\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u2026 +DataContentViewerArtifact.errorText=\u7D50\u679C\u306E\u53D6\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +DataContentViewerArtifact.title=\u7D50\u679C +DataContentViewerArtifact.toolTip=\u30D5\u30A1\u30A4\u30EB\u306B\u95A2\u9023\u3059\u308B\u7D50\u679C\u3092\u8868\u793A\u3057\u307E\u3059 +DataContentViewerHex.goToPageTextField.msgDlg=\uFF11\u304B\u3089 {0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +DataContentViewerHex.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 +DataContentViewerHex.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09 +DataContentViewerHex.title=Hex +DataContentViewerHex.toolTip=\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\uFF11\uFF16\u9032\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8868\u793A\u3057\u3001ASCII\u3068\u3057\u3066\u8868\u793A\u3067\u304D\u308B\u30D0\u30A4\u30C8\u306F\u53F3\u5074\u306B\u8868\u793A\u3057\u307E\u3059\u3002 +DataContentViewerMedia.title=\u30E1\u30C7\u30A3\u30A2 +DataContentViewerMedia.toolTip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2\u30D5\u30A1\u30A4\u30EB\uFF08\u753B\u50CF\u3001\u30D3\u30C7\u30AA\u3001\u30AA\u30FC\u30C7\u30A3\u30AA\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002s +DataContentViewerString.goToPageTextField.msgDlg=1\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +DataContentViewerString.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 +DataContentViewerString.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09\ +DataContentViewerString.setDataView.errorNoText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306B\u306F\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09 +DataContentViewerString.title=\u30B9\u30C8\u30EA\u30F3\u30B0 +DataContentViewerString.toolTip=\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u62BD\u51FA\u3055\u308C\u305FASCII\u304A\u3088\u3073\u30E6\u30CB\u30B3\u30FC\u30C9\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +DataResultPanel.dummyNodeDisplayName=\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026 +DataResultViewerTable.firstColLbl=\u540D\u79F0 +DataResultViewerTable.illegalArgExc.noChildFromParent=\u6307\u5B9A\u3055\u308C\u305F\u30DA\u30A2\u30EC\u30F3\u30C8\u304B\u3089\u30C1\u30E3\u30A4\u30EB\u30C9\u30CE\u30FC\u30C9\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +DataResultViewerTable.illegalArgExc.childWithoutPropertySet=\u30C1\u30E3\u30A4\u30EB\u30C9\u30CE\u30FC\u30C9\u306F\u901A\u5E38\u306EPropertySet\u3092\u6301\u3063\u3066\u3044\u307E\u305B\u3093\u3002 +DataResultViewerTable.title=\u30C6\u30FC\u30D6\u30EB +DataResultViewerTable.dummyNodeDisplayName=\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026 +DataResultViewerThumbnail.title=\u30B5\u30E0\u30CD\u30A4\u30EB +DataResultViewerThumbnail.goToPageTextField.msgDlg=1\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +DataResultViewerThumbnail.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 +DataResultViewerThumbnail.genThumbs=\u30B5\u30E0\u30CD\u30A4\u30EB\u3092\u4F5C\u6210\u4E2D\u2026 +DataResultViewerThumbnail.pageNumbers.curOfTotal={0}\uFF0F{1}\u3064\u76EE +FXVideoPanel.mediaPane.infoLabel=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002 +FXVideoPanel.progress.bufferingFile={0}\u3092\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0 +FXVideoPanel.progressLabel.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026 +FXVideoPanel.media.unsupportedFormat=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3067\u3059\u3002 +GeneralOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +GeneralOptionsPanelController.moduleErr.msg=GeneralOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +GstVideoPanel.cannotProcFile.err=\u30E1\u30C7\u30A4\u30A2\u30D7\u30EC\u30FC\u30E4\u30FC\u304C\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 +GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 +GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 +GstVideoPanel.setupVideo.infoLabel.text=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002 +GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u306F\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\uFF1B +LBL_Description=
\n \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {0} ({9})
Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {7}
Netbeans RCP\u30D3\u30EB\u30C9\: {8}
Java\: {1}; {2}
\u30B7\u30B9\u30C6\u30E0\uFF1A {3}; {4}; {5}
\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D {6}
+LBL_Copyright= \ No newline at end of file From aa76bcc372523bc3556620a56f4aa9ac8c0619ff Mon Sep 17 00:00:00 2001 From: Brian Carrier Date: Wed, 26 Feb 2014 00:43:25 -0500 Subject: [PATCH 34/90] Moved SQLiteDBConnect and LocalDisk to better packages --- Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java | 1 + .../autopsy/{casemodule => coreutils}/LocalDisk.java | 2 +- Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java | 1 - .../src/org/sleuthkit/autopsy/recentactivity/Extract.java | 1 - .../sleuthkit/autopsy/recentactivity}/SQLiteDBConnect.java | 4 ++-- .../src/org/sleuthkit/autopsy/recentactivity/Util.java | 1 - 6 files changed, 4 insertions(+), 6 deletions(-) rename Core/src/org/sleuthkit/autopsy/{casemodule => coreutils}/LocalDisk.java (97%) rename {Core/src/org/sleuthkit/autopsy/report => RecentActivity/src/org/sleuthkit/autopsy/recentactivity}/SQLiteDBConnect.java (98%) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java index 5c61abbd1f..b85ec86e4f 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.casemodule; +import org.sleuthkit.autopsy.coreutils.LocalDisk; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDisk.java b/Core/src/org/sleuthkit/autopsy/coreutils/LocalDisk.java similarity index 97% rename from Core/src/org/sleuthkit/autopsy/casemodule/LocalDisk.java rename to Core/src/org/sleuthkit/autopsy/coreutils/LocalDisk.java index 14853bcc12..c082250dea 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDisk.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/LocalDisk.java @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.sleuthkit.autopsy.casemodule; +package org.sleuthkit.autopsy.coreutils; /** * Representation of a PhysicalDisk or partition. diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java index 40ced93327..1ccc4132a4 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java +++ b/Core/src/org/sleuthkit/autopsy/coreutils/PlatformUtil.java @@ -37,7 +37,6 @@ import org.hyperic.sigar.Sigar; import org.hyperic.sigar.ptql.ProcessFinder; import org.openide.modules.InstalledFileLocator; import org.openide.modules.Places; -import org.sleuthkit.autopsy.casemodule.LocalDisk; import org.sleuthkit.datamodel.SleuthkitJNI; import org.sleuthkit.datamodel.TskCoreException; diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java index 66a628f389..12b82bbc65 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java @@ -30,7 +30,6 @@ import java.util.logging.Level; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.ingest.IngestModuleDataSource; -import org.sleuthkit.autopsy.report.SQLiteDBConnect; import org.sleuthkit.datamodel.*; abstract class Extract extends IngestModuleDataSource{ diff --git a/Core/src/org/sleuthkit/autopsy/report/SQLiteDBConnect.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SQLiteDBConnect.java similarity index 98% rename from Core/src/org/sleuthkit/autopsy/report/SQLiteDBConnect.java rename to RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SQLiteDBConnect.java index 97142c840a..067145c5e6 100644 --- a/Core/src/org/sleuthkit/autopsy/report/SQLiteDBConnect.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SQLiteDBConnect.java @@ -20,7 +20,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.sleuthkit.autopsy.report; +package org.sleuthkit.autopsy.recentactivity; import java.sql.Connection; import java.sql.DriverManager; @@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; /** * Database connection class & utilities * */ - public class SQLiteDBConnect { +class SQLiteDBConnect { public String sDriver = ""; public String sUrl = null; diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java index c5346df9b1..c27d216ae8 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java @@ -41,7 +41,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.services.FileManager; -import org.sleuthkit.autopsy.report.SQLiteDBConnect; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.TskCoreException; From 179827a7ac013c8d17136b0914764395aac778e7 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 13:00:02 -0800 Subject: [PATCH 35/90] Completed translation. Still clarifying meaning for few texts. Questions are posted on Jira. --- .../corecomponents/Bundle_ja.properties | 61 ++++++++----------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index 95779d8b56..74e1cfad26 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -1,31 +1,7 @@ -CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 CTL_DataContentTopComponent=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 -CTL_NodeTableAction=\u30CE\u30FC\u30C9\u8868 -CTL_NodeTableTopComponent=\u30CE\u30FC\u30C9\u8868\u30C6\u30FC\u30D6\u30EB -CTL_HexViewAction=Hex\u30D3\u30E5\u30FC -CTL_HexViewTopComponent=Hex\u30D3\u30E5\u30FC -CTL_StringViewAction=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC -CTL_StringViewTopComponent=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC -#todo what is this "about"? About action? Need the noun to make translation sound natural -CTL_CustomAboutAction= -HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_HexViewTopComponent=\u3053\u308C\u306FHex\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_StringViewTopComponent=\u3053\u308C\u306F\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 -OutputViewPanel.prevPageButton.text=\u524D\u306E\u30DA\u30FC\u30B8 -OutputViewPanel.currentPageLabel.text=1 -OutputViewPanel.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A -OutputViewPanel.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -OutputViewPanel.nextPageButton.text=\u6B21\u306E\u30DA\u30FC\u30B8 -DataContentViewerHex.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -DataContentViewerHex.pageLabel.text=\u30DA\u30FC\u30B8 -DataContentViewerHex.currentPageLabel.text=1 -DataContentViewerHex.totalPageLabel.text=100 -DataContentViewerString.totalPageLabel.text=100 -DataContentViewerString.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -OptionsCategory_Name_General=\u4E00\u822C -OptionsCategory_Keywords_General=\u4E00\u822C DataContentViewerHex.pageLabel.text_1=\u30DA\u30FC\u30B8\uFF1A DataContentViewerHex.currentPageLabel.text_1=1 DataContentViewerHex.totalPageLabel.text_1=100 @@ -34,6 +10,7 @@ DataContentViewerString.currentPageLabel.text_1=1 DataContentViewerString.totalPageLabel.text_1=100 DataContentViewerHex.pageLabel2.text=\u30DA\u30FC\u30B8 DataContentViewerString.pageLabel2.text=\u30DA\u30FC\u30B8 +#todo checking meaning with Nick Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} {2}\u4E0A\u3067\u5B9F\u884C\u4E2D URL_ON_IMG=http\://www.sleuthkit.org/ LBL_Close=\u9589\u3058\u308B @@ -51,7 +28,7 @@ AdvancedConfigurationDialog.applyButton.text=OK DataContentViewerString.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A DataContentViewerHex.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\uFF1A DataContentViewerString.languageLabel.text=\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A -DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30C7\u30FC\u30BF\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\u306E\u969B\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E +DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\u306E\u969B\u306B\u4F7F\u7528\u3059\u308B\u8A00\u8A9E DataResultViewerThumbnail.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A DataResultViewerThumbnail.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A DataResultViewerThumbnail.imagesLabel.text=\u753B\u50CF\uFF1A @@ -62,7 +39,7 @@ GeneralPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3059\u308B GeneralPanel.useBestViewerRB.text=\u6700\u3082\u5C02\u9580\u7684\u306A\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u306B\u5909\u66F4 GeneralPanel.keepCurrentViewerRB.text=\u305D\u306E\u307E\u307E\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u3092\u4F7F\u7528 GeneralPanel.useBestViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306FHex\u304B\u3089\u30E1\u30C7\u30A3\u30A2\u306B\u5909\u66F4\u3059\u308B\u3002 -GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306F\u305D\u306E\u307E\u307EHex\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 +GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u305D\u306E\u307E\u307EHex\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 AdvancedConfigurationDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB DataResultPanel.directoryTablePath.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30D1\u30B9 DataResultPanel.numberMatchLabel.text=0 @@ -87,8 +64,8 @@ DataContentViewerHex.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{ DataContentViewerHex.title=Hex DataContentViewerHex.toolTip=\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\uFF11\uFF16\u9032\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8868\u793A\u3057\u3001ASCII\u3068\u3057\u3066\u8868\u793A\u3067\u304D\u308B\u30D0\u30A4\u30C8\u306F\u53F3\u5074\u306B\u8868\u793A\u3057\u307E\u3059\u3002 DataContentViewerMedia.title=\u30E1\u30C7\u30A3\u30A2 -DataContentViewerMedia.toolTip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2\u30D5\u30A1\u30A4\u30EB\uFF08\u753B\u50CF\u3001\u30D3\u30C7\u30AA\u3001\u30AA\u30FC\u30C7\u30A3\u30AA\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002s -DataContentViewerString.goToPageTextField.msgDlg=1\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +DataContentViewerMedia.toolTip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2\u30D5\u30A1\u30A4\u30EB\uFF08\u753B\u50CF\u3001\u30D3\u30C7\u30AA\u3001\u30AA\u30FC\u30C7\u30A3\u30AA\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002 +DataContentViewerString.goToPageTextField.msgDlg=\uFF11\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 DataContentViewerString.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 DataContentViewerString.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09\ DataContentViewerString.setDataView.errorNoText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306B\u306F\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09 @@ -101,7 +78,7 @@ DataResultViewerTable.illegalArgExc.childWithoutPropertySet=\u30C1\u30E3\u30A4\u DataResultViewerTable.title=\u30C6\u30FC\u30D6\u30EB DataResultViewerTable.dummyNodeDisplayName=\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026 DataResultViewerThumbnail.title=\u30B5\u30E0\u30CD\u30A4\u30EB -DataResultViewerThumbnail.goToPageTextField.msgDlg=1\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +DataResultViewerThumbnail.goToPageTextField.msgDlg=\uFF11\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 DataResultViewerThumbnail.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 DataResultViewerThumbnail.genThumbs=\u30B5\u30E0\u30CD\u30A4\u30EB\u3092\u4F5C\u6210\u4E2D\u2026 DataResultViewerThumbnail.pageNumbers.curOfTotal={0}\uFF0F{1}\u3064\u76EE @@ -112,10 +89,26 @@ FXVideoPanel.media.unsupportedFormat=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\ GeneralOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC GeneralOptionsPanelController.moduleErr.msg=GeneralOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 GstVideoPanel.cannotProcFile.err=\u30E1\u30C7\u30A4\u30A2\u30D7\u30EC\u30FC\u30E4\u30FC\u304C\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 -GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 -GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 +GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 +GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 GstVideoPanel.setupVideo.infoLabel.text=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002 GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u306F\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\uFF1B LBL_Description=
\n \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {0} ({9})
Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {7}
Netbeans RCP\u30D3\u30EB\u30C9\: {8}
Java\: {1}; {2}
\u30B7\u30B9\u30C6\u30E0\uFF1A {3}; {4}; {5}
\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D {6}
-LBL_Copyright= \ No newline at end of file +LBL_Copyright=
Autopsy™\u306FSleuth Kit™\u3084\u305D\u306E\u4ED6\u30C4\u30FC\u30EB\u3092\u57FA\u306B\u3057\u305F\u30C7\u30B8\u30BF\u30EB\u30FB\u30D5\u30A9\u30EC\u30F3\u30B8\u30C3\u30AF\u30FB\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u3059\u3002

Copyright © 2003-2013. \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002 http\://www.sleuthkit.org.
+#todo checking meaning with Nick +GstVideoPanel.exception.problemPause.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\uFF03\uFF03\uFF03\uFF03\uFF03 +GstVideoPanel.exception.problemPauseCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemPlayCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u518D\u751F\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemStopCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u505C\u6B62\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 +GstVideoPanel.progress.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026 +GstVideoPanel.progressLabel.bufferingErr=\u30D5\u30A1\u30A4\u30EB\u306E\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u30A8\u30E9\u30FC +MediaViewImagePanel.imgFileTooLarge.msg=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30B5\u30A4\u30BA\u304C\u5927\u304D\u3059\u304E\uFF09\uFF1A {0} +ProductInformationPanel.actVerboseLogging.text=Verbose\u30ED\u30AE\u30F3\u30B0\u3092\u6709\u52B9\u5316 +ProductInformationPanel.verbLoggingEnabled.text=Verbose\u30ED\u30AE\u30F3\u30B0\u304C\u6709\u52B9\u3067\u3059 +ProductInformationPanel.propertyUnknown.text=\u4E0D\u660E +ProductInformationPanel.getVMValue.text={0} {1} +TableFilterNode.displayName.text=\u540D\u79F0 +CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 +OptionsCategory_Name_General=\u4E00\u822C +OptionsCategory_Keywords_General=\u4E00\u822C \ No newline at end of file From 21489ff26b561a8c2681f71d95faf79b250c923a Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 13:20:54 -0800 Subject: [PATCH 36/90] Completed translation. Still clarifying meaning for one more. --- .../sleuthkit/autopsy/contentviewers/Bundle_ja.properties | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties index 5bc99142a5..26f998cabb 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties @@ -1,7 +1,7 @@ Metadata.tableRowTitle.name=\u540D\u79F0 Metadata.tableRowTitle.size=\u30B5\u30A4\u30BA #todo is file name allocation same as file allocation? -Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 Metadata.tableRowTitle.modified=\u4FEE\u6B63\u6E08\u307F Metadata.tableRowTitle.accessed=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F @@ -13,4 +13,5 @@ Metadata.tableRowTitle.hashLookupResults=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u3 Metadata.tableRowTitle.internalid=\u5185\u90E8ID Metadata.tableRowTitle.localPath=\u30ED\u30FC\u30AB\u30EB\u30D1\u30B9 Metadata.title=\u30E1\u30BF\u30C7\u30FC\u30BF -Metadata.toolTip=\u30D5\u30A1\u30A4\u30EB\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002 \ No newline at end of file +Metadata.toolTip=\u30D5\u30A1\u30A4\u30EB\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u8868\u793A\u3057\u307E\u3059\u3002 +Metadata.nodeText.nonFilePassedIn=\u51E6\u7406\u4E2D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093 \ No newline at end of file From 67501e91636da72c875317bff6c943bb3ed91ed2 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 15:03:42 -0800 Subject: [PATCH 37/90] Completed translation. Still clarifying meaning for couple more. --- .../autopsy/coreutils/Bundle.properties | 10 ++++---- .../autopsy/coreutils/Bundle_ja.properties | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties index 6b4fb53f53..771ee6d97f 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle.properties @@ -6,15 +6,15 @@ PlatformUtil.archUnknown=unknown PlatformUtil.jrePath.jreDir.msg=Embedded jre directory found in\: {0} PlatformUtil.jrePath.usingJavaPath.msg=Using java binary path\: {0} PlatformUtil.getPID.sigarNotInit.msg=Can't get PID, sigar not initialized -PlatformUtil.getPID.gen.msg=Can''t get PID,{0} +PlatformUtil.getPID.gen.msg=Can't get PID,{0} PlatformUtil.getJavaPID.sigarNotInit.msg=Can't get PID of a java process, sigar not initialized -PlatformUtil.getJavaPID.gen.msg=Can''t get PID for query\: {0}, {1} +PlatformUtil.getJavaPID.gen.msg=Can't get PID for query\: {0}, {1} PlatformUtil.getJavaPIDs.sigarNotInit=Can't get PIDs of a java process, sigar not initialized -PlatformUtil.getJavaPIDs.gen.msg=Can''t get PIDs for query\: {0}, {1} +PlatformUtil.getJavaPIDs.gen.msg=Can't get PIDs for query\: {0}, {1} PlatformUtil.killProcess.sigarNotInit.msg=Can't kill process by pid, sigar not initialized. -PlatformUtil.killProcess.gen.msg=Can''t kill process\: {0}, {1} +PlatformUtil.killProcess.gen.msg=Can't kill process\: {0}, {1} PlatformUtil.getProcVmUsed.sigarNotInit.msg=Can't get virt mem used, sigar not initialized. -PlatformUtil.getProcVmUsed.gen.msg=Can''t get virt mem used, {0} +PlatformUtil.getProcVmUsed.gen.msg=Can't get virt mem used, {0} PlatformUtil.getJvmMemInfo.usageText=JVM heap usage\: {0}, JVM non-heap usage\: {1} PlatformUtil.getPhysicalMemInfo.usageText=Physical memory usage (max, total, free)\: {0}, {1}, {2} PlatformUtil.getAllMemUsageInfo.usageText={0}\ diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties index e69de29bb2..7b40ef71ca 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties @@ -0,0 +1,24 @@ +OpenIDE-Module-Name=\u4E3B\u8981\u30E6\u30FC\u30C6\u30A3\u30EA\u30C6\u30A3 +JLNK.noPrefPath.text=\u512A\u5148\u7684\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +PlatformUtil.nameUnknown=\u4E0D\u660E +PlatformUtil.verUnknown=\u4E0D\u660E +PlatformUtil.archUnknown=\u4E0D\u660E +PlatformUtil.jrePath.jreDir.msg=\u57CB\u3081\u8FBC\u307E\u308C\u305FJRE\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u4E0B\u8A18\u3067\u767A\u898B\u3055\u308C\u307E\u3057\u305F\uFF1A{0} +PlatformUtil.jrePath.usingJavaPath.msg=JAVA\u30D0\u30A4\u30CA\u30EA\u30D1\u30B9\u3092\u4F7F\u7528\uFF1A{0} +PlatformUtil.getPID.sigarNotInit.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +PlatformUtil.getPID.gen.msg=PID\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001{0} +PlatformUtil.getJavaPID.sigarNotInit.msg=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +PlatformUtil.getJavaPID.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1} +PlatformUtil.getJavaPIDs.sigarNotInit=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +PlatformUtil.getJavaPIDs.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1} +PlatformUtil.killProcess.sigarNotInit.msg=PID\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PlatformUtil.killProcess.gen.msg=\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\uFF1A {0}, {1} +#todo double checking meaning with Nick +PlatformUtil.getProcVmUsed.sigarNotInit.msg=\u4EEE\u60F3\u30E1\u30E2\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PlatformUtil.getProcVmUsed.gen.msg=\u4EEE\u60F3\u30E1\u30E2\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001{0} +PlatformUtil.getJvmMemInfo.usageText=JVM\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{0}\u3001JVM\u975E\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{1} +PlatformUtil.getPhysicalMemInfo.usageText=\u7269\u7406\u30E1\u30E2\u30EA\u4F7F\u7528\u72B6\u6CC1\uFF08\u6700\u5927\u3001\u5408\u8A08\u3001\u5229\u7528\u53EF\u80FD\uFF09\uFF1A {0}, {1}, {2} +PlatformUtil.getAllMemUsageInfo.usageText={0}\ +{1}\ +\u30D7\u30ED\u30BB\u30B9\u4EEE\u60F3\u30E1\u30E2\u30EA\uFF1A{2} +StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u304B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 \ No newline at end of file From 075c1b098c3d2e916928ebe8ec660468e2a5b58d Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 15:08:52 -0800 Subject: [PATCH 38/90] Translation complete. --- .../org/sleuthkit/autopsy/coreutils/Bundle_ja.properties | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties index 7b40ef71ca..dd15cb064c 100644 --- a/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/coreutils/Bundle_ja.properties @@ -13,12 +13,11 @@ PlatformUtil.getJavaPIDs.sigarNotInit=JAVA\u30D7\u30ED\u30BB\u30B9\u306EPID\u304 PlatformUtil.getJavaPIDs.gen.msg=\u30AF\u30A8\u30EA\u30FC\u306EPID\u304C\u5165\u624B\u3067\u304D\u307E\u305B\u3093\uFF1A{0}, {1} PlatformUtil.killProcess.sigarNotInit.msg=PID\u3092\u4F7F\u7528\u3057\u3066\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 PlatformUtil.killProcess.gen.msg=\u30D7\u30ED\u30BB\u30B9\u3092\u5F37\u5236\u4FEE\u4E86\u3067\u304D\u307E\u305B\u3093\uFF1A {0}, {1} -#todo double checking meaning with Nick -PlatformUtil.getProcVmUsed.sigarNotInit.msg=\u4EEE\u60F3\u30E1\u30E2\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -PlatformUtil.getProcVmUsed.gen.msg=\u4EEE\u60F3\u30E1\u30E2\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001{0} +PlatformUtil.getProcVmUsed.sigarNotInit.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001Sigar\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +PlatformUtil.getProcVmUsed.gen.msg=\u4F7F\u7528\u4E2D\u306E\u4EEE\u60F3\u30E1\u30E2\u30EA\u91CF\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001{0} PlatformUtil.getJvmMemInfo.usageText=JVM\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{0}\u3001JVM\u975E\u30D2\u30FC\u30D7\u4F7F\u7528\u72B6\u6CC1\uFF1A{1} PlatformUtil.getPhysicalMemInfo.usageText=\u7269\u7406\u30E1\u30E2\u30EA\u4F7F\u7528\u72B6\u6CC1\uFF08\u6700\u5927\u3001\u5408\u8A08\u3001\u5229\u7528\u53EF\u80FD\uFF09\uFF1A {0}, {1}, {2} PlatformUtil.getAllMemUsageInfo.usageText={0}\ {1}\ \u30D7\u30ED\u30BB\u30B9\u4EEE\u60F3\u30E1\u30E2\u30EA\uFF1A{2} -StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u304B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 \ No newline at end of file +StringExtract.illegalStateException.cannotInit.msg=\u30E6\u30CB\u30B3\u30FC\u30C9\u30C6\u30FC\u30D6\u30EB\u304C\u6B63\u3057\u304F\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3001StringExtract\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093 \ No newline at end of file From 811d8b081186b2ba16bc54a74eba07ee2608dfaf Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 15:11:06 -0800 Subject: [PATCH 39/90] Translation complete. --- .../org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties index 26f998cabb..b3db39fbc1 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle_ja.properties @@ -1,8 +1,7 @@ Metadata.tableRowTitle.name=\u540D\u79F0 Metadata.tableRowTitle.size=\u30B5\u30A4\u30BA -#todo is file name allocation same as file allocation? Metadata.tableRowTitle.fileNameAlloc=\u30D5\u30A1\u30A4\u30EB\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B -Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +Metadata.tableRowTitle.metadataAlloc=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u72B6\u614B Metadata.tableRowTitle.modified=\u4FEE\u6B63\u6E08\u307F Metadata.tableRowTitle.accessed=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F Metadata.tableRowTitle.created=\u4F5C\u6210\u6E08\u307F From 97138bf790f4d7e9eeef2544147682047ffe4e37 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 17:24:40 -0800 Subject: [PATCH 40/90] Translation complete with final changes after Nick's clarifications. --- .../corecomponents/Bundle_ja.properties | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index 74e1cfad26..5cf13ad83e 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -10,8 +10,7 @@ DataContentViewerString.currentPageLabel.text_1=1 DataContentViewerString.totalPageLabel.text_1=100 DataContentViewerHex.pageLabel2.text=\u30DA\u30FC\u30B8 DataContentViewerString.pageLabel2.text=\u30DA\u30FC\u30B8 -#todo checking meaning with Nick -Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} {2}\u4E0A\u3067\u5B9F\u884C\u4E2D +Format_OperatingSystem_Value={0} \u30D0\u30FC\u30B8\u30E7\u30F3 {1} \u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u3000{2} URL_ON_IMG=http\://www.sleuthkit.org/ LBL_Close=\u9589\u3058\u308B DataContentViewerString.copyMenuItem.text=\u30B3\u30D4\u30FC @@ -51,9 +50,8 @@ GeneralPanel.jLabel2.text=\u30A2\u30A4\u30C6\u30E0\u3092\u8868\u793A\u3059\u308B GeneralPanel.useLocalTimeRB.text=\u30ED\u30FC\u30AB\u30EB\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u4F7F\u7528 GeneralPanel.useGMTTimeRB.text=GMT\u3092\u4F7F\u7528 GeneralPanel.jLabel3.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0\u5185\u306E\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u306F\u4E0B\u8A18\u306E\u5834\u5408\u306B\u96A0\u3059\uFF1A -#todo checking meaning with Nick -GeneralPanel.viewsHideKnownCB.text=\u30D3\u30E5\u30FC\u3092\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 -GeneralPanel.dataSourcesHideKnownCB.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 +GeneralPanel.viewsHideKnownCB.text=\u30D3\u30E5\u30FC\u304B\u3089\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 +GeneralPanel.dataSourcesHideKnownCB.text=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u304B\u3089\u9078\u629E\u3057\u3066\u3044\u308B\u5834\u5408 DataContentViewerArtifact.waitText=\u30C7\u30FC\u30BF\u3092\u53D6\u8FBC\u307F\u304A\u3088\u3073\u6E96\u5099\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u2026 DataContentViewerArtifact.errorText=\u7D50\u679C\u306E\u53D6\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F DataContentViewerArtifact.title=\u7D50\u679C @@ -93,17 +91,16 @@ GstVideoPanel.initGst.gstException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D GstVideoPanel.initGst.otherException.msg=\u30AA\u30FC\u30C7\u30A3\u30AA\uFF0F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u304A\u3088\u3073\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u306B\u4F7F\u7528\u3059\u308BGStreamer\u306E\u521D\u671F\u5316\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D3\u30C7\u30AA\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30AA\u518D\u751F\u304C\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002 GstVideoPanel.setupVideo.infoLabel.text=\u524A\u9664\u3055\u308C\u305F\u30D3\u30C7\u30AA\u306E\u518D\u751F\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5916\u90E8\u30D7\u30EC\u30FC\u30E4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\u3002 GstVideoPanel.exception.problemFile.msg=\u30D5\u30A1\u30A4\u30EB({0})\u304B\u3089\u306F\u30D5\u30EC\u30FC\u30E0\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\uFF1B +GstVideoPanel.exception.problemPlay.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1B\u9577\u3055\u3092\u78BA\u8A8D\u4E2D\u306B\u518D\u751F\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 LBL_Description=
\n \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {0} ({9})
Sleuth Kit\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A {7}
Netbeans RCP\u30D3\u30EB\u30C9\: {8}
Java\: {1}; {2}
\u30B7\u30B9\u30C6\u30E0\uFF1A {3}; {4}; {5}
\u30E6\u30FC\u30B6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D {6}
LBL_Copyright=
Autopsy™\u306FSleuth Kit™\u3084\u305D\u306E\u4ED6\u30C4\u30FC\u30EB\u3092\u57FA\u306B\u3057\u305F\u30C7\u30B8\u30BF\u30EB\u30FB\u30D5\u30A9\u30EC\u30F3\u30B8\u30C3\u30AF\u30FB\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u3059\u3002

Copyright © 2003-2013. \u8A73\u7D30\u306F\u4E0B\u8A18\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002 http\://www.sleuthkit.org.
-#todo checking meaning with Nick -GstVideoPanel.exception.problemPause.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\uFF03\uFF03\uFF03\uFF03\uFF03 -GstVideoPanel.exception.problemPauseCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 -GstVideoPanel.exception.problemPlayCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u518D\u751F\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 -GstVideoPanel.exception.problemStopCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u505C\u6B62\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemPause.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u9577\u3055\u3092\u78BA\u8A8D\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemPauseCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u4E00\u6642\u505C\u6B62\u3092\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemPlayCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u518D\u751F\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +GstVideoPanel.exception.problemStopCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\u30A4\u30EB\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30D5\u30EC\u30FC\u30E0\u306E\u62BD\u51FA\u4E2D\u306B\u505C\u6B62\u3057\u3088\u3046\u3068\u3057\u305F\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 GstVideoPanel.progress.buffering=\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u4E2D\u2026 GstVideoPanel.progressLabel.bufferingErr=\u30D5\u30A1\u30A4\u30EB\u306E\u30D0\u30C3\u30D5\u30A1\u30EA\u30F3\u30B0\u30A8\u30E9\u30FC -MediaViewImagePanel.imgFileTooLarge.msg=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30B5\u30A4\u30BA\u304C\u5927\u304D\u3059\u304E\uFF09\uFF1A {0} +MediaViewImagePanel.imgFileTooLarge.msg=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5927\u304D\u3059\u304E\uFF09\uFF1A {0} ProductInformationPanel.actVerboseLogging.text=Verbose\u30ED\u30AE\u30F3\u30B0\u3092\u6709\u52B9\u5316 ProductInformationPanel.verbLoggingEnabled.text=Verbose\u30ED\u30AE\u30F3\u30B0\u304C\u6709\u52B9\u3067\u3059 ProductInformationPanel.propertyUnknown.text=\u4E0D\u660E From 780fac2db6c5365c17d039b4ac32450e8a57fb37 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 26 Feb 2014 18:01:31 -0800 Subject: [PATCH 41/90] Initial translation started. --- .../autopsy/casemodule/Bundle_ja.properties | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties new file mode 100644 index 0000000000..929234687f --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties @@ -0,0 +1,28 @@ +CTL_AddImage=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0\u2026 +CTL_AddImageButton=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 +CTL_CaseAction=\u30B1\u30FC\u30B9 +CTL_CaseCloseAct=\u30B1\u30FC\u30B9\u3092\u9589\u3058\u308B +CTL_CaseNewAction=\u65B0\u898F\u30B1\u30FC\u30B9\u2026 +CTL_CasePropertiesAction=\u30B1\u30FC\u30B9\u30D7\u30ED\u30D1\u30C6\u30A3\u2026 +CTL_CaseTopComponent=\u30B1\u30FC\u30B9\u30A6\u30A3\u30F3\u30C9\u30A6 +CTL_OpenAction=\u30B1\u30FC\u30B9\u3092\u958B\u304F\u2026 +CTL_RecentCases=\u6700\u8FD1\u4F7F\u7528\u3057\u305F\u30B1\u30FC\u30B9 +CTL_CaseDeleteAction=\u30B1\u30FC\u30B9\u3092\u524A\u9664 +CTL_SaveCaseAction=\u30B1\u30FC\u30B9\u3092\u4FDD\u5B58 +CTL_testAction=\u30C6\u30B9\u30C8 +CTL_testTopComponent=\u30C6\u30B9\u30C8\u30A6\u30A3\u30F3\u30C9\u30A6 +HINT_CaseTopComponent=\u3053\u308C\u306F\u30B1\u30FC\u30B9\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +HINT_testTopComponent=\u3053\u308C\u306F\u30C6\u30B9\u30C8\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 +Menu/File/org-sleuthkit-autopsy-casemodule-OpenAction.shadow=\u30B1\u30FC\u30B9\u3092\u958B\u304F +OpenIDE-Module-Name=\u30B1\u30FC\u30B9 +CaseVisualPanel1.jLabel1.text=\u540D\u79F0 +CaseVisualPanel1.jLabel2.text=\u753B\u50CF\u30D1\u30B9\uFF1A +CaseVisualPanel1.jLabel3.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\uFF1A +CaseTopComponent.jLabel1.text=\u540D\u79F0 +CaseTopComponent.jLabel2.text=\u753B\u50CF\u30D1\u30B9 +CaseTopComponent.jLabel3.text=DB\u30D1\u30B9 +CaseVisualPanel1.ImgPathBrowserButton.text=\u95B2\u89A7 +CaseVisualPanel1.DbPathBrowserButton.text=\u95B2\u89A7 +NewCaseVisualPanel1.jLabel1.text=\u540D\u79F0 +#todo check meaning +NewCaseVisualPanel1.jLabel2.text=\u753B\u50CF\u306E\u7A2E\u985E\uFF1A \ No newline at end of file From f82bc69519cf4de86686a87c20e2f90252072882 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 27 Feb 2014 11:42:22 -0500 Subject: [PATCH 42/90] Removed Bundle_ja files belonging in other branches. --- .../Bundle_ja.properties | 1 - .../corecomponents/Bundle_ja.properties | 26 ------------------- 2 files changed, 27 deletions(-) delete mode 100644 Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties delete mode 100644 Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties deleted file mode 100644 index c0fc921783..0000000000 --- a/Core/src/org/sleuthkit/autopsy/corecomponentinterfaces/Bundle_ja.properties +++ /dev/null @@ -1 +0,0 @@ -OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties deleted file mode 100644 index b16066f34b..0000000000 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 -CTL_DataContentTopComponent=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 -CTL_NodeTableAction=\u30CE\u30FC\u30C9\u8868 -CTL_NodeTableTopComponent=\u30CE\u30FC\u30C9\u8868\u30C6\u30FC\u30D6\u30EB -CTL_HexViewAction=Hex\u30D3\u30E5\u30FC -CTL_HexViewTopComponent=Hex\u30D3\u30E5\u30FC -CTL_StringViewAction=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC -CTL_StringViewTopComponent=\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC -#todo what is this "about"? About action? Need the noun to make translation sound natural -CTL_CustomAboutAction= -HINT_DataContentTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_NodeTableTopComponent=\u3053\u308C\u306F\u30C7\u30FC\u30BF\u7D50\u679C\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_HexViewTopComponent=\u3053\u308C\u306FHex\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_StringViewTopComponent=\u3053\u308C\u306F\u30B9\u30C8\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -OpenIDE-Module-Name=\u4E3B\u8981\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 -OutputViewPanel.prevPageButton.text=\u524D\u306E\u30DA\u30FC\u30B8 -OutputViewPanel.currentPageLabel.text=1 -OutputViewPanel.pageLabel.text=\u30DA\u30FC\u30B8\uFF1A -OutputViewPanel.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -OutputViewPanel.nextPageButton.text=\u6B21\u306E\u30DA\u30FC\u30B8 -DataContentViewerHex.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 -DataContentViewerHex.pageLabel.text=\u30DA\u30FC\u30B8 -DataContentViewerHex.currentPageLabel.text=1 -DataContentViewerHex.totalPageLabel.text=100 -DataContentViewerString.totalPageLabel.text=100 -DataContentViewerString.filePathLabel.text=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 \ No newline at end of file From 44a3c7b8ced2619ffaf673981488da0cefa9dfda Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 27 Feb 2014 11:48:33 -0500 Subject: [PATCH 43/90] Removed Bundle_ja file belonging in other branch. --- .../autopsy/casemodule/Bundle_ja.properties | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties deleted file mode 100644 index 929234687f..0000000000 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties +++ /dev/null @@ -1,28 +0,0 @@ -CTL_AddImage=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0\u2026 -CTL_AddImageButton=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u3092\u8FFD\u52A0 -CTL_CaseAction=\u30B1\u30FC\u30B9 -CTL_CaseCloseAct=\u30B1\u30FC\u30B9\u3092\u9589\u3058\u308B -CTL_CaseNewAction=\u65B0\u898F\u30B1\u30FC\u30B9\u2026 -CTL_CasePropertiesAction=\u30B1\u30FC\u30B9\u30D7\u30ED\u30D1\u30C6\u30A3\u2026 -CTL_CaseTopComponent=\u30B1\u30FC\u30B9\u30A6\u30A3\u30F3\u30C9\u30A6 -CTL_OpenAction=\u30B1\u30FC\u30B9\u3092\u958B\u304F\u2026 -CTL_RecentCases=\u6700\u8FD1\u4F7F\u7528\u3057\u305F\u30B1\u30FC\u30B9 -CTL_CaseDeleteAction=\u30B1\u30FC\u30B9\u3092\u524A\u9664 -CTL_SaveCaseAction=\u30B1\u30FC\u30B9\u3092\u4FDD\u5B58 -CTL_testAction=\u30C6\u30B9\u30C8 -CTL_testTopComponent=\u30C6\u30B9\u30C8\u30A6\u30A3\u30F3\u30C9\u30A6 -HINT_CaseTopComponent=\u3053\u308C\u306F\u30B1\u30FC\u30B9\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -HINT_testTopComponent=\u3053\u308C\u306F\u30C6\u30B9\u30C8\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059 -Menu/File/org-sleuthkit-autopsy-casemodule-OpenAction.shadow=\u30B1\u30FC\u30B9\u3092\u958B\u304F -OpenIDE-Module-Name=\u30B1\u30FC\u30B9 -CaseVisualPanel1.jLabel1.text=\u540D\u79F0 -CaseVisualPanel1.jLabel2.text=\u753B\u50CF\u30D1\u30B9\uFF1A -CaseVisualPanel1.jLabel3.text=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30B9\uFF1A -CaseTopComponent.jLabel1.text=\u540D\u79F0 -CaseTopComponent.jLabel2.text=\u753B\u50CF\u30D1\u30B9 -CaseTopComponent.jLabel3.text=DB\u30D1\u30B9 -CaseVisualPanel1.ImgPathBrowserButton.text=\u95B2\u89A7 -CaseVisualPanel1.DbPathBrowserButton.text=\u95B2\u89A7 -NewCaseVisualPanel1.jLabel1.text=\u540D\u79F0 -#todo check meaning -NewCaseVisualPanel1.jLabel2.text=\u753B\u50CF\u306E\u7A2E\u985E\uFF1A \ No newline at end of file From be91eb11c5bc31674ca437bba90f9a32b0083d5f Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 27 Feb 2014 12:38:30 -0500 Subject: [PATCH 44/90] Re-added CTL_CustomAboutAction back to Bundle. Converted function to use string from Bundle. --- .../src/org/sleuthkit/autopsy/corecomponents/Bundle.properties | 1 + .../org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties | 3 ++- .../sleuthkit/autopsy/corecomponents/CustomAboutAction.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index cb4c57a920..d034667a2d 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -1,5 +1,6 @@ CTL_DataContentAction=DataContent CTL_DataContentTopComponent=Data Content +CTL_CustomAboutAction=About OptionsCategory_Name_General=General OptionsCategory_Keywords_General=general HINT_DataContentTopComponent=This is a DataContent window diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index 5cf13ad83e..37bec0e2e0 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -108,4 +108,5 @@ ProductInformationPanel.getVMValue.text={0} {1} TableFilterNode.displayName.text=\u540D\u79F0 CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 OptionsCategory_Name_General=\u4E00\u822C -OptionsCategory_Keywords_General=\u4E00\u822C \ No newline at end of file +OptionsCategory_Keywords_General=\u4E00\u822C +CTL_CustomAboutAction= \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/CustomAboutAction.java b/Core/src/org/sleuthkit/autopsy/corecomponents/CustomAboutAction.java index 37d21e2748..8fd75651e5 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/CustomAboutAction.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/CustomAboutAction.java @@ -37,7 +37,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; ProductInformationPanel pip = new ProductInformationPanel(); DialogDescriptor descriptor = new DialogDescriptor( pip, - NbBundle.getMessage(AboutAction.class, "About_title"), + NbBundle.getMessage(CustomAboutAction.class, "CTL_CustomAboutAction"), true, new Object[0], null, From 6acde4cd4176ad4eeba74c599108b1041e9bf998 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Thu, 27 Feb 2014 11:47:07 -0800 Subject: [PATCH 45/90] =?UTF-8?q?Translation=20complete=20with=20final=20c?= =?UTF-8?q?hanges.=20About=20Hex-Left=20as=20HEX.=20=20On=20Google=20searc?= =?UTF-8?q?h=20in=20Japanese,=20there=20are=20460k=20hits=20with=20hex=20a?= =?UTF-8?q?nd=20670k=20with=20Japanese=20word=2016=E9=80=B2=E6=95=B0.=20?= =?UTF-8?q?=20However,=20there=20seem=20to=20be=20more=20relevant=20hits?= =?UTF-8?q?=20with=20hex.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopsy/corecomponents/Bundle_ja.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index 37bec0e2e0..a8377e7243 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -37,8 +37,8 @@ DataResultViewerThumbnail.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B GeneralPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3059\u308B\u969B\uFF1A GeneralPanel.useBestViewerRB.text=\u6700\u3082\u5C02\u9580\u7684\u306A\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u306B\u5909\u66F4 GeneralPanel.keepCurrentViewerRB.text=\u305D\u306E\u307E\u307E\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u3092\u4F7F\u7528 -GeneralPanel.useBestViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306FHex\u304B\u3089\u30E1\u30C7\u30A3\u30A2\u306B\u5909\u66F4\u3059\u308B\u3002 -GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u305D\u306E\u307E\u307EHex\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 +GeneralPanel.useBestViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u306FHEX\u304B\u3089\u30E1\u30C7\u30A3\u30A2\u306B\u5909\u66F4\u3059\u308B\u3002 +GeneralPanel.keepCurrentViewerRB.toolTipText=\u4F8B\u3048\u3070\u3001JPEG\u304C\u9078\u629E\u3055\u308C\u305F\u969B\u306B\u305D\u306E\u307E\u307EHEX\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3002 AdvancedConfigurationDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB DataResultPanel.directoryTablePath.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30D1\u30B9 DataResultPanel.numberMatchLabel.text=0 @@ -59,8 +59,8 @@ DataContentViewerArtifact.toolTip=\u30D5\u30A1\u30A4\u30EB\u306B\u95A2\u9023\u30 DataContentViewerHex.goToPageTextField.msgDlg=\uFF11\u304B\u3089 {0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 DataContentViewerHex.goToPageTextField.err=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u6570 DataContentViewerHex.setDataView.errorText=\uFF08\u30AA\u30D5\u30BB\u30C3\u30C8{0}-{1}\u306F\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF09 -DataContentViewerHex.title=Hex -DataContentViewerHex.toolTip=\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\uFF11\uFF16\u9032\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8868\u793A\u3057\u3001ASCII\u3068\u3057\u3066\u8868\u793A\u3067\u304D\u308B\u30D0\u30A4\u30C8\u306F\u53F3\u5074\u306B\u8868\u793A\u3057\u307E\u3059\u3002 +DataContentViewerHex.title=HEX +DataContentViewerHex.toolTip=\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092HEX\u30D5\u30A1\u30A4\u30EB\u3068\u3057\u3066\u8868\u793A\u3057\u3001ASCII\u3068\u3057\u3066\u8868\u793A\u3067\u304D\u308B\u30D0\u30A4\u30C8\u306F\u53F3\u5074\u306B\u8868\u793A\u3057\u307E\u3059\u3002 DataContentViewerMedia.title=\u30E1\u30C7\u30A3\u30A2 DataContentViewerMedia.toolTip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2\u30D5\u30A1\u30A4\u30EB\uFF08\u753B\u50CF\u3001\u30D3\u30C7\u30AA\u3001\u30AA\u30FC\u30C7\u30A3\u30AA\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002 DataContentViewerString.goToPageTextField.msgDlg=\uFF11\u304B\u3089{0}\u306E\u9593\u306E\u6709\u52B9\u306A\u30DA\u30FC\u30B8\u6570\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 @@ -109,4 +109,4 @@ TableFilterNode.displayName.text=\u540D\u79F0 CTL_DataContentAction=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4 OptionsCategory_Name_General=\u4E00\u822C OptionsCategory_Keywords_General=\u4E00\u822C -CTL_CustomAboutAction= \ No newline at end of file +CTL_CustomAboutAction=Autopsy\u306B\u3064\u3044\u3066 \ No newline at end of file From f16e5b638f2b3b1b9032fda96bdbbd0736a680ca Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Thu, 27 Feb 2014 11:53:39 -0800 Subject: [PATCH 46/90] Added Nov translations --- .../autopsy/casemodule/Bundle.properties | 22 +-- .../autopsy/casemodule/Bundle_ja.properties | 158 ++++++++++++++++++ 2 files changed, 167 insertions(+), 13 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index 60d1f4e228..ffb3261dd5 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -115,6 +115,7 @@ ImageFilePanel.browseButton.text=Browse ImageFilePanel.pathTextField.text= LocalDiskPanel.diskLabel.text=Select a local disk: MissingImageDialog.selectButton.text=Select Image +MissingImageDialog.typeTabel.text=Select input type to add: MissingImageDialog.titleLabel.text=Search for missing image MissingImageDialog.cancelButton.text=Cancel LocalDiskPanel.errorLabel.text=Error Label @@ -132,23 +133,18 @@ LocalFilesPanel.localFileChooser.approveButtonToolTipText= LocalFilesPanel.selectButton.actionCommand=Add AddImageWizardIngestConfigVisual.subtitleLabel.text=Configure the ingest modules you would like to run on this data source. AddImageWizardIngestConfigVisual.titleLabel.text=Configure Ingest Modules -AddImageWizardAddingProgressVisual.statusLabel.text=Data source has been added to the local database. Files are being analyzed. +AddImageWizardAddingProgressVisual.statusLabel.text=File system has been added to the local database. Files are being analyzed. +AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.toolTipText= +AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.text=Ignore orphan files in FAT file systems +AddImageWizardChooseDataSourceVisual.descLabel.text=(faster results, although some data will not be searched) AddImageWizardChooseDataSourceVisual.typeTabel.text=Select source type to add: AddImageWizardChooseDataSourceVisual.jLabel2.text=jLabel2 +AddImageWizardChooseDataSourceVisual.timeZoneLabel.text=Please select the input timezone: AddImageWizardChooseDataSourceVisual.nextLabel.text= Press 'Next' to analyze the input data, extract volume and file system data, and populate a local database. AddImageWizardChooseDataSourceVisual.imgInfoLabel.text=Enter Data Source Information: AddImageWizardAddingProgressVisual.progressLabel.text= +AddImageWizardAddingProgressVisual.TextArea_CurrentDirectory.border.title=Currently Adding: AddImageWizardAddingProgressVisual.viewLogButton.text=View Log AddImageWizardAddingProgressVisual.titleLabel.text=Adding Data Source -AddImageWizardAddingProgressVisual.subTitle1Label.text=Processing data source and adding it to a local database. File analysis will start when this finishes. -ImageFilePanel.timeZoneLabel.text=Please select the input timezone: -ImageFilePanel.noFatOrphansCheckbox.text=Ignore orphan files in FAT file systems -ImageFilePanel.noFatOrphansCheckbox.toolTipText= -ImageFilePanel.descLabel.text=(faster results, although some data will not be searched) -LocalDiskPanel.timeZoneLabel.text=Please select the input timezone: -LocalDiskPanel.noFatOrphansCheckbox.toolTipText= -LocalDiskPanel.noFatOrphansCheckbox.text=Ignore orphan files in FAT file systems -LocalDiskPanel.descLabel.text=(faster results, although some data will not be searched) -MissingImageDialog.browseButton.text=Browse -MissingImageDialog.pathNameTextField.text= -AddImageWizardAddingProgressVisual.progressTextArea.border.title=Status +AddImageWizardAddingProgressVisual.subTitle1Label.text=File system information is being added to a local database. File analysis will start when this finishes. +AddImageWizardAddingProgressVisual.subTitle2Label.text=Processing Data Source and Adding to Database diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties new file mode 100644 index 0000000000..758ee6b4ca --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties @@ -0,0 +1,158 @@ +CTL_AddImage=データソース追加... +CTL_AddImageButton=データソース追加 +CTL_CaseAction=Case +CTL_CaseCloseAct=ケースを閉じる +CTL_CaseNewAction=New Case... +#CTL_CaseOpenActionOld=Open Case(old)... +CTL_CasePropertiesAction=Case Properties... +CTL_CaseTopComponent=Case Window +#CTL_NewCaseAct=New Case(Old)... +CTL_OpenAction=Open Case... +CTL_RecentCases=Recent Cases +CTL_CaseDeleteAction=ケース削除 +CTL_SaveCaseAction=Save Case +CTL_testAction=test +CTL_testTopComponent=test Window +HINT_CaseTopComponent=This is a Case window +HINT_testTopComponent=This is a test window +Menu/File/org-sleuthkit-autopsy-casemodule-CaseCloseAct.shadow= +Menu/File/org-sleuthkit-autopsy-casemodule-OpenAction.shadow=Open Case +OpenIDE-Module-Name=Case +CaseVisualPanel1.jLabel1.text=Name +CaseVisualPanel1.jLabel2.text=Image Path: +CaseVisualPanel1.jLabel3.text=Database Path: +CaseTopComponent.jLabel1.text=Name +CaseVisualPanel1.NameField.text= +CaseVisualPanel1.ImgPath.text= +CaseVisualPanel1.DbPath.text= +CaseTopComponent.jLabel2.text=Image Path +CaseTopComponent.jLabel3.text=DB Path +CaseVisualPanel1.ImgPathBrowserButton.text=Browse +CaseVisualPanel1.DbPathBrowserButton.text=Browse +NewCaseVisualPanel1.jLabel1.text=Name +NewCaseVisualPanel1.jTextField1.text= +NewCaseVisualPanel1.jLabel2.text=Image Type: +NewCaseVisualPanel1.jRadioButton1.text=Raw Single .img .dd +NewCaseVisualPanel1.jRadioButton2.text=Raw Split .001 .002 etc +NewCaseVisualPanel1.jRadioButton3.text=Encase .e01 +NewCaseVisualPanel1.nameLabel.text_1=Name +NewCaseVisualPanel1.NameField.text_1= +NewCaseVisualPanel1.TypeLabel.text_1=Image Type: +NewCaseVisualPanel1.rawSingleRadio.text_1=Raw Single .img .dd +NewCaseVisualPanel1.rawSplitRadio.text_1=Raw Split .001 .002 etc +NewCaseVisualPanel1.encaseRadio.text_1=EnCase .e01 +NewCaseVisualPanel2.jLabel1.text=Image Path: +NewCaseVisualPanel2.jLabel2.text=DataBase Path: +NewCaseVisualPanel2.descriptionText.text=variable text +NewCaseVisualPanel2.ImgBrowserButton.text=Browse +NewCaseVisualPanel2.DcBrowserButton.text=Browse +NewCaseVisualPanel2.ImagePathField.text= +NewCaseVisualPanel2.DbPathField.text= +CaseVisualPanel1.jLabel4.text=Image Type: +CaseVisualPanel1.rawSingle.text=Raw Single .img .dd +CaseVisualPanel1.rawSplit.text=Raw Split .001 .002 etc +CaseVisualPanel1.encase.text=EnCase .e01 .e02 etc +CaseVisualPanel1.multipleSelectLabel.text=Single Image: Multiple Select Disabled +CaseVisualPanel1.jLabel5.text=If a database has not already been loaded / created for the chosen image use this button: (could take a few minutes) +CaseVisualPanel1.ProgressLabel.text= +CaseVisualPanel1.createDbButton.text=Create Database +NewCaseVisualPanel1.jLabel1.text_1=新規ケース情報を入力: +#Nick: Does this mean info on new case or new info on existing case? +NewCaseVisualPanel1.caseNameLabel.text_1=ケース名 +NewCaseVisualPanel1.caseDirLabel.text=ベースディレクトリ: +NewCaseVisualPanel1.caseDirBrowseButton.text=閲覧 +NewCaseVisualPanel1.caseNameTextField.text_1= +NewCaseVisualPanel1.jLabel2.text_1=ケースデータは下記のディレクトリに保存されます: +#Nick: is "case data" and "case information" the same? +NewCaseVisualPanel1.caseParentDirTextField.text= +NewCaseVisualPanel1.caseDirTextField.text_1= +CasePropertiesForm.caseDirLabel.text=ケースディレクトリ: +CasePropertiesForm.crDateLabel.text=作成日: +CasePropertiesForm.caseNameLabel.text=ケース名: +CasePropertiesForm.crDateTextField.text= +CasePropertiesForm.caseNameTextField.text= +CasePropertiesForm.updateCaseNameButton.text=アップデート +CasePropertiesForm.casePropLabel.text=ケース情報 +CasePropertiesForm.genInfoLabel.text=一般情報 +CasePropertiesForm.imgInfoLabel.text=画像情報 +CasePropertiesForm.OKButton.text=OK +CasePropertiesForm.deleteCaseButton.text=ケース削除 +CueBannerPanel.autopsyLogo.text= +CueBannerPanel.createNewLabel.text=新規ケース作成 +CueBannerPanel.autopsyLabel.text=Autopsy +CueBannerPanel.welcomeLabel.text=Welcome to +CueBannerPanel.openLabel.text=既存ケースを開く +##オープンは日本語にするべき? +CueBannerPanel.closeButton.text=閉じる +CueBannerPanel.openRecentLabel.text=最近開いたケースを開く +CueBannerPanel.newCaseButton.text= +CueBannerPanel.openCaseButton.text= +CueBannerPanel.openRecentButton.text= +OpenRecentCasePanel.cancelButton.text=キャンセル +OpenRecentCasePanel.jLabel1.text=最近開いたファイル +NewJPanel.jLabel1.text= +NewJPanel.jLabel2.text=NSRL Index +NewJPanel.jLabel5.text=The NSRL index is used to idenify "known" files. +NewJPanel.jFormattedTextField1.text=jFormattedTextField1 +NewJPanel.jButton1.text=Rename +NewJPanel.jLabel4.text=Database: +AddImageVisualPanel2.indexImageCheckBox.text=Index image for keyword search +CasePropertiesForm.caseNumberLabel.text=ケース番号: +CasePropertiesForm.examinerLabel.text=Examiner: +#審査官?カタカナ? +CasePropertiesForm.caseNumberTextField.text= +CasePropertiesForm.examinerTextField.text= +NewCaseVisualPanel2.caseNumberTextField.text= +NewCaseVisualPanel2.examinerLabel.text=Examiner: +#審査官?カタカナ? +NewCaseVisualPanel2.caseNumberLabel.text=ケース番号: +NewCaseVisualPanel2.examinerTextField.text= +NewCaseVisualPanel2.optionalLabel.text=オプショナル:ケース番号及び審査官を設定 +#審査官?カタカナ? +AddImageErrorsDialog.title=イメージログ追加 +AddImageErrorsDialog.copyButton.toolTipText=エラーをクリップボードにコピーします +AddImageErrorsDialog.copyButton.text=コピー +AddImageErrorsDialog.closeButton.toolTipText=このウィンドウを閉じます +AddImageErrorsDialog.closeButton.text=閉じる +AddImageVisualPanel4.jLabel2.text=You can add another image or click Finish to return to the case and view results. +OpenRecentCasePanel.openButton.text=開く +ImageFilePanel.pathLabel.text=画像ファイルを閲覧: +ImageFilePanel.browseButton.text=閲覧 +ImageFilePanel.pathTextField.text= +LocalDiskPanel.diskLabel.text=ローカルディスクを選択: +MissingImageDialog.selectButton.text=画像選択 +MissingImageDialog.typeTabel.text=追加するインプットタイプを選択: +MissingImageDialog.titleLabel.text=欠落した画像の検索 +MissingImageDialog.cancelButton.text=キャンセル +LocalDiskPanel.errorLabel.text=エラーラベル +AddImageDonePanel.statusLabel.text=File system has been added to the local database. Files are being analyzed. +AddImageDonePanel.crDbLabel.text=Adding Data Source - Complete +LocalFilesPanel.infoLabel.text=ローカルファイル及びフォルダーを追加: +LocalFilesPanel.selectButton.text=追加 +LocalFilesPanel.localFileChooser.dialogTitle=ローカルファイル又はフォルダーを選択 +LocalFilesPanel.selectButton.toolTipText=ローカルファイル及びフォルダーをロジカルファイルとして追加します +LocalFilesPanel.clearButton.text=クリアー +LocalFilesPanel.clearButton.toolTipText=現在選択されているローカルファイルパスがクリアされます +LocalFilesPanel.selectedPaths.toolTipText= +LocalFilesPanel.localFileChooser.approveButtonText=選択 +LocalFilesPanel.localFileChooser.approveButtonToolTipText= +LocalFilesPanel.selectButton.actionCommand=追加 +AddImageWizardIngestConfigVisual.subtitleLabel.text=このデータソースに対して実行したい追加モジュール群を設定します +#Nick: Does ingest module mean a module you added? +AddImageWizardIngestConfigVisual.titleLabel.text=追加モジュール設定 +AddImageWizardAddingProgressVisual.statusLabel.text=ファイルシステムがローカルデータベースに追加されました。ファイルを解析中です。 +AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.toolTipText= +AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.text=FATファイルシステムのオーファンファイルを無視 +AddImageWizardChooseDataSourceVisual.descLabel.text=(より早く結果が出ますが、検索されないデータもあります) +AddImageWizardChooseDataSourceVisual.typeTabel.text=追加するソースタイプを選択: +AddImageWizardChooseDataSourceVisual.jLabel2.text=jLabel2 +AddImageWizardChooseDataSourceVisual.timeZoneLabel.text=インプットタイムゾーンを選択下さい: +AddImageWizardChooseDataSourceVisual.nextLabel.text= 「次へ」をクリックして、インプットデータを解析、ボリューム及びファイルシステムデータを抽出、ローカルデータベースにデータを投入。 +#Nick: Do I leave the and as is? +AddImageWizardChooseDataSourceVisual.imgInfoLabel.text=データソース情報を入力: +AddImageWizardAddingProgressVisual.progressLabel.text=<進捗状況> +AddImageWizardAddingProgressVisual.TextArea_CurrentDirectory.border.title=追加中: +AddImageWizardAddingProgressVisual.viewLogButton.text=ログ閲覧 +AddImageWizardAddingProgressVisual.titleLabel.text=データソース追加中 +AddImageWizardAddingProgressVisual.subTitle1Label.text=ローカルデータベースにファイルシステム情報を追加中です。こちらが完了次第、ファイル解析が始まります。 +AddImageWizardAddingProgressVisual.subTitle2Label.text=データソースを処理中、及びデータベースに追加中。 From 640d3b09fda608cafb2f3b3b8861fc63ee030255 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 27 Feb 2014 16:30:45 -0500 Subject: [PATCH 47/90] Pulled strings into Bundle. Added _ja. Tested build/run. --- .../org/sleuthkit/autopsy/menuactions/Bundle.properties | 7 ++++++- .../org/sleuthkit/autopsy/menuactions/Bundle_ja.properties | 0 .../autopsy/menuactions/DataContentDynamicMenu.java | 4 +++- .../org/sleuthkit/autopsy/menuactions/DataContentMenu.java | 3 ++- .../sleuthkit/autopsy/menuactions/DataExplorerMenu.java | 3 ++- .../org/sleuthkit/autopsy/menuactions/DataResultMenu.java | 5 +++-- .../sleuthkit/autopsy/menuactions/SearchResultMenu.java | 3 ++- 7 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/Bundle.properties b/Core/src/org/sleuthkit/autopsy/menuactions/Bundle.properties index e84d83f597..27a95765fe 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/menuactions/Bundle.properties @@ -1,2 +1,7 @@ -#CTL_FileBrowserAction=File Browser OpenIDE-Module-Name=MenuActions +DataContentDynamicMenu.menu.dataContentWin.text=Data Content Windows +DataContentMenu.getName.text=DataContent Menu +DataExplorerMenu.getName.text=DataExplorer Tools +DataResultMenu.menu.dataResWin.text=DataResult Windows +DataResultMenu.getName.text=DataResult Menu +SearchResultMenu.menu.dataRes.text=Data Results diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java index 8c09bef862..75a5e2533b 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java +++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java @@ -25,6 +25,7 @@ import javax.swing.JMenu; import javax.swing.JMenuItem; import org.openide.awt.DynamicMenuContent; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.windows.TopComponent; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.corecomponentinterfaces.DataContent; @@ -62,7 +63,8 @@ import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent; if (newWindowLists != null) { if (newWindowLists.size() > 0) { - JMenu submenu = new JMenu("Data Content Windows"); + JMenu submenu = new JMenu( + NbBundle.getMessage(this.getClass(), "DataContentDynamicMenu.menu.dataContentWin.text")); for (int i = 0; i < newWindowLists.size(); i++) { DataContentTopComponent dctc = newWindowLists.get(i); JMenuItem item = new JMenuItem(dctc.getName()); diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentMenu.java index c68b9f84c2..12a653af3e 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentMenu.java +++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentMenu.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.menuactions; import javax.swing.JMenuItem; import org.openide.util.HelpCtx; +import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.Presenter; @@ -43,7 +44,7 @@ import org.openide.util.actions.Presenter; @Override public String getName() { - return "DataContent Menu"; + return NbBundle.getMessage(this.getClass(), "DataContentMenu.getName.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerMenu.java index 947b754e70..6acb069d6e 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerMenu.java +++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerMenu.java @@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.menuactions; import javax.swing.JMenuItem; import org.openide.util.HelpCtx; +import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.Presenter; @@ -42,7 +43,7 @@ class DataExplorerMenu extends CallableSystemAction implements Presenter.Menu { @Override public String getName() { - return "DataExplorer Tools"; + return NbBundle.getMessage(this.getClass(), "DataExplorerMenu.getName.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataResultMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataResultMenu.java index 682d6f62f8..857b5b4241 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/DataResultMenu.java +++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataResultMenu.java @@ -24,6 +24,7 @@ import java.beans.PropertyChangeListener; import javax.swing.JMenu; import javax.swing.JMenuItem; import org.openide.util.HelpCtx; +import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.Presenter; import org.sleuthkit.autopsy.casemodule.Case; @@ -33,7 +34,7 @@ import org.sleuthkit.autopsy.casemodule.Case; */ class DataResultMenu extends CallableSystemAction implements Presenter.Menu, PropertyChangeListener { - JMenu menu = new JMenu("DataResult Windows"); + JMenu menu = new JMenu(NbBundle.getMessage(this.getClass(), "DataResultMenu.menu.dataResWin.text")); DataResultMenu(){ } @@ -73,7 +74,7 @@ import org.sleuthkit.autopsy.casemodule.Case; @Override public String getName() { - return "DataResult Menu"; + return NbBundle.getMessage(this.getClass(), "DataResultMenu.getName.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/SearchResultMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/SearchResultMenu.java index 851405e880..fee03df45d 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/SearchResultMenu.java +++ b/Core/src/org/sleuthkit/autopsy/menuactions/SearchResultMenu.java @@ -25,6 +25,7 @@ import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuItem; import org.openide.awt.DynamicMenuContent; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponents.DataResultTopComponent; import org.sleuthkit.autopsy.directorytree.DirectoryTreeTopComponent; @@ -57,7 +58,7 @@ import org.sleuthkit.autopsy.directorytree.DirectoryTreeTopComponent; // add search results if there are any if(dataResultsIds.size() > 0){ - JMenu submenu = new JMenu("Data Results"); + JMenu submenu = new JMenu(NbBundle.getMessage(this.getClass(), "SearchResultMenu.menu.dataRes.text")); for(String resultTabId : dataResultsIds){ JMenuItem item = new JMenuItem(resultTabId); item.addActionListener(new OpenTopComponentAction(resultTabId)); From 3bf3a62fd154c3dbf52bac54ea8158be48cdf891 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 27 Feb 2014 18:13:00 -0500 Subject: [PATCH 48/90] Pulled strings into Bundle. Half-way through module. --- .../report/ArtifactSelectionDialog.java | 4 +- .../autopsy/report/Bundle.properties | 176 ++++++++++-- .../autopsy/report/FileReportDataTypes.java | 27 +- .../autopsy/report/FileReportText.java | 6 +- .../autopsy/report/ReportBodyFile.java | 18 +- .../autopsy/report/ReportBranding.java | 7 +- .../sleuthkit/autopsy/report/ReportExcel.java | 21 +- .../autopsy/report/ReportGenerationPanel.java | 15 +- .../autopsy/report/ReportGenerator.java | 266 ++++++++++++++---- .../sleuthkit/autopsy/report/ReportHTML.java | 66 +++-- 10 files changed, 475 insertions(+), 131 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java index b283da2e79..5bbaeb5545 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java +++ b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java @@ -36,6 +36,8 @@ import javax.swing.JList; import javax.swing.ListCellRenderer; import javax.swing.ListModel; import javax.swing.event.ListDataListener; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.BlackboardArtifact; @@ -110,7 +112,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { * Display this dialog, and return the selected artifacts. */ Map display() { - this.setTitle("Advanced Artifact Selection"); + this.setTitle(NbBundle.getMessage(this.getClass(), "ArtifactSelectionDialog.dlgTitle.text")); Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize(); // set the popUp window / JFrame int w = this.getSize().width; diff --git a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties index 351203751b..435ba52a50 100644 --- a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties @@ -1,13 +1,13 @@ OpenIDE-Module-Name=Report -Toolbars/Reports/org-sleuthkit-autopsy-report-ReportAction.shadow=Reports -GenerateReportPanel.selectAllLabel.text=Select All -GenerateReportPanel.deselectAllLabel.text=Deselect All -GenerateReportPanel.generateReportButton.text=Generate Report -GenerateReportPanel.advancedButton.text=Advanced -GenerateReportPanel.reportModulesLabel.text=Report Modules: -GenerateReportPanel.dataLabel.text=Select which data to report on: -GenerateReportPanel.artifactsRadioButton.text=All Artifacts -GenerateReportPanel.tagsRadioButton.text=User Tags +#Toolbars/Reports/org-sleuthkit-autopsy-report-ReportAction.shadow=Reports +#GenerateReportPanel.selectAllLabel.text=Select All +#GenerateReportPanel.deselectAllLabel.text=Deselect All +#GenerateReportPanel.generateReportButton.text=Generate Report +#GenerateReportPanel.advancedButton.text=Advanced +#GenerateReportPanel.reportModulesLabel.text=Report Modules: +#GenerateReportPanel.dataLabel.text=Select which data to report on: +#GenerateReportPanel.artifactsRadioButton.text=All Artifacts +#GenerateReportPanel.tagsRadioButton.text=User Tags ArtifactSelectionDialog.titleLabel.text=Select which artifacts you would like to report on: ArtifactSelectionDialog.okButton.text=OK ReportVisualPanel1.reportModulesLabel.text=Report Modules: @@ -18,7 +18,7 @@ ReportVisualPanel2.selectAllButton.text=Select All ReportVisualPanel2.advancedButton.text=Data Types ArtifactSelectionDialog.deselectAllButton.text=Deselect All ArtifactSelectionDialog.selectAllButton.text=Select All -=Browse... +#=Browse... ReportGenerationPanel.closeButton.text=Close ReportGenerationPanel.cancelAllButton.text=Cancel All ReportProgressPanel.reportLabel.text=reportLabel @@ -30,13 +30,155 @@ ReportProgressPanel.processingLabel.text=processingLabel ReportGenerationPanel.titleLabel.text=Report Generation Progress ReportVisualPanel2.taggedResultsRadioButton.text=Tagged Results ReportVisualPanel2.allResultsRadioButton.text=All Results -FileReportConfigurationPanel.jLabel1.text=Select Items to Report: -FileReportConfigurationPanel.selectAllButton.text=Select All -FileReportConfigurationPanel.deselectAllButton.text=Deselect All -FileReportConfigurationDialog.selectAllButton.text=Select All -FileReportConfigurationDialog.deselectAllButton.text=Deselect All -FileReportConfigurationDialog.jLabel1.text=Select items to include in the File Report -FileReportConfigurationDialog.okButton.text=OK +#FileReportConfigurationPanel.jLabel1.text=Select Items to Report: +#FileReportConfigurationPanel.selectAllButton.text=Select All +#FileReportConfigurationPanel.deselectAllButton.text=Deselect All +#FileReportConfigurationDialog.selectAllButton.text=Select All +#FileReportConfigurationDialog.deselectAllButton.text=Deselect All +#FileReportConfigurationDialog.jLabel1.text=Select items to include in the File Report +#FileReportConfigurationDialog.okButton.text=OK ReportWizardFileOptionsVisualPanel.selectAllButton.text=Select All ReportWizardFileOptionsVisualPanel.deselectAllButton.text=Deselect All ReportWizardFileOptionsVisualPanel.jLabel1.text=Select items to include in File Report: +ArtifactSelectionDialog.dlgTitle.text=Advanced Artifact Selection +FileReportDataTypes.filename.text=Name +FileReportDataTypes.fileExt.text=File Extension +FileReportDataTypes.fileType.text=File Type +FileReportDataTypes.isDel.text=Is Deleted +FileReportDataTypes.aTime.text=Last Accessed +FileReportDataTypes.crTime.text=File Created +FileReportDataTypes.mTime.text=Last Modified +FileReportDataTypes.size.text=Size +FileReportDataTypes.address.text=Address +FileReportDataTypes.hash.text=Hash Value +FileReportDataTypes.knownStatus.text=Known Status +FileReportDataTypes.perms.text=Permissions +FileReportDataTypes.path.text=Full Path +FileReportText.getName.text=Files - Text +FileReportText.getDesc.text=A tab delimited text file containing information about individual files in the case. +ReportBodyFile.progress.querying=Querying files... +ReportBodyFile.ingestWarning.text=Warning, this report was run before ingest services completed\!\ + +ReportBodyFile.progress.loading=Loading files... +ReportBodyFile.progress.processing=Now processing {0}... +ReportBodyFile.getName.text=TSK Body File +ReportBodyFile.getDesc.text=Body file format report with MAC times for every file. This format can be used for a timeline view. +ReportBodyFile.getFilePath.text=BodyFile.txt +ReportBranding.defaultReportTitle.text=Autopsy Forensic Report +ReportBranding.defaultReportFooter.text=Powered by Autopsy Open Source Digital Forensics Platform - www.sleuthkit.org +ReportExcel.numAartifacts.text=Number of artifacts\: +ReportExcel.getName.text=Results - Excel +ReportExcel.getDesc.text=A report about results and tagged items in Excel (XLS) format. +ReportExcel.getFilePath.text=Excel.xlsx +ReportExcel.sheetName.text=Summary +ReportExcel.cellVal.summary=Summary +ReportExcel.cellVal.caseName=Case Name\: +ReportExcel.cellVal.caseNum=Case Number\: +ReportExcel.cellVal.examiner=Examiner\: +ReportExcel.cellVal.numImages=Number of Images\: +ReportGenerationPanel.confDlg.sureToClose.msg=Are you sure you'd like to close the dialog?\ +All reports will be canceled. +ReportGenerationPanel.confDlg.title.closing=Closing +ReportGenerationPanel.confDlg.cancelReports.msg=Are you sure you'd like to cancel all the reports? +ReportGenerator.reportsDir.text=Reports +ReportGenerator.displayProgress.title.text=Report Generation Progress... +ReportGenerator.progress.queryingDb.text=Querying database... +ReportGenerator.progress.processingFile.text=Now processing {0} +ReportGenerator.artifactTable.taggedResults.text=Contains results that were tagged with one of the following\: +ReportGenerator.progress.processing=Now processing {0}... +ReportGenerator.msgShow.skippingArtType.title=Skipping artifact type {0} in reports +ReportGenerator.msgShow.skippingArtType.msg=Unknown columns to report on +ReportGenerator.msgShow.skippingArtRow.title=Skipping artifact rows for type {0} in reports +ReportGenerator.msgShow.skippingArtRow.msg=Unknown columns to report on +ReportGenerator.makeContTagTab.taggedFiles.msg=Contains files that were tagged with one of the following\: +ReportGenerator.makeBbArtTagTab.taggedRes.msg=This report only includes results tagged with\: +ReportGenerator.tagTable.header.resultType=Result Type +ReportGenerator.tagTable.header.tag=Tag +ReportGenerator.tagTable.header.comment=Comment +ReportGenerator.tagTable.header.srcFile=Source File +ReportGenerator.progress.createdThumb.text=Creating thumbnails... +ReportGenerator.thumbnailTable.name=Thumbnails +ReportGenerator.thumbnailTable.desc=Contains thumbnails of images that are associated with tagged files and results. +ReportGenerator.writeKwHits.userSrchs=User Searches +ReportGenerator.progress.processingList=Now processing {0} ({1})... +ReportGenerator.artTableColHdr.url=URL +ReportGenerator.artTableColHdr.title=Title +ReportGenerator.artTableColHdr.dateCreated=Date Created +ReportGenerator.artTableColHdr.program=Program +ReportGenerator.artTableColHdr.srcFile=Source File +ReportGenerator.artTableColHdr.dateTime=Date/Time +ReportGenerator.artTableColHdr.name=Name +ReportGenerator.artTableColHdr.value=Value +ReportGenerator.artTableColHdr.dateAccessed=Date Accessed +ReportGenerator.artTableColHdr.referrer=Referrer +ReportGenerator.artTableColHdr.dest=Destination +ReportGenerator.artTableColHdr.sourceUrl=Source URL +ReportGenerator.artTableColHdr.path=Path +ReportGenerator.artTableColHdr.progName=Program Name +ReportGenerator.artTableColHdr.instDateTime=Install Date/Time +ReportGenerator.artTableColHdr.preview=Preview +ReportGenerator.artTableColHdr.file=File +ReportGenerator.artTableColHdr.size=Size +ReportGenerator.artTableColHdr.deviceId=Device ID +ReportGenerator.artTableColHdr.text=Text +ReportGenerator.artTableColHdr.domain=Domain +ReportGenerator.artTableColHdr.dateTaken=Date Taken +ReportGenerator.artTableColHdr.devManufacturer=Device Manufacturer +ReportGenerator.artTableColHdr.devModel=Device Model +ReportGenerator.artTableColHdr.latitude=Latitude +ReportGenerator.artTableColHdr.longitude=Longitude +ReportGenerator.artTableColHdr.personName=Person Name +ReportGenerator.artTableColHdr.phoneNumber=Phone Number +ReportGenerator.artTableColHdr.phoneNumHome=Phone Number (Home) +ReportGenerator.artTableColHdr.phoneNumOffice=Phone Number (Office) +ReportGenerator.artTableColHdr.phoneNumMobile=Phone Number (Mobile) +ReportGenerator.artTableColHdr.email=Email +ReportGenerator.artTableColHdr.msgType=Message Type +ReportGenerator.artTableColHdr.direction=Direction +ReportGenerator.artTableColHdr.fromPhoneNum=From Phone Number +ReportGenerator.artTableColHdr.fromEmail=From Email +ReportGenerator.artTableColHdr.toPhoneNum=To Phone Number +ReportGenerator.artTableColHdr.toEmail=To Email +ReportGenerator.artTableColHdr.subject=Subject +ReportGenerator.artTableColHdr.calendarEntryType=Calendar Entry Type +ReportGenerator.artTableColHdr.description=Description +ReportGenerator.artTableColHdr.startDateTime=Start Date/Time +ReportGenerator.artTableColHdr.endDateTime=End Date/Time +ReportGenerator.artTableColHdr.location=Location +ReportGenerator.artTableColHdr.shortCut=Short Cut +ReportGenerator.artTableColHdr.deviceName=Device Name +ReportGenerator.artTableColHdr.deviceAddress=Device Address +ReportGenerator.artTableColHdr.altitude=Altitude +ReportGenerator.artTableColHdr.locationAddress=Location Address +ReportGenerator.artTableColHdr.category=Category +ReportGenerator.artTableColHdr.userId=User ID +ReportGenerator.artTableColHdr.password=Password +ReportGenerator.artTableColHdr.appName=App Name +ReportGenerator.artTableColHdr.appPath=App Path +ReportGenerator.artTableColHdr.replytoAddress=ReplyTo Address +ReportGenerator.artTableColHdr.mailServer=Mail Server +ReportGenerator.artTableColHdr.tags=Tags +ReportHTML.link.viewFile=View File +ReportHTML.addThumbRows.dataType.title=Tagged Images - {0} +ReportHTML.addThumbRows.dataType.msg=Tagged Results and Contents that contain images. +ReportHTML.thumbLink.tags=Tags\: +ReportHTML.getName.text=Results - HTML +ReportHTML.getDesc.text=A report about results and tagged items in HTML format. +ReportHTML.writeIndex.title=Autopsy Report for case {0} +ReportHTML.writeIndex.noFrames.msg=Your browser is not compatible with our frame setup. +ReportHTML.writeIndex.noFrames.seeNav=Please see the navigation page for artifact links, +ReportHTML.writeIndex.seeSum=and the summary page for a case summary. +ReportHTML.writeNav.title=Report Navigation +ReportHTML.writeNav.h1=Report Navigation +ReportHTML.writeNav.summary=Case Summary +ReportHTML.writeSum.title=Case Summary +ReportHTML.writeSum.warningMsg=Warning, this report was run before ingest services completed\! +ReportHTML.writeSum.reportGenOn.text=HTML Report Generated on {0} +ReportHTML.writeSum.caseName=Case\: +ReportHTML.writeSum.caseNum=Case Number\: +ReportHTML.writeSum.examiner=Examiner\: +ReportHTML.writeSum.noExaminer=No examiner +ReportHTML.writeSum.numImages=Number of Images\: +ReportHTML.writeSum.imageInfoHeading=

Image Information\:

\ +ReportHTML.writeSum.timezone=Timezone\: +ReportHTML.writeSum.path=Path\: diff --git a/Core/src/org/sleuthkit/autopsy/report/FileReportDataTypes.java b/Core/src/org/sleuthkit/autopsy/report/FileReportDataTypes.java index ef6eb1c0ba..a118ef23f2 100755 --- a/Core/src/org/sleuthkit/autopsy/report/FileReportDataTypes.java +++ b/Core/src/org/sleuthkit/autopsy/report/FileReportDataTypes.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.report; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; @@ -31,13 +32,13 @@ import org.sleuthkit.datamodel.TskData; */ enum FileReportDataTypes { - NAME("Name") { + NAME(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.filename.text")) { @Override public String getValue(AbstractFile file) { return file.getName(); } }, - FILE_EXT("File Extension") { + FILE_EXT(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.fileExt.text")) { @Override public String getValue(AbstractFile file) { String name = file.getName(); @@ -45,13 +46,13 @@ import org.sleuthkit.datamodel.TskData; return (extIndex == -1 ? "" : name.substring(extIndex)); } }, - FILE_TYPE("File Type") { + FILE_TYPE(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.fileType.text")) { @Override public String getValue(AbstractFile file) { return file.getMetaTypeAsString(); } }, - DELETED("Is Deleted") { + DELETED(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.isDel.text")) { @Override public String getValue(AbstractFile file) { if (file.getMetaFlagsAsString().equals(TskData.TSK_FS_META_FLAG_ENUM.UNALLOC.toString())) { @@ -60,55 +61,55 @@ import org.sleuthkit.datamodel.TskData; return ""; } }, - A_TIME("Last Accessed") { + A_TIME(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.aTime.text")) { @Override public String getValue(AbstractFile file) { return file.getAtimeAsDate(); } }, - CR_TIME("File Created") { + CR_TIME(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.crTime.text")) { @Override public String getValue(AbstractFile file) { return file.getCrtimeAsDate(); } }, - M_TIME("Last Modified") { + M_TIME(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.mTime.text")) { @Override public String getValue(AbstractFile file) { return file.getMtimeAsDate(); } }, - SIZE("Size") { + SIZE(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.size.text")) { @Override public String getValue(AbstractFile file) { return String.valueOf(file.getSize()); } }, - ADDRESS("Address") { + ADDRESS(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.address.text")) { @Override public String getValue(AbstractFile file) { return String.valueOf(file.getMetaAddr()); } }, - HASH_VALUE("Hash Value") { + HASH_VALUE(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.hash.text")) { @Override public String getValue(AbstractFile file) { return file.getMd5Hash(); } }, - KNOWN_STATUS("Known Status") { + KNOWN_STATUS(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.knownStatus.text")) { @Override public String getValue(AbstractFile file) { return file.getKnown().getName(); } }, - PERMISSIONS("Permissions") { + PERMISSIONS(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.perms.text")) { @Override public String getValue(AbstractFile file) { return file.getModesAsString(); } }, - FULL_PATH("Full Path") { + FULL_PATH(NbBundle.getMessage(FileReportText.class, "FileReportDataTypes.path.text")) { @Override public String getValue(AbstractFile file) { try { diff --git a/Core/src/org/sleuthkit/autopsy/report/FileReportText.java b/Core/src/org/sleuthkit/autopsy/report/FileReportText.java index de9144e626..68268cf4d5 100755 --- a/Core/src/org/sleuthkit/autopsy/report/FileReportText.java +++ b/Core/src/org/sleuthkit/autopsy/report/FileReportText.java @@ -28,6 +28,8 @@ import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.AbstractFile; /** @@ -118,12 +120,12 @@ import org.sleuthkit.datamodel.AbstractFile; @Override public String getName() { - return "Files - Text"; + return NbBundle.getMessage(this.getClass(), "FileReportText.getName.text"); } @Override public String getDescription() { - return "A tab delimited text file containing information about individual files in the case."; + return NbBundle.getMessage(this.getClass(), "FileReportText.getDesc.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java index d31af46908..d49c630774 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java @@ -30,6 +30,8 @@ import java.sql.SQLException; import java.util.List; import java.util.logging.Level; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.IngestManager; @@ -72,7 +74,7 @@ import org.sleuthkit.datamodel.*; // Start the progress bar and setup the report progressPanel.setIndeterminate(false); progressPanel.start(); - progressPanel.updateStatusLabel("Querying files..."); + progressPanel.updateStatusLabel(NbBundle.getMessage(this.getClass(), "ReportBodyFile.progress.querying")); reportPath = path + "BodyFile.txt"; currentCase = Case.getCurrentCase(); skCase = currentCase.getSleuthkitCase(); @@ -84,13 +86,13 @@ import org.sleuthkit.datamodel.*; final String query = "type = " + TskData.TSK_DB_FILES_TYPE_ENUM.FS.getFileType() + " AND name != '.' AND name != '..'"; - progressPanel.updateStatusLabel("Loading files..."); + progressPanel.updateStatusLabel(NbBundle.getMessage(this.getClass(), "ReportBodyFile.progress.loading")); List fs = skCase.findFilesWhere(query); // Check if ingest has finished String ingestwarning = ""; if (IngestManager.getDefault().isIngestRunning()) { - ingestwarning = "Warning, this report was run before ingest services completed!\n"; + ingestwarning = NbBundle.getMessage(this.getClass(), "ReportBodyFile.ingestWarning.text"); } int size = fs.size(); @@ -109,7 +111,9 @@ import org.sleuthkit.datamodel.*; } if(count++ == 100) { progressPanel.increment(); - progressPanel.updateStatusLabel("Now processing " + file.getName() + "..."); + progressPanel.updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportBodyFile.progress.processing", + file.getName())); count = 0; } @@ -161,13 +165,13 @@ import org.sleuthkit.datamodel.*; @Override public String getName() { - String name = "TSK Body File"; + String name = NbBundle.getMessage(this.getClass(), "ReportBodyFile.getName.text"); return name; } @Override public String getFilePath() { - return "BodyFile.txt"; + return NbBundle.getMessage(this.getClass(), "ReportBodyFile.getFilePath.text"); } @Override @@ -178,7 +182,7 @@ import org.sleuthkit.datamodel.*; @Override public String getDescription() { - String desc = "Body file format report with MAC times for every file. This format can be used for a timeline view."; + String desc = NbBundle.getMessage(this.getClass(), "ReportBodyFile.getDesc.text"); return desc; } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportBranding.java b/Core/src/org/sleuthkit/autopsy/report/ReportBranding.java index e8759358e7..f71e047f6e 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportBranding.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportBranding.java @@ -26,6 +26,7 @@ import java.io.OutputStream; import java.util.logging.Level; import java.util.logging.Logger; import org.openide.filesystems.FileUtil; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.PlatformUtil; @@ -46,8 +47,10 @@ public final class ReportBranding implements ReportBrandingProviderI { private static final String REPORT_FOOTER_PROP = "ReportFooter"; //default settings private static final String DEFAULT_GENERATOR_LOGO = "/org/sleuthkit/autopsy/report/images/default_generator_logo.png"; - private static final String DEFAULT_REPORT_TITLE = "Autopsy Forensic Report"; - private static final String DEFAULT_REPORT_FOOTER = "Powered by Autopsy Open Source Digital Forensics Platform - www.sleuthkit.org"; + private static final String DEFAULT_REPORT_TITLE = NbBundle + .getMessage(ReportBranding.class, "ReportBranding.defaultReportTitle.text"); + private static final String DEFAULT_REPORT_FOOTER = NbBundle + .getMessage(ReportBranding.class, "ReportBranding.defaultReportFooter.text"); private String reportsBrandingDir; //dir with extracted reports branding resources private static final String MODULE_NAME = ReportBranding.class.getSimpleName(); private static final Logger logger = Logger.getLogger(ReportBranding.class.getName()); diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java index ecb97ac83c..2b9c9c18f7 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java @@ -26,6 +26,7 @@ import java.util.logging.Level; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; @@ -146,7 +147,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; // Add an artifacts count row. The actual count will be filled in later. row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Number of artifacts:"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.numAartifacts.text")); ++rowIndex; // Add a comment row, if a comment was supplied. @@ -277,12 +278,12 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String getName() { - return "Results - Excel"; + return NbBundle.getMessage(this.getClass(), "ReportExcel.getName.text"); } @Override public String getDescription() { - return "A report about results and tagged items in Excel (XLS) format."; + return NbBundle.getMessage(this.getClass(), "ReportExcel.getDesc.text"); } @Override @@ -292,7 +293,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String getFilePath() { - return "Excel.xlsx"; + return NbBundle.getMessage(this.getClass(), "ReportExcel.getFilePath.text"); } /** @@ -306,12 +307,12 @@ import org.sleuthkit.autopsy.coreutils.Logger; } private void writeSummaryWorksheet() { - sheet = wb.createSheet("Summary"); + sheet = wb.createSheet(NbBundle.getMessage(this.getClass(), "ReportExcel.sheetName.text")); rowIndex = 0; Row row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Summary"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.cellVal.summary")); ++rowIndex; sheet.createRow(rowIndex); @@ -321,25 +322,25 @@ import org.sleuthkit.autopsy.coreutils.Logger; row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Case Name:"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.cellVal.caseName")); row.createCell(1).setCellValue(currentCase.getName()); ++rowIndex; row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Case Number:"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.cellVal.caseNum")); row.createCell(1).setCellValue(currentCase.getNumber()); ++rowIndex; row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Examiner:"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.cellVal.examiner")); row.createCell(1).setCellValue(currentCase.getExaminer()); ++rowIndex; row = sheet.createRow(rowIndex); row.setRowStyle(setStyle); - row.createCell(0).setCellValue("Number of Images:"); + row.createCell(0).setCellValue(NbBundle.getMessage(this.getClass(), "ReportExcel.cellVal.numImages")); row.createCell(1).setCellValue(currentCase.getImageIDs().length); ++rowIndex; diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java index f4bf9cc14c..f79a9b02f7 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerationPanel.java @@ -27,6 +27,8 @@ import java.util.ArrayList; import java.util.List; import javax.swing.Box; import javax.swing.JOptionPane; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.report.ReportProgressPanel.ReportStatus; class ReportGenerationPanel extends javax.swing.JPanel { @@ -96,7 +98,12 @@ import org.sleuthkit.autopsy.report.ReportProgressPanel.ReportStatus; if (closeable) { actionListener.actionPerformed(null); } else { - int result = JOptionPane.showConfirmDialog(null, "Are you sure you'd like to close the dialog?\nAll reports will be canceled.", "Closing", JOptionPane.YES_NO_OPTION); + int result = JOptionPane.showConfirmDialog(null, + NbBundle.getMessage(this.getClass(), + "ReportGenerationPanel.confDlg.sureToClose.msg"), + NbBundle.getMessage(this.getClass(), + "ReportGenerationPanel.confDlg.title.closing"), + JOptionPane.YES_NO_OPTION); if (result == 0) { cancelAllReports(); actionListener.actionPerformed(null); @@ -215,7 +222,11 @@ import org.sleuthkit.autopsy.report.ReportProgressPanel.ReportStatus; }//GEN-LAST:event_closeButtonActionPerformed private void cancelAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelAllButtonActionPerformed - int result = JOptionPane.showConfirmDialog(null, "Are you sure you'd like to cancel all the reports?", "Cancel All", JOptionPane.YES_NO_OPTION); + int result = JOptionPane.showConfirmDialog(null, NbBundle.getMessage(this.getClass(), + "ReportGenerationPanel.confDlg.cancelReports.msg"), + NbBundle.getMessage(this.getClass(), + "ReportGenerationPanel.cancelAllButton.text"), + JOptionPane.YES_NO_OPTION); if (result == 0) { cancelAllReports(); } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 4406cbda0d..1dd7f5beb7 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -46,7 +46,7 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.SwingWorker; import org.openide.filesystems.FileUtil; -import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.EscapeUtil; import org.sleuthkit.autopsy.coreutils.ImageUtils; @@ -64,7 +64,6 @@ import org.sleuthkit.datamodel.ContentTag; import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; -import org.sleuthkit.datamodel.TskException; /** * Instances of this class use GeneralReportModules, TableReportModules and @@ -85,7 +84,7 @@ import org.sleuthkit.datamodel.TskException; private String reportPath; private ReportGenerationPanel panel = new ReportGenerationPanel(); - static final String REPORTS_DIR = "Reports"; + static final String REPORTS_DIR = NbBundle.getMessage(ReportGenerator.class, "ReportGenerator.reportsDir.text"); ReportGenerator(Map tableModuleStates, Map generalModuleStates, Map fileListModuleStates) { // Create the root reports directory path of the form: /Reports/ / @@ -168,7 +167,7 @@ import org.sleuthkit.datamodel.TskException; public void displayProgressPanels() { final JDialog dialog = new JDialog(new JFrame(), true); dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); - dialog.setTitle("Report Generation Progress..."); + dialog.setTitle(NbBundle.getMessage(this.getClass(), "ReportGenerator.displayProgress.title.text")); dialog.add(this.panel); dialog.pack(); @@ -273,7 +272,8 @@ import org.sleuthkit.datamodel.TskException; ReportProgressPanel progress = fileProgress.get(module); if (progress.getStatus() != ReportStatus.CANCELED) { progress.start(); - progress.updateStatusLabel("Querying database..."); + progress.updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.queryingDb.text")); } } @@ -306,7 +306,9 @@ import org.sleuthkit.datamodel.TskException; } if ((i % 100) == 0) { - progress.updateStatusLabel("Now processing " + file.getName()); + progress.updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processingFile.text", + file.getName())); } } i++; @@ -412,7 +414,7 @@ import org.sleuthkit.datamodel.TskException; // Make a comment string describing the tag names filter in effect. StringBuilder comment = new StringBuilder(); if (!tagNamesFilter.isEmpty()) { - comment.append("Contains results that were tagged with one of the following: "); + comment.append(NbBundle.getMessage(this.getClass(), "ReportGenerator.artifactTable.taggedResults.text")); comment.append(makeCommaSeparatedList(tagNamesFilter)); } @@ -425,7 +427,9 @@ import org.sleuthkit.datamodel.TskException; } for (TableReportModule module : tableModules) { - tableProgress.get(module).updateStatusLabel("Now processing " + type.getDisplayName() + "..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processing", + type.getDisplayName())); } // Keyword hits and hashset hit artifacts get sepcial handling. @@ -457,7 +461,10 @@ import org.sleuthkit.datamodel.TskException; List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID()); if (columnHeaders == null) { // @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed. - MessageNotifyUtil.Notify.show("Skipping artifact type " + type + " in reports", "Unknown columns to report on", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "ReportGenerator.msgShow.skippingArtType.title", type), + NbBundle.getMessage(this.getClass(), "ReportGenerator.msgShow.skippingArtType.msg"), + MessageNotifyUtil.MessageType.ERROR); continue; } @@ -475,7 +482,12 @@ import org.sleuthkit.datamodel.TskException; List rowData = artifactData.getRow(); if (rowData.isEmpty()) { if (msgSent == false) { - MessageNotifyUtil.Notify.show("Skipping artifact rows for type " + type + " in reports", "Unknown columns to report on", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), + "ReportGenerator.msgShow.skippingArtRow.title", + type), + NbBundle.getMessage(this.getClass(), + "ReportGenerator.msgShow.skippingArtRow.msg"), + MessageNotifyUtil.MessageType.ERROR); msgSent = true; } continue; @@ -518,11 +530,14 @@ import org.sleuthkit.datamodel.TskException; for (TableReportModule module : tableModules) { // @@@ This casting is a tricky little workaround to allow the HTML report module to slip in a content hyperlink. // @@@ Alos Using the obsolete ARTIFACT_TYPE.TSK_TAG_FILE is also an expedient hack. - tableProgress.get(module).updateStatusLabel("Now processing " + ARTIFACT_TYPE.TSK_TAG_FILE.getDisplayName() + "..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processing", + ARTIFACT_TYPE.TSK_TAG_FILE.getDisplayName())); ArrayList columnHeaders = new ArrayList<>(Arrays.asList("File", "Tag", "Comment")); StringBuilder comment = new StringBuilder(); if (!tagNamesFilter.isEmpty()) { - comment.append("Contains files that were tagged with one of the following: "); + comment.append( + NbBundle.getMessage(this.getClass(), "ReportGenerator.makeContTagTab.taggedFiles.msg")); comment.append(makeCommaSeparatedList(tagNamesFilter)); } if (module instanceof ReportHTML) { @@ -596,14 +611,21 @@ import org.sleuthkit.datamodel.TskException; // Tell the modules reporting on blackboard artifact tags data type is beginning. // @@@ Using the obsolete ARTIFACT_TYPE.TSK_TAG_ARTIFACT is an expedient hack. for (TableReportModule module : tableModules) { - tableProgress.get(module).updateStatusLabel("Now processing " + ARTIFACT_TYPE.TSK_TAG_ARTIFACT.getDisplayName() + "..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processing", + ARTIFACT_TYPE.TSK_TAG_ARTIFACT.getDisplayName())); StringBuilder comment = new StringBuilder(); if (!tagNamesFilter.isEmpty()) { - comment.append("This report only includes results tagged with: "); + comment.append( + NbBundle.getMessage(this.getClass(), "ReportGenerator.makeBbArtTagTab.taggedRes.msg")); comment.append(makeCommaSeparatedList(tagNamesFilter)); } module.startDataType(ARTIFACT_TYPE.TSK_TAG_ARTIFACT.getDisplayName(), comment.toString()); - module.startTable(new ArrayList<>(Arrays.asList("Result Type", "Tag", "Comment", "Source File"))); + module.startTable(new ArrayList<>(Arrays.asList( + NbBundle.getMessage(this.getClass(), "ReportGenerator.tagTable.header.resultType"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.tagTable.header.tag"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.tagTable.header.comment"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.tagTable.header.srcFile")))); } // Give the modules the rows for the content tags. @@ -655,11 +677,14 @@ import org.sleuthkit.datamodel.TskException; */ private void makeThumbnailTable() { for (TableReportModule module : tableModules) { - tableProgress.get(module).updateStatusLabel("Creating thumbnails..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.createdThumb.text")); if (module instanceof ReportHTML) { ReportHTML htmlModule = (ReportHTML) module; - htmlModule.startDataType("Thumbnails", "Contains thumbnails of images that are associated with tagged files and results."); + htmlModule.startDataType( + NbBundle.getMessage(this.getClass(), "ReportGenerator.thumbnailTable.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.thumbnailTable.desc")); List emptyHeaders = new ArrayList<>(); for (int i = 0; i < ReportHTML.THUMBNAIL_COLUMNS; i++) { emptyHeaders.add(""); @@ -785,7 +810,7 @@ import org.sleuthkit.datamodel.TskException; while(listsRs.next()) { String list = listsRs.getString("list"); if(list.isEmpty()) { - list = "User Searches"; + list = NbBundle.getMessage(this.getClass(), "ReportGenerator.writeKwHits.userSrchs"); } lists.add(list); } @@ -794,8 +819,9 @@ import org.sleuthkit.datamodel.TskException; for (TableReportModule module : tableModules) { module.startDataType(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName(), comment); module.addSetIndex(lists); - tableProgress.get(module).updateStatusLabel("Now processing " - + ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName() + "..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processing", + ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName())); } } catch (SQLException ex) { @@ -862,20 +888,22 @@ import org.sleuthkit.datamodel.TskException; } // If the lists aren't the same, we've started a new list - if((!list.equals(currentList) && !list.isEmpty()) || (list.isEmpty() && !currentList.equals("User Searches"))) { + if((!list.equals(currentList) && !list.isEmpty()) || (list.isEmpty() && !currentList.equals( + NbBundle.getMessage(this.getClass(), "ReportGenerator.writeKwHits.userSrchs")))) { if(!currentList.isEmpty()) { for (TableReportModule module : tableModules) { module.endTable(); module.endSet(); } } - currentList = list.isEmpty() ? "User Searches" : list; + currentList = list.isEmpty() ? NbBundle + .getMessage(this.getClass(), "ReportGenerator.writeKwHits.userSrchs") : list; currentKeyword = ""; // reset the current keyword because it's a new list for (TableReportModule module : tableModules) { module.startSet(currentList); - tableProgress.get(module).updateStatusLabel("Now processing " - + ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName() - + " (" + currentList + ")..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processingList", + ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName(), currentList)); } } if (!keyword.equals(currentKeyword)) { @@ -937,8 +965,9 @@ import org.sleuthkit.datamodel.TskException; for (TableReportModule module : tableModules) { module.startDataType(ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName(), comment); module.addSetIndex(lists); - tableProgress.get(module).updateStatusLabel("Now processing " - + ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName() + "..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processing", + ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName())); } } catch (SQLException ex) { logger.log(Level.SEVERE, "Failed to query hashset lists.", ex); @@ -1009,9 +1038,9 @@ import org.sleuthkit.datamodel.TskException; for (TableReportModule module : tableModules) { module.startSet(currentSet); module.startTable(getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID())); - tableProgress.get(module).updateStatusLabel("Now processing " - + ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName() - + " (" + currentSet + ")..."); + tableProgress.get(module).updateStatusLabel( + NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processingList", + ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName(), currentSet)); } } @@ -1050,81 +1079,208 @@ import org.sleuthkit.datamodel.TskException; BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId); switch (type) { case TSK_WEB_BOOKMARK: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"URL", "Title", "Date Created", "Program", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_COOKIE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"URL", "Date/Time", "Name", "Value", "Program", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_HISTORY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"URL", "Date Accessed", "Referrer", "Title", "Program", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_DOWNLOAD: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Destination", "Source URL", "Date Accessed", "Program", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_RECENT_OBJECT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Path", "Date/Time", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_INSTALLED_PROG: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Program Name", "Install Date/Time", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_KEYWORD_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Preview", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.preview"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_HASHSET_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"File", "Size"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.size")})); break; case TSK_DEVICE_ATTACHED: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Name", "Device ID", "Date/Time", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_SEARCH_QUERY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Text", "Domain", "Date Accessed", "Program Name", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_METADATA_EXIF: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Date Taken", "Device Manufacturer", "Device Model", "Latitude", "Longitude", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_CONTACT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Person Name", "Phone Number", "Phone Number (Home)", "Phone Number (Office)", "Phone Number (Mobile)", "Email", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_MESSAGE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Message Type", "Direction", "Date/Time", "From Phone Number", "From Email", "To Phone Number", "To Email", "Subject", "Text", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_CALLLOG: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Person Name", "Phone Number", "Date/Time", "Direction", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_CALENDAR_ENTRY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Calendar Entry Type", "Description", "Start Date/Time", "End Date/Time", "Location", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_SPEED_DIAL_ENTRY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Short Cut", "Person Name", "Phone Number", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_BLUETOOTH_PAIRING: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Device Name", "Device Address", "Date/Time", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_GPS_TRACKPOINT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Latitude", "Longitude", "Altitude", "Name", "Location Address", "Date/Time", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_GPS_BOOKMARK: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Latitude", "Longitude", "Altitude", "Name", "Location Address", "Date/Time", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_GPS_LAST_KNOWN_LOCATION: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Latitude", "Longitude", "Altitude", "Name", "Location Address", "Date/Time", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_GPS_SEARCH: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Latitude", "Longitude", "Altitude", "Name", "Location Address", "Date/Time", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_SERVICE_ACCOUNT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Category", "User ID", "Password", "Person Name", "App Name", "URL", "App Path", "Description", "ReplyTo Address", "Mail Server", "Source File" })); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile") })); break; case TSK_TOOL_OUTPUT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Program Name", "Text", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_ENCRYPTION_DETECTED: - columnHeaders = new ArrayList<>(Arrays.asList(new String[] {"Name", "Source File"})); + columnHeaders = new ArrayList<>(Arrays.asList(new String[] { + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; default: return null; } - columnHeaders.add("Tags"); + columnHeaders.add(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags")); return columnHeaders; } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java index 857037fa72..5beff2bc7a 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java @@ -42,6 +42,7 @@ import java.util.TreeMap; import java.util.logging.Level; import org.openide.filesystems.FileObject; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.openide.filesystems.FileUtil; import org.sleuthkit.autopsy.casemodule.services.Services; @@ -542,7 +543,7 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; StringBuilder localFileLink = new StringBuilder(); localFileLink.append("View File"); + localFileLink.append("\">").append(NbBundle.getMessage(this.getClass(), "ReportHTML.link.viewFile")).append(""); row.add(localFileLink.toString()); StringBuilder builder = new StringBuilder(); @@ -587,7 +588,8 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; pages++; endTable(); endDataType(); - startDataType("Tagged Images - " + pages, "Tagged Results and Contents that contain images."); + startDataType(NbBundle.getMessage(this.getClass(), "ReportHTML.addThumbRows.dataType.title", pages), + NbBundle.getMessage(this.getClass(), "ReportHTML.addThumbRows.dataType.msg")); List emptyHeaders = new ArrayList<>(); for (int i = 0; i < THUMBNAIL_COLUMNS; i++) { emptyHeaders.add(""); @@ -627,7 +629,7 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; try { List tags = tagsManager.getContentTagsByContent(content); if (tags.size() > 0) { - linkToThumbnail.append("Tags: " ); + linkToThumbnail.append(NbBundle.getMessage(this.getClass(), "ReportHTML.thumbLink.tags") ); } for (int i = 0; i < tags.size(); i++) { ContentTag tag = tags.get(i); @@ -739,12 +741,12 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; @Override public String getName() { - return "Results - HTML"; + return NbBundle.getMessage(this.getClass(), "ReportHTML.getName.text"); } @Override public String getDescription() { - return "A report about results and tagged items in HTML format."; + return NbBundle.getMessage(this.getClass(), "ReportHTML.getDesc.text"); } @@ -802,15 +804,17 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; try { indexOut = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path + "index.html"), "UTF-8")); StringBuilder index = new StringBuilder(); - index.append("\nAutopsy Report for case ").append(currentCase.getName()).append("\n"); + index.append("\n").append( + NbBundle.getMessage(this.getClass(), "ReportHTML.writeIndex.title", currentCase.getName())).append( + "\n"); index.append("\n"); index.append("\n"); index.append("\n"); index.append("\n"); index.append("\n"); - index.append("Your browser is not compatible with our frame setup.<br />\n"); - index.append("Please see <a href=\"nav.html\">the navigation page</a> for artifact links,<br />\n"); - index.append("and <a href=\"summary.html\">the summary page</a> for a case summary.\n"); + index.append("").append(NbBundle.getMessage(this.getClass(), "ReportHTML.writeIndex.noFrames.msg")).append("<br />\n"); + index.append(NbBundle.getMessage(this.getClass(), "ReportHTML.writeIndex.noFrames.seeNav")).append("<br />\n"); + index.append(NbBundle.getMessage(this.getClass(), "ReportHTML.writeIndex.seeSum")).append("\n"); index.append("\n"); index.append(""); indexOut.write(index.toString()); @@ -835,10 +839,14 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; try { navOut = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path + "nav.html"), "UTF-8")); StringBuilder nav = new StringBuilder(); - nav.append("\n\n\tReport Navigation\n\t\n\n\n"); - nav.append("
\n

Report Navigation

\n"); + nav.append("\n\n\t").append( + NbBundle.getMessage(this.getClass(), "ReportHTML.writeNav.title")) + .append("\n\t\n\n\n"); + nav.append("
\n

").append( + NbBundle.getMessage(this.getClass(), "ReportHTML.writeNav.h1")).append("

\n"); nav.append("
    \n"); - nav.append("
  • Case Summary
  • \n"); + nav.append("
  • ") + .append(NbBundle.getMessage(this.getClass(), "ReportHTML.writeNav.summary")).append("
  • \n"); for (String dataType : dataTypes.keySet()) { String dataTypeEsc = dataTypeToFileName(dataType); @@ -923,7 +931,8 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path + "summary.html"), "UTF-8")); StringBuilder head = new StringBuilder(); - head.append("\n\nCase Summary\n"); + head.append("\n\n").append( + NbBundle.getMessage(this.getClass(), "ReportHTML.writeSum.title")).append("\n"); head.append("