Merge branch 'lang-fix' into 'main'

Lang fix

See merge request cse1105/2025-2026/teams/csep-team-76!78
This commit is contained in:
Oskar Rasieński 2026-01-22 01:21:43 +01:00
commit 5915b658e6
10 changed files with 116 additions and 22 deletions

View file

@ -85,6 +85,9 @@ public class FoodpalApplicationCtrl implements LocaleAware {
@FXML @FXML
private ToggleButton favouritesOnlyToggle; private ToggleButton favouritesOnlyToggle;
@FXML
private Button manageIngredientsButton;
private List<Recipe> allRecipes = new ArrayList<>(); private List<Recipe> allRecipes = new ArrayList<>();
@FXML @FXML
@ -297,6 +300,9 @@ public class FoodpalApplicationCtrl implements LocaleAware {
removeRecipeButton.setText(getLocaleString("menu.button.remove.recipe")); removeRecipeButton.setText(getLocaleString("menu.button.remove.recipe"));
cloneRecipeButton.setText(getLocaleString("menu.button.clone")); cloneRecipeButton.setText(getLocaleString("menu.button.clone"));
recipesLabel.setText(getLocaleString("menu.label.recipes")); recipesLabel.setText(getLocaleString("menu.label.recipes"));
favouritesOnlyToggle.setText(getLocaleString("menu.button.favourites"));
manageIngredientsButton.setText(getLocaleString("menu.button.ingredients"));
} }
@Override @Override
@ -565,7 +571,7 @@ public class FoodpalApplicationCtrl implements LocaleAware {
var root = pair.getValue(); var root = pair.getValue();
var stage = new javafx.stage.Stage(); var stage = new javafx.stage.Stage();
stage.setTitle("Nutrition values view"); stage.setTitle(getLocaleString("menu.ingredients.title"));
stage.initModality(javafx.stage.Modality.APPLICATION_MODAL); stage.initModality(javafx.stage.Modality.APPLICATION_MODAL);
stage.setScene(new javafx.scene.Scene(root)); stage.setScene(new javafx.scene.Scene(root));
stage.showAndWait(); stage.showAndWait();

View file

@ -1,11 +1,16 @@
package client.scenes.Ingredient; package client.scenes.Ingredient;
import client.scenes.nutrition.NutritionDetailsCtrl; import client.scenes.nutrition.NutritionDetailsCtrl;
import client.utils.LocaleAware;
import client.utils.LocaleManager;
import client.utils.server.ServerUtils; import client.utils.server.ServerUtils;
import commons.Ingredient; import commons.Ingredient;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell; import javafx.scene.control.ListCell;
import javafx.scene.control.ListView; import javafx.scene.control.ListView;
import javafx.scene.control.TextInputDialog; import javafx.scene.control.TextInputDialog;
@ -19,10 +24,18 @@ import java.util.logging.Logger;
//TODO and check for capital letter milk and MILK are seen as different //TODO and check for capital letter milk and MILK are seen as different
public class IngredientListCtrl { public class IngredientListCtrl implements LocaleAware {
private final ServerUtils server; private final ServerUtils server;
private final LocaleManager localeManager;
private final Logger logger = Logger.getLogger(IngredientListCtrl.class.getName()); private final Logger logger = Logger.getLogger(IngredientListCtrl.class.getName());
@FXML
public Label ingredientsLabel;
public Button addButton;
public Button refreshButton;
public Button deleteButton;
public Button closeButton;
@FXML @FXML
private ListView<Ingredient> ingredientListView; private ListView<Ingredient> ingredientListView;
@FXML @FXML
@ -31,12 +44,28 @@ public class IngredientListCtrl {
@Inject @Inject
public IngredientListCtrl( public IngredientListCtrl(
ServerUtils server, ServerUtils server,
LocaleManager localeManager,
NutritionDetailsCtrl nutritionDetailsCtrl NutritionDetailsCtrl nutritionDetailsCtrl
) { ) {
this.server = server; this.server = server;
this.localeManager = localeManager;
this.nutritionDetailsCtrl = nutritionDetailsCtrl; this.nutritionDetailsCtrl = nutritionDetailsCtrl;
} }
@Override
public void updateText() {
ingredientsLabel.setText(getLocaleString("menu.label.ingredients"));
addButton.setText(getLocaleString("menu.button.add"));
refreshButton.setText(getLocaleString("menu.button.refresh"));
deleteButton.setText(getLocaleString("menu.button.delete"));
closeButton.setText(getLocaleString("menu.button.close"));
}
@Override
public LocaleManager getLocaleManager() {
return this.localeManager;
}
@FXML @FXML
public void initialize() { public void initialize() {
ingredientListView.setCellFactory(list -> new ListCell<>() { ingredientListView.setCellFactory(list -> new ListCell<>() {
@ -60,6 +89,7 @@ public class IngredientListCtrl {
refresh(); refresh();
} }
@FXML @FXML
private void addIngredient() { private void addIngredient() {
TextInputDialog dialog = new TextInputDialog(); TextInputDialog dialog = new TextInputDialog();
@ -86,7 +116,6 @@ public class IngredientListCtrl {
} }
} }
@FXML @FXML
private void refresh() { private void refresh() {
try { try {

View file

@ -41,6 +41,7 @@ public class LangSelectMenuCtrl implements LocaleAware {
String lang = langSelectMenu.getSelectionModel().getSelectedItem(); String lang = langSelectMenu.getSelectionModel().getSelectedItem();
logger.info("Switching locale to " + lang); logger.info("Switching locale to " + lang);
manager.setLocale(Locale.of(lang)); manager.setLocale(Locale.of(lang));
initializeComponents();
} }
@Override @Override

View file

@ -15,16 +15,16 @@
<Insets top="12" right="12" bottom="12" left="12"/> <Insets top="12" right="12" bottom="12" left="12"/>
</padding> </padding>
<Label text="Ingredients" style="-fx-font-size: 18px; -fx-font-weight: bold;"/> <Label fx:id="ingredientsLabel" text="Ingredients" style="-fx-font-size: 18px; -fx-font-weight: bold;"/>
<ListView fx:id="ingredientListView" VBox.vgrow="ALWAYS"/> <ListView fx:id="ingredientListView" VBox.vgrow="ALWAYS"/>
<ButtonBar> <ButtonBar>
<buttons> <buttons>
<Button text="Add" onAction="#addIngredient"/> <Button fx:id="addButton" text="Add" onAction="#addIngredient"/>
<Button text="Refresh" onAction="#refresh"/> <Button fx:id="refreshButton" text="Refresh" onAction="#refresh"/>
<Button text="Delete" onAction="#deleteSelected"/> <Button fx:id="deleteButton" text="Delete" onAction="#deleteSelected"/>
<Button text="Close" onAction="#close"/> <Button fx:id="closeButton" text="Close" onAction="#close"/>
</buttons> </buttons>
</ButtonBar> </ButtonBar>
</VBox> </VBox>

View file

@ -16,6 +16,8 @@ menu.label.preparation=Preparation
menu.button.add.recipe=Add Recipe menu.button.add.recipe=Add Recipe
menu.button.add.ingredient=Add Ingredient menu.button.add.ingredient=Add Ingredient
menu.button.add.step=Add Step menu.button.add.step=Add Step
menu.button.favourites=Favourites
menu.button.ingredients=Ingredients
menu.button.remove.recipe=Remove Recipe menu.button.remove.recipe=Remove Recipe
menu.button.remove.ingredient=Remove Ingredient menu.button.remove.ingredient=Remove Ingredient
@ -25,10 +27,19 @@ menu.button.edit=Edit
menu.button.clone=Clone menu.button.clone=Clone
menu.button.print=Print recipe menu.button.print=Print recipe
menu.ingredients.title=Nutrition value
menu.button.add=Add
menu.button.refresh=Refresh
menu.button.delete=Delete
menu.button.close=Close
menu.search=Search...
menu.label.selected-langs=Languages menu.label.selected-langs=Languages
lang.en.display=English lang.en.display=English
lang.nl.display=Dutch lang.nl.display=Dutch
lang.pl.display=Polish lang.pl.display=Polish
lang.tok.display=toki pona lang.tok.display=toki pona
lang.tr.display=T\u00FCrk\u00E7e lang.tr.display=Turkish

View file

@ -16,6 +16,8 @@ menu.label.preparation=Preparation
menu.button.add.recipe=Add Recipe menu.button.add.recipe=Add Recipe
menu.button.add.ingredient=Add Ingredient menu.button.add.ingredient=Add Ingredient
menu.button.add.step=Add Step menu.button.add.step=Add Step
menu.button.favourites=Favourites
menu.button.ingredients=Ingredients
menu.button.remove.recipe=Remove Recipe menu.button.remove.recipe=Remove Recipe
menu.button.remove.ingredient=Remove Ingredient menu.button.remove.ingredient=Remove Ingredient
@ -25,12 +27,19 @@ menu.button.edit=Edit
menu.button.clone=Clone menu.button.clone=Clone
menu.button.print=Print recipe menu.button.print=Print recipe
menu.ingredients.title=Nutrition value
menu.button.add=Add
menu.button.refresh=Refresh
menu.button.delete=Delete
menu.button.close=Close
menu.search=Search... menu.search=Search...
menu.label.selected-langs=Languages menu.label.selected-langs=Languages
lang.en.display=English lang.en.display=English
lang.nl.display=Nederlands lang.nl.display=Dutch
lang.pl.display=Polski lang.pl.display=Polish
lang.tok.display=toki pona lang.tok.display=toki pona
lang.tr.display=T\u00FCrk\u00E7e lang.tr.display=Turkish

View file

@ -10,26 +10,35 @@ button.ok=Ok
button.cancel=Annuleren button.cancel=Annuleren
menu.label.recipes=Recepten menu.label.recipes=Recepten
menu.label.ingredients=Ingrediënten menu.label.ingredients=Ingrediënten
menu.label.preparation=Bereiding menu.label.preparation=Bereiding
menu.button.add.recipe=Recept toevoegen menu.button.add.recipe=Recept toevoegen
menu.button.add.ingredient=Ingrediënt toevoegen menu.button.add.ingredient=Ingrediënt toevoegen
menu.button.add.step=Stap toevoegen menu.button.add.step=Stap toevoegen
menu.button.favourites=Favorieten
menu.button.ingredients=Ingrediënten
menu.button.remove.recipe=Recept verwijderen menu.button.remove.recipe=Recept verwijderen
menu.button.remove.ingredient=Ingrediënt verwijderen menu.button.remove.ingredient=Ingrediënt verwijderen
menu.button.remove.step=Stap verwijderen menu.button.remove.step=Stap verwijderen
menu.button.edit=Bewerken menu.button.edit=Bewerken
menu.button.clone=Dupliceren menu.button.clone=Dupliceren
menu.button.print=Recept afdrukken menu.button.print=Recept afdrukken
menu.ingredients.title=Voedingswaarden
menu.button.add=Toevoegen
menu.button.refresh=Verversen
menu.button.delete=Verwijderen
menu.button.close=Sluiten
menu.label.selected-langs=Talen menu.label.selected-langs=Talen
menu.search=Zoeken... menu.search=Zoeken...
lang.en.display=English lang.en.display=Engels
lang.nl.display=Nederlands lang.nl.display=Nederlands
lang.pl.display=Polski lang.pl.display=Pools
lang.tok.display=toki pona lang.tok.display=toki pona
lang.tr.display=T\u00FCrk\u00E7e lang.tr.display=Turks

View file

@ -16,6 +16,8 @@ menu.label.preparation=Przygotowanie
menu.button.add.recipe=Dodaj przepis menu.button.add.recipe=Dodaj przepis
menu.button.add.ingredient=Dodaj składnik menu.button.add.ingredient=Dodaj składnik
menu.button.add.step=Dodaj instrukcję menu.button.add.step=Dodaj instrukcję
menu.button.favourites=Ulubione
menu.button.ingredients=Składniki
menu.button.remove.recipe=Usuń przepis menu.button.remove.recipe=Usuń przepis
menu.button.remove.ingredient=Usuń składnik menu.button.remove.ingredient=Usuń składnik
@ -25,12 +27,19 @@ menu.button.edit=Edytuj
menu.button.clone=Duplikuj menu.button.clone=Duplikuj
menu.button.print=Drukuj przepis menu.button.print=Drukuj przepis
menu.ingredients.title=wartości odżywcze
menu.button.add=Dodaj
menu.button.refresh=Odśwież
menu.button.delete=Usuń
menu.button.close=Zamknij
menu.search=Szukaj... menu.search=Szukaj...
menu.label.selected-langs=Języki menu.label.selected-langs=Języki
lang.en.display=English lang.en.display=Inglisz
lang.nl.display=Nederlands lang.nl.display=Holenderski
lang.pl.display=Polski lang.pl.display=Polski
lang.tok.display=toki pona lang.tok.display=toki pona
lang.tr.display=T\u00FCrk\u00E7e lang.tr.display=Turecki

View file

@ -16,6 +16,8 @@ menu.label.preparation=nasin pi pali moku ni
menu.button.add.recipe=o pali e lipu moku sin menu.button.add.recipe=o pali e lipu moku sin
menu.button.add.ingredient=o pali e kipisi moku sin menu.button.add.ingredient=o pali e kipisi moku sin
menu.button.add.step=o pali e nasin pi pali moku ni menu.button.add.step=o pali e nasin pi pali moku ni
menu.button.favourites=ijo pi pona mute tawa sina
menu.button.ingredients=kipisi moku mute
menu.button.remove.recipe=o weka e lipu moku ni menu.button.remove.recipe=o weka e lipu moku ni
menu.button.remove.ingredient=o weka e kipisi moku ni menu.button.remove.ingredient=o weka e kipisi moku ni
@ -25,6 +27,13 @@ menu.button.edit=o pali
menu.button.clone=o sama menu.button.clone=o sama
menu.button.print=o tawa lon lipu menu.button.print=o tawa lon lipu
menu.ingredients.title=nanpa moku
menu.button.add=o pali
menu.button.refresh=o pali sin
menu.button.delete=o weka
menu.button.close=o pini
menu.search=o alasa menu.search=o alasa
menu.label.selected-langs=toki wile menu.label.selected-langs=toki wile

View file

@ -16,6 +16,8 @@ menu.label.preparation=Haz\u0131rl\u0131k
menu.button.add.recipe=Tarif Ekle menu.button.add.recipe=Tarif Ekle
menu.button.add.ingredient=Malzeme Ekle menu.button.add.ingredient=Malzeme Ekle
menu.button.add.step=Ad\u0131m Ekle menu.button.add.step=Ad\u0131m Ekle
menu.button.favourites=Favoriler
menu.button.ingredients=Malzemeler
menu.button.remove.recipe=Tarifi Sil menu.button.remove.recipe=Tarifi Sil
menu.button.remove.ingredient=Malzemeyi Sil menu.button.remove.ingredient=Malzemeyi Sil
@ -25,6 +27,15 @@ menu.button.edit=D\u00FCzenle
menu.button.clone=Kopyala menu.button.clone=Kopyala
menu.button.print=Tarifi Yazd\u0131r menu.button.print=Tarifi Yazd\u0131r
menu.ingredients.title=besin değerleri
menu.button.add=Ekle
menu.button.refresh=yenilemek
menu.button.delete=sil
menu.button.close=kapat
menu.search=Arama...
menu.label.selected-langs=Diller menu.label.selected-langs=Diller
lang.en.display=\u0130ngilizce lang.en.display=\u0130ngilizce