Compare commits

...

4 commits

Author SHA1 Message Date
Dmitry Isaenko
b02bc7ed2d Using idea from #90: Replace 'Tinfoil' by 'Awoo' everywhere on the front end. Also touched translation files (hope didn't broke it, but could be)
Add 'Fusee Geelee' and 'RCM' labels used on 'RCM' tab to 'properties' files in case someone wants to translate it.. I don't think if someone should but there is an option.
(note: CLI arguments remains the same while only description updated)
2021-08-10 17:00:33 +03:00
Dmitry Isaenko
86c867ab2c
Merge pull request #98 from calini/master
Add Romanian translation
2021-08-09 22:53:06 +03:00
Calin Ilie
ba1ba20d43
Convert Romanian translation to Java entities 2021-07-28 23:00:24 +01:00
Calin Ilie
62de68ba89
Add Romanian translation 2021-07-28 22:51:14 +01:00
24 changed files with 239 additions and 143 deletions

View file

@ -5,11 +5,12 @@
[Support author](#support-this-app) [Support author](#support-this-app)
NS-USBloader is: NS-USBloader is:
* A PC-side installer for **[Adubbz/TinFoil (v0.2.1)](https://github.com/Adubbz/Tinfoil/)**, **[Huntereb/Awoo-Installer](https://github.com/Huntereb/Awoo-Installer)** (USB and Network supported) and **[XorTroll/GoldLeaf](https://github.com/XorTroll/Goldleaf)** (USB) NSP installer. * A PC-side installer for **[Huntereb/Awoo-Installer](https://github.com/Huntereb/Awoo-Installer)** / other compatible installers (USB and Network supported) and **[XorTroll/GoldLeaf](https://github.com/XorTroll/Goldleaf)** (USB) NSP installer.
Replacement for default **usb_install_pc.py**, **remote_install_pc.py**, **GoldTree**/**Quark**. Alternative to default **usb_install_pc.py**, **remote_install_pc.py**, **GoldTree**/**Quark**.
* This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64 and Raspberry Pi). * This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64 and Raspberry Pi).
* And of course it's a tool for split files! * It's a tool for creating split files!
* And also for merging split-files into one :) * Also you can use it for merging split-files into one :)
[Click here for Android version ;)](https://github.com/developersu/ns-usbloader-mobile) [Click here for Android version ;)](https://github.com/developersu/ns-usbloader-mobile)
@ -49,6 +50,7 @@ Sometimes I add new posts about this project [on my home page](https://developer
* Czech by [Spenaat](https://github.com/spenaat) * Czech by [Spenaat](https://github.com/spenaat)
* Chinese (Traditional) by [qazrfv1234](https://github.com/qazrfv1234) * Chinese (Traditional) by [qazrfv1234](https://github.com/qazrfv1234)
* Arabic by [eslamabdel](https://github.com/eslamabdel) * Arabic by [eslamabdel](https://github.com/eslamabdel)
* Romanian by [Călin Ilie](https://github.com/calini)
### System requirements ### System requirements
@ -67,11 +69,13 @@ JDK 11 for MacOS and Linux
where '+' means 'any next NS-USBloader version'. where '+' means 'any next NS-USBloader version'.
### Awoo Installer support ### Awoo Installer and compatible applications support
Awoo Installer uses the same command-set (or 'protocol') to TinFoil. So just select 'TinFoil' in case you're going to use Awoo. Awoo Installer uses the same command-set (or 'protocol') to [Adubbz/Tinfoil](https://github.com/Adubbz/Tinfoil/).
Also, please go to 'Settings' tab of NS-USBloader after first installation and check 'Allow XCI / NSZ / XCZ files selection for TinFoil' option. This installer can install not only NSPs but a way more formats! A lot of other forks/apps uses the same command-set. To stop speculating about the name it's now called 'Awoo'. It WAS called 'TinFoil' before. Not any more.
Also, please go to 'Settings' tab of NS-USBloader after first installation and check 'Allow XCI / NSZ / XCZ files selection for Awoo' option. This installer can install not only NSPs but a way more formats!
### Usage ### Usage
##### Linux: ##### Linux:
@ -121,9 +125,9 @@ Set 'Security & Privacy' settings if needed.
#### And how to use it? #### And how to use it?
The first thing you should do it install TinFoil ([Adubbz](https://github.com/Adubbz/Tinfoil/)), GoldLeaf ([XorTroll](https://github.com/XorTroll/Goldleaf)) or Awoo ([Huntereb](https://github.com/Huntereb/Awoo-Installer)) on your NS. The first thing you should do it install Awoo ([Huntereb](https://github.com/Huntereb/Awoo-Installer)) or GoldLeaf ([XorTroll](https://github.com/XorTroll/Goldleaf)) on your NS.
Take a look on app, find where is the option to install from USB and/or Network. Maybe [this article (about TinFoil)](https://developersu.blogspot.com/2019/02/ns-usbloader-en.html) will be helpful. Take a look on app, find where is the option to install from USB and/or Network. Maybe (very old) [this article (about TinFoil)](https://developersu.blogspot.com/2019/02/ns-usbloader-en.html) will be helpful.
#### In details #### In details
@ -137,7 +141,7 @@ Then you may drag-n-drop files (split-files aka folders) to application or use '
Table. Table.
There you can select checkbox for files that will be send to application (TF/GL). ~~Since GoldLeaf allow you only one file transmission per time, only one file is available for selection.~~ There you can select checkbox for files that will be sent to application (AW/GL). ~~Since GoldLeaf v0.5 allow you only one file transmission per time, only one file is available for selection.~~
Also you can use space to select/un-select files and 'delete' button for deleting. By right-mouse-click you can see context menu where you can delete one OR all items from the table. Also you can use space to select/un-select files and 'delete' button for deleting. By right-mouse-click you can see context menu where you can delete one OR all items from the table.
@ -151,11 +155,11 @@ On this tab you can select payloader like Hekate or LockPick_RCM and send it to
##### 'Folder with arrows and zeroes' tab ##### 'Folder with arrows and zeroes' tab
On this tab you can split and merge files. Select 'Split' or 'Merge' and split (or merge). On this tab you can split and merge files. Select 'Split' or 'Merge' and split (or merge). BTW Drag-n-drop supported.
##### 'Gears' tab. ##### 'Gears' tab.
Here you can configure settings for network file transmission. Usually you shouldn't change anything. But it you're cool hacker, go ahead! The most interesting option here is 'Don't serve requests'. Architecture of the TinFoil's NET part is working interesting way. When you select in TF network NSP transfer, application will wait at port 2000 for the information about where should it take files from. Like '192.168.1.5:6060/my file.nsp'. Usually NS-USBloader serves requests by implementing simplified HTTP server and bringing it up and so on. But if this option selected, you can define path to remote location of the files. For example if you set in settings '192.168.4.2:80/ROMS/NS/' and add in table file 'my file.nsp' then NS-USBloader will simply tell TinFoil "Hey, go take files from '192.168.4.2:80/ROMS/NS/my%20file.nsp' ". Of course you have to bring '192.168.4.2' host up and make file accessible from such address (just go install nginx). As I said, this feature is interesting, but I guess won't be popular. Here you can configure settings for network file transmission. Usually you shouldn't change anything. But it you're cool hacker, go ahead! The most interesting option here is 'Don't serve requests'. Architecture of the Awoo's NET part is working interesting way. When you select in Awoo network NSP transfer, application will wait at port 2000 for the information about where should it take files from. Like '192.168.1.5:6060/my file.nsp'. Usually NS-USBloader serves requests by implementing simplified HTTP server and bringing it up and so on. But if this option selected, you can define path to remote location of the files. For example if you set in settings '192.168.4.2:80/ROMS/NS/' and add in table file 'my file.nsp' then NS-USBloader will simply tell Awoo "Hey, go take files from '192.168.4.2:80/ROMS/NS/my%20file.nsp' ". Of course you have to bring '192.168.4.2' host up and make file accessible from such address (just go install nginx). As I said, this feature is interesting, but I guess won't be popular.
Also here you can: Also here you can:
* Set 'Auto-check for updates' for checking for updates when application starts, or click button to verify if new version released immediately. * Set 'Auto-check for updates' for checking for updates when application starts, or click button to verify if new version released immediately.
@ -175,10 +179,10 @@ To get help run ``$ java -jar ns-usbloader-4.0.jar --help``
-g,--goldleaf <...> Install via GoldLeaf mode. Check '-g help' for information. -g,--goldleaf <...> Install via GoldLeaf mode. Check '-g help' for information.
-h,--help Show this help -h,--help Show this help
-m,--merge <...> Merge files. Check '-m help' for information. -m,--merge <...> Merge files. Check '-m help' for information.
-n,--tfn <...> Install via Tinfoil/Awoo Network mode. Check '-n help' for information. -n,--tfn <...> Install via Awoo Network mode. Check '-n help' for information.
-r,--rcm <[PATH/]payload.bin> Send payload -r,--rcm <[PATH/]payload.bin> Send payload
-s,--split <...> Split files. Check '-s help' for information. -s,--split <...> Split files. Check '-s help' for information.
-t,--tinfoil <FILE...> Install via Tinfoil/Awoo USB mode. -t,--tinfoil <FILE...> Install via Awoo USB mode.
-v,--version Show application version -v,--version Show application version
``` ```
@ -214,23 +218,20 @@ $ java -jar ns-usbloader-4.0.jar -m /tmp/ ~/*.nsp
### Other notes ### Other notes
'Status' = 'Uploaded' that appears in the table does not mean that file has been installed. It means that it has been sent to NS without any issues! That's what this app about. 'Status' = 'Uploaded' that appears in the table does not mean that file has been installed. It means that it has been sent to NS without any issues! That's what this app about.
Handling successful/failed installation is a purpose of the other side application: TinFoil or GoldLeaf. And they don't provide any feedback interfaces so I can't detect success/failure. Handling successful/failed installation is a purpose of the other side application: Awoo/Awoo-like or GoldLeaf. And they don't provide any feedback interfaces so I can't detect success/failure.
usb4java since NS-USBloader-v0.2.3 switched to 1.2.0 instead of 1.3.0. This should not impact anyone except users of macOS High Sierra (and Sierra, and El Capitan) where previous versions of NS-USBloader didn't work. Now builds with usb4java-1.2.0 marked as '-legacy' and builds with usb4java-1.3.0 doesn't have postfixes. usb4java since NS-USBloader-v0.2.3 switched to 1.2.0 instead of 1.3.0. This should not impact anyone except users of macOS High Sierra (and Sierra, and El Capitan) where previous versions of NS-USBloader didn't work. Now builds with usb4java-1.2.0 marked as '-legacy' and builds with usb4java-1.3.0 doesn't have postfixes.
### Translators! ### Translators!
If you want to see this app translated to your language, go grab [this file](https://github.com/developersu/ns-usbloader/blob/master/src/main/resources/locale.properties) and translate it. If you want to see this app translated to your language, go grab [this file](https://github.com/developersu/ns-usbloader/blob/master/src/main/resources/locale.properties) and translate it.
Upload somewhere (create PR, use pastebin/google drive/whatever else). [Create new issue](https://github.com/developersu/ns-usbloader/issues) and post a link. I'll grab it and add. Upload somewhere (create PR, use pastebin/google drive/whatever else). [Create new issue](https://github.com/developersu/ns-usbloader/issues) and post a link. I'll grab it and add.
To convert files of any locale to readable format (and vise-versa) you can use this site [https://itpro.cz/juniconv/](https://itpro.cz/juniconv/) To convert files of any locale to readable format (and vise-versa) you can use this site [https://itpro.cz/juniconv/](https://itpro.cz/juniconv/)
#### TODO (maybe):
- [x] [Android support](https://github.com/developersu/ns-usbloader-mobile)
## Support this app ## Support this app
If you like this app, just give a star. If you like this app, just give a star.
If you want to make a donation*, please see below: If you want to make a donation*, please see below:
@ -239,9 +240,9 @@ If you want to make a donation*, please see below:
<a href="https://paypal.me/developersu" title="PayPal"><img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-100px.png" border="0" alt="PayPal Logo" /></a> <a href="https://paypal.me/developersu" title="PayPal"><img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-100px.png" border="0" alt="PayPal Logo" /></a>
[Yandex.Money](https://money.yandex.ru/to/410014301951665) [yoomoney](https://yoomoney.ru/to/410014301951665)
* Please note: this is non-commercial application. *Please note: this is non-commercial application.
Thanks Thanks

View file

@ -12,7 +12,7 @@
<url>https://github.com/developersu/ns-usbloader/</url> <url>https://github.com/developersu/ns-usbloader/</url>
<description> <description>
NSP USB loader for TinFoil (USB and Network) and GoldLeaf NSP USB loader for Awoo Installer and compatible (USB and Network) and GoldLeaf
</description> </description>
<inceptionYear>2019</inceptionYear> <inceptionYear>2019</inceptionYear>
<organization> <organization>
@ -257,7 +257,7 @@
<versionInfo> <versionInfo>
<fileVersion>1.0.0.0</fileVersion> <fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>${project.version}</txtFileVersion> <txtFileVersion>${project.version}</txtFileVersion>
<fileDescription>TinFoil and GoldLeaf installer for your NS</fileDescription> <fileDescription>Awoo and GoldLeaf installer for your NS</fileDescription>
<copyright>GNU General Public License v3, 2019 ${project.organization.name}. Russia/LPR.</copyright> <copyright>GNU General Public License v3, 2019 ${project.organization.name}. Russia/LPR.</copyright>
<productVersion>1.0.0.0</productVersion> <productVersion>1.0.0.0</productVersion>
<txtProductVersion>${project.version}</txtProductVersion> <txtProductVersion>${project.version}</txtProductVersion>

View file

@ -41,12 +41,14 @@ public class AppPreferences {
theme = "/res/app_dark.css"; theme = "/res/app_dark.css";
return theme; return theme;
} }
public String getProtocol(){ public int getProtocol(){
String protocol = preferences.get("PROTOCOL", "TinFoil"); // Don't let user to change settings manually int protocolIndex = preferences.getInt("protocol_index", 0); // Don't let user to change settings manually
if (!protocol.matches("(^TinFoil$)|(^GoldLeaf$)")) if (protocolIndex < 0 || protocolIndex > 1)
protocol = "TinFoil"; protocolIndex = 0;
return protocol; return protocolIndex;
} }
public void setProtocol(int protocolIndex){ preferences.putInt("protocol_index", protocolIndex); }
public String getNetUsb(){ public String getNetUsb(){
String netUsb = preferences.get("NETUSB", "USB"); // Don't let user to change settings manually String netUsb = preferences.get("NETUSB", "USB"); // Don't let user to change settings manually
if (!netUsb.matches("(^USB$)|(^NET$)")) if (!netUsb.matches("(^USB$)|(^NET$)"))
@ -55,7 +57,7 @@ public class AppPreferences {
} }
public void setTheme(String theme){ preferences.put("THEME", theme); } public void setTheme(String theme){ preferences.put("THEME", theme); }
public void setProtocol(String protocol){ preferences.put("PROTOCOL", protocol); }
public void setNetUsb(String netUsb){ preferences.put("NETUSB", netUsb); } public void setNetUsb(String netUsb){ preferences.put("NETUSB", netUsb); }
public void setNsIp(String ip){preferences.put("NSIP", ip);} public void setNsIp(String ip){preferences.put("NSIP", ip);}

View file

@ -78,13 +78,13 @@ public class GamesController implements Initializable {
this.resourceBundle = resourceBundle; this.resourceBundle = resourceBundle;
AppPreferences preferences = AppPreferences.getInstance(); AppPreferences preferences = AppPreferences.getInstance();
ObservableList<String> choiceProtocolList = FXCollections.observableArrayList("TinFoil", "GoldLeaf"); ObservableList<String> choiceProtocolList = FXCollections.observableArrayList("Awoo", "GoldLeaf");
choiceProtocol.setItems(choiceProtocolList); choiceProtocol.setItems(choiceProtocolList);
choiceProtocol.getSelectionModel().select(preferences.getProtocol()); choiceProtocol.getSelectionModel().select(preferences.getProtocol());
choiceProtocol.setOnAction(e-> { choiceProtocol.setOnAction(e-> {
tableFilesListController.setNewProtocol(getSelectedProtocol()); tableFilesListController.setNewProtocol(getSelectedProtocolByName());
if (getSelectedProtocol().equals("GoldLeaf")) { if (isGoldLeaf()) {
choiceNetUsb.setDisable(true); choiceNetUsb.setDisable(true);
choiceNetUsb.getSelectionModel().select("USB"); choiceNetUsb.getSelectionModel().select("USB");
nsIpLbl.setVisible(false); nsIpLbl.setVisible(false);
@ -100,12 +100,12 @@ public class GamesController implements Initializable {
// Really bad disable-enable upload button function // Really bad disable-enable upload button function
disableUploadStopBtn(tableFilesListController.isFilesForUploadListEmpty()); disableUploadStopBtn(tableFilesListController.isFilesForUploadListEmpty());
}); // Add listener to notify tableView controller }); // Add listener to notify tableView controller
tableFilesListController.setNewProtocol(getSelectedProtocol()); // Notify tableView controller tableFilesListController.setNewProtocol(getSelectedProtocolByName()); // Notify tableView controller
ObservableList<String> choiceNetUsbList = FXCollections.observableArrayList("USB", "NET"); ObservableList<String> choiceNetUsbList = FXCollections.observableArrayList("USB", "NET");
choiceNetUsb.setItems(choiceNetUsbList); choiceNetUsb.setItems(choiceNetUsbList);
choiceNetUsb.getSelectionModel().select(preferences.getNetUsb()); choiceNetUsb.getSelectionModel().select(preferences.getNetUsb());
if (getSelectedProtocol().equals("GoldLeaf")) { if (isGoldLeaf()) {
choiceNetUsb.setDisable(true); choiceNetUsb.setDisable(true);
choiceNetUsb.getSelectionModel().select("USB"); choiceNetUsb.getSelectionModel().select("USB");
} }
@ -121,7 +121,7 @@ public class GamesController implements Initializable {
}); });
// Set and configure NS IP field behavior // Set and configure NS IP field behavior
nsIpTextField.setText(preferences.getNsIp()); nsIpTextField.setText(preferences.getNsIp());
if (getSelectedProtocol().equals("TinFoil") && getSelectedNetUsb().equals("NET")){ if (isTinfoil() && getSelectedNetUsb().equals("NET")){
nsIpLbl.setVisible(true); nsIpLbl.setVisible(true);
nsIpTextField.setVisible(true); nsIpTextField.setVisible(true);
} }
@ -145,7 +145,7 @@ public class GamesController implements Initializable {
selectSplitNspBtn.getStyleClass().add("buttonSelect"); selectSplitNspBtn.getStyleClass().add("buttonSelect");
uploadStopBtn.setOnAction(e-> uploadBtnAction()); uploadStopBtn.setOnAction(e-> uploadBtnAction());
uploadStopBtn.setDisable(getSelectedProtocol().equals("TinFoil")); uploadStopBtn.setDisable(isTinfoil());
this.btnUpStopImage = new Region(); this.btnUpStopImage = new Region();
btnUpStopImage.getStyleClass().add("regionUpload"); btnUpStopImage.getStyleClass().add("regionUpload");
@ -174,30 +174,33 @@ public class GamesController implements Initializable {
AppPreferences.getInstance().setTheme(styleSheets.get(0)); AppPreferences.getInstance().setTheme(styleSheets.get(0));
} }
/** /**
* Get selected protocol (GL/TF) * Get selected protocol index (GL/Awoo)
* */ * */
String getSelectedProtocol(){ private int getSelectedProtocolByIndex(){
return choiceProtocol.getSelectionModel().getSelectedIndex();
}
private String getSelectedProtocolByName(){
return choiceProtocol.getSelectionModel().getSelectedItem(); return choiceProtocol.getSelectionModel().getSelectedItem();
} }
/** /**
* Get selected protocol (USB/NET) * Get selected protocol (USB/NET)
* */ * */
String getSelectedNetUsb(){ private String getSelectedNetUsb(){
return choiceNetUsb.getSelectionModel().getSelectedItem(); return choiceNetUsb.getSelectionModel().getSelectedItem();
} }
/** /**
* Get NS IP address * Get NS IP address
* */ * */
String getNsIp(){ private String getNsIp(){
return nsIpTextField.getText(); return nsIpTextField.getText();
} }
private boolean isGoldLeaf() { private boolean isGoldLeaf() {
return getSelectedProtocol().equals("GoldLeaf"); return getSelectedProtocolByName().equals("GoldLeaf");
} }
private boolean isTinfoil() { private boolean isTinfoil() {
return getSelectedProtocol().equals("TinFoil"); return getSelectedProtocolByName().equals("Awoo");
} }
private boolean isAllFiletypesAllowedForGL() { private boolean isAllFiletypesAllowedForGL() {
@ -290,7 +293,7 @@ public class GamesController implements Initializable {
* @param startFolder where to start * @param startFolder where to start
* @param filesRegex for filenames * @param filesRegex for filenames
*/ */
// TODO: Too sophisticated. Should be moved to simple class to keep things simplier // TODO: Too sophisticated. Should be moved to simple class to keep things simpler
private void collectFiles(List<File> storage, private void collectFiles(List<File> storage,
File startFolder, File startFolder,
@ -353,7 +356,7 @@ public class GamesController implements Initializable {
TextArea logArea = MediatorControl.getInstance().getContoller().logArea; TextArea logArea = MediatorControl.getInstance().getContoller().logArea;
if (getSelectedProtocol().equals("TinFoil") && tableFilesListController.getFilesForUpload() == null) { if (isTinfoil() && tableFilesListController.getFilesForUpload() == null) {
logArea.setText(resourceBundle.getString("tab3_Txt_NoFolderOrFileSelected")); logArea.setText(resourceBundle.getString("tab3_Txt_NoFolderOrFileSelected"));
return; return;
} }
@ -369,11 +372,11 @@ public class GamesController implements Initializable {
SettingsController settings = MediatorControl.getInstance().getSettingsController(); SettingsController settings = MediatorControl.getInstance().getSettingsController();
// If USB selected // If USB selected
if (getSelectedProtocol().equals("GoldLeaf") ){ if (isGoldLeaf()){
final SettingsBlockGoldleafController goldleafSettings = settings.getGoldleafSettings(); final SettingsBlockGoldleafController goldleafSettings = settings.getGoldleafSettings();
usbNetCommunications = new UsbCommunications(nspToUpload, "GoldLeaf" + goldleafSettings.getGlVer(), goldleafSettings.getNSPFileFilterForGL()); usbNetCommunications = new UsbCommunications(nspToUpload, "GoldLeaf" + goldleafSettings.getGlVer(), goldleafSettings.getNSPFileFilterForGL());
} }
else if (( getSelectedProtocol().equals("TinFoil") && getSelectedNetUsb().equals("USB") )){ else if (( isTinfoil() && getSelectedNetUsb().equals("USB") )){
usbNetCommunications = new UsbCommunications(nspToUpload, "TinFoil", false); usbNetCommunications = new UsbCommunications(nspToUpload, "TinFoil", false);
} }
else { // NET INSTALL OVER TINFOIL else { // NET INSTALL OVER TINFOIL
@ -477,7 +480,7 @@ public class GamesController implements Initializable {
* Crunch. This function called from NSTableViewController * Crunch. This function called from NSTableViewController
* */ * */
public void disableUploadStopBtn(boolean disable){ public void disableUploadStopBtn(boolean disable){
if (getSelectedProtocol().equals("TinFoil")) if (isTinfoil())
uploadStopBtn.setDisable(disable); uploadStopBtn.setDisable(disable);
else else
uploadStopBtn.setDisable(false); uploadStopBtn.setDisable(false);
@ -522,7 +525,7 @@ public class GamesController implements Initializable {
public void updatePreferencesOnExit(){ public void updatePreferencesOnExit(){
AppPreferences preferences = AppPreferences.getInstance(); AppPreferences preferences = AppPreferences.getInstance();
preferences.setProtocol(getSelectedProtocol()); preferences.setProtocol(getSelectedProtocolByIndex());
preferences.setRecent(getRecentPath()); preferences.setRecent(getRecentPath());
preferences.setNetUsb(getSelectedNetUsb()); preferences.setNetUsb(getSelectedNetUsb());
preferences.setNsIp(getNsIp()); preferences.setNsIp(getNsIp());

View file

@ -136,14 +136,14 @@ public class CommandLineInterface {
/* Tinfoil network mode options */ /* Tinfoil network mode options */
final Option tinfoilNetOption = Option.builder("n") final Option tinfoilNetOption = Option.builder("n")
.longOpt("tfn") .longOpt("tfn")
.desc("Install via Tinfoil/Awoo Network mode. Check '-n help' for information.") .desc("Install via Awoo Network mode. Check '-n help' for information.")
.hasArgs() .hasArgs()
.argName("...") .argName("...")
.build(); .build();
/* Tinfoil/Awoo USB */ /* Tinfoil/Awoo USB */
final Option tinfoilOption = Option.builder("t") final Option tinfoilOption = Option.builder("t")
.longOpt("tinfoil") .longOpt("tinfoil")
.desc("Install via Tinfoil/Awoo USB mode.") .desc("Install via Awoo USB mode.")
.hasArgs() .hasArgs()
.argName("FILE...") .argName("FILE...")
.build(); .build();

View file

@ -50,7 +50,7 @@ class TinFoil extends TransferModule {
TinFoil(DeviceHandle handler, LinkedHashMap<String, File> nspMap, CancellableRunnable task, ILogPrinter logPrinter){ TinFoil(DeviceHandle handler, LinkedHashMap<String, File> nspMap, CancellableRunnable task, ILogPrinter logPrinter){
super(handler, nspMap, task, logPrinter); super(handler, nspMap, task, logPrinter);
print("============= Tinfoil =============", EMsgType.INFO); print("======== Awoo Installer and compatibles ========", EMsgType.INFO);
if (! sendListOfFiles()) if (! sendListOfFiles())
return; return;
@ -69,25 +69,25 @@ class TinFoil extends TransferModule {
byte[] padding = new byte[8]; byte[] padding = new byte[8];
if (writeUsb(TUL0)) { if (writeUsb(TUL0)) {
print("TF Send list of files: handshake [1/4]", EMsgType.FAIL); print("Send list of files: handshake [1/4]", EMsgType.FAIL);
return false; return false;
} }
if (writeUsb(nspListNamesSize)) { // size of the list we can transfer if (writeUsb(nspListNamesSize)) { // size of the list we can transfer
print("TF Send list of files: list length [2/4]", EMsgType.FAIL); print("Send list of files: list length [2/4]", EMsgType.FAIL);
return false; return false;
} }
if (writeUsb(padding)) { if (writeUsb(padding)) {
print("TF Send list of files: padding [3/4]", EMsgType.FAIL); print("Send list of files: padding [3/4]", EMsgType.FAIL);
return false; return false;
} }
if (writeUsb(nspListNames)) { if (writeUsb(nspListNames)) {
print("TF Send list of files: list itself [4/4]", EMsgType.FAIL); print("Send list of files: list itself [4/4]", EMsgType.FAIL);
return false; return false;
} }
print("TF Send list of files complete.", EMsgType.PASS); print("Send list of files complete.", EMsgType.PASS);
return true; return true;
} }
@ -114,7 +114,7 @@ class TinFoil extends TransferModule {
* After we sent commands to NS, this chain starts * After we sent commands to NS, this chain starts
* */ * */
private boolean proceedCommands(){ private boolean proceedCommands(){
print("TF Awaiting for NS commands.", EMsgType.INFO); print("Awaiting for NS commands.", EMsgType.INFO);
try{ try{
byte[] deviceReply; byte[] deviceReply;
byte command; byte command;
@ -127,11 +127,11 @@ class TinFoil extends TransferModule {
switch (command){ switch (command){
case CMD_EXIT: case CMD_EXIT:
print("TF Transfer complete.", EMsgType.PASS); print("Transfer complete.", EMsgType.PASS);
return true; return true;
case CMD_FILE_RANGE_DEFAULT: case CMD_FILE_RANGE_DEFAULT:
case CMD_FILE_RANGE_ALTERNATIVE: case CMD_FILE_RANGE_ALTERNATIVE:
//print("TF Received 'FILE RANGE' command [0x0"+command+"].", EMsgType.PASS); //print("Received 'FILE RANGE' command [0x0"+command+"].", EMsgType.PASS);
if (fileRangeCmd()) if (fileRangeCmd())
return false; // catches exception return false; // catches exception
} }
@ -169,7 +169,7 @@ class TinFoil extends TransferModule {
String nspFileName = new String(receivedArray, StandardCharsets.UTF_8); String nspFileName = new String(receivedArray, StandardCharsets.UTF_8);
print(String.format("TF Reply to: %s" + print(String.format("Reply to: %s" +
"\n Offset: %-20d 0x%x" + "\n Offset: %-20d 0x%x" +
"\n Size: %-20d 0x%x", "\n Size: %-20d 0x%x",
nspFileName, nspFileName,
@ -188,16 +188,16 @@ class TinFoil extends TransferModule {
else else
sendNormalFile(nspFile, size, offset); sendNormalFile(nspFile, size, offset);
} catch (IOException ioe){ } catch (IOException ioe){
print("TF IOException:\n "+ioe.getMessage(), EMsgType.FAIL); print("IOException:\n "+ioe.getMessage(), EMsgType.FAIL);
ioe.printStackTrace(); ioe.printStackTrace();
return true; return true;
} catch (ArithmeticException ae){ } catch (ArithmeticException ae){
print("TF ArithmeticException (can't cast 'offset end' - 'offsets current' to 'integer'):" + print("ArithmeticException (can't cast 'offset end' - 'offsets current' to 'integer'):" +
"\n "+ae.getMessage(), EMsgType.FAIL); "\n "+ae.getMessage(), EMsgType.FAIL);
ae.printStackTrace(); ae.printStackTrace();
return true; return true;
} catch (NullPointerException npe){ } catch (NullPointerException npe){
print("TF NullPointerException (in some moment application didn't find something. Something important.):" + print("NullPointerException (in some moment application didn't find something. Something important.):" +
"\n "+npe.getMessage(), EMsgType.FAIL); "\n "+npe.getMessage(), EMsgType.FAIL);
npe.printStackTrace(); npe.printStackTrace();
return true; return true;
@ -216,7 +216,7 @@ class TinFoil extends TransferModule {
NSSplitReader nsSplitReader = new NSSplitReader(nspFile, size); NSSplitReader nsSplitReader = new NSSplitReader(nspFile, size);
if (nsSplitReader.seek(offset) != offset) if (nsSplitReader.seek(offset) != offset)
throw new IOException("TF Requested offset is out of file size. Nothing to transmit."); throw new IOException("Requested offset is out of file size. Nothing to transmit.");
while (currentOffset < size){ while (currentOffset < size){
if ((currentOffset + chunk) >= size ) if ((currentOffset + chunk) >= size )
@ -226,10 +226,10 @@ class TinFoil extends TransferModule {
readBuffer = new byte[chunk]; // TODO: not perfect moment, consider refactoring. readBuffer = new byte[chunk]; // TODO: not perfect moment, consider refactoring.
if (nsSplitReader.read(readBuffer) != chunk) if (nsSplitReader.read(readBuffer) != chunk)
throw new IOException("TF Reading from stream suddenly ended."); throw new IOException("Reading from stream suddenly ended.");
if (writeUsb(readBuffer)) if (writeUsb(readBuffer))
throw new IOException("TF Failure during file transfer."); throw new IOException("Failure during file transfer.");
currentOffset += chunk; currentOffset += chunk;
logPrinter.updateProgress((double)currentOffset / (double)size); logPrinter.updateProgress((double)currentOffset / (double)size);
} }
@ -245,7 +245,7 @@ class TinFoil extends TransferModule {
BufferedInputStream bufferedInStream = new BufferedInputStream(new FileInputStream(nspFile)); BufferedInputStream bufferedInStream = new BufferedInputStream(new FileInputStream(nspFile));
if (bufferedInStream.skip(offset) != offset) if (bufferedInStream.skip(offset) != offset)
throw new IOException("TF Requested offset is out of file size. Nothing to transmit."); throw new IOException("Requested offset is out of file size. Nothing to transmit.");
while (currentOffset < size) { while (currentOffset < size) {
if ((currentOffset + chunk) >= size) if ((currentOffset + chunk) >= size)
@ -255,10 +255,10 @@ class TinFoil extends TransferModule {
readBuffer = new byte[chunk]; readBuffer = new byte[chunk];
if (bufferedInStream.read(readBuffer) != chunk) if (bufferedInStream.read(readBuffer) != chunk)
throw new IOException("TF Reading from stream suddenly ended."); throw new IOException("Reading from stream suddenly ended.");
if (writeUsb(readBuffer)) if (writeUsb(readBuffer))
throw new IOException("TF Failure during file transfer."); throw new IOException("Failure during file transfer.");
currentOffset += chunk; currentOffset += chunk;
logPrinter.updateProgress((double)currentOffset / (double)size); logPrinter.updateProgress((double)currentOffset / (double)size);
} }
@ -278,17 +278,17 @@ class TinFoil extends TransferModule {
final byte[] twelveZeroBytes = new byte[12]; final byte[] twelveZeroBytes = new byte[12];
if (writeUsb(standardReplyBytes)){ // Send integer value of '1' in Little-endian format. if (writeUsb(standardReplyBytes)){ // Send integer value of '1' in Little-endian format.
print("TF Sending response failed [1/3]", EMsgType.FAIL); print("Sending response failed [1/3]", EMsgType.FAIL);
return true; return true;
} }
if(writeUsb(sizeAsBytes)) { // Send EXACTLY what has been received if(writeUsb(sizeAsBytes)) { // Send EXACTLY what has been received
print("TF Sending response failed [2/3]", EMsgType.FAIL); print("Sending response failed [2/3]", EMsgType.FAIL);
return true; return true;
} }
if(writeUsb(twelveZeroBytes)) { // kinda another one padding if(writeUsb(twelveZeroBytes)) { // kinda another one padding
print("TF Sending response failed [3/3]", EMsgType.FAIL); print("Sending response failed [3/3]", EMsgType.FAIL);
return true; return true;
} }
return false; return false;
@ -317,7 +317,7 @@ class TinFoil extends TransferModule {
case LibUsb.SUCCESS: case LibUsb.SUCCESS:
if (writeBufTransferred.get() == message.length) if (writeBufTransferred.get() == message.length)
return false; return false;
print("TF Data transfer issue [write]" + print("Data transfer issue [write]" +
"\n Requested: "+message.length+ "\n Requested: "+message.length+
"\n Transferred: "+writeBufTransferred.get(), EMsgType.FAIL); "\n Transferred: "+writeBufTransferred.get(), EMsgType.FAIL);
return true; return true;
@ -326,13 +326,13 @@ class TinFoil extends TransferModule {
//writeBufTransferred.clear(); // MUST BE HERE IF WE 'GET()' IT //writeBufTransferred.clear(); // MUST BE HERE IF WE 'GET()' IT
continue; continue;
default: default:
print("TF Data transfer issue [write]" + print("Data transfer issue [write]" +
"\n Returned: "+ UsbErrorCodes.getErrCode(result) + "\n Returned: "+ UsbErrorCodes.getErrCode(result) +
"\n (execution stopped)", EMsgType.FAIL); "\n (execution stopped)", EMsgType.FAIL);
return true; return true;
} }
} }
print("TF Execution interrupted", EMsgType.INFO); print("Execution interrupted", EMsgType.INFO);
return true; return true;
} }
/** /**
@ -357,11 +357,11 @@ class TinFoil extends TransferModule {
case LibUsb.ERROR_TIMEOUT: case LibUsb.ERROR_TIMEOUT:
continue; continue;
default: default:
throw new Exception("TF Data transfer issue [read]" + throw new Exception("Data transfer issue [read]" +
"\n Returned: " + UsbErrorCodes.getErrCode(result)+ "\n Returned: " + UsbErrorCodes.getErrCode(result)+
"\n (execution stopped)"); "\n (execution stopped)");
} }
} }
throw new InterruptedException("TF Execution interrupted"); throw new InterruptedException("Execution interrupted");
} }
} }

View file

@ -21,7 +21,7 @@
<Pane minHeight="-Infinity" prefHeight="10.0" style="-fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect, #ff1515 40%, transparent 45%);" /> <Pane minHeight="-Infinity" prefHeight="10.0" style="-fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect, #ff1515 40%, transparent 45%);" />
<HBox alignment="CENTER"> <HBox alignment="CENTER">
<children> <children>
<Label text="Fusée Gelée RCM"> <Label text="%tabRcm_Lbl_FuseeGelee">
<font> <font>
<Font name="System Bold" size="15.0" /> <Font name="System Bold" size="15.0" />
</font> </font>
@ -43,7 +43,7 @@
</GridPane> </GridPane>
<VBox spacing="8.0"> <VBox spacing="8.0">
<children> <children>
<Label text="Payload: " /> <Label text="%tabRcm_Lbl_Payload" />
<HBox fx:id="plHbox1" alignment="CENTER_LEFT" onDragDropped="#handleDrop" onDragOver="#handleDragOver" spacing="5.0"> <HBox fx:id="plHbox1" alignment="CENTER_LEFT" onDragDropped="#handleDrop" onDragOver="#handleDragOver" spacing="5.0">
<children> <children>
<RadioButton fx:id="pldrRadio1" mnemonicParsing="false"> <RadioButton fx:id="pldrRadio1" mnemonicParsing="false">

View file

@ -9,7 +9,7 @@
<VBox spacing="5.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SettingsBlockTinfoilController"> <VBox spacing="5.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SettingsBlockTinfoilController">
<children> <children>
<Label text="Tinfoil" /> <Label text="%tab2_Lbl_AwooBlockTitle" />
<CheckBox mnemonicParsing="false" text="%tab2_Cb_AllowXciNszXcz" fx:id="xciNszXczSupportCB"> <CheckBox mnemonicParsing="false" text="%tab2_Cb_AllowXciNszXcz" fx:id="xciNszXczSupportCB">
<VBox.margin> <VBox.margin>
<Insets left="5.0" /> <Insets left="5.0" />

View file

@ -30,7 +30,7 @@ tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=Auto-detect IP tab2_Cb_AutoDetectIp=Auto-detect IP
tab2_Cb_RandSelectPort=Randomly get port tab2_Cb_RandSelectPort=Randomly get port
tab2_Cb_DontServeRequests=Don't serve requests tab2_Cb_DontServeRequests=Don't serve requests
tab2_Lbl_DontServeRequestsDesc=If selected, this computer won't reply to NSP files requests coming from NS (over the net) and use defined host settings to tell TinFoil where should it look for files. tab2_Lbl_DontServeRequestsDesc=If selected, this computer won't reply to NSP files requests coming from NS (over the net) and use defined host settings to tell Awoo Installer (or compatible applications) where should it look for files.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Port set incorrectly! windowTitleErrorPort=Port set incorrectly!
windowBodyErrorPort=Port can't be 0 or greater than 65535. windowBodyErrorPort=Port can't be 0 or greater than 65535.
@ -40,8 +40,8 @@ windowTitleNewVersionNOTAval=No new versions available
windowTitleNewVersionUnknown=Unable to check for new versions windowTitleNewVersionUnknown=Unable to check for new versions
windowBodyNewVersionUnknown=Something went wrong\nMaybe internet unavailable, or GitHub is down windowBodyNewVersionUnknown=Something went wrong\nMaybe internet unavailable, or GitHub is down
windowBodyNewVersionNOTAval=You're using the latest version windowBodyNewVersionNOTAval=You're using the latest version
tab2_Cb_AllowXciNszXcz=Allow XCI / NSZ / XCZ files selection for Tinfoil tab2_Cb_AllowXciNszXcz=Allow XCI / NSZ / XCZ files selection for Awoo
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_AllowXciNszXczDesc=Used by applications that support XCI/NSZ/XCZ and utilizes Awoo (aka Adubbz/TinFoil) transfer protocol. Don't change if not sure. Enable for Awoo Installer.
tab2_Lbl_Language=Language tab2_Lbl_Language=Language
windowBodyRestartToApplyLang=Please restart application to apply changes. windowBodyRestartToApplyLang=Please restart application to apply changes.
btn_OpenSplitFile=Select split NSP btn_OpenSplitFile=Select split NSP
@ -74,4 +74,7 @@ windowBodyPleaseStopOtherProcessFirst=Please stop other active process before co
tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually. tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually.
tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once. tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once.
windowTitleAddingFiles=Searching for files... windowTitleAddingFiles=Searching for files...
windowBodyFilesScanned=Files scanned: %d\nWould be added: %d windowBodyFilesScanned=Files scanned: %d\nWould be added: %d
tab2_Lbl_AwooBlockTitle=Awoo Installer and compatible
tabRcm_Lbl_Payload=Payload:
tabRcm_Lbl_FuseeGelee=Fus\u00E9e Gel\u00E9e RCM

View file

@ -69,3 +69,4 @@ btn_Close=\u0625\u063A\u0644\u0627\u0642
tab2_Cb_GlVersion=\u0625\u0635\u062F\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641" tab2_Cb_GlVersion=\u0625\u0635\u062F\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641"
tab2_Cb_GLshowNspOnly=\u0627\u0639\u0631\u0636 \u0641\u0642\u0637 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0625\u0645\u062A\u062F\u0627\u062F "\u0625\u0646 \u0625\u0633 \u0628\u064A" \u0641\u064A \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641". tab2_Cb_GLshowNspOnly=\u0627\u0639\u0631\u0636 \u0641\u0642\u0637 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0625\u0645\u062A\u062F\u0627\u062F "\u0625\u0646 \u0625\u0633 \u0628\u064A" \u0641\u064A \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u0640 "\u062C\u0648\u0644\u062F \u0644\u064A\u0641".
windowBodyPleaseStopOtherProcessFirst=\u0645\u0646 \u0641\u0636\u0644\u0643 \u0642\u0645 \u0628\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0642\u0628\u0644 \u0627\u0644\u0625\u0633\u062A\u0645\u0631\u0627\u0631. windowBodyPleaseStopOtherProcessFirst=\u0645\u0646 \u0641\u0636\u0644\u0643 \u0642\u0645 \u0628\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0642\u0628\u0644 \u0627\u0644\u0625\u0633\u062A\u0645\u0631\u0627\u0631.

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=Automaticky detekovat IP adresu tab2_Cb_AutoDetectIp=Automaticky detekovat IP adresu
tab2_Cb_RandSelectPort=Vygenerovat n\u00E1hodn\u00FD port tab2_Cb_RandSelectPort=Vygenerovat n\u00E1hodn\u00FD port
tab2_Cb_DontServeRequests=Neodpov\u00EDdat na po\u017Eadavky tab2_Cb_DontServeRequests=Neodpov\u00EDdat na po\u017Eadavky
tab2_Lbl_DontServeRequestsDesc=Pokud toto zvol\u00EDte, tento po\u010D\u00EDta\u010D nebude reagovat na \u017E\u00E1dosti o NSP soubory ze strany Switche (v s\u00EDti) a zamez\u00ED TinFoilu prohled\u00E1vat m\u00EDsta se soubory. tab2_Lbl_DontServeRequestsDesc=Pokud toto zvol\u00EDte, tento po\u010D\u00EDta\u010D nebude reagovat na \u017E\u00E1dosti o NSP soubory ze strany Switche (v s\u00EDti) a zamez\u00ED Awoo Installeru prohled\u00E1vat m\u00EDsta se soubory.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Nespr\u00E1vn\u00E9 nastaven\u00ED portu! windowTitleErrorPort=Nespr\u00E1vn\u00E9 nastaven\u00ED portu!
windowBodyErrorPort=Port mus\u00ED b\u00FDt v rozmez\u00ED 1 a\u017E 65535. windowBodyErrorPort=Port mus\u00ED b\u00FDt v rozmez\u00ED 1 a\u017E 65535.
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=Nov\u011Bj\u0161\u00ED verze nen\u00ED k dispozici
windowTitleNewVersionUnknown=Nepoda\u0159ilo se zkontrolovat aktualizace windowTitleNewVersionUnknown=Nepoda\u0159ilo se zkontrolovat aktualizace
windowBodyNewVersionUnknown=N\u011Bco se porouchalo\nMo\u017En\u00E1 nejste p\u0159ipojeni k internetu, nebo nefunguje GitHub windowBodyNewVersionUnknown=N\u011Bco se porouchalo\nMo\u017En\u00E1 nejste p\u0159ipojeni k internetu, nebo nefunguje GitHub
windowBodyNewVersionNOTAval=Jste na nejnov\u011Bj\u0161\u00ED verzi windowBodyNewVersionNOTAval=Jste na nejnov\u011Bj\u0161\u00ED verzi
tab2_Cb_AllowXciNszXcz=Umo\u017Enit volbu XCI / NSZ / XCZ soubor\u016F pro Tinfoil tab2_Cb_AllowXciNszXcz=Umo\u017Enit volbu XCI / NSZ / XCZ soubor\u016F pro Awoo
tab2_Lbl_AllowXciNszXczDesc=Lze vyu\u017E\u00EDt v aplikac\u00EDch, kter\u00E9 podporuj\u00ED soubory typu XCI/NSZ/XCZ a pro p\u0159enos vyu\u017E\u00EDvaj\u00ED protokol Tinfoil. Nem\u011B\u0148te, jestli tomu nerozum\u00EDte. Aktivujte pro Awoo Installer. tab2_Lbl_AllowXciNszXczDesc=Lze vyu\u017E\u00EDt v aplikac\u00EDch, kter\u00E9 podporuj\u00ED soubory typu XCI/NSZ/XCZ a pro p\u0159enos vyu\u017E\u00EDvaj\u00ED protokol Tinfoil. Nem\u011B\u0148te, jestli tomu nerozum\u00EDte. Aktivujte pro Awoo Installer.
tab2_Lbl_Language=Jazyk tab2_Lbl_Language=Jazyk
windowBodyRestartToApplyLang=Pro aplikov\u00E1n\u00ED zm\u011Bn restartujte aplikaci. windowBodyRestartToApplyLang=Pro aplikov\u00E1n\u00ED zm\u011Bn restartujte aplikaci.
@ -69,3 +69,4 @@ btn_Close=Zav\u0159\u00EDt
tab2_Cb_GlVersion=GoldLeaf verze tab2_Cb_GlVersion=GoldLeaf verze
tab2_Cb_GLshowNspOnly=Uk\u00E1zat v GoldLeafu pouze *.nsp. tab2_Cb_GLshowNspOnly=Uk\u00E1zat v GoldLeafu pouze *.nsp.
windowBodyPleaseStopOtherProcessFirst=Pros\u00EDm, p\u0159ed pokra\u010Dov\u00E1n\u00EDm nejprve zru\u0161te aktivn\u00ED p\u0159enos. windowBodyPleaseStopOtherProcessFirst=Pros\u00EDm, p\u0159ed pokra\u010Dov\u00E1n\u00EDm nejprve zru\u0161te aktivn\u00ED p\u0159enos.

View file

@ -30,7 +30,7 @@ tab2_Lbl_HostPort=Port
tab2_Cb_AutoDetectIp=IP automatisch erkennen. tab2_Cb_AutoDetectIp=IP automatisch erkennen.
tab2_Cb_RandSelectPort=Port zuf\u00E4llig erhalten. tab2_Cb_RandSelectPort=Port zuf\u00E4llig erhalten.
tab2_Cb_DontServeRequests=Anfragen nicht bedienen. tab2_Cb_DontServeRequests=Anfragen nicht bedienen.
tab2_Lbl_DontServeRequestsDesc=Wenn ausgew\u00E4hlt, wird dieser Computer nicht auf NSP-Datei-Anfragen von NS (\u00FCber das Internet) reagieren und benutzerdefinierte Host-Einstellungen nutzen um Tinfoil mitzuteilen, wo es nach Dateien suchen soll. tab2_Lbl_DontServeRequestsDesc=Wenn ausgew\u00E4hlt, wird dieser Computer nicht auf NSP-Datei-Anfragen von NS (\u00FCber das Internet) reagieren und benutzerdefinierte Host-Einstellungen nutzen um Awoo mitzuteilen, wo es nach Dateien suchen soll.
tab2_Lbl_HostExtra=Extra tab2_Lbl_HostExtra=Extra
windowTitleErrorPort=Inkorrekter Port! windowTitleErrorPort=Inkorrekter Port!
windowBodyErrorPort=Der Port darf nicht 0 oder gr\u00F6\u00DFer als 65535 sein. windowBodyErrorPort=Der Port darf nicht 0 oder gr\u00F6\u00DFer als 65535 sein.
@ -40,11 +40,12 @@ windowTitleNewVersionNOTAval=Keine neue Version verf\u00FCgbar
windowTitleNewVersionUnknown=Nicht in der Lage nach Updates zu suchen windowTitleNewVersionUnknown=Nicht in der Lage nach Updates zu suchen
windowBodyNewVersionUnknown=Etwas ist schiefgelaufen\nInternet vielleicht nicht verf\u00FCgbar, oder GitHub nicht verf\u00FCgbar windowBodyNewVersionUnknown=Etwas ist schiefgelaufen\nInternet vielleicht nicht verf\u00FCgbar, oder GitHub nicht verf\u00FCgbar
windowBodyNewVersionNOTAval=Du benutzt die neueste Version windowBodyNewVersionNOTAval=Du benutzt die neueste Version
tab2_Cb_AllowXciNszXcz=Erlaube XCI- NSZ- XCZ-Dateien-Verwendung f\u00FCr Tinfoil tab2_Cb_AllowXciNszXcz=Erlaube XCI- NSZ- XCZ-Dateien-Verwendung f\u00FCr Awoo
tab2_Lbl_AllowXciNszXczDesc=Von einigen Drittanbietern verwendet, welche XCI/NSZ/XCZ unterst\u00FCtzen, nutzt Tinfoil Transfer Protocol. Nicht \u00E4ndern, wenn unsicher. tab2_Lbl_AllowXciNszXczDesc=Von einigen Drittanbietern verwendet, welche XCI/NSZ/XCZ unterst\u00FCtzen, nutzt z Transfer Protocol. Nicht \u00E4ndern, wenn unsicher.
tab2_Lbl_Language=Sprache tab2_Lbl_Language=Sprache
windowBodyRestartToApplyLang=Bitte die Applikation neustarten um die Einstellungen zu \u00FCbernehmen. windowBodyRestartToApplyLang=Bitte die Applikation neustarten um die Einstellungen zu \u00FCbernehmen.
btn_OpenSplitFile=Split-NSP ausw\uFFFDhlen btn_OpenSplitFile=Split-NSP ausw\uFFFDhlen
tab2_Cb_GLshowNspOnly=Nur *.nsp in GoldLeaf zeigen. tab2_Cb_GLshowNspOnly=Nur *.nsp in GoldLeaf zeigen.
btn_Cancel=Abbrechen btn_Cancel=Abbrechen

View file

@ -30,7 +30,7 @@ tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=Auto-detect IP tab2_Cb_AutoDetectIp=Auto-detect IP
tab2_Cb_RandSelectPort=Randomly get port tab2_Cb_RandSelectPort=Randomly get port
tab2_Cb_DontServeRequests=Don't serve requests tab2_Cb_DontServeRequests=Don't serve requests
tab2_Lbl_DontServeRequestsDesc=If selected, this computer won't reply to NSP files requests coming from NS (over the net) and use defined host settings to tell TinFoil where should it look for files. tab2_Lbl_DontServeRequestsDesc=If selected, this computer won't reply to NSP files requests coming from NS (over the net) and use defined host settings to tell Awoo where should it look for files.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Port set incorrectly! windowTitleErrorPort=Port set incorrectly!
windowBodyErrorPort=Port can't be 0 or greater than 65535. windowBodyErrorPort=Port can't be 0 or greater than 65535.
@ -40,8 +40,8 @@ windowTitleNewVersionNOTAval=No new versions available
windowTitleNewVersionUnknown=Unable to check for new versions windowTitleNewVersionUnknown=Unable to check for new versions
windowBodyNewVersionUnknown=Something went wrong\nMaybe internet unavailable, or GitHub is down windowBodyNewVersionUnknown=Something went wrong\nMaybe internet unavailable, or GitHub is down
windowBodyNewVersionNOTAval=You're using the latest version windowBodyNewVersionNOTAval=You're using the latest version
tab2_Cb_AllowXciNszXcz=Allow XCI / NSZ / XCZ files selection for Tinfoil tab2_Cb_AllowXciNszXcz=Allow XCI / NSZ / XCZ files selection for Awoo
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_AllowXciNszXczDesc=Used by applications that support XCI/NSZ/XCZ and utilizes Awoo (aka Adubbz/TinFoil) transfer protocol. Don't change if not sure. Enable for Awoo Installer.
tab2_Lbl_Language=Language tab2_Lbl_Language=Language
windowBodyRestartToApplyLang=Please restart application to apply changes. windowBodyRestartToApplyLang=Please restart application to apply changes.
btn_OpenSplitFile=Select split NSP btn_OpenSplitFile=Select split NSP
@ -74,4 +74,6 @@ windowBodyPleaseStopOtherProcessFirst=Please stop other active process before co
tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually. tab2_Cb_foldersSelectorForRoms=Select folder with ROM files instead of selecting ROMs individually.
tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once. tab2_Cb_foldersSelectorForRomsDesc=Changes 'Select files' button behaviour on 'Games' tab: instead of selecting ROM files one-by-one you can choose folder to add every supported file at once.
windowTitleAddingFiles=Searching for files... windowTitleAddingFiles=Searching for files...
windowBodyFilesScanned=Files scanned: %d\nWould be added: %d windowBodyFilesScanned=Files scanned: %d\nWould be added: %d
tabRcm_Lbl_FuseeGelee=Fus\u00E9e Gel\u00E9e RCM
tabRcm_Lbl_Payload=Payload:

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=Puerto
tab2_Cb_AutoDetectIp=Detectar IP autom\u00E1ticamente tab2_Cb_AutoDetectIp=Detectar IP autom\u00E1ticamente
tab2_Cb_RandSelectPort=Obtener el puerto autom\u00E1ticamente tab2_Cb_RandSelectPort=Obtener el puerto autom\u00E1ticamente
tab2_Cb_DontServeRequests=No contestar solicitudes tab2_Cb_DontServeRequests=No contestar solicitudes
tab2_Lbl_DontServeRequestsDesc=Si habilita esta opci\u00F3n, el ordenador no responder\u00E1 solicitudes de archivos NSP de la NS (en la red), y usar\u00E1 las configuraciones definidas por el host para indicar a Tinfoil donde se encuentran los archivos tab2_Lbl_DontServeRequestsDesc=Si habilita esta opci\u00F3n, el ordenador no responder\u00E1 solicitudes de archivos NSP de la NS (en la red), y usar\u00E1 las configuraciones definidas por el host para indicar a Awoo donde se encuentran los archivos
tab2_Lbl_HostExtra=Extra tab2_Lbl_HostExtra=Extra
windowTitleErrorPort=Puerto asignado incorrectamente! windowTitleErrorPort=Puerto asignado incorrectamente!
windowBodyErrorPort=El puerto no puede ser 0 o mayor que 65535 windowBodyErrorPort=El puerto no puede ser 0 o mayor que 65535
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=No hay actualizaciones disponibles
windowTitleNewVersionUnknown=No fue posible encontrar actualizaciones windowTitleNewVersionUnknown=No fue posible encontrar actualizaciones
windowBodyNewVersionUnknown=Algo fall\u00F3\nLa conexi\u00F3n a internet no funciona correctamente, o GitHub est\u00E1 ca\u00EDdo windowBodyNewVersionUnknown=Algo fall\u00F3\nLa conexi\u00F3n a internet no funciona correctamente, o GitHub est\u00E1 ca\u00EDdo
windowBodyNewVersionNOTAval=Est\u00E1s usando la \u00FAltima versi\u00F3n windowBodyNewVersionNOTAval=Est\u00E1s usando la \u00FAltima versi\u00F3n
tab2_Cb_AllowXciNszXcz=Permite la selecci\u00F3n de archivos XCI / NSZ / XCZ para Tinfoil tab2_Cb_AllowXciNszXcz=Permite la selecci\u00F3n de archivos XCI / NSZ / XCZ para Awoo
tab2_Lbl_AllowXciNszXczDesc=Usado por algunas aplicaciones de terceros que soportan XCI/NSZ/XCZ y que utilizan el protocolo de transferencia de Tinfoil. Si no est\u00E1 seguro no cambie la opci\u00F3n. tab2_Lbl_AllowXciNszXczDesc=Usado por algunas aplicaciones de terceros que soportan XCI/NSZ/XCZ y que utilizan el protocolo de transferencia de Tinfoil. Si no est\u00E1 seguro no cambie la opci\u00F3n.
tab2_Lbl_Language=Idioma tab2_Lbl_Language=Idioma
windowBodyRestartToApplyLang=Por favor, reinicie el programa para aplicar los cambios. windowBodyRestartToApplyLang=Por favor, reinicie el programa para aplicar los cambios.

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=D\u00E9tection automatique d'IP tab2_Cb_AutoDetectIp=D\u00E9tection automatique d'IP
tab2_Cb_RandSelectPort=Obtenir un port al\u00E9atoire tab2_Cb_RandSelectPort=Obtenir un port al\u00E9atoire
tab2_Cb_DontServeRequests=Ne pas servir les demandes tab2_Cb_DontServeRequests=Ne pas servir les demandes
tab2_Lbl_DontServeRequestsDesc=Si cette option est s\u00E9lectionn\u00E9e, cet ordinateur ne r\u00E9pond pas aux demandes de fichiers NSP provenant de NS (par le r\u00E9seau) et utilise les param\u00E8tres d\u2019h\u00F4te d\u00E9finis pour indiquer \u00E0 TinFoil o\u00F9 il doit rechercher les fichiers. tab2_Lbl_DontServeRequestsDesc=Si cette option est s\u00E9lectionn\u00E9e, cet ordinateur ne r\u00E9pond pas aux demandes de fichiers NSP provenant de NS (par le r\u00E9seau) et utilise les param\u00E8tres d\u2019h\u00F4te d\u00E9finis pour indiquer \u00E0 Awoo o\u00F9 il doit rechercher les fichiers.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Port mal configur\u00E9! windowTitleErrorPort=Port mal configur\u00E9!
windowBodyErrorPort=V\u00E9rifiez que le port est sup\u00E9rieur \u00E0 0 et inf\u00E9rieur ou \u00E9gal \u00E0 65535. windowBodyErrorPort=V\u00E9rifiez que le port est sup\u00E9rieur \u00E0 0 et inf\u00E9rieur ou \u00E9gal \u00E0 65535.
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=Aucune nouvelle version disponible
windowTitleNewVersionUnknown=Impossible de v\u00E9rifier les nouvelles versions windowTitleNewVersionUnknown=Impossible de v\u00E9rifier les nouvelles versions
windowBodyNewVersionNOTAval=Vous utilisez la derni\u00E8re version windowBodyNewVersionNOTAval=Vous utilisez la derni\u00E8re version
windowBodyNewVersionUnknown=Une erreur s'est produite\nPeut-\u00EAtre des probl\u00E8mes de connexion Internet ou GitHub est en panne windowBodyNewVersionUnknown=Une erreur s'est produite\nPeut-\u00EAtre des probl\u00E8mes de connexion Internet ou GitHub est en panne
tab2_Cb_AllowXciNszXcz=Autoriser la s\u00E9lection de fichiers XCI / NSZ / XCZ pour TinFoil tab2_Cb_AllowXciNszXcz=Autoriser la s\u00E9lection de fichiers XCI / NSZ / XCZ pour Awoo
tab2_Lbl_AllowXciNszXczDesc=Utilis\u00E9 par certaines applications tierces prenant en charge XCI/NSZ/XCZ et utilisant le protocole de transfert TinFoil. Ne changez pas en cas de doute. tab2_Lbl_AllowXciNszXczDesc=Utilis\u00E9 par certaines applications tierces prenant en charge XCI/NSZ/XCZ et utilisant le protocole de transfert TinFoil. Ne changez pas en cas de doute.
tab2_Lbl_Language=La langue tab2_Lbl_Language=La langue
btn_Cancel=Annuler btn_Cancel=Annuler

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=porta
tab2_Cb_AutoDetectIp=Auto-rileva IP tab2_Cb_AutoDetectIp=Auto-rileva IP
tab2_Cb_RandSelectPort=Ottieni porta casualmente tab2_Cb_RandSelectPort=Ottieni porta casualmente
tab2_Cb_DontServeRequests=Non servire le richieste tab2_Cb_DontServeRequests=Non servire le richieste
tab2_Lbl_DontServeRequestsDesc=Se selezionato, questo computer non risponder\u00E0 alle richieste di file NSP in arrivo da NS (tramite rete) e user\u00E0 le impostazioni dell'host definite per dire a TinFoil dove cercare i file. tab2_Lbl_DontServeRequestsDesc=Se selezionato, questo computer non risponder\u00E0 alle richieste di file NSP in arrivo da NS (tramite rete) e user\u00E0 le impostazioni dell'host definite per dire a Awoo dove cercare i file.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Porta impostata impropriamente! windowTitleErrorPort=Porta impostata impropriamente!
windowBodyErrorPort=La porta non pu\u00F2 essere 0 o maggiore di 65535. windowBodyErrorPort=La porta non pu\u00F2 essere 0 o maggiore di 65535.
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=Nessuna nuova versione disponibile
windowTitleNewVersionUnknown=Impossibile cercare nuove versioni windowTitleNewVersionUnknown=Impossibile cercare nuove versioni
windowBodyNewVersionUnknown=Qualcosa \u00E8 andato storto\nForse internet non \u00E8 disponibile o GitHub ha problemi windowBodyNewVersionUnknown=Qualcosa \u00E8 andato storto\nForse internet non \u00E8 disponibile o GitHub ha problemi
windowBodyNewVersionNOTAval=Stai usando la versione pi\u00F9 recente windowBodyNewVersionNOTAval=Stai usando la versione pi\u00F9 recente
tab2_Cb_AllowXciNszXcz=Consenti la selezione di file XCI / NSZ / XCZ per Tinfoil tab2_Cb_AllowXciNszXcz=Consenti la selezione di file XCI / NSZ / XCZ per Awoo
tab2_Lbl_AllowXciNszXczDesc=Usato dalle applicazioni che supportano XCI/NSZ/XCZ e usano il protocollo di trasferimento di Tinfoil. Non cambiarlo se non sei sicuro. Attivalo per Awoo Installer. tab2_Lbl_AllowXciNszXczDesc=Usato dalle applicazioni che supportano XCI/NSZ/XCZ e usano il protocollo di trasferimento di Tinfoil. Non cambiarlo se non sei sicuro. Attivalo per Awoo Installer.
tab2_Lbl_Language=Lingua tab2_Lbl_Language=Lingua
windowBodyRestartToApplyLang=Riavvia l'applicazione per applicare le modifiche. windowBodyRestartToApplyLang=Riavvia l'applicazione per applicare le modifiche.

View file

@ -3,7 +3,6 @@ btn_OpenFolders=\uD30C\uC77C \uC120\uD0DD
btn_Upload=NS\uC5D0 \uC5C5\uB85C\uB4DC btn_Upload=NS\uC5D0 \uC5C5\uB85C\uB4DC
tab3_Txt_EnteredAsMsg1=\uB2E4\uC74C\uACFC \uAC19\uC774 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4: tab3_Txt_EnteredAsMsg1=\uB2E4\uC74C\uACFC \uAC19\uC774 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4:
tab3_Txt_EnteredAsMsg2=\uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uB824\uBA74 \uC774 \uC0AC\uC6A9\uC790\uC5D0 \uB300\uD574 \uB8E8\uD2B8\uC774\uAC70\uB098 'udev'\uADDC\uCE59\uC744 \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4. tab3_Txt_EnteredAsMsg2=\uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uB824\uBA74 \uC774 \uC0AC\uC6A9\uC790\uC5D0 \uB300\uD574 \uB8E8\uD2B8\uC774\uAC70\uB098 'udev'\uADDC\uCE59\uC744 \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4.
tab3_Txt_EnteredAsMsg2=\uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uB824\uBA74 \uB8E8\uD2B8\uC774\uAC70\uB098 \uC774 \uC0AC\uC6A9\uC790\uC5D0 \uB300\uD55C 'udev'\uADDC\uCE59\uC744 \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4.
tab3_Txt_FilesToUploadTitle=\uC5C5\uB85C\uB4DC \uD560 \uD30C\uC77C: tab3_Txt_FilesToUploadTitle=\uC5C5\uB85C\uB4DC \uD560 \uD30C\uC77C:
tab3_Txt_GreetingsMessage=NS-USBloader\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4 tab3_Txt_GreetingsMessage=NS-USBloader\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4
tab3_Txt_NoFolderOrFileSelected=\uC120\uD0DD\uD55C \uD30C\uC77C \uC5C6\uC74C: \uC5C5\uB85C\uB4DC \uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. tab3_Txt_NoFolderOrFileSelected=\uC120\uD0DD\uD55C \uD30C\uC77C \uC5C6\uC74C: \uC5C5\uB85C\uB4DC \uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
@ -30,7 +29,7 @@ tab2_Lbl_HostPort=\uD3EC\uD2B8
tab2_Cb_AutoDetectIp=IP \uC790\uB3D9\uAC10\uC9C0 tab2_Cb_AutoDetectIp=IP \uC790\uB3D9\uAC10\uC9C0
tab2_Cb_RandSelectPort=\uBB34\uC791\uC704\uB85C \uD3EC\uD2B8 \uAC00\uC838\uC624\uAE30 tab2_Cb_RandSelectPort=\uBB34\uC791\uC704\uB85C \uD3EC\uD2B8 \uAC00\uC838\uC624\uAE30
tab2_Cb_DontServeRequests=\uC694\uCCAD\uC744 \uCC98\uB9AC\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624 tab2_Cb_DontServeRequests=\uC694\uCCAD\uC744 \uCC98\uB9AC\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624
tab2_Lbl_DontServeRequestsDesc=\uC774 \uC635\uC158\uC744 \uC120\uD0DD\uD558\uBA74\uC774 \uCEF4\uD4E8\uD130\uB294 NS (\uB124\uD2B8\uC6CC\uD06C\uB97C \uD1B5\uD574)\uC5D0\uC11C \uC624\uB294 NSP \uD30C\uC77C \uC694\uCCAD\uC5D0 \uC751\uB2F5\uD558\uC9C0 \uC54A\uACE0 \uC815\uC758\uB41C \uD638\uC2A4\uD2B8 \uC124\uC815\uC744 \uC0AC\uC6A9\uD558\uC5EC TinFoil\uC5D0 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC54C\uB824\uC90D\uB2C8\uB2E4. tab2_Lbl_DontServeRequestsDesc=\uC774 \uC635\uC158\uC744 \uC120\uD0DD\uD558\uBA74\uC774 \uCEF4\uD4E8\uD130\uB294 NS (\uB124\uD2B8\uC6CC\uD06C\uB97C \uD1B5\uD574)\uC5D0\uC11C \uC624\uB294 NSP \uD30C\uC77C \uC694\uCCAD\uC5D0 \uC751\uB2F5\uD558\uC9C0 \uC54A\uACE0 \uC815\uC758\uB41C \uD638\uC2A4\uD2B8 \uC124\uC815\uC744 \uC0AC\uC6A9\uD558\uC5EC Awoo\uC5D0 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC54C\uB824\uC90D\uB2C8\uB2E4.
tab2_Lbl_HostExtra=\uCD94\uAC00 tab2_Lbl_HostExtra=\uCD94\uAC00
windowTitleErrorPort=\uD3EC\uD2B8\uAC00 \uC798\uBABB \uC124\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4! windowTitleErrorPort=\uD3EC\uD2B8\uAC00 \uC798\uBABB \uC124\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4!
windowBodyErrorPort=\uD3EC\uD2B8\uB294 0\uC774\uAC70\uB098 65535\uBCF4\uB2E4 \uD074 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. windowBodyErrorPort=\uD3EC\uD2B8\uB294 0\uC774\uAC70\uB098 65535\uBCF4\uB2E4 \uD074 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
@ -40,7 +39,7 @@ windowTitleNewVersionNOTAval=\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uC0C8\uB85C\uC6B4
windowTitleNewVersionUnknown=\uC0C8\uB85C\uC6B4 \uBC84\uC804\uC744 \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. windowTitleNewVersionUnknown=\uC0C8\uB85C\uC6B4 \uBC84\uC804\uC744 \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
windowBodyNewVersionUnknown=\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.\n\uC778\uD130\uB137\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uAC70\uB098 GitHub\uAC00 \uB2E4\uC6B4\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. windowBodyNewVersionUnknown=\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.\n\uC778\uD130\uB137\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uAC70\uB098 GitHub\uAC00 \uB2E4\uC6B4\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
windowBodyNewVersionNOTAval=\uCD5C\uC2E0 \uBC84\uC804\uC744 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. windowBodyNewVersionNOTAval=\uCD5C\uC2E0 \uBC84\uC804\uC744 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
tab2_Cb_AllowXciNszXcz=Tinfoil \uC6A9 XCI / NSZ / XCZ \uD30C\uC77C \uC120\uD0DD \uD5C8\uC6A9 tab2_Cb_AllowXciNszXcz=Awoo \uC6A9 XCI / NSZ / XCZ \uD30C\uC77C \uC120\uD0DD \uD5C8\uC6A9
tab2_Lbl_AllowXciNszXczDesc=XCI / NSZ / XCZ\uB97C \uC9C0\uC6D0\uD558\uACE0 Tinfoil \uC804\uC1A1 \uD504\uB85C\uD1A0\uCF5C\uC744 \uD65C\uC6A9\uD558\uB294 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uD655\uC2E4\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBCC0\uACBD\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624. Awoo \uC124\uCE58 \uD504\uB85C\uADF8\uB7A8\uC5D0 \uB300\uD574 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4. tab2_Lbl_AllowXciNszXczDesc=XCI / NSZ / XCZ\uB97C \uC9C0\uC6D0\uD558\uACE0 Tinfoil \uC804\uC1A1 \uD504\uB85C\uD1A0\uCF5C\uC744 \uD65C\uC6A9\uD558\uB294 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uD655\uC2E4\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBCC0\uACBD\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624. Awoo \uC124\uCE58 \uD504\uB85C\uADF8\uB7A8\uC5D0 \uB300\uD574 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4.
tab2_Lbl_Language=\uC5B8\uC5B4 tab2_Lbl_Language=\uC5B8\uC5B4
windowBodyRestartToApplyLang=\uBCC0\uACBD \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC2ED\uC2DC\uC624. windowBodyRestartToApplyLang=\uBCC0\uACBD \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC2ED\uC2DC\uC624.

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=porta
tab2_Cb_AutoDetectIp=Auto-detectar IP tab2_Cb_AutoDetectIp=Auto-detectar IP
tab2_Cb_RandSelectPort=Usar porta aleat\u00F3ria tab2_Cb_RandSelectPort=Usar porta aleat\u00F3ria
tab2_Cb_DontServeRequests=n\u00E3o aceitar solicita\u00E7\u00F5es tab2_Cb_DontServeRequests=n\u00E3o aceitar solicita\u00E7\u00F5es
tab2_Lbl_DontServeRequestsDesc=Se selecionado, Este computador n\u00E3o ir\u00E1 aceitar solicita\u00E7\u00F5es de arquivos .nsp vindos, atrav\u00E9s da rede, do seu switch. Isso ir\u00E1 usar as defini\u00E7\u00F5es do host para informar ao tinfoil onde qual caminho procurar pelos arquivos. tab2_Lbl_DontServeRequestsDesc=Se selecionado, Este computador n\u00E3o ir\u00E1 aceitar solicita\u00E7\u00F5es de arquivos .nsp vindos, atrav\u00E9s da rede, do seu switch. Isso ir\u00E1 usar as defini\u00E7\u00F5es do host para informar ao awoo onde qual caminho procurar pelos arquivos.
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Porta configurada incorretamente! windowTitleErrorPort=Porta configurada incorretamente!
windowBodyErrorPort=Porta n\u00E3o pode ser 0 or maior que 65535. windowBodyErrorPort=Porta n\u00E3o pode ser 0 or maior que 65535.
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=Nao h\u00E1 novas vers\u00F5es.
windowTitleNewVersionUnknown=Nao conseguimos checar por novas atualiza\u00E7\u00F5es. windowTitleNewVersionUnknown=Nao conseguimos checar por novas atualiza\u00E7\u00F5es.
windowBodyNewVersionUnknown=Algo deu errado...\nProblemas de conex\u00E3o ou com a p\u00E1gina do github, talvez? windowBodyNewVersionUnknown=Algo deu errado...\nProblemas de conex\u00E3o ou com a p\u00E1gina do github, talvez?
windowBodyNewVersionNOTAval=Voc\u00EA est\u00E1 na \u00FAltima vers\u00E3o! windowBodyNewVersionNOTAval=Voc\u00EA est\u00E1 na \u00FAltima vers\u00E3o!
tab2_Cb_AllowXciNszXcz=permitir arquivos XCI / NSZ / XCZ para o tinfoil tab2_Cb_AllowXciNszXcz=permitir arquivos XCI / NSZ / XCZ para o awoo
tab2_Lbl_AllowXciNszXczDesc=Usado por aplica\u00E7\u00F5es que suportam XCI/NSZ/XCZ e utiliza protocolos de transfer\u00EAncia do Tinfoil. N\u00E3o mude o que n\u00E3o tem certeza. Ative para uso com o Awoo-Installer. tab2_Lbl_AllowXciNszXczDesc=Usado por aplica\u00E7\u00F5es que suportam XCI/NSZ/XCZ e utiliza protocolos de transfer\u00EAncia do Tinfoil. N\u00E3o mude o que n\u00E3o tem certeza. Ative para uso com o Awoo-Installer.
tab2_Lbl_Language=Idioma tab2_Lbl_Language=Idioma
windowBodyRestartToApplyLang=Por favor, reinicie para aplicar as modifica\u00E7\u00F5es. windowBodyRestartToApplyLang=Por favor, reinicie para aplicar as modifica\u00E7\u00F5es.

View file

@ -0,0 +1,77 @@
btn_OpenFile=Selecteaz\u0103 fi\u0219ierele
btn_OpenFolders=Selecteaz\u0103\u00A0directorul
btn_Upload=\u00CEncarc\u0103\u00A0\u00EEn NS
btn_OpenFolders_tooltip=Alege un director pentru a fi scanat. \nAcest director \u0219i toate subdirectoarele lui vor fi scanate. \nToate fi\u0219ierele g\u0103site vor fi ad\u0103ugate la list\u0103.
tab3_Txt_EnteredAsMsg1=Ai fost ad\u0103ugat ca:
tab3_Txt_EnteredAsMsg2=Ar trebui s\u0103 fii 'root' sau s\u0103 fi configurat reguli 'udev' pentru acest utilizator pentru a nu \u00EEnt\u00E2mpina probleme.
tab3_Txt_FilesToUploadTitle=Fi\u0219iere de \u00EEnc\u0103rcat:
tab3_Txt_GreetingsMessage=Bine ai venit \u00EEn NS-USBloader
tab3_Txt_NoFolderOrFileSelected=Nici un fi\u0219ier selectat: nimic de \u00EEnc\u0103rcat.
windowBodyConfirmExit=Transferul de date este \u00EEn desf\u0103\u0219urare \u0219i \u00EEnchiderea acestei aplica\u021Bii \u00EEl va \u00EEntrerupe. Este cel mai r\u0103u lucru pe care \u00EEl po\u021Bi face acum. \u00CEntrerupi procesul \u0219i ie\u0219i?
windowTitleConfirmExit=Nu, nu face asta!
btn_Stop=\u00CEntrerupere
tab3_Txt_GreetingsMessage2=--\n\
Source: https://github.com/developersu/ns-usbloader/\n\
Site: https://developersu.blogspot.com/search/label/NS-USBloader\n\
Dmitry Isaenko [developer.su]
tab1_table_Lbl_Status=Status
tab1_table_Lbl_FileName=Numele fi\u0219ierului
tab1_table_Lbl_Size=M\u0103rime
tab1_table_Lbl_Upload=\u00CEncarc\u0103?
tab1_table_contextMenu_Btn_BtnDelete=Elimin\u0103
tab1_table_contextMenu_Btn_DeleteAll=Elimin\u0103 tot
tab2_Lbl_HostIP=IP-ul hostului:
tab1_Lbl_NSIP=IP-ul NS-ului:
tab2_Cb_ValidateNSHostName=Verific\u0103 de fiecare dat\u0103\u00A0IP-ul NS-ului.
windowBodyBadIp=E\u0219ti sigur c\u0103 ai introdus adresa IP a NS-ului corect?
windowTitleBadIp=Adresa IP NS-ului a fost cel mai probabil introdus\u0103 incorect
tab2_Cb_ExpertMode=Mod expert (NET setup)
tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=Auto-detecteaz\u0103 IP
tab2_Cb_RandSelectPort=Alege portul aleatoriu
tab2_Cb_DontServeRequests=Nu servii request-uri
tab2_Lbl_DontServeRequestsDesc=Dac\u0103\u00A0selectat, acest computer nu va r\u0103spunde la request-uri de fi\u0219iere NSP venite de la NS (pe re\u021Bea) \u0219i va folosi set\u0103rile de host definite pentru a \u00EEi comunica lui Awoo unde s\u0103 caute fi\u0219ierele.
tab2_Lbl_HostExtra=extra
windowTitleErrorPort=Port setat incorect!
windowBodyErrorPort=Portul nu poate fii 0 sau mai mare de 65535.
tab2_Cb_AutoCheckForUpdates=Verific\u0103 automat pentru actualiz\u0103ri
windowTitleNewVersionAval=O nou\u0103 actualizare disponibil\u0103
windowTitleNewVersionNOTAval=Nu exist\u0103 actualiz\u0103ri disponibile
windowTitleNewVersionUnknown=Nu pot verifica actualiz\u0103rile disponibile
windowBodyNewVersionUnknown=A ap\u0103rut o problem\u0103.\n Poate nu e\u0219ti conectat la Internet, sau GitHub e mort.
windowBodyNewVersionNOTAval=Folose\u0219ti cea mai nou\u0103 actualizare
tab2_Cb_AllowXciNszXcz=Adaug\u0103 fi\u0219iere XCI / NSZ / XCZ pentru selec\u021Bie \u00EEn Awoo
tab2_Lbl_AllowXciNszXczDesc=Folosit de aplica\u021Bii care suport\u0103 XCI/NSZ/XCZ \u0219i folosesc protocolul de transfer al lui Tinfoil. Nu schimba dac\u0103\u00A0nu e\u0219ti sigur. Bifeaz\u0103 pentru Awoo Installer.
tab2_Lbl_Language=Limb\u0103
windowBodyRestartToApplyLang=Te rog restarteaz\u0103 aplica\u021Bia pentru a aplica set\u0103rile noi.
btn_OpenSplitFile=Selecteaz\u0103 pentru NSP frac\u021Bionat
tab2_Lbl_ApplicationSettings=Set\u0103ri principale
tabSplMrg_Lbl_SplitNMergeTitle=Unealt\u0103 pentru \u00EEmp\u0103r\u021Bire \u0219i lipire de fi\u0219iere
tabSplMrg_RadioBtn_Split=\u00CEmparte
tabSplMrg_RadioBtn_Merge=Lipe\u0219te
tabSplMrg_Txt_File=Fi\u0219ier:
tabSplMrg_Txt_Folder=\u00CEmparte Fi\u0219ier (director):
tabSplMrg_Btn_SelectFile=Alege Fi\u0219ier
tabSplMrg_Btn_SelectFolder=Alege Director
tabSplMrg_Lbl_SaveToLocation=Salveaz\u0103 la:
tabSplMrg_Btn_ChangeSaveToLocation=Schimb\u0103
tabSplMrg_Btn_Convert=Convertes\u021Be
windowTitleError=Eroare
windowBodyPleaseFinishTransfersFirst=Nu pot \u00EEmp\u0103r\u021Bi/lipii fi\u0219ierele c\u00E2nd un proces USB/Network este activ. Te rog \u00EEntrerupe orice transfer activ \u00EEnainte.
done_txt=Gata!
failure_txt=E\u0219uat
btn_Select=Selecteaz\u0103
btn_InjectPayloader=Injecteaz\u0103\u00A0payload
tabNXDT_Btn_Start=Start!
tab2_Btn_InstallDrivers=Descarc\u0103\u00A0\u0219i instaleaz\u0103 drivere
windowTitleDownloadDrivers=Descarc\u0103\u00A0\u0219i instaleaz\u0103 drivere
windowBodyDownloadDrivers=Descarc\u0103\u00A0drivere (libusbK v3.0.7.0)...
btn_Cancel=Opre\u0219te
btn_Close=\u00CEnchide
tab2_Cb_GlVersion=Versiune GoldLeaf
tab2_Cb_GLshowNspOnly=Arat\u0103 doar fi\u0219iere *.nsp \u00EEn GoldLeaf.
windowBodyPleaseStopOtherProcessFirst=Te rog opre\u0219te toate cel\u0103lalte procese \u00EEnainte.
tab2_Cb_foldersSelectorForRoms=Selecteaz\u0103 directorul cu fi\u0219iere ROM \u00EEn loc s\u0103 selectezi fi\u0219iere ROM individual.
tab2_Cb_foldersSelectorForRomsDesc=Face ca 'Selecteaz\u0103 fi\u0219ierele' \u00EEn tab-ul 'Games' s\u0103 selecteze toate fi\u0219ierele de-o dat\u0103\u00A0\u00EEn loc de a selecta fi\u0219iere ROM unul c\u00E2te unul.
windowTitleAddingFiles=Caut fi\u0219iere...
windowBodyFilesScanned=Fi\u0219iere scanate: %d\nVor fi ad\u0103ugate: %d

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=\u043F\u043E\u0440\u0442
tab2_Cb_AutoDetectIp=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C IP tab2_Cb_AutoDetectIp=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C IP
tab2_Cb_RandSelectPort=\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C \u043F\u043E\u0440\u0442 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C tab2_Cb_RandSelectPort=\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C \u043F\u043E\u0440\u0442 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u043C \u043E\u0431\u0440\u0430\u0437\u043E\u043C
tab2_Cb_DontServeRequests=\u041D\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B tab2_Cb_DontServeRequests=\u041D\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B
tab2_Lbl_DontServeRequestsDesc=\u0415\u0441\u043B\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u0442\u043E\u0433\u0434\u0430 \u044D\u0442\u043E\u0442 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u0432\u0435\u0447\u0430\u0442\u044C \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B NSP \u0444\u0430\u0439\u043B\u043E\u0432. \u0411\u0443\u0434\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0445\u043E\u0441\u0442\u0430 \u0447\u0442\u043E\u0431\u044B \u0443\u043A\u0430\u0437\u0430\u0442\u044C TinFoil \u043E\u0442\u043A\u0443\u0434\u0430 \u0435\u043C\u0443 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B. tab2_Lbl_DontServeRequestsDesc=\u0415\u0441\u043B\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u0442\u043E\u0433\u0434\u0430 \u044D\u0442\u043E\u0442 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u0432\u0435\u0447\u0430\u0442\u044C \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B NSP \u0444\u0430\u0439\u043B\u043E\u0432. \u0411\u0443\u0434\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0445\u043E\u0441\u0442\u0430 \u0447\u0442\u043E\u0431\u044B \u0443\u043A\u0430\u0437\u0430\u0442\u044C Awoo Installer (\u0438\u043B\u0438 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u043C\u0443 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044E) \u043E\u0442\u043A\u0443\u0434\u0430 \u0435\u043C\u0443 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B.
tab2_Lbl_HostExtra=\u044D\u043A\u0441\u0442\u0440\u0430 tab2_Lbl_HostExtra=\u044D\u043A\u0441\u0442\u0440\u0430
windowTitleErrorPort=\u041F\u043E\u0440\u0442 \u0443\u043A\u0430\u0437\u0430\u043D \u043D\u0435\u0432\u0435\u0440\u043D\u043E! windowTitleErrorPort=\u041F\u043E\u0440\u0442 \u0443\u043A\u0430\u0437\u0430\u043D \u043D\u0435\u0432\u0435\u0440\u043D\u043E!
windowBodyErrorPort=\u041F\u043E\u0440\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C 0 \u0438\u043B\u0438 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C 65535. windowBodyErrorPort=\u041F\u043E\u0440\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C 0 \u0438\u043B\u0438 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C 65535.
@ -38,8 +38,8 @@ windowTitleNewVersionNOTAval=\u041D\u0435\u0442 \u043D\u043E\u0432\u044B\u0445 \
windowTitleNewVersionUnknown=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043D\u043E\u0432\u044B\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 windowTitleNewVersionUnknown=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043D\u043E\u0432\u044B\u0445 \u0432\u0435\u0440\u0441\u0438\u0439
windowBodyNewVersionNOTAval=\u0412\u044B \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0432\u0435\u0440\u0441\u0438\u044E windowBodyNewVersionNOTAval=\u0412\u044B \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0432\u0435\u0440\u0441\u0438\u044E
windowBodyNewVersionUnknown=\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.\n\u041C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043D\u0435\u0442 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0430 \u0438\u043B\u0438 GitHub \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. windowBodyNewVersionUnknown=\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.\n\u041C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043D\u0435\u0442 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0430 \u0438\u043B\u0438 GitHub \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.
tab2_Cb_AllowXciNszXcz=\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440 XCI, NSZ \u0438 XCZ \u0444\u0430\u0439\u043B\u043E\u0432 \u0434\u043B\u044F Tinfoil tab2_Cb_AllowXciNszXcz=\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440 XCI, NSZ \u0438 XCZ \u0444\u0430\u0439\u043B\u043E\u0432 \u0434\u043B\u044F Awoo
tab2_Lbl_AllowXciNszXczDesc=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442 XCI, NSZ, XCZ \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 Tinfoil. \u041D\u0435 \u043C\u0435\u043D\u044F\u0439\u0442\u0435 \u0435\u0441\u043B\u0438 \u043D\u0435 \u0443\u0432\u0435\u0440\u0435\u043D\u044B. \u0412\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 Awoo Installer. tab2_Lbl_AllowXciNszXczDesc=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442 XCI, NSZ, XCZ \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 Awoo (\u0442.\u043D. \u0441\u0442\u0430\u0440\u044B\u0439 Tinfoil). \u041D\u0435 \u043C\u0435\u043D\u044F\u0439\u0442\u0435 \u0435\u0441\u043B\u0438 \u043D\u0435 \u0443\u0432\u0435\u0440\u0435\u043D\u044B. \u0412\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 Awoo Installer.
tab2_Lbl_Language=\u042F\u0437\u044B\u043A 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. 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_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.
@ -73,4 +73,7 @@ tab2_Cb_foldersSelectorForRomsDesc=\u041C\u0435\u043D\u044F\u0435\u0442 \u043F\u
tab2_Cb_foldersSelectorForRoms=\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443 \u0441 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u043E\u0447\u043A\u0435. tab2_Cb_foldersSelectorForRoms=\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443 \u0441 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u044B\u0431\u043E\u0440\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u043E\u0447\u043A\u0435.
windowTitleAddingFiles=\u0418\u0449\u0435\u043C \u0444\u0430\u0439\u043B\u044B... windowTitleAddingFiles=\u0418\u0449\u0435\u043C \u0444\u0430\u0439\u043B\u044B...
windowBodyFilesScanned=\u0424\u0430\u0439\u043B\u043E\u0432 \u043F\u0440\u043E\u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E: %d\n\u0418\u0437 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E: %d windowBodyFilesScanned=\u0424\u0430\u0439\u043B\u043E\u0432 \u043F\u0440\u043E\u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E: %d\n\u0418\u0437 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E: %d
tab2_Lbl_AwooBlockTitle=Awoo Installer \u0438 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u044B\u0435
tabRcm_Lbl_Payload=Payload:
tabRcm_Lbl_FuseeGelee=Fus\u00E9e Gel\u00E9e RCM

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=\u043F\u043E\u0440\u0442
tab2_Cb_AutoDetectIp=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0432\u0438\u0437\u043D\u0430\u0447\u0430\u0442\u0438 IP tab2_Cb_AutoDetectIp=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0432\u0438\u0437\u043D\u0430\u0447\u0430\u0442\u0438 IP
tab2_Cb_RandSelectPort=\u0412\u0438\u0437\u043D\u0430\u0447\u0430\u0442\u0438 \u043F\u043E\u0440\u0442 \u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0438\u043C \u0447\u0438\u043D\u043E\u043C tab2_Cb_RandSelectPort=\u0412\u0438\u0437\u043D\u0430\u0447\u0430\u0442\u0438 \u043F\u043E\u0440\u0442 \u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0438\u043C \u0447\u0438\u043D\u043E\u043C
tab2_Cb_DontServeRequests=\u041D\u0435 \u043E\u0431\u0440\u043E\u0431\u043B\u044F\u0442\u0438 \u0437\u0430\u043F\u0438\u0442\u0438 tab2_Cb_DontServeRequests=\u041D\u0435 \u043E\u0431\u0440\u043E\u0431\u043B\u044F\u0442\u0438 \u0437\u0430\u043F\u0438\u0442\u0438
tab2_Lbl_DontServeRequestsDesc=\u042F\u043A\u0449\u043E \u0432\u0438\u0431\u0440\u0430\u043D\u043E, \u0442\u043E\u0434\u0456 \u0446\u0435\u0439 \u043A\u043E\u043C\u043F'\u044E\u0442\u0435\u0440 \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438\u043C\u0435 \u043D\u0430 \u0437\u0430\u043F\u0438\u0442\u0438 NSP \u0444\u0430\u0439\u043B\u0456\u0432. \u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438\u043C\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0445\u043E\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u043A\u0430\u0437\u0430\u043D\u043D\u044F TinFoil \u043C\u0456\u0441\u0446\u044F \u0437\u0432\u0456\u0434\u043A\u0438 \u0444\u0430\u0439\u043B\u0438 \u043C\u0430\u044E\u0442\u044C \u0431\u0440\u0430\u0442\u0438\u0441\u044F. tab2_Lbl_DontServeRequestsDesc=\u042F\u043A\u0449\u043E \u0432\u0438\u0431\u0440\u0430\u043D\u043E, \u0442\u043E\u0434\u0456 \u0446\u0435\u0439 \u043A\u043E\u043C\u043F'\u044E\u0442\u0435\u0440 \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438\u043C\u0435 \u043D\u0430 \u0437\u0430\u043F\u0438\u0442\u0438 NSP \u0444\u0430\u0439\u043B\u0456\u0432. \u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438\u043C\u0443\u0442\u044C\u0441\u044F \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0445\u043E\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u043A\u0430\u0437\u0430\u043D\u043D\u044F Awoo Installer (\u0430\u0431\u043E \u0441\u0443\u043C\u0456\u0441\u043D\u043E\u043C\u0443 \u0434\u043E\u0434\u0430\u0442\u043A\u0443) \u043C\u0456\u0441\u0446\u044F \u0437\u0432\u0456\u0434\u043A\u0438 \u0444\u0430\u0439\u043B\u0438 \u043C\u0430\u044E\u0442\u044C \u0431\u0440\u0430\u0442\u0438\u0441\u044F.
tab2_Lbl_HostExtra=\u0435\u043A\u0441\u0442\u0440\u0430 tab2_Lbl_HostExtra=\u0435\u043A\u0441\u0442\u0440\u0430
windowTitleErrorPort=\u041D\u0435\u0432\u0456\u0440\u043D\u043E \u0432\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u043E\u0440\u0442! windowTitleErrorPort=\u041D\u0435\u0432\u0456\u0440\u043D\u043E \u0432\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u043E\u0440\u0442!
windowBodyErrorPort=\u041F\u043E\u0440\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 0 \u0430\u0431\u043E \u043F\u0440\u0438\u0432\u0438\u0449\u0443\u0432\u0430\u0442\u0438 65535. windowBodyErrorPort=\u041F\u043E\u0440\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 0 \u0430\u0431\u043E \u043F\u0440\u0438\u0432\u0438\u0449\u0443\u0432\u0430\u0442\u0438 65535.
@ -38,8 +38,8 @@ windowTitleNewVersionNOTAval=\u041D\u0435\u043C\u0430\u0454 \u043D\u043E\u0432\u
windowTitleNewVersionUnknown=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u043D\u0430\u044F\u0432\u043D\u0456\u0441\u0442\u044C \u043D\u043E\u0432\u0438\u0445 \u0432\u0435\u0440\u0441\u0456\u0439 windowTitleNewVersionUnknown=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u043D\u0430\u044F\u0432\u043D\u0456\u0441\u0442\u044C \u043D\u043E\u0432\u0438\u0445 \u0432\u0435\u0440\u0441\u0456\u0439
windowBodyNewVersionNOTAval=\u0412\u0438 \u0432\u0436\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u0435 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0432\u0435\u0440\u0441\u0456\u044E windowBodyNewVersionNOTAval=\u0412\u0438 \u0432\u0436\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u0435 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0432\u0435\u0440\u0441\u0456\u044E
windowBodyNewVersionUnknown=\u0429\u043E\u0441\u044C \u043F\u0456\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.\n\u041C\u043E\u0436\u043B\u0438\u0432\u043E, \u0456\u043D\u0442\u0435\u0440\u043D\u0435\u0442 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439, \u0430\u0431\u043E GitHub \u043D\u0435 \u043F\u0440\u0430\u0446\u044E\u0454. windowBodyNewVersionUnknown=\u0429\u043E\u0441\u044C \u043F\u0456\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.\n\u041C\u043E\u0436\u043B\u0438\u0432\u043E, \u0456\u043D\u0442\u0435\u0440\u043D\u0435\u0442 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439, \u0430\u0431\u043E GitHub \u043D\u0435 \u043F\u0440\u0430\u0446\u044E\u0454.
tab2_Cb_AllowXciNszXcz=\u0414\u043E\u0437\u0432\u043E\u043B\u0438\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 XCI, NSZ \u0442\u0430 XCZ \u0444\u0430\u0439\u043B\u0456\u0432 \u0434\u043B\u044F \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u0443 Tinfoil tab2_Cb_AllowXciNszXcz=\u0414\u043E\u0437\u0432\u043E\u043B\u0438\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 XCI, NSZ \u0442\u0430 XCZ \u0444\u0430\u0439\u043B\u0456\u0432 \u0434\u043B\u044F \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u0443 Awoo
tab2_Lbl_AllowXciNszXczDesc=\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u044C\u0441\u044F \u0434\u043E\u0434\u0430\u0442\u043A\u0430\u043C\u0438, \u0449\u043E \u043C\u0430\u044E\u0442\u044C \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u043A\u0443 XCI, NSZ, XCZ \u0456 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u044E\u0442\u044C \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0456 Tinfoil. \u041D\u0435 \u0437\u043C\u0456\u043D\u044E\u0439\u0442\u0435, \u044F\u043A\u0449\u043E \u043D\u0435 \u0432\u043F\u0435\u0432\u043D\u0435\u043D\u0456. \u0423\u0432\u0456\u043C\u043A\u043D\u0456\u0442\u044C \u044F\u043A\u0449\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u0435 Awoo Installer tab2_Lbl_AllowXciNszXczDesc=\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u044C\u0441\u044F \u0434\u043E\u0434\u0430\u0442\u043A\u0430\u043C\u0438, \u0449\u043E \u043C\u0430\u044E\u0442\u044C \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u043A\u0443 XCI, NSZ, XCZ \u0456 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u044E\u0442\u044C \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0456 Awoo (\u0442.\u0437. \u0441\u0442\u0430\u0440\u0438\u0439 Tinfoil). \u041D\u0435 \u0437\u043C\u0456\u043D\u044E\u0439\u0442\u0435, \u044F\u043A\u0449\u043E \u043D\u0435 \u0432\u043F\u0435\u0432\u043D\u0435\u043D\u0456. \u0423\u0432\u0456\u043C\u043A\u043D\u0456\u0442\u044C \u044F\u043A\u0449\u043E \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454\u0442\u0435 Awoo Installer
tab2_Lbl_Language=\u041C\u043E\u0432\u0430 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. 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_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.
@ -73,3 +73,6 @@ tab2_Cb_foldersSelectorForRomsDesc=\u0417\u043C\u0456\u043D\u044E\u0454 \u043F\u
tab2_Cb_foldersSelectorForRoms=\u0412\u0438\u0431\u0438\u0440\u0430\u0442\u0438 \u043F\u0430\u043F\u043A\u0443 \u0437 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0432\u0438\u0431\u043E\u0440\u0443 \u0444\u0430\u0439\u043B\u0456\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u0446\u0456. tab2_Cb_foldersSelectorForRoms=\u0412\u0438\u0431\u0438\u0440\u0430\u0442\u0438 \u043F\u0430\u043F\u043A\u0443 \u0437 ROM \u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0432\u0438\u0431\u043E\u0440\u0443 \u0444\u0430\u0439\u043B\u0456\u0432 \u043F\u043E\u043E\u0434\u0438\u043D\u0446\u0456.
windowTitleAddingFiles=\u0428\u0443\u043A\u0430\u0454\u043C\u043E \u0444\u0430\u0439\u043B\u0438... windowTitleAddingFiles=\u0428\u0443\u043A\u0430\u0454\u043C\u043E \u0444\u0430\u0439\u043B\u0438...
windowBodyFilesScanned=\u0424\u0430\u0439\u043B\u0456\u0432 \u043F\u0440\u043E\u0441\u043A\u0430\u043D\u043E\u0432\u0430\u043D\u043E: %d\n\u0417 \u044F\u043A\u0438\u0445 \u0431\u0443\u0434\u0435 \u0434\u043E\u0434\u0430\u043D\u043E: %d windowBodyFilesScanned=\u0424\u0430\u0439\u043B\u0456\u0432 \u043F\u0440\u043E\u0441\u043A\u0430\u043D\u043E\u0432\u0430\u043D\u043E: %d\n\u0417 \u044F\u043A\u0438\u0445 \u0431\u0443\u0434\u0435 \u0434\u043E\u0434\u0430\u043D\u043E: %d
tab2_Lbl_AwooBlockTitle=Awoo Installer \u0442\u0430 \u0441\u0443\u043C\u0456\u0441\u043D\u0456
tabRcm_Lbl_Payload=Payload:
tabRcm_Lbl_FuseeGelee=Fus\u00E9e Gel\u00E9e RCM

View file

@ -15,7 +15,7 @@ tab1_table_Lbl_FileName=T\u00EAn t\u1EADp tin
tab1_table_Lbl_Size=K\u00EDch th\u01B0\u1EDBc tab1_table_Lbl_Size=K\u00EDch th\u01B0\u1EDBc
tab1_table_Lbl_Status=Tr\u1EA1ng th\u00E1i tab1_table_Lbl_Status=Tr\u1EA1ng th\u00E1i
tab1_table_Lbl_Upload=T\u1EA3i l\u00EAn? tab1_table_Lbl_Upload=T\u1EA3i l\u00EAn?
tab2_Cb_AllowXciNszXcz=Cho ph\u00E9p ch\u1ECDn c\u00E1c t\u1EADp tin XCI \u0111\u1ED1i v\u1EDBi TinFoil tab2_Cb_AllowXciNszXcz=Cho ph\u00E9p ch\u1ECDn c\u00E1c t\u1EADp tin XCI \u0111\u1ED1i v\u1EDBi Awoo
tab2_Cb_AutoCheckForUpdates=T\u1EF1 \u0111\u1ED9ng ki\u1EC3m tra c\u00E1c b\u1EA3n c\u1EADp nh\u1EADt tab2_Cb_AutoCheckForUpdates=T\u1EF1 \u0111\u1ED9ng ki\u1EC3m tra c\u00E1c b\u1EA3n c\u1EADp nh\u1EADt
tab2_Cb_AutoDetectIp=T\u1EF1 ph\u00E1t hi\u1EC7n IP tab2_Cb_AutoDetectIp=T\u1EF1 ph\u00E1t hi\u1EC7n IP
tab2_Cb_DontServeRequests=Kh\u00F4ng ph\u1EE5c v\u1EE5 c\u00E1c y\u00EAu c\u1EA7u tab2_Cb_DontServeRequests=Kh\u00F4ng ph\u1EE5c v\u1EE5 c\u00E1c y\u00EAu c\u1EA7u
@ -25,7 +25,7 @@ tab2_Cb_RandSelectPort=L\u1EA5y c\u1ED5ng ng\u1EABu nhi\u00EAn
tab2_Cb_ValidateNSHostName=Lu\u00F4n x\u00E1c th\u1EF1c \u0111\u1EA7u v\u00E0o IP NS. 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_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 tab2_Lbl_ApplicationSettings=Thi\u1EBFt l\u1EADp ch\u00EDnh
tab2_Lbl_DontServeRequestsDesc=N\u1EBFu ch\u1ECDn, m\u00E1y t\u00EDnh n\u00E0y s\u1EBD kh\u00F4ng h\u1ED3i \u0111\u00E1p \u0111\u1EBFn c\u00E1c y\u00EAu c\u1EA7u t\u1EADp tin NSP \u0111\u1EBFn t\u1EEB NS (qua m\u1EA1ng) v\u00E0 s\u1EED d\u1EE5ng thi\u1EBFt l\u1EADp c\u1ED5ng \u0111\u00E3 \u0111\u1ECBnh tr\u01B0\u1EDBc \u0111\u1EC3 b\u00E1o cho TinFoil n\u01A1i n\u00F3 s\u1EBD t\u00ECm t\u1EADp tin. tab2_Lbl_DontServeRequestsDesc=N\u1EBFu ch\u1ECDn, m\u00E1y t\u00EDnh n\u00E0y s\u1EBD kh\u00F4ng h\u1ED3i \u0111\u00E1p \u0111\u1EBFn c\u00E1c y\u00EAu c\u1EA7u t\u1EADp tin NSP \u0111\u1EBFn t\u1EEB NS (qua m\u1EA1ng) v\u00E0 s\u1EED d\u1EE5ng thi\u1EBFt l\u1EADp c\u1ED5ng \u0111\u00E3 \u0111\u1ECBnh tr\u01B0\u1EDBc \u0111\u1EC3 b\u00E1o cho Awoo n\u01A1i n\u00F3 s\u1EBD t\u00ECm t\u1EADp tin.
tab2_Lbl_HostExtra=m\u1EDF r\u1ED9ng tab2_Lbl_HostExtra=m\u1EDF r\u1ED9ng
tab2_Lbl_HostIP=IP M\u00E1y ch\u1EE7 tab2_Lbl_HostIP=IP M\u00E1y ch\u1EE7
tab2_Lbl_HostPort=c\u1ED5ng tab2_Lbl_HostPort=c\u1ED5ng

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=port
tab2_Cb_AutoDetectIp=\u81EA\u52A8\u63A2\u6D4B IP tab2_Cb_AutoDetectIp=\u81EA\u52A8\u63A2\u6D4B IP
tab2_Cb_RandSelectPort=\u968F\u673A\u9009\u62E9\u7AEF\u53E3 tab2_Cb_RandSelectPort=\u968F\u673A\u9009\u62E9\u7AEF\u53E3
tab2_Cb_DontServeRequests=\u4E0D\u54CD\u5E94\u8BF7\u6C42 tab2_Cb_DontServeRequests=\u4E0D\u54CD\u5E94\u8BF7\u6C42
tab2_Lbl_DontServeRequestsDesc=\u5982\u679C\u9009\u62E9\uFF0C\u8FD9\u53F0\u7535\u8111\u5C06\u4E0D\u4F1A\u54CD\u5E94NS\u901A\u8FC7\u7F51\u7EDC\u53D1\u9001\u7684NSP\u6587\u4EF6\u8BF7\u6C42\uFF0C\u8F6C\u800C\u4F7F\u7528\u9884\u8BBE\u7684\u914D\u7F6E\u544A\u77E5TinFoil\u6587\u4EF6\u7684\u83B7\u53D6\u5730\u5740\u3002 tab2_Lbl_DontServeRequestsDesc=\u5982\u679C\u9009\u62E9\uFF0C\u8FD9\u53F0\u7535\u8111\u5C06\u4E0D\u4F1A\u54CD\u5E94NS\u901A\u8FC7\u7F51\u7EDC\u53D1\u9001\u7684NSP\u6587\u4EF6\u8BF7\u6C42\uFF0C\u8F6C\u800C\u4F7F\u7528\u9884\u8BBE\u7684\u914D\u7F6E\u544A\u77E5Awoo\u6587\u4EF6\u7684\u83B7\u53D6\u5730\u5740\u3002
tab2_Lbl_HostExtra=extra tab2_Lbl_HostExtra=extra
windowTitleErrorPort=\u7AEF\u53E3\u8BBE\u7F6E\u4E0D\u6B63\u786E\uFF01 windowTitleErrorPort=\u7AEF\u53E3\u8BBE\u7F6E\u4E0D\u6B63\u786E\uFF01
windowBodyErrorPort=\u7AEF\u53E3\u4E0D\u80FD\u7B49\u4E8E0\u6216\u8005\u5927\u4E8E65535. windowBodyErrorPort=\u7AEF\u53E3\u4E0D\u80FD\u7B49\u4E8E0\u6216\u8005\u5927\u4E8E65535.
@ -38,34 +38,34 @@ windowTitleNewVersionNOTAval=\u6CA1\u6709\u53EF\u7528\u7684\u65B0\u7248\u672C
windowTitleNewVersionUnknown=\u65E0\u6CD5\u68C0\u67E5\u65B0\u7248\u672C windowTitleNewVersionUnknown=\u65E0\u6CD5\u68C0\u67E5\u65B0\u7248\u672C
windowBodyNewVersionUnknown=\u51FA\u9519\u4E86\n\u53EF\u80FD\u662F\u7F51\u7EDC\u95EE\u9898\uFF0C\u6216\u8005Github\u670D\u52A1\u4E0D\u53EF\u7528 windowBodyNewVersionUnknown=\u51FA\u9519\u4E86\n\u53EF\u80FD\u662F\u7F51\u7EDC\u95EE\u9898\uFF0C\u6216\u8005Github\u670D\u52A1\u4E0D\u53EF\u7528
windowBodyNewVersionNOTAval=\u4F60\u6B63\u5728\u4F7F\u7528\u6700\u65B0\u7248 windowBodyNewVersionNOTAval=\u4F60\u6B63\u5728\u4F7F\u7528\u6700\u65B0\u7248
tab2_Cb_AllowXciNszXcz=TinFoil\u6A21\u5F0F\u5141\u8BB8\u9009\u62E9XCI\u6587\u4EF6 tab2_Cb_AllowXciNszXcz=Awoo\u6A21\u5F0F\u5141\u8BB8\u9009\u62E9XCI\u6587\u4EF6
tab2_Lbl_AllowXciNszXczDesc=\u7528\u4E8E\u4E00\u4E9B\u652F\u6301XCI/NSZ/XCZ\u548CTinfoil\u4F20\u8F93\u534F\u8BAE\u7684\u7B2C\u4E09\u65B9\u5E94\u7528\u3002\u5982\u679C\u4E0D\u6E05\u695A\u4E0D\u8981\u4FEE\u6539\u3002 tab2_Lbl_AllowXciNszXczDesc=\u7528\u4E8E\u4E00\u4E9B\u652F\u6301XCI/NSZ/XCZ\u548CTinfoil\u4F20\u8F93\u534F\u8BAE\u7684\u7B2C\u4E09\u65B9\u5E94\u7528\u3002\u5982\u679C\u4E0D\u6E05\u695A\u4E0D\u8981\u4FEE\u6539\u3002
tab2_Lbl_Language=\u8BED\u8A00 tab2_Lbl_Language=\u8BED\u8A00
windowBodyRestartToApplyLang=\u8BF7\u91CD\u542F\u5E94\u7528\u4EE5\u5E94\u7528\u66F4\u6539\u3002 windowBodyRestartToApplyLang=\u8BF7\u91CD\u542F\u5E94\u7528\u4EE5\u5E94\u7528\u66F4\u6539\u3002
btn_OpenSplitFile=\u9009\u62e9\u5206\u5272\u7684\u004e\u0053\u0050 btn_OpenSplitFile=\u9009\u62E9\u5206\u5272\u7684NSP
tab2_Lbl_ApplicationSettings=\u4e3b\u8981\u8bbe\u5b9a tab2_Lbl_ApplicationSettings=\u4E3B\u8981\u8BBE\u5B9A
tabSplMrg_Lbl_SplitNMergeTitle=\u5206\u5272\u0026\u5408\u5e76\u6587\u4ef6\u5de5\u5177 tabSplMrg_Lbl_SplitNMergeTitle=\u5206\u5272&\u5408\u5E76\u6587\u4EF6\u5DE5\u5177
tabSplMrg_RadioBtn_Split=\u5206\u5272\u0026\u5408\u5e76\u6587\u4ef6\u5de5\u5177 tabSplMrg_RadioBtn_Split=\u5206\u5272&\u5408\u5E76\u6587\u4EF6\u5DE5\u5177
tabSplMrg_RadioBtn_Merge=\u5408\u5e76 tabSplMrg_RadioBtn_Merge=\u5408\u5E76
tabSplMrg_Txt_File=\u6587\u4ef6\u003a tabSplMrg_Txt_File=\u6587\u4EF6:
tabSplMrg_Txt_Folder=\u5206\u5272\u6587\u4ef6\u0028\u6587\u4ef6\u5939\u0029\u003a\u0020 tabSplMrg_Txt_Folder=\u5206\u5272\u6587\u4EF6(\u6587\u4EF6\u5939):\u0020
tabSplMrg_Btn_SelectFile=\u9009\u62e9\u6587\u4ef6 tabSplMrg_Btn_SelectFile=\u9009\u62E9\u6587\u4EF6
tabSplMrg_Btn_SelectFolder=\u9009\u62e9\u6587\u4ef6\u5939 tabSplMrg_Btn_SelectFolder=\u9009\u62E9\u6587\u4EF6\u5939
tabSplMrg_Lbl_SaveToLocation=\u8def\u5f84\u003a\u0020 tabSplMrg_Lbl_SaveToLocation=\u8DEF\u5F84:\u0020
tabSplMrg_Btn_ChangeSaveToLocation=\u53d8\u66f4 tabSplMrg_Btn_ChangeSaveToLocation=\u53D8\u66F4
tabSplMrg_Btn_Convert=\u8f6c\u6362 tabSplMrg_Btn_Convert=\u8F6C\u6362
windowTitleError=\u9519\u8bef windowTitleError=\u9519\u8BEF
windowBodyPleaseFinishTransfersFirst=\u5f53\u7a0b\u5e8f\u6b63\u5728\u5904\u7406\u0055\u0053\u0042\u002f\u004e\u0065\u0074\u0077\u006f\u0072\u006b\u5b89\u88c5\u65f6\u65e0\u6cd5\u540c\u65f6\u6267\u884c\u5206\u5272\u002f\u5408\u5e76\u6587\u4ef6\u002e\u0020\u5982\u9700\u7ee7\u7eed\u002c\u5fc5\u987b\u4e2d\u65ad\u76ee\u524d\u7684\u4f20\u8f93\u002e windowBodyPleaseFinishTransfersFirst=\u5F53\u7A0B\u5E8F\u6B63\u5728\u5904\u7406USB/Network\u5B89\u88C5\u65F6\u65E0\u6CD5\u540C\u65F6\u6267\u884C\u5206\u5272/\u5408\u5E76\u6587\u4EF6.\u0020\u5982\u9700\u7EE7\u7EED,\u5FC5\u987B\u4E2D\u65AD\u76EE\u524D\u7684\u4F20\u8F93.
done_txt=\u5b8c\u6210\u0021 done_txt=\u5B8C\u6210!
failure_txt=\u5931\u8d25 failure_txt=\u5931\u8D25
btn_Select=\u9009\u62e9 btn_Select=\u9009\u62E9
btn_InjectPayloader=\u6ce8\u5165payload btn_InjectPayloader=\u6CE8\u5165payload
tabNXDT_Btn_Start=\u5f00\u59cb\u0021 tabNXDT_Btn_Start=\u5F00\u59CB!
tab2_Btn_InstallDrivers=\u4e0b\u8f7d\u5e76\u5b89\u88c5\u9a71\u52a8\u7a0b\u5e8f tab2_Btn_InstallDrivers=\u4E0B\u8F7D\u5E76\u5B89\u88C5\u9A71\u52A8\u7A0B\u5E8F
windowTitleDownloadDrivers=\u4e0b\u8f7d\u5e76\u5b89\u88c5\u9a71\u52a8\u7a0b\u5e8f windowTitleDownloadDrivers=\u4E0B\u8F7D\u5E76\u5B89\u88C5\u9A71\u52A8\u7A0B\u5E8F
windowBodyDownloadDrivers=\u6b63\u5728\u4e0b\u8f7d\u9a71\u52a8\u7a0b\u5e8f (libusbK v3.0.7.0)... windowBodyDownloadDrivers=\u6B63\u5728\u4E0B\u8F7D\u9A71\u52A8\u7A0B\u5E8F (libusbK v3.0.7.0)...
btn_Cancel=\u53d6\u6d88 btn_Cancel=\u53D6\u6D88
btn_Close=\u5173\u95ed btn_Close=\u5173\u95ED
tab2_Cb_GlVersion=GoldLeaf\u7248\u672c tab2_Cb_GlVersion=GoldLeaf\u7248\u672C
tab2_Cb_GLshowNspOnly=\u5728GoldLeaf\u5185\u4ec5\u663e\u793a*.nsp\u6587\u4ef6 tab2_Cb_GLshowNspOnly=\u5728GoldLeaf\u5185\u4EC5\u663E\u793A*.nsp\u6587\u4EF6
windowBodyPleaseStopOtherProcessFirst=\u5982\u8981\u6267\u884c\u76ee\u524d\u7684\u64cd\u4f5c\u7a0b\u5e8f\u002c\u8bf7\u5148\u505c\u6b62\u5176\u4ed6\u6b63\u5728\u5904\u7406\u7684\u7a0b\u5e8f\u002e windowBodyPleaseStopOtherProcessFirst=\u5982\u8981\u6267\u884C\u76EE\u524D\u7684\u64CD\u4F5C\u7A0B\u5E8F,\u8BF7\u5148\u505C\u6B62\u5176\u4ED6\u6B63\u5728\u5904\u7406\u7684\u7A0B\u5E8F.

View file

@ -28,7 +28,7 @@ tab2_Lbl_HostPort=\u9023\u63A5\u57E0
tab2_Cb_AutoDetectIp=\u81EA\u52D5\u5075\u6E2CIP tab2_Cb_AutoDetectIp=\u81EA\u52D5\u5075\u6E2CIP
tab2_Cb_RandSelectPort=\u96A8\u6A5F\u9078\u53D6\u9023\u63A5\u57E0 tab2_Cb_RandSelectPort=\u96A8\u6A5F\u9078\u53D6\u9023\u63A5\u57E0
tab2_Cb_DontServeRequests=\u4E0D\u56DE\u61C9NS\u8ACB\u6C42 tab2_Cb_DontServeRequests=\u4E0D\u56DE\u61C9NS\u8ACB\u6C42
tab2_Lbl_DontServeRequestsDesc=\u555F\u7528\u6B64\u8A2D\u5B9A\u5F8C,\u6B64\u96FB\u8166\u5C07\u4E0D\u6703\u56DE\u61C9\u4F86\u81EANS(\u900F\u904E\u7DB2\u8DEF)\u7684NSP\u6A94\u6848\u8ACB\u6C42,\u4E26\u8B93TinFoil\u5C0B\u627E\u6A94\u6848\u4F86\u6E90\u6642\u4F7F\u7528\u9810\u8A2D\u7684\u4E3B\u6A5F\u8A2D\u5B9A. tab2_Lbl_DontServeRequestsDesc=\u555F\u7528\u6B64\u8A2D\u5B9A\u5F8C,\u6B64\u96FB\u8166\u5C07\u4E0D\u6703\u56DE\u61C9\u4F86\u81EANS(\u900F\u904E\u7DB2\u8DEF)\u7684NSP\u6A94\u6848\u8ACB\u6C42,\u4E26\u8B93Awoo\u5C0B\u627E\u6A94\u6848\u4F86\u6E90\u6642\u4F7F\u7528\u9810\u8A2D\u7684\u4E3B\u6A5F\u8A2D\u5B9A.
tab2_Lbl_HostExtra=\u5176\u4ED6 tab2_Lbl_HostExtra=\u5176\u4ED6
windowTitleErrorPort=\u9023\u63A5\u57E0\u8A2D\u5B9A\u4E0D\u6B63\u78BA! windowTitleErrorPort=\u9023\u63A5\u57E0\u8A2D\u5B9A\u4E0D\u6B63\u78BA!
windowBodyErrorPort=\u9023\u63A5\u57E0\u8A2D\u5B9A\u503C\u5FC5\u9808\u4ECB\u65BC0\u523065535\u4E4B\u9593. windowBodyErrorPort=\u9023\u63A5\u57E0\u8A2D\u5B9A\u503C\u5FC5\u9808\u4ECB\u65BC0\u523065535\u4E4B\u9593.
@ -38,7 +38,7 @@ windowTitleNewVersionNOTAval=\u76EE\u524D\u6C92\u6709\u53EF\u66F4\u65B0\u7684\u7
windowTitleNewVersionUnknown=\u76EE\u524D\u7121\u6CD5\u6AA2\u67E5\u6709\u7121\u53EF\u66F4\u65B0\u7248\u672C windowTitleNewVersionUnknown=\u76EE\u524D\u7121\u6CD5\u6AA2\u67E5\u6709\u7121\u53EF\u66F4\u65B0\u7248\u672C
windowBodyNewVersionUnknown=\u767C\u751F\u932F\u8AA4\n\u53EF\u80FD\u7DB2\u8DEF\u4E0D\u53EF\u7528\u6216\u8A0A\u865F\u4E0D\u8DB3,\u6216\u8005\u7121\u6CD5\u9023\u4E0AGitHub\u5B98\u7DB2\u4F3A\u670D\u5668 windowBodyNewVersionUnknown=\u767C\u751F\u932F\u8AA4\n\u53EF\u80FD\u7DB2\u8DEF\u4E0D\u53EF\u7528\u6216\u8A0A\u865F\u4E0D\u8DB3,\u6216\u8005\u7121\u6CD5\u9023\u4E0AGitHub\u5B98\u7DB2\u4F3A\u670D\u5668
windowBodyNewVersionNOTAval=\u76EE\u524D\u4F7F\u7528\u7684\u7A0B\u5F0F\u5DF2\u662F\u6700\u65B0\u7248\u672C windowBodyNewVersionNOTAval=\u76EE\u524D\u4F7F\u7528\u7684\u7A0B\u5F0F\u5DF2\u662F\u6700\u65B0\u7248\u672C
tab2_Cb_AllowXciNszXcz=\u5141\u8A31Tinfoil\u6A21\u5F0F\u6642\u9078\u53D6XCI / NSZ / XCZ \u6A94\u6848\u683C\u5F0F tab2_Cb_AllowXciNszXcz=\u5141\u8A31Awoo\u6A21\u5F0F\u6642\u9078\u53D6XCI / NSZ / XCZ \u6A94\u6848\u683C\u5F0F
tab2_Lbl_AllowXciNszXczDesc=\u6B64\u8A2D\u5B9A\u5C08\u70BA\u652F\u63F4XCI/NSZ/XCZ\u6A94\u6848\u683C\u5F0F\u8207Tinfoil\u50B3\u8F38\u5354\u8B70\u7684\u7B2C\u4E09\u65B9\u7A0B\u5F0F\u4F7F\u7528. \u5982\u4E0D\u78BA\u5B9A,\u8ACB\u52FF\u8B8A\u66F4\u6B64\u9805\u8A2D\u5B9A. \u4F7F\u7528Awoo Installer\u8ACB\u555F\u7528\u6B64\u8A2D\u5B9A. tab2_Lbl_AllowXciNszXczDesc=\u6B64\u8A2D\u5B9A\u5C08\u70BA\u652F\u63F4XCI/NSZ/XCZ\u6A94\u6848\u683C\u5F0F\u8207Tinfoil\u50B3\u8F38\u5354\u8B70\u7684\u7B2C\u4E09\u65B9\u7A0B\u5F0F\u4F7F\u7528. \u5982\u4E0D\u78BA\u5B9A,\u8ACB\u52FF\u8B8A\u66F4\u6B64\u9805\u8A2D\u5B9A. \u4F7F\u7528Awoo Installer\u8ACB\u555F\u7528\u6B64\u8A2D\u5B9A.
tab2_Lbl_Language=\u4ECB\u9762\u8A9E\u7CFB tab2_Lbl_Language=\u4ECB\u9762\u8A9E\u7CFB
windowBodyRestartToApplyLang=\u8ACB\u91CD\u65B0\u555F\u52D5\u7A0B\u5F0F\u4EE5\u5957\u7528\u8B8A\u66F4\u7684\u8A2D\u5B9A. windowBodyRestartToApplyLang=\u8ACB\u91CD\u65B0\u555F\u52D5\u7A0B\u5F0F\u4EE5\u5957\u7528\u8B8A\u66F4\u7684\u8A2D\u5B9A.