diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties index 991b67cde3..56782cdf33 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties @@ -1,4 +1,4 @@ GoogleTranslatorSettingsPanel.browseButton.text=Browse GoogleTranslatorSettingsPanel.credentialsLabel.text=Credentials: -GoogleTranslatorSettingsPanel.jLabel1.text=Target Language: GoogleTranslatorSettingsPanel.warningLabel.text= +GoogleTranslatorSettingsPanel.targetLanguageLabel.text=Target Language: diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties-MERGED index 854dadf543..b0e30f632c 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/Bundle.properties-MERGED @@ -8,6 +8,6 @@ GoogleTranslatorSettingsPanel.errorMessage.unableToReadCredentials=Unable to rea GoogleTranslatorSettingsPanel.errorMessage.unknownFailureGetting=Failure getting list of supported languages with current credentials file. GoogleTranslatorSettingsPanel.errorMessage.unknownFailurePopulating=Failure populating list of supported languages with current credentials file. GoogleTranslatorSettingsPanel.fileChooser.confirmButton=Select -GoogleTranslatorSettingsPanel.jLabel1.text=Target Language: GoogleTranslatorSettingsPanel.json.description=JSON Files GoogleTranslatorSettingsPanel.warningLabel.text= +GoogleTranslatorSettingsPanel.targetLanguageLabel.text=Target Language: diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java index 783bb82446..38506ef936 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java @@ -46,7 +46,7 @@ public final class GoogleTranslator implements TextTranslator { private static final int MAX_STRING_LENGTH = 15000; private final GoogleTranslatorSettingsPanel settingsPanel; private final GoogleTranslatorSettings settings = new GoogleTranslatorSettings(); - private Translate translate; + private Translate googleTranslate; /** * Constructs a new GoogleTranslator @@ -59,7 +59,7 @@ public final class GoogleTranslator implements TextTranslator { @Override public String translate(String string) throws TranslationException { - if (translate != null) { + if (googleTranslate != null) { try { // Translates some text into English, without specifying the source language. @@ -72,21 +72,22 @@ public final class GoogleTranslator implements TextTranslator { // The API complains if the "Payload" is over 204800 bytes. I'm assuming that // deals with the full request. At some point, we get different errors about too - // much text. Officially, Google says they will translate only 5k chars, + // much text. Officially, Google says they will googleTranslate only 5k chars, // but we have seen more than that working. // there could be a value betwen 15k and 25k that works. I (BC) didn't test further if (substring.length() > MAX_STRING_LENGTH) { substring = substring.substring(0, MAX_STRING_LENGTH); } Translation translation - = translate.translate(substring); + = googleTranslate.translate(substring); String translatedString = translation.getTranslatedText(); // put back the newlines translatedString = translatedString.replaceAll("
", "\n"); return translatedString; - } catch (Throwable e) { - throw new TranslationException(e.getMessage()); + } catch (Throwable ex) { + //Catching throwables because some of this Google Translate code throws throwables + throw new TranslationException("Failure translating using GoogleTranslator", ex); } } else { throw new TranslationException("Google Translator has not been configured, credentials need to be specified"); @@ -125,12 +126,12 @@ public final class GoogleTranslator implements TextTranslator { } if (creds == null) { logger.log(Level.WARNING, "Credentials were not successfully made, no translations will be available from the GoogleTranslator"); - translate = null; + googleTranslate = null; } else { TranslateOptions.Builder builder = TranslateOptions.newBuilder(); builder.setCredentials(creds); builder.setTargetLanguage(settings.getTargetLanguageCode()); - translate = builder.build().getService(); + googleTranslate = builder.build().getService(); } } diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.form b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.form index 5b9cb4b1ab..97a10b500f 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.form @@ -26,7 +26,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -101,10 +101,10 @@ - + - + diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java index 5d486b4708..fbb957413b 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorSettingsPanel.java @@ -73,13 +73,13 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { //This method also has the side effect of more or less validating the JSON file which was selected as it is necessary to get the list of target languages try { InputStream credentialStream; - Credentials creds; try { credentialStream = new FileInputStream(credentialsPathField.getText()); } catch (FileNotFoundException ignored) { warningLabel.setText(Bundle.GoogleTranslatorSettingsPanel_errorMessage_fileNotFound()); return new ArrayList<>(); } + Credentials creds; try { creds = ServiceAccountCredentials.fromStream(credentialStream); } catch (IOException ignored) { @@ -98,6 +98,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { return builder.build().getService().listSupportedLanguages(); } } catch (Throwable throwable) { + //Catching throwables because some of this Google Translate code throws throwables warningLabel.setText(Bundle.GoogleTranslatorSettingsPanel_errorMessage_unknownFailureGetting()); logger.log(Level.WARNING, "Throwable caught while getting list of supported languages", throwable); return new ArrayList<>(); @@ -164,7 +165,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { credentialsPathField = new javax.swing.JTextField(); browseButton = new javax.swing.JButton(); targetLanguageComboBox = new javax.swing.JComboBox<>(); - jLabel1 = new javax.swing.JLabel(); + targetLanguageLabel = new javax.swing.JLabel(); warningLabel = new javax.swing.JLabel(); org.openide.awt.Mnemonics.setLocalizedText(credentialsLabel, org.openide.util.NbBundle.getMessage(GoogleTranslatorSettingsPanel.class, "GoogleTranslatorSettingsPanel.credentialsLabel.text")); // NOI18N @@ -180,7 +181,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { targetLanguageComboBox.setEnabled(false); - org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(GoogleTranslatorSettingsPanel.class, "GoogleTranslatorSettingsPanel.jLabel1.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(targetLanguageLabel, org.openide.util.NbBundle.getMessage(GoogleTranslatorSettingsPanel.class, "GoogleTranslatorSettingsPanel.targetLanguageLabel.text")); // NOI18N warningLabel.setForeground(new java.awt.Color(255, 0, 0)); org.openide.awt.Mnemonics.setLocalizedText(warningLabel, org.openide.util.NbBundle.getMessage(GoogleTranslatorSettingsPanel.class, "GoogleTranslatorSettingsPanel.warningLabel.text")); // NOI18N @@ -198,7 +199,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(credentialsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(targetLanguageLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() @@ -220,7 +221,7 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { .addComponent(browseButton)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel1) + .addComponent(targetLanguageLabel) .addComponent(targetLanguageComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(warningLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -252,8 +253,8 @@ public class GoogleTranslatorSettingsPanel extends javax.swing.JPanel { private javax.swing.JButton browseButton; private javax.swing.JLabel credentialsLabel; private javax.swing.JTextField credentialsPathField; - private javax.swing.JLabel jLabel1; private javax.swing.JComboBox targetLanguageComboBox; + private javax.swing.JLabel targetLanguageLabel; private javax.swing.JLabel warningLabel; // End of variables declaration//GEN-END:variables diff --git a/Core/test/unit/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorTest.java b/Core/test/unit/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorTest.java index f23564a9f0..096fa7fe7a 100644 --- a/Core/test/unit/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorTest.java +++ b/Core/test/unit/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslatorTest.java @@ -20,6 +20,9 @@ package org.sleuthkit.autopsy.texttranslation.translators; import org.junit.Test; +/** + * Tests for the GoogleTranslator + */ public class GoogleTranslatorTest { /**