added NL and EN for all strings currently in UI

This commit is contained in:
Ticho Hidding
2025-10-01 15:51:14 +02:00
parent b12c74433a
commit 9e35db4dd4
8 changed files with 88 additions and 25 deletions

View File

@@ -8,12 +8,19 @@ import javafx.application.Application;
import javafx.scene.layout.StackPane; import javafx.scene.layout.StackPane;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.stage.Stage; import javafx.stage.Stage;
import org.toop.local.AppContext;
import java.util.Locale;
import java.util.ResourceBundle;
public class App extends Application { public class App extends Application {
private static Stage stage; private static Stage stage;
private static Scene scene; private static Scene scene;
private static StackPane root; private static StackPane root;
private Locale currentLocale = AppContext.getLocale();
private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale);
public static void run(String[] args) { public static void run(String[] args) {
launch(args); launch(args);
} }
@@ -23,7 +30,7 @@ public class App extends Application {
final StackPane root = new StackPane(new MainMenu().getPane()); final StackPane root = new StackPane(new MainMenu().getPane());
final Scene scene = new Scene(root); final Scene scene = new Scene(root);
stage.setTitle("pism"); stage.setTitle(resourceBundle.getString("windowTitle"));
stage.setMinWidth(1080); stage.setMinWidth(1080);
stage.setMinHeight(720); stage.setMinHeight(720);

View File

@@ -1,6 +1,13 @@
package org.toop.app.menu; 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 final class CreditsMenu extends Menu {
public CreditsMenu() { private Locale currentLocale = AppContext.getLocale();
private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale);
public CreditsMenu() {
} }
} }

View File

@@ -4,23 +4,30 @@ import javafx.geometry.Pos;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.*; import javafx.scene.layout.*;
import org.toop.local.AppContext;
import java.util.Locale;
import java.util.ResourceBundle;
public final class MainMenu extends Menu { public final class MainMenu extends Menu {
public MainMenu() { private Locale currentLocale = AppContext.getLocale();
private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale);
public MainMenu() {
final ImageView background = new ImageView(); final ImageView background = new ImageView();
final Button tictactoe = createButton("Tic Tac Toe", () -> {}); final Button tictactoe = createButton(resourceBundle.getString("mainMenuSelectTicTacToe"), () -> {});
final Button reversi = createButton("Reversi", () -> {}); final Button reversi = createButton(resourceBundle.getString("mainMenuSelectReversi"), () -> {});
final Button sudoku = createButton("Sudoku", () -> {}); final Button sudoku = createButton(resourceBundle.getString("mainMenuSelectSudoku"), () -> {});
final Button battleship = createButton("Battleship", () -> {}); final Button battleship = createButton(resourceBundle.getString("mainMenuSelectBattleship"), () -> {});
final Button other = createButton("Other", () -> {}); final Button other = createButton(resourceBundle.getString("mainMenuSelectOther"), () -> {});
final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, background, other); final VBox gamesBox = new VBox(tictactoe, reversi, sudoku, background, other);
gamesBox.setAlignment(Pos.TOP_CENTER); gamesBox.setAlignment(Pos.TOP_CENTER);
final Button credits = createButton("Credits", () -> {}); final Button credits = createButton(resourceBundle.getString("mainMenuSelectCredits"), () -> {});
final Button options = createButton("Options", () -> {}); final Button options = createButton(resourceBundle.getString("mainMenuSelectOptions"), () -> {});
final Button quit = createButton("Quit", () -> {}); final Button quit = createButton(resourceBundle.getString("mainMenuSelectQuit"), () -> {});
final VBox creditsBox = new VBox(10, credits, options, quit); final VBox creditsBox = new VBox(10, credits, options, quit);
creditsBox.setAlignment(Pos.BOTTOM_CENTER); creditsBox.setAlignment(Pos.BOTTOM_CENTER);

View File

@@ -6,10 +6,16 @@ import javafx.animation.FadeTransition;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.layout.Pane; import javafx.scene.layout.Pane;
import javafx.util.Duration; import javafx.util.Duration;
import org.toop.local.AppContext;
import java.util.Locale;
import java.util.ResourceBundle;
public abstract class Menu { public abstract class Menu {
protected Pane pane; protected Pane pane;
public Pane getPane() { return 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) { public void fadeBackgroundImage(String imagePath, float from, float to, float milliseconds) {
final FadeTransition fade = new FadeTransition(Duration.millis(milliseconds), App.getRoot()); final FadeTransition fade = new FadeTransition(Duration.millis(milliseconds), App.getRoot());

View File

@@ -1,6 +1,13 @@
package org.toop.app.menu; 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 final class OptionsMenu extends Menu {
public OptionsMenu() { private Locale currentLocale = AppContext.getLocale();
private ResourceBundle resourceBundle = ResourceBundle.getBundle("Localization", currentLocale);
public OptionsMenu() {
} }
} }

View File

@@ -8,23 +8,29 @@ import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import org.toop.app.App; import org.toop.app.App;
import org.toop.local.AppContext;
import java.util.Locale;
import java.util.ResourceBundle;
public final class QuitMenu extends Menu { 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(); final Region background = new Region();
background.getStyleClass().add("quit-background"); background.getStyleClass().add("quit-background");
background.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE); 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"); 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.getStyleClass().add("quit-button");
yes.setOnAction(_ -> { yes.setOnAction(_ -> {
App.quit(); App.quit();
}); });
final Button no = new Button("No"); final Button no = new Button(resourceBundle.getString("quitMenuButtonNo"));
no.getStyleClass().add("quit-button"); no.getStyleClass().add("quit-button");
no.setOnAction(_ -> { no.setOnAction(_ -> {
App.pop(); App.pop();

View File

@@ -1,9 +1,17 @@
# Window titles # Window title
windowTitleServerSelector=Server Selector windowTitle=ISY Games Selector
# Buttons on the server selector screen # Main Menu buttons
buttonSelectServer=Connect to a server mainMenuSelectTicTacToe=Tic Tac Toe
buttonSelectLocal=Play a game on this computer mainMenuSelectReversi=Reversi
mainMenuSelectSudoku=Sudoku
mainMenuSelectBattleship=Battleship
mainMenuSelectOther=Other
mainMenuSelectCredits=Credits
mainMenuSelectOptions=Options
mainMenuSelectQuit=Quit
# Buttons on the UI gameboard # Quit Menu text and buttons
buttonBackToMainMenu=Go back to the main menu quitMenuTextSure=Are you sure?
quitMenuButtonYes=Yes
quitMenuButtonNo=No

View File

@@ -1,2 +1,17 @@
# Window titles # Window title
windowTitleServerSelector=Selecteer een server 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