From 8da07a37ba93c4a4dca241a87af273a36ca4ce09 Mon Sep 17 00:00:00 2001 From: Dmitry Isaenko Date: Tue, 7 Jul 2020 02:20:57 +0300 Subject: [PATCH] Refactor save-settings chain on exit (see Controllers package) Remove concept of 'OldGoldleaf version'. Now all supported version of GoldLeaf listed in Settings tab and one of them has to be always selected. Add GoldLeaf CLI support Remove unnecessary tails of 'extras' from CLI Tinfoil/Awoo NET mode. --- src/main/java/nsusbloader/AppPreferences.java | 45 ++----- .../USB/{GoldLeaf.java => GoldLeaf_08.java} | 4 +- .../COM/USB/UsbCommunications.java | 5 +- .../Controllers/FrontController.java | 12 +- .../Controllers/NSLMainController.java | 21 +--- .../Controllers/SettingsController.java | 47 +++---- .../nsusbloader/cli/CommandLineInterface.java | 13 +- src/main/java/nsusbloader/cli/GoldLeaf.java | 116 ++++++++++++++++++ src/main/java/nsusbloader/cli/TinfoilNet.java | 21 ++-- src/main/resources/SettingsTab.fxml | 4 +- src/main/resources/locale.properties | 6 +- src/main/resources/locale_ita.properties | 2 +- src/main/resources/locale_por.properties | 2 +- src/main/resources/locale_rus.properties | 2 +- src/main/resources/locale_ukr.properties | 2 +- src/main/resources/locale_vie.properties | 1 - 16 files changed, 196 insertions(+), 107 deletions(-) rename src/main/java/nsusbloader/COM/USB/{GoldLeaf.java => GoldLeaf_08.java} (99%) create mode 100644 src/main/java/nsusbloader/cli/GoldLeaf.java diff --git a/src/main/java/nsusbloader/AppPreferences.java b/src/main/java/nsusbloader/AppPreferences.java index 3e009b8..8299d0b 100644 --- a/src/main/java/nsusbloader/AppPreferences.java +++ b/src/main/java/nsusbloader/AppPreferences.java @@ -18,6 +18,8 @@ */ package nsusbloader; +import nsusbloader.Controllers.SettingsController; + import java.util.Locale; import java.util.prefs.Preferences; @@ -29,41 +31,6 @@ public class AppPreferences { private AppPreferences(){ preferences = Preferences.userRoot().node("NS-USBloader"); } - public void setAll( - String Protocol, - String PreviouslyOpened, - String NetUsb, - String NsIp, - boolean NsIpValidate, - boolean ExpertMode, - boolean AutoIp, - boolean RandPort, - boolean NotServe, - String HostIp, - String HostPort, - String HostExtra, - boolean autoCheck4Updates, - boolean tinfoilXciSupport, - boolean nspFileFilterForGl, - String useOldGlVersion - ){ - setProtocol(Protocol); - setRecent(PreviouslyOpened); - setNetUsb(NetUsb); - setNsIp(NsIp); - setNsIpValidationNeeded(NsIpValidate); - setExpertMode(ExpertMode); - setAutoDetectIp(AutoIp); - setRandPort(RandPort); - setNotServeRequests(NotServe); - setHostIp(HostIp); - setHostPort(HostPort); - setHostExtra(HostExtra); - setAutoCheckUpdates(autoCheck4Updates); - setTfXCI(tinfoilXciSupport); - setNspFileFilterGL(nspFileFilterForGl); - setUseOldGlVersion(useOldGlVersion); - } public String getTheme(){ String theme = preferences.get("THEME", "/res/app_dark.css"); // Don't let user to change settings manually if (!theme.matches("(^/res/app_dark.css$)|(^/res/app_light.css$)")) @@ -135,8 +102,12 @@ public class AppPreferences { public boolean getNspFileFilterGL(){return preferences.getBoolean("GL_NSP_FILTER", false); } public void setNspFileFilterGL(boolean prop){preferences.putBoolean("GL_NSP_FILTER", prop);} - public String getUseOldGlVersion(){ return preferences.get("OldGlVersion", ""); } - public void setUseOldGlVersion(String version){ preferences.put("OldGlVersion", version);} + public String getGlVersion(){ + int recentGlVersionIndex = SettingsController.glSupportedVersions.length - 1; + String recentGlVersion = SettingsController.glSupportedVersions[recentGlVersionIndex]; + return preferences.get("gl_version", recentGlVersion); + } + public void setGlVersion(String version){ preferences.put("gl_version", version);} public double getSceneWidth(){ return preferences.getDouble("WIND_WIDTH", 850.0); } public void setSceneWidth(double value){ preferences.putDouble("WIND_WIDTH", value); } diff --git a/src/main/java/nsusbloader/COM/USB/GoldLeaf.java b/src/main/java/nsusbloader/COM/USB/GoldLeaf_08.java similarity index 99% rename from src/main/java/nsusbloader/COM/USB/GoldLeaf.java rename to src/main/java/nsusbloader/COM/USB/GoldLeaf_08.java index 3c720c0..be3cae1 100644 --- a/src/main/java/nsusbloader/COM/USB/GoldLeaf.java +++ b/src/main/java/nsusbloader/COM/USB/GoldLeaf_08.java @@ -40,7 +40,7 @@ import java.util.concurrent.CompletableFuture; /** * GoldLeaf 0.8 processing */ -class GoldLeaf extends TransferModule { +class GoldLeaf_08 extends TransferModule { private boolean nspFilterForGl; // CMD @@ -70,7 +70,7 @@ class GoldLeaf extends TransferModule { // For using in CMD_SelectFile with SPEC:/ prefix private File selectedFile; - GoldLeaf(DeviceHandle handler, LinkedHashMap nspMap, ICommunications task, ILogPrinter logPrinter, boolean nspFilter){ + GoldLeaf_08(DeviceHandle handler, LinkedHashMap nspMap, ICommunications task, ILogPrinter logPrinter, boolean nspFilter){ super(handler, nspMap, task, logPrinter); final byte CMD_GetDriveCount = 1; diff --git a/src/main/java/nsusbloader/COM/USB/UsbCommunications.java b/src/main/java/nsusbloader/COM/USB/UsbCommunications.java index 1d2e95d..91c6d34 100644 --- a/src/main/java/nsusbloader/COM/USB/UsbCommunications.java +++ b/src/main/java/nsusbloader/COM/USB/UsbCommunications.java @@ -18,7 +18,6 @@ */ package nsusbloader.COM.USB; -import javafx.concurrent.Task; import nsusbloader.COM.ICommunications; import nsusbloader.ModelControllers.ILogPrinter; import nsusbloader.ModelControllers.Log; @@ -69,8 +68,8 @@ public class UsbCommunications implements ICommunications { case "TinFoil": module = new TinFoil(handler, nspMap, this, logPrinter); break; - case "GoldLeaf": - module = new GoldLeaf(handler, nspMap, this, logPrinter, nspFilterForGl); + case "GoldLeafv0.8": + module = new GoldLeaf_08(handler, nspMap, this, logPrinter, nspFilterForGl); break; case "GoldLeafv0.7.x": module = new GoldLeaf_07(handler, nspMap, this, logPrinter, nspFilterForGl); diff --git a/src/main/java/nsusbloader/Controllers/FrontController.java b/src/main/java/nsusbloader/Controllers/FrontController.java index 82f10ac..f841813 100644 --- a/src/main/java/nsusbloader/Controllers/FrontController.java +++ b/src/main/java/nsusbloader/Controllers/FrontController.java @@ -20,7 +20,6 @@ package nsusbloader.Controllers; import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import javafx.concurrent.Task; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; @@ -267,7 +266,7 @@ public class FrontController implements Initializable { SettingsController settings = MediatorControl.getInstance().getContoller().getSettingsCtrlr(); // If USB selected if (getSelectedProtocol().equals("GoldLeaf") || ( getSelectedProtocol().equals("TinFoil") && getSelectedNetUsb().equals("USB") ) ){ - usbNetCommunications = new UsbCommunications(nspToUpload, getSelectedProtocol() + settings.getGlOldVer(), settings.getNSPFileFilterForGL()); + usbNetCommunications = new UsbCommunications(nspToUpload, getSelectedProtocol() + settings.getGlVer(), settings.getNSPFileFilterForGL()); } else { // NET INSTALL OVER TINFOIL final String ipValidationPattern = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; @@ -381,4 +380,13 @@ public class FrontController implements Initializable { public String getRecentPath(){ return previouslyOpenedPath; } + + public void updatePreferencesOnExit(){ + AppPreferences preferences = AppPreferences.getInstance(); + + preferences.setProtocol(getSelectedProtocol()); + preferences.setRecent(getRecentPath()); + preferences.setNetUsb(getSelectedNetUsb()); + preferences.setNsIp(getNsIp()); + } } diff --git a/src/main/java/nsusbloader/Controllers/NSLMainController.java b/src/main/java/nsusbloader/Controllers/NSLMainController.java index 495be84..ea8c2da 100644 --- a/src/main/java/nsusbloader/Controllers/NSLMainController.java +++ b/src/main/java/nsusbloader/Controllers/NSLMainController.java @@ -118,25 +118,8 @@ public class NSLMainController implements Initializable { * Save preferences before exit * */ public void exit(){ - AppPreferences.getInstance().setAll( - FrontTabController.getSelectedProtocol(), - FrontTabController.getRecentPath(), - FrontTabController.getSelectedNetUsb(), - FrontTabController.getNsIp(), - SettingsTabController.isNsIpValidate(), - SettingsTabController.getExpertModeSelected(), - SettingsTabController.getAutoIpSelected(), - SettingsTabController.getRandPortSelected(), - SettingsTabController.getNotServeSelected(), - SettingsTabController.getHostIp(), - SettingsTabController.getHostPort(), - SettingsTabController.getHostExtra(), - SettingsTabController.getAutoCheckForUpdates(), - SettingsTabController.getTfXciNszXczSupport(), - SettingsTabController.getNSPFileFilterForGL(), - SettingsTabController.getGlOldVer() - ); - + FrontTabController.updatePreferencesOnExit(); + SettingsTabController.updatePreferencesOnExit(); SplitMergeTabController.updatePreferencesOnExit(); // NOTE: This shit above should be re-written to similar pattern RcmTabController.updatePreferencesOnExit(); NXDTabController.updatePreferencesOnExit(); diff --git a/src/main/java/nsusbloader/Controllers/SettingsController.java b/src/main/java/nsusbloader/Controllers/SettingsController.java index 5f23072..baa542d 100644 --- a/src/main/java/nsusbloader/Controllers/SettingsController.java +++ b/src/main/java/nsusbloader/Controllers/SettingsController.java @@ -76,14 +76,11 @@ public class SettingsController implements Initializable { private ChoiceBox langCB; @FXML - private CheckBox glOldVerCheck; - - @FXML - private ChoiceBox glOldVerChoice; + private ChoiceBox glVersionChoiceBox; private HostServices hs; - private static final String[] oldGlSupportedVersions = {"v0.5", "v0.7.x"}; + public static final String[] glSupportedVersions = {"v0.5", "v0.7.x", "v0.8"}; @Override public void initialize(URL url, ResourceBundle resourceBundle) { @@ -273,19 +270,9 @@ public class SettingsController implements Initializable { .getString("windowBodyRestartToApplyLang")); }); // Set supported old versions - glOldVerChoice.getItems().addAll(oldGlSupportedVersions); - String oldVer = AppPreferences.getInstance().getUseOldGlVersion(); // Overhead; Too much validation of consistency - if (Arrays.asList(oldGlSupportedVersions).contains(oldVer)) { - glOldVerChoice.getSelectionModel().select(oldVer); - glOldVerChoice.setDisable(false); - glOldVerCheck.setSelected(true); - } - else { - glOldVerChoice.getSelectionModel().select(0); - glOldVerChoice.setDisable(true); - glOldVerCheck.setSelected(false); - } - glOldVerCheck.setOnAction(e-> glOldVerChoice.setDisable(! glOldVerCheck.isSelected()) ); + glVersionChoiceBox.getItems().addAll(glSupportedVersions); + String oldVer = AppPreferences.getInstance().getGlVersion(); // Overhead; Too much validation of consistency + glVersionChoiceBox.getSelectionModel().select(oldVer); } private boolean isWindows(){ @@ -313,10 +300,24 @@ public class SettingsController implements Initializable { newVersionLink.setText("https://github.com/developersu/ns-usbloader/releases/tag/"+newVer); } - public String getGlOldVer() { - if (glOldVerCheck.isSelected()) - return glOldVerChoice.getValue(); - else - return ""; + public String getGlVer() { + return glVersionChoiceBox.getValue(); + } + + public void updatePreferencesOnExit(){ + AppPreferences preferences = AppPreferences.getInstance(); + + preferences.setNsIpValidationNeeded(isNsIpValidate()); + preferences.setExpertMode(getExpertModeSelected()); + preferences.setAutoDetectIp(getAutoIpSelected()); + preferences.setRandPort(getRandPortSelected()); + preferences.setNotServeRequests(getNotServeSelected()); + preferences.setHostIp(getHostIp()); + preferences.setHostPort(getHostPort()); + preferences.setHostExtra(getHostExtra()); + preferences.setAutoCheckUpdates(getAutoCheckForUpdates()); + preferences.setTfXCI(getTfXciNszXczSupport()); + preferences.setNspFileFilterGL(getNSPFileFilterForGL()); + preferences.setGlVersion(getGlVer()); } } \ No newline at end of file diff --git a/src/main/java/nsusbloader/cli/CommandLineInterface.java b/src/main/java/nsusbloader/cli/CommandLineInterface.java index 5cdd9c0..8edcc55 100644 --- a/src/main/java/nsusbloader/cli/CommandLineInterface.java +++ b/src/main/java/nsusbloader/cli/CommandLineInterface.java @@ -66,6 +66,10 @@ public class CommandLineInterface { new TinfoilUsb(tfArguments); return; } + if (cli.hasOption("g") || cli.hasOption("goldleaf")){ + final String[] glArguments = cli.getOptionValues("goldleaf"); + new GoldLeaf(glArguments); + } } catch (ParseException pe){ System.out.println(pe.getLocalizedMessage() + @@ -128,7 +132,13 @@ public class CommandLineInterface { .hasArgs() .argName("FILE1 ...") .build(); - + /* GoldLeaf USB */ + final Option glOption = Option.builder("g") + .longOpt("goldleaf") + .desc("Install via GoldLeaf mode. Check '-g help' for information.") + .hasArgs() + .argName("...") + .build(); final OptionGroup group = new OptionGroup(); group.addOption(rcmOption); @@ -137,6 +147,7 @@ public class CommandLineInterface { group.addOption(versionOption); group.addOption(helpOption); group.addOption(tinfoilOption); + group.addOption(glOption); options.addOptionGroup(group); diff --git a/src/main/java/nsusbloader/cli/GoldLeaf.java b/src/main/java/nsusbloader/cli/GoldLeaf.java new file mode 100644 index 0000000..6724d2e --- /dev/null +++ b/src/main/java/nsusbloader/cli/GoldLeaf.java @@ -0,0 +1,116 @@ +package nsusbloader.cli; + +import nsusbloader.COM.ICommunications; +import nsusbloader.COM.USB.UsbCommunications; +import nsusbloader.Controllers.SettingsController; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class GoldLeaf { + + private final String[] arguments; + private List filesList; + private String goldLeafVersion; + private boolean filterForNsp; + + private int parseFileSince = 1; + + public GoldLeaf(String[] arguments) throws InterruptedException, IncorrectSetupException{ + this.arguments = arguments; + + checkArguments(); + parseGoldLeafVersion(); + parseFilesArguments(); + runGoldLeafBackend(); + } + + public void checkArguments() throws IncorrectSetupException{ + if (arguments == null || arguments.length == 0) { + throw new IncorrectSetupException("No arguments.\n" + + "Try 'ns-usbloader -g help' for more information."); + } + + if (arguments.length == 1){ + if (isHelpDirective(arguments[0])){ + showHelp(); + } + } + + if (arguments.length > 1 && arguments[1].equals("filter")){ + filterForNsp = true; + } + } + private boolean isHelpDirective(String argument){ + return argument.equals("help"); + } + private void showHelp() throws IncorrectSetupException{ + throw new IncorrectSetupException("Usage:\n" + + "\tns-usbloader -g ver= [filter] FILE1 ...\n" + + "\tns-usbloader --goldleaf ver= [filter] FILE1 ..." + + "\n\nOption:" + + "\n\tver=\tDefine GoldLeaf version (mandatory)\n\n" + + "\n\tfilter\t\nShow only *.nsp in GoldLeaf (optional)\n\n" + + getGlSupportedVersions()); + } + private String getGlSupportedVersions(){ + StringBuilder builder = new StringBuilder("Supported version: \n"); + + for (String a : SettingsController.glSupportedVersions){ + builder.append("\t"); + builder.append(a); + builder.append("\n"); + } + return builder.toString(); + } + + public void parseGoldLeafVersion() throws IncorrectSetupException{ + String argument1 = arguments[0]; + + if (! argument1.startsWith("ver=")) { + throw new IncorrectSetupException("First argument must be 'ver='\n" + + "Try 'ns-usbloader -g help' for more information."); + } + + goldLeafVersion = argument1.replaceAll("^ver=", ""); + + if (goldLeafVersion.isEmpty()) { + throw new IncorrectSetupException("No spaces allowed before or after 'ver=' argument.\n" + + "Try 'ns-usbloader -g help' for more information."); + } + + for (String version : SettingsController.glSupportedVersions){ + if (version.equals(goldLeafVersion)) + return; + } + + throw new IncorrectSetupException("GoldLeaf " + goldLeafVersion + " is not supported.\n" + + getGlSupportedVersions()); + } + + public void parseFilesArguments() throws IncorrectSetupException{ + filesList = new ArrayList<>(); + File file; + + for (; parseFileSince < arguments.length; parseFileSince++) { + file = new File(arguments[parseFileSince]); + if (file.exists()) + filesList.add(file); + } + + if (filesList.size() == 0 && goldLeafVersion.equals("v0.5")) { + throw new IncorrectSetupException("File(s) doesn't exist but should be set for GoldLeaf v0.5.\n" + + "Try 'ns-usbloader -g help' for more information."); + } + } + + public void runGoldLeafBackend() throws InterruptedException { + ICommunications task = new UsbCommunications(filesList, + "GoldLeaf"+goldLeafVersion, + filterForNsp); + Thread thread = new Thread(task); + thread.start(); + thread.join(); + } +} diff --git a/src/main/java/nsusbloader/cli/TinfoilNet.java b/src/main/java/nsusbloader/cli/TinfoilNet.java index 1818a1b..f053113 100644 --- a/src/main/java/nsusbloader/cli/TinfoilNet.java +++ b/src/main/java/nsusbloader/cli/TinfoilNet.java @@ -24,7 +24,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -// TODO: Add 'don't serve requests' option public class TinfoilNet { private final String[] arguments; @@ -33,7 +32,7 @@ public class TinfoilNet { private String hostIp = ""; private String hostPortNum = ""; - private String hostExtras = ""; + //private String hostExtras = ""; // TODO: Add 'don't serve requests' option or remove this private int parseFileSince = 1; @@ -79,21 +78,23 @@ public class TinfoilNet { + "\tns-usbloader --tfn nsip= [hostip=] FILE1 ..." + "\n\nOptions:" + "\n\tnsip=\t\t\tDefine NS IP address (mandatory)" - + "\n\thostip=\tDefine this host IP address. Will be obtained automatically if not set."); + + "\n\thostip=\tDefine this host IP address. Will be obtained automatically if not set."); } private void parseNsIP() throws IncorrectSetupException{ String argument1 = arguments[0]; - if (! argument1.startsWith("nsip=")) + if (! argument1.startsWith("nsip=")) { throw new IncorrectSetupException("First argument must be 'nsip='\n" + "Try 'ns-usbloader -n help' for more information."); + } nsIp = argument1.replaceAll("^nsip=", ""); - if (nsIp.isEmpty()) + if (nsIp.isEmpty()) { throw new IncorrectSetupException("No spaces allowed before or after 'nsip=' argument.\n" + "Try 'ns-usbloader -n help' for more information."); + } } private void parseHostSettings(){ @@ -106,10 +107,10 @@ public class TinfoilNet { hostIp = argument2.replaceAll("(^hostip=)|(:.+?$)|(:$)", ""); if (argument2.contains(":")) - hostPortNum = argument2.replaceAll("(^.+:)|(/.+?$)|(/$)", ""); - - if (argument2.contains("/")) - hostExtras = argument2.replaceAll("^[^/]*/", ""); + hostPortNum = argument2.replaceAll("(^.+:)", ""); + // hostPortNum = argument2.replaceAll("(^.+:)|(/.+?$)|(/$)", ""); + //if (argument2.contains("/")) + // hostExtras = argument2.replaceAll("^[^/]*/", ""); } private void parseFilesArguments() throws IncorrectSetupException{ @@ -135,7 +136,7 @@ public class TinfoilNet { false, hostIp, hostPortNum, - hostExtras); + ""); Thread netCommThread = new Thread(netCommunications); netCommThread.start(); netCommThread.join(); diff --git a/src/main/resources/SettingsTab.fxml b/src/main/resources/SettingsTab.fxml index 016f194..6676a5f 100644 --- a/src/main/resources/SettingsTab.fxml +++ b/src/main/resources/SettingsTab.fxml @@ -55,8 +55,8 @@ - - + diff --git a/src/main/resources/locale.properties b/src/main/resources/locale.properties index 062ac48..ac3e419 100644 --- a/src/main/resources/locale.properties +++ b/src/main/resources/locale.properties @@ -42,8 +42,6 @@ tab2_Cb_AllowXciNszXcz=Allow XCI / NSZ / XCZ files selection for Tinfoil tab2_Lbl_AllowXciNszXczDesc=Used by applications that support XCI/NSZ/XCZ and utilizes Tinfoil transfer protocol. Don't change if not sure. Enable for Awoo Installer. tab2_Lbl_Language=Language windowBodyRestartToApplyLang=Please restart application to apply changes. -tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf. -tab2_Cb_UseOldGlVersion=Use old GoldLeaf version btn_OpenSplitFile=Select split NSP tab2_Lbl_ApplicationSettings=Main settings tabSplMrg_Lbl_SplitNMergeTitle=Split & merge files tool @@ -67,4 +65,6 @@ tab2_Btn_InstallDrivers=Download and install drivers windowTitleDownloadDrivers=Download and install drivers windowBodyDownloadDrivers=Downloading drivers (libusbK v3.0.7.0)... btn_Cancel=Cancel -btn_Close=Close \ No newline at end of file +btn_Close=Close +tab2_Cb_GlVersion=GoldLeaf version +tab2_Cb_GLshowNspOnly=Show only *.nsp in GoldLeaf. \ No newline at end of file diff --git a/src/main/resources/locale_ita.properties b/src/main/resources/locale_ita.properties index a5944bb..8180fb2 100644 --- a/src/main/resources/locale_ita.properties +++ b/src/main/resources/locale_ita.properties @@ -43,7 +43,6 @@ tab2_Lbl_AllowXciNszXczDesc=Usato dalle applicazioni che supportano XCI/NSZ/XCZ tab2_Lbl_Language=Lingua windowBodyRestartToApplyLang=Riavvia l'applicazione per applicare le modifiche. tab2_Cb_GLshowNspOnly=Mostra solo *.nsp in GoldLeaf. -tab2_Cb_UseOldGlVersion=Usa una vecchia versione di GoldLeaf btn_OpenSplitFile=Seleziona NSP troncato tab2_Lbl_ApplicationSettings=Impostazioni principali tabSplMrg_Lbl_SplitNMergeTitle=Strumento tronca e unisci @@ -63,4 +62,5 @@ failure_txt=Fallito btn_Select=Seleziona btn_InjectPayloader=Inietta payload btn_Cancel=Annulla +tab2_Cb_GlVersion=Versione di GoldLeaf diff --git a/src/main/resources/locale_por.properties b/src/main/resources/locale_por.properties index 966290d..e384664 100644 --- a/src/main/resources/locale_por.properties +++ b/src/main/resources/locale_por.properties @@ -43,7 +43,6 @@ tab2_Lbl_AllowXciNszXczDesc=Usado por aplica\u00E7\u00F5es que suportam XCI/NSZ/ tab2_Lbl_Language=Idioma windowBodyRestartToApplyLang=Por favor, reinicie para aplicar as modifica\u00E7\u00F5es. tab2_Cb_GLshowNspOnly=Mostrar apenas arquivos .nsp no GoldLeaf. -tab2_Cb_UseOldGlVersion=Usar vers\u00E3o antiga do GoldLeaf. btn_OpenSplitFile=Selecionar arquivos .nsp fragmentados(splitted) tab2_Lbl_ApplicationSettings=Configura\u00E7\u00F5es principais tabSplMrg_Lbl_SplitNMergeTitle=Ferramentas para fragmentar e juntar(merge) arquivos. @@ -63,4 +62,5 @@ failure_txt=Falhou btn_Select=Selecionar btn_InjectPayloader=Injetar payload btn_Cancel=Cancelar +tab2_Cb_GlVersion=Vers\u00E3o do GoldLeaf. diff --git a/src/main/resources/locale_rus.properties b/src/main/resources/locale_rus.properties index 137fea7..5c8e15b 100644 --- a/src/main/resources/locale_rus.properties +++ b/src/main/resources/locale_rus.properties @@ -43,7 +43,6 @@ tab2_Lbl_AllowXciNszXczDesc=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u04 tab2_Lbl_Language=\u042F\u0437\u044B\u043A windowBodyRestartToApplyLang=\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0441\u0442\u0443\u043F\u0438\u043B\u0438 \u0432 \u0441\u0438\u043B\u0443. tab2_Cb_GLshowNspOnly=\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0444\u0430\u0439\u043B\u044B *.nsp \u0432 GoldLeaf. -tab2_Cb_UseOldGlVersion=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0440\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E GoldLeaf btn_OpenSplitFile=\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0440\u0430\u0437\u0431\u0438\u0442\u044B\u0439 NSP tab2_Lbl_ApplicationSettings=\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 tabSplMrg_Lbl_SplitNMergeTitle=\u0423\u0442\u0438\u043B\u0438\u0442\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u043A\u0438 \u0438 \u0441\u043B\u0438\u044F\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432 @@ -68,4 +67,5 @@ windowTitleDownloadDrivers=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044 windowBodyDownloadDrivers=\u0421\u043A\u0430\u0447\u0438\u0432\u0430\u0435\u043C \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044B (libusbK v3.0.7.0)... btn_Cancel=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C btn_Close=\u0417\u0430\u043A\u0440\u044B\u0442\u044C +tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0438\u044F GoldLeaf diff --git a/src/main/resources/locale_ukr.properties b/src/main/resources/locale_ukr.properties index 49e572b..64e4578 100644 --- a/src/main/resources/locale_ukr.properties +++ b/src/main/resources/locale_ukr.properties @@ -43,7 +43,6 @@ tab2_Lbl_AllowXciNszXczDesc=\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u04 tab2_Lbl_Language=\u041C\u043E\u0432\u0430 windowBodyRestartToApplyLang=\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0456\u0442\u044C \u0434\u043E\u0434\u0430\u0442\u043E\u043A \u0449\u043E\u0431 \u0437\u043C\u0456\u043D\u0438 \u0432\u0441\u0442\u0443\u043F\u0438\u043B\u0438 \u0432 \u0441\u0438\u043B\u0443. tab2_Cb_GLshowNspOnly=\u0412\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u0438 \u0432\u0438\u043A\u043B\u044E\u0447\u043D\u043E *.nsp \u0444\u0430\u0439\u043B\u0438 \u0443 GoldLeaf. -tab2_Cb_UseOldGlVersion=\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0443 \u0432\u0435\u0440\u0441\u0456\u044E GoldLeaf btn_OpenSplitFile=\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0440\u043E\u0437\u0431\u0438\u0442\u0438\u0439 NSP tab2_Lbl_ApplicationSettings=\u041E\u0441\u043D\u043E\u0432\u043D\u0456 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F tabSplMrg_Lbl_SplitNMergeTitle=\u041F\u043E\u043C\u0456\u0447\u043D\u0438\u043A \u0440\u043E\u0437\u0431\u0432\u043A\u0438 \u0442\u0430 \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u043D\u044F \u0444\u0430\u0439\u043B\u0456\u0432 @@ -68,3 +67,4 @@ windowTitleDownloadDrivers=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u043 windowBodyDownloadDrivers=\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0443\u0454\u043C\u043E \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0438 (libusbK v3.0.7.0)... btn_Cancel=\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 btn_Close=\u0417\u0430\u043A\u0440\u0438\u0442\u0438 +tab2_Cb_GlVersion=\u0412\u0435\u0440\u0441\u0456\u044F GoldLeaf diff --git a/src/main/resources/locale_vie.properties b/src/main/resources/locale_vie.properties index aac568f..46f1642 100644 --- a/src/main/resources/locale_vie.properties +++ b/src/main/resources/locale_vie.properties @@ -22,7 +22,6 @@ tab2_Cb_DontServeRequests=Kh\u00F4ng ph\u1EE5c v\u1EE5 c\u00E1c y\u00EAu c\u1EA7 tab2_Cb_ExpertMode=Ch\u1EBF \u0111\u1ED9 Chuy\u00EAn gia tab2_Cb_GLshowNspOnly=Ch\u1EC9 hi\u1EC3n th\u1ECB *.nsp trong GoldLeaf. tab2_Cb_RandSelectPort=L\u1EA5y c\u1ED5ng ng\u1EABu nhi\u00EAn -tab2_Cb_UseOldGlVersion=D\u00F9ng phi\u00EAn b\u1EA3n GoldLeaf c\u0169 tab2_Cb_ValidateNSHostName=Lu\u00F4n x\u00E1c th\u1EF1c \u0111\u1EA7u v\u00E0o IP NS. tab2_Lbl_AllowXciNszXczDesc=\u0110\u01B0\u1EE3c s\u1EED d\u1EE5ng b\u1EDFi c\u00E1c \u1EE9ng d\u1EE5ng b\u00EAn th\u1EE9 ba h\u1ED7 tr\u1EE3 XCI/NSZ/XCZ v\u00E0 v\u1EADn d\u1EE5ng giao th\u1EE9c truy\u1EC1n t\u1EA3i TinFoil. \u0110\u1EEBng thay \u0111\u1ED5i n\u1EBFu b\u1EA1n kh\u00F4ng ch\u1EAFc. tab2_Lbl_ApplicationSettings=Thi\u1EBFt l\u1EADp ch\u00EDnh