Language could be selected by user manually.
Minor changes to CSS.
This commit is contained in:
Dmitry Isaenko 2019-06-14 05:06:26 +03:00
parent 082395bf80
commit 525262ebfe
12 changed files with 142 additions and 80 deletions

View file

@ -1,5 +1,6 @@
package nsusbloader;
import java.util.Locale;
import java.util.prefs.Preferences;
public class AppPreferences {
@ -105,4 +106,7 @@ public class AppPreferences {
public boolean getTfXCI(){return preferences.getBoolean("TF_XCI", false);}
public void setTfXCI(boolean prop){ preferences.putBoolean("TF_XCI", prop); }
public String getLanguage(){return preferences.get("USR_LANG", Locale.getDefault().getISO3Language());}
public void setLanguage(String langStr){preferences.put("USR_LANG", langStr);}
}

View file

@ -1,6 +1,8 @@
package nsusbloader.Controllers;
import javafx.application.HostServices;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Task;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
@ -11,9 +13,10 @@ import nsusbloader.AppPreferences;
import nsusbloader.ServiceWindow;
import nsusbloader.ModelControllers.UpdatesChecker;
import javax.security.auth.callback.Callback;
import java.io.File;
import java.net.URL;
import java.util.List;
import java.util.ResourceBundle;
import java.util.*;
public class SettingsController implements Initializable {
@ -48,6 +51,11 @@ public class SettingsController implements Initializable {
@FXML
private CheckBox tfXciSpprtCb;
@FXML
private Button langBtn;
@FXML
private ChoiceBox<String> langCB;
private HostServices hs;
@Override
@ -179,6 +187,31 @@ public class SettingsController implements Initializable {
updates.start();
});
tfXciSpprtCb.setSelected(AppPreferences.getInstance().getTfXCI());
// Language settings area
URL resourceURL = this.getClass().getResource("/");
String[] filesList = new File(resourceURL.getFile()).list(); // Screw it. This WON'T produce NullPointerException
ObservableList<String> langCBObsList = FXCollections.observableArrayList();
langCBObsList.add("eng");
for (String jarFileName : filesList)
if (jarFileName.startsWith("locale_"))
langCBObsList.add(jarFileName.substring(7, 10));
langCB.setItems(langCBObsList);
if (langCBObsList.contains(AppPreferences.getInstance().getLanguage()))
langCB.getSelectionModel().select(AppPreferences.getInstance().getLanguage());
else
langCB.getSelectionModel().select("eng");
langBtn.setOnAction(e->{
AppPreferences.getInstance().setLanguage(langCB.getSelectionModel().getSelectedItem());
ServiceWindow.getInfoNotification("",
ResourceBundle.getBundle("locale", new Locale(langCB.getSelectionModel().getSelectedItem()))
.getString("windowBodyRestartToApplyLang"));
});
}
public boolean getExpertModeSelected(){ return expertModeCb.isSelected(); }

View file

@ -18,7 +18,7 @@ public class NSLMain extends Application {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/NSLMain.fxml"));
Locale userLocale = new Locale(Locale.getDefault().getISO3Language()); // NOTE: user locale based on ISO3 Language codes
Locale userLocale = new Locale(AppPreferences.getInstance().getLanguage()); // NOTE: user locale based on ISO3 Language codes
ResourceBundle rb = ResourceBundle.getBundle("locale", userLocale);
loader.setResources(rb);