diff --git a/.idea/misc.xml b/.idea/misc.xml index 97dd9e8..64c32f6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/org/toop/app/App.java b/app/src/main/java/org/toop/app/App.java index da9a955..db9683d 100644 --- a/app/src/main/java/org/toop/app/App.java +++ b/app/src/main/java/org/toop/app/App.java @@ -8,12 +8,19 @@ import javafx.application.Application; import javafx.scene.layout.StackPane; import javafx.scene.Scene; import javafx.stage.Stage; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; public class App extends Application { private static Stage stage; private static Scene scene; private static StackPane root; + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); + public static void run(String[] args) { launch(args); } @@ -23,7 +30,7 @@ public class App extends Application { final StackPane root = new StackPane(new MainMenu().getPane()); final Scene scene = new Scene(root); - stage.setTitle("pism"); + stage.setTitle(resourceBundle.getString("windowTitle")); stage.setMinWidth(1080); stage.setMinHeight(720); diff --git a/app/src/main/java/org/toop/app/menu/CreditsMenu.java b/app/src/main/java/org/toop/app/menu/CreditsMenu.java index 96c77cd..385bf42 100644 --- a/app/src/main/java/org/toop/app/menu/CreditsMenu.java +++ b/app/src/main/java/org/toop/app/menu/CreditsMenu.java @@ -1,6 +1,13 @@ package org.toop.app.menu; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; + public final class CreditsMenu extends Menu { - public CreditsMenu() { + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); + public CreditsMenu() { } } \ No newline at end of file diff --git a/app/src/main/java/org/toop/app/menu/MainMenu.java b/app/src/main/java/org/toop/app/menu/MainMenu.java index b8d4ca2..3ac4955 100644 --- a/app/src/main/java/org/toop/app/menu/MainMenu.java +++ b/app/src/main/java/org/toop/app/menu/MainMenu.java @@ -4,24 +4,31 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.*; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; import org.toop.framework.asset.AssetManager; import org.toop.framework.asset.resources.CssAsset; import org.toop.framework.asset.resources.ImageAsset; public final class MainMenu extends Menu { - public MainMenu() { - final Button tictactoe = createButton("Tic Tac Toe", () -> {}); - final Button reversi = createButton("Reversi", () -> {}); - final Button sudoku = createButton("Sudoku", () -> {}); - final Button battleship = createButton("Battleship", () -> {}); - final Button other = createButton("Other", () -> {}); + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); + + public MainMenu() { + final Button tictactoe = createButton(resourceBundle.getString("mainMenuSelectTicTacToe"), () -> {}); + final Button reversi = createButton(resourceBundle.getString("mainMenuSelectReversi"), () -> {}); + final Button sudoku = createButton(resourceBundle.getString("mainMenuSelectSudoku"), () -> {}); + final Button battleship = createButton(resourceBundle.getString("mainMenuSelectBattleship"), () -> {}); + final Button other = createButton(resourceBundle.getString("mainMenuSelectOther"), () -> {}); final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, battleship, other); gamesBox.setAlignment(Pos.TOP_CENTER); - final Button credits = createButton("Credits", () -> {}); - final Button options = createButton("Options", () -> {}); - final Button quit = createButton("Quit", () -> {}); + final Button credits = createButton(resourceBundle.getString("mainMenuSelectCredits"), () -> {}); + final Button options = createButton(resourceBundle.getString("mainMenuSelectOptions"), () -> {}); + final Button quit = createButton(resourceBundle.getString("mainMenuSelectQuit"), () -> {}); final VBox creditsBox = new VBox(credits, options, quit); creditsBox.setAlignment(Pos.BOTTOM_CENTER); diff --git a/app/src/main/java/org/toop/app/menu/Menu.java b/app/src/main/java/org/toop/app/menu/Menu.java index fc0627f..fba8208 100644 --- a/app/src/main/java/org/toop/app/menu/Menu.java +++ b/app/src/main/java/org/toop/app/menu/Menu.java @@ -6,10 +6,16 @@ import javafx.animation.FadeTransition; import javafx.scene.control.Button; import javafx.scene.layout.Pane; import javafx.util.Duration; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; public abstract class Menu { protected Pane pane; public Pane getPane() { return pane; } + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); public void fadeBackgroundImage(String imagePath, float from, float to, float milliseconds) { final FadeTransition fade = new FadeTransition(Duration.millis(milliseconds), App.getRoot()); diff --git a/app/src/main/java/org/toop/app/menu/OptionsMenu.java b/app/src/main/java/org/toop/app/menu/OptionsMenu.java index 541bb73..2d2bd64 100644 --- a/app/src/main/java/org/toop/app/menu/OptionsMenu.java +++ b/app/src/main/java/org/toop/app/menu/OptionsMenu.java @@ -1,6 +1,13 @@ package org.toop.app.menu; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; + public final class OptionsMenu extends Menu { - public OptionsMenu() { + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); + public OptionsMenu() { } } \ No newline at end of file diff --git a/app/src/main/java/org/toop/app/menu/QuitMenu.java b/app/src/main/java/org/toop/app/menu/QuitMenu.java index 6d2bf5e..150c687 100644 --- a/app/src/main/java/org/toop/app/menu/QuitMenu.java +++ b/app/src/main/java/org/toop/app/menu/QuitMenu.java @@ -10,23 +10,29 @@ import javafx.scene.text.Text; import org.toop.app.App; import org.toop.framework.asset.AssetManager; import org.toop.framework.asset.resources.CssAsset; +import org.toop.local.AppContext; + +import java.util.Locale; +import java.util.ResourceBundle; public final class QuitMenu extends Menu { - public QuitMenu() { + private Locale currentLocale = AppContext.getLocale(); + private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale); + public QuitMenu() { final Region background = new Region(); background.getStyleClass().add("quit-background"); background.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE); - final Text sure = new Text("Are you sure?"); + final Text sure = new Text(resourceBundle.getString("quitMenuTextSure")); sure.getStyleClass().add("quit-text"); - final Button yes = new Button("Yes"); + final Button yes = new Button(resourceBundle.getString("quitMenuButtonYes")); yes.getStyleClass().add("quit-button"); yes.setOnAction(_ -> { App.quit(); }); - final Button no = new Button("No"); + final Button no = new Button(resourceBundle.getString("quitMenuButtonNo")); no.getStyleClass().add("quit-button"); no.setOnAction(_ -> { App.pop(); diff --git a/app/src/main/java/org/toop/local/AppContext.java b/app/src/main/java/org/toop/local/AppContext.java new file mode 100644 index 0000000..3b1bb47 --- /dev/null +++ b/app/src/main/java/org/toop/local/AppContext.java @@ -0,0 +1,14 @@ +package org.toop.local; + +import java.util.Locale; + +public class AppContext { + private static Locale currentLocale = Locale.getDefault(); + + public static void setCurrentLocale(Locale locale) { + currentLocale = locale; + } + public static Locale getLocale() { + return currentLocale; + } +} diff --git a/app/src/main/resources/Localization.properties b/app/src/main/resources/Localization.properties new file mode 100644 index 0000000..9718bf0 --- /dev/null +++ b/app/src/main/resources/Localization.properties @@ -0,0 +1,17 @@ +# Window title +windowTitle=ISY Games Selector + +# Main Menu buttons +mainMenuSelectTicTacToe=Tic Tac Toe +mainMenuSelectReversi=Reversi +mainMenuSelectSudoku=Sudoku +mainMenuSelectBattleship=Battleship +mainMenuSelectOther=Other +mainMenuSelectCredits=Credits +mainMenuSelectOptions=Options +mainMenuSelectQuit=Quit + +# Quit Menu text and buttons +quitMenuTextSure=Are you sure? +quitMenuButtonYes=Yes +quitMenuButtonNo=No \ No newline at end of file diff --git a/app/src/main/resources/Localization_nl.properties b/app/src/main/resources/Localization_nl.properties new file mode 100644 index 0000000..4c3eb30 --- /dev/null +++ b/app/src/main/resources/Localization_nl.properties @@ -0,0 +1,17 @@ +# Window title +windowTitle=ISY Spellen Kiezer + +# Main Menu buttons +mainMenuSelectTicTacToe=Boter Kaas En Eieren +mainMenuSelectReversi=Reversi +mainMenuSelectSudoku=Sudoku +mainMenuSelectBattleship=Zeeslag +mainMenuSelectOther=Anders +mainMenuSelectCredits=Credits +mainMenuSelectOptions=Opties +mainMenuSelectQuit=Afsluiten + +# Quit Menu text and buttons +quitMenuTextSure=Weet je het zeker? +quitMenuButtonYes=Ja +quitMenuButtonNo=Nee \ No newline at end of file