diff --git a/src/main/java/com/cemu_UI/application/Main.java b/src/main/java/com/cemu_UI/application/Main.java index 2096c7e..94bf57c 100644 --- a/src/main/java/com/cemu_UI/application/Main.java +++ b/src/main/java/com/cemu_UI/application/Main.java @@ -138,8 +138,9 @@ public class Main extends Application { firstStart(); mainWindowController.setColor("00a8cc"); mainWindowController.setAutoUpdate(false); - mainWindowController.setxPosHelper(0); + mainWindowController.setLanguage("en_US"); mainWindowController.setLastLocalSync(0); + mainWindowController.setxPosHelper(0); mainWindowController.saveSettings(); Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) System.exit(0); //finishes itself diff --git a/src/main/java/com/cemu_UI/application/MainWindowController.java b/src/main/java/com/cemu_UI/application/MainWindowController.java index bb6efe2..60fb0ce 100644 --- a/src/main/java/com/cemu_UI/application/MainWindowController.java +++ b/src/main/java/com/cemu_UI/application/MainWindowController.java @@ -287,7 +287,7 @@ public class MainWindowController { private String selectedGameTitle; private String id; private String version = "0.2.2"; - private String buildNumber = "067"; + private String buildNumber = "069"; private String versionName = "Puzzle Plank Galaxy"; private int xPos = -200; private int yPos = 17; @@ -355,17 +355,19 @@ public class MainWindowController { private String cloudSyncWaringBodyText; private String cloudSyncErrorHeadingText; private String cloudSyncErrorBodyText; + private String addGameBtnHeadingText; + private String addGameBtnBodyText; private String addBtnReturnErrorHeadingText; private String addBtnReturnErrorBodyText; + private String lastPlayed; + private String today; + private String yesterday; private String playBtnPlay; private String playBtnUpdating; private String playBtnCopyingFiles; - private String okayBtnText; - private String cancelBtnText; - private String updateBtnCheckNow; - private String updateBtnNoUpdateAvailable; - private String updateBtnUpdateAvailable; + private String smmdbDownloadBtnLoading; + private String smmdbDownloadBtnDownload; public void setMain(Main m) { this.main = m; @@ -480,9 +482,8 @@ public class MainWindowController { String[] gameInfo = dbController.getGameInfo(selectedGameTitleID); // new edit dialog - String headingText = "edit \"" + selectedGameTitle + "\""; - String bodyText = "You can edit the tile and rom/cover path."; - JFXEditGameDialog editGameDialog = new JFXEditGameDialog(headingText, bodyText, dialogBtnStyle, 450, + String headingText = editHeadingText + " \"" + selectedGameTitle + "\""; + JFXEditGameDialog editGameDialog = new JFXEditGameDialog(headingText, editBodyText, dialogBtnStyle, 450, 300, 1, MWC, main.getPrimaryStage(), main.getPane()); editGameDialog.setTitle(gameInfo[0]); editGameDialog.setCoverPath(gameInfo[1]); @@ -500,8 +501,8 @@ public class MainWindowController { public void handle(ActionEvent event) { try { LOGGER.info("remove " + selectedGameTitle + "(" + selectedGameTitleID + ")"); - String headingText = "remove \"" + selectedGameTitle + "\""; - String bodyText = "Are you sure you want to delete " + selectedGameTitle + " ?"; + String headingText = removeHeadingText + " \"" + selectedGameTitle + "\""; + String bodyText = removeBodyText + " " + selectedGameTitle + " ?"; EventHandler okayAction = new EventHandler() { @Override public void handle(ActionEvent event) { @@ -523,7 +524,7 @@ public class MainWindowController { }; JFXOkayCancelDialog removeGameDialog = new JFXOkayCancelDialog(headingText, bodyText, - dialogBtnStyle, 350, 170, okayAction, cancelAction, main.getPane()); + dialogBtnStyle, 350, 170, okayAction, cancelAction, main.getPane(), bundle); removeGameDialog.show(); } catch (Exception e) { LOGGER.error("error while removing " + selectedGameTitle + "(" + selectedGameTitleID + ")", e); @@ -536,8 +537,7 @@ public class MainWindowController { public void handle(ActionEvent event) { try { LOGGER.info("update: " + selectedGameTitleID); - String headingText = "update \"" + selectedGameTitle + "\""; - String bodyText = "pleas select the update root directory"; + String headingText = addUpdateHeadingText + " \"" + selectedGameTitle + "\""; EventHandler okayAction = new EventHandler() { @Override public void handle(ActionEvent event) { @@ -546,13 +546,7 @@ public class MainWindowController { String updatePath = selectedDirecroty.getAbsolutePath(); String[] parts = selectedGameTitleID.split("-"); // split string into 2 parts at "-" File srcDir = new File(updatePath); - File destDir; - - if (System.getProperty("os.name").equals("Linux")) { - destDir = new File(cemuPath + "/mlc01/usr/title/" + parts[0] + "/" + parts[1]); - } else { - destDir = new File(cemuPath + "\\mlc01\\usr\\title\\" + parts[0] + "\\" + parts[1]); - } + File destDir = new File(cemuPath + "/mlc01/usr/title/" + parts[0] + "/" + parts[1]); // if directory doesn't exist create it if (destDir.exists() != true) { @@ -561,10 +555,10 @@ public class MainWindowController { try { LOGGER.info("copying the content of " + updatePath + " to " + destDir.toString()); - playBtn.setText("updating..."); + playBtn.setText(playBtnUpdating); playBtn.setDisable(true); FileUtils.copyDirectory(srcDir, destDir); // TODO progress indicator - playBtn.setText("play"); + playBtn.setText(playBtnPlay); playBtn.setDisable(false); LOGGER.info("copying files done!"); } catch (IOException e) { @@ -580,8 +574,8 @@ public class MainWindowController { } }; - JFXOkayCancelDialog updateGameDialog = new JFXOkayCancelDialog(headingText, bodyText, - dialogBtnStyle, 350, 170, okayAction, cancelAction, main.getPane()); + JFXOkayCancelDialog updateGameDialog = new JFXOkayCancelDialog(headingText, addUpdateBodyText, + dialogBtnStyle, 350, 170, okayAction, cancelAction, main.getPane(), bundle); updateGameDialog.show(); } catch (Exception e) { LOGGER.warn("trying to update " + selectedGameTitleID + ",which is not a valid type!", e); @@ -594,8 +588,7 @@ public class MainWindowController { public void handle(ActionEvent event) { try { LOGGER.info("add DLC: " + selectedGameTitleID); - String headingText = "add a DLC to \"" + selectedGameTitle + "\""; - String bodyText = "pleas select the DLC root directory"; + String headingText = addDLCHeadingText + " \"" + selectedGameTitle + "\""; EventHandler okayAction = new EventHandler() { @Override public void handle(ActionEvent event) { @@ -604,13 +597,7 @@ public class MainWindowController { String dlcPath = selectedDirecroty.getAbsolutePath(); String[] parts = selectedGameTitleID.split("-"); // split string into 2 parts at "-" File srcDir = new File(dlcPath); - File destDir; - if (System.getProperty("os.name").equals("Linux")) { - destDir = new File(cemuPath + "/mlc01/usr/title/" + parts[0] + "/" + parts[1] + "/aoc"); - } else { - destDir = new File( - cemuPath + "\\mlc01\\usr\\title\\" + parts[0] + "\\" + parts[1] + "\\aoc"); - } + File destDir = new File(cemuPath + "/mlc01/usr/title/" + parts[0] + "/" + parts[1] + "/aoc"); // if directory doesn't exist create it if (destDir.exists() != true) { @@ -619,10 +606,10 @@ public class MainWindowController { try { LOGGER.info("copying the content of " + dlcPath + " to " + destDir.toString()); - playBtn.setText("copying files..."); + playBtn.setText(playBtnCopyingFiles); playBtn.setDisable(true); FileUtils.copyDirectory(srcDir, destDir); // TODO progress indicator - playBtn.setText("play"); + playBtn.setText(playBtnPlay); playBtn.setDisable(false); LOGGER.info("copying files done!"); } catch (IOException e) { @@ -638,8 +625,8 @@ public class MainWindowController { } }; - JFXOkayCancelDialog addDLCDialog = new JFXOkayCancelDialog(headingText, bodyText, dialogBtnStyle, - 350, 170, okayAction, cancelAction, main.getPane()); + JFXOkayCancelDialog addDLCDialog = new JFXOkayCancelDialog(headingText, addDLCBodyText, dialogBtnStyle, + 350, 170, okayAction, cancelAction, main.getPane(), bundle); addDLCDialog.show(); } catch (Exception e) { LOGGER.warn("trying to add a dlc to " + selectedGameTitleID + ",which is not a valid type!", e); @@ -769,17 +756,7 @@ public class MainWindowController { @Override public void handle(MouseEvent mouseEvent) { if(mouseEvent.getButton().equals(MouseButton.PRIMARY)){ - - String headingText = "cemu_UI"; - String bodyText = "cemu_UI is licensed under the terms of GNU GPL 3.\n\n" - + "JFoenix, Apache License 2.0\n" - + "minimal-json, MIT License\n" - + "sqlite-jdbc, Apache License 2.0\n" - + "Apache Commons IO, Apache License 2.0\n" - + "Apache Commons Logging, Apache License 2.0\n" - + "Apache Commons Codec, Apache License 2.0\n" - + "Apache Log4j 2, Apache License 2.0\n"; - + EventHandler okayAction = new EventHandler() { @Override public void handle(ActionEvent event) { @@ -813,10 +790,11 @@ public class MainWindowController { } }; - JFXOkayCancelDialog licenseOverviewDialog = new JFXOkayCancelDialog(headingText, bodyText, dialogBtnStyle, - 350, 275, okayAction, cancelAction, main.getPane()); + JFXOkayCancelDialog licenseOverviewDialog = new JFXOkayCancelDialog(licensesLblHeadingText, + licensesLblBodyText, dialogBtnStyle, 350, 275, okayAction, cancelAction, main.getPane(), + bundle); licenseOverviewDialog.setCancelText("show licenses"); - licenseOverviewDialog.show(); + licenseOverviewDialog.show(); } } }); @@ -831,12 +809,9 @@ public class MainWindowController { @FXML void aboutBtnAction() { - String headingText = "cemu_UI"; String bodyText = "cemu_UI by @Seil0 \nVersion: " + version + " (" + buildNumber + ") \"" + versionName + "\" \n" - + "This Application is made with free Software\n" - + "and licensed under the terms of GNU GPL 3.\n\n" - + "www.kellerkinder.xyz"; - JFXInfoDialog aboutDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 350, 200, main.getPane()); + + aboutBtnBodyText; + JFXInfoDialog aboutDialog = new JFXInfoDialog(aboutBtnHeadingText, bodyText, dialogBtnStyle, 350, 200, main.getPane()); aboutDialog.show(); } @@ -895,7 +870,7 @@ public class MainWindowController { @Override public void run() { Platform.runLater(() -> { - smmdbDownloadBtn.setText("loading ..."); + smmdbDownloadBtn.setText(smmdbDownloadBtnLoading); smmdbDownloadBtn.setDisable(true); root.getChildren().remove(0,root.getChildren().size()); }); @@ -909,7 +884,7 @@ public class MainWindowController { Platform.runLater(() -> { root.getChildren().add(new TreeItem(helpCourse)); // add data to root-node - smmdbDownloadBtn.setText("Download"); + smmdbDownloadBtn.setText(smmdbDownloadBtnDownload); smmdbDownloadBtn.setDisable(false); }); } @@ -1091,11 +1066,6 @@ public class MainWindowController { if(cloudSync) { cloudSync = false; } else { - String headingText = "activate cloud savegame sync (beta)"; - String bodyText = "WARNING this is a completly WIP cloud save integration, " - + "\nit's NOT recomended to use this!!\n" - + "\nUse it on your own risk and backup everthing before!"; - EventHandler okayAction = new EventHandler(){ @Override public void handle(ActionEvent event){ @@ -1115,12 +1085,9 @@ public class MainWindowController { cloudSyncToggleBtn.setSelected(false); //cloud sync init error dialog - String headingText = "Error while initializing cloud sync!"; - String bodyText = "There was some truble adding your game." - + "\nPlease upload the app.log (which can be found in the cemu_UI directory)" - + "\nto \"https://github.com/Seil0/cemu_UI/issues\" so we can fix this."; - JFXInfoDialog cloudSyncErrorDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 450, 170, main.getPane()); - cloudSyncErrorDialog.show(); + JFXInfoDialog cloudSyncErrorDialog = new JFXInfoDialog(cloudSyncErrorHeadingText, + cloudSyncErrorBodyText, dialogBtnStyle, 450, 170, main.getPane()); + cloudSyncErrorDialog.show(); } } @@ -1136,9 +1103,10 @@ public class MainWindowController { } }; - JFXOkayCancelDialog cloudSyncErrorDialog = new JFXOkayCancelDialog(headingText, bodyText, dialogBtnStyle, - 419, 140, okayAction, cancelAction, main.getPane()); - cloudSyncErrorDialog.show(); + JFXOkayCancelDialog cloudSyncWarningDialog = new JFXOkayCancelDialog(cloudSyncWaringHeadingText, + cloudSyncWaringBodyText, dialogBtnStyle, 419, 140, okayAction, cancelAction, main.getPane(), + bundle); + cloudSyncWarningDialog.show(); } } @@ -1150,8 +1118,8 @@ public class MainWindowController { @FXML void addBtnAction(ActionEvent event) { - String headingText = "add a new game to cemu_UI"; - String bodyText = ""; + String headingText = addGameBtnHeadingText; + String bodyText = addGameBtnBodyText; JFXEditGameDialog addGameDialog = new JFXEditGameDialog(headingText, bodyText, dialogBtnStyle, 450, 300, 0, this, main.getPrimaryStage(), main.getPane()); addGameDialog.show(); @@ -1171,11 +1139,9 @@ public class MainWindowController { LOGGER.info("No parameter set!"); //addGame error dialog - String headingTextError = "Error while adding a new Game!"; - String bodyTextError = "There was some truble adding your game." - + "\nOne of the needed values was empty, please try again to add your game."; - JFXInfoDialog errorDialog = new JFXInfoDialog(headingTextError, bodyTextError, dialogBtnStyle, 350, 170, main.getPane()); - errorDialog.show(); + JFXInfoDialog errorDialog = new JFXInfoDialog(addBtnReturnErrorHeadingText, addBtnReturnErrorBodyText, + dialogBtnStyle, 350, 170, main.getPane()); + errorDialog.show(); } else { File pictureCache; @@ -1279,16 +1245,16 @@ public class MainWindowController { } else { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - int today = Integer.parseInt(dtf.format(LocalDate.now()).replaceAll("-", "")); - int yesterday = Integer.parseInt(dtf.format(LocalDate.now().minusDays(1)).replaceAll("-", "")); - int lastPlayedDay = Integer.parseInt(dbController.getLastPlayed(titleID).replaceAll("-", "")); + int tToday = Integer.parseInt(dtf.format(LocalDate.now()).replaceAll("-", "")); + int tYesterday = Integer.parseInt(dtf.format(LocalDate.now().minusDays(1)).replaceAll("-", "")); + int tLastPlayedDay = Integer.parseInt(dbController.getLastPlayed(titleID).replaceAll("-", "")); - if (lastPlayedDay == today) { - lastTimePlayedBtn.setText("Last played, today"); - } else if (lastPlayedDay == yesterday) { - lastTimePlayedBtn.setText("Last played, yesterday"); + if (tLastPlayedDay == tToday) { + lastTimePlayedBtn.setText(lastPlayed + today); + } else if (tLastPlayedDay == tYesterday) { + lastTimePlayedBtn.setText(lastPlayed + yesterday); } else { - lastTimePlayedBtn.setText("Last played, " + dbController.getLastPlayed(titleID)); + lastTimePlayedBtn.setText(lastPlayed + dbController.getLastPlayed(titleID)); } } @@ -1351,7 +1317,6 @@ public class MainWindowController { } } - // TODO add strings for dialogs void setUILanguage(){ switch(getLanguage()){ case "en_US": @@ -1414,17 +1379,19 @@ public class MainWindowController { cloudSyncWaringBodyText = bundle.getString("cloudSyncWaringBodyText"); cloudSyncErrorHeadingText = bundle.getString("cloudSyncErrorHeadingText"); cloudSyncErrorBodyText = bundle.getString("cloudSyncErrorBodyText"); + addGameBtnHeadingText = bundle.getString("addGameBtnHeadingText"); + addGameBtnBodyText = bundle.getString("addGameBtnBodyText"); addBtnReturnErrorHeadingText = bundle.getString("addBtnReturnErrorHeadingText"); addBtnReturnErrorBodyText = bundle.getString("addBtnReturnErrorBodyText"); + lastPlayed = bundle.getString("lastPlayed"); + today = bundle.getString("today"); + yesterday = bundle.getString("yesterday"); playBtnPlay = bundle.getString("playBtnPlay"); playBtnUpdating = bundle.getString("playBtnUpdating"); playBtnCopyingFiles = bundle.getString("playBtnCopyingFiles"); - okayBtnText = bundle.getString("okayBtnText"); - cancelBtnText = bundle.getString("cancelBtnText"); - updateBtnCheckNow = bundle.getString("updateBtnCheckNow"); - updateBtnNoUpdateAvailable = bundle.getString("updateBtnNoUpdateAvailable"); - updateBtnUpdateAvailable = bundle.getString("updateBtnUpdateAvailable"); + smmdbDownloadBtnLoading = bundle.getString("smmdbDownloadBtnLoading"); + smmdbDownloadBtnDownload = bundle.getString("smmdbDownloadBtnDownload"); } private void checkAutoUpdate() { @@ -1728,12 +1695,12 @@ public class MainWindowController { LOGGER.error("could not load color value, setting default instead", e); setColor("00a8cc"); } - - try { + + if (props.getProperty("language") == null) { + LOGGER.error("cloud not load language, setting default instead"); + setLanguage("en_US"); + } else { setLanguage(props.getProperty("language")); - } catch (Exception e) { - LOGGER.error("cloud not load language", e); - setLanguage(System.getProperty("user.language")+"_"+System.getProperty("user.country")); } try { @@ -2048,6 +2015,14 @@ public class MainWindowController { this.language = language; } + public ResourceBundle getBundle() { + return bundle; + } + + public void setBundle(ResourceBundle bundle) { + this.bundle = bundle; + } + public AnchorPane getMainAnchorPane() { return mainAnchorPane; } diff --git a/src/main/java/com/cemu_UI/application/playGame.java b/src/main/java/com/cemu_UI/application/playGame.java index 3539212..b6afd6b 100644 --- a/src/main/java/com/cemu_UI/application/playGame.java +++ b/src/main/java/com/cemu_UI/application/playGame.java @@ -90,7 +90,6 @@ public class playGame extends Thread{ mainWindowController.main.getPrimaryStage().setIconified(false); // maximize cemu_UI }); -// System.out.println(mainWindowController.getCemuPath()+"/mlc01/emulatorSave/"+); //sync savegame with cloud service if (mainWindowController.isCloudSync()) { mainWindowController.setLastLocalSync(Instant.now().getEpochSecond()); diff --git a/src/main/java/com/cemu_UI/controller/UpdateController.java b/src/main/java/com/cemu_UI/controller/UpdateController.java index 6b7d820..33c1abc 100644 --- a/src/main/java/com/cemu_UI/controller/UpdateController.java +++ b/src/main/java/com/cemu_UI/controller/UpdateController.java @@ -52,6 +52,7 @@ public class UpdateController implements Runnable { private String browserDownloadUrl; // update download link private String githubApiRelease = "https://api.github.com/repos/Seil0/cemu_UI/releases/latest"; private String githubApiBeta = "https://api.github.com/repos/Seil0/cemu_UI/releases"; + private URL githubApiUrl; private boolean useBeta; private static final Logger LOGGER = LogManager.getLogger(UpdateController.class.getName()); @@ -70,7 +71,7 @@ public class UpdateController implements Runnable { public void run() { LOGGER.info("beta:" + useBeta + "; checking for updates ..."); Platform.runLater(() -> { - mainWindowController.getUpdateBtn().setText("checking for updates ..."); + mainWindowController.getUpdateBtn().setText(mainWindowController.getBundle().getString("updateBtnChecking")); }); try { @@ -126,12 +127,12 @@ public class UpdateController implements Runnable { if (iversion >= iaktVersion) { Platform.runLater(() -> { - mainWindowController.getUpdateBtn().setText("no update available"); + mainWindowController.getUpdateBtn().setText(mainWindowController.getBundle().getString("updateBtnNoUpdateAvailable")); }); LOGGER.info("no update available"); } else { Platform.runLater(() -> { - mainWindowController.getUpdateBtn().setText("update available"); + mainWindowController.getUpdateBtn().setText(mainWindowController.getBundle().getString("updateBtnUpdateAvailable")); }); LOGGER.info("update available"); LOGGER.info("download link: " + browserDownloadUrl); diff --git a/src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java b/src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java index e00d168..c5cdb67 100644 --- a/src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java +++ b/src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java @@ -90,13 +90,13 @@ public class JFXEditGameDialog { JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true); TextField gameTitleTF = new TextField(); - gameTitleTF.setPromptText("game tile"); + gameTitleTF.setPromptText(mwc.getBundle().getString("gameTitle")); TextField gameTitleIDTF = new TextField(); - gameTitleIDTF.setPromptText("title ID"); + gameTitleIDTF.setPromptText(mwc.getBundle().getString("titleID")); TextField romPathTF = new TextField(); - romPathTF.setPromptText("ROM path"); + romPathTF.setPromptText(mwc.getBundle().getString("romPath")); TextField gameCoverTF = new TextField(); - gameCoverTF.setPromptText("cover path"); + gameCoverTF.setPromptText(mwc.getBundle().getString("coverPath")); if (mode == 1) { gameTitleTF.setText(title); @@ -107,7 +107,7 @@ public class JFXEditGameDialog { gameTitleIDTF.setEditable(false); } - JFXButton okayBtn = new JFXButton("Okay"); + JFXButton okayBtn = new JFXButton(mwc.getBundle().getString("okayBtnText")); okayBtn.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { @@ -117,9 +117,8 @@ public class JFXEditGameDialog { // LOGGER.info("No parameter set!"); // addGame error dialog - String headingTextError = "Error while adding a new Game!"; - String bodyTextError = "There was some truble adding your game." - + "\nOne of the needed values was empty, please try again to add your game."; + String headingTextError = mwc.getBundle().getString("editGameDialogHeadingTextError"); + String bodyTextError = mwc.getBundle().getString("editGameDialogBodyTextError"); JFXInfoDialog errorDialog = new JFXInfoDialog(headingTextError, bodyTextError, dialogBtnStyle, 350,170, pane); errorDialog.show(); } else { @@ -147,7 +146,7 @@ public class JFXEditGameDialog { okayBtn.setPrefHeight(32); okayBtn.setStyle(dialogBtnStyle); - JFXButton cancelBtn = new JFXButton("Cancel"); + JFXButton cancelBtn = new JFXButton(mwc.getBundle().getString("cancelBtnText")); cancelBtn.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { @@ -158,7 +157,7 @@ public class JFXEditGameDialog { cancelBtn.setPrefHeight(32); cancelBtn.setStyle(dialogBtnStyle); - JFXButton selectPathBtn = new JFXButton("select .rpx file"); + JFXButton selectPathBtn = new JFXButton(mwc.getBundle().getString("editGameDialogSelectPathBtn")); selectPathBtn.setPrefWidth(110); selectPathBtn.setStyle(dialogBtnStyle); selectPathBtn.setOnAction(new EventHandler() { @@ -170,7 +169,7 @@ public class JFXEditGameDialog { } }); - JFXButton selectCoverBtn = new JFXButton("select cover file"); + JFXButton selectCoverBtn = new JFXButton(mwc.getBundle().getString("editGameDialogSelectCoverBtn")); selectCoverBtn.setPrefWidth(110); selectCoverBtn.setStyle(dialogBtnStyle); selectCoverBtn.setOnAction(new EventHandler() { @@ -186,14 +185,14 @@ public class JFXEditGameDialog { grid.setHgap(10); grid.setVgap(10); grid.setPadding(new Insets(15, 10, 10, 10)); - grid.add(new Label("game title:"), 0, 0); + grid.add(new Label(mwc.getBundle().getString("gameTitle") + ":"), 0, 0); grid.add(gameTitleTF, 1, 0); - grid.add(new Label("title id:"), 0, 1); + grid.add(new Label(mwc.getBundle().getString("titleID") + ":"), 0, 1); grid.add(gameTitleIDTF, 1, 1); - grid.add(new Label("ROM path:"), 0, 2); + grid.add(new Label(mwc.getBundle().getString("romPath") + ":"), 0, 2); grid.add(romPathTF, 1, 2); grid.add(selectPathBtn, 2, 2); - grid.add(new Label("cover path:"), 0, 3); + grid.add(new Label(mwc.getBundle().getString("coverPath") + ":"), 0, 3); grid.add(gameCoverTF, 1, 3); grid.add(selectCoverBtn, 2, 3); diff --git a/src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java b/src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java index fa02760..6e35a75 100644 --- a/src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java +++ b/src/main/java/com/cemu_UI/uiElements/JFXOkayCancelDialog.java @@ -22,6 +22,8 @@ package com.cemu_UI.uiElements; +import java.util.ResourceBundle; + import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXDialog; import com.jfoenix.controls.JFXDialogLayout; @@ -38,13 +40,14 @@ public class JFXOkayCancelDialog { private String headingText; private String bodyText; private String dialogBtnStyle; - private String okayText = "okay"; - private String cancelText = "cancel"; + private String okayText; + private String cancelText; private int dialogWidth; private int dialogHeight; private EventHandler okayAction; private EventHandler cancelAction; private Pane pane; + private ResourceBundle bundle; /** * Creates a new JFoenix Dialog to show some information with okay and cancel option @@ -58,7 +61,8 @@ public class JFXOkayCancelDialog { * @param pane pane to which the dialog belongs */ public JFXOkayCancelDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth, - int dialogHeight, EventHandler okayAction, EventHandler cancelAction, Pane pane) { + int dialogHeight, EventHandler okayAction, EventHandler cancelAction, Pane pane, + ResourceBundle bundle) { this.headingText = headingText; this.bodyText = bodyText; this.dialogBtnStyle = dialogBtnStyle; @@ -67,9 +71,13 @@ public class JFXOkayCancelDialog { this.okayAction = okayAction; this.cancelAction = cancelAction; this.pane = pane; + this.bundle = bundle; } public void show() { + okayText = bundle.getString("okayBtnText"); + cancelText = bundle.getString("cancelBtnText"); + JFXDialogLayout content = new JFXDialogLayout(); content.setHeading(new Text(headingText)); content.setBody(new Text(bodyText)); diff --git a/src/main/resources/locals/cemu_UI-Local_en_US.properties b/src/main/resources/locals/cemu_UI-Local_en_US.properties index 6780842..f965f2b 100644 --- a/src/main/resources/locals/cemu_UI-Local_en_US.properties +++ b/src/main/resources/locals/cemu_UI-Local_en_US.properties @@ -12,15 +12,15 @@ smmdbDownloadBtn = playBtn = # Labels -cemu_UISettingsLbl = cemu_UI settings +cemu_UISettingsLbl = cemu_UI Settings cemuDirectoryLbl = cemu directory romDirectoryLbl = ROM directory mainColorLbl = main color languageLbl = language updateLbl = updates branchLbl = branch -cemuSettingsLbl = cemu settings -licensesLbl = licenses +cemuSettingsLbl = cemu Settings +licensesLbl = Licenses # Columns titleColumn = title @@ -33,26 +33,50 @@ editHeadingText = edit editBodyText = You can edit the tile and rom/cover path. removeHeadingText = remove removeBodyText = Are you sure you want to delete -addUpdateHeadingText = -addUpdateBodyText = -addDLCHeadingText = -addDLCBodyText = -licensesLblHeadingText = -licensesLblBodyText = -aboutBtnHeadingText = -aboutBtnBodyText = -cloudSyncWaringHeadingText = -cloudSyncWaringBodyText = -cloudSyncErrorHeadingText = -cloudSyncErrorBodyText = -addBtnReturnErrorHeadingText = -addBtnReturnErrorBodyText = +addUpdateHeadingText = update +addUpdateBodyText = Please select the update root directory. +addDLCHeadingText = add a DLC to +addDLCBodyText = Please select the DLC root directory. -playBtnPlay = -playBtnUpdating = -playBtnCopyingFiles = -okayBtnText = -cancelBtnText = +licensesLblHeadingText = cemu_UI +licensesLblBodyText = cemu_UI is licensed under the terms of GNU GPL 3.\n\nJFoenix, Apache License 2.0\nminimal-json, MIT License\nsqlite-jdbc, Apache License 2.0\nApache Commons IO, Apache License 2.0\nApache Commons Logging, Apache License 2.0\nApache Commons Codec, Apache License 2.0\nApache Log4j 2, Apache License 2.0\n + +aboutBtnHeadingText = cemu_UI +aboutBtnBodyText = This Application is made with free Software\nand licensed under the terms of GNU GPL 3.\n\nwww.kellerkinder.xyz + +cloudSyncWaringHeadingText = activate cloud savegame sync (beta) +cloudSyncWaringBodyText = WARNING this is a completly WIP cloud save integration,\nit's NOT recomended to use this!!\n\nUse it on your own risk and backup everthing before! + +cloudSyncErrorHeadingText = Error while initializing cloud sync! +cloudSyncErrorBodyText = There was some truble adding your game.\nPlease upload the app.log (which can be found in the cemu_UI directory)\nto \"https://github.com/Seil0/cemu_UI/issues\" so we can fix this. + +addGameBtnHeadingText = add a new game to cemu_UI +addGameBtnBodyText = +addBtnReturnErrorHeadingText = Error while adding a new Game! +addBtnReturnErrorBodyText = There was some truble adding your game.\nOne of the needed values was empty, please try again to add your game. +lastPlayed = Last played, +today = today +yesterday = yesterday + +# button strings +playBtnPlay = play +playBtnUpdating = updating... +playBtnCopyingFiles = copying files... +smmdbDownloadBtnLoading = loading +smmdbDownloadBtnDownload = Download +okayBtnText = okay +cancelBtnText = cancel updateBtnCheckNow = check now! +updateBtnChecking = checking for updates ... updateBtnNoUpdateAvailable = no update available updateBtnUpdateAvailable = update available + +#EditGameDialog +gameTitle = game title +titleID = title ID +romPath = ROM path +coverPath = cover path +editGameDialogHeadingTextError = Error while adding a new Game! +editGameDialogBodyTextError = There was some truble adding your game.\nOne of the needed values was empty, please try again to add your game. +editGameDialogSelectPathBtn = select .rpx file +editGameDialogSelectCoverBtn = select cover file