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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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(""); - detailsSb.append("\n"); - detailsSb.append("\n"); + detailsSb.append("\n"); + detailsSb.append("\n"); detailsSb.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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] 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/89] =?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/89] 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/89] 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 b82c5b8f321c4d1c692a6f33288839ca5f1a919c Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Fri, 28 Feb 2014 00:23:23 -0800 Subject: [PATCH 48/89] Started translation There were a few English texts that said "Can''t", so I changed it to "can't" --- .../autopsy/datamodel/Bundle.properties | 2 +- .../autopsy/datamodel/Bundle_ja.properties | 188 ++++++++++++++++++ 2 files changed, 189 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties index e22111e7c2..a14b5f8d58 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties @@ -58,7 +58,7 @@ ContentTagNode.createSheet.comment.displayName=Comment ContentTagTypeNode.displayName.text=File Tags ContentTagTypeNode.createSheet.name.name=Name ContentTagTypeNode.createSheet.name.displayName=Name -ContentUtils.exception.msg=Can''t extract a {0} +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 diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index e69de29bb2..748dfe25a6 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -0,0 +1,188 @@ +OpenIDE-Module-Name=\u30C7\u30FC\u30BF\u30E2\u30C7\u30EB\uFF1A +AbstractAbstractFileNode.nameColLbl=\u540D\u79F0 +AbstractAbstractFileNode.locationColLbl=\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 +AbstractAbstractFileNode.modifiedTimeColLbl=\u4FEE\u6B63\u65E5\u6642 +AbstractAbstractFileNode.changeTimeColLbl=\u5909\u66F4\u65E5\u6642 +AbstractAbstractFileNode.accessTimeColLbl=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +AbstractAbstractFileNode.createdTimeColLbl=\u4F5C\u6210\u65E5\u6642 +AbstractAbstractFileNode.sizeColLbl=\u30B5\u30A4\u30BA +AbstractAbstractFileNode.modeColLbl=\u30E2\u30FC\u30C9 +AbstractAbstractFileNode.useridColLbl=\u30E6\u30FC\u30B6ID +AbstractAbstractFileNode.groupidColLbl=\u30B0\u30EB\u30FC\u30D7ID +AbstractAbstractFileNode.knownColLbl=\u65E2\u77E5 +#todo checking the context +AbstractAbstractFileNode.inHashsetsColLbl=HashSet\u5185 +AbstractAbstractFileNode.md5HashColLbl=MD5\u30CF\u30C3\u30B7\u30E5 +AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FSleuthkitItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FDisplayableItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +AbstractContentNode.exception.cannotChangeSysName.msg=\u30B7\u30B9\u30C6\u30E0\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002 +AbstractFsContentNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +ArtifactStringContent.getStr.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +ArtifactStringContent.getStr.err=\u30B3\u30F3\u30C6\u30F3\u30C4\u5165\u624B\u30A8\u30E9\u30FC +ArtifactStringContent.exception.msg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ArtifactTypeNode.createSheet.artType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +ArtifactTypeNode.createSheet.childCnt.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 +ArtifactTypeNode.createSheet.childCnt.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +BlackboardArtifactNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +BlackboardArtifactNode.createSheet.srcFile.name=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +BlackboardArtifactNode.createSheet.srcFile.displayName=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +BlackboardArtifactNode.createSheet.ext.name=\u62E1\u5F35\u5B50 +BlackboardArtifactNode.createSheet.ext.displayName=\u62E1\u5F35\u5B50 +BlackboardArtifactNode.createSheet.mimeType.name=MIME\u30BF\u30A4\u30D7 +BlackboardArtifactNode.createSheet.mimeType.displayName=MIME\u30BF\u30A4\u30D7 +BlackboardArtifactNode.createSheet.filePath.name=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +BlackboardArtifactNode.createSheet.filePath.displayName=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +BlackboardArtifactNode.createSheet.dataSrc.name=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +BlackboardArtifactNode.createSheet.dataSrc.displayName=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +BlackboardArtifactNode.getAssocCont.exception.msg=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u5165\u624B\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +BlackboardArtifactTagNode.createSheet.srcFile.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +BlackboardArtifactTagNode.createSheet.unavail.text=\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +BlackboardArtifactTagNode.createSheet.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +BlackboardArtifactTagNode.createSheet.resultType.text=\u7D50\u679C\u30BF\u30A4\u30D7 +BlackboardArtifactTagNode.createSheet.comment.text=\u30B3\u30E1\u30F3\u30C8 +ContentTagNode.createSheet.file.name=\u30D5\u30A1\u30A4\u30EB +ContentTagNode.createSheet.file.displayName=\u30D5\u30A1\u30A4\u30EB +ContentTagNode.createSheet.unavail.path=\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +ContentTagNode.createSheet.filePath.name=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +ContentTagNode.createSheet.filePath.displayName=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +ContentTagNode.createSheet.comment.name=\u30B3\u30E1\u30F3\u30C8 +ContentTagNode.createSheet.comment.displayName=\u30B3\u30E1\u30F3\u30C8 +ContentTagTypeNode.displayName.text=\u30D5\u30A1\u30A4\u30EB\u30BF\u30B0 +ContentTagTypeNode.createSheet.name.name=\u540D\u79F0 +ContentTagTypeNode.createSheet.name.displayName=\u540D\u79F0 +ContentUtils.exception.msg={0}\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093 +DataModelActionsFactory.srcFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataModelActionsFactory.fileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataModelActionsFactory.viewNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +DataModelActionsFactory.openExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u306B\u8868\u793A +DataModelActionsFactory.srfFileSameMD5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +DataSourcesNode.name=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +DataSourcesNode.createSheet.name.name=\u540D\u79F0 +DataSourcesNode.createSheet.name.displayName=\u540D\u79F0 +DataSourcesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +DeletedContent.fsDelFilter.text=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0 +DeletedContent.allDelFilter.text=\u3059\u3079\u3066 +DeletedContent.deletedContentsNode.name=\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB +DeletedContent.createSheet.name.name=\u540D\u79F0 +DeletedContent.createSheet.name.displayName=\u540D\u79F0 +DeletedContent.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +DeletedContent.createSheet.filterType.name=\u30D5\u30A1\u30A4\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +DeletedContent.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +DeletedContent.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +DeletedContent.createKeys.maxObjects.msg=\u8868\u793A\u3067\u304D\u308B\u3088\u308A\u3082\u591A\u304F\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u6700\u521D\u306E {0}\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +DeletedContent.createNodeForKey.typeNotSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +DirectoryNode.parFolder.text=[\u30DA\u30A2\u30EC\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC] +DirectoryNode.curFolder.text=[\u73FE\u5728\u306E\u30D5\u30A9\u30EB\u30C0\u30FC] +DirectoryNode.getActions.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DirectoryNode.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +EmailExtracted.mailAccount.text=\u30A2\u30AB\u30A6\u30F3\u30C8 +EmailExtracted.mailFolder.text=\u30D5\u30A9\u30EB\u30C0\u30FC +EmailExtracted.defaultAcct.text=\u30C7\u30D5\u30A9\u30EB\u30C8 +EmailExtracted.defaultFolder.text=\u30C7\u30D5\u30A9\u30EB\u30C8 +EmailExtracted.createSheet.name.name=\u540D\u79F0 +EmailExtracted.createSheet.name.displayName=\u540D\u79F0 +EmailExtracted.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +ExtractedContentNode.name.text=\u62BD\u51FA\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4 +ExtractedContentNode.createSheet.name.name=\u540D\u79F0 +ExtractedContentNode.createSheet.name.displayName=\u540D\u79F0 +ExtractedContentNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +FileNode.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +FileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +FileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F +FileNode.getActions.searchFilesSameMD5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +FileSize.fileSizeRootNode.name=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA +FileSize.createSheet.name.name=\u540D\u79F0 +FileSize.createSheet.name.displayName=\u540D\u79F0 +FileSize.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +FileSize.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileSize.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileSize.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +FileSize.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +FileTypeChildren.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +FileTypeExtensionFilters.tskImgFilter.text=\u753B\u50CF +FileTypeExtensionFilters.tskVideoFilter.text=\u30D3\u30C7\u30AA +FileTypeExtensionFilters.tskAudioFilter.text=\u30AA\u30FC\u30C7\u30A3\u30AA +FileTypeExtensionFilters.tskArchiveFilter.text=\u30A2\u30FC\u30AB\u30A4\u30D6 +FileTypeExtensionFilters.tskDocumentFilter.text=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 +FileTypeExtensionFilters.tskExecFilter.text=\u5B9F\u884C\u53EF\u80FD +FileTypeExtensionFilters.autDocHtmlFilter.text=HTML +FileTypeExtensionFilters.autDocOfficeFilter.text=\u30AA\u30D5\u30A3\u30B9 +FileTypeExtensionFilters.autoDocPdfFilter.text=PDF +FileTypeExtensionFilters.autDocTxtFilter.text=\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8 +FileTypeExtensionFilters.autDocRtfFilter.text=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8 +FileTypeNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileTypeNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +FileTypeNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +FileTypeNode.createSheet.fileExt.name=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50 +FileTypeNode.createSheet.fileExt.displayName=\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u5B50 +FileTypeNode.createSheet.fileExt.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +FileTypesNode.fname.text=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 +FileTypesNode.createSheet.name.name=\u540D\u79F0 +FileTypesNode.createSheet.name.displayName=\u540D\u79F0 +FileTypesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +HashsetHits.createSheet.name.name=\u540D\u79F0 +HashsetHits.createSheet.name.displayName=\u540D\u79F0 +HashsetHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +ImageNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +ImageNode.getActions.openFileSearchByAttr.text=\u5C5E\u6027\u3092\u3082\u3068\u306B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F +ImageNode.createSheet.name.name=\u540D\u79F0 +ImageNode.createSheet.name.displayName=\u540D\u79F0 +ImageNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +#todo think of better translation +Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u306F +Installer.tskLibErr.msg=Sleuth Kit JNI\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\ +\ +\u8A73\u7D30\uFF1A {0} +Installer.tskLibErr.err=\u81F4\u547D\u7684\u30A8\u30E9\u30FC\uFF1A +InterestingHits.interestingItems.text=\u602A\u3057\u3044\u30A2\u30A4\u30C6\u30E0 +InterestingHits.displayName.text=\u602A\u3057\u3044\u30A2\u30A4\u30C6\u30E0 +InterestingHits.createSheet.name.name=\u540D\u79F0 +InterestingHits.createSheet.name.displayName=\u540D\u79F0 +InterestingHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +KeyValueNode.createSheet.name.name=\u540D\u79F0 +KeyValueNode.createSheet.name.displayName=\u540D\u79F0 +KeyValueNode.createSheet.name.desc=\u8A72\u5F53\u306A\u3057 +KeyValueNode.createSheet.map.desc=\u8A72\u5F53\u306A\u3057 +KeywordHits.kwHits.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30D2\u30C3\u30C8 +KeywordHits.createSheet.name.name=\u540D\u79F0 +KeywordHits.createSheet.name.displayName=\u540D\u79F0 +KeywordHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +KeywordHits.createSheet.listName.name=\u30EA\u30B9\u30C8\u540D +KeywordHits.createSheet.listName.displayName=\u30EA\u30B9\u30C8\u540D +KeywordHits.createSheet.listName.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +KeywordHits.createSheet.numChildren.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +KeywordHits.createSheet.filesWithHits.name=\u30D2\u30C3\u30C8\u3057\u305F\u30D5\u30A1\u30A4\u30EB +KeywordHits.createSheet.filesWithHits.displayName=\u30D2\u30C3\u30C8\u3057\u305F\u30D5\u30A1\u30A4\u30EB +KeywordHits.createSheet.filesWithHits.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +KeywordHits.createNodeForKey.modTime.displayName= +KeywordHits.createNodeForKey.modTime.desc=\u4FEE\u6B63\u65E5\u6642 +KeywordHits.createNodeForKey.accessTime.displayName=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +KeywordHits.createNodeForKey.accessTime.desc=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +KeywordHits.createNodeForKey.chgTime.displayName=\u5909\u66F4\u65E5\u6642 +KeywordHits.createNodeForKey.chgTime.desc=\u5909\u66F4\u65E5\u6642 +KeywordHits.createNodeForKey.chgTime.name=\u5909\u66F4\u65E5\u6642 +KeywordHits.createNodeForKey.accessTime.name=\u30A2\u30AF\u30BB\u30B9\u65E5\u6642 +KeywordHits.createNodeForKey.modTime.name=\u4FEE\u6B63\u65E5\u6642 +KnownFileFilterNode.selectionContext.dataSources=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +KnownFileFilterNode.selectionContext.views=\u30D3\u30E5\u30FC +LayoutFileNode.propertyType.parts=\u30D1\u30FC\u30C4 +LayoutFileNode.createSheet.name.name=\u540D\u79F0 +LayoutFileNode.createSheet.name.displayName=\u540D\u79F0 +LayoutFileNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +LayoutFileNode.createSheet.noDescr.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +LayoutFileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A +LayoutFileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F +LocalFileNode.createSheet.name.name=\u540D\u79F0 +LocalFileNode.createSheet.name.displayName=\u540D\u79F0 +LocalFileNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +LocalFileNode.createSheet.noDescr.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +LocalFileNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +LocalFileNode.getActions.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F +LocalFileNode.getActions.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +RecentFiles.aut0DayFilter.displayName.text=\u6700\u7D42\u65E5 +RecentFiles.aut1dayFilter.displayName.text=\u6700\u7D42\u65E5 - 1 +RecentFiles.aut2dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF12 +RecentFiles.aut3dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF13 +RecentFiles.aut4dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF14 +RecentFiles.aut5dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF15 +RecentFiles.aut6dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF16 \ No newline at end of file From 2ce2c4385226d409e73be3fdae0ccd9aa74daa59 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 14:45:33 -0500 Subject: [PATCH 49/89] Pulled strings into Bundle. Removed unused strings from Bundle. Updated _ja. --- .../autopsy/casemodule/AddImageAction.java | 9 +- .../autopsy/casemodule/AddImageTask.java | 8 +- .../AddImageWizardAddingProgressPanel.java | 7 +- .../AddImageWizardAddingProgressVisual.java | 12 +- .../AddImageWizardChooseDataSourcePanel.java | 5 +- .../AddImageWizardChooseDataSourceVisual.java | 3 +- .../AddImageWizardIngestConfigPanel.java | 7 +- .../AddImageWizardIngestConfigVisual.java | 4 +- .../casemodule/AddImageWizardIterator.java | 4 +- .../autopsy/casemodule/AddLocalFilesTask.java | 6 +- .../autopsy/casemodule/Bundle.properties | 223 ++++++++++++------ .../autopsy/casemodule/Bundle_ja.properties | 70 +----- .../sleuthkit/autopsy/casemodule/Case.java | 116 ++++++--- .../autopsy/casemodule/CaseDeleteAction.java | 18 +- .../autopsy/casemodule/CaseOpenAction.java | 25 +- .../casemodule/CasePropertiesAction.java | 2 +- .../casemodule/CasePropertiesForm.java | 27 ++- .../autopsy/casemodule/CueBannerPanel.java | 3 +- .../autopsy/casemodule/GeneralFilter.java | 6 +- .../autopsy/casemodule/ImageDSProcessor.java | 6 +- .../autopsy/casemodule/ImageFilePanel.java | 20 +- .../casemodule/LocalDiskDSProcessor.java | 4 +- .../autopsy/casemodule/LocalDiskPanel.java | 26 +- .../casemodule/LocalFilesDSProcessor.java | 4 +- .../autopsy/casemodule/LocalFilesPanel.java | 10 +- .../casemodule/MissingImageDialog.java | 14 +- .../casemodule/NewCaseVisualPanel1.java | 7 +- .../casemodule/NewCaseVisualPanel2.java | 4 +- .../casemodule/NewCaseWizardAction.java | 13 +- .../casemodule/NewCaseWizardPanel1.java | 34 ++- .../casemodule/NewCaseWizardPanel2.java | 6 +- .../casemodule/OpenRecentCasePanel.java | 14 +- .../autopsy/casemodule/RecentCases.java | 6 +- .../autopsy/casemodule/RecentItems.java | 8 +- .../autopsy/casemodule/StartupWindow.java | 4 +- .../autopsy/casemodule/UpdateRecentCases.java | 6 +- .../autopsy/casemodule/XMLCaseManagement.java | 33 ++- 37 files changed, 500 insertions(+), 274 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java index 469b600ac2..a769194ed3 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java @@ -111,15 +111,18 @@ public final class AddImageAction extends CallableSystemAction implements Presen final IngestConfigurator ingestConfig = Lookup.getDefault().lookup(IngestConfigurator.class); if (null != ingestConfig && ingestConfig.isIngestRunning()) { - final String msg = "Ingest is ongoing on another data source. Adding a new source now might slow down the current ingest.
Do you want to proceed and add a new data source now?"; - if (JOptionPane.showConfirmDialog(null, msg, "Ingest in progress", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) { + final String msg = NbBundle.getMessage(this.getClass(), "AddImageAction.ingestConfig.ongoingIngest.msg"); + if (JOptionPane.showConfirmDialog(null, msg, + NbBundle.getMessage(this.getClass(), + "AddImageAction.ingestConfig.ongoingIngest.title"), + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) { return; } } iterator = new AddImageWizardIterator(this); wizardDescriptor = new WizardDescriptor(iterator); - wizardDescriptor.setTitle("Add Data Source"); + wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "AddImageAction.wizard.title")); wizardDescriptor.putProperty(NAME, e); if (dialog != null) { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java index dc1a65b009..6e2364d4e1 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java @@ -24,6 +24,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor; import org.sleuthkit.autopsy.coreutils.Logger; @@ -97,7 +99,9 @@ import org.sleuthkit.datamodel.TskException; String currDir = process.currentDirectory(); if (currDir != null) { if (!currDir.isEmpty() ) { - progressMonitor.setProgressText("Adding: " + currDir); + progressMonitor.setProgressText( + NbBundle.getMessage(this.getClass(), "AddImageTask.run.progress.adding", + currDir)); } } // this sleep here prevents the UI from locking up @@ -298,7 +302,7 @@ import org.sleuthkit.datamodel.TskException; logger.log(Level.INFO, "interrupt() add image process"); addImageProcess.stop(); //it might take time to truly stop processing and writing to db } catch (TskCoreException ex) { - throw new Exception("Error stopping add-image process.", ex); + throw new Exception(NbBundle.getMessage(this.getClass(), "AddImageTask.interrupt.exception.msg"), ex); } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java index 951d60c834..14920f7183 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java @@ -29,6 +29,7 @@ import javax.swing.event.ChangeListener; import org.openide.WizardDescriptor; import org.openide.util.HelpCtx; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor; /** @@ -136,7 +137,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa public boolean isValid() { // set the focus to the next button of the wizard dialog if it's enabled if (imgAdded) { - Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton("Next >"); + Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton( + NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.isValid.focusNext")); } return imgAdded; @@ -147,7 +149,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa */ void setStateStarted() { component.getProgressBar().setIndeterminate(true); - component.setProgressBarTextAndColor("*This process may take some time for large data sources.", 0, Color.black); + component.setProgressBarTextAndColor( + NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.stateStarted.progressBarText"), 0, Color.black); } /** diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java index a7be36a1d7..afd5ec7281 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java @@ -23,6 +23,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JProgressBar; import org.openide.WizardDescriptor; +import org.openide.util.NbBundle; /** * visual component to display progress bar and status updates while adding an @@ -30,7 +31,8 @@ import org.openide.WizardDescriptor; */ class AddImageWizardAddingProgressVisual extends javax.swing.JPanel { - private static final String ADDING_DATA_SOURCE_COMPLETE = "Adding Data Source - Complete"; + private static final String ADDING_DATA_SOURCE_COMPLETE = NbBundle + .getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.addingDsComplete.text"); private String errorLog = ""; private boolean hasCriticalErrors = false; @@ -42,7 +44,7 @@ import org.openide.WizardDescriptor; */ @Override public String getName() { - return "Add Data Source"; + return NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.getName.text"); } /** @@ -115,10 +117,12 @@ import org.openide.WizardDescriptor; //progressBar.setValue(100); //always invoked when process completed if (hasCriticalErrors) { statusLabel.setForeground(Color.RED); - statusLabel.setText("*Failed to add data source (critical errors encountered). Click below to view the log."); + statusLabel.setText( + NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.critText")); } else { statusLabel.setForeground(Color.BLACK); - statusLabel.setText("*Data Source added (non-critical errors encountered). Click below to view the log."); + statusLabel.setText( + NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.nonCritText")); } errorLog += errors + "\n"; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java index d662439f3b..9f595e92d3 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java @@ -25,6 +25,8 @@ import java.util.HashSet; 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 javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -106,7 +108,8 @@ class AddImageWizardChooseDataSourcePanel implements WizardDescriptor.Panel"); + Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton( + NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourcePanel.moveFocusNext")); } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java index 65a97761dd..e82774f3a9 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java @@ -37,6 +37,7 @@ import javax.swing.JSeparator; import javax.swing.event.DocumentEvent; import javax.swing.ListCellRenderer; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor; @@ -183,7 +184,7 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel { */ @Override public String getName() { - return "Enter Data Source Information"; + return NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourceVisual.getName.text"); } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java index c4c2f6d4dd..0e0726480b 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.casemodule; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.ingest.IngestConfigurator; import java.awt.Color; import java.awt.Component; @@ -275,9 +276,11 @@ class AddImageWizardIngestConfigPanel implements WizardDescriptor.Panel 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=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 +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 +AddImageAction.wizard.title=Add Data Source +AddImageAction.ingestConfig.ongoingIngest.msg=Ingest is ongoing on another data source. Adding a new source now might slow down the current ingest.
Do you want to proceed and add a new data source now? +AddImageAction.ingestConfig.ongoingIngest.title=Ingest in progress +AddImageTask.run.progress.adding=Adding\: {0} +AddImageTask.interrupt.exception.msg=Error stopping add-image process. +AddImageWizardAddingProgressPanel.isValid.focusNext=Next > +AddImageWizardAddingProgressPanel.stateStarted.progressBarText=*This process may take some time for large data sources. +AddImageWizardAddingProgressVisual.addingDsComplete.text=Adding Data Source - Complete +AddImageWizardAddingProgressVisual.getName.text=Add Data Source +AddImageWizardAddingProgressVisual.showErrors.critText=*Failed to add data source (critical errors encountered). Click below to view the log. +AddImageWizardAddingProgressVisual.showErrors.nonCritText=*Data Source added (non-critical errors encountered). Click below to view the log. +AddImageWizardChooseDataSourcePanel.moveFocusNext=Next > +AddImageWizardChooseDataSourceVisual.getName.text=Enter Data Source Information +AddImageWizardIngestConfigPanel.dsProcDone.noErrs.text=*Data Source added. +AddImageWizardIngestConfigPanel.dsProcDone.errs.text=*Errors encountered in adding Data Source. +AddImageWizardIngestConfigVisual.getName.text=Configure Ingest Modules +AddImageWizardIterator.stepXofN=Step {0} of {1} +AddLocalFilesTask.localFileAdd.progress.text=Adding\: {0}/{1} +Case.getCurCase.exception.noneOpen=Can't get the current case; there is no case open\! +Case.moduleErr=Module Error +Case.changeCase.errListenToCaseUpdates.msg=A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete. +Case.create.exception.msg=Error creating a case\: {0} in dir {1} +Case.open.exception.blankCase.msg=Case name is blank. +Case.open.msgDlg.updated.msg=Updated case database schema.\ +A backup copy of the database with the following path has been made\:\ + {0} +Case.open.msgDlg.updated.title=Case Database Schema Update +Case.open.exception.checkFile.msg=Check that you selected the correct case file (usually with {0} extension) +Case.open.exception.gen.msg=Error opening the case +Case.checkImgExist.confDlg.doesntExist.msg={0} has detected that one of the images associated with \ +this case are missing. Would you like to search for them now?\ +Previously, the image was located at\:\ +{1}\ +Please note that you will still be able to browse directories and generate reports\ +if you choose No, but you will not be able to view file content or run the ingest process. +Case.checkImgExist.confDlg.doesntExist.title=Missing Image +Case.addImg.exception.msg=Error adding image to the case +Case.closeCase.exception.msg=Error while trying to close the current case. +Case.deleteCase.exception.msg=Error deleting the case dir\: {0} +Case.deleteCase.exception.msg2=Error deleting the case dir\: {0} +Case.updateCaseName.exception.msg=Error while trying to update the case name. +Case.updateExaminer.exception.msg=Error while trying to update the examiner. +Case.updateCaseNum.exception.msg=Error while trying to update the case number. +Case.exception.errGetRootObj=Error getting root objects. +Case.createCaseDir.exception.existNotDir=Cannot create case dir, already exists and is not a directory\: {0} +Case.createCaseDir.exception.existCantRW=Cannot create case dir, already exists and cannot read/write\: {0} +Case.createCaseDir.exception.cantCreate=Cannot create case dir\: {0} +Case.createCaseDir.exception.cantCreateCaseDir=Could not create case directory\: {0} +Case.createCaseDir.exception.cantCreateModDir=Could not create modules output directory\: {0} +Case.createCaseDir.exception.gen=Could not create case directory\: {0} +CaseDeleteAction.closeConfMsg.text=Are you sure want to close and delete this case? \ + Case Name\: {0}\ + Case Directory\: {1} +CaseDeleteAction.closeConfMsg.title=Warning\: Closing the Current Case +CaseDeleteAction.msgDlg.fileInUse.msg=The delete action can't be fully completed because the folder or file in it is open by another program.\ + \ +Close the folder and file and try again or you can delete the case manually. +CaseDeleteAction.msgDlg.fileInUse.title=Error\: Folder In Use +CaseDeleteAction.msgDlg.caseDelete.msg=Case {0} has been deleted. +CaseOpenAction.autFilter.title={0} Case File ( {1}) +CaseOpenAction.msgDlg.fileNotExist.msg=Error\: File doesn't exist. +CaseOpenAction.msgDlg.fileNotExist.title=Error +CaseOpenAction.msgDlg.cantOpenCase.msg=Error\: could not open the case in folder {0}\: {1} +CaseOpenAction.msgDlg.cantOpenCase.title=Error +CasePropertiesAction.window.title=Case Properties +CasePropertiesForm.updateCaseName.msgDlg.empty.msg=The caseName cannot be empty. +CasePropertiesForm.updateCaseName.msgDlg.empty.title=Error +CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg=The Case Name cannot contain any of this following symbol\: \\ / \: * ? " < > | +CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title=Error +CasePropertiesForm.updateCaseName.confMsg.msg=Are you sure want to update the case name from "{0}" to "{1}"? +CasePropertiesForm.updateCaseName.confMsg.title=Create directory +CueBannerPanel.title.text=Open Recent Case +GeneralFilter.rawImageDesc.text=Raw Images (*.img, *.dd, *.001, *.aa, *.raw, *.bin) +GeneralFilter.encaseImageDesc.text=Encase Images (*.e01) +ImageDSProcessor.dsType.text=Image File +ImageDSProcessor.allDesc.text=All Supported Types +ImageFilePanel.moduleErr=Module Error +ImageFilePanel.moduleErr.msg=A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete. +LocalDiskDSProcessor.dsType.text=Local Disk +LocalDiskPanel.localDiskModel.loading.msg=Loading local disks... +LocalDiskPanel.moduleErr=Module Error +LocalDiskPanel.moduleErr.msg=A module caused an error listening to LocalDiskPanel updates. See log to determine which module. Some data could be incomplete. +LocalDiskPanel.errLabel.disksNotDetected.text=Disks were not detected. On some systems it requires admin privileges (or "Run as administrator"). +LocalDiskPanel.errLabel.disksNotDetected.toolTipText=Disks were not detected. On some systems it requires admin privileges (or "Run as administrator"). +LocalDiskPanel.errLabel.drivesNotDetected.text=Local drives were not detected. Auto-detection not supported on this OS or admin privileges required +LocalDiskPanel.errLabel.drivesNotDetected.toolTipText=Local drives were not detected. Auto-detection not supported on this OS or admin privileges required +LocalDiskPanel.errLabel.someDisksNotDetected.text=Some disks were not detected. On some systems it requires admin privileges (or "Run as administrator"). +LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText=Some disks were not detected. On some systems it requires admin privileges (or "Run as administrator"). +LocalFilesDSProcessor.dsType=Logical Files +LocalFilesDSProcessor.toString.text=Logical Files +LocalFilesPanel.contentType.text=LOCAL +LocalFilesPanel.moduleErr=Module Error +LocalFilesPanel.moduleErr.msg=A module caused an error listening to LocalFilesPanel updates. See log to determine which module. Some data could be incomplete. +MissingImageDialog.allDesc.text=All Supported Types +MissingImageDialog.display.title=Search for Missing Image +MissingImageDialog.confDlg.noFileSel.msg=No image file has been selected, are you sure you\ +would like to exit without finding the image. +MissingImageDialog.confDlg.noFileSel.title=Missing Image +NewCaseVisualPanel1.getName.text=Case Info +NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select +NewCaseVisualPanel2.getName.text=Additional Information +NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation? +NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case +NewCaseWizardAction.newCase.windowTitle.text=New Case Information +NewCaseWizardAction.getName.text=New Case Wizard +NewCaseWizardPanel1.validate.errMsg.invalidSymbols=The Case Name cannot contain any of the following symbols\: \\ / \: * ? " < > | +NewCaseWizardPanel1.validate.errMsg.dirExists=Case directory ''{0}'' already exists. +NewCaseWizardPanel1.validate.confMsg.createDir.msg=The base directory ''{0}'' doesn''t exist. \ + \ + Do you want to create that directory? +NewCaseWizardPanel1.validate.confMsg.createDir.title=Create directory +NewCaseWizardPanel1.validate.errMsg.cantCreateParDir.msg=Error\: Couldn''t create case parent directory {0} +NewCaseWizardPanel1.validate.errMsg.prevCreateBaseDir.msg=Prevented from creating base directory {0} +NewCaseWizardPanel1.validate.errMsg.cantCreateDir=Error\: Couldn't create directory. +NewCaseWizardPanel1.validate.errMsg.invalidBaseDir.msg=ERROR\: The Base Directory that you entered is not valid.\ +Please enter a valid Base Directory. +NewCaseWizardPanel1.createDir.errMsg.cantCreateDir.msg=ERROR\: Could not create the case directory. \ +Please enter a valid Case Name and Directory. +NewCaseWizardPanel2.validate.errCreateCase.msg=Error creating case +OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg=Error\: Case {0} doesn''t exist. +OpenRecentCasePanel.openCase.msgDlg.err=Error +OpenRecentCasePanel.colName.caseName=Case Name +OpenRecentCasePanel.colName.path=Path +RecentCases.exception.caseIdxOutOfRange.msg=Recent case index {0} is out of range. +RecentCases.getName.text=Clear Recent Cases +RecentItems.openRecentCase.msgDlg.text=Error\: Case {0} doesn''t exist. +RecentItems.openRecentCase.msgDlg.err=Error +StartupWindow.title.text=Welcome +UpdateRecentCases.menuItem.clearRecentCases.text=Clear Recent Cases +UpdateRecentCases.menuItem.empty=-Empty- +XMLCaseManagement.create.exception.msg=Error setting up Case XML file, +XMLCaseManagement.writeFile.exception.noCase.msg=No set case to write management file for. +XMLCaseManagement.writeFile.exception.errWriteToFile.msg=Error writing to case file +XMLCaseManagement.open.exception.errReadXMLFile.msg=Error reading case XML file\: {0} +XMLCaseManagement.open.msgDlg.notAutCase.msg=Error\: This is not an Autopsy config file ("{0}").\ + \ +Detail\: \ +Cannot open a non-Autopsy config file (at {1}). +XMLCaseManagement.open.msgDlg.notAutCase.title=Error diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties index 758ee6b4ca..333bd7367c 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle_ja.properties @@ -1,61 +1,12 @@ CTL_AddImage=データソース追加... CTL_AddImageButton=データソース追加 -CTL_CaseAction=Case CTL_CaseCloseAct=ケースを閉じる CTL_CaseNewAction=New Case... -#CTL_CaseOpenActionOld=Open Case(old)... +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=ケース名 @@ -79,8 +30,6 @@ 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=閉じる @@ -90,13 +39,6 @@ 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: #審査官?カタカナ? @@ -114,19 +56,15 @@ 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=ローカルファイル又はフォルダーを選択 @@ -141,18 +79,12 @@ 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=データソースを処理中、及びデータベースに追加中。 diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java index 29c5a2bae1..b04fc9aedf 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -37,8 +37,9 @@ import java.util.TimeZone; import java.util.logging.Level; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; -import org.openide.util.Exceptions; + import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.SystemAction; import org.openide.windows.WindowManager; @@ -159,7 +160,7 @@ public class Case implements SleuthkitCase.ErrorObserver { if (currentCase != null) { return currentCase; } else { - throw new IllegalStateException("Can't get the current case; there is no case open!"); + throw new IllegalStateException(NbBundle.getMessage(Case.class, "Case.getCurCase.exception.noneOpen")); } } @@ -192,7 +193,10 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"), + NbBundle.getMessage(Case.class, + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } doCaseNameChange(""); @@ -201,7 +205,10 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"), + NbBundle.getMessage(Case.class, + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -214,7 +221,10 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"), + NbBundle.getMessage(Case.class, + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } doCaseChange(currentCase); @@ -224,7 +234,10 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(Case.class, "Case.moduleErr"), + NbBundle.getMessage(Case.class, + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } doCaseNameChange(currentCase.name); @@ -267,7 +280,8 @@ public class Case implements SleuthkitCase.ErrorObserver { db = SleuthkitCase.newCase(dbPath); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error creating a case: " + caseName + " in dir " + caseDir, ex); - throw new CaseActionException("Error creating a case: " + caseName + " in dir " + caseDir, ex); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.create.exception.msg", caseName, caseDir), ex); } Case newCase = new Case(caseName, caseNumber, examiner, configFilePath, xmlcm, db); @@ -296,14 +310,18 @@ public class Case implements SleuthkitCase.ErrorObserver { String examiner = xmlcm.getCaseExaminer(); // if the caseName is "", case / config file can't be opened if (caseName.equals("")) { - throw new CaseActionException("Case name is blank."); + throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.blankCase.msg")); } String caseDir = xmlcm.getCaseDirectory(); String dbPath = caseDir + File.separator + "autopsy.db"; SleuthkitCase db = SleuthkitCase.openCase(dbPath); if (null != db.getBackupDatabasePath()) { - JOptionPane.showMessageDialog(null, "Updated case database schema.\nA backup copy of the database with the following path has been made:\n " + db.getBackupDatabasePath(), "Case Database Schema Update", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.msg", + db.getBackupDatabasePath()), + NbBundle.getMessage(Case.class, "Case.open.msgDlg.updated.title"), + JOptionPane.INFORMATION_MESSAGE); } checkImagesExist(db); @@ -318,10 +336,10 @@ public class Case implements SleuthkitCase.ErrorObserver { CaseCloseAction closeCase = SystemAction.get(CaseCloseAction.class); closeCase.actionPerformed(null); if (!configFilePath.endsWith(CASE_DOT_EXTENSION)) { - throw new CaseActionException("Check that you selected the correct case file (usually with " - + CASE_DOT_EXTENSION + " extension)", ex); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.open.exception.checkFile.msg", CASE_DOT_EXTENSION), ex); } else { - throw new CaseActionException("Error opening the case", ex); + throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.gen.msg"), ex); } } } @@ -352,11 +370,13 @@ public class Case implements SleuthkitCase.ErrorObserver { boolean fileExists = (pathExists(path) || driveExists(path)); if (!fileExists) { - int ret = JOptionPane.showConfirmDialog(null, appName + " has detected that one of the images associated with \n" - + "this case are missing. Would you like to search for them now?\n" - + "Previously, the image was located at:\n" + path - + "\nPlease note that you will still be able to browse directories and generate reports\n" - + "if you choose No, but you will not be able to view file content or run the ingest process.", "Missing Image", JOptionPane.YES_NO_OPTION); + int ret = JOptionPane.showConfirmDialog(null, + NbBundle.getMessage(Case.class, + "Case.checkImgExist.confDlg.doesntExist.msg", + appName, path), + NbBundle.getMessage(Case.class, + "Case.checkImgExist.confDlg.doesntExist.title"), + JOptionPane.YES_NO_OPTION); if (ret == JOptionPane.YES_OPTION) { MissingImageDialog.makeDialog(obj_id, db); @@ -389,12 +409,15 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"), + NbBundle.getMessage(this.getClass(), + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } CoreComponentControl.openCoreWindows(); return newImage; } catch (Exception ex) { - throw new CaseActionException("Error adding image to the case", ex); + throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.addImg.exception.msg"), ex); } } @@ -423,7 +446,10 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"), + NbBundle.getMessage(this.getClass(), + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } CoreComponentControl.openCoreWindows(); } @@ -456,7 +482,7 @@ public class Case implements SleuthkitCase.ErrorObserver { this.xmlcm.close(); // close the xmlcm this.db.close(); } catch (Exception e) { - throw new CaseActionException("Error while trying to close the current case.", e); + throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.closeCase.exception.msg"), e); } } @@ -478,11 +504,13 @@ public class Case implements SleuthkitCase.ErrorObserver { RecentCases.getInstance().removeRecentCase(this.name, this.configFilePath); // remove it from the recent case Case.changeCase(null); if (result == false) { - throw new CaseActionException("Error deleting the case dir: " + caseDir); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "Case.deleteCase.exception.msg", caseDir)); } } catch (Exception ex) { logger.log(Level.SEVERE, "Error deleting the current case dir: " + caseDir, ex); - throw new CaseActionException("Error deleting the case dir: " + caseDir, ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "Case.deleteCase.exception.msg2", caseDir), ex); } } @@ -504,12 +532,15 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"), + NbBundle.getMessage(this.getClass(), + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } doCaseNameChange(newCaseName); } catch (Exception e) { - throw new CaseActionException("Error while trying to update the case name.", e); + throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateCaseName.exception.msg"), e); } } @@ -528,10 +559,13 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"), + NbBundle.getMessage(this.getClass(), + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } catch (Exception e) { - throw new CaseActionException("Error while trying to update the examiner.", e); + throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateExaminer.exception.msg"), e); } } @@ -551,10 +585,13 @@ public class Case implements SleuthkitCase.ErrorObserver { } catch (Exception e) { logger.log(Level.SEVERE, "Case listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to Case updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "Case.moduleErr"), + NbBundle.getMessage(this.getClass(), + "Case.changeCase.errListenToCaseUpdates.msg"), + MessageNotifyUtil.MessageType.ERROR); } } catch (Exception e) { - throw new CaseActionException("Error while trying to update the case number.", e); + throw new CaseActionException(NbBundle.getMessage(this.getClass(), "Case.updateCaseNum.exception.msg"), e); } } @@ -764,7 +801,7 @@ public class Case implements SleuthkitCase.ErrorObserver { try { return db.getRootObjects(); } catch (TskException ex) { - throw new RuntimeException("Error getting root objects.", ex); + throw new RuntimeException(NbBundle.getMessage(this.getClass(), "Case.exception.errGetRootObj"), ex); } } @@ -919,16 +956,19 @@ public class Case implements SleuthkitCase.ErrorObserver { File caseDirF = new File(caseDir); if (caseDirF.exists()) { if (caseDirF.isFile()) { - throw new CaseActionException("Cannot create case dir, already exists and is not a directory: " + caseDir); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.existNotDir", caseDir)); } else if (!caseDirF.canRead() || !caseDirF.canWrite()) { - throw new CaseActionException("Cannot create case dir, already exists and cannot read/write: " + caseDir); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.existCantRW", caseDir)); } } try { boolean result = (caseDirF).mkdirs(); // create root case Directory if (result == false) { - throw new CaseActionException("Cannot create case dir: " + caseDir); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreate", caseDir)); } // create the folders inside the case directory @@ -938,17 +978,21 @@ public class Case implements SleuthkitCase.ErrorObserver { && (new File(caseDir + File.separator + XMLCaseManagement.CACHE_FOLDER_RELPATH)).mkdir(); if (result == false) { - throw new CaseActionException("Could not create case directory: " + caseDir); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreateCaseDir", caseDir)); } final String modulesOutDir = caseDir + File.separator + getModulesOutputDirRelPath(); result = new File(modulesOutDir).mkdir(); if (result == false) { - throw new CaseActionException("Could not create modules output directory: " + modulesOutDir); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.cantCreateModDir", + modulesOutDir)); } } catch (Exception e) { - throw new CaseActionException("Could not create case directory: " + caseDir, e); + throw new CaseActionException( + NbBundle.getMessage(Case.class, "Case.createCaseDir.exception.gen", caseDir), e); } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java index 72ed22351b..229bbe2ca9 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java @@ -99,8 +99,11 @@ import org.openide.util.actions.CallableSystemAction; } else{ // show the confirmation first to close the current case and open the "New Case" wizard panel - String closeCurrentCase = "Are you sure want to close and delete this case? \n Case Name: " + caseName + "\n Case Directory: "+ caseFolder.getPath(); - NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, "Warning: Closing the Current Case", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); + String closeCurrentCase = NbBundle.getMessage(this.getClass(), "CaseDeleteAction.closeConfMsg.text", caseName, caseFolder.getPath()); + NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, + NbBundle.getMessage(this.getClass(), + "CaseDeleteAction.closeConfMsg.title"), + NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); d.setValue(NotifyDescriptor.NO_OPTION); Object res = DialogDisplayer.getDefault().notify(d); @@ -116,11 +119,18 @@ import org.openide.util.actions.CallableSystemAction; // show notification whether the case has been deleted or it failed to delete... if(!success){ - JOptionPane.showMessageDialog(caller, "The delete action can't be fully completed because the folder or file in it is open by another program.\n \nClose the folder and file and try again or you can delete the case manually.", "Error: Folder In Use", JOptionPane.ERROR_MESSAGE); // throw an error + JOptionPane.showMessageDialog(caller, + NbBundle.getMessage(this.getClass(), + "CaseDeleteAction.msgDlg.fileInUse.msg"), + NbBundle.getMessage(this.getClass(), + "CaseDeleteAction.msgDlg.fileInUse.title"), + JOptionPane.ERROR_MESSAGE); // throw an error } else{ CasePropertiesAction.closeCasePropertiesWindow(); // because the "Delete Case" button is in the "CaseProperties" window, we have to close that window when we delete the case. - JOptionPane.showMessageDialog(caller, "Case " + caseName + " has been deleted."); + JOptionPane.showMessageDialog(caller, NbBundle.getMessage(this.getClass(), + "CaseDeleteAction.msgDlg.caseDelete.msg", + caseName)); } } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java index 26dfb3b821..6c2ac4c0e6 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseOpenAction.java @@ -22,15 +22,17 @@ import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; -import java.util.Collections; import java.util.logging.Level; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.Logger; +import org.sleuthkit.autopsy.coreutils.Version; /** * The action to open a existing case. This class is always enabled. @@ -47,8 +49,9 @@ public final class CaseOpenAction implements ActionListener { * The constructor */ public CaseOpenAction() { - autFilter = new FileNameExtensionFilter(org.sleuthkit.autopsy.coreutils.Version.getName() - + " Case File ( " + Case.CASE_DOT_EXTENSION + ")", + autFilter = new FileNameExtensionFilter( + NbBundle.getMessage(CaseOpenAction.class, "CaseOpenAction.autFilter.title", Version.getName(), + Case.CASE_DOT_EXTENSION), Case.CASE_EXTENSION); fc.setDragEnabled(false); fc.setFileSelectionMode(JFileChooser.FILES_ONLY); @@ -80,7 +83,12 @@ public final class CaseOpenAction implements ActionListener { ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, dirPath.substring(0, dirPath.lastIndexOf(File.separator))); // check if the file exists if (!new File(path).exists()) { - JOptionPane.showMessageDialog(null, "Error: File doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(this.getClass(), + "CaseOpenAction.msgDlg.fileNotExist.msg"), + NbBundle.getMessage(this.getClass(), + "CaseOpenAction.msgDlg.fileNotExist.title"), + JOptionPane.ERROR_MESSAGE); this.actionPerformed(e); // show the dialog box again } else { // try to close Startup window if there's one @@ -93,8 +101,13 @@ public final class CaseOpenAction implements ActionListener { try { Case.open(path); // open the case } catch (CaseActionException ex) { - JOptionPane.showMessageDialog(null, "Error: could not open the case in folder " + path - + ": " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(this.getClass(), + "CaseOpenAction.msgDlg.cantOpenCase.msg", path, + ex.getMessage()), + NbBundle.getMessage(this.getClass(), + "CaseOpenAction.msgDlg.cantOpenCase.title"), + JOptionPane.ERROR_MESSAGE); logger.log(Level.WARNING, "Error opening case in folder " + path, ex); StartupWindowProvider.getInstance().open(); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesAction.java index 76ff941278..26f86db61a 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesAction.java @@ -62,7 +62,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; try { // create the popUp window for it - String title = "Case Properties"; + String title = NbBundle.getMessage(this.getClass(), "CasePropertiesAction.window.title"); final JFrame frame = new JFrame(title); popUpWindow = new JDialog(frame, title, true); // to make the popUp Window to be modal diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java index 5ff08adcad..6da501f08f 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java @@ -27,9 +27,10 @@ package org.sleuthkit.autopsy.casemodule; import java.awt.event.ActionListener; import java.io.File; -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 javax.swing.JOptionPane; import javax.swing.JPanel; @@ -365,7 +366,12 @@ class CasePropertiesForm extends javax.swing.JPanel{ // check if the case name is empty if(newCaseName.trim().equals("")){ - JOptionPane.showMessageDialog(caller, "The caseName cannot be empty.", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(caller, + NbBundle.getMessage(this.getClass(), + "CasePropertiesForm.updateCaseName.msgDlg.empty.msg"), + NbBundle.getMessage(this.getClass(), + "CasePropertiesForm.updateCaseName.msgDlg.empty.title"), + JOptionPane.ERROR_MESSAGE); } else{ // check if case Name contain one of this following symbol: @@ -373,13 +379,22 @@ class CasePropertiesForm extends javax.swing.JPanel{ if(newCaseName.contains("\\") || newCaseName.contains("/") || newCaseName.contains(":") || newCaseName.contains("*") || newCaseName.contains("?") || newCaseName.contains("\"") || newCaseName.contains("<") || newCaseName.contains(">") || newCaseName.contains("|")){ - String errorMsg = "The Case Name cannot contain any of this following symbol: \\ / : * ? \" < > |"; - JOptionPane.showMessageDialog(caller, errorMsg, "Error", JOptionPane.ERROR_MESSAGE); + String errorMsg = NbBundle + .getMessage(this.getClass(), "CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.msg"); + JOptionPane.showMessageDialog(caller, errorMsg, + NbBundle.getMessage(this.getClass(), + "CasePropertiesForm.updateCaseName.msgDlg.invalidSymbols.title"), + JOptionPane.ERROR_MESSAGE); } else{ // ask for the confirmation first - String confMsg = "Are you sure want to update the case name from \"" + oldCaseName + "\" to \"" + newCaseName + "\"?"; - NotifyDescriptor d = new NotifyDescriptor.Confirmation(confMsg, "Create directory", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); + String confMsg = NbBundle + .getMessage(this.getClass(), "CasePropertiesForm.updateCaseName.confMsg.msg", oldCaseName, + newCaseName); + NotifyDescriptor d = new NotifyDescriptor.Confirmation(confMsg, + NbBundle.getMessage(this.getClass(), + "CasePropertiesForm.updateCaseName.confMsg.title"), + NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); d.setValue(NotifyDescriptor.NO_OPTION); Object res = DialogDisplayer.getDefault().notify(d); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java index 49c5b313a0..0d9f33cd89 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java @@ -29,13 +29,14 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import org.openide.util.Lookup; +import org.openide.util.NbBundle; /** * */ public class CueBannerPanel extends javax.swing.JPanel { - final private static String title = "Open Recent Case"; + final private static String title = NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.title.text"); final private static JFrame frame = new JFrame(title); final static JDialog recentCasesWindow = new JDialog(frame, title, true); // to make the popUp Window to be modal diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java b/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java index 9b9a091466..4d972958c9 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java @@ -19,6 +19,8 @@ package org.sleuthkit.autopsy.casemodule; +import org.openide.util.NbBundle; + import java.io.File; import java.util.List; import java.util.Arrays; @@ -32,10 +34,10 @@ public class GeneralFilter extends FileFilter{ // Extensions & Descriptions for commonly used filters public static final List RAW_IMAGE_EXTS = Arrays.asList(new String[]{".img", ".dd", ".001", ".aa", ".raw", ".bin"}); - public static final String RAW_IMAGE_DESC = "Raw Images (*.img, *.dd, *.001, *.aa, *.raw, *.bin)"; + public static final String RAW_IMAGE_DESC = NbBundle.getMessage(GeneralFilter.class, "GeneralFilter.rawImageDesc.text"); public static final List ENCASE_IMAGE_EXTS = Arrays.asList(new String[]{".e01"}); - public static final String ENCASE_IMAGE_DESC = "Encase Images (*.e01)"; + public static final String ENCASE_IMAGE_DESC = NbBundle.getMessage(GeneralFilter.class, "GeneralFilter.encaseImageDesc.text"); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java index b22b94f300..d8c4b31de6 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java @@ -22,6 +22,8 @@ import javax.swing.JPanel; import java.util.ArrayList; import java.util.List; import javax.swing.filechooser.FileFilter; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor; @@ -41,7 +43,7 @@ public class ImageDSProcessor implements DataSourceProcessor { static final Logger logger = Logger.getLogger(ImageDSProcessor.class.getName()); // Data source type handled by this processor - private final static String dsType = "Image File"; + private final static String dsType = NbBundle.getMessage(ImageDSProcessor.class, "ImageDSProcessor.dsType.text"); // The Config UI panel that plugins into the Choose Data Source Wizard private final ImageFilePanel imageFilePanel; @@ -70,7 +72,7 @@ public class ImageDSProcessor implements DataSourceProcessor { allExt.addAll(GeneralFilter.RAW_IMAGE_EXTS); allExt.addAll(GeneralFilter.ENCASE_IMAGE_EXTS); } - static final String allDesc = "All Supported Types"; + static final String allDesc = NbBundle.getMessage(ImageDSProcessor.class, "ImageDSProcessor.allDesc.text"); static final GeneralFilter allFilter = new GeneralFilter(allExt, allDesc); static final List filtersList = new ArrayList<>(); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java index 52ccfd5c9d..1369745a57 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java @@ -21,8 +21,6 @@ package org.sleuthkit.autopsy.casemodule; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.List; import java.util.SimpleTimeZone; @@ -32,6 +30,8 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.JPanel; import javax.swing.filechooser.FileFilter; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor; import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; @@ -202,7 +202,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener { } catch (Exception e) { logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } }//GEN-LAST:event_browseButtonActionPerformed @@ -330,7 +332,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener { } catch (Exception ee) { logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -341,7 +345,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener { } catch (Exception ee) { logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -353,7 +359,9 @@ public class ImageFilePanel extends JPanel implements DocumentListener { } catch (Exception ee) { logger.log(Level.SEVERE, "ImageFilePanel listener threw exception", ee); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to ImageFilePanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "ImageFilePanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskDSProcessor.java index 5a74b31a7c..997e69348b 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskDSProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskDSProcessor.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.casemodule; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor; @@ -33,7 +35,7 @@ public class LocalDiskDSProcessor implements DataSourceProcessor { static final Logger logger = Logger.getLogger(ImageDSProcessor.class.getName()); // Data source type handled by this processor - private static final String dsType = "Local Disk"; + private static final String dsType = NbBundle.getMessage(LocalDiskDSProcessor.class, "LocalDiskDSProcessor.dsType.text"); // The Config UI panel that plugins into the Choose Data Source Wizard private final LocalDiskPanel localDiskPanel; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java index 5c61abbd1f..bd4311c9e5 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java @@ -40,6 +40,8 @@ import javax.swing.ListCellRenderer; import javax.swing.SwingWorker; import javax.swing.border.EmptyBorder; import javax.swing.event.ListDataListener; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; @@ -297,7 +299,7 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; List partitions = new ArrayList(); //private String SELECT = "Select a local disk:"; - private String LOADING = "Loading local disks..."; + private String LOADING = NbBundle.getMessage(this.getClass(), "LocalDiskPanel.localDiskModel.loading.msg"); LocalDiskThread worker = null; @@ -335,7 +337,9 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; } catch (Exception e) { logger.log(Level.SEVERE, "LocalDiskPanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to LocalDiskPanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "LocalDiskPanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } } @@ -409,16 +413,22 @@ import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; private void displayErrors() { if(physical.isEmpty() && partitions.isEmpty()) { if(PlatformUtil.isWindowsOS()) { - errorLabel.setText("Disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\")."); - errorLabel.setToolTipText("Disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\")."); + errorLabel.setText( + NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.disksNotDetected.text")); + errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(), + "LocalDiskPanel.errLabel.disksNotDetected.toolTipText")); } else { - errorLabel.setText("Local drives were not detected. Auto-detection not supported on this OS or admin privileges required"); - errorLabel.setToolTipText("Local drives were not detected. Auto-detection not supported on this OS or admin privileges required"); + errorLabel.setText( + NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.drivesNotDetected.text")); + errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(), + "LocalDiskPanel.errLabel.drivesNotDetected.toolTipText")); } diskComboBox.setEnabled(false); } else if(physical.isEmpty()) { - errorLabel.setText("Some disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\")."); - errorLabel.setToolTipText("Some disks were not detected. On some systems it requires admin privileges (or \"Run as administrator\")."); + errorLabel.setText( + NbBundle.getMessage(this.getClass(), "LocalDiskPanel.errLabel.someDisksNotDetected.text")); + errorLabel.setToolTipText(NbBundle.getMessage(this.getClass(), + "LocalDiskPanel.errLabel.someDisksNotDetected.toolTipText")); } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java index 7ff306ae9a..898e414e8f 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.casemodule; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor; @@ -32,7 +34,7 @@ public class LocalFilesDSProcessor implements DataSourceProcessor { static final Logger logger = Logger.getLogger(LocalFilesDSProcessor.class.getName()); // Data source type handled by this processor - private static final String dsType = "Logical Files"; + private static final String dsType = NbBundle.getMessage(LocalFilesDSProcessor.class, "LocalFilesDSProcessor.dsType"); // The Config UI panel that plugins into the Choose Data Source Wizard private final LocalFilesPanel localFilesPanel; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java index 863e3b2610..c03c293c1a 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java @@ -25,6 +25,8 @@ import java.util.Set; import java.util.TreeSet; import javax.swing.JFileChooser; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; import java.util.logging.Level; @@ -84,7 +86,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; //@Override public String getContentType() { - return "LOCAL"; + return NbBundle.getMessage(this.getClass(), "LocalFilesPanel.contentType.text"); } //@Override @@ -127,7 +129,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String toString() { - return "Logical Files"; + return NbBundle.getMessage(this.getClass(), "LocalFilesDSProcessor.toString.text"); } /** @@ -242,7 +244,9 @@ import org.sleuthkit.autopsy.coreutils.Logger; } catch (Exception e) { logger.log(Level.SEVERE, "LocalFilesPanel listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to LocalFilesPanel updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), "LocalFilesPanel.moduleErr"), + NbBundle.getMessage(this.getClass(), "LocalFilesPanel.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } }//GEN-LAST:event_selectButtonActionPerformed diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java b/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java index d2d865aa0c..267a2c98c3 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/MissingImageDialog.java @@ -31,6 +31,8 @@ import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.GeneralFilter; import org.sleuthkit.autopsy.coreutils.Logger; @@ -54,7 +56,7 @@ import org.sleuthkit.datamodel.TskCoreException; allExt.addAll(GeneralFilter.RAW_IMAGE_EXTS); allExt.addAll(GeneralFilter.ENCASE_IMAGE_EXTS); } - static final String allDesc = "All Supported Types"; + static final String allDesc = NbBundle.getMessage(MissingImageDialog.class, "MissingImageDialog.allDesc.text"); static final GeneralFilter allFilter = new GeneralFilter(allExt, allDesc); private JFileChooser fc = new JFileChooser(); @@ -100,7 +102,7 @@ import org.sleuthkit.datamodel.TskCoreException; } private void display() { - this.setTitle("Search for Missing Image"); + this.setTitle(NbBundle.getMessage(this.getClass(), "MissingImageDialog.display.title")); Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize(); // set the popUp window / JFrame int w = this.getSize().width; @@ -316,9 +318,11 @@ import org.sleuthkit.datamodel.TskCoreException; // void cancel() { int ret = JOptionPane.showConfirmDialog(null, - "No image file has been selected, are you sure you\n" + - "would like to exit without finding the image.", - "Missing Image", JOptionPane.YES_NO_OPTION); + NbBundle.getMessage(this.getClass(), + "MissingImageDialog.confDlg.noFileSel.msg"), + NbBundle.getMessage(this.getClass(), + "MissingImageDialog.confDlg.noFileSel.title"), + JOptionPane.YES_NO_OPTION); if (ret == JOptionPane.YES_OPTION) { this.dispose(); } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java index 3c4dd72bcf..d1faa81e7d 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel1.java @@ -19,6 +19,8 @@ package org.sleuthkit.autopsy.casemodule; +import org.openide.util.NbBundle; + import java.awt.Component; import java.io.File; import javax.swing.JFileChooser; @@ -52,7 +54,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener{ */ @Override public String getName() { - return "Case Info"; + return NbBundle.getMessage(this.getClass(), "NewCaseVisualPanel1.getName.text"); } /** @@ -179,7 +181,8 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener{ //fc.setSelectedFile(new File("C:\\Program Files\\")); //disableTextField(fc); // disable all the text field on the file chooser - int returnValue = fc.showDialog((Component)evt.getSource(), "Select"); + int returnValue = fc.showDialog((Component)evt.getSource(), NbBundle.getMessage(this.getClass(), + "NewCaseVisualPanel1.caseDirBrowse.selectButton.text")); if(returnValue == JFileChooser.APPROVE_OPTION){ String path = fc.getSelectedFile().getPath(); caseParentDirTextField.setText(path); // put the path to the textfield diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel2.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel2.java index 5232f17835..d5180fdcce 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel2.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseVisualPanel2.java @@ -24,6 +24,8 @@ */ package org.sleuthkit.autopsy.casemodule; +import org.openide.util.NbBundle; + /** * * @author dfickling @@ -43,7 +45,7 @@ package org.sleuthkit.autopsy.casemodule; */ @Override public String getName() { - return "Additional Information"; + return NbBundle.getMessage(this.getClass(), "NewCaseVisualPanel2.getName.text"); } /** This method is called from within the constructor to diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java index 63f4ad5c56..c640054c69 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java @@ -31,6 +31,7 @@ import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.WizardDescriptor; import org.openide.util.HelpCtx; +import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.SystemAction; import org.sleuthkit.autopsy.coreutils.Logger; @@ -52,8 +53,12 @@ import org.sleuthkit.autopsy.coreutils.Logger; // there's a case open if (Case.existsCurrentCase()) { // show the confirmation first to close the current case and open the "New Case" wizard panel - String closeCurrentCase = "Do you want to save and close this case and proceed with the new case creation?"; - NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, "Warning: Closing the Current Case", NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); + String closeCurrentCase = NbBundle + .getMessage(this.getClass(), "NewCaseWizardAction.closeCurCase.confMsg.msg"); + NotifyDescriptor d = new NotifyDescriptor.Confirmation(closeCurrentCase, + NbBundle.getMessage(this.getClass(), + "NewCaseWizardAction.closeCurCase.confMsg.title"), + NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE); d.setValue(NotifyDescriptor.NO_OPTION); Object res = DialogDisplayer.getDefault().notify(d); @@ -77,7 +82,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; WizardDescriptor wizardDescriptor = new WizardDescriptor(getPanels()); // {0} will be replaced by WizardDesriptor.Panel.getComponent().getName() wizardDescriptor.setTitleFormat(new MessageFormat("{0}")); - wizardDescriptor.setTitle("New Case Information"); + wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.newCase.windowTitle.text")); Dialog dialog = DialogDisplayer.getDefault().createDialog(wizardDescriptor); dialog.setVisible(true); dialog.toFront(); @@ -149,7 +154,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String getName() { - return "New Case Wizard"; + return NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.getName.text"); } @Override diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java index 52be7a1a7d..8bbc242059 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java @@ -23,6 +23,8 @@ import java.util.HashSet; 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 javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -205,13 +207,15 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel | if (!Case.isValidName(caseName)) { - String errorMsg = "The Case Name cannot contain any of the following symbols: \\ / : * ? \" < > |"; + String errorMsg = NbBundle + .getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.invalidSymbols"); validationError(errorMsg); } else { // check if the directory exist if (new File(caseDirPath).exists()) { // throw a warning to enter new data or delete the existing directory - String errorMsg = "Case directory '" + caseDirPath + "' already exists."; + String errorMsg = NbBundle + .getMessage(this.getClass(), "NewCaseWizardPanel1.validate.errMsg.dirExists", caseDirPath); validationError(errorMsg); } else { // check if the "base" directory path is absolute @@ -220,8 +224,13 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel= LENGTH) { - throw new IllegalArgumentException("Recent case index " + i + " is out of range."); + throw new IllegalArgumentException( + NbBundle.getMessage(RecentCases.class, "RecentCases.exception.caseIdxOutOfRange.msg", i)); } } @@ -419,7 +421,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String getName() { //return NbBundle.getMessage(RecentCases.class, "CTL_RecentCases"); - return "Clear Recent Cases"; + return NbBundle.getMessage(this.getClass(), "RecentCases.getName.text"); } /** diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java b/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java index d8f5fcaca7..d7d66095e7 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/RecentItems.java @@ -26,6 +26,8 @@ import java.io.File; import java.util.logging.Level; import javax.swing.JOptionPane; import javax.swing.JPanel; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; /** @@ -56,7 +58,11 @@ class RecentItems implements ActionListener { // check if the file exists if(caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())){ // throw an error here - JOptionPane.showMessageDialog(caller, "Error: Case " + caseName + " doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(caller, + NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.text", + caseName), + NbBundle.getMessage(this.getClass(), "RecentItems.openRecentCase.msgDlg.err"), + JOptionPane.ERROR_MESSAGE); RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore //if case is not opened, open the start window diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/StartupWindow.java b/Core/src/org/sleuthkit/autopsy/casemodule/StartupWindow.java index f100123479..4c99d4f582 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/StartupWindow.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/StartupWindow.java @@ -26,6 +26,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JDialog; import javax.swing.JFrame; + +import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** @@ -35,7 +37,7 @@ import org.openide.util.lookup.ServiceProvider; public final class StartupWindow extends JDialog implements StartupWindowInterface { private static StartupWindow instance; - private static final String TITLE = "Welcome"; + private static final String TITLE = NbBundle.getMessage(StartupWindow.class, "StartupWindow.title.text"); private static Dimension DIMENSIONS = new Dimension(750, 400); public StartupWindow() { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java index 9667768397..0355fc20fe 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java @@ -23,6 +23,7 @@ import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JSeparator; import org.openide.awt.DynamicMenuContent; +import org.openide.util.NbBundle; import org.openide.util.actions.SystemAction; /** @@ -66,14 +67,15 @@ import org.openide.util.actions.SystemAction; // if it has recent case, create clear menu if(hasRecentCase){ comps[length] = new JSeparator(); - JMenuItem clearMenu = new JMenuItem("Clear Recent Cases"); + JMenuItem clearMenu = new JMenuItem( + NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.clearRecentCases.text")); clearMenu.addActionListener(SystemAction.get(RecentCases.class)); comps[length+1] = clearMenu; } // otherwise, just create a disabled empty menu else{ comps = new JComponent[1]; - JMenuItem emptyMenu = new JMenuItem("-Empty-"); + JMenuItem emptyMenu = new JMenuItem(NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.empty")); emptyMenu.addActionListener(new RecentItems("", "")); comps[0] = emptyMenu; comps[0].setEnabled(false); diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/XMLCaseManagement.java b/Core/src/org/sleuthkit/autopsy/casemodule/XMLCaseManagement.java index 45d8ac4784..7fc760463c 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/XMLCaseManagement.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/XMLCaseManagement.java @@ -30,6 +30,7 @@ import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.XMLUtil; import org.w3c.dom.*; @@ -458,7 +459,8 @@ import org.xml.sax.SAXException; docBuilder = docFactory.newDocumentBuilder(); } catch (ParserConfigurationException ex) { clear(); - throw new CaseActionException("Error setting up Case XML file, ", ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.create.exception.msg"), ex); } doc = docBuilder.newDocument(); @@ -531,7 +533,8 @@ import org.xml.sax.SAXException; @Override public void writeFile() throws CaseActionException { if (doc == null || caseName.equals("")) { - throw new CaseActionException("No set case to write management file for."); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.noCase.msg")); } // Prepare the DOM document for writing @@ -549,7 +552,8 @@ import org.xml.sax.SAXException; xformer = tfactory.newTransformer(); } catch (TransformerConfigurationException ex) { logger.log(Level.SEVERE, "Could not setup tranformer and write case file"); - throw new CaseActionException("Error writing to case file", ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.errWriteToFile.msg"), ex); } //Setup indenting to "pretty print" @@ -560,7 +564,8 @@ import org.xml.sax.SAXException; xformer.transform(source, result); } catch (TransformerException ex) { logger.log(Level.SEVERE, "Could not run tranformer and write case file"); - throw new CaseActionException("Error writing to case file", ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.writeFile.exception.errWriteToFile.msg"), ex); } // preparing the output file @@ -597,11 +602,17 @@ import org.xml.sax.SAXException; db = dbf.newDocumentBuilder(); doc = db.parse(file); } catch (ParserConfigurationException ex) { - throw new CaseActionException("Error reading case XML file: " + conFilePath, ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg", + conFilePath), ex); } catch (SAXException ex) { - throw new CaseActionException("Error reading case XML file: " + conFilePath, ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg", + conFilePath), ex); } catch (IOException ex) { - throw new CaseActionException("Error reading case XML file: " + conFilePath, ex); + throw new CaseActionException( + NbBundle.getMessage(this.getClass(), "XMLCaseManagement.open.exception.errReadXMLFile.msg", + conFilePath), ex); } @@ -619,7 +630,13 @@ import org.xml.sax.SAXException; if (!rootName.equals(TOP_ROOT_NAME)) { // throw an error ... clear(); - JOptionPane.showMessageDialog(caller, "Error: This is not an Autopsy config file (\"" + file.getName() + "\").\n \nDetail: \nCannot open a non-Autopsy config file (at " + className + ").", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(caller, + NbBundle.getMessage(this.getClass(), + "XMLCaseManagement.open.msgDlg.notAutCase.msg", + file.getName(), className), + NbBundle.getMessage(this.getClass(), + "XMLCaseManagement.open.msgDlg.notAutCase.title"), + JOptionPane.ERROR_MESSAGE); } else { /* Autopsy Created Version */ String createdVersion = getCreatedVersion(); // get the created version From a96d29e59fd67333bbd6619af49ab84a06bec4c2 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 16:07:39 -0500 Subject: [PATCH 50/89] Pulled strings into Bundle. Created _ja. Added org.openide.util as a dependency for this module in project.xml. --- CoreLibs/nbproject/project.xml | 11 ++++++++++- .../org/sleuthkit/autopsy/corelibs/Bundle.properties | 1 + .../sleuthkit/autopsy/corelibs/Bundle_ja.properties | 0 .../org/sleuthkit/autopsy/corelibs/SigarLoader.java | 5 +++-- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties diff --git a/CoreLibs/nbproject/project.xml b/CoreLibs/nbproject/project.xml index 102da52f87..9fbf15e50c 100644 --- a/CoreLibs/nbproject/project.xml +++ b/CoreLibs/nbproject/project.xml @@ -5,7 +5,16 @@ org.sleuthkit.autopsy.corelibs - + + + org.openide.util + + + + 8.25.1 + + + unit diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties index 7290d81803..c38a3ae87a 100644 --- a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties +++ b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle.properties @@ -4,3 +4,4 @@ OpenIDE-Module-Long-Description=\ The libraries can also be imported by other modules. OpenIDE-Module-Name=Autopsy-CoreLibs OpenIDE-Module-Short-Description=Autopsy Core module external libraries +SigarLoader.linkErr.msg=Could not load sigar library for your environment (non-critical), OS-level metrics will be unavailable. diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java index f0f0859478..8c2878bf16 100644 --- a/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java +++ b/CoreLibs/src/org/sleuthkit/autopsy/corelibs/SigarLoader.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.corelibs; import com.sun.javafx.PlatformUtil; import org.hyperic.sigar.Sigar; +import org.openide.util.NbBundle; /** * Wrapper over Sigar instrumentation class to facilitate dll loading. Our setup @@ -51,10 +52,10 @@ public class SigarLoader { sigar.enableLogging(false); //forces a test } catch (UnsatisfiedLinkError ex) { - String msg = "Could not load sigar library for your environment (non-critical), OS-level metrics will be unavailable. "; + String msg = NbBundle.getMessage(SigarLoader.class, "SigarLoader.linkErr.msg"); System.out.println(msg + ex.toString()); } catch (Exception ex) { - String msg = "Could not load sigar library for your environment (non-critical), OS-level metrics will be unavailable. "; + String msg = NbBundle.getMessage(SigarLoader.class, "SigarLoader.linkErr.msg"); System.out.println(msg + ex.toString()); } } From 51660ad92b305822c0658b9d6c79ef343081a60b Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 17:02:24 -0500 Subject: [PATCH 51/89] Pulled strings into Bundle. Added _ja. Added NbBundle dependency to project.xml --- ewfVerify/nbproject/project.xml | 8 +++ .../autopsy/ewfverify/Bundle.properties | 15 +++++ .../autopsy/ewfverify/Bundle_ja.properties | 0 .../ewfverify/EwfVerifyIngestModule.java | 56 ++++++++++++------- 4 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle_ja.properties diff --git a/ewfVerify/nbproject/project.xml b/ewfVerify/nbproject/project.xml index a3955c75fa..109bd8a1d2 100755 --- a/ewfVerify/nbproject/project.xml +++ b/ewfVerify/nbproject/project.xml @@ -6,6 +6,14 @@ org.sleuthkit.autopsy.ewfverify + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle.properties b/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle.properties index 3b02b79f43..6c69f774fa 100755 --- a/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle.properties +++ b/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle.properties @@ -1 +1,16 @@ OpenIDE-Module-Name=ewfVerify +EwfVerifyIngestModule.moduleName.text=EWF Verify +EwfVerifyIngestModule.moduleDesc.text=Validates the integrity of E01 files. +EwfVerifyIngestModule.process.errProcImg=Error processing {0} +EwfVerifyIngestModule.process.skipNonEwf=Skipping non-ewf image {0} +EwfVerifyIngestModule.process.noStoredHash=Image {0} does not have stored hash. +EwfVerifyIngestModule.process.startingImg=Starting {0} +EwfVerifyIngestModule.process.errGetSizeOfImg=Error getting size of {0}. Image will not be processed. +EwfVerifyIngestModule.process.errReadImgAtChunk=Error reading {0} at chunk {1} +EwfVerifyIngestModule.init.exception.failGetMd5=Failed to get MD5 algorithm +EwfVerifyIngestModule.complete.verified=\ verified +EwfVerifyIngestModule.complete.notVerified=\ not verified +EwfVerifyIngestModule.complete.verifResultsHead=

EWF Verification Results for {0}

+EwfVerifyIngestModule.complete.resultLi=
  • Result\:{0}
  • +EwfVerifyIngestModule.complete.calcHashLi=
  • Calculated hash\: {0}
  • +EwfVerifyIngestModule.complete.storedHashLi=
  • Stored hash\: {0}
  • diff --git a/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle_ja.properties b/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/EwfVerifyIngestModule.java b/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/EwfVerifyIngestModule.java index 2719bf2033..9aa2e52ad9 100755 --- a/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/EwfVerifyIngestModule.java +++ b/ewfVerify/src/org/sleuthkit/autopsy/ewfverify/EwfVerifyIngestModule.java @@ -38,6 +38,8 @@ import org.sleuthkit.datamodel.Image; import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; +import org.openide.util.NbBundle; + /** * Data Source Ingest Module that generates a hash of an E01 image file and @@ -46,9 +48,11 @@ import org.sleuthkit.datamodel.TskData; * @author jwallace */ public class EwfVerifyIngestModule extends IngestModuleDataSource { - private static final String MODULE_NAME = "EWF Verify"; + private static final String MODULE_NAME = NbBundle.getMessage(EwfVerifyIngestModule.class, + "EwfVerifyIngestModule.moduleName.text"); private static final String MODULE_VERSION = Version.getVersion(); - private static final String MODULE_DESCRIPTION = "Validates the integrity of E01 files."; + private static final String MODULE_DESCRIPTION = NbBundle.getMessage(EwfVerifyIngestModule.class, + "EwfVerifyIngestModule.moduleDesc.text"); private static final long DEFAULT_CHUNK_SIZE = 32 * 1024; private IngestServices services; private volatile boolean running = false; @@ -74,8 +78,10 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { } catch (TskCoreException ex) { img = null; logger.log(Level.SEVERE, "Failed to get image from Content.", ex); - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, - "Error processing " + imgName)); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, + NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.errProcImg", + imgName))); return; } @@ -83,8 +89,10 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { if (img.getType() != TskData.TSK_IMG_TYPE_ENUM.TSK_IMG_TYPE_EWF_EWF) { img = null; logger.log(Level.INFO, "Skipping non-ewf image " + imgName); - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, - "Skipping non-ewf image " + imgName)); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.skipNonEwf", + imgName))); skipped = true; return; } @@ -97,20 +105,26 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { } else { - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, - "Image " + imgName + " does not have stored hash.")); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, + NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.noStoredHash", + imgName))); return; } logger.log(Level.INFO, "Starting ewf verification of " + img.getName()); - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, - "Starting " + imgName)); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.startingImg", + imgName))); long size = img.getSize(); if (size == 0) { logger.log(Level.WARNING, "Size of image " + imgName + " was 0 when queried."); - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, - "Error getting size of " + imgName + ". Image will not be processed.")); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, + NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.errGetSizeOfImg", + imgName))); } // Libewf uses a sector size of 64 times the sector size, which is the @@ -136,7 +150,8 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { try { read = img.read(data, i * chunkSize, chunkSize); } catch (TskCoreException ex) { - String msg = "Error reading " + imgName + " at chunk " + i; + String msg = NbBundle.getMessage(this.getClass(), + "EwfVerifyIngestModule.process.errReadImgAtChunk", imgName, i); services.postMessage(IngestMessage.createMessage(++messageId, MessageType.ERROR, this, msg)); logger.log(Level.SEVERE, msg, ex); return; @@ -173,7 +188,8 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { messageDigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException ex) { logger.log(Level.WARNING, "Error getting md5 algorithm", ex); - throw new RuntimeException("Failed to get MD5 algorithm"); + throw new RuntimeException( + NbBundle.getMessage(this.getClass(), "EwfVerifyIngestModule.init.exception.failGetMd5")); } } else { messageDigest.reset(); @@ -184,11 +200,13 @@ public class EwfVerifyIngestModule extends IngestModuleDataSource { public void complete() { logger.info("complete() " + this.getName()); if (skipped == false) { - String msg = verified ? " verified" : " not verified"; - String extra = "

    EWF Verification Results for " + imgName + "

    "; - extra += "
  • Result:" + msg + "
  • "; - extra += "
  • Calculated hash: " + calculatedHash + "
  • "; - extra += "
  • Stored hash: " + storedHash + "
  • "; + String msg = verified ? NbBundle.getMessage(this.getClass(), "EwfVerifyIngestModule.complete.verified") : NbBundle + .getMessage(this.getClass(), "EwfVerifyIngestModule.complete.notVerified"); + String extra = NbBundle + .getMessage(this.getClass(), "EwfVerifyIngestModule.complete.verifResultsHead", imgName); + extra += NbBundle.getMessage(this.getClass(), "EwfVerifyIngestModule.complete.resultLi", msg); + extra += NbBundle.getMessage(this.getClass(), "EwfVerifyIngestModule.complete.calcHashLi", calculatedHash); + extra += NbBundle.getMessage(this.getClass(), "EwfVerifyIngestModule.complete.storedHashLi", storedHash); services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, imgName + msg, extra)); logger.info(imgName + msg); } From c6301b13273fcf4e0d6720ddbf22ec5a73a329fc Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 17:16:53 -0500 Subject: [PATCH 52/89] Pulled strings into Bundle. Added _ja. Added NbBundle dependency to project.xml --- ExifParser/nbproject/project.xml | 8 ++++++++ .../org/sleuthkit/autopsy/exifparser/Bundle.properties | 3 +++ .../sleuthkit/autopsy/exifparser/Bundle_ja.properties | 0 .../autopsy/exifparser/ExifParserFileIngestModule.java | 9 ++++++--- 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle_ja.properties diff --git a/ExifParser/nbproject/project.xml b/ExifParser/nbproject/project.xml index da91e0b898..be94ef8466 100644 --- a/ExifParser/nbproject/project.xml +++ b/ExifParser/nbproject/project.xml @@ -6,6 +6,14 @@ org.sleuthkit.autopsy.exifparser + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle.properties b/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle.properties index 83fe8aeb9d..663a0631ec 100644 --- a/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle.properties +++ b/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle.properties @@ -4,3 +4,6 @@ OpenIDE-Module-Long-Description=\ The ingest module analyzes image files, extracts Exif information and posts the Exif data as results. OpenIDE-Module-Name=ExifParser OpenIDE-Module-Short-Description=Exif metadata ingest module +ExifParserFileIngestModule.moduleName.text=Exif Parser +ExifParserFileIngestModule.getName.text=Exif Image Parser +ExifParserFileIngestModule.getDesc.text=Ingests JPEG files and retrieves their EXIF metadata. diff --git a/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle_ja.properties b/ExifParser/src/org/sleuthkit/autopsy/exifparser/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ExifParser/src/org/sleuthkit/autopsy/exifparser/ExifParserFileIngestModule.java b/ExifParser/src/org/sleuthkit/autopsy/exifparser/ExifParserFileIngestModule.java index 5d21b71e3b..8f5ddccf5f 100644 --- a/ExifParser/src/org/sleuthkit/autopsy/exifparser/ExifParserFileIngestModule.java +++ b/ExifParser/src/org/sleuthkit/autopsy/exifparser/ExifParserFileIngestModule.java @@ -33,6 +33,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ImageUtils; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Version; @@ -58,7 +60,8 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; public final class ExifParserFileIngestModule extends IngestModuleAbstractFile { private IngestServices services; - final public static String MODULE_NAME = "Exif Parser"; + final public static String MODULE_NAME = NbBundle.getMessage(ExifParserFileIngestModule.class, + "ExifParserFileIngestModule.moduleName.text"); final public static String MODULE_VERSION = Version.getVersion(); private static final Logger logger = Logger.getLogger(ExifParserFileIngestModule.class.getName()); private static ExifParserFileIngestModule defaultInstance = null; @@ -217,12 +220,12 @@ public final class ExifParserFileIngestModule extends IngestModuleAbstractFile { @Override public String getName() { - return "Exif Image Parser"; + return NbBundle.getMessage(this.getClass(), "ExifParserFileIngestModule.getName.text"); } @Override public String getDescription() { - return "Ingests JPEG files and retrieves their EXIF metadata."; + return NbBundle.getMessage(this.getClass(), "ExifParserFileIngestModule.getDesc.text"); } @Override From 11d8a35e2edf59f4041dd9c3fcc817af24c1172e Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 17:53:38 -0500 Subject: [PATCH 53/89] Pulled strings into Bundle. Added _ja. --- .../AddFileExtensionAction.java | 7 +- .../autopsy/fileextmismatch/Bundle.properties | 35 ++++++++++ .../fileextmismatch/Bundle_ja.properties | 0 .../FileExtMismatchConfigPanel.java | 69 +++++++++++++------ ...ExtMismatchContextMenuActionsProvider.java | 5 +- .../FileExtMismatchIngestModule.java | 20 ++++-- ...FileExtMismatchOptionsPanelController.java | 14 +++- 7 files changed, 119 insertions(+), 31 deletions(-) create mode 100644 FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle_ja.properties diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/AddFileExtensionAction.java b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/AddFileExtensionAction.java index a2a9f12747..728d8993cb 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/AddFileExtensionAction.java +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/AddFileExtensionAction.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.fileextmismatch; +import org.openide.util.NbBundle; + import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Arrays; @@ -52,7 +54,10 @@ class AddFileExtensionAction extends AbstractAction { if (!FileExtMismatchXML.getDefault().save(editableMap)) { //error - JOptionPane.showMessageDialog(null, "Writing XML configuration file failed.", "Add Mismatch Extension Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(this.getClass(), "AddFileExtensionAction.msgDlg.msg"), + NbBundle.getMessage(this.getClass(), "AddFileExtensionAction.msgDlg.title"), + JOptionPane.ERROR_MESSAGE); } // else //in the future we might want to update the statusbar to give feedback to the user } diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle.properties b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle.properties index f6f7b42ae8..2843842db0 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle.properties +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle.properties @@ -1,4 +1,6 @@ OpenIDE-Module-Name=FileExtMismatch +OptionsCategory_Name_FileExtMismatchOptions=File Ext Mismatch +OptionsCategory_FileExtMismatch=File Ext Mismatch FileExtMismatchConfigPanel.extHeaderLabel.text=Allowed Extensions: FileExtMismatchConfigPanel.userExtTextField.text= FileExtMismatchConfigPanel.addExtButton.text=Add Extension @@ -15,3 +17,36 @@ FileExtMismatchConfigPanel.extRemoveErrLabel.text=\ FileExtMismatchConfigPanel.saveMsgLabel.text=\ FileExtMismatchSimpleConfigPanel.skipNoExtCheckBox.text=Skip files without extensions FileExtMismatchSimpleConfigPanel.skipTextPlain.text=Skip text files +AddFileExtensionAction.msgDlg.msg=Writing XML configuration file failed. +AddFileExtensionAction.msgDlg.title=Add Mismatch Extension Error +AddFileExtensionAction.extHeaderLbl.text=Allowed Extensions for +FileExtMismatchConfigPanel.name.text=Advanced File Extension Mismatch Configuration +FileExtMismatchConfigPanel.addExtButton.errLabel.empty=Extension text is empty\! +FileExtMismatchConfigPanel.addExtButton.errLabel.noMimeType=No MIME type selected\! +FileExtMismatchConfigPanel.addExtButton.errLabel.extExists=Extension already exists\! +FileExtMismatchConfigPanel.addExtButton.errLabel.extAdded=Extension {0} added. +FileExtMismatchConfigPanel.addTypeButton.empty=MIME type text is empty\! +FileExtMismatchConfigPanel.addTypeButton.mimeTypeNotSupported=MIME type not supported\! +FileExtMismatchConfigPanel.addTypeButton.mimeTypeExists=MIME type already exists\! +FileExtMismatchConfigPanel.addTypeButton.mimeTypeNotDetectable=MIME type is not detectable by this module. +FileExtMismatchConfigPanel.addTypeButton.mimeTypeAdded=MIME type {0} added. +FileExtMismatchConfigPanel.removeTypeButton.noneSelected=No MIME type selected\! +FileExtMismatchConfigPanel.remoteTypeButton.deleted=MIME type {0} deleted. +FileExtMismatchConfigPanel.removeExtButton.noneSelected=No extension selected\! +FileExtMismatchConfigPanel.removeExtButton.noMimeTypeSelected=No MIME type selected\! +FileExtMismatchConfigPanel.removeExtButton.deleted=Extension {0} deleted. +FileExtMismatchConfigPanel.store.msg=Saved. +FileExtMismatchConfigPanel.store.msgDlg.msg=Writing XML configuration file failed. +FileExtMismatchConfigPanel.save.msgDlg.title=Save Error +FileExtMismatchConfigPanel.ok.confDlg.msg=Would you like to save configuration changes? +FileExtMismatchConfigPanel.confDlg.title=Unsaved Changes +FileExtMismatchConfigPanel.mimeTableModel.colName=MIME Type +FileExtMismatchConfigPanel.extTableModel.colName=Extension +FileExtMismatchContextMenuActionsProvider.menuItemStr=Add extension {0} as matching MIME type {1} +FileExtMismatchIngestModule.moduleName=Extension Mismatch Detector +FileExtMismatchIngestModule.moduleDesc.text=Flags files that have a non-standard extension based on their file type. +FileExtMismatchIngestModule.complete.totalProcTime=Total Processing Time +FileExtMismatchIngestModule.complete.totalFiles=Total Files Processed +FileExtMismatchIngestModule.complete.svcMsg.text=File Extension Mismatch Results +FileExtMismatchOptionsPanelController.moduleErr=Module Error +FileExtMismatchOptionsPanelController.moduleErr.msg=A module caused an error listening to FileExtMismatchOptionsPanelController updates. See log to determine which module. Some data could be incomplete. diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle_ja.properties b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchConfigPanel.java b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchConfigPanel.java index 4a027b6ba2..77fb8f1bb6 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchConfigPanel.java +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchConfigPanel.java @@ -30,6 +30,8 @@ import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponents.OptionsPanel; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.filetypeid.FileTypeIdIngestModule; @@ -44,7 +46,8 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt private ArrayList currentExtensions = null; private MimeTableModel mimeTableModel; private ExtTableModel extTableModel; - private final String EXT_HEADER_LABEL = "Allowed Extensions for "; + private final String EXT_HEADER_LABEL = NbBundle.getMessage(FileExtMismatchConfigPanel.class, + "AddFileExtensionAction.extHeaderLbl.text"); private String selectedMime = ""; private String selectedExt = ""; ListSelectionModel lsm = null; @@ -58,7 +61,7 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt } private void customizeComponents() { - setName("Advanced File Extension Mismatch Configuration"); + setName(NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.name.text")); // Handle selections on the left table lsm = mimeTable.getSelectionModel(); @@ -347,19 +350,22 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt String newExt = userExtTextField.getText(); if (newExt.isEmpty()) { extErrorLabel.setForeground(Color.red); - extErrorLabel.setText("Extension text is empty!"); + extErrorLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addExtButton.errLabel.empty")); return; } if (selectedMime.isEmpty()) { extErrorLabel.setForeground(Color.red); - extErrorLabel.setText("No MIME type selected!"); + extErrorLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addExtButton.errLabel.noMimeType")); return; } if (currentExtensions.contains(newExt)) { extErrorLabel.setForeground(Color.red); - extErrorLabel.setText("Extension already exists!"); + extErrorLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addExtButton.errLabel.extExists")); return; } @@ -375,7 +381,9 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt // user feedback for successful add extErrorLabel.setForeground(Color.blue); - extErrorLabel.setText("Extension " + newExt + " added."); + extErrorLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addExtButton.errLabel.extAdded", + newExt)); extRemoveErrLabel.setText(" "); userExtTextField.setText(""); setIsModified(); @@ -389,23 +397,26 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt String newMime = userTypeTextField.getText(); if (newMime.isEmpty()) { mimeErrLabel.setForeground(Color.red); - mimeErrLabel.setText("MIME type text is empty!"); + mimeErrLabel.setText(NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addTypeButton.empty")); return; } if (newMime.equals( "application/octet-stream")){ mimeErrLabel.setForeground(Color.red); - mimeErrLabel.setText("MIME type not supported!"); + mimeErrLabel.setText(NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.addTypeButton.mimeTypeNotSupported")); return; } if (mimeList.contains(newMime)) { mimeErrLabel.setForeground(Color.red); - mimeErrLabel.setText("MIME type already exists!"); + mimeErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addTypeButton.mimeTypeExists")); return; } if (!FileTypeIdIngestModule.isMimeTypeDetectable(newMime)) { mimeErrLabel.setForeground(Color.red); - mimeErrLabel.setText("MIME type is not detectable by this module."); + mimeErrLabel.setText(NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.addTypeButton.mimeTypeNotDetectable")); return; } @@ -418,7 +429,8 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt // user feedback for successful add //selectByMimeString(newMime); mimeErrLabel.setForeground(Color.blue); - mimeErrLabel.setText("MIME type " + newMime + " added."); + mimeErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.addTypeButton.mimeTypeAdded", newMime)); mimeRemoveErrLabel.setText(" "); userTypeTextField.setText(""); setIsModified(); @@ -435,7 +447,8 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt private void removeTypeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeTypeButtonActionPerformed if (selectedMime.isEmpty()) { mimeRemoveErrLabel.setForeground(Color.red); - mimeRemoveErrLabel.setText("No MIME type selected!"); + mimeRemoveErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.removeTypeButton.noneSelected")); return; } @@ -448,20 +461,23 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt // user feedback for successful add mimeRemoveErrLabel.setForeground(Color.blue); - mimeRemoveErrLabel.setText("MIME type " + deadMime + " deleted."); + mimeRemoveErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.remoteTypeButton.deleted", deadMime)); setIsModified(); }//GEN-LAST:event_removeTypeButtonActionPerformed private void removeExtButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeExtButtonActionPerformed if (selectedExt.isEmpty()) { extRemoveErrLabel.setForeground(Color.red); - extRemoveErrLabel.setText("No extension selected!"); + extRemoveErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.removeExtButton.noneSelected")); return; } if (selectedMime.isEmpty()) { extErrorLabel.setForeground(Color.red); - extErrorLabel.setText("No MIME type selected!"); + extErrorLabel.setText(NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.removeExtButton.noMimeTypeSelected")); return; } @@ -478,7 +494,8 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt // user feedback for successful add extRemoveErrLabel.setForeground(Color.blue); - extRemoveErrLabel.setText("Extension " + deadExt + " deleted."); + extRemoveErrLabel.setText( + NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.removeExtButton.deleted", deadExt)); setIsModified(); }//GEN-LAST:event_removeExtButtonActionPerformed @@ -518,11 +535,16 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt extRemoveErrLabel.setText(" "); extErrorLabel.setText(" "); - saveMsgLabel.setText("Saved."); + saveMsgLabel.setText(NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.store.msg")); saveButton.setEnabled(false); } else { //error - JOptionPane.showMessageDialog(this, "Writing XML configuration file failed.", "Save Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(this, + NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.store.msgDlg.msg"), + NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.save.msgDlg.title"), + JOptionPane.ERROR_MESSAGE); } } @@ -539,7 +561,12 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt public void ok() { // if data is unsaved if (saveButton.isEnabled()) { - int choice = JOptionPane.showConfirmDialog(this, "Would you like to save configuration changes?", "Unsaved Changes", JOptionPane.YES_NO_OPTION); + int choice = JOptionPane.showConfirmDialog(this, + NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.ok.confDlg.msg"), + NbBundle.getMessage(this.getClass(), + "FileExtMismatchConfigPanel.confDlg.title"), + JOptionPane.YES_NO_OPTION); if (choice == JOptionPane.YES_OPTION) { store(); } @@ -594,7 +621,7 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt switch (column) { case 0: - colName = "MIME Type"; + colName = NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.mimeTableModel.colName"); break; default: ; @@ -658,7 +685,7 @@ final class FileExtMismatchConfigPanel extends javax.swing.JPanel implements Opt switch (column) { case 0: - colName = "Extension"; + colName = NbBundle.getMessage(this.getClass(), "FileExtMismatchConfigPanel.extTableModel.colName"); break; default: ; diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java index 2d6b871321..a6e422472f 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java @@ -29,6 +29,7 @@ import java.util.logging.Level; import javax.swing.Action; import org.openide.util.Exceptions; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.corecomponentinterfaces.ContextMenuActionsProvider; @@ -104,7 +105,9 @@ public class FileExtMismatchContextMenuActionsProvider implements ContextMenuAct if (mimeTypeStr.length() > 40) { mimeTypeStr = mimeTypeStr.substring(0, 39); } - String menuItemStr = "Add extension " + extStr + " as matching MIME type " + mimeTypeStr; + String menuItemStr = NbBundle.getMessage(this.getClass(), + "FileExtMismatchContextMenuActionsProvider.menuItemStr", + extStr, mimeTypeStr); actions.add(new AddFileExtensionAction(menuItemStr, extStr, mimeTypeStr)); // Check if already added diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchIngestModule.java b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchIngestModule.java index ce8e530d29..95492040d4 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchIngestModule.java +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchIngestModule.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.logging.Level; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Version; import org.sleuthkit.autopsy.ingest.IngestMessage; @@ -50,8 +51,10 @@ import org.sleuthkit.datamodel.TskException; public class FileExtMismatchIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile { private static FileExtMismatchIngestModule defaultInstance = null; private static final Logger logger = Logger.getLogger(FileExtMismatchIngestModule.class.getName()); - public static final String MODULE_NAME = "Extension Mismatch Detector"; - public static final String MODULE_DESCRIPTION = "Flags files that have a non-standard extension based on their file type."; + public static final String MODULE_NAME = NbBundle.getMessage(FileExtMismatchIngestModule.class, + "FileExtMismatchIngestModule.moduleName"); + public static final String MODULE_DESCRIPTION = NbBundle.getMessage(FileExtMismatchIngestModule.class, + "FileExtMismatchIngestModule.moduleDesc.text"); public static final String MODULE_VERSION = Version.getVersion(); private static long processTime = 0; @@ -188,11 +191,18 @@ public class FileExtMismatchIngestModule extends org.sleuthkit.autopsy.ingest.In detailsSb.append("
    "+MODULE_DESCRIPTION+"
    Total Processing Time").append(processTime).append("
    Total Files Processed").append(numFiles).append("
    ").append( + NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalProcTime")) + .append("").append(processTime).append("
    ").append( + NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalFiles")) + .append("").append(numFiles).append("
    "); - services.postMessage(IngestMessage.createMessage(++messageId, IngestMessage.MessageType.INFO, this, "File Extension Mismatch Results", detailsSb.toString())); + services.postMessage(IngestMessage.createMessage(++messageId, IngestMessage.MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "FileExtMismatchIngestModule.complete.svcMsg.text"), + detailsSb.toString())); } @Override diff --git a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchOptionsPanelController.java b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchOptionsPanelController.java index 453d6a89eb..670d6040e5 100644 --- a/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchOptionsPanelController.java +++ b/FileExtMismatch/src/org/sleuthkit/autopsy/fileextmismatch/FileExtMismatchOptionsPanelController.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/fileextmismatch/options-icon.png", position = 4, keywords = "#OptionsCategory_FileExtMismatch", keywordsCategory = "KeywordSearchOptions") -@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_FileExtMismatchOptions=File Ext Mismatch", "OptionsCategory_FileExtMismatch=File Ext Mismatch"}) +// migrated to Bundle +//@org.openide.util.NbBundle.Messages({"OptionsCategory_Name_FileExtMismatchOptions=File Ext Mismatch", "OptionsCategory_FileExtMismatch=File Ext Mismatch"}) public final class FileExtMismatchOptionsPanelController extends OptionsPanelController { private FileExtMismatchConfigPanel panel; @@ -91,7 +93,10 @@ public final class FileExtMismatchOptionsPanelController extends OptionsPanelCon } catch (Exception e) { logger.log(Level.SEVERE, "FileExtMismatchOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to FileExtMismatchOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "FileExtMismatchOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "FileExtMismatchOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } @@ -100,7 +105,10 @@ public final class FileExtMismatchOptionsPanelController extends OptionsPanelCon } catch (Exception e) { logger.log(Level.SEVERE, "FileExtMismatchOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to FileExtMismatchOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "FileExtMismatchOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "FileExtMismatchOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } } From b317f3ea3798e948ea08fd934b4b9cd9ca4b5868 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 28 Feb 2014 18:07:06 -0500 Subject: [PATCH 54/89] Pulled strings into Bundle. Added _ja. --- .../autopsy/filetypeid/Bundle.properties | 5 +++++ .../autopsy/filetypeid/Bundle_ja.properties | 0 .../filetypeid/FileTypeIdIngestModule.java | 21 ++++++++++++++----- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle_ja.properties diff --git a/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle.properties b/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle.properties index 1e7e776d5e..9aa6bb3854 100644 --- a/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle.properties +++ b/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle.properties @@ -1,3 +1,8 @@ OpenIDE-Module-Name=FileTypeId FileTypeIdSimpleConfigPanel.skipKnownCheckBox.toolTipText=Depending on how many files have known hashes, checking this box will improve the speed of file type identification. FileTypeIdSimpleConfigPanel.skipKnownCheckBox.text=Skip Known Files (NSRL) +FileTypeIdIngestModule.moduleName.text=File Type Identification +FileTypeIdIngestModule.moduleDesc.text=Matches file types based on binary signatures. +FileTypeIdIngestModule.complete.totalProcTime=Total Processing Time +FileTypeIdIngestModule.complete.totalFiles=Total Files Processed +FileTypeIdIngestModule.complete.srvMsg.text=File Type Id Results \ No newline at end of file diff --git a/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle_ja.properties b/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/FileTypeIdIngestModule.java b/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/FileTypeIdIngestModule.java index a32a7ba109..8be05e8bfe 100644 --- a/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/FileTypeIdIngestModule.java +++ b/FileTypeId/src/org/sleuthkit/autopsy/filetypeid/FileTypeIdIngestModule.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.filetypeid; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Version; import org.sleuthkit.autopsy.ingest.IngestMessage; @@ -41,8 +43,10 @@ import org.sleuthkit.datamodel.TskException; */ public class FileTypeIdIngestModule extends org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile { private static FileTypeIdIngestModule defaultInstance = null; - public final static String MODULE_NAME = "File Type Identification"; - public final static String MODULE_DESCRIPTION = "Matches file types based on binary signatures."; + public final static String MODULE_NAME = NbBundle.getMessage(FileTypeIdIngestModule.class, + "FileTypeIdIngestModule.moduleName.text"); + public final static String MODULE_DESCRIPTION = NbBundle.getMessage(FileTypeIdIngestModule.class, + "FileTypeIdIngestModule.moduleDesc.text"); public final static String MODULE_VERSION = Version.getVersion(); private static final Logger logger = Logger.getLogger(FileTypeIdIngestModule.class.getName()); private static long matchTime = 0; @@ -132,11 +136,18 @@ import org.sleuthkit.datamodel.TskException; detailsSb.append(""+MODULE_DESCRIPTION+""); - detailsSb.append("Total Processing Time").append(matchTime).append("\n"); - detailsSb.append("Total Files Processed").append(numFiles).append("\n"); + detailsSb.append("") + .append(NbBundle.getMessage(this.getClass(), "FileTypeIdIngestModule.complete.totalProcTime")) + .append("").append(matchTime).append("\n"); + detailsSb.append("") + .append(NbBundle.getMessage(this.getClass(), "FileTypeIdIngestModule.complete.totalFiles")) + .append("").append(numFiles).append("\n"); detailsSb.append(""); - services.postMessage(IngestMessage.createMessage(++messageId, IngestMessage.MessageType.INFO, this, "File Type Id Results", detailsSb.toString())); + services.postMessage(IngestMessage.createMessage(++messageId, IngestMessage.MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "FileTypeIdIngestModule.complete.srvMsg.text"), + detailsSb.toString())); } @Override From cacfbcdd84a7f3dd4dd534d2db59e31e51b5caf9 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Sun, 2 Mar 2014 11:56:14 -0800 Subject: [PATCH 55/89] Worked on translation. Still few lines to complete. --- .../autopsy/datamodel/Bundle_ja.properties | 81 ++++++++++++++++--- 1 file changed, 69 insertions(+), 12 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index 748dfe25a6..99a1d0209e 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -1,4 +1,4 @@ -OpenIDE-Module-Name=\u30C7\u30FC\u30BF\u30E2\u30C7\u30EB\uFF1A +OpenIDE-Module-Name=\u30C7\u30FC\u30BF\u30E2\u30C7\u30EB AbstractAbstractFileNode.nameColLbl=\u540D\u79F0 AbstractAbstractFileNode.locationColLbl=\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3 AbstractAbstractFileNode.modifiedTimeColLbl=\u4FEE\u6B63\u65E5\u6642 @@ -10,11 +10,10 @@ AbstractAbstractFileNode.modeColLbl=\u30E2\u30FC\u30C9 AbstractAbstractFileNode.useridColLbl=\u30E6\u30FC\u30B6ID AbstractAbstractFileNode.groupidColLbl=\u30B0\u30EB\u30FC\u30D7ID AbstractAbstractFileNode.knownColLbl=\u65E2\u77E5 -#todo checking the context -AbstractAbstractFileNode.inHashsetsColLbl=HashSet\u5185 +AbstractAbstractFileNode.inHashsetsColLbl=HashSet\u306B\u5B58\u5728 AbstractAbstractFileNode.md5HashColLbl=MD5\u30CF\u30C3\u30B7\u30E5 AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FSleuthkitItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305FDisplayableItem\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=\u6307\u5B9A\u3055\u308C\u305F\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306E\u30CE\u30FC\u30C9\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 AbstractContentNode.exception.cannotChangeSysName.msg=\u30B7\u30B9\u30C6\u30E0\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002 AbstractFsContentNode.noDesc.text=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 ArtifactStringContent.getStr.srcFilePath.text=\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 @@ -69,8 +68,8 @@ DeletedContent.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\ DeletedContent.createSheet.filterType.name=\u30D5\u30A1\u30A4\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 DeletedContent.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 DeletedContent.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 -DeletedContent.createKeys.maxObjects.msg=\u8868\u793A\u3067\u304D\u308B\u3088\u308A\u3082\u591A\u304F\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u6700\u521D\u306E {0}\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 -DeletedContent.createNodeForKey.typeNotSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +DeletedContent.createKeys.maxObjects.msg=\u8868\u793A\u53EF\u80FD\u306A\u6570\u3088\u308A\u3082\u591A\u304F\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u6700\u521D\u306E{0}\u306E\u524A\u9664\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +DeletedContent.createNodeForKey.typeNotSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} DirectoryNode.parFolder.text=[\u30DA\u30A2\u30EC\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC] DirectoryNode.curFolder.text=[\u73FE\u5728\u306E\u30D5\u30A9\u30EB\u30C0\u30FC] DirectoryNode.getActions.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A @@ -97,8 +96,8 @@ FileSize.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 FileSize.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 FileSize.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 FileSize.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 -FileSize.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} -FileTypeChildren.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +FileSize.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} +FileTypeChildren.exception.notSupported.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u53EF\u80FD\u306A\u30A2\u30A4\u30C6\u30E0\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF1A{0} FileTypeExtensionFilters.tskImgFilter.text=\u753B\u50CF FileTypeExtensionFilters.tskVideoFilter.text=\u30D3\u30C7\u30AA FileTypeExtensionFilters.tskAudioFilter.text=\u30AA\u30FC\u30C7\u30A3\u30AA @@ -124,12 +123,11 @@ HashsetHits.createSheet.name.name=\u540D\u79F0 HashsetHits.createSheet.name.displayName=\u540D\u79F0 HashsetHits.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 ImageNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A -ImageNode.getActions.openFileSearchByAttr.text=\u5C5E\u6027\u3092\u3082\u3068\u306B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F +ImageNode.getActions.openFileSearchByAttr.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F ImageNode.createSheet.name.name=\u540D\u79F0 ImageNode.createSheet.name.displayName=\u540D\u79F0 ImageNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 -#todo think of better translation -Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u306F +Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u306F\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F\u30CC\u30EB\u3067\u3057\u305F\uFF01 Installer.tskLibErr.msg=Sleuth Kit JNI\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\ \ \u8A73\u7D30\uFF1A {0} @@ -185,4 +183,63 @@ RecentFiles.aut2dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF12 RecentFiles.aut3dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF13 RecentFiles.aut4dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF14 RecentFiles.aut5dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF15 -RecentFiles.aut6dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF16 \ No newline at end of file +RecentFiles.aut6dayFilter.displayName.text=\u6700\u7D42\u65E5 - \uFF16 +RecentFilesFilterChildren.exception.defaultVisit.msg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u8868\u793A\u3067\u304D\u308B\u30A2\u30A4\u30C6\u30E0 +Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI\u30C6\u30B9\u30C8\u30B3\u30FC\u30EB\u3067\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u30B9\u30C8\u30EA\u30F3\u30B0\u306F""\u3067\u3057\u305F\uFF01 +RecentFilesFilterNode.createSheet.filterType.name=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +RecentFilesFilterNode.createSheet.filterType.displayName=\u30D5\u30A3\u30EB\u30BF\u30FC\u30BF\u30A4\u30D7 +RecentFilesFilterNode.createSheet.filterType.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +RecentFilesNode.createSheet.name.name=\u540D\u79F0 +RecentFilesNode.createSheet.name.displayName=\u540D\u79F0 +RecentFilesNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +RecentFilesNode.name.text=\u6700\u8FD1\u4F7F\u7528\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB +ResultsNode.name.text=\u7D50\u679C +ResultsNode.createSheet.name.name=\u540D\u79F0 +ResultsNode.createSheet.name.displayName=\u540D\u79F0 +ResultsNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +TagNameNode.namePlusTags.text={0}\u30BF\u30B0 +TagNameNode.contentTagTypeNodeKey.text=\u30B3\u30F3\u30C6\u30F3\u30C4\u30BF\u30B0 +TagNameNode.bbArtTagTypeNodeKey.text=\u7D50\u679C\u30BF\u30B0 +TagNameNode.bookmark.text=\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF +TagNameNode.createSheet.name.name=\u540D\u79F0 +TagNameNode.createSheet.name.displayName=\u540D\u79F0 +TagsNode.displayName.text=\u30BF\u30B0 +TagsNode.createSheet.name.name=\u540D\u79F0 +AbstractAbstractFileNode.flagsDirColLbl=\u30D5\u30E9\u30B0\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF09 +AbstractAbstractFileNode.flagsMetaColLbl=\u30D5\u30E9\u30B0\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\uFF09 +AbstractAbstractFileNode.metaAddrColLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u30A2\u30C9\u30EC\u30B9 +AbstractAbstractFileNode.attrAddrColLbl=\u5C5E\u6027\u30A2\u30C9\u30EC\u30B9 +AbstractAbstractFileNode.typeDirColLbl=\u30BF\u30A4\u30D7\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF09 +AbstractAbstractFileNode.typeMetaColLbl=\u30BF\u30A4\u30D7\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\uFF09 +ArtifactTypeNode.createSheet.childCnt.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 +TagsNode.createSheet.name.displayName=\u540D\u79F0 +ViewsNode.name.text=\u30D3\u30E5\u30FC +ViewsNode.createSheet.name.name=\u540D\u79F0 +ViewsNode.createSheet.name.displayName=\u540D\u79F0 +ViewsNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VirtualDirectoryNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +VirtualDirectoryNode.createSheet.name.name=\u540D\u79F0 +VirtualDirectoryNode.createSheet.name.displayName=\u540D\u79F0 +VirtualDirectoryNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VirtualDirectoryNode.createSheet.noDesc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.getActions.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +VolumeNode.createSheet.name.name=\u540D\u79F0 +VolumeNode.createSheet.name.displayName=\u540D\u79F0 +VolumeNode.createSheet.name.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.createSheet.id.name=ID +VolumeNode.createSheet.id.displayName=ID +VolumeNode.createSheet.id.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.createSheet.startSector.name=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC +VolumeNode.createSheet.startSector.displayName=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC +VolumeNode.createSheet.startSector.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.createSheet.lenSectors.name=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055 +VolumeNode.createSheet.lenSectors.displayName=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055 +VolumeNode.createSheet.lenSectors.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.createSheet.description.name=\u8AAC\u660E +VolumeNode.createSheet.description.displayName=\u8AAC\u660E +VolumeNode.createSheet.description.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +VolumeNode.createSheet.flags.name=\u30D5\u30E9\u30B0 +VolumeNode.createSheet.flags.displayName=\u30D5\u30E9\u30B0 +VolumeNode.createSheet.flags.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 +ArtifactTypeNode.createSheet.artType.name=\u6210\u679C\u7269\u30BF\u30A4\u30D7 +ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7 \ No newline at end of file From 7be84916b06ab58ed2538428d6a2cc0d35c06357 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 13:51:27 -0500 Subject: [PATCH 56/89] Pulled strings into Bundle. Created _ja. Added org.openide.utils to project.xml for NbBundle dep. --- RecentActivity/nbproject/project.xml | 8 + .../autopsy/recentactivity/Bundle.properties | 142 ++++++++++-- .../recentactivity/Bundle_ja.properties | 0 .../autopsy/recentactivity/Chrome.java | 178 ++++++++++----- .../autopsy/recentactivity/Extract.java | 4 +- .../autopsy/recentactivity/ExtractIE.java | 140 ++++++++---- .../recentactivity/ExtractRegistry.java | 94 ++++++-- .../autopsy/recentactivity/Firefox.java | 206 +++++++++++++----- .../recentactivity/RAImageIngestModule.java | 51 +++-- .../recentactivity/RecentDocumentsByLnk.java | 31 ++- .../SearchEngineURLQueryAnalyzer.java | 19 +- 11 files changed, 654 insertions(+), 219 deletions(-) create mode 100644 RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties diff --git a/RecentActivity/nbproject/project.xml b/RecentActivity/nbproject/project.xml index 78526a084c..31f21ab1ae 100644 --- a/RecentActivity/nbproject/project.xml +++ b/RecentActivity/nbproject/project.xml @@ -30,6 +30,14 @@ 7.21.1 + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties index 5efcbea3df..d091834b5e 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties @@ -6,26 +6,122 @@ OpenIDE-Module-Long-Description=\ The plugin is also fully functional when deployed on Windows version of Autopsy. OpenIDE-Module-Name=RecentActivity OpenIDE-Module-Short-Description=Recent Activity finder ingest module -RecentActivityTopComponent.makeNodesButton.text=Get Recent Activity -RecentActivityTopComponent.jLabel1.text=Filter Options -RecentActivityTopComponent.jLabel2.text=Browser Activity -RecentActivityTopComponent.jLabel3.text=jLabel3 -RecentActivityTopComponent.jLabel4.text=Registry Information -RecentActivityTopComponent.jLabel5.text=Date/Time -RecentActivityTopComponent.jLabel6.text=Recent Activity Keyword Filter -RecentActivityTopComponent.jTextField1.text= -RecentActivityTopComponent.jLabel5.toolTipText= -RecentActivityTopComponent.jLabel6.toolTipText= -RecentActivityTopComponent.jLabel7.text=to -RecentActivityTopComponent.dateFromTextField.text= -RecentActivityTopComponent.dateToTextField.text= -RecentActivityTopComponent.dateToButtonCalendar.text= -RecentActivityTopComponent.dateFromButtonCalendar.text= -RecentActivityTopComponent.jTextField1.toolTipText=Enter a word or words you'd like to pattern match against -RecentActivityTopComponent.jCheckBox1.AccessibleContext.accessibleName=IEhistory -RecentActivityTopComponent.jCheckBox1.label= -RecentActivityTopComponent.IEhistory.text= -RecentActivityTopComponent.FFhistory.text=jCheckBox3 -RecentActivityTopComponent.CHhistory.text=jCheckBox2 -RecentActivityTopComponent.Cookies.text=jCheckBox4 -RecentActivityTopComponent.Bookmarks.text=jCheckBox5 +#RecentActivityTopComponent.makeNodesButton.text=Get Recent Activity +#RecentActivityTopComponent.jLabel1.text=Filter Options +#RecentActivityTopComponent.jLabel2.text=Browser Activity +#RecentActivityTopComponent.jLabel3.text=jLabel3 +#RecentActivityTopComponent.jLabel4.text=Registry Information +#RecentActivityTopComponent.jLabel5.text=Date/Time +#RecentActivityTopComponent.jLabel6.text=Recent Activity Keyword Filter +#RecentActivityTopComponent.jTextField1.text= +#RecentActivityTopComponent.jLabel5.toolTipText= +#RecentActivityTopComponent.jLabel6.toolTipText= +#RecentActivityTopComponent.jLabel7.text=to +#RecentActivityTopComponent.dateFromTextField.text= +#RecentActivityTopComponent.dateToTextField.text= +#RecentActivityTopComponent.dateToButtonCalendar.text= +#RecentActivityTopComponent.dateFromButtonCalendar.text= +#RecentActivityTopComponent.jTextField1.toolTipText=Enter a word or words you'd like to pattern match against +#RecentActivityTopComponent.jCheckBox1.AccessibleContext.accessibleName=IEhistory +#RecentActivityTopComponent.jCheckBox1.label= +#RecentActivityTopComponent.IEhistory.text= +#RecentActivityTopComponent.FFhistory.text=jCheckBox3 +#RecentActivityTopComponent.CHhistory.text=jCheckBox2 +#RecentActivityTopComponent.Cookies.text=jCheckBox4 +#RecentActivityTopComponent.Bookmarks.text=jCheckBox5 +Chrome.moduleName=Chrome +Chrome.getHistory.errMsg.errGettingFiles=Error when trying to get Chrome history files. +Chrome.getHistory.errMsg.couldntFindAnyFiles=Could not find any allocated Chrome history files. +Chrome.getHistory.errMsg.errAnalyzingFile={0}\: Error while trying to analyze file\:{1} +Chrome.parentModuleName=Recent Activity +Chrome.getBookmark.errMsg.errGettingFiles=Error when trying to get Chrome Bookmark files. +Chrome.getBookmark.errMsg.errAnalyzingFile={0}\: Error while trying to analyze file\:{1} +Chrome.getBookmark.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\: {1} +Chrome.getBookmark.errMsg.errAnalyzingFile3={0}\: Error while trying to analyze file\: {1} +Chrome.getBookmark.errMsg.errAnalyzingFile4={0}\: Error while trying to analyze file\:{1} +Chrome.getCookie.errMsg.errGettingFiles=Error when trying to get Chrome history files. +Chrome.getCookie.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\:{1} +Chrome.getDownload.errMsg.errGettingFiles=Error when trying to get Chrome history files. +Chrome.getDownload.errMsg.errAnalyzeFiles1={0}\: Error while trying to analyze file\:{1} +Chrome.getLogin.errMsg.errGettingFiles=Error when trying to get Chrome history files. +Chrome.getLogin.errMsg.errAnalyzingFiles={0}\: Error while trying to analyze file\:{1} +Chrome.getDesc.text=Extracts activity from the Google Chrome browser. +Extract.dbConn.errMsg.failedToQueryDb={0}\: Failed to query database. +ExtractIE.moduleName.text=Internet Explorer +ExtractIE.getBookmark.errMsg.errGettingBookmarks={0}\: Error getting Internet Explorer Bookmarks. +ExtractIE.parentModuleName.noSpace=RecentActivity +ExtractIE.parentModuleName=Recent Activity +ExtractIE.getURLFromIEBmkFile.errMsg={0}\: Error parsing IE bookmark File {1} +ExtractIE.getURLFromIEBmkFile.errMsg2={0}\: Error parsing IE bookmark File {1} +ExtractIE.getCookie.errMsg.errGettingFile={0}\: Error getting Internet Explorer cookie files. +ExtractIE.getCookie.errMsg.errReadingIECookie={0}\: Error reading Internet Explorer cookie {1} +ExtractIE.getHistory.errMsg.unableToGetHist={0}\: Unable to get IE History\: pasco not found +ExtractIE.getHistory.errMsg.errGettingHistFiles={0}\: Error getting Internet Explorer history files +ExtractIE.getHistory.errMsg.noHistFiles=No InternetExplorer history files found. +ExtractIE.getHistory.errMsg.errWriteFile={0}\: Error while trying to write file\:{1} +ExtractIE.getHistory.errMsg.errProcHist={0}\: Error processing Internet Explorer history. +ExtractIE.parsePascoOutput.errMsg.notFound={0}\: Pasco output not found\: {1} +ExtractIE.parsePascoOutput.errMsg.errParsing={0}\: Error parsing IE history entry {1} +ExtractIE.parsePascoOutput.errMsg.errParsingEntry={0}\: Error parsing Internet Explorer History entry. +ExtractIE.getDesc.text=Extracts activity from Internet Explorer browser, as well as recent documents in windows. +ExtractRegistry.findRegFiles.errMsg.errReadingFile=Error fetching registry file\: {0} +ExtractRegistry.analyzeRegFiles.errMsg.errWritingTemp={0}\: Error analyzing registry file {1} +ExtractRegistry.analyzeRegFiles.failedParsingResults={0}\: Failed parsing registry file results {1} +ExtractRegistry.parentModuleName.noSpace=RecentActivity +ExtractRegistry.programName=RegRipper +ExtractRegistry.analyzeRegFiles.errMsg.errReadingRegFile={0}\: Error reading registry file - {1} +ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile={0}\: Failed to analyze registry file +ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile2={0}\: Failed to analyze registry file +ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile3={0}\: Failed to analyze registry file +ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile4={0}\: Failed to analyze registry file +ExtractRegistry.getName=Registry +ExtractRegistry.getDesc=Extracts activity from the Windows registry utilizing RegRipper. +Firefox.moduleName=FireFox +Firefox.getHistory.errMsg.errFetchingFiles=Error fetching internet history files for Firefox. +Firefox.getHistory.errMsg.noFilesFound=No FireFox history files found. +Firefox.getHistory.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\:{1} +Firefox.parentModuleName.noSpace=RecentActivity +Firefox.parentModuleName=Recent Activity +Firefox.getBookmark.errMsg.errFetchFiles=Error fetching bookmark files for Firefox. +Firefox.getBookmark.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\:{1} +Firefox.getCookie.errMsg.errFetchFile=Error fetching cookies files for Firefox. +Firefox.getCookie.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\:{1} +Firefox.getDlPre24.errMsg.errFetchFiles=Error fetching 'downloads' files for Firefox. +Firefox.getDlPre24.errMsg.errAnalyzeFiles={0}\: Error while trying to analyze file\:{1} +Firefox.getDlPre24.errMsg.errParsingArtifacts={0}\: Error parsing {1} Firefox web history artifacts. +Firefox.getDlV24.errMsg.errFetchFiles=Error fetching 'downloads' files for Firefox. +Firefox.getDlV24.errMsg.errAnalyzeFile={0}\: Error while trying to analyze file\:{1} +Firefox.getDlV24.errMsg.errParsingArtifacts={0}\: Error parsing {1} Firefox web download artifacts. +Firefox.getDesc.text=Extracts activity from the Mozilla FireFox browser. +RAImageIngestModule.process.started=Started {0} +RAImageIngestModule.process.errModFailed={0} failed - see log for details
    +RAImageIngestModule.process.errModErrs={0} had errors -- see log +RAImageIngestModule.process.errMsg.errsEncountered=

    Errors encountered during analysis\:

      \ +RAImageIngestModule.process.errMsgSub.oneErr=1 error found +RAImageIngestModule.process.errMsgSub.nErrs={0} errors found +RAImageIngestModule.process.ingestMsg.finished=Finished {0} - {1} +RAImageIngestModule.process.errMsg.noErrs=

      No errors encountered.

      +RAImageIngestModule.process.errMsgSub.noErrs=No errors reported +RAImageIngestModule.process.histMsg.title=

      Browser Data on {0}\:

        \ +RAImageIngestModule.process.histMsg.found=\ Found. +RAImageIngestModule.process.histMsg.notFnd=\ Not Found. +RAImageIngestModule.process.ingestMsg.results={0} - Browser Results +RAImageIngestModule.complete.errMsg.failed={0} failed to complete - see log for details
        +RAImageIngestModule.getName=Recent Activity +RAImageIngestModule.getDesc=Extracts recent user activity, such as Web browsing, recently used documents and installed programs. +RecentDocumentsByLnk.getRecDoc.errMsg.errGetLnkFiles={0}\: Error getting lnk Files. +RecentDocumentsByLnk.getRecDoc.errParsingFile={0}\: Error parsing Recent File {1} +RecentDocumentsByLnk.parentModuleName.noSpace=RecentActivity +RecentDocumentsByLnk.parentModuleName=Recent Activity +RecentDocumentsByLnk.getDesc.text=Extracts recent documents in windows. +SearchEngineURLQueryAnalyzer.moduleName.text=Search Engine URL Query Analyzer +SearchEngineURLQueryAnalyzer.engineName.none=NONE +SearchEngineURLQueryAnalyzer.domainSubStr.none=NONE +SearchEngineURLQueryAnalyzer.toString=Name\: {0}\ + Domain Substring\: {1}\ + count\: {2}\ + Split Tokens\: \ + {3} +SearchEngineURLQueryAnalyzer.parentModuleName.noSpace=RecentActivity +SearchEngineURLQueryAnalyzer.getDesc=Extracts search queries on the following search engines\: \ +{0} diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Chrome.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Chrome.java index 66e2b9a21b..289fd49796 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Chrome.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Chrome.java @@ -28,6 +28,7 @@ import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.ingest.IngestServices; import org.sleuthkit.autopsy.datamodel.ContentUtils; import java.util.logging.Level; @@ -71,7 +72,7 @@ class Chrome extends Extract { //hide public constructor to prevent from instantiation by ingest module loader Chrome() { - moduleName = "Chrome"; + moduleName = NbBundle.getMessage(Chrome.class, "Chrome.moduleName"); } @Override @@ -102,7 +103,7 @@ class Chrome extends Extract { try { historyFiles = fileManager.findFiles(dataSource, "History", "Chrome"); } catch (TskCoreException ex) { - String msg = "Error when trying to get Chrome history files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getHistory.errMsg.errGettingFiles"); logger.log(Level.SEVERE, msg, ex); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -118,7 +119,7 @@ class Chrome extends Extract { // log a message if we don't have any allocated history files if (allocatedHistoryFiles.isEmpty()) { - String msg = "Could not find any allocated Chrome history files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getHistory.errMsg.couldntFindAnyFiles"); logger.log(Level.INFO, msg); return; } @@ -135,7 +136,8 @@ class Chrome extends Extract { ContentUtils.writeToFile(historyFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing temp sqlite db for Chrome web history artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + historyFile.getName()); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Chrome.getHistory.errMsg.errAnalyzingFile", + this.getName(), historyFile.getName())); continue; } File dbFile = new File(temps); @@ -149,19 +151,32 @@ class Chrome extends Extract { for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "Recent Activity", ((Long.valueOf(result.get("last_visit_time").toString())) / 10000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "Recent Activity", ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), "Recent Activity", ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "Chrome")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((Long.valueOf(result.get("last_visit_time").toString())) / 10000000))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + NbBundle.getMessage(this.getClass(), "Chrome.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_HISTORY, historyFile, bbattributes); } dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); + services.fireModuleDataEvent(new ModuleDataEvent(NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); } /** @@ -176,7 +191,7 @@ class Chrome extends Extract { try { bookmarkFiles = fileManager.findFiles(dataSource, "Bookmarks", "Chrome"); } catch (TskCoreException ex) { - String msg = "Error when trying to get Chrome Bookmark files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getBookmark.errMsg.errGettingFiles"); logger.log(Level.SEVERE, msg, ex); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -200,7 +215,8 @@ class Chrome extends Extract { ContentUtils.writeToFile(bookmarkFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing temp sqlite db for Chrome bookmark artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + bookmarkFile.getName()); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Chrome.getBookmark.errMsg.errAnalyzingFile", + this.getName(), bookmarkFile.getName())); continue; } @@ -216,7 +232,9 @@ class Chrome extends Extract { tempReader = new FileReader(temps); } catch (FileNotFoundException ex) { logger.log(Level.SEVERE, "Error while trying to read into the Bookmarks for Chrome.", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file: " + bookmarkFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Chrome.getBookmark.errMsg.errAnalyzeFile", this.getName(), + bookmarkFile.getName())); continue; } @@ -233,7 +251,8 @@ class Chrome extends Extract { jBookmarkArray = jBookmark.getAsJsonArray("children"); } catch (JsonIOException | JsonSyntaxException | IllegalStateException ex) { logger.log(Level.WARNING, "Error parsing Json from Chrome Bookmark.", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file: " + bookmarkFile.getName()); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Chrome.getBookmark.errMsg.errAnalyzingFile3", + this.getName(), bookmarkFile.getName())); continue; } @@ -272,21 +291,34 @@ class Chrome extends Extract { Collection bbattributes = new ArrayList(); //TODO Revisit usage of deprecated constructor as per TSK-583 //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", (date / 10000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", url)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), "Recent Activity", name)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), "Recent Activity", (date / 10000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "Chrome")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), url)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), name)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), (date / 10000000))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), + NbBundle.getMessage(this.getClass(), "Chrome.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), domain)); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error while trying to insert Chrome bookmark artifact{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + bookmarkFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Chrome.getBookmark.errMsg.errAnalyzingFile4", + this.getName(), bookmarkFile.getName())); } } dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); + services.fireModuleDataEvent(new ModuleDataEvent(NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); } /** @@ -301,7 +333,7 @@ class Chrome extends Extract { try { cookiesFiles = fileManager.findFiles(dataSource, "Cookies", "Chrome"); } catch (TskCoreException ex) { - String msg = "Error when trying to get Chrome history files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getCookie.errMsg.errGettingFiles"); logger.log(Level.SEVERE, msg, ex); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -324,7 +356,9 @@ class Chrome extends Extract { ContentUtils.writeToFile(cookiesFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing temp sqlite db for Chrome cookie artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + cookiesFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Chrome.getCookie.errMsg.errAnalyzeFile", this.getName(), + cookiesFile.getName())); continue; } File dbFile = new File(temps); @@ -337,21 +371,32 @@ class Chrome extends Extract { logger.log(Level.INFO, moduleName + "- Now getting cookies from " + temps + " with " + tempList.size() + "artifacts identified."); for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", ((result.get("host_key").toString() != null) ? result.get("host_key").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "Recent Activity", ((Long.valueOf(result.get("last_access_utc").toString())) / 10000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", ((result.get("name").toString() != null) ? result.get("name").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), "Recent Activity", ((result.get("value").toString() != null) ? result.get("value").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "Chrome")); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("host_key").toString() != null) ? result.get("host_key").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((Long.valueOf(result.get("last_access_utc").toString())) / 10000000))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("name").toString() != null) ? result.get("name").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("value").toString() != null) ? result.get("value").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + NbBundle.getMessage(this.getClass(), "Chrome.moduleName"))); String domain = result.get("host_key").toString(); domain = domain.replaceFirst("^\\.+(?!$)", ""); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), domain)); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_COOKIE, cookiesFile, bbattributes); } dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); + services.fireModuleDataEvent(new ModuleDataEvent(NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); } /** @@ -366,7 +411,7 @@ class Chrome extends Extract { try { downloadFiles = fileManager.findFiles(dataSource, "History", "Chrome"); } catch (TskCoreException ex) { - String msg = "Error when trying to get Chrome history files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getDownload.errMsg.errGettingFiles"); logger.log(Level.SEVERE, msg, ex); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -389,7 +434,8 @@ class Chrome extends Extract { ContentUtils.writeToFile(downloadFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing temp sqlite db for Chrome download artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + downloadFile.getName()); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Chrome.getDownload.errMsg.errAnalyzeFiles1", + this.getName(), downloadFile.getName())); continue; } File dbFile = new File(temps); @@ -409,29 +455,39 @@ class Chrome extends Extract { logger.log(Level.INFO, moduleName + "- Now getting downloads from " + temps + " with " + tempList.size() + "artifacts identified."); for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), "Recent Activity", (result.get("full_path").toString()))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), (result.get("full_path").toString()))); long pathID = Util.findID(dataSource, (result.get("full_path").toString())); if (pathID != -1) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), "Recent Activity", pathID)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Chrome.parentModuleName"), pathID)); } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "Recent Activity", ((result.get("url").toString() != null) ? EscapeUtil.decodeURL(result.get("url").toString()) : ""))); Long time = (Long.valueOf(result.get("start_time").toString())); String Tempdate = time.toString(); time = Long.valueOf(Tempdate) / 10000000; //TODO Revisit usage of deprecated constructor as per TSK-583 //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", time)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "Recent Activity", time)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), time)); String domain = Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : ""); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", domain)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "Chrome")); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + NbBundle.getMessage(this.getClass(), "Chrome.moduleName"))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_DOWNLOAD, downloadFile, bbattributes); } dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); + services.fireModuleDataEvent(new ModuleDataEvent(NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); } /** @@ -446,7 +502,7 @@ class Chrome extends Extract { try { signonFiles = fileManager.findFiles(dataSource, "signons.sqlite", "Chrome"); } catch (TskCoreException ex) { - String msg = "Error when trying to get Chrome history files."; + String msg = NbBundle.getMessage(this.getClass(), "Chrome.getLogin.errMsg.errGettingFiles"); logger.log(Level.SEVERE, msg, ex); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -469,7 +525,9 @@ class Chrome extends Extract { ContentUtils.writeToFile(signonFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing temp sqlite db for Chrome login artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + signonFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Chrome.getLogin.errMsg.errAnalyzingFiles", this.getName(), + signonFile.getName())); continue; } File dbFile = new File(temps); @@ -481,24 +539,40 @@ class Chrome extends Extract { logger.log(Level.INFO, moduleName + "- Now getting login information from " + temps + " with " + tempList.size() + "artifacts identified."); for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", ((result.get("origin_url").toString() != null) ? result.get("origin_url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("origin_url").toString() != null) ? result.get("origin_url").toString() : ""))); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "Recent Activity", ((result.get("origin_url").toString() != null) ? EscapeUtil.decodeURL(result.get("origin_url").toString()) : ""))); //TODO Revisit usage of deprecated constructor as per TSK-583 //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_visit_time").toString())) / 1000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "Recent Activity", ((Long.valueOf(result.get("last_visit_time").toString())) / 1000000))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "Recent Activity", ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "Chrome")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", (Util.extractDomain((result.get("origin_url").toString() != null) ? result.get("url").toString() : "")))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), "Recent Activity", ((result.get("username_value").toString() != null) ? result.get("username_value").toString().replaceAll("'", "''") : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", result.get("signon_realm").toString())); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((Long.valueOf(result.get("last_visit_time").toString())) / 1000000))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + NbBundle.getMessage(this.getClass(), "Chrome.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + (Util.extractDomain((result.get("origin_url").toString() != null) ? result.get("url").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + ((result.get("username_value").toString() != null) ? result.get("username_value").toString().replaceAll("'", "''") : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), + result.get("signon_realm").toString())); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_HISTORY, signonFile, bbattributes); } dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); + services.fireModuleDataEvent(new ModuleDataEvent(NbBundle.getMessage(this.getClass(), "Chrome.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); } @Override @@ -516,7 +590,7 @@ class Chrome extends Extract { @Override public String getDescription() { - return "Extracts activity from the Google Chrome browser."; + return NbBundle.getMessage(this.getClass(), "Chrome.getDesc.text"); } diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java index 66a628f389..dd2a1ac504 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java @@ -27,6 +27,8 @@ import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.*; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.ingest.IngestModuleDataSource; @@ -104,7 +106,7 @@ abstract class Extract extends IngestModuleDataSource{ tempdbconnect.closeConnection(); } catch (SQLException ex) { logger.log(Level.SEVERE, "Error while trying to read into a sqlite db." + connectionString, ex); - errorMessages.add(getName() + ": Failed to query database."); + errorMessages.add(NbBundle.getMessage(this.getClass(), "Extract.dbConn.errMsg.failedToQueryDb", getName())); return Collections.>emptyList(); } return list; diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java index 5d3c298070..9367986af9 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java @@ -24,15 +24,15 @@ package org.sleuthkit.autopsy.recentactivity; //IO imports import java.io.BufferedReader; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ExecUtil; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; -import java.io.Reader; import java.io.Writer; //Util Imports @@ -44,15 +44,10 @@ import java.util.logging.Level; import org.sleuthkit.autopsy.coreutils.Logger; import java.util.Collection; import java.util.Scanner; -import java.util.regex.Matcher; -import java.util.regex.Pattern; // TSK Imports import org.openide.modules.InstalledFileLocator; import org.sleuthkit.autopsy.casemodule.Case; -import org.sleuthkit.autopsy.coreutils.JLNK; -import org.sleuthkit.autopsy.coreutils.JLnkParser; -import org.sleuthkit.autopsy.coreutils.JLnkParserException; import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.autopsy.ingest.IngestDataSourceWorkerController; import org.sleuthkit.autopsy.ingest.IngestServices; @@ -84,7 +79,7 @@ class ExtractIE extends Extract { //hide public constructor to prevent from instantiation by ingest module loader ExtractIE() { - moduleName = "Internet Explorer"; + moduleName = NbBundle.getMessage(ExtractIE.class, "ExtractIE.moduleName.text"); moduleTempResultsDir = RAImageIngestModule.getRATempPath(Case.getCurrentCase(), "IE") + File.separator + "results"; JAVA_PATH = PlatformUtil.getJavaPath(); } @@ -115,7 +110,9 @@ class ExtractIE extends Extract { favoritesFiles = fileManager.findFiles(dataSource, "%.url", "Favorites"); } catch (TskCoreException ex) { logger.log(Level.WARNING, "Error fetching 'url' files for Internet Explorer bookmarks.", ex); - this.addErrorMessage(this.getName() + ": Error getting Internet Explorer Bookmarks."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getBookmark.errMsg.errGettingBookmarks", + this.getName())); return; } @@ -143,14 +140,26 @@ class ExtractIE extends Extract { String domain = Util.extractDomain(url); Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", url)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), "RecentActivity", name)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), "RecentActivity", datetime)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "Internet Explorer")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), url)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), name)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), datetime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "ExtractIE.moduleName.text"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), domain)); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_BOOKMARK, fav, bbattributes); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "ExtractIE.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); } private String getURLFromIEBookmarkFile(AbstractFile fav) { @@ -167,10 +176,14 @@ class ExtractIE extends Extract { } } catch (IOException ex) { logger.log(Level.WARNING, "Failed to read from content: " + fav.getName(), ex); - this.addErrorMessage(this.getName() + ": Error parsing IE bookmark File " + fav.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getURLFromIEBmkFile.errMsg", this.getName(), + fav.getName())); } catch (IndexOutOfBoundsException ex) { logger.log(Level.WARNING, "Failed while getting URL of IE bookmark. Unexpected format of the bookmark file: " + fav.getName(), ex); - this.addErrorMessage(this.getName() + ": Error parsing IE bookmark File " + fav.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getURLFromIEBmkFile.errMsg2", this.getName(), + fav.getName())); } finally { try { reader.close(); @@ -194,7 +207,8 @@ class ExtractIE extends Extract { cookiesFiles = fileManager.findFiles(dataSource, "%.txt", "Cookies"); } catch (TskCoreException ex) { logger.log(Level.WARNING, "Error getting cookie files for IE"); - this.addErrorMessage(this.getName() + ": " + "Error getting Internet Explorer cookie files."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getCookie.errMsg.errGettingFile", this.getName())); return; } @@ -217,7 +231,9 @@ class ExtractIE extends Extract { final int bytesRead = cookiesFile.read(t, 0, cookiesFile.getSize()); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error reading bytes of Internet Explorer cookie.", ex); - this.addErrorMessage(this.getName() + ": Error reading Internet Explorer cookie " + cookiesFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getCookie.errMsg.errReadingIECookie", + this.getName(), cookiesFile.getName())); continue; } String cookieString = new String(t); @@ -231,15 +247,29 @@ class ExtractIE extends Extract { String domain = Util.extractDomain(url); Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", url)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", datetime)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "RecentActivity", (name != null) ? name : "")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), "RecentActivity", value)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "Internet Explorer")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), url)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), datetime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), (name != null) ? name : "")); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), value)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "ExtractIE.moduleName.text"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), domain)); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_COOKIE, cookiesFile, bbattributes); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "ExtractIE.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); } /** @@ -253,7 +283,8 @@ class ExtractIE extends Extract { final File pascoRoot = InstalledFileLocator.getDefault().locate("pasco2", ExtractIE.class.getPackage().getName(), false); if (pascoRoot == null) { - this.addErrorMessage(this.getName() + ": Unable to get IE History: pasco not found"); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getHistory.errMsg.unableToGetHist", this.getName())); logger.log(Level.SEVERE, "Error finding pasco program "); return; } @@ -273,13 +304,14 @@ class ExtractIE extends Extract { try { indexFiles = fileManager.findFiles(dataSource, "index.dat"); } catch (TskCoreException ex) { - this.addErrorMessage(this.getName() + ": Error getting Internet Explorer history files"); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "ExtractIE.getHistory.errMsg.errGettingHistFiles", + this.getName())); logger.log(Level.WARNING, "Error fetching 'index.data' files for Internet Explorer history."); return; } if (indexFiles.isEmpty()) { - String msg = "No InternetExplorer history files found."; + String msg = NbBundle.getMessage(this.getClass(), "ExtractIE.getHistory.errMsg.noHistFiles"); logger.log(Level.INFO, msg); return; } @@ -304,7 +336,9 @@ class ExtractIE extends Extract { ContentUtils.writeToFile(indexFile, datFile); } catch (IOException e) { logger.log(Level.SEVERE, "Error while trying to write index.dat file " + datFile.getAbsolutePath(), e); - this.addErrorMessage(this.getName() + ": Error while trying to write file:" + datFile.getAbsolutePath()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getHistory.errMsg.errWriteFile", this.getName(), + datFile.getAbsolutePath())); continue; } @@ -321,12 +355,14 @@ class ExtractIE extends Extract { datFile.delete(); } else { logger.log(Level.WARNING, "pasco execution failed on: " + this.getName()); - this.addErrorMessage(this.getName() + ": Error processing Internet Explorer history."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.getHistory.errMsg.errProcHist", this.getName())); } } if (foundHistory) { - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "ExtractIE.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); } } @@ -380,7 +416,9 @@ class ExtractIE extends Extract { File file = new File(fnAbs); if (file.exists() == false) { - this.addErrorMessage(this.getName() + ": Pasco output not found: " + file.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.parsePascoOutput.errMsg.notFound", this.getName(), + file.getName())); logger.log(Level.WARNING, "Pasco Output not found: " + file.getPath()); return; } @@ -395,7 +433,9 @@ class ExtractIE extends Extract { try { fileScanner = new Scanner(new FileInputStream(file.toString())); } catch (FileNotFoundException ex) { - this.addErrorMessage(this.getName() + ": Error parsing IE history entry " + file.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.parsePascoOutput.errMsg.errParsing", this.getName(), + file.getName())); logger.log(Level.WARNING, "Unable to find the Pasco file at " + file.getPath(), ex); return; } @@ -454,7 +494,9 @@ class ExtractIE extends Extract { ftime = epochtime.longValue(); ftime = ftime / 1000; } catch (ParseException e) { - this.addErrorMessage(this.getName() + ": Error parsing Internet Explorer History entry."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractIE.parsePascoOutput.errMsg.errParsingEntry", + this.getName())); logger.log(Level.SEVERE, "Error parsing Pasco results.", e); } } @@ -462,15 +504,29 @@ class ExtractIE extends Extract { try { BlackboardArtifact bbart = origFile.newArtifact(ARTIFACT_TYPE.TSK_WEB_HISTORY); Collection bbattributes = new ArrayList<>(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", realurl)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), realurl)); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "RecentActivity", EscapeUtil.decodeURL(realurl))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "RecentActivity", ftime)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "RecentActivity", "")); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), ftime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), "")); // @@@ NOte that other browser modules are adding TITLE in hre for the title - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "Internet Explorer")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", domain)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), "RecentActivity", user)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), + "ExtractIE.moduleName.text"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractIE.parentModuleName.noSpace"), user)); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error writing Internet Explorer web history artifact to the blackboard.", ex); @@ -501,7 +557,7 @@ class ExtractIE extends Extract { @Override public String getDescription() { - return "Extracts activity from Internet Explorer browser, as well as recent documents in windows."; + return NbBundle.getMessage(this.getClass(), "ExtractIE.getDesc.text"); } @Override diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java index 94b9728b30..595a847299 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java @@ -32,6 +32,7 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.openide.modules.InstalledFileLocator; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ExecUtil; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; @@ -135,7 +136,8 @@ class ExtractRegistry extends Extract { allRegistryFiles.addAll(fileManager.findFiles(dataSource, regFileName, "/system32/config")); } catch (TskCoreException ex) { - String msg = "Error fetching registry file: " + regFileName; + String msg = NbBundle.getMessage(this.getClass(), + "ExtractRegistry.findRegFiles.errMsg.errReadingFile", regFileName); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); } @@ -172,7 +174,9 @@ class ExtractRegistry extends Extract { ContentUtils.writeToFile(regFile, regFileNameLocalFile); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the temp registry file. {0}", ex); - this.addErrorMessage(this.getName() + ": Error analyzing registry file " + regFileName); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.analyzeRegFiles.errMsg.errWritingTemp", + this.getName(), regFileName)); continue; } @@ -199,7 +203,9 @@ class ExtractRegistry extends Extract { // parse the autopsy-specific output if (regOutputFiles.autopsyPlugins.isEmpty() == false) { if (parseAutopsyPluginOutput(regOutputFiles.autopsyPlugins, regFile.getId(), extrctr) == false) { - this.addErrorMessage(this.getName() + ": Failed parsing registry file results " + regFileName); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.analyzeRegFiles.failedParsingResults", + this.getName(), regFileName)); } } @@ -207,7 +213,11 @@ class ExtractRegistry extends Extract { if (regOutputFiles.fullPlugins.isEmpty() == false) { try { BlackboardArtifact art = regFile.newArtifact(ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getTypeID()); - BlackboardAttribute att = new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "RegRipper"); + BlackboardAttribute att = new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.programName")); art.addAttribute(att); FileReader fread = new FileReader(regOutputFiles.fullPlugins); @@ -231,10 +241,14 @@ class ExtractRegistry extends Extract { logger.log(Level.WARNING, "Failed to close reader.", ex); } } - att = new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), "RecentActivity", sb.toString()); + att = new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), sb.toString()); art.addAttribute(att); } catch (FileNotFoundException ex) { - this.addErrorMessage(this.getName() + ": Error reading registry file - " + regOutputFiles.fullPlugins); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), + "ExtractRegistry.analyzeRegFiles.errMsg.errReadingRegFile", + this.getName(), regOutputFiles.fullPlugins)); java.util.logging.Logger.getLogger(ExtractRegistry.class.getName()).log(Level.SEVERE, null, ex); } catch (TskCoreException ex) { // TODO - add error message here? @@ -306,10 +320,14 @@ class ExtractRegistry extends Extract { "-r", regFilePath, "-f", autopsyType); } catch (IOException ex) { logger.log(Level.SEVERE, "Unable to RegRipper and process parse some registry files.", ex); - this.addErrorMessage(this.getName() + ": Failed to analyze registry file"); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile", + this.getName())); } catch (InterruptedException ex) { logger.log(Level.SEVERE, "RegRipper has been interrupted, failed to parse registry.", ex); - this.addErrorMessage(this.getName() + ": Failed to analyze registry file"); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile2", + this.getName())); } finally { if (writer != null) { try { @@ -333,10 +351,14 @@ class ExtractRegistry extends Extract { "-r", regFilePath, "-f", fullType); } catch (IOException ex) { logger.log(Level.SEVERE, "Unable to run full RegRipper and process parse some registry files.", ex); - this.addErrorMessage(this.getName() + ": Failed to analyze registry file"); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile3", + this.getName())); } catch (InterruptedException ex) { logger.log(Level.SEVERE, "RegRipper full has been interrupted, failed to parse registry.", ex); - this.addErrorMessage(this.getName() + ": Failed to analyze registry file"); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "ExtractRegistry.execRegRip.errMsg.failedAnalyzeRegFile4", + this.getName())); } finally { if (writer != null) { try { @@ -429,18 +451,26 @@ class ExtractRegistry extends Extract { usbMtime = Long.valueOf(usbMtime.toString()); BlackboardArtifact bbart = tempDb.getContentById(orgId).newArtifact(ARTIFACT_TYPE.TSK_DEVICE_ATTACHED); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", usbMtime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), usbMtime)); String dev = artnode.getAttribute("dev"); String model = dev; if (dev.toLowerCase().contains("vid")) { USBInfo info = extrctr.get(dev); if(info.getVendor()!=null) - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), "RecentActivity", info.getVendor())); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), info.getVendor())); if(info.getProduct() != null) model = info.getProduct(); } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), "RecentActivity", model)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), "RecentActivity", value)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), model)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), value)); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error adding device attached artifact to blackboard."); @@ -457,8 +487,12 @@ class ExtractRegistry extends Extract { } try { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", value)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", itemMtime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), value)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), itemMtime)); BlackboardArtifact bbart = tempDb.getContentById(orgId).newArtifact(ARTIFACT_TYPE.TSK_INSTALLED_PROG); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { @@ -485,8 +519,12 @@ class ExtractRegistry extends Extract { logger.log(Level.SEVERE, "RegRipper::Conversion on DateTime -> ", e); } try { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", winver)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", installtime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), winver)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), installtime)); BlackboardArtifact bbart = tempDb.getContentById(orgId).newArtifact(ARTIFACT_TYPE.TSK_INSTALLED_PROG); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { @@ -501,11 +539,19 @@ class ExtractRegistry extends Extract { BlackboardArtifact bbart = tempDb.getContentById(orgId).newArtifact(ARTIFACT_TYPE.TSK_RECENT_OBJECT); // @@@ BC: Consider removing this after some more testing. It looks like an Mtime associated with the root key and not the individual item if (mtime != null) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "RecentActivity", mtime)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), mtime)); } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "RecentActivity", name)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), "RecentActivity", value)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", artnode.getNodeName())); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), name)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), value)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "ExtractRegistry.parentModuleName.noSpace"), artnode.getNodeName())); bbart.addAttributes(bbattributes); } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error adding recent object artifact to blackboard."); @@ -557,12 +603,12 @@ class ExtractRegistry extends Extract { @Override public String getName() { - return "Registry"; + return NbBundle.getMessage(this.getClass(), "ExtractRegistry.getName"); } @Override public String getDescription() { - return "Extracts activity from the Windows registry utilizing RegRipper."; + return NbBundle.getMessage(this.getClass(), "ExtractRegistry.getDesc"); } @Override diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Firefox.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Firefox.java index fe12e4ae05..1b7efcabc2 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Firefox.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Firefox.java @@ -31,6 +31,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.services.FileManager; import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.autopsy.ingest.PipelineContext; @@ -64,7 +66,7 @@ class Firefox extends Extract { //hide public constructor to prevent from instantiation by ingest module loader Firefox() { - moduleName = "FireFox"; + moduleName = NbBundle.getMessage(Firefox.class, "Firefox.moduleName"); } @Override @@ -91,14 +93,14 @@ class Firefox extends Extract { try { historyFiles = fileManager.findFiles(dataSource, "%places.sqlite%", "Firefox"); } catch (TskCoreException ex) { - String msg = "Error fetching internet history files for Firefox."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getHistory.errMsg.errFetchingFiles"); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); return; } if (historyFiles.isEmpty()) { - String msg = "No FireFox history files found."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getHistory.errMsg.noFilesFound"); logger.log(Level.INFO, msg); return; } @@ -117,7 +119,9 @@ class Firefox extends Extract { ContentUtils.writeToFile(historyFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the sqlite db for firefox web history artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + fileName); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Firefox.getHistory.errMsg.errAnalyzeFile", this.getName(), + fileName)); continue; } File dbFile = new File(temps); @@ -129,13 +133,30 @@ class Firefox extends Extract { logger.log(Level.INFO, moduleName + "- Now getting history from " + temps + " with " + tempList.size() + "artifacts identified."); for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "RecentActivity", ((result.get("url").toString() != null) ? EscapeUtil.decodeURL(result.get("url").toString()) : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "RecentActivity", (Long.valueOf(result.get("visit_date").toString())))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "RecentActivity", ((result.get("ref").toString() != null) ? result.get("ref").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), "RecentActivity", ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "FireFox")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Long.valueOf(result.get("visit_date").toString())))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("ref").toString() != null) ? result.get("ref").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "Firefox.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_HISTORY, historyFile, bbattributes); } @@ -143,7 +164,8 @@ class Firefox extends Extract { dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "Firefox.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY)); } /** @@ -158,7 +180,7 @@ class Firefox extends Extract { try { bookmarkFiles = fileManager.findFiles(dataSource, "places.sqlite", "Firefox"); } catch (TskCoreException ex) { - String msg = "Error fetching bookmark files for Firefox."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getBookmark.errMsg.errFetchFiles"); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -182,7 +204,8 @@ class Firefox extends Extract { ContentUtils.writeToFile(bookmarkFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the sqlite db for firefox bookmark artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + fileName); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Firefox.getBookmark.errMsg.errAnalyzeFile", + this.getName(), fileName)); continue; } File dbFile = new File(temps); @@ -195,13 +218,28 @@ class Firefox extends Extract { for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), "RecentActivity", ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("title").toString() != null) ? result.get("title").toString() : ""))); if (Long.valueOf(result.get("dateAdded").toString()) > 0) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), "RecentActivity", (Long.valueOf(result.get("dateAdded").toString())))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Long.valueOf(result.get("dateAdded").toString())))); } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "FireFox")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "Firefox.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_BOOKMARK, bookmarkFile, bbattributes); } @@ -209,7 +247,8 @@ class Firefox extends Extract { dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "Firefox.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK)); } /** @@ -223,7 +262,7 @@ class Firefox extends Extract { try { cookiesFiles = fileManager.findFiles(dataSource, "cookies.sqlite", "Firefox"); } catch (TskCoreException ex) { - String msg = "Error fetching cookies files for Firefox."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getCookie.errMsg.errFetchFile"); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -246,7 +285,9 @@ class Firefox extends Extract { ContentUtils.writeToFile(cookiesFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the sqlite db for firefox cookie artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + fileName); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Firefox.getCookie.errMsg.errAnalyzeFile", this.getName(), + fileName)); continue; } File dbFile = new File(temps); @@ -267,25 +308,46 @@ class Firefox extends Extract { for (HashMap result : tempList) { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", ((result.get("host").toString() != null) ? result.get("host").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", (Long.valueOf(result.get("lastAccessed").toString())))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "RecentActivity", ((result.get("name").toString() != null) ? result.get("name").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), "RecentActivity", ((result.get("value").toString() != null) ? result.get("value").toString() : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "FireFox")); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("host").toString() != null) ? result.get("host").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Long.valueOf(result.get("lastAccessed").toString())))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("name").toString() != null) ? result.get("name").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("value").toString() != null) ? result.get("value").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "Firefox.moduleName"))); if (checkColumn == true) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), "RecentActivity", (Long.valueOf(result.get("creationTime").toString())))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Long.valueOf(result.get("creationTime").toString())))); } String domain = Util.extractDomain(result.get("host").toString()); domain = domain.replaceFirst("^\\.+(?!$)", ""); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", domain)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), domain)); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_COOKIE, cookiesFile, bbattributes); } ++j; dbFile.delete(); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "Firefox.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE)); } /** @@ -313,7 +375,7 @@ class Firefox extends Extract { try { downloadsFiles = fileManager.findFiles(dataSource, "downloads.sqlite", "Firefox"); } catch (TskCoreException ex) { - String msg = "Error fetching 'downloads' files for Firefox."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getDlPre24.errMsg.errFetchFiles"); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -337,7 +399,8 @@ class Firefox extends Extract { ContentUtils.writeToFile(downloadsFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the sqlite db for firefox download artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + fileName); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Firefox.getDlPre24.errMsg.errAnalyzeFiles", + this.getName(), fileName)); continue; } File dbFile = new File(temps); @@ -352,19 +415,31 @@ class Firefox extends Extract { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", ((result.get("source").toString() != null) ? result.get("source").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("source").toString() != null) ? result.get("source").toString() : ""))); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "RecentActivity", ((result.get("source").toString() != null) ? EscapeUtil.decodeURL(result.get("source").toString()) : ""))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "RecentActivity", (Long.valueOf(result.get("startTime").toString())))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Long.valueOf(result.get("startTime").toString())))); String target = result.get("target").toString(); if (target != null) { try { String decodedTarget = URLDecoder.decode(target.toString().replaceAll("file:///", ""), "UTF-8"); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), "RecentActivity", decodedTarget)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + decodedTarget)); long pathID = Util.findID(dataSource, decodedTarget); if (pathID != -1) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), "RecentActivity", pathID)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + pathID)); } } catch (UnsupportedEncodingException ex) { logger.log(Level.SEVERE, "Error decoding Firefox download URL in " + temps, ex); @@ -372,20 +447,29 @@ class Firefox extends Extract { } } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "FireFox")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", (Util.extractDomain((result.get("source").toString() != null) ? result.get("source").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "Firefox.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Util.extractDomain((result.get("source").toString() != null) ? result.get("source").toString() : "")))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_DOWNLOAD, downloadsFile, bbattributes); } if (errors > 0) { - this.addErrorMessage(this.getName() + ": Error parsing " + errors + " Firefox web history artifacts."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Firefox.getDlPre24.errMsg.errParsingArtifacts", + this.getName(), errors)); } j++; dbFile.delete(); break; } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "Firefox.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); } /** @@ -402,7 +486,7 @@ class Firefox extends Extract { try { downloadsFiles = fileManager.findFiles(dataSource, "places.sqlite", "Firefox"); } catch (TskCoreException ex) { - String msg = "Error fetching 'downloads' files for Firefox."; + String msg = NbBundle.getMessage(this.getClass(), "Firefox.getDlV24.errMsg.errFetchFiles"); logger.log(Level.WARNING, msg); this.addErrorMessage(this.getName() + ": " + msg); return; @@ -426,7 +510,9 @@ class Firefox extends Extract { ContentUtils.writeToFile(downloadsFile, new File(temps)); } catch (IOException ex) { logger.log(Level.SEVERE, "Error writing the sqlite db for firefox download artifacts.{0}", ex); - this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + fileName); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "Firefox.getDlV24.errMsg.errAnalyzeFile", this.getName(), + fileName)); continue; } File dbFile = new File(temps); @@ -442,7 +528,10 @@ class Firefox extends Extract { Collection bbattributes = new ArrayList(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "RecentActivity", ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + ((result.get("url").toString() != null) ? result.get("url").toString() : ""))); //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), "RecentActivity", ((result.get("source").toString() != null) ? EscapeUtil.decodeURL(result.get("source").toString()) : ""))); //TODO Revisit usage of deprecated constructor as per TSK-583 //bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "RecentActivity", "Last Visited", (Long.valueOf(result.get("startTime").toString())))); @@ -451,31 +540,48 @@ class Firefox extends Extract { if (target != null) { try { String decodedTarget = URLDecoder.decode(target.toString().replaceAll("file:///", ""), "UTF-8"); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), "RecentActivity", decodedTarget)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + decodedTarget)); long pathID = Util.findID(dataSource, decodedTarget); if (pathID != -1) { - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), "RecentActivity", pathID)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + pathID)); } } catch (UnsupportedEncodingException ex) { logger.log(Level.SEVERE, "Error decoding Firefox download URL in " + temps, ex); errors++; } } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), "RecentActivity", Long.valueOf(result.get("lastModified").toString()))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "RecentActivity", "FireFox")); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "RecentActivity", (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + Long.valueOf(result.get("lastModified").toString()))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + NbBundle.getMessage(this.getClass(), "Firefox.moduleName"))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + NbBundle.getMessage(this.getClass(), + "Firefox.parentModuleName.noSpace"), + (Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "")))); this.addArtifact(ARTIFACT_TYPE.TSK_WEB_DOWNLOAD, downloadsFile, bbattributes); } if (errors > 0) { - this.addErrorMessage(this.getName() + ": Error parsing " + errors + " Firefox web download artifacts."); + this.addErrorMessage(NbBundle.getMessage(this.getClass(), "Firefox.getDlV24.errMsg.errParsingArtifacts", + this.getName(), errors)); } j++; dbFile.delete(); break; } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "Firefox.parentModuleName"), BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD)); } @Override @@ -493,7 +599,7 @@ class Firefox extends Extract { @Override public String getDescription() { - return "Extracts activity from the Mozilla FireFox browser."; + return NbBundle.getMessage(this.getClass(), "Firefox.getDesc.text"); } @Override diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RAImageIngestModule.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RAImageIngestModule.java index 99f0a6856c..a73f36a27b 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RAImageIngestModule.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RAImageIngestModule.java @@ -26,6 +26,8 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Version; @@ -61,7 +63,10 @@ public final class RAImageIngestModule extends IngestModuleDataSource { @Override public void process(PipelineContextpipelineContext, Content dataSource, IngestDataSourceWorkerController controller) { - services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, "Started " + dataSource.getName())); + services.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "RAImageIngestModule.process.started", + dataSource.getName()))); controller.switchToDeterminate(modules.size()); controller.progress(0); @@ -78,8 +83,10 @@ public final class RAImageIngestModule extends IngestModuleDataSource { module.process(pipelineContext, dataSource, controller); } catch (Exception ex) { logger.log(Level.SEVERE, "Exception occurred in " + module.getName(), ex); - subCompleted.append(module.getName()).append(" failed - see log for details
        "); - errors.add(module.getName() + " had errors -- see log"); + subCompleted.append(NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errModFailed", + module.getName())); + errors.add( + NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errModErrs", module.getName())); } controller.progress(i + 1); errors.addAll(module.getErrorMessages()); @@ -91,33 +98,46 @@ public final class RAImageIngestModule extends IngestModuleDataSource { MessageType msgLevel = MessageType.INFO; if (errors.isEmpty() == false) { msgLevel = MessageType.ERROR; - errorMessage.append("

        Errors encountered during analysis:

          \n"); + errorMessage.append( + NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errMsg.errsEncountered")); for (String msg : errors) { errorMessage.append("
        • ").append(msg).append("
        • \n"); } errorMessage.append("
        \n"); if (errors.size() == 1) { - errorMsgSubject = "1 error found"; + errorMsgSubject = NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errMsgSub.oneErr"); } else { - errorMsgSubject = errors.size() + " errors found"; + errorMsgSubject = NbBundle.getMessage(this.getClass(), + "RAImageIngestModule.process.errMsgSub.nErrs", errors.size()); } } else { - errorMessage.append("

        No errors encountered.

        "); - errorMsgSubject = "No errors reported"; + errorMessage.append(NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errMsg.noErrs")); + errorMsgSubject = NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.errMsgSub.noErrs"); } - final IngestMessage msg = IngestMessage.createMessage(++messageId, msgLevel, this, "Finished " + dataSource.getName()+ " - " + errorMsgSubject, errorMessage.toString()); + final IngestMessage msg = IngestMessage.createMessage(++messageId, msgLevel, this, + NbBundle.getMessage(this.getClass(), + "RAImageIngestModule.process.ingestMsg.finished", + dataSource.getName(), errorMsgSubject), + errorMessage.toString()); services.postMessage(msg); StringBuilder historyMsg = new StringBuilder(); - historyMsg.append("

        Browser Data on ").append(dataSource.getName()).append(":

          \n"); + historyMsg.append( + NbBundle.getMessage(this.getClass(), "RAImageIngestModule.process.histMsg.title", dataSource.getName())); for (Extract module : browserModules) { historyMsg.append("
        • ").append(module.getName()); - historyMsg.append(": ").append((module.foundData()) ? " Found." : " Not Found."); + historyMsg.append(": ").append((module.foundData()) ? NbBundle + .getMessage(this.getClass(), "RAImageIngestModule.process.histMsg.found") : NbBundle + .getMessage(this.getClass(), "RAImageIngestModule.process.histMsg.notFnd")); historyMsg.append("
        • "); } historyMsg.append("
        "); - final IngestMessage inboxMsg = IngestMessage.createMessage(++messageId, MessageType.INFO, this, dataSource.getName() + " - Browser Results", historyMsg.toString()); + final IngestMessage inboxMsg = IngestMessage.createMessage(++messageId, MessageType.INFO, this, + NbBundle.getMessage(this.getClass(), + "RAImageIngestModule.process.ingestMsg.results", + dataSource.getName()), + historyMsg.toString()); services.postMessage(inboxMsg); } @@ -132,7 +152,8 @@ public final class RAImageIngestModule extends IngestModuleDataSource { module.complete(); } catch (Exception ex) { logger.log(Level.SEVERE, "Exception occurred when completing " + module.getName(), ex); - subCompleted.append(module.getName()).append(" failed to complete - see log for details
        "); + subCompleted.append(NbBundle.getMessage(this.getClass(), "RAImageIngestModule.complete.errMsg.failed", + module.getName())); } } @@ -141,12 +162,12 @@ public final class RAImageIngestModule extends IngestModuleDataSource { @Override public String getName() { - return "Recent Activity"; + return NbBundle.getMessage(this.getClass(), "RAImageIngestModule.getName"); } @Override public String getDescription() { - return "Extracts recent user activity, such as Web browsing, recently used documents and installed programs."; + return NbBundle.getMessage(this.getClass(), "RAImageIngestModule.getDesc"); } @Override diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java index e304df8c7b..fe6aa4caff 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java @@ -26,6 +26,8 @@ package org.sleuthkit.autopsy.recentactivity; 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 java.util.Collection; import org.sleuthkit.autopsy.coreutils.JLNK; @@ -66,7 +68,9 @@ class RecentDocumentsByLnk extends Extract { recentFiles = fileManager.findFiles(dataSource, "%.lnk", "Recent"); } catch (TskCoreException ex) { logger.log(Level.WARNING, "Error searching for .lnk files."); - this.addErrorMessage(this.getName() + ": Error getting lnk Files."); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "RecentDocumentsByLnk.getRecDoc.errMsg.errGetLnkFiles", + this.getName())); return; } @@ -94,19 +98,32 @@ class RecentDocumentsByLnk extends Extract { || recentFile.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.UNALLOC); if (unalloc == false) { logger.log(Level.SEVERE, "Error lnk parsing the file to get recent files" + recentFile, e); - this.addErrorMessage(this.getName() + ": Error parsing Recent File " + recentFile.getName()); + this.addErrorMessage( + NbBundle.getMessage(this.getClass(), "RecentDocumentsByLnk.getRecDoc.errParsingFile", + this.getName(), recentFile.getName())); } continue; } Collection bbattributes = new ArrayList(); String path = lnk.getBestPath(); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), "RecentActivity", path)); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), "RecentActivity", Util.findID(dataSource, path))); - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "RecentActivity", recentFile.getCrtime())); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + NbBundle.getMessage(this.getClass(), + "RecentDocumentsByLnk.parentModuleName.noSpace"), + path)); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), + NbBundle.getMessage(this.getClass(), + "RecentDocumentsByLnk.parentModuleName.noSpace"), + Util.findID(dataSource, path))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + NbBundle.getMessage(this.getClass(), + "RecentDocumentsByLnk.parentModuleName.noSpace"), + recentFile.getCrtime())); this.addArtifact(ARTIFACT_TYPE.TSK_RECENT_OBJECT, recentFile, bbattributes); } - services.fireModuleDataEvent(new ModuleDataEvent("Recent Activity", BlackboardArtifact.ARTIFACT_TYPE.TSK_RECENT_OBJECT)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "RecentDocumentsByLnk.parentModuleName"), + BlackboardArtifact.ARTIFACT_TYPE.TSK_RECENT_OBJECT)); } @Override @@ -137,7 +154,7 @@ class RecentDocumentsByLnk extends Extract { @Override public String getDescription() { - return "Extracts recent documents in windows."; + return NbBundle.getMessage(this.getClass(), "RecentDocumentsByLnk.getDesc.text"); } @Override diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java index 24da74feef..4b9f867803 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java @@ -33,6 +33,8 @@ import java.util.logging.Level; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.coreutils.XMLUtil; import org.sleuthkit.autopsy.ingest.PipelineContext; @@ -66,7 +68,8 @@ class SearchEngineURLQueryAnalyzer extends Extract { private IngestServices services; - private static final String MODULE_NAME = "Search Engine URL Query Analyzer"; + private static final String MODULE_NAME = NbBundle.getMessage(SearchEngineURLQueryAnalyzer.class, + "SearchEngineURLQueryAnalyzer.moduleName.text"); private final static String MODULE_VERSION = "1.0"; private static final String XMLFILE = "SEUQAMappings.xml"; @@ -76,7 +79,10 @@ class SearchEngineURLQueryAnalyzer extends Extract { private static String[] searchEngineNames; private static SearchEngineURLQueryAnalyzer.SearchEngine[] engines; private static Document xmlinput; - private static final SearchEngineURLQueryAnalyzer.SearchEngine NullEngine = new SearchEngineURLQueryAnalyzer.SearchEngine("NONE", "NONE", new HashMap()); + private static final SearchEngineURLQueryAnalyzer.SearchEngine NullEngine = new SearchEngineURLQueryAnalyzer.SearchEngine( + NbBundle.getMessage(SearchEngineURLQueryAnalyzer.class, "SearchEngineURLQueryAnalyzer.engineName.none"), + NbBundle.getMessage(SearchEngineURLQueryAnalyzer.class, "SearchEngineURLQueryAnalyzer.domainSubStr.none"), + new HashMap()); //hide public constructor to prevent from instantiation by ingest module loader @@ -123,7 +129,8 @@ class SearchEngineURLQueryAnalyzer extends Extract { for(Map.Entry kvp : getSplits()){ split = split + "[ " + kvp.getKey() + " :: " + kvp.getValue() + " ]" + ", "; } - return "Name: " + _engineName + "\n Domain Substring: " + _domainSubstring + "\n count: " + _count + "\n Split Tokens: \n " + split; + return NbBundle.getMessage(this.getClass(), "SearchEngineURLQueryAnalyzer.toString", + _engineName, _domainSubstring, _count, split); } } @@ -310,7 +317,9 @@ class SearchEngineURLQueryAnalyzer extends Extract { if (controller.isCancelled()) { logger.info("Operation terminated by user."); } - services.fireModuleDataEvent(new ModuleDataEvent("RecentActivity", BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY)); + services.fireModuleDataEvent(new ModuleDataEvent( + NbBundle.getMessage(this.getClass(), "SearchEngineURLQueryAnalyzer.parentModuleName.noSpace"), + BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY)); logger.info("Extracted " + totalQueries + " queries from the blackboard"); } } @@ -395,7 +404,7 @@ class SearchEngineURLQueryAnalyzer extends Extract { for(String name : searchEngineNames){ total += name + "\n"; } - return "Extracts search queries on the following search engines: \n" + total; + return NbBundle.getMessage(this.getClass(), "SearchEngineURLQueryAnalyzer.getDesc", total); } @Override From 23a331dfb265643ad185fa06f60d36224f394f17 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 14:01:41 -0500 Subject: [PATCH 57/89] Removed unused strings from Bundle. --- .../autopsy/recentactivity/Bundle.properties | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties index d091834b5e..68ae7b8987 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties @@ -6,29 +6,6 @@ OpenIDE-Module-Long-Description=\ The plugin is also fully functional when deployed on Windows version of Autopsy. OpenIDE-Module-Name=RecentActivity OpenIDE-Module-Short-Description=Recent Activity finder ingest module -#RecentActivityTopComponent.makeNodesButton.text=Get Recent Activity -#RecentActivityTopComponent.jLabel1.text=Filter Options -#RecentActivityTopComponent.jLabel2.text=Browser Activity -#RecentActivityTopComponent.jLabel3.text=jLabel3 -#RecentActivityTopComponent.jLabel4.text=Registry Information -#RecentActivityTopComponent.jLabel5.text=Date/Time -#RecentActivityTopComponent.jLabel6.text=Recent Activity Keyword Filter -#RecentActivityTopComponent.jTextField1.text= -#RecentActivityTopComponent.jLabel5.toolTipText= -#RecentActivityTopComponent.jLabel6.toolTipText= -#RecentActivityTopComponent.jLabel7.text=to -#RecentActivityTopComponent.dateFromTextField.text= -#RecentActivityTopComponent.dateToTextField.text= -#RecentActivityTopComponent.dateToButtonCalendar.text= -#RecentActivityTopComponent.dateFromButtonCalendar.text= -#RecentActivityTopComponent.jTextField1.toolTipText=Enter a word or words you'd like to pattern match against -#RecentActivityTopComponent.jCheckBox1.AccessibleContext.accessibleName=IEhistory -#RecentActivityTopComponent.jCheckBox1.label= -#RecentActivityTopComponent.IEhistory.text= -#RecentActivityTopComponent.FFhistory.text=jCheckBox3 -#RecentActivityTopComponent.CHhistory.text=jCheckBox2 -#RecentActivityTopComponent.Cookies.text=jCheckBox4 -#RecentActivityTopComponent.Bookmarks.text=jCheckBox5 Chrome.moduleName=Chrome Chrome.getHistory.errMsg.errGettingFiles=Error when trying to get Chrome history files. Chrome.getHistory.errMsg.couldntFindAnyFiles=Could not find any allocated Chrome history files. From be5ae65c97518fa6aea9871762e1575d4e975c5a Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 15:38:33 -0500 Subject: [PATCH 58/89] Pulled strings into Bundle. Created _ja. Created Bundle in jni Created _ja for jni. Added NbBundle dep to project.xml. --- ScalpelCarver/nbproject/project.xml | 8 ++++++++ .../autopsy/scalpel/Bundle.properties | 3 +++ .../autopsy/scalpel/Bundle_ja.properties | 0 .../scalpel/ScalpelCarverIngestModule.java | 6 ++++-- .../autopsy/scalpel/jni/Bundle.properties | 8 ++++++++ .../autopsy/scalpel/jni/Bundle_ja.properties | 0 .../autopsy/scalpel/jni/ScalpelCarver.java | 18 ++++++++++++------ .../scalpel/jni/ScalpelOutputParser.java | 8 ++++++-- 8 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties create mode 100644 ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle.properties create mode 100644 ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle_ja.properties diff --git a/ScalpelCarver/nbproject/project.xml b/ScalpelCarver/nbproject/project.xml index 09a3bb2f87..05eecf644b 100644 --- a/ScalpelCarver/nbproject/project.xml +++ b/ScalpelCarver/nbproject/project.xml @@ -6,6 +6,14 @@ org.sleuthkit.autopsy.scalpel + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle.properties b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle.properties index 7bef33de95..2b5483a453 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle.properties +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle.properties @@ -4,3 +4,6 @@ OpenIDE-Module-Long-Description=\ Carves files from unallocated space at ingest time.\n\ Carved files are reanalyzed and displayed in the directory tree. OpenIDE-Module-Short-Description=Carves files from unallocated space +ScalpelCarverIngestModule.moduleName=Scalpel Carver +ScalpelCarverIngestModule.moduleDesc.text=Carves files from unallocated space at ingest time.\ +Carved files are reanalyzed and displayed in the directory tree. diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java index 98bfbdf29c..619fd17ae7 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; @@ -55,8 +57,8 @@ class ScalpelCarverIngestModule { // extends IngestModuleAbstractFile { // disab private static final Logger logger = Logger.getLogger(ScalpelCarverIngestModule.class.getName()); private static ScalpelCarverIngestModule instance; - private final String MODULE_NAME = "Scalpel Carver"; - private final String MODULE_DESCRIPTION = "Carves files from unallocated space at ingest time.\nCarved files are reanalyzed and displayed in the directory tree."; + private final String MODULE_NAME = NbBundle.getMessage(ScalpelCarverIngestModule.class, "ScalpelCarverIngestModule.moduleName"); + private final String MODULE_DESCRIPTION = NbBundle.getMessage(ScalpelCarverIngestModule.class, "ScalpelCarverIngestModule.moduleDesc.text"); private final String MODULE_VERSION = Version.getVersion(); private final String MODULE_OUTPUT_DIR_NAME = "ScalpelCarver"; private String moduleOutputDirPath; diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle.properties b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle.properties new file mode 100644 index 0000000000..846b5613c8 --- /dev/null +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle.properties @@ -0,0 +1,8 @@ +ScalpelCarver.loadLib.errMsg.cannotLoadLib=Could not load library {0} for your environment +ScalpelCarver.loadLib.errMsg.cannotLoadLib2=Could not load library {0} for your environment +ScalpelCarver.carve.exception.libNotInit=Scalpel library is not fully initialized. +ScalpelCarver.carve.exception.invalidArgs=Invalid arguments for scalpel carving. +ScalpelCarver.carve.exception.cannotReadConfig=Cannot read libscalpel config file\: {0} +ScalpelCarver.carve.exception.cannotWriteConfig=Cannot write to libscalpel output dir\: {0} +ScalpelOutputParser.outputStart.text=The following files were carved\: +ScalpelOutputParser.toString.text=CarvedFileMeta'{'fileName\={0}, start\: {1}, size\: {2}'}' \ No newline at end of file diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle_ja.properties b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelCarver.java b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelCarver.java index 00a1913bd5..70ea7cd029 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelCarver.java +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelCarver.java @@ -25,6 +25,8 @@ import java.util.Arrays; 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 org.sleuthkit.autopsy.scalpel.jni.ScalpelOutputParser.CarvedFileMeta; import org.sleuthkit.datamodel.AbstractFile; @@ -76,11 +78,11 @@ public class ScalpelCarver { System.loadLibrary(id); success = true; } catch (UnsatisfiedLinkError ex) { - String msg = "Could not load library " + id + " for your environment "; + String msg = NbBundle.getMessage(ScalpelCarver.class, "ScalpelCarver.loadLib.errMsg.cannotLoadLib", id); System.out.println(msg + ex.toString()); logger.log(Level.SEVERE, msg, ex); } catch (Exception ex) { - String msg = "Could not load library " + id + " for your environment "; + String msg = NbBundle.getMessage(ScalpelCarver.class, "ScalpelCarver.loadLib.errMsg.cannotLoadLib2", id); System.out.println(msg + ex.toString()); logger.log(Level.SEVERE, msg, ex); } @@ -113,24 +115,28 @@ public class ScalpelCarver { */ public List carve(AbstractFile file, String configFilePath, String outputFolderPath) throws ScalpelException { if (!initialized) { - throw new ScalpelException("Scalpel library is not fully initialized. "); + throw new ScalpelException(NbBundle.getMessage(this.getClass(), "ScalpelCarver.carve.exception.libNotInit")); } //basic check of arguments before going to jni land if (file == null || configFilePath == null || configFilePath.isEmpty() || outputFolderPath == null || outputFolderPath.isEmpty()) { - throw new ScalpelException("Invalid arguments for scalpel carving. "); + throw new ScalpelException(NbBundle.getMessage(this.getClass(), "ScalpelCarver.carve.exception.invalidArgs")); } //validate the paths passed in File config = new File(configFilePath); if (! config.exists() || ! config.canRead()) { - throw new ScalpelException("Cannot read libscalpel config file: " + configFilePath); + throw new ScalpelException( + NbBundle.getMessage(this.getClass(), "ScalpelCarver.carve.exception.cannotReadConfig", + configFilePath)); } File outDir = new File(outputFolderPath); if (! outDir.exists() || ! outDir.canWrite()) { - throw new ScalpelException("Cannot write to libscalpel output dir: " + outputFolderPath); + throw new ScalpelException( + NbBundle.getMessage(this.getClass(), "ScalpelCarver.carve.exception.cannotWriteConfig", + outputFolderPath)); } final String carverInputId = file.getId() + ": " + file.getName(); diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelOutputParser.java b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelOutputParser.java index 6b78ee5131..ac18bac6d6 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelOutputParser.java +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/jni/ScalpelOutputParser.java @@ -25,6 +25,8 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.TskFileRange; /** @@ -32,7 +34,8 @@ import org.sleuthkit.datamodel.TskFileRange; */ public class ScalpelOutputParser { - private static final String OUTPUT_START = "The following files were carved:"; + private static final String OUTPUT_START = NbBundle.getMessage(ScalpelOutputParser.class, + "ScalpelOutputParser.outputStart.text"); public static class CarvedFileMeta { @@ -62,7 +65,8 @@ public class ScalpelOutputParser { @Override public String toString() { - return "CarvedFileMeta{" + "fileName=" + fileName + ", start: " + byteRange.getByteStart() + ", size: " + byteRange.getByteLen() + '}'; + return NbBundle.getMessage(this.getClass(), "ScalpelOutputParser.toString.text", + fileName, byteRange.getByteStart(), byteRange.getByteLen()); } } From dee8153cb30db890126d8b300bf39c4001acee79 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 16:28:56 -0500 Subject: [PATCH 59/89] Pulled strings into Bundle. Added _ja. Added NbBundle dep to project.xml --- SevenZip/nbproject/project.xml | 8 ++ .../autopsy/sevenzip/Bundle.properties | 22 ++++++ .../sevenzip/SevenZipContentReadStream.java | 7 +- .../sevenzip/SevenZipIngestModule.java | 73 ++++++++++++------- 4 files changed, 83 insertions(+), 27 deletions(-) diff --git a/SevenZip/nbproject/project.xml b/SevenZip/nbproject/project.xml index ef6d94d674..309b2a4e03 100644 --- a/SevenZip/nbproject/project.xml +++ b/SevenZip/nbproject/project.xml @@ -15,6 +15,14 @@ 1.32.1 + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties index 1bbc7f018b..f0540e3482 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties @@ -7,3 +7,25 @@ OpenIDE-Module-Long-Description=\ The module is supported on Windows, Linux and Mac operating systems. OpenIDE-Module-Name=SevenZip OpenIDE-Module-Short-Description=7Zip Ingest Module +SevenZipContentReadStream.seek.exception.invalidOrigin=Invalid seek origin\: {0} +SevenZipContentReadStream.read.exception.errReadStream=Error reading content stream. +SevenZipIngestModule.moduleName=Archive Extractor +SevenZipIngestModule.moduleDesc.text=Extracts archive files (zip, rar, arj, 7z, gzip, bzip2, tar), reschedules them to current ingest and populates directory tree with new files. +SevenZipIngestModule.encryptionFileLevel=File-level Encryption +SevenZipIngestModule.encryptionFull=Full Encryption +SevenZipIngestModule.init.errInitModule.msg=Error initializing {0} +SevenZipIngestModule.init.errInitModule.details=Error initializing output dir\: {0}\: {1} +SevenZipIngestModule.init.errCantInitLib=Could not initialize 7-ZIP library\: {0} +SevenZipIngestModule.isZipBombCheck.warnMsg=Possible ZIP bomb detected in archive\: {0}, item\: {1} +SevenZipIngestModule.isZipBombCheck.warnDetails=The archive item compression ratio is {0}, skipping processing of this archive item. +SevenZipIngestModule.unpack.warnMsg.zipBomb=Possible ZIP bomb detected\: {0} +SevenZipIngestModule.unpack.warnDetails.zipBomb=The archive is {0} levels deep, skipping processing of this archive and its contents +SevenZipIngestModule.unpack.unknownPath.msg=Unknown item path in archive\: {0}, will use\: {1} +SevenZipIngestModule.unpack.notEnoughDiskSpace.msg=Not enough disk space to unpack archive item\: {0}, {1} +SevenZipIngestModule.unpack.notEnoughDiskSpace.details=The archive item is too large to unpack, skipping unpacking this item. +SevenZipIngestModule.unpack.errUnpacking.msg=Error unpacking {0} +SevenZipIngestModule.unpack.errUnpacking.details=Error unpacking {0}. {1} +SevenZipIngestModule.unpack.encrFileDetected.msg=Encrypted files in archive detected. +SevenZipIngestModule.unpack.encrFileDetected.details=Some files in archive\: {0} are encrypted. {1} extractor was unable to extract all files from this archive. +SevenZipIngestModule.UnpackStream.write.exception.msg=Error writing unpacked file to\: {0} +SevenZipIngestModule.UnpackedTree.exception.msg=Error adding a derived file to db\:{0} diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java index 8f091f176a..9e180e7829 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.util.logging.Level; import net.sf.sevenzipjbinding.IInStream; import net.sf.sevenzipjbinding.SevenZipException; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.ReadContentInputStream; @@ -57,7 +58,9 @@ public class SevenZipContentReadStream implements IInStream { newPosition = wrapped.seek(offset); break; default: - throw new IllegalArgumentException("Invalid seek origin: " + origin); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "SevenZipContentReadStream.seek.exception.invalidOrigin", + origin)); } return newPosition; @@ -82,7 +85,7 @@ public class SevenZipContentReadStream implements IInStream { return readBytes; } catch (IOException ex) { - String msg = "Error reading content stream."; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipContentReadStream.read.exception.errReadStream"); logger.log(Level.SEVERE, msg, ex); throw new SevenZipException(msg, ex); } diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java index 0d4637221e..3eb6067e57 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.logging.Level; import net.sf.sevenzipjbinding.ISequentialOutStream; import net.sf.sevenzipjbinding.ISevenZipInArchive; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile; import org.sleuthkit.autopsy.ingest.IngestModuleInit; @@ -69,8 +70,9 @@ import org.sleuthkit.datamodel.TskData; public final class SevenZipIngestModule extends IngestModuleAbstractFile { private static final Logger logger = Logger.getLogger(SevenZipIngestModule.class.getName()); - public static final String MODULE_NAME = "Archive Extractor"; - public static final String MODULE_DESCRIPTION = "Extracts archive files (zip, rar, arj, 7z, gzip, bzip2, tar), reschedules them to current ingest and populates directory tree with new files."; + public static final String MODULE_NAME = NbBundle.getMessage(SevenZipIngestModule.class, "SevenZipIngestModule.moduleName"); + public static final String MODULE_DESCRIPTION = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.moduleDesc.text"); final public static String MODULE_VERSION = Version.getVersion(); private IngestServices services; private volatile int messageID = 0; @@ -82,8 +84,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { private String unpackDirPath; //absolute, to extract to private FileManager fileManager; //encryption type strings - private static final String ENCRYPTION_FILE_LEVEL = "File-level Encryption"; - private static final String ENCRYPTION_FULL = "Full Encryption"; + private static final String ENCRYPTION_FILE_LEVEL = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.encryptionFileLevel"); + private static final String ENCRYPTION_FULL = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.encryptionFull"); //zip bomb detection private static final int MAX_DEPTH = 4; private static final int MAX_COMPRESSION_RATIO = 600; @@ -130,8 +134,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { unpackDirPathFile.mkdirs(); } catch (SecurityException e) { logger.log(Level.SEVERE, "Error initializing output dir: " + unpackDirPath, e); - String msg = "Error initializing " + MODULE_NAME; - String details = "Error initializing output dir: " + unpackDirPath + ": " + e.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.init.errInitModule.msg", MODULE_NAME); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.init.errInitModule.details", + unpackDirPath, e.getMessage()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); throw e; @@ -144,8 +151,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { logger.log(Level.INFO, "7-Zip-JBinding library was initialized on supported platform: " + platform); } catch (SevenZipNativeInitializationException e) { logger.log(Level.SEVERE, "Error initializing 7-Zip-JBinding library", e); - String msg = "Error initializing " + MODULE_NAME; - String details = "Could not initialize 7-ZIP library: " + e.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.init.errInitModule.msg", + MODULE_NAME); + String details = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.init.errCantInitLib", + e.getMessage()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); throw new RuntimeException(e); @@ -274,10 +283,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { String itemName = archiveFileItem.getPath(); logger.log(Level.INFO, "Possible zip bomb detected, compression ration: " + cRatio + " for in archive item: " + itemName); - String msg = "Possible ZIP bomb detected in archive: " + archiveName - + ", item: " + itemName; - String details = "The archive item compression ratio is " + cRatio - + ", skipping processing of this archive item. "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.isZipBombCheck.warnMsg", archiveName, itemName); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.isZipBombCheck.warnDetails", cRatio); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); @@ -308,9 +317,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { if (parentAr == null) { parentAr = archiveDepthCountTree.addArchive(null, archiveId); } else if (parentAr.getDepth() == MAX_DEPTH) { - String msg = "Possible ZIP bomb detected: " + archiveFile.getName(); - String details = "The archive is " + parentAr.getDepth() - + " levels deep, skipping processing of this archive and its contents "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.warnMsg.zipBomb", archiveFile.getName()); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.warnDetails.zipBomb", + parentAr.getDepth()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); return unpackedFiles; @@ -390,7 +401,8 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { extractedPath = "/" + useName; } - String msg = "Unknown item path in archive: " + archiveFile.getName() + ", will use: " + extractedPath; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.unknownPath.msg", + archiveFile.getName(), extractedPath); logger.log(Level.WARNING, msg); } @@ -432,8 +444,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { if (freeDiskSpace != IngestMonitor.DISK_FREE_SPACE_UNKNOWN && size > 0) { //if known free space and file not empty long newDiskSpace = freeDiskSpace - size; if (newDiskSpace < MIN_FREE_DISK_SPACE) { - String msg = "Not enough disk space to unpack archive item: " + archiveFile.getName() + ", " + fileName; - String details = "The archive item is too large to unpack, skipping unpacking this item. "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.notEnoughDiskSpace.msg", + archiveFile.getName(), fileName); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.notEnoughDiskSpace.details"); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); logger.log(Level.INFO, "Skipping archive item due not sufficient disk space for this item: " + archiveFile.getName() + ", " + fileName); @@ -528,8 +543,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { // print a message if the file is allocated if (archiveFile.isMetaFlagSet(TskData.TSK_FS_META_FLAG_ENUM.ALLOC)) { - String msg = "Error unpacking " + archiveFile.getName(); - String details = "Error unpacking " + fullName + ". " + ex.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.errUnpacking.msg", + archiveFile.getName()); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.errUnpacking.details", + fullName, ex.getMessage()); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); } } finally { @@ -565,9 +583,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { logger.log(Level.SEVERE, "Error creating blackboard artifact for encryption detected for file: " + archiveFile, ex); } - String msg = "Encrypted files in archive detected. "; - String details = "Some files in archive: " + archiveFile.getName() + " are encrypted. " - + MODULE_NAME + " extractor was unable to extract all files from this archive."; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.encrFileDetected.msg"); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.encrFileDetected.details", + archiveFile.getName(), MODULE_NAME); // MessageNotifyUtil.Notify.info(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); @@ -693,7 +712,9 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { try { output.write(bytes); } catch (IOException ex) { - throw new SevenZipException("Error writing unpacked file to: " + localAbsPath, ex); + throw new SevenZipException( + NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.UnpackStream.write.exception.msg", + localAbsPath), ex); } return bytes.length; } @@ -833,7 +854,9 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error adding a derived file to db:" + fileName, ex); - throw new TskCoreException("Error adding a derived file to db:" + fileName, ex); + throw new TskCoreException( + NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.UnpackedTree.exception.msg", + fileName), ex); } //recurse From adbd3567b4868c5be3b13116426424fcbb7ae2a1 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 3 Mar 2014 13:32:44 -0800 Subject: [PATCH 60/89] Translation almost complete. 2 more lines. --- Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index 99a1d0209e..eb1ef70a7a 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -242,4 +242,6 @@ VolumeNode.createSheet.flags.name=\u30D5\u30E9\u30B0 VolumeNode.createSheet.flags.displayName=\u30D5\u30E9\u30B0 VolumeNode.createSheet.flags.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u3093 ArtifactTypeNode.createSheet.artType.name=\u6210\u679C\u7269\u30BF\u30A4\u30D7 -ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7 \ No newline at end of file +ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7 +KeywordHits.createSheet.numChildren.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 +KeywordHits.createSheet.numChildren.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 \ No newline at end of file From b3c0c248c8ed86bc5d896322efa3bf712f903405 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 16:37:52 -0500 Subject: [PATCH 61/89] Added _ja. --- SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 From 46e93d71295024f58bde1bb9a430ce0d24784e8d Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 16:59:01 -0500 Subject: [PATCH 62/89] Pulled strings into Bundle. Created _ja. Added NbBundle dep to project.xml. --- thunderbirdparser/nbproject/project.xml | 8 +++ .../thunderbirdparser/Bundle.properties | 21 ++++++++ .../thunderbirdparser/Bundle_ja.properties | 0 .../autopsy/thunderbirdparser/MboxParser.java | 14 ++++-- .../autopsy/thunderbirdparser/PstParser.java | 9 +++- .../ThunderbirdMboxFileIngestModule.java | 50 +++++++++++++------ 6 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties diff --git a/thunderbirdparser/nbproject/project.xml b/thunderbirdparser/nbproject/project.xml index 950a9d78b0..c31a584419 100644 --- a/thunderbirdparser/nbproject/project.xml +++ b/thunderbirdparser/nbproject/project.xml @@ -6,6 +6,14 @@ org.sleuthkit.autopsy.thunderbirdparser + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties index c94d63cf4f..ddbf65245e 100644 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties @@ -4,3 +4,24 @@ OpenIDE-Module-Long-Description=\ The module extracts Thunderbird e-mail folder hierarchy from the ingested disk image and posts the folder hierarchy and e-mail messages found as results. OpenIDE-Module-Name=ThunderbirdParser OpenIDE-Module-Short-Description=Thunderbird Parser e-mail extractor ingest module +MboxParser.parse.errMsg.failedToReadFile=Failed to read mbox file from disk. +MboxParser.parse.errMsg.couldntFindCharset=Couldn't find appropriate charset encoder. +MboxParser.parse.errMsg.failedToParseNMsgs=Failed to extract {0} email messages. +MboxParser.handleAttch.errMsg.failedToCreateOnDisk=Failed to extract attachment to disk\: {0} +MboxParser.handleAttch.failedWriteToDisk=Failed to extract attachment to disk\: {0} +PstParser.parse.errMsg.failedToParseNMsgs=Failed to extract {0} email messages. +PstParser.extractAttch.errMsg.failedToExtractToDisk=Failed to extract attachment to disk\: {0} +ThunderbirdMboxFileIngestModule.moduleName=Email Parser +ThunderbirdMboxFileIngestModule.hashDbModuleName=Hash Lookup +ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace=Out of disk space. Can''t copy {0} to parse. +ThunderbirdMboxFileIngestModule.encryptionFileLevel=File-level Encryption +ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg=Error while processing {0} +ThunderbirdMboxFileIngestModule.processPst.errProcFile.details=Only files from Outlook 2003 and later are supported. +ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg2=Error while processing {0} +ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg=Error while processing {0} +ThunderbirdMboxFileIngestModule.processMBox.errProfFile.details=Out of disk space. Can't copy file to parse. +ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg2=Error while processing {0} +ThunderbirdMboxFileIngestModule.getDesc.text=This module detects and parses mbox and pst/ost files and populates email artifacts in the blackboard. +ThunderbirdMboxFileIngestModule.handleAttch.errMsg=Error processing {0} +ThunderbirdMboxFileIngestModule.handleAttch.errMsg.details=Failed to add attachment named {0} to the case. +ThunderbirdMboxFileIngestModule.notAvail=Not available diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java index 05086b1ee6..f30b9ce27c 100755 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java @@ -54,6 +54,7 @@ import org.apache.james.mime4j.message.DefaultMessageBuilder; import org.apache.james.mime4j.stream.MimeConfig; import org.apache.tika.parser.txt.CharsetDetector; import org.apache.tika.parser.txt.CharsetMatch; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.ingest.IngestServices; /** @@ -116,14 +117,14 @@ import org.sleuthkit.autopsy.ingest.IngestServices; // Not the right encoder } catch (IOException ex) { logger.log(Level.WARNING, "couldn't find mbox file.", ex); - addErrorMessage("Failed to read mbox file from disk."); + addErrorMessage(NbBundle.getMessage(this.getClass(), "MboxParser.parse.errMsg.failedToReadFile")); return Collections.EMPTY_LIST; } } // If no encoders work, post an error message and return. if (mboxIterator == null || theEncoder == null) { - addErrorMessage("Couldn't find appropriate charset encoder."); + addErrorMessage(NbBundle.getMessage(this.getClass(), "MboxParser.parse.errMsg.couldntFindCharset")); return Collections.EMPTY_LIST; } @@ -142,7 +143,8 @@ import org.sleuthkit.autopsy.ingest.IngestServices; } if (failCount > 0) { - addErrorMessage("Failed to extract " + failCount + " email messages."); + addErrorMessage( + NbBundle.getMessage(this.getClass(), "MboxParser.parse.errMsg.failedToParseNMsgs", failCount)); } return emails; } @@ -255,7 +257,9 @@ import org.sleuthkit.autopsy.ingest.IngestServices; try { fos = new FileOutputStream(outPath); } catch (FileNotFoundException ex) { - addErrorMessage("Failed to extract attachment to disk: " + filename); + addErrorMessage( + NbBundle.getMessage(this.getClass(), + "MboxParser.handleAttch.errMsg.failedToCreateOnDisk", filename)); logger.log(Level.INFO, "Failed to create file output stream for: " + outPath, ex); return; } @@ -270,7 +274,7 @@ import org.sleuthkit.autopsy.ingest.IngestServices; } } catch (IOException ex) { logger.log(Level.INFO, "Failed to write mbox email attachment to disk.", ex); - addErrorMessage("Failed to extract attachment to disk: " + filename); + addErrorMessage(NbBundle.getMessage(this.getClass(), "MboxParser.handleAttch.failedWriteToDisk", filename)); return; } finally { try { diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java index a43aef5dc9..566ab3eb48 100755 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java @@ -33,6 +33,8 @@ import java.util.Collections; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.ingest.IngestServices; import static org.sleuthkit.autopsy.thunderbirdparser.ThunderbirdMboxFileIngestModule.getRelModuleOutputPath; import org.sleuthkit.datamodel.AbstractFile; @@ -80,7 +82,8 @@ class PstParser { pstFile = new PSTFile(file); failures = processFolder(pstFile.getRootFolder(), "\\", true); if (failures > 0) { - addErrorMessage("Failed to extract " + failures + " email messages."); + addErrorMessage( + NbBundle.getMessage(this.getClass(), "PstParser.parse.errMsg.failedToParseNMsgs", failures)); } return ParseResult.OK; } catch (PSTException | IOException ex) { @@ -219,7 +222,9 @@ class PstParser { attachment.setSize(attach.getFilesize()); email.addAttachment(attachment); } catch (PSTException | IOException ex) { - addErrorMessage("Failed to extract attachment to disk: " + filename); + addErrorMessage( + NbBundle.getMessage(this.getClass(), "PstParser.extractAttch.errMsg.failedToExtractToDisk", + filename)); logger.log(Level.WARNING, "Failed to extract attachment from pst file.", ex); } } diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java index 82a4ffcb6e..b6ae70ba60 100644 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.services.FileManager; import org.sleuthkit.autopsy.coreutils.Logger; @@ -53,8 +55,10 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { private static final Logger logger = Logger.getLogger(ThunderbirdMboxFileIngestModule.class.getName()); private static ThunderbirdMboxFileIngestModule instance = null; private IngestServices services; - private static final String MODULE_NAME = "Email Parser"; - private final String hashDBModuleName = "Hash Lookup"; + private static final String MODULE_NAME = NbBundle.getMessage(ThunderbirdMboxFileIngestModule.class, + "ThunderbirdMboxFileIngestModule.moduleName"); + private final String hashDBModuleName = NbBundle.getMessage(ThunderbirdMboxFileIngestModule.class, + "ThunderbirdMboxFileIngestModule.hashDbModuleName"); final public static String MODULE_VERSION = Version.getVersion(); private int messageId = 0; private FileManager fileManager; @@ -132,7 +136,10 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { if (abstractFile.getSize() >= services.getFreeDiskSpace()) { logger.log(Level.WARNING, "Not enough disk space to write file to disk."); - IngestMessage msg = IngestMessage.createErrorMessage(messageId++, this, getName(), "Out of disk space. Can't copy " + abstractFile.getName() + " to parse."); + IngestMessage msg = IngestMessage.createErrorMessage(messageId++, this, getName(), + NbBundle.getMessage(this.getClass(), + "ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace", + abstractFile.getName())); services.postMessage(msg); return ProcessResult.OK; } @@ -155,14 +162,18 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { try { BlackboardArtifact generalInfo = abstractFile.getGenInfoArtifact(); generalInfo.addAttribute(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID(), - MODULE_NAME, "File-level Encryption")); + MODULE_NAME, + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.encryptionFileLevel"))); } catch (TskCoreException ex) { logger.log(Level.INFO, "Failed to add encryption attribute to file: " + abstractFile.getName()); } } else { // parsing error: log message - postErrorMessage("Error while processing " + abstractFile.getName(), - "Only files from Outlook 2003 and later are supported."); + postErrorMessage( + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg", + abstractFile.getName()), + NbBundle.getMessage(this.getClass(), + "ThunderbirdMboxFileIngestModule.processPst.errProcFile.details")); logger.log(Level.INFO, "PSTParser failed to parse " + abstractFile.getName()); return ProcessResult.ERROR; } @@ -173,7 +184,9 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { String errors = parser.getErrors(); if (errors.isEmpty() == false) { - postErrorMessage("Error while processing " + abstractFile.getName(), errors); + postErrorMessage( + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg2", + abstractFile.getName()), errors); } return ProcessResult.OK; @@ -206,8 +219,11 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { if (abstractFile.getSize() >= services.getFreeDiskSpace()) { logger.log(Level.WARNING, "Not enough disk space to write file to disk."); - postErrorMessage("Error while processing " + abstractFile.getName(), - "Out of disk space. Can't copy file to parse."); + postErrorMessage( + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg", + abstractFile.getName()), + NbBundle.getMessage(this.getClass(), + "ThunderbirdMboxFileIngestModule.processMBox.errProfFile.details")); return ProcessResult.OK; } @@ -229,7 +245,9 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { String errors = parser.getErrors(); if (errors.isEmpty() == false) { - postErrorMessage("Error while processing " + abstractFile.getName(), errors); + postErrorMessage( + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.processMBox.errProcFile.msg2", + abstractFile.getName()), errors); } return ProcessResult.OK; @@ -275,7 +293,7 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { @Override public String getDescription() { - return "This module detects and parses mbox and pst/ost files and populates email artifacts in the blackboard."; + return NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.getDesc.text"); } @Override @@ -347,8 +365,11 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { MODULE_NAME, MODULE_VERSION, ""); files.add(df); } catch (TskCoreException ex) { - postErrorMessage("Error processing " + abstractFile.getName(), - "Failed to add attachment named " + filename + " to the case."); + postErrorMessage( + NbBundle.getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.handleAttch.errMsg", + abstractFile.getName()), + NbBundle.getMessage(this.getClass(), + "ThunderbirdMboxFileIngestModule.handleAttch.errMsg.details", filename)); logger.log(Level.INFO, "", ex); } } @@ -399,7 +420,8 @@ public class ThunderbirdMboxFileIngestModule extends IngestModuleAbstractFile { if (rtf.isEmpty() == false) { bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_EMAIL_CONTENT_RTF.getTypeID(), MODULE_NAME, rtf)); } - bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), MODULE_NAME, ((id < 0L) ? "Not available" : String.valueOf(id)))); + bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), MODULE_NAME, ((id < 0L) ? NbBundle + .getMessage(this.getClass(), "ThunderbirdMboxFileIngestModule.notAvail") : String.valueOf(id)))); if (subject.isEmpty() == false) { bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), MODULE_NAME, subject)); } From 82612a9ca507e75de2347506c310b89824b2fa69 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 17:24:58 -0500 Subject: [PATCH 63/89] Pulled strings into Bundle. Created _ja. --- .../autopsy/timeline/Bundle.properties | 23 +++++++ .../autopsy/timeline/Bundle_ja.properties | 0 .../sleuthkit/autopsy/timeline/Timeline.java | 65 ++++++++++++------- 3 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 Timeline/src/org/sleuthkit/autopsy/timeline/Bundle_ja.properties diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle.properties b/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle.properties index ac06311ca1..b997744697 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle.properties +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle.properties @@ -4,6 +4,29 @@ OpenIDE-Module-Long-Description=\ Events for a selected day are viewable in the built-in result and content viewers. OpenIDE-Module-Name=Timeline CTL_MakeTimeline="Make Timeline (Beta)" +CTL_TimelineView=Generate Timeline OpenIDE-Module-Short-Description=Displays user activity timeline TimelineProgressDialog.jLabel1.text=Creating timeline . . . TimelineFrame.title=Timeline +Timeline.frameName.text={0} - Autopsy Timeline (Beta) +Timeline.resultsPanel.title=Timeline Results +Timeline.getName=Make Timeline (Beta) +Timeline.runJavaFxThread.progress.creating=Creating timeline . . . +Timeline.runJavaFxThread.progress.genBodyFile=Generating Bodyfile +Timeline.runJavaFxThread.progress.genMacTime=Generating Mactime +Timeline.runJavaFxThread.progress.parseMacTime=Parsing Mactime +Timeline.zoomOutButton.text=Zoom Out +Timeline.goToButton.text=Go To\: +Timeline.yearBarChart.x.years=Years +Timeline.yearBarChart.y.numEvents=Number of Events +Timeline.MonthsBarChart.x.monthYY=Month ({0}) +Timeline.MonthsBarChart.y.numEvents=Number of Events +Timeline.eventsByMoBarChart.x.dayOfMo=Day of Month +Timeline.eventsByMoBarChart.y.numEvents=Number of Events +Timeline.node.emptyRoot=Empty Root +Timeline.resultPanel.loading=Loading... +Timeline.node.root=Root +Timeline.propChg.confDlg.timelineOOD.msg=Timeline is out of date. Would you like to regenerate it? +Timeline.propChg.confDlg.timelineOOD.details=Select an option +Timeline.initTimeline.confDlg.genBeforeIngest.msg=You are trying to generate a timeline before ingest has been completed. The timeline may be incomplete. Do you want to continue? +Timeline.initTimeline.confDlg.genBeforeIngest.deails=Timeline diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle_ja.properties b/Timeline/src/org/sleuthkit/autopsy/timeline/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java index 479b98cfe0..7333516663 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Timeline.java @@ -75,7 +75,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; @@ -105,7 +104,7 @@ import org.sleuthkit.datamodel.TskCoreException; @ActionRegistration(displayName = "#CTL_MakeTimeline", lazy = false) @ActionReferences(value = { @ActionReference(path = "Menu/Tools", position = 100)}) -@NbBundle.Messages(value = "CTL_TimelineView=Generate Timeline") +//@NbBundle.Messages(value = "CTL_TimelineView=Generate Timeline") /** * The Timeline Action entry point. Collects data and pushes data to javafx * widgets @@ -175,7 +174,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, //Making the main frame * mainFrame = new TimelineFrame(); - mainFrame.setFrameName(Case.getCurrentCase().getName() + " - Autopsy Timeline (Beta)"); + mainFrame.setFrameName( + NbBundle.getMessage(this.getClass(), "Timeline.frameName.text", Case.getCurrentCase().getName())); //use the same icon on jframe as main application mainFrame.setIconImage(WindowManager.getDefault().getMainWindow().getIconImage()); @@ -186,7 +186,9 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, //dataContentPanel.setAlignmentX(Component.RIGHT_ALIGNMENT); //dataContentPanel.setPreferredSize(new Dimension(FRAME_WIDTH, (int) (FRAME_HEIGHT * 0.4))); - dataResultPanel = DataResultPanel.createInstance("Timeline Results", "", Node.EMPTY, 0, dataContentPanel); + dataResultPanel = DataResultPanel.createInstance( + NbBundle.getMessage(this.getClass(), "Timeline.resultsPanel.title"), + "", Node.EMPTY, 0, dataContentPanel); dataResultPanel.setContentViewer(dataContentPanel); //dataResultPanel.setAlignmentX(Component.LEFT_ALIGNMENT); //dataResultPanel.setPreferredSize(new Dimension((int)(FRAME_WIDTH * 0.5), (int) (FRAME_HEIGHT * 0.5))); @@ -211,7 +213,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, public void run() { try { // start the progress bar - progress = ProgressHandleFactory.createHandle("Creating timeline . . ."); + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "Timeline.runJavaFxThread.progress.creating")); progress.start(); fxChartEvents = null; //important to reset old data @@ -239,11 +242,13 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, if (!mactimeFile.exists()) { progressDialog.setProgressTotal(3); //total 3 units logger.log(Level.INFO, "Creating body file"); - progressDialog.updateProgressBar("Generating Bodyfile"); + progressDialog.updateProgressBar( + NbBundle.getMessage(this.getClass(), "Timeline.runJavaFxThread.progress.genBodyFile")); String bodyFilePath = makeBodyFile(); progressDialog.updateProgressBar(++currentProgress); logger.log(Level.INFO, "Creating mactime file: " + mactimeFile.getAbsolutePath()); - progressDialog.updateProgressBar("Generating Mactime"); + progressDialog.updateProgressBar( + NbBundle.getMessage(this.getClass(), "Timeline.runJavaFxThread.progress.genMacTime")); makeMacTime(bodyFilePath); progressDialog.updateProgressBar(++currentProgress); data = null; @@ -253,7 +258,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, } - progressDialog.updateProgressBar("Parsing Mactime"); + progressDialog.updateProgressBar( + NbBundle.getMessage(this.getClass(), "Timeline.runJavaFxThread.progress.parseMacTime")); if (data == null) { logger.log(Level.INFO, "Parsing mactime file: " + mactimeFile.getAbsolutePath()); data = parseMacTime(mactimeFile); //The sum total of the mactime parsing. YearEpochs contain everything you need to make a timeline. @@ -269,7 +275,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, fxDropdownSelectYears = new ComboBox(listSelect); //Buttons for navigating up and down the timeline - fxZoomOutButton = new Button("Zoom Out"); + fxZoomOutButton = new Button(NbBundle.getMessage(this.getClass(), "Timeline.zoomOutButton.text")); fxZoomOutButton.setOnAction(new EventHandler() { @Override public void handle(ActionEvent e) { @@ -301,7 +307,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, //Adding things to the V and H boxes. //hBox_Charts stores the pseudo menu bar at the top of the timeline. |Zoom Out|View Year: [Select Year]|►| - fxHBoxCharts.getChildren().addAll(fxZoomOutButton, new Label("Go To:"), fxDropdownSelectYears); + fxHBoxCharts.getChildren().addAll(fxZoomOutButton, new Label( + NbBundle.getMessage(this.getClass(), "Timeline.goToButton.text")), fxDropdownSelectYears); fxVBox.getChildren().addAll(fxHBoxCharts, fxScrollEvents); //FxBox_V holds things in a visual stack. fxGroupCharts.getChildren().add(fxVBox); //Adding the FxBox to the group. Groups make things easier to manipulate without having to update a hundred things every change. fxPanelCharts.setScene(fxSceneCharts); @@ -346,8 +353,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, final Label l = new Label(""); l.setStyle("-fx-font: 24 arial;"); l.setTextFill(Color.AZURE); - xAxis.setLabel("Years"); - yAxis.setLabel("Number of Events"); + xAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.yearBarChart.x.years")); + yAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.yearBarChart.y.numEvents")); //Charts are made up of individual pieces of Chart.Data. In this case, a piece of barData is a single bar on the graph. //Data is packaged into a series, which can be assigned custom colors or styling //After the series are created, 1 or more series are packaged into a single chart. @@ -413,8 +420,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); - xAxis.setLabel("Month (" + ye.year + ")"); - yAxis.setLabel("Number of Events"); + xAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.MonthsBarChart.x.monthYY", ye.year)); + yAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.MonthsBarChart.y.numEvents")); ObservableList> bcData = FXCollections.observableArrayList(); BarChart.Series se = new BarChart.Series(); @@ -477,8 +484,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, private BarChart createEventsByMonth(final MonthEpoch me, final YearEpoch ye) { final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); - xAxis.setLabel("Day of Month"); - yAxis.setLabel("Number of Events"); + xAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.eventsByMoBarChart.x.dayOfMo")); + yAxis.setLabel(NbBundle.getMessage(this.getClass(), "Timeline.eventsByMoBarChart.y.numEvents")); ObservableList> bcData = makeObservableListByMonthAllDays(me, ye.getYear()); BarChart.Series series = new BarChart.Series(bcData); series.setName(me.getMonthName() + " " + ye.getYear()); @@ -507,9 +514,10 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, @Override public void run() { //reset the view and free the current nodes before loading new ones - final FileRootNode d = new FileRootNode("Empty Root", new ArrayList()); + final FileRootNode d = new FileRootNode( + NbBundle.getMessage(this.getClass(), "Timeline.node.emptyRoot"), new ArrayList()); dataResultPanel.setNode(d); - dataResultPanel.setPath("Loading..."); + dataResultPanel.setPath(NbBundle.getMessage(this.getClass(), "Timeline.resultPanel.loading")); } }); final int day = (Integer.valueOf((barData.getXValue()).split("-")[1])); @@ -525,7 +533,8 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - final FileRootNode d = new FileRootNode("Root", afs); + final FileRootNode d = new FileRootNode( + NbBundle.getMessage(this.getClass(), "Timeline.node.root"), afs); dataResultPanel.setNode(d); //set result viewer title path with the current date String dateString = ye.getYear() + "-" + (1 + me.getMonthInt()) + "-" + +de.dayNum; @@ -620,7 +629,12 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, return; } - int answer = JOptionPane.showConfirmDialog(mainFrame, "Timeline is out of date. Would you like to regenerate it?", "Select an option", JOptionPane.YES_NO_OPTION); + int answer = JOptionPane.showConfirmDialog(mainFrame, + NbBundle.getMessage(this.getClass(), + "Timeline.propChg.confDlg.timelineOOD.msg"), + NbBundle.getMessage(this.getClass(), + "Timeline.propChg.confDlg.timelineOOD.details"), + JOptionPane.YES_NO_OPTION); if (answer != JOptionPane.YES_OPTION) { return; } @@ -1123,10 +1137,11 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, if (IngestManager.getDefault().isIngestRunning()) { int answer = JOptionPane.showConfirmDialog(new JFrame(), - "You are trying to generate a timeline before " - + "ingest has been completed. The timeline may be " - + "incomplete. Do you want to continue?", "Timeline", - JOptionPane.YES_NO_OPTION); + NbBundle.getMessage(this.getClass(), + "Timeline.initTimeline.confDlg.genBeforeIngest.msg"), + NbBundle.getMessage(this.getClass(), + "Timeline.initTimeline.confDlg.genBeforeIngest.deails"), + JOptionPane.YES_NO_OPTION); if (answer != JOptionPane.YES_OPTION) { return; } @@ -1177,7 +1192,7 @@ public class Timeline extends CallableSystemAction implements Presenter.Toolbar, @Override public String getName() { - return "Make Timeline (Beta)"; + return NbBundle.getMessage(this.getClass(), "Timeline.getName"); } @Override From 71e6d2a2adc535c41e7a072afc5ec0a8f76030b4 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 18:21:01 -0500 Subject: [PATCH 64/89] Pulled remaining strings into Bundle. Removed unused string. --- .../keywordsearch/AbstractFileChunk.java | 5 +- .../AbstractFileStringContentStream.java | 7 +- .../autopsy/keywordsearch/Bundle.properties | 76 ++++++++++++++++++- .../keywordsearch/Bundle_ja.properties | 1 - .../keywordsearch/ByteContentStream.java | 4 +- .../keywordsearch/ExtractedContentPanel.java | 6 +- .../keywordsearch/ExtractedContentViewer.java | 21 +++-- .../HighlightedMatchesSource.java | 12 ++- .../autopsy/keywordsearch/Ingester.java | 43 +++++++---- .../autopsy/keywordsearch/Keyword.java | 3 +- .../autopsy/keywordsearch/KeywordSearch.java | 6 +- .../KeywordSearchIngestModule.java | 4 +- .../KeywordSearchListsEncase.java | 13 +++- .../KeywordSearchListsManagementPanel.java | 5 +- .../KeywordSearchListsViewerPanel.java | 6 +- .../KeywordSearchOptionsPanelController.java | 11 ++- .../keywordsearch/KeywordSearchPanel.java | 7 +- .../KeywordSearchQueryManager.java | 2 +- .../KeywordSearchResultFactory.java | 5 +- .../keywordsearch/KeywordSearchSettings.java | 10 ++- .../keywordsearch/NoOpenCoreException.java | 4 +- .../autopsy/keywordsearch/Server.java | 75 +++++++++++------- 22 files changed, 245 insertions(+), 81 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileChunk.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileChunk.java index 9e5e0a2da2..cccd6896b0 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileChunk.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileChunk.java @@ -20,6 +20,8 @@ package org.sleuthkit.autopsy.keywordsearch; import java.nio.charset.Charset; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException; /** @@ -59,7 +61,8 @@ class AbstractFileChunk { //logger.log(Level.INFO, "Ingesting string chunk: " + this.getName() + ": " + chunkID); } catch (Exception ingEx) { success = false; - throw new IngesterException("Problem ingesting file string chunk: " + parent.getSourceFile().getId() + ", chunk: " + chunkID, ingEx); + throw new IngesterException(NbBundle.getMessage(this.getClass(), "AbstractFileChunk.index.exception.msg", + parent.getSourceFile().getId(), chunkID), ingEx); } return success; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileStringContentStream.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileStringContentStream.java index 63873f9dd3..22c3c5a5fb 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileStringContentStream.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/AbstractFileStringContentStream.java @@ -23,6 +23,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.Charset; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.apache.solr.common.util.ContentStream; import org.sleuthkit.datamodel.AbstractContent; @@ -69,12 +71,13 @@ import org.sleuthkit.datamodel.AbstractFile; @Override public Long getSize() { //return convertedLength; - throw new UnsupportedOperationException("Cannot tell how many chars in converted string, until entire string is converted"); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "AbstractFileStringContentStream.getSize.exception.msg")); } @Override public String getSourceInfo() { - return "File:" + content.getId(); + return NbBundle.getMessage(this.getClass(), "AbstractFileStringContentStream.getSrcInfo.text", content.getId()); } @Override diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index eca055301d..37fab7bb11 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -90,7 +90,6 @@ KeywordSearchListsViewerPanel.manageListsButton.toolTipText=Manage keyword lists KeywordSearchConfigurationPanel2.frequencyLabel.text=Results update frequency during ingest: KeywordSearchConfigurationPanel2.timeRadioButton4.text_1=1 minute (faster feedback, longest ingest) KeywordSearchConfigurationPanel2.timeRadioButton4.toolTipText=1 minute (overall ingest time will be longest) -KeywordSearchConfigurationPanel2.showSnippetsCB.text=Show Keyword Preview in Keyword Search Results (will result in longer search times) AbstractKeywordSearchPerformer.search.dialogErrorHeader=Keyword Search Error AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=Invalid query syntax. AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=Keyword Search Ingest in Progress @@ -183,4 +182,79 @@ KeywordSearch.listImportFeatureTitle=Keyword List Import KeywordSearchIngestModule.hashDbModuleName=Hash Lookup KeywordSearchIngestModule.moduleName=Keyword Search KeywordSearchIngestModule.moduleDescription=Performs file indexing and periodic search using keywords and regular expressions in lists. +AbstractFileChunk.index.exception.msg=Problem ingesting file string chunk\: {0}, chunk\: {1} +AbstractFileStringContentStream.getSize.exception.msg=Cannot tell how many chars in converted string, until entire string is converted +AbstractFileStringContentStream.getSrcInfo.text=File\:{0} +ByteContentStream.getSrcInfo.text=File\:{0} +ExtractedContentPanel.SetMarkup.progress.loading=Loading text +ExtractedContentPanel.SetMarkup.progress.displayName=Loading text +ExtractedContentViewer.nextPage.exception.msg=No next page. +ExtractedContentViewer.previousPage.exception.msg=No previous page. +ExtractedContentViewer.hasNextItem.exception.msg=Not supported, not a searchable source. +ExtractedContentViewer.hasPreviousItem.exception.msg=Not supported, not a searchable source. +ExtractedContentViewer.nextItem.exception.msg=Not supported, not a searchable source. +ExtractedContentViewer.previousItem.exception.msg=Not supported, not a searchable source. +ExtractedContentViewer.currentItem.exception.msg=Not supported, not a searchable source. +HighlightedMatchesSource.nextPage.exception.msg=No next page. +HighlightedMatchesSource.previousPage.exception.msg=No previous page. +HighlightedMatchesSource.nextItem.exception.msg=No next item. +HighlightedMatchesSource.previousItem.exception.msg=No previous item. +Ingester.ingest.exception.unknownImgId.msg=Skipping indexing the file, unknown image id, for file\: {0} +Ingester.ingest.exception.cantReadStream.msg=Could not read content stream\: {0} +Ingester.ingest.exception.err.msg=Error ingestint document\: {0} +Ingester.ingestExtract.exception.solrTimeout.msg=Solr index request time out for id\: {0}, name\: {1} +Ingester.ingestExtract.exception.probPostToSolr.msg=Problem posting content to Solr, id\: {0}, name\: {1} +Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=No Solr core available, cannot index the content +Ingester.UpRequestTask.run.exception.probReadFile.msg=Problem reading file. +Ingester.UpRequestTask.run.exception.solrProb.msg=Problem with Solr +Ingester.UpRequestTask.run.exception.probPostToSolr.msg=Problem posting file contents to Solr. SolrException error code\: {0} +Ingester.FscContentStream.getSrcInfo=File\:{0} +Ingester.FscContentStream.getReader=Not supported yet. +Ingester.NullContentStream.getSrcInfo.text=File\:{0} +Ingester.NullContentStream.getReader=Not supported yet. +Keyword.toString.text=Keyword'{'query\={0}, isLiteral\={1}, keywordType\={2}'}' +KeywordSearch.moduleErr=Module Error +KeywordSearch.fireNumIdxFileChg.moduleErr.msg=A module caused an error listening to KeywordSearch updates. See log to determine which module. Some data could be incomplete. +KeywordSearchIngestModule.init.exception.errConnToSolr.msg=Error connecting to SOLR server\: {0} +KeywordSearchListsEncase.save.exception.msg=Not supported yet. +KeywordSearchListsEncase.save2.exception.msg=Not supported yet. +KeywordSearchListsEncase.encaseMetaType.exception.msg=Unsupported EncaseMetaType\: {0} +KeywordSearchListsManagementPanel.getColName.text=Name +KeywordSearchListsManagementPanel.setValueAt.exception.msg=Editing of cells is not supported +KeywordSearchListsViewerPanel.isLuceneQuerySel.exception.msg=Not supported for multi-word queries. +KeywordSearchListsViewerPanel.getQueryText.exception.msg=Not supported for multi-word queries. +KeywordSearchOptionsPanelController.moduleErr=Module Error +KeywordSearchOptionsPanelController.moduleErr.msg1=A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete. +KeywordSearchOptionsPanelController.moduleErr.msg2=A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete. +KeywordSearchPanel.getQueryList.exception.msg=No list for single-keyword search +KeywordSearchQueryManager.pathText.text=Keyword search +KeywordSearchResultFactory.progress.saving=Saving results\: {0} +KeywordSearchSettings.moduleName.text=KeywordSearch +KeywordSearchSettings.properties_options.text={0}_Options +KeywordSearchSettings.propertiesNSRL.text={0}_NSRL +KeywordSearchSettings.propertiesScripts.text={0}_Scripts +NoOpenCoreException.err.noOpenSorlCore.msg=No currently open Solr core. +Server.start.exception.cantStartSolr.msg=Could not start Solr server process +Server.start.exception.cantStartSolr.msg2=Could not start Solr server process +Server.isRunning.exception.errCheckSolrRunning.msg=Error checking if Solr server is running +Server.isRunning.exception.errCheckSolrRunning.msg2=Error checking if Solr server is running +Server.openCore.exception.alreadyOpen.msg=Already an open Core\! Explicitely close Core first. +Server.queryNumIdxFiles.exception.msg=Error querying number of indexed files, +Server.queryNumIdxChunks.exception.msg=Error querying number of indexed chunks, +Server.queryNumIdxDocs.exception.msg=Error querying number of indexed documents, +Server.queryIsIdxd.exception.msg=Error checkign if content is indexed, +Server.queryNumFileChunks.exception.msg=Error getting number of file chunks, +Server.query.exception.msg=Error running query\: {0} +Server.query2.exception.msg=Error running query\: {0} +Server.queryTerms.exception.msg=Error running terms query\: {0} +Server.openCore.exception.msg=Core open requested, but server not yet running +Server.openCore.exception.cantOpen.msg=Could not open Core +Server.openCore.exception.cantOpen.msg2=Could not open Core +Server.request.exception.exception.msg=Could not issue Solr request +Server.commit.exception.msg=Could not commit index +Server.addDoc.exception.msg=Could not add document to index via update handler\: {0} +Server.addDoc.exception.msg2=Could not add document to index via update handler\: {0} +Server.close.exception.msg=Cannot close Core +Server.close.exception.msg2=Cannot close Core +Server.solrServerNoPortException.msg=Indexing server could not bind to port {0}, port is not available, consider change the default {1} port. diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index 993ce3cad9..b0b3009c07 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -70,7 +70,6 @@ KeywordSearchListsViewerPanel.manageListsButton.toolTipText=\u30AD\u30FC\u30EF\u KeywordSearchConfigurationPanel2.frequencyLabel.text=\u51E6\u7406\u4E2D\u306E\u7D50\u679C\u66F4\u65B0\u306E\u983B\u5EA6\uFF1A KeywordSearchConfigurationPanel2.timeRadioButton4.text_1=\uFF11\u5206\uFF08\u3088\u308A\u901F\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u6700\u3082\u9577\u3044\u51E6\u7406\u6642\u9593\uFF09 KeywordSearchConfigurationPanel2.timeRadioButton4.toolTipText=\uFF11\u5206\uFF08\u5168\u4F53\u7684\u306A\u51E6\u7406\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09 -KeywordSearchConfigurationPanel2.showSnippetsCB.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u7D50\u679C\u306B\u30AD\u30FC\u30EF\u30FC\u30C9\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\uFF08\u691C\u7D22\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09 AbstractKeywordSearchPerformer.search.dialogErrorHeader=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A8\u30E9\u30FC AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u5B9F\u884C\u4E2D diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ByteContentStream.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ByteContentStream.java index fc8d132596..8dc2b4fe80 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ByteContentStream.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ByteContentStream.java @@ -24,6 +24,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.Charset; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.apache.solr.common.util.ContentStream; import org.sleuthkit.datamodel.AbstractContent; @@ -84,7 +86,7 @@ class ByteContentStream implements ContentStream { @Override public String getSourceInfo() { - return "File:" + aContent.getId(); + return NbBundle.getMessage(this.getClass(), "ByteContentStream.getSrcInfo.text", aContent.getId()); } @Override diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentPanel.java index bbad85160f..4b72619614 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentPanel.java @@ -682,8 +682,10 @@ class ExtractedContentPanel extends javax.swing.JPanel { @Override protected Object doInBackground() throws Exception { - progress = ProgressHandleFactory.createHandle("Loading text"); - progress.setDisplayName("Loading text"); + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "ExtractedContentPanel.SetMarkup.progress.loading")); + progress.setDisplayName( + NbBundle.getMessage(this.getClass(), "ExtractedContentPanel.SetMarkup.progress.displayName")); progress.start(); progress.switchToIndeterminate(); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java index e8368e14b6..a72b33bd37 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java @@ -134,7 +134,8 @@ public class ExtractedContentViewer implements DataContentViewer { @Override public int nextPage() { if (!hasNextPage()) { - throw new IllegalStateException("No next page."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.nextPage.exception.msg")); } ++currentPage; return currentPage; @@ -143,7 +144,8 @@ public class ExtractedContentViewer implements DataContentViewer { @Override public int previousPage() { if (!hasPreviousPage()) { - throw new IllegalStateException("No previous page."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.previousPage.exception.msg")); } --currentPage; return currentPage; @@ -151,27 +153,32 @@ public class ExtractedContentViewer implements DataContentViewer { @Override public boolean hasNextItem() { - throw new UnsupportedOperationException("Not supported, not a searchable source."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.hasNextItem.exception.msg")); } @Override public boolean hasPreviousItem() { - throw new UnsupportedOperationException("Not supported, not a searchable source."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.hasPreviousItem.exception.msg")); } @Override public int nextItem() { - throw new UnsupportedOperationException("Not supported, not a searchable source."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.nextItem.exception.msg")); } @Override public int previousItem() { - throw new UnsupportedOperationException("Not supported, not a searchable source."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.previousItem.exception.msg")); } @Override public int currentItem() { - throw new UnsupportedOperationException("Not supported, not a searchable source."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "ExtractedContentViewer.currentItem.exception.msg")); } @Override diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java index a7d08fdcd3..a94d2865ad 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java @@ -223,7 +223,8 @@ class HighlightedMatchesSource implements MarkupSource, HighlightLookup { @Override public int nextPage() { if (!hasNextPage()) { - throw new IllegalStateException("No next page."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.nextPage.exception.msg")); } int idx = pages.indexOf(this.currentPage); currentPage = pages.get(idx + 1); @@ -233,7 +234,8 @@ class HighlightedMatchesSource implements MarkupSource, HighlightLookup { @Override public int previousPage() { if (!hasPreviousPage()) { - throw new IllegalStateException("No previous page."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.previousPage.exception.msg")); } int idx = pages.indexOf(this.currentPage); currentPage = pages.get(idx - 1); @@ -259,7 +261,8 @@ class HighlightedMatchesSource implements MarkupSource, HighlightLookup { @Override public int nextItem() { if (!hasNextItem()) { - throw new IllegalStateException("No next item."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.nextItem.exception.msg")); } int cur = pagesToHits.get(currentPage) + 1; pagesToHits.put(currentPage, cur); @@ -269,7 +272,8 @@ class HighlightedMatchesSource implements MarkupSource, HighlightLookup { @Override public int previousItem() { if (!hasPreviousItem()) { - throw new IllegalStateException("No previous item."); + throw new IllegalStateException( + NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.previousItem.exception.msg")); } int cur = pagesToHits.get(currentPage) - 1; pagesToHits.put(currentPage, cur); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java index d4a7c2fffc..12d9999b01 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java @@ -41,6 +41,7 @@ import org.apache.solr.common.SolrException.ErrorCode; import org.apache.solr.common.util.ContentStream; import org.apache.solr.common.SolrInputDocument; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.datamodel.ContentUtils; @@ -279,7 +280,8 @@ class Ingester { if (fields.get(Server.Schema.IMAGE_ID.toString()) == null) { //skip the file, image id unknown - String msg = "Skipping indexing the file, unknown image id, for file: " + cs.getName(); + String msg = NbBundle.getMessage(this.getClass(), + "Ingester.ingest.exception.unknownImgId.msg", cs.getName()); logger.log(Level.SEVERE, msg); throw new IngesterException(msg); } @@ -301,7 +303,9 @@ class Ingester { is = cs.getStream(); read = is.read(docChunkContentBuf); } catch (IOException ex) { - throw new IngesterException("Could not read content stream: " + cs.getName()); + throw new IngesterException( + NbBundle.getMessage(this.getClass(), "Ingester.ingest.exception.cantReadStream.msg", + cs.getName())); } finally { try { is.close(); @@ -333,7 +337,8 @@ class Ingester { solrServer.addDocument(updateDoc); uncommitedIngests = true; } catch (KeywordSearchModuleException ex) { - throw new IngesterException("Error ingestint document: " + cs.getName(), ex); + throw new IngesterException( + NbBundle.getMessage(this.getClass(), "Ingester.ingest.exception.err.msg", cs.getName()), ex); } @@ -373,9 +378,13 @@ class Ingester { logger.log(Level.WARNING, "Solr timeout encountered, trying to restart Solr"); //restart may be needed to recover from some error conditions hardSolrRestart(); - throw new IngesterException("Solr index request time out for id: " + fields.get("id") + ", name: " + fields.get("file_name")); + throw new IngesterException( + NbBundle.getMessage(this.getClass(), "Ingester.ingestExtract.exception.solrTimeout.msg", + fields.get("id"), fields.get("file_name"))); } catch (Exception e) { - throw new IngesterException("Problem posting content to Solr, id: " + fields.get("id") + ", name: " + fields.get("file_name"), e); + throw new IngesterException( + NbBundle.getMessage(this.getClass(), "Ingester.ingestExtract.exception.probPostToSolr.msg", + fields.get("id"), fields.get("file_name")), e); } uncommitedIngests = true; } @@ -443,14 +452,17 @@ class Ingester { up.setMethod(METHOD.POST); solrServer.request(up); } catch (NoOpenCoreException ex) { - throw new RuntimeException("No Solr core available, cannot index the content", ex); + throw new RuntimeException( + NbBundle.getMessage(this.getClass(), "Ingester.UpReqestTask.run.exception.sorlNotAvail.msg"), ex); } catch (IllegalStateException ex) { // problems with content - throw new RuntimeException("Problem reading file.", ex); + throw new RuntimeException( + NbBundle.getMessage(this.getClass(), "Ingester.UpRequestTask.run.exception.probReadFile.msg"), ex); } catch (SolrServerException ex) { // If there's a problem talking to Solr, something is fundamentally // wrong with ingest - throw new RuntimeException("Problem with Solr", ex); + throw new RuntimeException( + NbBundle.getMessage(this.getClass(), "Ingester.UpRequestTask.run.exception.solrProb.msg"), ex); } catch (SolrException ex) { // Tika problems result in an unchecked SolrException ErrorCode ec = ErrorCode.getErrorCode(ex.code()); @@ -458,7 +470,10 @@ class Ingester { // When Tika has problems with a document, it throws a server error // but it's okay to continue with other documents if (ec.equals(ErrorCode.SERVER_ERROR)) { - throw new RuntimeException("Problem posting file contents to Solr. SolrException error code: " + ec, ex); + throw new RuntimeException(NbBundle.getMessage(this.getClass(), + "Ingester.UpRequestTask.run.exception.probPostToSolr.msg", + ec), + ex); } else { // shouldn't get any other error codes throw ex; @@ -513,7 +528,7 @@ class Ingester { @Override public String getSourceInfo() { - return "File:" + f.getId(); + return NbBundle.getMessage(this.getClass(), "Ingester.FscContentStream.getSrcInfo", f.getId()); } @Override @@ -533,7 +548,8 @@ class Ingester { @Override public Reader getReader() throws IOException { - throw new UnsupportedOperationException("Not supported yet."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "Ingester.FscContentStream.getReader")); } } @@ -555,7 +571,7 @@ class Ingester { @Override public String getSourceInfo() { - return "File:" + aContent.getId(); + return NbBundle.getMessage(this.getClass(), "Ingester.NullContentStream.getSrcInfo.text", aContent.getId()); } @Override @@ -575,7 +591,8 @@ class Ingester { @Override public Reader getReader() throws IOException { - throw new UnsupportedOperationException("Not supported yet."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "Ingester.NullContentStream.getReader")); } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Keyword.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Keyword.java index 39035a1684..65acb171b1 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Keyword.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Keyword.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.keywordsearch; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.BlackboardAttribute; /** @@ -72,7 +73,7 @@ class Keyword { @Override public String toString() { - return "Keyword{" + "query=" + keywordString + ", isLiteral=" + isLiteral + ", keywordType=" + keywordType + '}'; + return NbBundle.getMessage(this.getClass(), "Keyword.toString.text", keywordString, isLiteral, keywordType); } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearch.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearch.java index 59f218fc09..c849833d00 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearch.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearch.java @@ -28,6 +28,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import org.openide.util.Exceptions; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.keywordsearch.KeywordSearchResultFactory.ResultWriter; @@ -107,7 +108,10 @@ public class KeywordSearch { } catch (Exception e) { logger.log(Level.SEVERE, "KeywordSearch listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to KeywordSearch updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show(NbBundle.getMessage(KeywordSearch.class, "KeywordSearch.moduleErr"), + NbBundle.getMessage(KeywordSearch.class, + "KeywordSearch.fireNumIdxFileChg.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java index 7220d4d485..376dcf41f3 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java @@ -377,7 +377,9 @@ public final class KeywordSearchIngestModule extends IngestModuleAbstractFile { // we had cases where getStatus was OK, but the connection resulted in a 404 server.queryNumIndexedDocuments(); } catch (KeywordSearchModuleException | NoOpenCoreException ex) { - throw new IngestModuleException("Error connecting to SOLR server: " + ex.getMessage()); + throw new IngestModuleException( + NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.exception.errConnToSolr.msg", + ex.getMessage())); } //initialize extractors diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsEncase.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsEncase.java index 9ad11804a3..a8ea8dee9e 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsEncase.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsEncase.java @@ -18,6 +18,8 @@ */ package org.sleuthkit.autopsy.keywordsearch; +import org.openide.util.NbBundle; + import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -115,12 +117,14 @@ class KeywordSearchListsEncase extends KeywordSearchListsAbstract{ @Override public boolean save() { - throw new UnsupportedOperationException("Not supported yet."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchListsEncase.save.exception.msg")); } @Override public boolean save(boolean isExport) { - throw new UnsupportedOperationException("Not supported yet."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchListsEncase.save2.exception.msg")); } @Override @@ -173,7 +177,10 @@ class KeywordSearchListsEncase extends KeywordSearchListsAbstract{ } else if(type.equals("")) { return Expression; } else { - throw new IllegalArgumentException("Unsupported EncaseMetaType: " + type); + throw new IllegalArgumentException( + NbBundle.getMessage(KeywordSearchListsEncase.class, + "KeywordSearchListsEncase.encaseMetaType.exception.msg", + type)); } } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsManagementPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsManagementPanel.java index e406580f7d..225a077610 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsManagementPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsManagementPanel.java @@ -342,7 +342,7 @@ class KeywordSearchListsManagementPanel extends javax.swing.JPanel implements Op @Override public String getColumnName(int column) { - return "Name"; + return NbBundle.getMessage(this.getClass(), "KeywordSearchListsManagementPanel.getColName.text"); } @Override @@ -357,7 +357,8 @@ class KeywordSearchListsManagementPanel extends javax.swing.JPanel implements Op @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { - throw new UnsupportedOperationException("Editing of cells is not supported"); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchListsManagementPanel.setValueAt.exception.msg")); } @Override diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsViewerPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsViewerPanel.java index 3444d19d16..aff684af70 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsViewerPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsViewerPanel.java @@ -322,12 +322,14 @@ class KeywordSearchListsViewerPanel extends AbstractKeywordSearchPerformer { @Override public boolean isLuceneQuerySelected() { - throw new UnsupportedOperationException("Not supported for multi-word queries."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchListsViewerPanel.isLuceneQuerySel.exception.msg")); } @Override public String getQueryText() { - throw new UnsupportedOperationException("Not supported for multi-word queries."); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchListsViewerPanel.getQueryText.exception.msg")); } void addSearchButtonActionListener(ActionListener al) { diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchOptionsPanelController.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchOptionsPanelController.java index cf28279578..9d050184df 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchOptionsPanelController.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchOptionsPanelController.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; @@ -82,7 +83,10 @@ public final class KeywordSearchOptionsPanelController extends OptionsPanelContr } catch (Exception e) { logger.log(Level.SEVERE, "KeywordSearchOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "KeywordSearchOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "KeywordSearchOptionsPanelController.moduleErr.msg1"), + MessageNotifyUtil.MessageType.ERROR); } } try { @@ -90,7 +94,10 @@ public final class KeywordSearchOptionsPanelController extends OptionsPanelContr } catch (Exception e) { logger.log(Level.SEVERE, "KeywordSearchOptionsPanelController listener threw exception", e); - MessageNotifyUtil.Notify.show("Module Error", "A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete.", MessageNotifyUtil.MessageType.ERROR); + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "KeywordSearchOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "KeywordSearchOptionsPanelController.moduleErr.msg2"), + MessageNotifyUtil.MessageType.ERROR); } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchPanel.java index 3dd2b3f14f..d402eecba9 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchPanel.java @@ -34,12 +34,14 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; 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.SwingUtilities; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; -import org.apache.solr.client.solrj.SolrServerException; + import org.sleuthkit.autopsy.casemodule.Case; /** @@ -384,7 +386,8 @@ class KeywordSearchPanel extends AbstractKeywordSearchPerformer { @Override public List getQueryList() { - throw new UnsupportedOperationException("No list for single-keyword search"); + throw new UnsupportedOperationException( + NbBundle.getMessage(this.getClass(), "KeywordSearchPanel.getQueryList.exception.msg")); } private class KeywordPropertyChangeListener implements PropertyChangeListener { diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchQueryManager.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchQueryManager.java index b3243cf9b1..2982c5cb0a 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchQueryManager.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchQueryManager.java @@ -165,7 +165,7 @@ class KeywordSearchQueryManager { rootNode = Node.EMPTY; } - final String pathText = "Keyword search"; + final String pathText = NbBundle.getMessage(this.getClass(), "KeywordSearchQueryManager.pathText.text"); DataResultTopComponent.initInstance(pathText, rootNode, things.size(), searchResultWin); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java index dbd03d5f07..50c5bf770f 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java @@ -27,6 +27,8 @@ import java.util.List; import java.util.Map; 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.SwingUtilities; import javax.swing.SwingWorker; @@ -569,7 +571,8 @@ class KeywordSearchResultFactory extends ChildFactory { try { final String queryStr = query.getQueryString(); final String queryDisp = queryStr.length() > QUERY_DISPLAY_LEN ? queryStr.substring(0, QUERY_DISPLAY_LEN - 1) + " ..." : queryStr; - progress = ProgressHandleFactory.createHandle("Saving results: " + queryDisp, new Cancellable() { + progress = ProgressHandleFactory.createHandle( + NbBundle.getMessage(this.getClass(), "KeywordSearchResultFactory.progress.saving", queryDisp), new Cancellable() { @Override public boolean cancel() { diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java index e4b667141e..0f0dca2956 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java @@ -25,6 +25,8 @@ import java.util.HashMap; 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.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.StringExtract; @@ -34,10 +36,10 @@ import org.sleuthkit.autopsy.keywordsearch.KeywordSearchIngestModule.UpdateFrequ //This file contains constants and settings for KeywordSearch class KeywordSearchSettings { - public static final String MODULE_NAME = "KeywordSearch"; - static final String PROPERTIES_OPTIONS = MODULE_NAME+"_Options"; - static final String PROPERTIES_NSRL = MODULE_NAME+"_NSRL"; - static final String PROPERTIES_SCRIPTS = MODULE_NAME+"_Scripts"; + public static final String MODULE_NAME = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.moduleName.text"); + static final String PROPERTIES_OPTIONS = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.properties_options.text", MODULE_NAME); + static final String PROPERTIES_NSRL = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.propertiesNSRL.text", MODULE_NAME); + static final String PROPERTIES_SCRIPTS = NbBundle.getMessage(KeywordSearchSettings.class, "KeywordSearchSettings.propertiesScripts.text", MODULE_NAME); private static boolean skipKnown = true; private static final Logger logger = Logger.getLogger(KeywordSearchSettings.class.getName()); private static UpdateFrequency UpdateFreq = UpdateFrequency.DEFAULT; diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/NoOpenCoreException.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/NoOpenCoreException.java index dc9f0b61ac..8c18f39423 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/NoOpenCoreException.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/NoOpenCoreException.java @@ -18,6 +18,8 @@ */ package org.sleuthkit.autopsy.keywordsearch; +import org.openide.util.NbBundle; + /** * * Exception thrown when no core is open @@ -25,7 +27,7 @@ package org.sleuthkit.autopsy.keywordsearch; public class NoOpenCoreException extends Exception { NoOpenCoreException() { - super("No currently open Solr core."); + super(NbBundle.getMessage(NoOpenCoreException.class, "NoOpenCoreException.err.noOpenSorlCore.msg")); } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java index 998d25f24c..a6e55758d9 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Server.java @@ -30,7 +30,6 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.lang.Long; -import java.lang.Long; import java.net.ConnectException; import java.net.ServerSocket; import java.net.SocketException; @@ -38,9 +37,10 @@ import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.AbstractAction; import org.apache.solr.client.solrj.SolrQuery; @@ -57,7 +57,6 @@ import org.openide.modules.Places; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.PlatformUtil; -import org.sleuthkit.autopsy.coreutils.Version; import org.sleuthkit.datamodel.Content; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.client.solrj.impl.XMLResponseParser; @@ -403,10 +402,12 @@ public class Server { } catch (SecurityException ex) { logger.log(Level.WARNING, "Could not start Solr process!", ex); - throw new KeywordSearchModuleException("Could not start Solr server process", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.start.exception.cantStartSolr.msg"), ex); } catch (IOException ex) { logger.log(Level.WARNING, "Could not start Solr server process!", ex); - throw new KeywordSearchModuleException("Could not start Solr server process", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.start.exception.cantStartSolr.msg2"), ex); } } else { logger.log(Level.WARNING, "Could not start Solr server process, port [" + currentSolrServerPort + "] not available!"); @@ -537,10 +538,12 @@ public class Server { logger.log(Level.INFO, "Solr server is not running, cause: " + cause.getMessage()); return false; } else { - throw new KeywordSearchModuleException("Error checking if Solr server is running", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.isRunning.exception.errCheckSolrRunning.msg"), ex); } } catch (IOException ex) { - throw new KeywordSearchModuleException("Error checking if Solr server is running", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.isRunning.exception.errCheckSolrRunning.msg2"), ex); } return true; @@ -552,7 +555,8 @@ public class Server { synchronized void openCore() throws KeywordSearchModuleException { if (currentCore != null) { - throw new KeywordSearchModuleException("Already an open Core! Explicitely close Core first. "); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.openCore.exception.alreadyOpen.msg")); } Case currentCase = Case.getCurrentCase(); @@ -665,7 +669,8 @@ public class Server { try { return currentCore.queryNumIndexedFiles(); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error querying number of indexed files, ", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryNumIdxFiles.exception.msg"), ex); } @@ -686,7 +691,8 @@ public class Server { try { return currentCore.queryNumIndexedChunks(); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error querying number of indexed chunks, ", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryNumIdxChunks.exception.msg"), ex); } } @@ -705,7 +711,8 @@ public class Server { try { return currentCore.queryNumIndexedDocuments(); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error querying number of indexed documents, ", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryNumIdxDocs.exception.msg"), ex); } } @@ -724,7 +731,8 @@ public class Server { try { return currentCore.queryIsIndexed(contentID); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error checkign if content is indexed, ", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryIsIdxd.exception.msg"), ex); } } @@ -744,7 +752,8 @@ public class Server { try { return currentCore.queryNumFileChunks(fileID); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error getting number of file chunks, ", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryNumFileChunks.exception.msg"), ex); } } @@ -763,7 +772,8 @@ public class Server { try { return currentCore.query(sq); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error running query: " + sq.getQuery(), ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.query.exception.msg", sq.getQuery()), ex); } } @@ -783,7 +793,8 @@ public class Server { try { return currentCore.query(sq, method); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error running query: " + sq.getQuery(), ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.query2.exception.msg", sq.getQuery()), ex); } } @@ -802,7 +813,8 @@ public class Server { try { return currentCore.queryTerms(sq); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Error running terms query: " + sq.getQuery(), ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.queryTerms.exception.msg", sq.getQuery()), ex); } } @@ -873,7 +885,8 @@ public class Server { //handle a possible scenario when server process might not be fully started if (!this.isRunning()) { logger.log(Level.WARNING, "Core open requested, but server not yet running"); - throw new KeywordSearchModuleException("Core open requested, but server not yet running"); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.openCore.exception.msg")); } CoreAdminRequest.Create createCore = new CoreAdminRequest.Create(); @@ -888,9 +901,11 @@ public class Server { return newCore; } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Could not open Core", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.openCore.exception.cantOpen.msg"), ex); } catch (IOException ex) { - throw new KeywordSearchModuleException("Could not open Core", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.openCore.exception.cantOpen.msg2"), ex); } } @@ -931,7 +946,8 @@ public class Server { return solrCore.request(request); } catch (IOException e) { logger.log(Level.WARNING, "Could not issue Solr request. ", e); - throw new SolrServerException("Could not issue Solr request", e); + throw new SolrServerException( + NbBundle.getMessage(this.getClass(), "Server.request.exception.exception.msg"), e); } } @@ -951,7 +967,7 @@ public class Server { solrCore.commit(true, true); } catch (IOException e) { logger.log(Level.WARNING, "Could not commit index. ", e); - throw new SolrServerException("Could not commit index", e); + throw new SolrServerException(NbBundle.getMessage(this.getClass(), "Server.commit.exception.msg"), e); } } @@ -960,10 +976,12 @@ public class Server { solrCore.add(doc); } catch (SolrServerException ex) { logger.log(Level.SEVERE, "Could not add document to index via update handler: " + doc.getField("id"), ex); - throw new KeywordSearchModuleException("Could not add document to index via update handler: " + doc.getField("id"), ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.addDoc.exception.msg", doc.getField("id")), ex); } catch (IOException ex) { logger.log(Level.SEVERE, "Could not add document to index via update handler: " + doc.getField("id"), ex); - throw new KeywordSearchModuleException("Could not add document to index via update handler: " + doc.getField("id"), ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.addDoc.exception.msg2", doc.getField("id")), ex); } } @@ -994,9 +1012,11 @@ public class Server { try { CoreAdminRequest.unloadCore(this.name, solrServer); } catch (SolrServerException ex) { - throw new KeywordSearchModuleException("Cannot close Core", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.close.exception.msg"), ex); } catch (IOException ex) { - throw new KeywordSearchModuleException("Cannot close Core", ex); + throw new KeywordSearchModuleException( + NbBundle.getMessage(this.getClass(), "Server.close.exception.msg2"), ex); } } @@ -1092,9 +1112,8 @@ public class Server { private int port; SolrServerNoPortException(int port) { - super("Indexing server could not bind to port " + port - + ", port is not available, consider change the default " - + Server.PROPERTIES_CURRENT_SERVER_PORT + " port."); + super(NbBundle.getMessage(Server.class, "Server.solrServerNoPortException.msg", port, + Server.PROPERTIES_CURRENT_SERVER_PORT)); this.port = port; } From 76b385624f1516957744214f0e6554d3ffc696f1 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Mon, 3 Mar 2014 17:39:15 -0800 Subject: [PATCH 65/89] Partial translation --- .../directorytree/Bundle_ja.properties | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index e69de29bb2..bc5ef9677f 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -0,0 +1,62 @@ +CTL_DirectoryTreeTopComponent=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC +HINT_DirectoryTreeTopComponent=\u3053\u308C\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u3067\u3059 +OpenIDE-Module-Name=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC +FileSystemDetailsPanel.imgOffsetLabel.text=\u753B\u50CF\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A +FileSystemDetailsPanel.fsTypeLabel.text=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u30BF\u30A4\u30D7\uFF1A +FileSystemDetailsPanel.genInfoLabel.text=\u30D5\u30A1\u30A4\u30EB\u4E00\u822C\u60C5\u5831 +FileSystemDetailsPanel.jLabel2.text=\u30D0\u30A4\u30C8 +FileSystemDetailsPanel.jLabel3.text=\u30D0\u30A4\u30C8 +FileSystemDetailsPanel.fsTypeValue.text=... +FileSystemDetailsPanel.imgOffsetValue.text=... +FileSystemDetailsPanel.volumeIDValue.text=... +FileSystemDetailsPanel.blockSizeValue.text=... +FileSystemDetailsPanel.blockCountValue.text=... +FileSystemDetailsPanel.rootInumValue.text=... +FileSystemDetailsPanel.firstInumValue.text=... +FileSystemDetailsPanel.lastInumValue.text=... +FileSystemDetailsPanel.jLabel1.text=\u30D5\u30A1\u30A4\u30EB\u8A73\u7D30\u60C5\u5831 +FileSystemDetailsPanel.volumeIDLabel.text=\u30DC\u30EA\u30E5\u30FC\u30E0ID\uFF1A +FileSystemDetailsPanel.blockSizeLabel.text=\u30D6\u30ED\u30C3\u30AF\u30B5\u30A4\u30BA\uFF1A +FileSystemDetailsPanel.blockCountLabel.text=\u30D6\u30ED\u30C3\u30AF\u6570\uFF1A +#todo better translation? +FileSystemDetailsPanel.rootInumLabel.text=\u30EB\u30FC\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A +FileSystemDetailsPanel.firstInumLabel.text=\u6700\u521D\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A +FileSystemDetailsPanel.lastInumLabel.text=\u6700\u5F8C\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30A8\u30F3\u30C8\u30EA\u30FC\uFF1A +FileSystemDetailsPanel.OKButton.text=OK +VolumeDetailsPanel.volumeIDLabel.text=\u30DC\u30EA\u30E5\u30FC\u30E0ID\uFF1A +VolumeDetailsPanel.volumeIDValue.text=... +VolumeDetailsPanel.startValue.text=... +VolumeDetailsPanel.lengthValue.text=... +VolumeDetailsPanel.descValue.text=... +VolumeDetailsPanel.flagsValue.text=... +VolumeDetailsPanel.startLabel.text=\u6700\u521D\u306E\u30BB\u30AF\u30BF\u30FC\uFF1A +VolumeDetailsPanel.lengthLabel.text=\u30BB\u30AF\u30BF\u30FC\u306E\u9577\u3055\uFF1A +VolumeDetailsPanel.descLabel.text=\u8AAC\u660E\uFF1A +VolumeDetailsPanel.flagsLabel.text=\u30D5\u30E9\u30B0\uFF1A +VolumeDetailsPanel.jLabel1.text=\u30DC\u30EA\u30E5\u30FC\u30E0\u4E00\u822C\u60C5\u5831 +VolumeDetailsPanel.OKButton.text=OK +ImageDetailsPanel.imageInfoLabel.text=\u753B\u50CF\u60C5\u5831 +ImageDetailsPanel.imgNameLabel.text=\u540D\u79F0\uFF1A +ImageDetailsPanel.imgNameValue.text=... +ImageDetailsPanel.imgTypeLabel.text=\u30BF\u30A4\u30D7\uFF1A +ImageDetailsPanel.imgTypeValue.text=... +ImageDetailsPanel.OKButton.text=OK +ImageDetailsPanel.imgSectorSizeLabel.text=\u30BB\u30AF\u30BF\u30FC\u30B5\u30A4\u30BA\uFF1A +ImageDetailsPanel.imgSectorSizeValue.text=... +ImageDetailsPanel.imgTotalSizeValue.text=... +ImageDetailsPanel.imgTotalSizeLabel.text=\u5408\u8A08\u30B5\u30A4\u30BA\uFF1A +ImageDetailsPanel.imgHashValue.text=... +ImageDetailsPanel.imgHashLabel.text=\u30CF\u30C3\u30B7\u30E5\u5024\uFF1A +BlackboardArtifactTagTypeNode.displayName.text=\u7D50\u679C\u30BF\u30B0 +BlackboardArtifactTagTypeNode.createSheet.name.name=\u540D\u79F0 +BlackboardArtifactTagTypeNode.createSheet.name.displayName=\u540D\u79F0 +ChangeViewAction.menuItem.view=\u30D3\u30E5\u30FC +ChangeViewAction.menuItem.view.hex=Hex +ChangeViewAction.menuItem.view.string=\u30B9\u30C8\u30EA\u30F3\u30B0 +DataResultFilterNode.action.viewFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataResultFilterNode.action.viewSrcFileInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u306E\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A +DataResultFilterNode.action.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u306B\u8868\u793A +DataResultFilterNode.action.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F +DataResultFilterNode.action.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 +DataResultFilterNode.action.viewInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u8868\u793A +DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F \ No newline at end of file From 384af092404cb7883ec447674f1ec4c2aaad6854 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 4 Mar 2014 10:47:41 -0500 Subject: [PATCH 66/89] Added missing property strings for keyword search to finish. --- .../src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index eca055301d..ee167b1569 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -149,6 +149,9 @@ KeywordSearchIngestModule.init.badInitMsg=Keyword search server was not properly KeywordSearchIngestModule.init.tryStopSolrMsg={0}
        Please try stopping old java Solr process (if it exists) and restart the application. KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=Only indexing will be done and and keyword search will be skipped (you can still add keyword lists using the Keyword Lists - Add to Ingest). +KeywordSearchIngestModule.doInBackGround.displayName=Keyword Search +KeywordSearchIngestModule.doInBackGround.finalizeMsg = Finalizing... +KeywordSearchIngestModule.doInBackGround.pendingMsg=Working on Keyword Search... KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=Files with known types KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=Files with general strings extracted KeywordSearchIngestModule.postIndexSummary.mdOnlyLbl=Metadata only was indexed From cec87ba3900a623af7499f562e2dd779be63ce2a Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 4 Mar 2014 12:42:51 -0500 Subject: [PATCH 67/89] Added missing strings to Bundle. --- .../src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index 37fab7bb11..35571d02c8 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -257,4 +257,8 @@ Server.addDoc.exception.msg2=Could not add document to index via update handler\ Server.close.exception.msg=Cannot close Core Server.close.exception.msg2=Cannot close Core Server.solrServerNoPortException.msg=Indexing server could not bind to port {0}, port is not available, consider change the default {1} port. +KeywordSearchIngestModule.doInBackGround.displayName=Keyword Search +KeywordSearchIngestModule.doInBackGround.finalizeMsg= - Finalizing +KeywordSearchIngestModule.doInBackGround.pendingMsg= (Pending) +KeywordSearchIngestModule.doInBackGround.cancelMsg= (Cancelling...) From bc218f6dbaa135a5cc78a0a406f5693899a3a00f Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 10:52:41 -0800 Subject: [PATCH 68/89] Still clarifying one more module. --- .../src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index eb1ef70a7a..8c419ce61a 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -244,4 +244,7 @@ VolumeNode.createSheet.flags.desc=\u8AAC\u660E\u304C\u3042\u308A\u307E\u305B\u30 ArtifactTypeNode.createSheet.artType.name=\u6210\u679C\u7269\u30BF\u30A4\u30D7 ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7 KeywordHits.createSheet.numChildren.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 -KeywordHits.createSheet.numChildren.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 \ No newline at end of file +KeywordHits.createSheet.numChildren.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 +#todo check meaning +KeywordHits.simpleLiteralSearch.text= +KeywordHits.singleRegexSearch.text=\u30B7\u30F3\u30B0\u30EB\u6B63\u898F\u8868\u73FE\u691C\u7D22 \ No newline at end of file From 9a1576ab5634a62d1eedfa9de7234fa63ca70784 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Tue, 4 Mar 2014 14:20:36 -0500 Subject: [PATCH 69/89] Pulled 2 new static strings into Bundle. --- .../src/org/sleuthkit/autopsy/directorytree/Bundle.properties | 2 ++ .../sleuthkit/autopsy/directorytree/ExtractUnallocAction.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties index dfef5e7451..17cef5af9a 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties @@ -98,3 +98,5 @@ ExtractUnallocAction.done.notifyMsg.completedExtract.msg=Files were extracted to 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} +ExtractUnallocAction.done.errMsg.title=Error Extracting +ExtractUnallocAction.done.errMsg.msg=Error extracting unallocated space\: {0} diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java index c266d353c1..d70d4ffbdb 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java @@ -316,7 +316,9 @@ import org.sleuthkit.datamodel.VolumeSystem; lus.get(0).getFile().getParent())); } } catch (InterruptedException | ExecutionException ex) { - MessageNotifyUtil.Notify.error("Error Extracting", "Error extracting unallocated space: " + ex.getMessage()); + MessageNotifyUtil.Notify.error( + NbBundle.getMessage(this.getClass(), "ExtractUnallocAction.done.errMsg.title"), + NbBundle.getMessage(this.getClass(), "ExtractUnallocAction.done.errMsg.msg", ex.getMessage())); } } } From bbd1eee967407bf6c0ccc692b054a1b1cfa04af9 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 12:24:01 -0800 Subject: [PATCH 70/89] Initial translation --- .../autopsy/directorytree/Bundle.properties | 2 +- .../directorytree/Bundle_ja.properties | 29 +++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties index dfef5e7451..0f188586bc 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties @@ -81,7 +81,7 @@ 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.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...) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index bc5ef9677f..52d157287d 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -1,7 +1,7 @@ CTL_DirectoryTreeTopComponent=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC HINT_DirectoryTreeTopComponent=\u3053\u308C\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC\u3067\u3059 OpenIDE-Module-Name=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30C4\u30EA\u30FC -FileSystemDetailsPanel.imgOffsetLabel.text=\u753B\u50CF\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A +FileSystemDetailsPanel.imgOffsetLabel.text=\u30A4\u30E1\u30FC\u30B8\u30AA\u30D5\u30BB\u30C3\u30C8\uFF1A FileSystemDetailsPanel.fsTypeLabel.text=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u30BF\u30A4\u30D7\uFF1A FileSystemDetailsPanel.genInfoLabel.text=\u30D5\u30A1\u30A4\u30EB\u4E00\u822C\u60C5\u5831 FileSystemDetailsPanel.jLabel2.text=\u30D0\u30A4\u30C8 @@ -35,7 +35,7 @@ VolumeDetailsPanel.descLabel.text=\u8AAC\u660E\uFF1A VolumeDetailsPanel.flagsLabel.text=\u30D5\u30E9\u30B0\uFF1A VolumeDetailsPanel.jLabel1.text=\u30DC\u30EA\u30E5\u30FC\u30E0\u4E00\u822C\u60C5\u5831 VolumeDetailsPanel.OKButton.text=OK -ImageDetailsPanel.imageInfoLabel.text=\u753B\u50CF\u60C5\u5831 +ImageDetailsPanel.imageInfoLabel.text=\u30A4\u30E1\u30FC\u30B8\u60C5\u5831 ImageDetailsPanel.imgNameLabel.text=\u540D\u79F0\uFF1A ImageDetailsPanel.imgNameValue.text=... ImageDetailsPanel.imgTypeLabel.text=\u30BF\u30A4\u30D7\uFF1A @@ -59,4 +59,27 @@ DataResultFilterNode.action.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30 DataResultFilterNode.action.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F DataResultFilterNode.action.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 DataResultFilterNode.action.viewInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u8868\u793A -DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F \ No newline at end of file +#todo check meaning +DirectoryTreeFilterNode.action.openFileSrcByAttr.text= +DirectoryTreeFilterNode.action.runIngestMods.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u5B9F\u884C +DirectoryTreeTopComponent.title.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0 +DirectoryTreeTopComponent.action.viewArtContent.text=\u6210\u679C\u7269\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A +DirectoryTreeTopComponent.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +DirectoryTreeTopComponent.moduleErr.msg=DirectoryTreeTopComponent\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u30ED\u30B0\u3067\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.action.imgDetails.title=\u30A4\u30E1\u30FC\u30B8\u8A73\u7D30 +ExplorerNodeActionVisitor.action.extUnallocToSingleFiles=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u5185\u306E\u30C7\u30FC\u30BF\u3092\u8907\u6570\u306E\u30B7\u30F3\u30B0\u30EB\u30D5\u30A1\u30A4\u30EB\u306B\u62BD\u51FA +ExplorerNodeActionVisitor.action.fileSystemDetails.title=\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u8A73\u7D30 +ExplorerNodeActionVisitor.action.volumeDetails.title=\u30DC\u30EA\u30E5\u30FC\u30E0\u8A73\u7D30 +ExplorerNodeActionVisitor.action.extUnallocToSingleFile=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u5185\u306E\u30C7\u30FC\u30BF\u3092\u4E00\u3064\u306E\u30B7\u30F3\u30B0\u30EB\u30D5\u30A1\u30A4\u30EB\u306B\u62BD\u51FA +ExplorerNodeActionVisitor.volDetail.noVolMatchErr=\u30A8\u30E9\u30FC\uFF1A\u4E00\u81F4\u3059\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.imgDetail.noVolMatchesErr=\u30A8\u30E9\u30FC\uFF1A\u4E00\u81F4\u3059\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExplorerNodeActionVisitor.exception.probGetParent.text={0}\: {1}\u304B\u3089\u30DA\u30A2\u30EC\u30F3\u30C8\u3092\u5165\u624B\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F +ExtractAction.title.extractFiles.text=\u30D5\u30A1\u30A4\u30EB\u3092\u62BD\u51FA +ExtractAction.extractFiles.cantCreateFolderErr.msg=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ExtractAction.confDlg.destFileExist.msg=\u4FDD\u5B58\u5148\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3001\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F +ExtractAction.confDlg.destFileExist.title=\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059 +ExtractAction.msgDlg.cantOverwriteFile.msg=\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB{0}\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ExtractAction.notifyDlg.noFileToExtr.msg=\u62BD\u51FA\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractAction.progress.extracting=\u62BD\u51FA\u4E2D +ExtractAction.progress.cancellingExtraction={0}\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +ExtractAction.done.notifyMsg.fileExtr.text=\u30D5\u30A1\u30A4\u30EB\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 \ No newline at end of file From 91e03f7a93851e0e9f93fbc01fbb973f477af7a7 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 12:50:06 -0800 Subject: [PATCH 71/89] =?UTF-8?q?Corrected=20"Regular=20Expression"=20tran?= =?UTF-8?q?slation=20to=20=E6=AD=A3=E8=A6=8F=E8=A1=A8=E7=8F=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sleuthkit/autopsy/keywordsearch/Bundle_ja.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index 993ce3cad9..613f087148 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -17,7 +17,7 @@ ExtractedContentPanel.copyMenuItem.text=\u30B3\u30D4\u30FC ExtractedContentPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E KeywordSearchEditListPanel.saveListButton.text=\u30EA\u30B9\u30C8\u3092\u30B3\u30D4\u30FC KeywordSearchEditListPanel.addWordButton.text=\u8FFD\u52A0 -KeywordSearchEditListPanel.chRegex.text=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearchEditListPanel.chRegex.text=\u6B63\u898F\u8868\u73FE KeywordSearchEditListPanel.deleteWordButton.text=\u9078\u629E\u3057\u305F\u3082\u306E\u3092\u524A\u9664 KeywordSearchEditListPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 KeywordSearchEditListPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E @@ -29,7 +29,7 @@ KeywordSearchListsManagementPanel.newListButton.text=\u65B0\u898F\u30EA\u30B9\u3 KeywordSearchEditListPanel.useForIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u4F7F\u7528 KeywordSearchListsManagementPanel.importButton.text=\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 KeywordSearchPanel.searchBox.text=\u691C\u7D22... -KeywordSearchPanel.regExCheckboxMenuItem.text=\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u4F7F\u7528 +KeywordSearchPanel.regExCheckboxMenuItem.text=\u6B63\u898F\u8868\u73FE\u3092\u4F7F\u7528 KeywordSearchListsViewerPanel.searchAddButton.text=\u691C\u7D22 KeywordSearchListsViewerPanel.manageListsButton.text=\u30EA\u30B9\u30C8\u3092\u7BA1\u7406 KeywordSearchListsViewerPanel.ingestIndexLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A @@ -120,7 +120,7 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.fileFilterLabel=\u30AD\u3 KeywordSearchEditListPanel.exportButtonActionPerformed.fileExistPrompt=\ {0} \u30D5\u30A1\u30A4\u30EB\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 KeywordSearchEditListPanel.kwColName=\u30AD\u30FC\u30EF\u30FC\u30C9 -KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u6B63\u898F\u8868\u73FE KeywordSearchFilterNode.getFileActions.openExternViewActLbl=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u4E00\u306EMD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A @@ -147,7 +147,7 @@ KeywordSearchListsViewerPanel.initIngest.ongoingIngestMsg=\u30A4\u30F3\u30C7\u30 KeywordSearchListsViewerPanel.initIngest.fileIndexCtMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} KeywordSearch.selectedColLbl=\u9078\u629E\u6E08\u307F KeywordSearch.nameColLbl=\u540D\u524D -KeywordSearch.regExColLbl=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearch.regExColLbl=\u6B63\u898F\u8868\u73FE KeywordSearchQueryManager.execute.exeWinTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 {0} - {1} KeywordSearch.newKeywordListMsg=\u65B0\u898F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 KeywordSearch.importListFileDialogMsg=\ {0}\u3000\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3059\u308B\u306E\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F From 4feba902837411579740ae5ae8d2de41e6de9673 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 12:59:14 -0800 Subject: [PATCH 72/89] Completed translation for core-datamodel --- Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties index 8c419ce61a..3f672341fa 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle_ja.properties @@ -245,6 +245,5 @@ ArtifactTypeNode.createSheet.artType.name=\u6210\u679C\u7269\u30BF\u30A4\u30D7 ArtifactTypeNode.createSheet.artType.displayName=\u6210\u679C\u7269\u30BF\u30A4\u30D7 KeywordHits.createSheet.numChildren.name=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 KeywordHits.createSheet.numChildren.displayName=\u30C1\u30E3\u30A4\u30EB\u30C9\u6570 -#todo check meaning -KeywordHits.simpleLiteralSearch.text= +KeywordHits.simpleLiteralSearch.text=\u30B7\u30F3\u30B0\u30EB\u30EA\u30C6\u30E9\u30EB\u691C\u7D22 KeywordHits.singleRegexSearch.text=\u30B7\u30F3\u30B0\u30EB\u6B63\u898F\u8868\u73FE\u691C\u7D22 \ No newline at end of file From bde878f8df377e0f6d4ce0933bc886b853fb2b63 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 13:45:28 -0800 Subject: [PATCH 73/89] Work in progress before branch switch --- .../org/sleuthkit/autopsy/directorytree/Bundle_ja.properties | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index 52d157287d..b027a9d3ee 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -60,7 +60,7 @@ DataResultFilterNode.action.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\ DataResultFilterNode.action.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 DataResultFilterNode.action.viewInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u8868\u793A #todo check meaning -DirectoryTreeFilterNode.action.openFileSrcByAttr.text= +DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F DirectoryTreeFilterNode.action.runIngestMods.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u5B9F\u884C DirectoryTreeTopComponent.title.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0 DirectoryTreeTopComponent.action.viewArtContent.text=\u6210\u679C\u7269\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A @@ -82,4 +82,5 @@ ExtractAction.msgDlg.cantOverwriteFile.msg=\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB{ ExtractAction.notifyDlg.noFileToExtr.msg=\u62BD\u51FA\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 ExtractAction.progress.extracting=\u62BD\u51FA\u4E2D ExtractAction.progress.cancellingExtraction={0}\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 -ExtractAction.done.notifyMsg.fileExtr.text=\u30D5\u30A1\u30A4\u30EB\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 \ No newline at end of file +ExtractAction.done.notifyMsg.fileExtr.text=\u30D5\u30A1\u30A4\u30EB\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 +ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306E\u30A4\u30E1\u30FC\u30B8 \ No newline at end of file From e80e6d68b0ca0b64336f967a01609b80563037d7 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 14:01:01 -0800 Subject: [PATCH 74/89] =?UTF-8?q?Corrected=20translation=20of=20"image"=20?= =?UTF-8?q?to=20=E3=82=A4=E3=83=A1=E3=83=BC=E3=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopsy/corecomponents/Bundle_ja.properties | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index a8377e7243..adb7dc5c23 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -30,7 +30,7 @@ DataContentViewerString.languageLabel.text=\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A DataContentViewerString.languageCombo.toolTipText=\u30D0\u30A4\u30CA\u30EA\u30B9\u30C8\u30EA\u30F3\u30B0\u306E\u51E6\u7406\uFF08\u62BD\u51FA\u304A\u3088\u3073\u30C7\u30B3\u30FC\u30C9\uFF09\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.imagesLabel.text=\u30A4\u30E1\u30FC\u30B8\uFF1A DataResultViewerThumbnail.imagesRangeLabel.text=- DataResultViewerThumbnail.pageNumLabel.text=- DataResultViewerThumbnail.goToPageLabel.text=\u4E0B\u8A18\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\uFF1A @@ -100,7 +100,7 @@ GstVideoPanel.exception.problemPlayCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\ 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\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\u3067\u3059\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 @@ -109,4 +109,7 @@ 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=Autopsy\u306B\u3064\u3044\u3066 \ No newline at end of file +CTL_CustomAboutAction=Autopsy\u306B\u3064\u3044\u3066 +DataContentViewerHex.ofLabel.text_1=of +DataContentViewerString.ofLabel.text_1=of +DataContentViewerArtifact.ofLabel.text=of \ No newline at end of file From 4ff69ee8d473e33fdaf7c5e49d77e9747fd26343 Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Tue, 4 Mar 2014 17:01:17 -0500 Subject: [PATCH 75/89] Removing logging that is no longer needed. --- Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java | 1 - .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 4e5eea7cc1..6ccd1b89dd 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -591,7 +591,6 @@ public class IngestManager { public synchronized boolean areModulesRunning() { for (IngestModuleAbstract serv : abstractFileModules) { if (serv.hasBackgroundJobsRunning()) { - logger.info("Module " + serv.toString() + " is running"); return true; } } 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 bc57c6caea..c72372eaae 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,15 +265,12 @@ 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()) { new Timeout("pausing", 1000).sleep(); // give it a second (or five) to process } new Timeout("pausing", 15000).sleep(); // give it a second (or fifteen) to process //boolean sleep = true; while (man.areModulesRunning()) { - count++; - logger.info("count is " + count); new Timeout("pausing", 5000).sleep(); // give it a second (or five) to process } From 4bab284366865ff17e052386449c4d7bf58b9259 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 16:42:35 -0800 Subject: [PATCH 76/89] Partial translation of keywordsearch --- .../keywordsearch/Bundle_ja.properties | 93 ++++++++++++++++++- 1 file changed, 88 insertions(+), 5 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index b0b3009c07..03c842ef6c 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -17,7 +17,7 @@ ExtractedContentPanel.copyMenuItem.text=\u30B3\u30D4\u30FC ExtractedContentPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E KeywordSearchEditListPanel.saveListButton.text=\u30EA\u30B9\u30C8\u3092\u30B3\u30D4\u30FC KeywordSearchEditListPanel.addWordButton.text=\u8FFD\u52A0 -KeywordSearchEditListPanel.chRegex.text=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearchEditListPanel.chRegex.text=\u6B63\u898F\u8868\u73FE KeywordSearchEditListPanel.deleteWordButton.text=\u9078\u629E\u3057\u305F\u3082\u306E\u3092\u524A\u9664 KeywordSearchEditListPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 KeywordSearchEditListPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E @@ -29,7 +29,7 @@ KeywordSearchListsManagementPanel.newListButton.text=\u65B0\u898F\u30EA\u30B9\u3 KeywordSearchEditListPanel.useForIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u4F7F\u7528 KeywordSearchListsManagementPanel.importButton.text=\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 KeywordSearchPanel.searchBox.text=\u691C\u7D22... -KeywordSearchPanel.regExCheckboxMenuItem.text=\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u4F7F\u7528 +KeywordSearchPanel.regExCheckboxMenuItem.text=\u6B63\u898F\u8868\u73FE\u3092\u4F7F\u7528 KeywordSearchListsViewerPanel.searchAddButton.text=\u691C\u7D22 KeywordSearchListsViewerPanel.manageListsButton.text=\u30EA\u30B9\u30C8\u3092\u7BA1\u7406 KeywordSearchListsViewerPanel.ingestIndexLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A @@ -119,7 +119,7 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.fileFilterLabel=\u30AD\u3 KeywordSearchEditListPanel.exportButtonActionPerformed.fileExistPrompt=\ {0} \u30D5\u30A1\u30A4\u30EB\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 KeywordSearchEditListPanel.kwColName=\u30AD\u30FC\u30EF\u30FC\u30C9 -KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u6B63\u898F\u8868\u73FE KeywordSearchFilterNode.getFileActions.openExternViewActLbl=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u4E00\u306EMD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A @@ -146,7 +146,7 @@ KeywordSearchListsViewerPanel.initIngest.ongoingIngestMsg=\u30A4\u30F3\u30C7\u30 KeywordSearchListsViewerPanel.initIngest.fileIndexCtMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} KeywordSearch.selectedColLbl=\u9078\u629E\u6E08\u307F KeywordSearch.nameColLbl=\u540D\u524D -KeywordSearch.regExColLbl=\u4E00\u822C\u7684\u306A\u8868\u73FE +KeywordSearch.regExColLbl=\u6B63\u898F\u8868\u73FE KeywordSearchQueryManager.execute.exeWinTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 {0} - {1} KeywordSearch.newKeywordListMsg=\u65B0\u898F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 KeywordSearch.importListFileDialogMsg=\ {0}\u3000\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3059\u308B\u306E\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F @@ -162,4 +162,87 @@ KeywordSearchIngestModule.hashDbModuleName=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\ KeywordSearchIngestModule.moduleName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 KeywordSearchIngestModule.moduleDescription=\u30EA\u30B9\u30C8\u5185\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304A\u3088\u3073\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u4F7F\u3044\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u304A\u3088\u3073\u5B9A\u671F\u7684\u306A\u691C\u7D22\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002 OptionsCategory_Name_KeywordSearchOptions=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 -OptionsCategory_Keywords_KeywordSearchOptions=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 \ No newline at end of file +OptionsCategory_Keywords_KeywordSearchOptions=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 +ExtractedContentPanel.pagePreviousButton.actionCommand= +ExtractedContentPanel.pageOfLabel.text=of +ExtractedContentPanel.pageCurLabel.text=- +ExtractedContentPanel.pageTotalLabel.text=- +KeywordSearchConfigurationPanel2.filesIndexedValue.text=- +KeywordSearchIngestSimplePanel.languagesValLabel.text=- +KeywordSearchConfigurationPanel2.chunksValLabel.text=- +KeywordSearchIngestSimplePanel.keywordSearchEncodings.text=- +AbstractFileChunk.index.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30B9\u30C8\u30EA\u30F3\u30B0\u30C1\u30E3\u30F3\u30AF\u306E\u51E6\u7406\u4E2D\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A {0}, \u30C1\u30E3\u30F3\u30AF\: {1} +AbstractFileStringContentStream.getSize.exception.msg=\u30B9\u30C8\u30EA\u30F3\u30B0\u5168\u4F53\u304C\u5909\u63DB\u3055\u308C\u306A\u3051\u308C\u3070\u3001\u5909\u63DB\u3055\u308C\u305F\u30B9\u30C8\u30EA\u30F3\u30B0\u5185\u306E\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6570\u306F\u4E0D\u660E\u3067\u3059\u3002 +AbstractFileStringContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} +ByteContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} +ExtractedContentPanel.SetMarkup.progress.loading=\u30C6\u30AD\u30B9\u30C8\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D +ExtractedContentPanel.SetMarkup.progress.displayName=\u30C6\u30AD\u30B9\u30C8\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D +ExtractedContentViewer.nextPage.exception.msg=\u6B21\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.previousPage.exception.msg=\u524D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.hasNextItem.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u53EF\u80FD\u306A\u30BD\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.hasPreviousItem.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u53EF\u80FD\u306A\u30BD\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.nextItem.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u53EF\u80FD\u306A\u30BD\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.previousItem.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u53EF\u80FD\u306A\u30BD\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +ExtractedContentViewer.currentItem.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u7D22\u53EF\u80FD\u306A\u30BD\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +HighlightedMatchesSource.nextPage.exception.msg=\u6B21\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +HighlightedMatchesSource.previousPage.exception.msg=\u524D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +HighlightedMatchesSource.nextItem.exception.msg=\u6B21\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +HighlightedMatchesSource.previousItem.exception.msg=\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +Ingester.ingest.exception.unknownImgId.msg=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID\uFF1A{0} +Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +#todo check meaning +Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u51E6\u7406 +Ingester.ingestExtract.exception.solrTimeout.msg=\u4E0B\u8A18\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, name\: {1} +Ingester.ingestExtract.exception.probPostToSolr.msg=Solr\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002ID\uFF1A{0}, \u540D\u79F0\: {1} +Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=Solr\u30B3\u30A2\u304C\u5229\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3002 +Ingester.UpRequestTask.run.exception.probReadFile.msg=\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u53D6\u308A\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Ingester.UpRequestTask.run.exception.solrProb.msg=Solr\u306B\u306F\u554F\u984C\u304C\u3042\u308A\u307E\u3059 +Ingester.UpRequestTask.run.exception.probPostToSolr.msg=\u30D5\u30A1\u30A4\u30EB\u30B3\u30F3\u30C6\u30F3\u30C4\u3092Solr\u306B\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002SolrException\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\uFF1A{0} +Ingester.FscContentStream.getSrcInfo=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} +Ingester.FscContentStream.getReader=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +Ingester.NullContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0} +Ingester.NullContentStream.getReader=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +KeywordSearch.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +KeywordSearch.fireNumIdxFileChg.moduleErr.msg=KeywordSearch\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchIngestModule.init.exception.errConnToSolr.msg=Solr\u30B5\u30FC\u30D0\u3078\u63A5\u7D9A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +KeywordSearchListsEncase.save.exception.msg=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +KeywordSearchListsEncase.save2.exception.msg=\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +KeywordSearchListsEncase.encaseMetaType.exception.msg=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044EncaseMetaType\uFF1A{0} +KeywordSearchListsManagementPanel.getColName.text=\u540D\u79F0 +KeywordSearchListsManagementPanel.setValueAt.exception.msg=\u30BB\u30EB\u306E\u7DE8\u96C6\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093 +KeywordSearchListsViewerPanel.isLuceneQuerySel.exception.msg=\u30DE\u30EB\u30C1\u30EF\u30FC\u30C9\u30AF\u30A8\u30EA\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +KeywordSearchListsViewerPanel.getQueryText.exception.msg=\u30DE\u30EB\u30C1\u30EF\u30FC\u30C9\u30AF\u30A8\u30EA\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +KeywordSearchOptionsPanelController.moduleErr=\u30E2\u30B8\u30E5\u30FC\u30EB\u30A8\u30E9\u30FC +KeywordSearchOptionsPanelController.moduleErr.msg1=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchOptionsPanelController.moduleErr.msg2=KeywordSearchOptionsPanelController\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 +KeywordSearchPanel.getQueryList.exception.msg=\u30B7\u30F3\u30B0\u30EB\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093 +KeywordSearchQueryManager.pathText.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 +KeywordSearchResultFactory.progress.saving=\u7D50\u679C\u3092\u4FDD\u5B58\u4E2D\uFF1A{0} +KeywordSearchSettings.moduleName.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 +KeywordSearchSettings.properties_options.text={0}_\u30AA\u30D7\u30B7\u30E7\u30F3 +KeywordSearchSettings.propertiesNSRL.text={0}_NSRL +KeywordSearchSettings.propertiesScripts.text={0}_\u30B9\u30AF\u30EA\u30D7\u30C8 +NoOpenCoreException.err.noOpenSorlCore.msg=\u73FE\u5728\u7A7A\u3044\u3066\u3044\u308BSolr\u30B3\u30A2\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +Server.start.exception.cantStartSolr.msg=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.start.exception.cantStartSolr.msg2=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.isRunning.exception.errCheckSolrRunning.msg=Solr\u30B5\u30FC\u30D0\u304C\u7A3C\u50CD\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Server.isRunning.exception.errCheckSolrRunning.msg2=Solr\u30B5\u30FC\u30D0\u304C\u7A3C\u50CD\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +Server.openCore.exception.alreadyOpen.msg=\u3059\u3067\u306B\u958B\u3044\u3066\u3044\u308B\u30B3\u30A2\u3067\u3059\uFF01\u307E\u305A\u660E\u793A\u7684\u306B\u30B3\u30A2\u3092\u9589\u3058\u3066\u4E0B\u3055\u3044\u3002 +Server.queryNumIdxFiles.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Server.queryNumIdxChunks.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30C1\u30E3\u30F3\u30AF\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Server.queryNumIdxDocs.exception.msg=\u8907\u6570\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u5BFE\u3057\u3066\u306E\u30AF\u30A8\u30EA\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Server.queryIsIdxd.exception.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Server.queryNumFileChunks.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30C1\u30E3\u30F3\u30AF\u306E\u6570\u3092\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +Server.query.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +Server.query2.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +Server.queryTerms.exception.msg=Terms\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +#todo better translation? +Server.openCore.exception.msg=\u30B3\u30A2\u30AA\u30FC\u30D7\u30F3\u3092\u30EA\u30AF\u30A8\u30B9\u30C8\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u307E\u3060\u7A3C\u50CD\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +Server.openCore.exception.cantOpen.msg=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F3\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.openCore.exception.cantOpen.msg2=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F3\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.request.exception.exception.msg=Solr\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u767A\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.commit.exception.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u30B3\u30DF\u30C3\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +#todo check meaning +Server.addDoc.exception.msg=\u4E0B\u8A18\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u901A\u3057\u3066\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Server.close.exception.msg=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 +Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 \ No newline at end of file From dac5cf0fad6a6249d5f5e6ff3b3b309b3da58300 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Tue, 4 Mar 2014 18:46:05 -0800 Subject: [PATCH 77/89] Partial translation of keywordsearch --- .../org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index 03c842ef6c..8f0473508d 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -245,4 +245,7 @@ Server.commit.exception.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u30B3\u30 #todo check meaning Server.addDoc.exception.msg=\u4E0B\u8A18\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u901A\u3057\u3066\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} Server.close.exception.msg=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 -Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 \ No newline at end of file +Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 +Server.solrServerNoPortException.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u306B\u4F7F\u7528\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306F\u30DD\u30FC\u30C8{0}\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30DD\u30FC\u30C8\u306F\u4F7F\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8{1}\u30DD\u30FC\u30C8\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u4E0B\u3055\u3044\u3002 +KeywordSearchIngestModule.doInBackGround.displayName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 +KeywordSearchIngestModule.doInBackGround.finalizeMsg=-\u3000\u6700\u7D42\u51E6\u7406\u306E\u5B9F\u884C\u4E2D \ No newline at end of file From 02464443e4430b407810d7a3b1179ed7d97ccf09 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 09:32:21 -0800 Subject: [PATCH 78/89] One more to translate. --- .../autopsy/keywordsearch/Bundle_ja.properties | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index 8f0473508d..ed6e080757 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -242,10 +242,14 @@ Server.openCore.exception.cantOpen.msg=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F Server.openCore.exception.cantOpen.msg2=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F3\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.request.exception.exception.msg=Solr\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u767A\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.commit.exception.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u30B3\u30DF\u30C3\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F -#todo check meaning -Server.addDoc.exception.msg=\u4E0B\u8A18\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u901A\u3057\u3066\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Server.addDoc.exception.msg=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} Server.close.exception.msg=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 Server.solrServerNoPortException.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u306B\u4F7F\u7528\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306F\u30DD\u30FC\u30C8{0}\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30DD\u30FC\u30C8\u306F\u4F7F\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8{1}\u30DD\u30FC\u30C8\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u4E0B\u3055\u3044\u3002 KeywordSearchIngestModule.doInBackGround.displayName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 -KeywordSearchIngestModule.doInBackGround.finalizeMsg=-\u3000\u6700\u7D42\u51E6\u7406\u306E\u5B9F\u884C\u4E2D \ No newline at end of file +KeywordSearchIngestModule.doInBackGround.finalizeMsg=-\u3000\u6700\u7D42\u51E6\u7406\u306E\u5B9F\u884C\u4E2D +KeywordSearchIngestModule.doInBackGround.pendingMsg=\uFF08\u30DA\u30F3\u30C7\u30A3\u30F3\u30B0\uFF09 +KeywordSearchIngestModule.doInBackGround.cancelMsg=\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +Server.addDoc.exception.msg2=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +ExtractedContentViewer.getSolrContent.txtBodyItal={0} +Keyword.toString.text=Keyword'{'query\={0}, isLiteral\={1}, keywordType\={2}'}' \ No newline at end of file From 730058771604bd9b90b7307e7f88e5e7fbf12116 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 10:02:04 -0800 Subject: [PATCH 79/89] Two more to translate --- .../autopsy/directorytree/Bundle_ja.properties | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index b027a9d3ee..d98987d966 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -83,4 +83,18 @@ ExtractAction.notifyDlg.noFileToExtr.msg=\u62BD\u51FA\u3067\u304D\u308B\u30D5\u3 ExtractAction.progress.extracting=\u62BD\u51FA\u4E2D ExtractAction.progress.cancellingExtraction={0}\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 ExtractAction.done.notifyMsg.fileExtr.text=\u30D5\u30A1\u30A4\u30EB\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 -ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306E\u30A4\u30E1\u30FC\u30B8 \ No newline at end of file +ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306E\u30A4\u30E1\u30FC\u30B8\u306E\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u306F\u65E2\u306B\u62BD\u51FA\u4E2D\u3067\u3059\u3002\u5225\u306E\u30A4\u30E1\u30FC\u30B8\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002 +ExtractUnallocAction.msgDlg.folderDoesntExist.msg=\u30D5\u30A9\u30EB\u30C0\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u7D9A\u884C\u3059\u308B\u524D\u306B\u6709\u52B9\u306A\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002 +ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg=\u4FDD\u5B58\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 +#todo check meaning +ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306E +ExtractUnallocAction.progress.extractUnalloc.title=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D +ExtractUnallocAction.progress.displayName.cancelling.text=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 +ExtractUnallocAction.processing.counter.msg=\u51E6\u7406\u4E2D\u3000{0}\uFF0F{1} MBs +ExtractUnallocAction.done.notifyMsg.completedExtract.title=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u62BD\u51FA\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 +ExtractUnallocAction.done.notifyMsg.completedExtract.msg=\u30D5\u30A1\u30A4\u30EB\u306F{0}\u3078\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F +ResultDeleteAction.actionPerf.confDlg.delAllResults.msg={0}\u306E\u7D50\u679C\u5168\u3066\u3092\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F +ResultDeleteAction.actoinPerf.confDlg.delAllresults.details={0}\u7D50\u679C\u524A\u9664 +ResultDeleteAction.exception.invalidAction.msg=\u7121\u52B9\u306A\u30A2\u30AF\u30B7\u30E7\u30F3\u30BF\u30A4\u30D7\uFF1A{0} +ExtractUnallocAction.done.errMsg.title=\u62BD\u51FA\u30A8\u30E9\u30FC +ExtractUnallocAction.done.errMsg.msg=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} \ No newline at end of file From 38479cc673e7be8fe58d489bef293c72cd1464d6 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 11:24:33 -0800 Subject: [PATCH 80/89] Completed and checked over translation. --- .../autopsy/keywordsearch/Bundle.properties | 2 +- .../keywordsearch/Bundle_ja.properties | 46 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index 35571d02c8..9dfeee3663 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -201,7 +201,7 @@ HighlightedMatchesSource.nextItem.exception.msg=No next item. HighlightedMatchesSource.previousItem.exception.msg=No previous item. Ingester.ingest.exception.unknownImgId.msg=Skipping indexing the file, unknown image id, for file\: {0} Ingester.ingest.exception.cantReadStream.msg=Could not read content stream\: {0} -Ingester.ingest.exception.err.msg=Error ingestint document\: {0} +Ingester.ingest.exception.err.msg=Error ingesting document\: {0} Ingester.ingestExtract.exception.solrTimeout.msg=Solr index request time out for id\: {0}, name\: {1} Ingester.ingestExtract.exception.probPostToSolr.msg=Problem posting content to Solr, id\: {0}, name\: {1} Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=No Solr core available, cannot index the content diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index ed6e080757..7a662bfabc 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -8,10 +8,10 @@ ListBundleName=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 ListBundleConfig=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u8A2D\u5B9A IndexProgressPanel.statusText.text=\u30B9\u30C6\u30FC\u30BF\u30B9\u30C6\u30AD\u30B9\u30C8 IndexProgressPanel.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB -ExtractedContentPanel.hitLabel.text=\u30DA\u30FC\u30B8\u4E0A\u306E\u4E00\u81F4 -ExtractedContentPanel.hitCountLabel.text= -ExtractedContentPanel.hitOfLabel.text= -ExtractedContentPanel.hitTotalLabel.text= +ExtractedContentPanel.hitLabel.text=\u30DA\u30FC\u30B8\u5185\u306E\u4E00\u81F4\uFF1A +ExtractedContentPanel.hitCountLabel.text=- +ExtractedContentPanel.hitOfLabel.text=of +ExtractedContentPanel.hitTotalLabel.text=- ExtractedContentPanel.hitButtonsLabel.text=\u4E00\u81F4 ExtractedContentPanel.copyMenuItem.text=\u30B3\u30D4\u30FC ExtractedContentPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E @@ -28,7 +28,7 @@ KeywordSearchEditListPanel.deleteListButton.text=\u30EA\u30B9\u30C8\u3092\u524A\ KeywordSearchListsManagementPanel.newListButton.text=\u65B0\u898F\u30EA\u30B9\u30C8 KeywordSearchEditListPanel.useForIngestCheckbox.text=\u51E6\u7406\u4E2D\u306B\u4F7F\u7528 KeywordSearchListsManagementPanel.importButton.text=\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8 -KeywordSearchPanel.searchBox.text=\u691C\u7D22... +KeywordSearchPanel.searchBox.text=\u691C\u7D22\u2026 KeywordSearchPanel.regExCheckboxMenuItem.text=\u6B63\u898F\u8868\u73FE\u3092\u4F7F\u7528 KeywordSearchListsViewerPanel.searchAddButton.text=\u691C\u7D22 KeywordSearchListsViewerPanel.manageListsButton.text=\u30EA\u30B9\u30C8\u3092\u7BA1\u7406 @@ -42,10 +42,10 @@ ExtractedContentPanel.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A KeywordSearchEditListPanel.ingestMessagesCheckbox.text=\u51E6\u7406\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u306B\u9001\u4FE1 KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=\u3053\u306E\u30EA\u30B9\u30C8\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u691C\u7D22\u306B\u30D2\u30C3\u30C8\u3057\u305F\u5834\u5408\u3001\u51E6\u7406\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u306B\u9001\u4FE1 KeywordSearchConfigurationPanel2.skipNSRLCheckBox.text=\u51E6\u7406\u4E2D\u306BNSRL\u306E\u30D5\u30A1\u30A4\u30EB\uFF08\u65E2\u77E5\u306E\u30D5\u30A1\u30A4\u30EB\uFF09\u3092\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u8FFD\u52A0\u3057\u306A\u3044 -KeywordSearchConfigurationPanel2.skipNSRLCheckBox.toolTipText=Hash DB\u30B5\u30FC\u30D3\u30B9\u3092\u4E8B\u524D\u306B\u5B9F\u884C\u3059\u308B\u304B\u3001\u6B21\u56DE\u306E\u51E6\u7406\u6642\u306B\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +KeywordSearchConfigurationPanel2.skipNSRLCheckBox.toolTipText=Hash DB\u30B5\u30FC\u30D3\u30B9\u3092\u4E8B\u524D\u306B\u5B9F\u884C\u3059\u308B\u304B\u3001\u6B21\u56DE\u306E\u51E6\u7406\u306B\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 KeywordSearchConfigurationPanel2.filesIndexedLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30D5\u30A1\u30A4\u30EB\uFF1A KeywordSearchIngestSimplePanel.languagesLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A -KeywordSearchIngestSimplePanel.languagesLabel.toolTipText=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3002\u30A2\u30C9\u30D0\u30F3\u30B9\u8A2D\u5B9A\u3067\u5909\u66F4\u304C\u53EF\u80FD\u3067\u3059\u3002 +KeywordSearchIngestSimplePanel.languagesLabel.toolTipText=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3002\u30A2\u30C9\u30D0\u30F3\u30B9\u8A2D\u5B9A\u304B\u3089\u5909\u66F4\u304C\u53EF\u80FD\u3067\u3059\u3002 KeywordSearchConfigurationPanel3.languagesLabel.text=\u6709\u52B9\u306A\u30B9\u30AF\u30EA\u30D7\u30C8\uFF08\u8A00\u8A9E\uFF09\uFF1A KeywordSearchConfigurationPanel2.chunksLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30C1\u30E3\u30F3\u30AF\uFF1A KeywordSearchConfigurationPanel3.enableUTF8Checkbox.text=UTF8\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u306E\u6709\u52B9\u5316 @@ -104,15 +104,15 @@ KeywordSearch.newKwListTitle=\u65B0\u898F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u3 KeywordSearchConfigurationPanel1.customizeComponents.noOwDefaultMsg=\u30C7\u30D5\u30A9\u30EB\u30C8\u30EA\u30B9\u30C8\u306F\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093 KeywordSearchConfigurationPanel1.customizeComponents.kwListExistMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 <{0}> \u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F KeywordSearchConfigurationPanel1.customizeComponents.kwListSavedMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 <{0}> \u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F -KeywordSearchEditListPanel.customizeComponents.kwReToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u306F\u4E00\u822C\u7684\u306A\u8868\u73FE\u3067\u3059 +KeywordSearchEditListPanel.customizeComponents.kwReToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u306F\u6B63\u7FA9\u8868\u73FE\u3067\u3059 KeywordSearchEditListPanel.customizeComponents.addWordToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30EA\u30B9\u30C8\u306B\u5358\u8A9E\u3092\u8FFD\u52A0 -KeywordSearchEditListPanel.customizeComponents.enterNewWordToolTip=\u65B0\u898F\u5358\u8A9E\u3084\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u5165\u529B +KeywordSearchEditListPanel.customizeComponents.enterNewWordToolTip=\u65B0\u898F\u5358\u8A9E\u3084\u4E00\u6B63\u898F\u8868\u73FE\u3092\u5165\u529B KeywordSearchEditListPanel.customizeComponents.exportToFile=\u65E2\u5B58\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 KeywordSearchEditListPanel.customizeComponents.saveCurrentWIthNewNameToolTip=\u65E2\u5B58\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u540D\u524D\u3092\u4ED8\u3051\u3066\u4FDD\u5B58 KeywordSearchEditListPanel.customizeComponents.removeSelectedMsg=\u9078\u629E\u3057\u305F\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u304B\u3089\u524A\u9664 KeywordSearchEditListPanel.newKwTitle=\u65B0\u898F\u30AD\u30FC\u30EF\u30FC\u30C9\u30A8\u30F3\u30C8\u30EA\u30FC KeywordSearchEditListPanel.addWordButtonAction.kwAlreadyExistsMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u306F\u65E2\u306B\u30EA\u30B9\u30C8\u306B\u5B58\u5728\u3057\u307E\u3059\u3002 -KeywordSearchEditListPanel.invalidKwMsg=\u7121\u52B9\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u30D1\u30BF\u30FC\u30F3\u3002\u5358\u8A9E\u3082\u3057\u304F\u306F\u6B63\u3057\u3044\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +KeywordSearchEditListPanel.invalidKwMsg=\u7121\u52B9\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u30D1\u30BF\u30FC\u30F3\u3002\u5358\u8A9E\u3082\u3057\u304F\u306F\u6B63\u3057\u3044\u6B63\u898F\u8868\u73FE\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 KeywordSearchEditListPanel.removeKwMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u524A\u9664 KeywordSearchEditListPanel.deleteWordButtonActionPerformed.delConfirmMsg=\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u304A\u3051\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u524A\u9664\u3092\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F KeywordSearchEditListPanel.exportButtonActionPerformed.fileFilterLabel=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8XML\u30D5\u30A1\u30A4\u30EB @@ -127,7 +127,7 @@ KeywordSearchIngestModule.init.badInitMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u KeywordSearchIngestModule.init.tryStopSolrMsg={0}
        \u53E4\u3044java Solr\u51E6\u7406\u3092\u505C\u6B62\u3057\uFF08\u3082\u3057\u5B58\u5728\u3059\u308C\u3070\uFF09\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002 KeywordSearchIngestModule.init.noKwInLstMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002 KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3060\u3051\u5B9F\u884C\u3055\u308C\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF08\u300C\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 - \u51E6\u7406\u306B\u8FFD\u52A0\u300D\u3092\u4F7F\u7528\u3057\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u306E\u306F\u53EF\u80FD\u3067\u3059 -KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u306E\u7A2E\u985E\u306E\u30D5\u30A1\u30A4\u30EB +KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u30BF\u30A4\u30D7\u306E\u30D5\u30A1\u30A4\u30EB KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=\u4E00\u822C\u7684\u306A\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u62BD\u51FA\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB KeywordSearchIngestModule.postIndexSummary.mdOnlyLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u307E\u3057\u305F KeywordSearchIngestModule.postIndexSummary.idxErrLbl=\u30A8\u30E9\u30FC\uFF08\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC\uFF09 @@ -135,7 +135,7 @@ KeywordSearchIngestModule.postIndexSummary.errTxtLbl=\u30A8\u30E9\u30FC\uFF08\u3 KeywordSearchIngestModule.postIndexSummary.errIoLbl=\u30A8\u30E9\u30FC\uFF08I/O\uFF09 KeywordSearchIngestModule.postIndexSummary.kwIdxResultsLbl=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u7D50\u679C KeywordSearchIngestModule.postIndexSummary.kwIdxErrsTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30A8\u30E9\u30FC -KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B {0} \u30D5\u30A1\u30A4\u30EB\u306E\u51E6\u7406\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F\u3002 +KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B{0}\u30D5\u30A1\u30A4\u30EB\u306E\u51E6\u7406\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F\u3002 KeywordSearchIngestModule.postIndexSummary.kwIdxWarnMsgTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u8B66\u544A KeywordSearchIngestModule.postIndexSummary.idxErrReadFilesMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u3084\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u7834\u640D\u3057\u305F\u30E1\u30C7\u30A3\u30A2\u3084\u30D5\u30A1\u30A4\u30EB\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 KeywordSearchListsViewerPanel.initIngest.addIngestTitle=\u51E6\u7406\u306B\u8FFD\u52A0 @@ -145,11 +145,11 @@ KeywordSearchListsViewerPanel.initIngest.addIdxSearchMsg=\u9078\u629E\u3057\u305 KeywordSearchListsViewerPanel.initIngest.ongoingIngestMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} \uFF08\u51E6\u7406\u306F\u5B9F\u884C\u4E2D\uFF09 KeywordSearchListsViewerPanel.initIngest.fileIndexCtMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} KeywordSearch.selectedColLbl=\u9078\u629E\u6E08\u307F -KeywordSearch.nameColLbl=\u540D\u524D +KeywordSearch.nameColLbl=\u540D\u79F0 KeywordSearch.regExColLbl=\u6B63\u898F\u8868\u73FE KeywordSearchQueryManager.execute.exeWinTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 {0} - {1} KeywordSearch.newKeywordListMsg=\u65B0\u898F\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 -KeywordSearch.importListFileDialogMsg=\ {0}\u3000\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3059\u308B\u306E\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F +KeywordSearch.importListFileDialogMsg={0}\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F KeywordSearch.yesOwMsg=\u306F\u3044\u3001\u4E0A\u66F8\u304D\u3057\u307E\u3059 KeywordSearch.noSkipMsg=\u3044\u3044\u3048\u3001\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059 KeywordSearch.cancelImportMsg=\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u30AD\u30E3\u30F3\u30BB\u30EB @@ -160,7 +160,7 @@ KeywordSearchListsManagementPanel.fileExtensionFilterLbl=\u30AD\u30FC\u30EF\u30F KeywordSearch.listImportFeatureTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u30A4\u30F3\u30DD\u30FC\u30C8 KeywordSearchIngestModule.hashDbModuleName=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7 KeywordSearchIngestModule.moduleName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 -KeywordSearchIngestModule.moduleDescription=\u30EA\u30B9\u30C8\u5185\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304A\u3088\u3073\u4E00\u822C\u7684\u306A\u8868\u73FE\u3092\u4F7F\u3044\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u304A\u3088\u3073\u5B9A\u671F\u7684\u306A\u691C\u7D22\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002 +KeywordSearchIngestModule.moduleDescription=\u30EA\u30B9\u30C8\u5185\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304A\u3088\u3073\u6B63\u898F\u8868\u73FE\u3092\u4F7F\u3044\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u304A\u3088\u3073\u5B9A\u671F\u7684\u306A\u691C\u7D22\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002 OptionsCategory_Name_KeywordSearchOptions=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 OptionsCategory_Keywords_KeywordSearchOptions=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 ExtractedContentPanel.pagePreviousButton.actionCommand= @@ -189,9 +189,8 @@ HighlightedMatchesSource.previousPage.exception.msg=\u524D\u306E\u30DA\u30FC\u30 HighlightedMatchesSource.nextItem.exception.msg=\u6B21\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 HighlightedMatchesSource.previousItem.exception.msg=\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 Ingester.ingest.exception.unknownImgId.msg=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID\uFF1A{0} -Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} -#todo check meaning -Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u51E6\u7406 +Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} +Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u51E6\u7406\u4E2D\u306E\u30A8\u30E9\u30FC\uFF1A{0} Ingester.ingestExtract.exception.solrTimeout.msg=\u4E0B\u8A18\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, name\: {1} Ingester.ingestExtract.exception.probPostToSolr.msg=Solr\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002ID\uFF1A{0}, \u540D\u79F0\: {1} Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=Solr\u30B3\u30A2\u304C\u5229\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3002 @@ -222,7 +221,7 @@ KeywordSearchSettings.moduleName.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 KeywordSearchSettings.properties_options.text={0}_\u30AA\u30D7\u30B7\u30E7\u30F3 KeywordSearchSettings.propertiesNSRL.text={0}_NSRL KeywordSearchSettings.propertiesScripts.text={0}_\u30B9\u30AF\u30EA\u30D7\u30C8 -NoOpenCoreException.err.noOpenSorlCore.msg=\u73FE\u5728\u7A7A\u3044\u3066\u3044\u308BSolr\u30B3\u30A2\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +NoOpenCoreException.err.noOpenSorlCore.msg=\u73FE\u5728\u958B\u3044\u3066\u3044\u308BSolr\u30B3\u30A2\u306F\u3042\u308A\u307E\u305B\u3093\u3002 Server.start.exception.cantStartSolr.msg=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.start.exception.cantStartSolr.msg2=Solr\u30B5\u30FC\u30D0\u30D7\u30ED\u30BB\u30B9\u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.isRunning.exception.errCheckSolrRunning.msg=Solr\u30B5\u30FC\u30D0\u304C\u7A3C\u50CD\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F @@ -236,10 +235,9 @@ Server.queryNumFileChunks.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30C1\u30E3\u30 Server.query.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} Server.query2.exception.msg=\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} Server.queryTerms.exception.msg=Terms\u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -#todo better translation? -Server.openCore.exception.msg=\u30B3\u30A2\u30AA\u30FC\u30D7\u30F3\u3092\u30EA\u30AF\u30A8\u30B9\u30C8\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u307E\u3060\u7A3C\u50CD\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -Server.openCore.exception.cantOpen.msg=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F3\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F -Server.openCore.exception.cantOpen.msg2=\u30B3\u30A2\u3092\u30AA\u30FC\u30D7\u30F3\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +Server.openCore.exception.msg=\u30B3\u30A2\u3092\u958B\u304F\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u307E\u3060\u7A3C\u50CD\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +Server.openCore.exception.cantOpen.msg=\u30B3\u30A2\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F +Server.openCore.exception.cantOpen.msg2=\u30B3\u30A2\u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F Server.request.exception.exception.msg=Solr\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u767A\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.commit.exception.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u30B3\u30DF\u30C3\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F Server.addDoc.exception.msg=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} @@ -247,7 +245,7 @@ Server.close.exception.msg=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u309 Server.close.exception.msg2=\u30B3\u30A2\u3092\u9589\u3058\u308C\u307E\u305B\u3093 Server.solrServerNoPortException.msg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u306B\u4F7F\u7528\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306F\u30DD\u30FC\u30C8{0}\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30DD\u30FC\u30C8\u306F\u4F7F\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8{1}\u30DD\u30FC\u30C8\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u4E0B\u3055\u3044\u3002 KeywordSearchIngestModule.doInBackGround.displayName=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22 -KeywordSearchIngestModule.doInBackGround.finalizeMsg=-\u3000\u6700\u7D42\u51E6\u7406\u306E\u5B9F\u884C\u4E2D +KeywordSearchIngestModule.doInBackGround.finalizeMsg=-\u3000\u6700\u7D42\u51E6\u7406\u4E2D KeywordSearchIngestModule.doInBackGround.pendingMsg=\uFF08\u30DA\u30F3\u30C7\u30A3\u30F3\u30B0\uFF09 KeywordSearchIngestModule.doInBackGround.cancelMsg=\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 Server.addDoc.exception.msg2=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30CF\u30F3\u30C9\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u304C\u3001\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u4E0B\u8A18\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0} From 248b4490eccd8a680f7a55c86b8ead8aafd1d3f7 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 12:07:01 -0800 Subject: [PATCH 81/89] Completed and checked over translation. --- .../sleuthkit/autopsy/directorytree/Bundle_ja.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties index d98987d966..cee27ecc4b 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle_ja.properties @@ -59,7 +59,6 @@ DataResultFilterNode.action.viewInNewWin.text=\u65B0\u898F\u30A6\u30A3\u30F3\u30 DataResultFilterNode.action.openInExtViewer.text=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F DataResultFilterNode.action.searchFilesSameMd5.text=\u540C\u3058MD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22 DataResultFilterNode.action.viewInDir.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u8868\u793A -#todo check meaning DirectoryTreeFilterNode.action.openFileSrcByAttr.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u3092\u958B\u304F DirectoryTreeFilterNode.action.runIngestMods.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u5B9F\u884C DirectoryTreeTopComponent.title.text=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30EA\u30B9\u30C6\u30A3\u30F3\u30B0 @@ -75,7 +74,7 @@ ExplorerNodeActionVisitor.volDetail.noVolMatchErr=\u30A8\u30E9\u30FC\uFF1A\u4E00 ExplorerNodeActionVisitor.imgDetail.noVolMatchesErr=\u30A8\u30E9\u30FC\uFF1A\u4E00\u81F4\u3059\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002 ExplorerNodeActionVisitor.exception.probGetParent.text={0}\: {1}\u304B\u3089\u30DA\u30A2\u30EC\u30F3\u30C8\u3092\u5165\u624B\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F ExtractAction.title.extractFiles.text=\u30D5\u30A1\u30A4\u30EB\u3092\u62BD\u51FA -ExtractAction.extractFiles.cantCreateFolderErr.msg=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +ExtractAction.extractFiles.cantCreateFolderErr.msg=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 ExtractAction.confDlg.destFileExist.msg=\u4FDD\u5B58\u5148\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3001\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F ExtractAction.confDlg.destFileExist.title=\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059 ExtractAction.msgDlg.cantOverwriteFile.msg=\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB{0}\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F @@ -87,7 +86,7 @@ ExtractUnallocAction.notifyMsg.unallocAlreadyBeingExtr.msg=\u3053\u306E\u30A4\u3 ExtractUnallocAction.msgDlg.folderDoesntExist.msg=\u30D5\u30A9\u30EB\u30C0\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u7D9A\u884C\u3059\u308B\u524D\u306B\u6709\u52B9\u306A\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002 ExtractUnallocAction.dlgTitle.selectDirToSaveTo.msg=\u4FDD\u5B58\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 #todo check meaning -ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306E +ExtractUnallocAction.confDlg.unallocFileAlreadyExist.msg=\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306E\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30D5\u30A1\u30A4\u30EB{0}\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F ExtractUnallocAction.progress.extractUnalloc.title=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D ExtractUnallocAction.progress.displayName.cancelling.text=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u30C7\u30FC\u30BF\u3092\u62BD\u51FA\u4E2D\uFF08\u30AD\u30E3\u30F3\u30BB\u30EB\u4E2D\u2026\uFF09 ExtractUnallocAction.processing.counter.msg=\u51E6\u7406\u4E2D\u3000{0}\uFF0F{1} MBs @@ -97,4 +96,5 @@ ResultDeleteAction.actionPerf.confDlg.delAllResults.msg={0}\u306E\u7D50\u679C\u5 ResultDeleteAction.actoinPerf.confDlg.delAllresults.details={0}\u7D50\u679C\u524A\u9664 ResultDeleteAction.exception.invalidAction.msg=\u7121\u52B9\u306A\u30A2\u30AF\u30B7\u30E7\u30F3\u30BF\u30A4\u30D7\uFF1A{0} ExtractUnallocAction.done.errMsg.title=\u62BD\u51FA\u30A8\u30E9\u30FC -ExtractUnallocAction.done.errMsg.msg=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} \ No newline at end of file +ExtractUnallocAction.done.errMsg.msg=\u672A\u5272\u308A\u5F53\u3066\u9818\u57DF\u306E\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A{0} +DirectoryTreeFilterNode.action.collapseAll.text=\u3059\u3079\u3066\u30B3\u30E9\u30D7\u30B9 \ No newline at end of file From 48c7704d8ff87e419632aeb2f670f05ee975ad3a Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 12:34:46 -0800 Subject: [PATCH 82/89] Initial translation. Committing before moving to different branch. --- Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties index e69de29bb2..1bc47743b1 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties @@ -0,0 +1,3 @@ +OpenIDE-Module-Name=\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +KnownStatusSearchPanel.knownCheckBox.text=\u65E2\u77E5\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A +KnownStatusSearchPanel.knownBadOptionCheckBox.text=\u65E2\u77E5bad \ No newline at end of file From 8b882533c79e5624fc758e5ac373822403200a75 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 13:19:33 -0800 Subject: [PATCH 83/89] Initial translation --- .../autopsy/filesearch/Bundle_ja.properties | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties index 1bc47743b1..14ad575210 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties @@ -1,3 +1,49 @@ OpenIDE-Module-Name=\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 KnownStatusSearchPanel.knownCheckBox.text=\u65E2\u77E5\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A -KnownStatusSearchPanel.knownBadOptionCheckBox.text=\u65E2\u77E5bad \ No newline at end of file +KnownStatusSearchPanel.knownBadOptionCheckBox.text=\u65E2\u77E5\u60AA\u8CEA +KnownStatusSearchPanel.knownOptionCheckBox.text=\u65E2\u77E5\uFF08NSRL\u307E\u305F\u306F\u305D\u306E\u4ED6\uFF09 +KnownStatusSearchPanel.unknownOptionCheckBox.text=\u4E0D\u660E +DateSearchFilter.noneSelectedMsg.text=\u6700\u4F4E\u4E00\u3064\u306E\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7\u3092\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF01 +DateSearchPanel.dateCheckBox.text=\u65E5\u6642\uFF1A +DateSearchPanel.jLabel4.text=\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\uFF1A +DateSearchPanel.jLabel3.text=*\u65E5\u6642\u306E\u5F62\u5F0F\u306Fmm/dd/yyyy +DateSearchPanel.jLabel2.text=*\u7A7A\u767D\u306E\u9805\u76EE\u306F\u300C\u5236\u9650\u306A\u3057\u300D\u3068\u3044\u3046\u610F\u5473\u3067\u3059 +DateSearchPanel.createdCheckBox.text=\u4F5C\u6210\u6E08\u307F +DateSearchPanel.accessedCheckBox.text=\u30A2\u30AF\u30BB\u30B9\u6E08\u307F +DateSearchPanel.changedCheckBox.text=\u5909\u66F4\u6E08\u307F +DateSearchPanel.modifiedCheckBox.text=\u4FEE\u6B63\u6E08\u307F +DateSearchPanel.jLabel1.text=to +NameSearchPanel.nameCheckBox.text=\u540D\u79F0\uFF1A +NameSearchPanel.noteNameLabel.text=*\u6CE8\u610F\uFF1A\u30CD\u30FC\u30E0\u30DE\u30C3\u30C1\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059\u3002\u307E\u305F\u3001
        \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u3044\u304B\u306A\u308B\u90E8\u5206\u3082\u30DE\u30C3\u30C1\u3057\u307E\u3059\u3002\u6B63\u898F\u8868\u73FE\u306F
        \u73FE\u5728\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +SizeSearchPanel.sizeCheckBox.text=\u30B5\u30A4\u30BA\uFF1A +NameSearchPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 +NameSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC +NameSearchPanel.pasteMenuItem.text=\u8CBC\u308A\u4ED8\u3051 +NameSearchPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +SizeSearchPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +SizeSearchPanel.pasteMenuItem.text=\u8CBC\u308A\u4ED8\u3051 +SizeSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC +SizeSearchPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 +DateSearchPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 +DateSearchPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E +DateSearchPanel.pasteMenuItem.text=\u8CBC\u308A\u4ED8\u3051 +DateSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC +FileSearchAction.getName.text=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +#todo check other translation +FileSearchDialog.frame.title=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +#todo check other translation +FileSearchDialog.frame.msg=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +FileSearchPanel.custComp.label.text=\u4E0B\u8A18\u306E\u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\uFF1A +FileSearchPanel.filterTitle.name=\u540D\u79F0 +FileSearchPanel.filterTitle.metadata=\u30E1\u30BF\u30C7\u30FC\u30BF +FileSearchPanel.filterTitle.knownStatus=\u65E2\u77E5\u30B9\u30C6\u30FC\u30BF\u30B9 +FileSearchPanel.searchButton.text=\u691C\u7D22 +FileSearchPanel.search.results.title=\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\u7D50\u679C{0} +FileSearchPanel.search.results.pathText=\u30D5\u30A1\u30A4\u30EB\u540D\u691C\u7D22\u7D50\u679C\uFF1A +FileSearchPanel.search.results.msg=\u30D5\u30A1\u30A4\u30EB\u691C\u7D22\uFF1A{0}\u500B\u306E\u30DE\u30C3\u30C1\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F +FileSearchPanel.search.results.details=\u591A\u304F\u306E\u30DE\u30C3\u30C1\u304C\u3042\u308B\u5834\u5408\u3001\u4E00\u90E8\u306E\u51E6\u7406\u306E\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u306B\u5F71\u97FF\u3092\u4E0E\u3048\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093 +FileSearchPanel.search.exception.noFilterSelected.msg=\u6700\u4F4E\uFF11\u500B\u306E\u30D5\u30A3\u30EB\u30BF\u3092\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +FileSearchPanel.search.validationErr.msg=\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u30A8\u30E9\u30FC\uFF1A{0} +KnownStatusSearchFilter.noneSelectedMsg.text=\u6700\u4F4E\uFF11\u500B\u306E\u65E2\u77E5\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF01 +NameSearchFilter.emptyNameMsg.text=\u540D\u79F0\u691C\u7D22\u306B\u4F55\u304B\u8A18\u5165\u3057\u306A\u3051\u308C\u3070\u3044\u3051\u307E\u305B\u3093\u3002 +SearchNode.getName.text=\u691C\u7D22\u7D50\u679C \ No newline at end of file From 0e7338443334fe321e9cd41ae3cdef845459b43a Mon Sep 17 00:00:00 2001 From: alexjacks92 Date: Wed, 5 Mar 2014 16:26:39 -0500 Subject: [PATCH 84/89] Style issues. --- .../src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 2 +- .../src/org/sleuthkit/autopsy/testing/RegressionTest.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index ee167b1569..91b7a67008 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -150,7 +150,7 @@ KeywordSearchIngestModule.init.tryStopSolrMsg={0}
        Please try stopping old j KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=Only indexing will be done and and keyword search will be skipped (you can still add keyword lists using the Keyword Lists - Add to Ingest). KeywordSearchIngestModule.doInBackGround.displayName=Keyword Search -KeywordSearchIngestModule.doInBackGround.finalizeMsg = Finalizing... +KeywordSearchIngestModule.doInBackGround.finalizeMsg=Finalizing... KeywordSearchIngestModule.doInBackGround.pendingMsg=Working on Keyword Search... KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=Files with known types KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=Files with general strings extracted 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 c72372eaae..b331d47518 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 @@ -269,7 +269,6 @@ public class RegressionTest extends TestCase { new Timeout("pausing", 1000).sleep(); // give it a second (or five) to process } 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 } From 3c3c0db83076d0b7a35f99179b92d205ec3c2d11 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Wed, 5 Mar 2014 13:36:13 -0800 Subject: [PATCH 85/89] Completed translation --- .../org/sleuthkit/autopsy/filesearch/Bundle_ja.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties index 14ad575210..b564e3de4c 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties @@ -14,7 +14,7 @@ DateSearchPanel.changedCheckBox.text=\u5909\u66F4\u6E08\u307F DateSearchPanel.modifiedCheckBox.text=\u4FEE\u6B63\u6E08\u307F DateSearchPanel.jLabel1.text=to NameSearchPanel.nameCheckBox.text=\u540D\u79F0\uFF1A -NameSearchPanel.noteNameLabel.text=*\u6CE8\u610F\uFF1A\u30CD\u30FC\u30E0\u30DE\u30C3\u30C1\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059\u3002\u307E\u305F\u3001
        \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u3044\u304B\u306A\u308B\u90E8\u5206\u3082\u30DE\u30C3\u30C1\u3057\u307E\u3059\u3002\u6B63\u898F\u8868\u73FE\u306F
        \u73FE\u5728\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +NameSearchPanel.noteNameLabel.text=*\u6CE8\u610F\uFF1A\u540D\u79F0\u30DE\u30C3\u30C1\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059\u3002\u307E\u305F\u3001
        \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u3044\u304B\u306A\u308B\u90E8\u5206\u3082\u30DE\u30C3\u30C1\u3057\u307E\u3059\u3002\u6B63\u898F\u8868\u73FE\u306F
        \u73FE\u5728\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 SizeSearchPanel.sizeCheckBox.text=\u30B5\u30A4\u30BA\uFF1A NameSearchPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 NameSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC @@ -30,9 +30,9 @@ DateSearchPanel.pasteMenuItem.text=\u8CBC\u308A\u4ED8\u3051 DateSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC FileSearchAction.getName.text=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 #todo check other translation -FileSearchDialog.frame.title=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +FileSearchDialog.frame.title=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 #todo check other translation -FileSearchDialog.frame.msg=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 +FileSearchDialog.frame.msg=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 FileSearchPanel.custComp.label.text=\u4E0B\u8A18\u306E\u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\uFF1A FileSearchPanel.filterTitle.name=\u540D\u79F0 FileSearchPanel.filterTitle.metadata=\u30E1\u30BF\u30C7\u30FC\u30BF From b1e7bd85f476b3d11f52adde6190984ed1fa7bd6 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Thu, 6 Mar 2014 10:27:47 -0800 Subject: [PATCH 86/89] Completed translation --- .../org/sleuthkit/autopsy/menuactions/Bundle_ja.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties index e69de29bb2..9bbd244f08 100644 --- a/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/menuactions/Bundle_ja.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Name=\u30E1\u30CB\u30E5\u30FC\u30A2\u30AF\u30B7\u30E7\u30F3 +DataContentDynamicMenu.menu.dataContentWin.text=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30A6\u30A3\u30F3\u30C9\u30A6 +DataContentMenu.getName.text=\u30C7\u30FC\u30BF\u30B3\u30F3\u30C6\u30F3\u30C4\u30E1\u30CB\u30E5\u30FC +DataExplorerMenu.getName.text=\u30C7\u30FC\u30BF\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30C4\u30FC\u30EB +DataResultMenu.menu.dataResWin.text=\u30C7\u30FC\u30BF\u7D50\u679C\u30A6\u30A3\u30F3\u30C9\u30A6 +DataResultMenu.getName.text=\u30C7\u30FC\u30BF\u7D50\u679C\u30E1\u30CB\u30E5\u30FC +SearchResultMenu.menu.dataRes.text=\u30C7\u30FC\u30BF\u7D50\u679C \ No newline at end of file From 8a12d93aedffe993400218533c4106c916d0bbc6 Mon Sep 17 00:00:00 2001 From: Jason Letourneau Date: Fri, 7 Mar 2014 11:04:17 -0500 Subject: [PATCH 87/89] fixed two line escape for IngestManager.getFileModStats.moduleInfo.text --- Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties index da2453df41..af1f7bea14 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties @@ -38,7 +38,7 @@ 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.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} From cf1c79c1a7cd053e1735c1d692ecf26d4a5d1545 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Fri, 7 Mar 2014 11:28:48 -0800 Subject: [PATCH 88/89] Translation complete --- .../src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties index b564e3de4c..9c1b3da39f 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle_ja.properties @@ -28,10 +28,8 @@ DateSearchPanel.cutMenuItem.text=\u30AB\u30C3\u30C8 DateSearchPanel.selectAllMenuItem.text=\u3059\u3079\u3066\u9078\u629E DateSearchPanel.pasteMenuItem.text=\u8CBC\u308A\u4ED8\u3051 DateSearchPanel.copyMenuItem.text=\u30B3\u30D4\u30FC -FileSearchAction.getName.text=\u5C5E\u6027\u306B\u3066\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 -#todo check other translation +FileSearchAction.getName.text=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 FileSearchDialog.frame.title=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 -#todo check other translation FileSearchDialog.frame.msg=\u5C5E\u6027\u306B\u3088\u308B\u30D5\u30A1\u30A4\u30EB\u691C\u7D22 FileSearchPanel.custComp.label.text=\u4E0B\u8A18\u306E\u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\uFF1A FileSearchPanel.filterTitle.name=\u540D\u79F0 From 0ddfaa9c7bb673a75a72651783c88a1142c1c595 Mon Sep 17 00:00:00 2001 From: Kay Bassi Date: Fri, 7 Mar 2014 11:39:55 -0800 Subject: [PATCH 89/89] Translation complete --- .../org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties index adb7dc5c23..19e5b3b3c7 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle_ja.properties @@ -101,8 +101,8 @@ GstVideoPanel.exception.problemStopCaptFrame.msg=\u30D3\u30C7\u30AA\u30D5\u30A1\ 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\u5927\u304D\u3059\u304E\u3067\u3059\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.actVerboseLogging.text=Verbose\u30ED\u30B0\u3092\u6709\u52B9\u5316 +ProductInformationPanel.verbLoggingEnabled.text=Verbose\u30ED\u30B0\u304C\u6709\u52B9\u3067\u3059 ProductInformationPanel.propertyUnknown.text=\u4E0D\u660E ProductInformationPanel.getVMValue.text={0} {1} TableFilterNode.displayName.text=\u540D\u79F0