Translations & Cleanup
This commit is contained in:
parent
f6ce37f439
commit
3349dd65b7
8 changed files with 50 additions and 22 deletions
|
@ -22,6 +22,7 @@ import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer
|
||||||
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
|
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
|
||||||
import the.bytecode.club.bytecodeviewer.plugin.PluginWriter;
|
import the.bytecode.club.bytecodeviewer.plugin.PluginWriter;
|
||||||
import the.bytecode.club.bytecodeviewer.resources.ResourceContainer;
|
import the.bytecode.club.bytecodeviewer.resources.ResourceContainer;
|
||||||
|
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||||
import the.bytecode.club.bytecodeviewer.util.*;
|
import the.bytecode.club.bytecodeviewer.util.*;
|
||||||
import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource;
|
import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource;
|
||||||
|
|
||||||
|
@ -67,7 +68,6 @@ import static the.bytecode.club.bytecodeviewer.util.MiscUtils.guessLanguage;
|
||||||
* http://the.bytecode.club
|
* http://the.bytecode.club
|
||||||
*
|
*
|
||||||
* TODO BUGS:
|
* TODO BUGS:
|
||||||
* + Switching from Dark to System theme crashes (DarkLAF 2.6.1 works fine)
|
|
||||||
* + View>Visual Settings>Show Class Methods
|
* + View>Visual Settings>Show Class Methods
|
||||||
* + Spam-clicking the refresh button will cause the swing thread to deadlock (Quickly opening resources used to also do this)
|
* + Spam-clicking the refresh button will cause the swing thread to deadlock (Quickly opening resources used to also do this)
|
||||||
* This is caused by the ctrlMouseWheelZoom code, a temporary patch is just removing it worst case
|
* This is caused by the ctrlMouseWheelZoom code, a temporary patch is just removing it worst case
|
||||||
|
@ -667,7 +667,7 @@ public class BytecodeViewer
|
||||||
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Reset Workspace",
|
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Reset Workspace",
|
||||||
"Are you sure you want to reset the workspace?" +
|
"Are you sure you want to reset the workspace?" +
|
||||||
"\n\rIt will also reset your file navigator and search.",
|
"\n\rIt will also reset your file navigator and search.",
|
||||||
new String[]{"Yes", "No"});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (dialogue.promptChoice() != 0)
|
if (dialogue.promptChoice() != 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class Constants
|
||||||
BCVDir.mkdirs();
|
BCVDir.mkdirs();
|
||||||
|
|
||||||
//hides the BCV directory
|
//hides the BCV directory
|
||||||
if (!BCVDir.isHidden() && isWindows())
|
if (isWindows() && !BCVDir.isHidden())
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
BytecodeViewer.sm.pauseBlocking();
|
BytecodeViewer.sm.pauseBlocking();
|
||||||
|
|
|
@ -49,8 +49,8 @@ import static the.bytecode.club.bytecodeviewer.Constants.*;
|
||||||
|
|
||||||
public class KrakatauDecompiler extends InternalDecompiler
|
public class KrakatauDecompiler extends InternalDecompiler
|
||||||
{
|
{
|
||||||
|
public String buildCLIArguments()
|
||||||
public String quick() {
|
{
|
||||||
if (Configuration.library.isEmpty())
|
if (Configuration.library.isEmpty())
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
|
@ -74,20 +74,19 @@ public class KrakatauDecompiler extends InternalDecompiler
|
||||||
return TranslatedStrings.YOU_NEED_TO_SET_YOUR_PYTHON_2_PATH.toString();
|
return TranslatedStrings.YOU_NEED_TO_SET_YOUR_PYTHON_2_PATH.toString();
|
||||||
|
|
||||||
ExternalResources.getSingleton().rtCheck();
|
ExternalResources.getSingleton().rtCheck();
|
||||||
if (Configuration.rt.isEmpty()) {
|
if (Configuration.rt.isEmpty())
|
||||||
|
{
|
||||||
BytecodeViewer.showMessage(TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_A
|
BytecodeViewer.showMessage(TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_A
|
||||||
+ "\r\n" + TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_B);
|
+ "\r\n" + TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_B);
|
||||||
ExternalResources.getSingleton().selectJRERTLibrary();
|
ExternalResources.getSingleton().selectJRERTLibrary();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Configuration.python2.isEmpty()) {
|
if (Configuration.rt.isEmpty())
|
||||||
BytecodeViewer.showMessage("You need to set Python!");
|
{
|
||||||
return "Set your paths";
|
BytecodeViewer.showMessage(TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_A
|
||||||
}
|
+ "\r\n" + TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_B);
|
||||||
|
return TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_A
|
||||||
if (Configuration.rt.isEmpty()) {
|
+ " " + TranslatedStrings.YOU_NEED_TO_SET_YOUR_JAVA_RT_PATH_B;
|
||||||
BytecodeViewer.showMessage("You need to set RT.jar!");
|
|
||||||
return "Set your paths";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String s = ExceptionUI.SEND_STACKTRACE_TO_NL;
|
String s = ExceptionUI.SEND_STACKTRACE_TO_NL;
|
||||||
|
@ -106,7 +105,7 @@ public class KrakatauDecompiler extends InternalDecompiler
|
||||||
"-skip", //love you storyyeller <3
|
"-skip", //love you storyyeller <3
|
||||||
"-nauto",
|
"-nauto",
|
||||||
"-path",
|
"-path",
|
||||||
Configuration.rt + ";" + krakatauTempJar.getAbsolutePath() + quick(),
|
Configuration.rt + ";" + krakatauTempJar.getAbsolutePath() + buildCLIArguments(),
|
||||||
"-out",
|
"-out",
|
||||||
krakatauTempDir.getAbsolutePath(),
|
krakatauTempDir.getAbsolutePath(),
|
||||||
cn.name + ".class"
|
cn.name + ".class"
|
||||||
|
@ -194,7 +193,7 @@ public class KrakatauDecompiler extends InternalDecompiler
|
||||||
"-skip", //love you storyyeller <3
|
"-skip", //love you storyyeller <3
|
||||||
"-nauto",
|
"-nauto",
|
||||||
"-path",
|
"-path",
|
||||||
Configuration.rt + ";" + tempJar.getAbsolutePath() + quick(),
|
Configuration.rt + ";" + tempJar.getAbsolutePath() + buildCLIArguments(),
|
||||||
"-out",
|
"-out",
|
||||||
tempDirectory.getAbsolutePath(),
|
tempDirectory.getAbsolutePath(),
|
||||||
cn.name + ".class"
|
cn.name + ".class"
|
||||||
|
|
|
@ -30,6 +30,7 @@ import the.bytecode.club.bytecodeviewer.resources.ExternalResources;
|
||||||
import the.bytecode.club.bytecodeviewer.resources.ResourceContainer;
|
import the.bytecode.club.bytecodeviewer.resources.ResourceContainer;
|
||||||
import the.bytecode.club.bytecodeviewer.resources.IconResources;
|
import the.bytecode.club.bytecodeviewer.resources.IconResources;
|
||||||
import the.bytecode.club.bytecodeviewer.resources.exporting.Export;
|
import the.bytecode.club.bytecodeviewer.resources.exporting.Export;
|
||||||
|
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||||
import the.bytecode.club.bytecodeviewer.translation.components.TranslatedJCheckBoxMenuItem;
|
import the.bytecode.club.bytecodeviewer.translation.components.TranslatedJCheckBoxMenuItem;
|
||||||
import the.bytecode.club.bytecodeviewer.translation.components.TranslatedJRadioButtonMenuItem;
|
import the.bytecode.club.bytecodeviewer.translation.components.TranslatedJRadioButtonMenuItem;
|
||||||
import the.bytecode.club.bytecodeviewer.util.*;
|
import the.bytecode.club.bytecodeviewer.util.*;
|
||||||
|
@ -803,7 +804,7 @@ public class MainViewerGUI extends JFrame
|
||||||
{
|
{
|
||||||
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Reload Resources",
|
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Reload Resources",
|
||||||
"Are you sure you wish to reload the resources?",
|
"Are you sure you wish to reload the resources?",
|
||||||
new String[]{"Yes", "No"});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (dialogue.promptChoice() == 0)
|
if (dialogue.promptChoice() == 0)
|
||||||
{
|
{
|
||||||
|
@ -865,7 +866,7 @@ public class MainViewerGUI extends JFrame
|
||||||
{
|
{
|
||||||
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Exit",
|
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Exit",
|
||||||
"Are you sure you want to exit?",
|
"Are you sure you want to exit?",
|
||||||
new String[]{"Yes", "No"});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (dialogue.promptChoice() == 0)
|
if (dialogue.promptChoice() == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -30,6 +30,10 @@ import java.util.HashSet;
|
||||||
|
|
||||||
public enum TranslatedStrings
|
public enum TranslatedStrings
|
||||||
{
|
{
|
||||||
|
PRODUCTNAME("BytecodeViewer"),
|
||||||
|
PRODUCT_NAME("Bytecode Viewer"),
|
||||||
|
PRODUCT_H_NAME("Bytecode-Viewer"),
|
||||||
|
|
||||||
EDITABLE,
|
EDITABLE,
|
||||||
JAVA,
|
JAVA,
|
||||||
PROCYON,
|
PROCYON,
|
||||||
|
@ -47,6 +51,9 @@ public enum TranslatedStrings
|
||||||
DISASSEMBLER,
|
DISASSEMBLER,
|
||||||
RESULTS,
|
RESULTS,
|
||||||
SEARCH,
|
SEARCH,
|
||||||
|
|
||||||
|
YES,
|
||||||
|
NO,
|
||||||
ERROR2,
|
ERROR2,
|
||||||
PROCESS2,
|
PROCESS2,
|
||||||
EXIT_VALUE_IS,
|
EXIT_VALUE_IS,
|
||||||
|
@ -85,14 +92,20 @@ public enum TranslatedStrings
|
||||||
nameSet.add(s.name());
|
nameSet.add(s.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String text;
|
private final String TEXT_ERROR = "FAILED_TO_LOAD";
|
||||||
|
private String text = TEXT_ERROR;
|
||||||
|
|
||||||
|
TranslatedStrings(String text)
|
||||||
|
{
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
TranslatedStrings()
|
TranslatedStrings()
|
||||||
{
|
{
|
||||||
//load english translations by default
|
//load english translations by default
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.text = Language.ENGLISH.getTranslation().get(name());
|
setText(Language.ENGLISH.getTranslation().get(name()));
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
|
@ -102,6 +115,16 @@ public enum TranslatedStrings
|
||||||
|
|
||||||
public void setText(String text)
|
public void setText(String text)
|
||||||
{
|
{
|
||||||
|
if(text == null)
|
||||||
|
{
|
||||||
|
System.err.println("TranslatedStrings:"+name() + " - Missing Translation");
|
||||||
|
text = TEXT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
text = text.replace("%PRODUCTNAME%", PRODUCTNAME.toString())
|
||||||
|
.replace("%PRODUCT_NAME%", PRODUCT_NAME.toString())
|
||||||
|
.replace("%PRODUCT-NAME%", PRODUCT_H_NAME.toString());
|
||||||
|
|
||||||
this.text = text;
|
this.text = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
|
||||||
import the.bytecode.club.bytecodeviewer.Configuration;
|
import the.bytecode.club.bytecodeviewer.Configuration;
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
||||||
|
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.filechooser.FileFilter;
|
import javax.swing.filechooser.FileFilter;
|
||||||
|
@ -49,7 +50,7 @@ public class DialogueUtils
|
||||||
{
|
{
|
||||||
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Overwrite File",
|
MultipleChoiceDialogue dialogue = new MultipleChoiceDialogue("Bytecode Viewer - Overwrite File",
|
||||||
"Are you sure you wish to overwrite this existing file?",
|
"Are you sure you wish to overwrite this existing file?",
|
||||||
new String[]{"Yes", "No"});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (dialogue.promptChoice() == 0) {
|
if (dialogue.promptChoice() == 0) {
|
||||||
file.delete();
|
file.delete();
|
||||||
|
|
|
@ -6,6 +6,7 @@ import the.bytecode.club.bytecodeviewer.Configuration;
|
||||||
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
|
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
|
||||||
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialogue;
|
||||||
|
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.filechooser.FileFilter;
|
import javax.swing.filechooser.FileFilter;
|
||||||
|
@ -100,7 +101,7 @@ public class VersionChecker implements Runnable
|
||||||
{
|
{
|
||||||
MultipleChoiceDialogue overwriteDialogue = new MultipleChoiceDialogue("Bytecode Viewer - Overwrite File",
|
MultipleChoiceDialogue overwriteDialogue = new MultipleChoiceDialogue("Bytecode Viewer - Overwrite File",
|
||||||
"The file " + file + " exists, would you like to overwrite it?",
|
"The file " + file + " exists, would you like to overwrite it?",
|
||||||
new String[]{"Yes", "No"});
|
new String[]{TranslatedStrings.YES.toString(), TranslatedStrings.NO.toString()});
|
||||||
|
|
||||||
if (overwriteDialogue.promptChoice() != 0)
|
if (overwriteDialogue.promptChoice() != 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -118,8 +118,11 @@
|
||||||
"NEW_JAVASCRIPT_PLUGIN": "New Javascript Plugin",
|
"NEW_JAVASCRIPT_PLUGIN": "New Javascript Plugin",
|
||||||
"SUGGESTED_FIX_DECOMPILER_ERROR": "Suggested Fix: Click refresh class, if it fails again try another decompiler.",
|
"SUGGESTED_FIX_DECOMPILER_ERROR": "Suggested Fix: Click refresh class, if it fails again try another decompiler.",
|
||||||
"SUGGESTED_FIX_COMPILER_ERROR": "Suggested Fix: Try View>Pane>Krakatau>Bytecode and enable Editable.",
|
"SUGGESTED_FIX_COMPILER_ERROR": "Suggested Fix: Try View>Pane>Krakatau>Bytecode and enable Editable.",
|
||||||
|
"COMPILER_TIP": "Keep in mind most decompilers cannot produce compilable classes",
|
||||||
"DRAG_CLASS_JAR": "Drag class/jar/zip/APK/DEX here",
|
"DRAG_CLASS_JAR": "Drag class/jar/zip/APK/DEX here",
|
||||||
|
|
||||||
|
"YES": "Yes",
|
||||||
|
"NO": "No",
|
||||||
"ERROR2": "Error:",
|
"ERROR2": "Error:",
|
||||||
"PROCESS2": "Process:",
|
"PROCESS2": "Process:",
|
||||||
"EXIT_VALUE_IS": "Exit Value is:",
|
"EXIT_VALUE_IS": "Exit Value is:",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue