Compare commits

..

No commits in common. "a32f4cd7814a4e669da60462dfa14120710c52eb" and "b4c5652070ffab05c1afde4583352af02124202a" have entirely different histories.

29 changed files with 247 additions and 546 deletions

View file

@ -56,7 +56,6 @@ public class FoodpalApplicationCtrl implements LocaleAware {
private final LocaleManager localeManager; private final LocaleManager localeManager;
private final WebSocketDataService<Long, Recipe> dataService; private final WebSocketDataService<Long, Recipe> dataService;
private final Logger logger = Logger.getLogger(FoodpalApplicationCtrl.class.getName()); private final Logger logger = Logger.getLogger(FoodpalApplicationCtrl.class.getName());
public Button shoppingListButton;
@FXML @FXML
private RecipeDetailCtrl recipeDetailController; private RecipeDetailCtrl recipeDetailController;
@ -305,13 +304,13 @@ public class FoodpalApplicationCtrl implements LocaleAware {
@Override @Override
public void updateText() { public void updateText() {
recipesLabel.setText(getLocaleString("app.word.recipe.n"));
addRecipeButton.setText(getLocaleString("menu.button.add.recipe")); addRecipeButton.setText(getLocaleString("menu.button.add.recipe"));
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"));
favouritesOnlyToggle.setText(getLocaleString("menu.button.favourites")); favouritesOnlyToggle.setText(getLocaleString("menu.button.favourites"));
shoppingListButton.setText(getLocaleString("app.list")); manageIngredientsButton.setText(getLocaleString("menu.button.ingredients"));
manageIngredientsButton.setText(getLocaleString("app.word.ingredient.n"));
} }
@Override @Override
@ -518,7 +517,7 @@ public class FoodpalApplicationCtrl implements LocaleAware {
public void openShoppingListWindow() throws IOException { public void openShoppingListWindow() throws IOException {
var root = UI.getFXML().load(ShoppingListCtrl.class, "client", "scenes", "shopping", "ShoppingList.fxml"); var root = UI.getFXML().load(ShoppingListCtrl.class, "client", "scenes", "shopping", "ShoppingList.fxml");
Stage stage = new Stage(); Stage stage = new Stage();
stage.setTitle(this.getLocaleString("app.list")); stage.setTitle(this.getLocaleString("menu.shopping.title"));
stage.setScene(new Scene(root.getValue())); stage.setScene(new Scene(root.getValue()));
stage.show(); stage.show();
} }

View file

@ -58,7 +58,7 @@ public class IngredientListCtrl implements LocaleAware {
ingredientsLabel.setText(getLocaleString("menu.label.ingredients")); ingredientsLabel.setText(getLocaleString("menu.label.ingredients"));
addButton.setText(getLocaleString("menu.button.add")); addButton.setText(getLocaleString("menu.button.add"));
refreshButton.setText(getLocaleString("menu.button.refresh")); refreshButton.setText(getLocaleString("menu.button.refresh"));
deleteButton.setText(getLocaleString("verb.delete")); deleteButton.setText(getLocaleString("menu.button.delete"));
closeButton.setText(getLocaleString("menu.button.close")); closeButton.setText(getLocaleString("menu.button.close"));
} }

View file

@ -21,7 +21,6 @@ import javafx.scene.layout.VBox;
import javafx.util.converter.NumberStringConverter; import javafx.util.converter.NumberStringConverter;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.Callable;
import java.util.logging.Logger; import java.util.logging.Logger;
public class NutritionDetailsCtrl implements LocaleAware { public class NutritionDetailsCtrl implements LocaleAware {
@ -58,22 +57,6 @@ public class NutritionDetailsCtrl implements LocaleAware {
this.server = server; this.server = server;
} }
Callable<String> getEstimatedKcalLabel() {
IngredientViewModel vm = this.ingredient.get();
return () -> String.format(getLocaleString("app.kcal") + " %.1f kcal/100g", vm.getKcal());
}
Callable<String> getUsageLabel() {
IngredientViewModel vm = this.ingredient.get();
return () -> {
Long id = this.ingredient.get().toIngredient().getId();
logger.info("Fetching usage for ingredient ID: " + id);
return !id.equals(0L) ? String.format(
getLocaleString("app.label.usage.part") + " %d " + getLocaleString("app.word.recipe.n"),
server.getIngredientUsage(id)) : "";
};
}
@Override @Override
public void initializeComponents() { public void initializeComponents() {
Platform.runLater(() -> { Platform.runLater(() -> {
@ -82,8 +65,9 @@ public class NutritionDetailsCtrl implements LocaleAware {
this.fatInputElement.textProperty().bindBidirectional(vm.fatProperty(), new NumberStringConverter()); this.fatInputElement.textProperty().bindBidirectional(vm.fatProperty(), new NumberStringConverter());
this.proteinInputElement.textProperty().bindBidirectional(vm.proteinProperty(), new NumberStringConverter()); this.proteinInputElement.textProperty().bindBidirectional(vm.proteinProperty(), new NumberStringConverter());
this.carbInputElement.textProperty().bindBidirectional(vm.carbsProperty(), new NumberStringConverter()); this.carbInputElement.textProperty().bindBidirectional(vm.carbsProperty(), new NumberStringConverter());
this.estimatedKcalLabel.textProperty().bind(Bindings.createStringBinding(this.getEstimatedKcalLabel(), vm.kcalProperty())); this.estimatedKcalLabel.textProperty().bind(Bindings.createStringBinding(
this.usageLabel.textProperty().bind(Bindings.createStringBinding(this.getUsageLabel(), this.ingredient.get().idProperty())); () -> String.format("Estimated energy value: %.1f kcal/100g", vm.getKcal()), vm.kcalProperty()
));
}); });
this.nutritionValueContainer.addEventHandler(KeyEvent.KEY_RELEASED, event -> { this.nutritionValueContainer.addEventHandler(KeyEvent.KEY_RELEASED, event -> {
if (event.getCode() != KeyCode.ENTER) { if (event.getCode() != KeyCode.ENTER) {
@ -107,15 +91,7 @@ public class NutritionDetailsCtrl implements LocaleAware {
@Override @Override
public void updateText() { public void updateText() {
try {
this.estimatedKcalLabel.textProperty().setValue(this.getEstimatedKcalLabel().call());
this.usageLabel.textProperty().setValue(this.getUsageLabel().call());
this.fatInputLabel.setText(this.getLocaleString("menu.nutrition.fat"));
this.proteinInputLabel.setText(this.getLocaleString("menu.nutrition.protein"));
this.carbInputLabel.setText(this.getLocaleString("menu.nutrition.carbs"));
} catch (Exception e) {
throw new RuntimeException(e);
}
} }
public void setVisible(boolean isVisible) { public void setVisible(boolean isVisible) {
@ -148,7 +124,6 @@ public class NutritionDetailsCtrl implements LocaleAware {
public LocaleManager getLocaleManager() { public LocaleManager getLocaleManager() {
return manager; return manager;
} }
public void handleNutritionSaveClick(ActionEvent actionEvent) throws IOException, InterruptedException { public void handleNutritionSaveClick(ActionEvent actionEvent) throws IOException, InterruptedException {
Ingredient newIngredient = updateIngredient(); Ingredient newIngredient = updateIngredient();
this.ingredient.get().updateFrom(server.updateIngredient(newIngredient)); this.ingredient.get().updateFrom(server.updateIngredient(newIngredient));

View file

@ -1,14 +1,10 @@
package client.scenes.nutrition; package client.scenes.nutrition;
import com.google.inject.Inject; import com.google.inject.Inject;
import javafx.fxml.FXML;
public class NutritionViewCtrl { public class NutritionViewCtrl {
@Inject @Inject
public NutritionViewCtrl( public NutritionViewCtrl(
) { ) {
} }
@FXML
NutritionDetailsCtrl nutritionDetailsController;
} }

View file

@ -1,7 +1,5 @@
package client.scenes.recipe; package client.scenes.recipe;
import client.utils.LocaleAware;
import client.utils.LocaleManager;
import client.utils.server.ServerUtils; import client.utils.server.ServerUtils;
import com.google.inject.Inject; import com.google.inject.Inject;
import commons.FormalIngredient; import commons.FormalIngredient;
@ -34,18 +32,13 @@ import java.util.logging.Logger;
* *
* @see IngredientListCtrl * @see IngredientListCtrl
*/ */
public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient> implements LocaleAware { public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient> {
private final ServerUtils server; private final ServerUtils server;
private final LocaleManager locale;
private final Logger logger = Logger.getLogger(IngredientListCell.class.getName()); private final Logger logger = Logger.getLogger(IngredientListCell.class.getName());
private final SimpleObjectProperty<Ingredient> selectedIngredient = new SimpleObjectProperty<>(); private final SimpleObjectProperty<Ingredient> selectedIngredient = new SimpleObjectProperty<>();
@Inject @Inject
public IngredientListCell( public IngredientListCell(ServerUtils server) {
ServerUtils server,
LocaleManager locale
) {
this.server = server; this.server = server;
this.locale = locale;
} }
@Override @Override
public void commitEdit(RecipeIngredient newValue) { public void commitEdit(RecipeIngredient newValue) {
@ -108,11 +101,11 @@ public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient
Consumer<T> onSelect, Consumer<T> onSelect,
HBox container) { HBox container) {
MenuItem newIngredientItem = new MenuItem(); MenuItem newIngredientItem = new MenuItem();
newIngredientItem.setText(getLocaleString("app.prompt.something-new")); newIngredientItem.setText("Something new...");
// on new ingredient click // on new ingredient click
newIngredientItem.setOnAction(_ -> { newIngredientItem.setOnAction(_ -> {
menu.setText(getLocaleString("app.prompt.new-ingredient")); // otherwise the text label on menu refuses to update menu.setText("New Ingredient"); // otherwise the text label on menu refuses to update
selectedIngredient.setValue(null); // indicate null to signal a new ingredient creation selectedIngredient.setValue(null); // indicate null to signal a new ingredient creation
logger.info("Making new ingredient"); logger.info("Making new ingredient");
// TODO printError() integration // TODO printError() integration
@ -135,7 +128,7 @@ public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient
} }
} }
private HBox makeInputLine(RecipeIngredient ingredient, TextField amountInput, ChoiceBox<Unit> unitChoice) { private HBox makeInputLine(RecipeIngredient ingredient, TextField amountInput, ChoiceBox<Unit> unitChoice) {
MenuButton ingredientSelect = new MenuButton(getLocaleString("app.prompt.select-ingredient")); MenuButton ingredientSelect = new MenuButton("Select your ingredient");
HBox container = new HBox(amountInput, unitChoice, ingredientSelect); HBox container = new HBox(amountInput, unitChoice, ingredientSelect);
try { try {
makeMenuItems(ingredientSelect, server.getIngredients(), Ingredient::getName, i -> { makeMenuItems(ingredientSelect, server.getIngredients(), Ingredient::getName, i -> {
@ -170,7 +163,7 @@ public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient
} }
private @NonNull TextField makeNewIngredientNameField(Consumer<Ingredient> onSubmit) { private @NonNull TextField makeNewIngredientNameField(Consumer<Ingredient> onSubmit) {
TextField newIngredientNameInput = new TextField(getLocaleString("app.prompt.new-ingredient")); TextField newIngredientNameInput = new TextField("New ingredient...");
newIngredientNameInput.setOnKeyReleased(e -> { newIngredientNameInput.setOnKeyReleased(e -> {
if (e.getCode() != KeyCode.ENTER) { if (e.getCode() != KeyCode.ENTER) {
return; return;
@ -190,14 +183,4 @@ public class IngredientListCell extends OrderedEditableListCell<RecipeIngredient
}); });
return newIngredientNameInput; return newIngredientNameInput;
} }
@Override
public void updateText() {
}
@Override
public LocaleManager getLocaleManager() {
return locale;
}
} }

View file

@ -173,7 +173,7 @@ public class IngredientListCtrl implements LocaleAware {
this.ingredientListView.setEditable(true); this.ingredientListView.setEditable(true);
this.ingredientListView.setCellFactory( this.ingredientListView.setCellFactory(
list -> { list -> {
return new IngredientListCell(this.server, this.localeManager); return new IngredientListCell(this.server);
}); });
this.ingredientListView.setOnEditCommit(this::handleIngredientEdit); this.ingredientListView.setOnEditCommit(this::handleIngredientEdit);

View file

@ -60,9 +60,6 @@ public class RecipeDetailCtrl implements LocaleAware {
public Label inferredKcalLabel; public Label inferredKcalLabel;
public Spinner<Integer> servingsSpinner; public Spinner<Integer> servingsSpinner;
public Label inferredServeSizeLabel; public Label inferredServeSizeLabel;
public Label scaleLabel;
public Label servingLabel;
public Button addToListButton;
@FXML @FXML
private IngredientListCtrl ingredientListController; private IngredientListCtrl ingredientListController;
@ -181,13 +178,13 @@ public class RecipeDetailCtrl implements LocaleAware {
this.recipeView = new ScalableRecipeView(recipe, scale); this.recipeView = new ScalableRecipeView(recipe, scale);
// TODO i18n // TODO i18n
inferredKcalLabel.textProperty().bind(Bindings.createStringBinding(() -> inferredKcalLabel.textProperty().bind(Bindings.createStringBinding(() ->
String.format(getLocaleString("app.label.inferred-kcal") + " %.1f kcal/100g", String.format("Inferred %.1f kcal/100g for this recipe",
Double.isNaN(this.recipeView.scaledKcalProperty().get()) ? Double.isNaN(this.recipeView.scaledKcalProperty().get()) ?
0.0 : this.recipeView.scaledKcalProperty().get()) 0.0 : this.recipeView.scaledKcalProperty().get())
, this.recipeView.scaledKcalProperty())); , this.recipeView.scaledKcalProperty()));
recipeView.servingsProperty().set(servingsSpinner.getValue()); recipeView.servingsProperty().set(servingsSpinner.getValue());
inferredServeSizeLabel.textProperty().bind(Bindings.createStringBinding( inferredServeSizeLabel.textProperty().bind(Bindings.createStringBinding(
() -> String.format(getLocaleString("app.label.inferred-size") + " %.1f g", recipeView.servingSizeProperty().get()), () -> String.format("Inferred size per serving: %.1f g", recipeView.servingSizeProperty().get()),
recipeView.servingSizeProperty())); recipeView.servingSizeProperty()));
// expose the scaled view to list controllers // expose the scaled view to list controllers
this.ingredientListController.refetchFromRecipe(this.recipeView.getScaled()); this.ingredientListController.refetchFromRecipe(this.recipeView.getScaled());
@ -408,20 +405,6 @@ public class RecipeDetailCtrl implements LocaleAware {
editRecipeTitleButton.setText(getLocaleString("menu.button.edit")); editRecipeTitleButton.setText(getLocaleString("menu.button.edit"));
removeRecipeButton.setText(getLocaleString("menu.button.remove.recipe")); removeRecipeButton.setText(getLocaleString("menu.button.remove.recipe"));
printRecipeButton.setText(getLocaleString("menu.button.print")); printRecipeButton.setText(getLocaleString("menu.button.print"));
addToListButton.setText(getLocaleString("app.word.shop"));
scaleLabel.setText(getLocaleString("app.word.scale"));
servingLabel.setText(getLocaleString("app.word.serving.n"));
if (this.recipeView != null && this.recipeView.getRecipe() != null) {
inferredKcalLabel.textProperty().bind(Bindings.createStringBinding(() ->
String.format(getLocaleString("app.label.inferred-kcal") + " %.1f kcal/100g",
Double.isNaN(this.recipeView.scaledKcalProperty().get()) ?
0.0 : this.recipeView.scaledKcalProperty().get())
, this.recipeView.scaledKcalProperty()));
inferredServeSizeLabel.textProperty().bind(Bindings.createStringBinding(
() -> String.format(getLocaleString("app.label.inferred-size") + " %.1f g", recipeView.servingSizeProperty().get()),
recipeView.servingSizeProperty()));
}
} }
@Override @Override

View file

@ -14,8 +14,6 @@ import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.control.TextInputDialog; import javafx.scene.control.TextInputDialog;
@ -33,11 +31,6 @@ public class AddOverviewCtrl implements LocaleAware {
private final ShoppingListService shoppingListService; private final ShoppingListService shoppingListService;
private final LocaleManager localeManager; private final LocaleManager localeManager;
public Button addButton;
public Button removeSelButton;
public Button cancelButton;
public Button addConfirmButton;
public Label addOverviewTitle;
private String sourceRecipeName; private String sourceRecipeName;
@ -95,13 +88,6 @@ public class AddOverviewCtrl implements LocaleAware {
@Override @Override
public void updateText() { public void updateText() {
amountColumn.setText(getLocaleString("app.word.amount"));
unitColumn.setText(getLocaleString("app.word.unit"));
nameColumn.setText(getLocaleString("app.word.ingredient"));
addButton.setText(getLocaleString("verb.add"));
cancelButton.setText(getLocaleString("verb.cancel"));
addConfirmButton.setText(getLocaleString("verb.addconfirm"));
removeSelButton.setText(getLocaleString("verb.removesel"));
} }
@Override @Override

View file

@ -13,9 +13,7 @@ import javafx.scene.Node;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ListView; import javafx.scene.control.ListView;
import javafx.scene.control.TitledPane;
import javafx.stage.FileChooser; import javafx.stage.FileChooser;
import javafx.stage.Modality; import javafx.stage.Modality;
import javafx.stage.Stage; import javafx.stage.Stage;
@ -25,11 +23,6 @@ import java.io.File;
import java.util.Optional; import java.util.Optional;
public class ShoppingListCtrl implements LocaleAware { public class ShoppingListCtrl implements LocaleAware {
public Button addItemButton;
public Button deleteItemButton;
public Button printButton;
public Button resetButton;
public TitledPane shoppingListContainer;
ShoppingListService shopping; ShoppingListService shopping;
LocaleManager localeManager; LocaleManager localeManager;
@ -47,11 +40,7 @@ public class ShoppingListCtrl implements LocaleAware {
@Override @Override
public void updateText() { public void updateText() {
shoppingListContainer.setText(getLocaleString("app.list"));
addItemButton.setText(getLocaleString("verb.add"));
deleteItemButton.setText(getLocaleString("verb.delete"));
resetButton.setText(getLocaleString("verb.reset"));
printButton.setText(getLocaleString("verb.print"));
} }
@Override @Override

View file

@ -10,7 +10,6 @@ import commons.Unit;
import javafx.beans.property.ObjectProperty; import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.scene.control.Button;
import javafx.scene.control.MenuButton; import javafx.scene.control.MenuButton;
import javafx.scene.control.MenuItem; import javafx.scene.control.MenuItem;
import javafx.scene.control.Spinner; import javafx.scene.control.Spinner;
@ -28,8 +27,6 @@ public class ShoppingListNewItemPromptCtrl implements LocaleAware {
private final ObjectProperty<Unit> selectedUnit = new SimpleObjectProperty<>(); private final ObjectProperty<Unit> selectedUnit = new SimpleObjectProperty<>();
private final ServerUtils server; private final ServerUtils server;
private final LocaleManager localeManager; private final LocaleManager localeManager;
public Button confirmButton;
public Button cancelButton;
private Consumer<FormalIngredient> newValueConsumer; private Consumer<FormalIngredient> newValueConsumer;
public MenuButton unitSelect; public MenuButton unitSelect;
public Spinner<Double> amountSelect; public Spinner<Double> amountSelect;
@ -75,10 +72,7 @@ public class ShoppingListNewItemPromptCtrl implements LocaleAware {
} }
@Override @Override
public void updateText() { public void updateText() {
unitSelect.setText(getLocaleString("app.word.unit"));
ingredientSelection.setText(getLocaleString("app.word.ingredient"));
confirmButton.setText(getLocaleString("verb.confirm"));
cancelButton.setText(getLocaleString("verb.cancel"));
} }
@Override @Override
public void initializeComponents() { public void initializeComponents() {

View file

@ -5,7 +5,7 @@ import java.util.List;
public class Config { public class Config {
private String language = "en"; private String language = "en";
public static String[] languages = {"en", "nl", "pl", "tr", "tok", "zhc", "zht"}; public static String[] languages = {"en", "nl", "pl", "tok", "zhc", "zht"};
private List<String> recipeLanguages = new ArrayList<>(); private List<String> recipeLanguages = new ArrayList<>();
private String serverUrl = "http://localhost:8080"; private String serverUrl = "http://localhost:8080";

View file

@ -52,7 +52,7 @@
</padding> </padding>
<fx:include source="LangSelect.fxml" /> <fx:include source="LangSelect.fxml" />
<Button fx:id="refreshButton" onAction="#refresh" prefHeight="25.0" prefWidth="34.0" text="⟳" GridPane.columnIndex="3" GridPane.rowIndex="2" /> <Button fx:id="refreshButton" onAction="#refresh" prefHeight="25.0" prefWidth="34.0" text="⟳" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<Label fx:id="recipesLabel" text="%app.word.recipe.n"> <Label fx:id="recipesLabel" text="Recipes">
<font> <font>
<Font name="System Bold" size="15.0" /> <Font name="System Bold" size="15.0" />
</font> </font>
@ -64,18 +64,18 @@
<ListView fx:id="recipeList" /> <ListView fx:id="recipeList" />
<HBox spacing="10"> <HBox spacing="10">
<Button fx:id="addRecipeButton" onAction="#addRecipe" text="%menu.button.add.recipe" /> <Button fx:id="addRecipeButton" onAction="#addRecipe" text="Add Recipe" />
<Button fx:id="removeRecipeButton" onAction="#removeSelectedRecipe" text="%menu.button.remove.recipe" /> <Button fx:id="removeRecipeButton" onAction="#removeSelectedRecipe" text="Remove Recipe" />
<Button fx:id="cloneRecipeButton" mnemonicParsing="false" onAction="#cloneRecipe" text="%menu.button.clone" /> <Button fx:id="cloneRecipeButton" mnemonicParsing="false" onAction="#cloneRecipe" text="Clone" />
<ToggleButton fx:id="favouritesOnlyToggle" text="%menu.button.favourites" onAction="#toggleFavouritesView" /> <ToggleButton fx:id="favouritesOnlyToggle" text="Favourites" onAction="#toggleFavouritesView" />
</HBox> </HBox>
<Button fx:id="shoppingListButton" <Button fx:id="shoppingListButton"
onAction="#openShoppingListWindow" onAction="#openShoppingListWindow"
text="%app.list" /> text="Shopping List" />
<Button fx:id="manageIngredientsButton" <Button fx:id="manageIngredientsButton"
onAction="#openIngredientsPopup" onAction="#openIngredientsPopup"
text="%app.word.ingredient.n" /> text="Ingredients..." />
</VBox> </VBox>
</left> </left>
@ -95,7 +95,7 @@
<Insets bottom="16" left="16" right="16" top="8" /> <Insets bottom="16" left="16" right="16" top="8" />
</padding> </padding>
<Label fx:id="updatedBadge" <Label fx:id="updatedBadge"
text="%app.updated" text="Updated just now"
visible="false" visible="false"
managed="false" managed="false"
styleClass="updated-badge"/> styleClass="updated-badge"/>

View file

@ -6,6 +6,6 @@
<HBox xmlns="http://javafx.com/javafx/25" xmlns:fx="http://javafx.com/fxml/1" fx:controller="client.scenes.SearchBarCtrl"> <HBox xmlns="http://javafx.com/javafx/25" xmlns:fx="http://javafx.com/fxml/1" fx:controller="client.scenes.SearchBarCtrl">
<children> <children>
<TextField fx:id="searchField" promptText="%menu.search" /> <TextField fx:id="searchField" promptText="Search..." />
</children> </children>
</HBox> </HBox>

View file

@ -21,7 +21,7 @@
<Label GridPane.columnIndex="0" GridPane.rowIndex="2" fx:id="carbInputLabel">Carbohydrates: </Label> <Label GridPane.columnIndex="0" GridPane.rowIndex="2" fx:id="carbInputLabel">Carbohydrates: </Label>
<TextField GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="carbInputElement" /> <TextField GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="carbInputElement" />
</GridPane> </GridPane>
<Button onAction="#handleNutritionSaveClick" text="%verb.save" /> <Button onAction="#handleNutritionSaveClick">Save values</Button>
<Label fx:id="estimatedKcalLabel" /> <Label fx:id="estimatedKcalLabel">Estimated: 0kcal</Label>
<Label fx:id="usageLabel" /> <Label fx:id="usageLabel">Not used in any recipes</Label>
</VBox> </VBox>

View file

@ -12,6 +12,6 @@
prefHeight="400.0" prefWidth="600.0"> prefHeight="400.0" prefWidth="600.0">
<SplitPane> <SplitPane>
<fx:include source="IngredientList.fxml" /> <fx:include source="IngredientList.fxml" />
<fx:include fx:id="nutritionDetails" source="NutritionDetails.fxml" /> <fx:include source="NutritionDetails.fxml" />
</SplitPane> </SplitPane>
</AnchorPane> </AnchorPane>

View file

@ -21,18 +21,18 @@
<HBox spacing="10"> <HBox spacing="10">
<HBox fx:id="editableTitleArea"> <HBox fx:id="editableTitleArea">
</HBox> </HBox>
<Button fx:id="editRecipeTitleButton" onAction="#editRecipeTitle" text="%menu.button.edit" /> <Button fx:id="editRecipeTitleButton" onAction="#editRecipeTitle" text="Edit" />
<Button fx:id="removeRecipeButton" mnemonicParsing="false" onAction="#removeSelectedRecipe" text="%menu.button.remove.recipe" /> <Button fx:id="removeRecipeButton" mnemonicParsing="false" onAction="#removeSelectedRecipe" text="Remove Recipe" />
<Button fx:id="printRecipeButton" mnemonicParsing="false" onAction="#printRecipe" text="%menu.button.print" /> <Button fx:id="printRecipeButton" mnemonicParsing="false" onAction="#printRecipe" text="Print Recipe" />
<Button fx:id="favouriteButton" onAction="#toggleFavourite" text="☆" /> <Button fx:id="favouriteButton" onAction="#toggleFavourite" text="☆" />
<Button fx:id="addToListButton" onAction="#handleAddAllToShoppingList" text="%app.word.shop" /> <Button onAction="#handleAddAllToShoppingList">Shop</Button>
</HBox> </HBox>
<HBox> <HBox>
<ComboBox fx:id="langSelector" onAction="#changeLanguage" /> <ComboBox fx:id="langSelector" onAction="#changeLanguage" />
<Label fx:id="scaleLabel" text="%app.word.scale" /> <Label>Scale: </Label>
<Spinner fx:id="scaleSpinner" /> <Spinner fx:id="scaleSpinner" />
<Label fx:id="servingLabel" text="%app.word.serving.n" /> <Label>Servings: </Label>
<Spinner fx:id="servingsSpinner" /> <Spinner fx:id="servingsSpinner" />
</HBox> </HBox>

View file

@ -16,7 +16,7 @@
<children> <children>
<HBox alignment="CENTER_LEFT" spacing="20.0"> <HBox alignment="CENTER_LEFT" spacing="20.0">
<children> <children>
<Label fx:id="ingredientsLabel" text="%app.word.ingredient.n"> <Label fx:id="ingredientsLabel" text="Ingredients">
<padding> <padding>
<Insets bottom="5.0" top="5.0" /> <Insets bottom="5.0" top="5.0" />
</padding> </padding>
@ -26,8 +26,8 @@
</Label> </Label>
<HBox alignment="CENTER" spacing="10.0"> <HBox alignment="CENTER" spacing="10.0">
<children> <children>
<Button fx:id="addIngredientButton" mnemonicParsing="false" text="%verb.add" /> <Button fx:id="addIngredientButton" mnemonicParsing="false" text="Add" />
<Button fx:id="deleteIngredientButton" mnemonicParsing="false" text="%verb.delete" /> <Button fx:id="deleteIngredientButton" mnemonicParsing="false" text="Delete" />
</children> </children>
</HBox> </HBox>
</children> </children>

View file

@ -15,7 +15,7 @@
<children> <children>
<HBox alignment="CENTER_LEFT" spacing="20.0"> <HBox alignment="CENTER_LEFT" spacing="20.0">
<children> <children>
<Label fx:id="stepsLabel" text="%app.word.step.n"> <Label fx:id="stepsLabel" text="Steps">
<padding> <padding>
<Insets bottom="5.0" top="5.0" /> <Insets bottom="5.0" top="5.0" />
</padding> </padding>
@ -25,8 +25,8 @@
</Label> </Label>
<HBox alignment="CENTER" spacing="10.0"> <HBox alignment="CENTER" spacing="10.0">
<children> <children>
<Button fx:id="addStepButton" mnemonicParsing="false" text="%verb.add" /> <Button fx:id="addStepButton" mnemonicParsing="false" text="Add" />
<Button fx:id="deleteStepButton" mnemonicParsing="false" text="%verb.delete" /> <Button fx:id="deleteStepButton" mnemonicParsing="false" text="Delete" />
</children> </children>
</HBox> </HBox>
</children> </children>

View file

@ -11,22 +11,22 @@
<VBox spacing="10.0" AnchorPane.topAnchor="10.0" AnchorPane.leftAnchor="10.0" <VBox spacing="10.0" AnchorPane.topAnchor="10.0" AnchorPane.leftAnchor="10.0"
AnchorPane.rightAnchor="10.0" AnchorPane.bottomAnchor="10.0"> AnchorPane.rightAnchor="10.0" AnchorPane.bottomAnchor="10.0">
<Label fx:id="addOverviewTitle" text="%app.title.addoverview" /> <Label text="Review ingredients before adding" />
<TableView fx:id="overviewTable" editable="true" VBox.vgrow="ALWAYS"> <TableView fx:id="overviewTable" editable="true" VBox.vgrow="ALWAYS">
<columns> <columns>
<TableColumn fx:id="nameColumn" text="%app.word.ingredient" prefWidth="360.0"/> <TableColumn fx:id="nameColumn" text="Ingredient" prefWidth="360.0"/>
<TableColumn fx:id="amountColumn" text="%app.word.amount" prefWidth="140.0"/> <TableColumn fx:id="amountColumn" text="Amount" prefWidth="140.0"/>
<TableColumn fx:id="unitColumn" text="%app.word.unit" prefWidth="140.0"/> <TableColumn fx:id="unitColumn" text="Unit" prefWidth="140.0"/>
</columns> </columns>
</TableView> </TableView>
<HBox spacing="10.0"> <HBox spacing="10.0">
<Button fx:id="addButton" text="%verb.add" onAction="#handleAddRow"/> <Button text="Add item" onAction="#handleAddRow"/>
<Button fx:id="removeSelButton" text="%verb.removesel" onAction="#handleRemoveSelected"/> <Button text="Remove selected" onAction="#handleRemoveSelected"/>
<Pane HBox.hgrow="ALWAYS"/> <Pane HBox.hgrow="ALWAYS"/>
<Button fx:id="cancelButton" text="%verb.cancel" onAction="#handleCancel"/> <Button text="Cancel" onAction="#handleCancel"/>
<Button fx:id="addConfirmButton" text="%verb.addconfirm" onAction="#handleConfirm"/> <Button text="Confirm &amp; Add" onAction="#handleConfirm"/>
</HBox> </HBox>
</VBox> </VBox>
</AnchorPane> </AnchorPane>

View file

@ -8,7 +8,7 @@
<?import javafx.scene.control.Button?> <?import javafx.scene.control.Button?>
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<TitledPane animated="false" collapsible="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" <TitledPane animated="false" collapsible="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" text="%app.list" fx:id="shoppingListContainer" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" text="Shopping List"
fx:controller="client.scenes.shopping.ShoppingListCtrl" fx:controller="client.scenes.shopping.ShoppingListCtrl"
xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/25"> xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/25">
<VBox> <VBox>
@ -16,10 +16,10 @@
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="0.0"/> AnchorPane.topAnchor="0.0"/>
<HBox> <HBox>
<Button fx:id="addItemButton" onAction="#handleAddItem" /> <Button onAction="#handleAddItem">Add</Button>
<Button fx:id="deleteItemButton" onAction="#handleRemoveItem" /> <Button onAction="#handleRemoveItem">Delete</Button>
<Button fx:id="printButton" onAction="#handlePrint" /> <Button onAction="#handlePrint">Print</Button>
<Button fx:id="resetButton" onAction="#handleReset" /> <Button onAction="#handleReset">Reset</Button>
</HBox> </HBox>
</VBox> </VBox>
</TitledPane> </TitledPane>

View file

@ -17,8 +17,8 @@
<MenuButton fx:id="ingredientSelection">Your ingredient...</MenuButton> <MenuButton fx:id="ingredientSelection">Your ingredient...</MenuButton>
</HBox> </HBox>
<HBox> <HBox>
<Button fx:id="confirmButton" onAction="#confirmAdd">Confirm</Button> <Button onAction="#confirmAdd">Confirm</Button>
<Button fx:id="cancelButton" onAction="#cancelAdd">Cancel</Button> <Button onAction="#cancelAdd">Cancel</Button>
</HBox> </HBox>
</VBox> </VBox>
</AnchorPane> </AnchorPane>

View file

@ -1,3 +1,15 @@
add.ingredient.title=Add Ingredient
add.recipe.title=Create recipe
add.step.title=Add Step
add.ingredient.label=Ingredient
add.recipe.label=Recipe Name
add.step.label=Step
button.ok=Ok
button.cancel=Cancel
menu.label.recipes=Recipes
menu.label.ingredients=Ingredients menu.label.ingredients=Ingredients
menu.label.preparation=Preparation menu.label.preparation=Preparation
@ -5,7 +17,7 @@ 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.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
@ -19,42 +31,9 @@ menu.ingredients.title=Nutrition value
menu.button.add=Add menu.button.add=Add
menu.button.refresh=Refresh menu.button.refresh=Refresh
menu.button.delete=Delete
menu.button.close=Close menu.button.close=Close
app.word.recipe.n=Recipes
app.updated=Updated just now
app.estimated=Estimated:
app.prompt.something-new=Something new...
app.prompt.new-ingredient=New ingredient...
app.prompt.select-ingredient=Select your ingredient
app.kcal=Estimated energy value:
app.label.usage.part=Used in
app.list=Shopping List
app.title.addoverview=Review ingredients before adding
app.label.inferred-kcal=Inferred calories for this recipe:
app.label.inferred-size=Inferred serving size:
app.word.amount=Amount
app.word.unit=Unit
app.word.shop=Shop
app.word.scale=Scale
app.word.serving.n=Servings
app.word.step.1=Step
app.word.step.n=Steps
app.word.ingredient=Ingredient
app.word.ingredient.n=Ingredients
verb.cancel=Cancel
verb.save=Save
verb.delete=Delete
verb.add=Add
verb.print=Print
verb.reset=Reset
verb.removesel=Remove selected
verb.addconfirm=Confirm and Add
menu.search=Search... menu.search=Search...
menu.label.selected-langs=Languages menu.label.selected-langs=Languages

View file

@ -1,3 +1,15 @@
add.ingredient.title=Add Ingredient
add.recipe.title=Create recipe
add.step.title=Add Step
add.ingredient.label=Ingredient
add.recipe.label=Recipe Name
add.step.label=Step
button.ok=Ok
button.cancel=Cancel
menu.label.recipes=Recipes
menu.label.ingredients=Ingredients menu.label.ingredients=Ingredients
menu.label.preparation=Preparation menu.label.preparation=Preparation
@ -5,7 +17,7 @@ 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.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
@ -19,41 +31,9 @@ menu.ingredients.title=Nutrition value
menu.button.add=Add menu.button.add=Add
menu.button.refresh=Refresh menu.button.refresh=Refresh
menu.button.delete=Delete
menu.button.close=Close menu.button.close=Close
app.word.recipe.n=Recipes
app.updated=Updated just now
app.estimated=Estimated:
app.prompt.something-new=Something new...
app.prompt.new-ingredient=New ingredient...
app.prompt.select-ingredient=Select your ingredient
app.kcal=Estimated energy value:
app.label.usage.part=Used in
app.list=Shopping List
app.title.addoverview=Review ingredients before adding
app.label.inferred-kcal=Inferred calories for this recipe:
app.label.inferred-size=Inferred serving size:
app.word.amount=Amount
app.word.unit=Unit
app.word.shop=Shop
app.word.scale=Scale
app.word.serving.n=Servings
app.word.step.1=Step
app.word.step.n=Steps
app.word.ingredient=Ingredient
app.word.ingredient.n=Ingredients
verb.save=Save
verb.delete=Delete
verb.add=Add
verb.print=Print
verb.reset=Reset
verb.removesel=Remove selected
verb.addconfirm=Confirm and Add
menu.search=Search... menu.search=Search...
menu.label.selected-langs=Languages menu.label.selected-langs=Languages

View file

@ -1,49 +1,39 @@
add.ingredient.title=Ingredient toevoegen
add.recipe.title=Recept aanmaken
add.step.title=Stap toevoegen
add.ingredient.label=Ingredient
add.recipe.label=Receptnaam
add.step.label=Bereidingsstap
button.ok=Ok
button.cancel=Annuleren
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.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=Voedingswaarde
menu.ingredients.title=Voedingswaarden
menu.button.add=Toevoegen menu.button.add=Toevoegen
menu.button.refresh=Vernieuwen menu.button.refresh=Verversen
menu.button.delete=Verwijderen
menu.button.close=Sluiten menu.button.close=Sluiten
app.word.recipe.n=Recepten
app.updated=Zojuist bijgewerkt
app.estimated=Geschat:
app.prompt.something-new=Iets nieuws...
app.prompt.new-ingredient=Nieuw ingrediënt...
app.prompt.select-ingredient=Selecteer ingrediënt
app.kcal=Geschatte energiewaarde:
app.label.usage.part=Gebruikt in
app.list=Boodschappenlijst
app.title.addoverview=Controleer de ingrediënten voordat u ze toevoegt
app.label.inferred-kcal=Afgeleide calorieën voor dit recept:
app.label.inferred-size=Afgeleide portiegrootte:
app.word.amount=Hoeveelheid
app.word.unit=Eenheid
app.word.shop=Winkelen
app.word.scale=Schaal
app.word.serving.n=Porties
app.word.step.1=Stap
app.word.step.n=Stappen
app.word.ingredient=Ingrediënt
app.word.ingredient.n=Ingrediënten
verb.save=Opslaan
verb.delete=Verwijderen
verb.add=Toevoegen
verb.print=Afdrukken
verb.reset=Opnieuw instellen
verb.cancel=Annuleren
verb.removesel=Geselecteerde verwijderen
verb.addconfirm=Bevestigen en toevoegen
menu.search=Zoeken...
menu.label.selected-langs=Talen menu.label.selected-langs=Talen
menu.shopping.title=Boodschappenlijst menu.shopping.title=Boodschappenlijst
@ -53,7 +43,6 @@ menu.nutrition.protein=Eiwitten
menu.nutrition.fat=Vetten menu.nutrition.fat=Vetten
menu.search=Zoeken... menu.search=Zoeken...
lang.en.display=Engels lang.en.display=Engels
lang.nl.display=Nederlands lang.nl.display=Nederlands
lang.pl.display=Pools lang.pl.display=Pools

View file

@ -1,78 +1,48 @@
add.ingredient.title=Dodaj skÅadnik
add.recipe.title=Utwórz przepis
add.step.title=Dodaj instrukcjÄ™
add.ingredient.label=SkÅadnik
add.recipe.label=Nazwa przepisu
add.step.label=Instrukcja
button.ok=Ok
button.cancel=Anuluj
menu.label.recipes=Przepisy
menu.label.ingredients=Składniki menu.label.ingredients=Składniki
menu.label.preparation=Przygotowanie 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 krok menu.button.add.step=Dodaj instrukcjÄ™
menu.button.favourites=Ulubione 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
menu.button.remove.step=Usuń krok menu.button.remove.step=UsuÅ„ instrukcjÄ™
menu.button.edit=Edytuj 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.ingredients.title=Wartość odżywcza
menu.button.add=Dodaj menu.button.add=Dodaj
menu.button.refresh=Odśwież menu.button.refresh=Odśwież
menu.button.delete=Usuń
menu.button.close=Zamknij menu.button.close=Zamknij
app.word.recipe.n=Przepisy
app.updated=Zaktualizowano właśnie
app.estimated=Szacowane:
app.prompt.something-new=Coś nowego...
app.prompt.new-ingredient=Nowy składnik...
app.prompt.select-ingredient=Wybierz składnik
app.kcal=Szacowana wartość energetyczna:
app.label.usage.part=Używany w
app.list=Lista zakupów
app.title.addoverview=Sprawdź składniki przed dodaniem
app.label.inferred-kcal=Wywnioskowane kalorie dla tego przepisu:
app.label.inferred-size=Wywnioskowany rozmiar porcji:
app.word.amount=Ilość
app.word.unit=Jednostka
app.word.shop=Sklep
app.word.scale=Skala
app.word.serving.n=Porcje
app.word.step.1=Krok
app.word.step.n=Kroki
app.word.ingredient=Składnik
app.word.ingredient.n=Składniki
verb.cancel=Anuluj
verb.save=Zapisz
verb.delete=Usuń
verb.add=Dodaj
verb.print=Drukuj
verb.reset=Resetuj
verb.removesel=Usuń zaznaczone
verb.addconfirm=Potwierdź i dodaj
menu.search=Szukaj... menu.search=Szukaj...
menu.label.selected-langs=Języki menu.label.selected-langs=Języki
menu.nutrition.carbs=Węglowodany menu.shopping.title=Lista zakupów
menu.nutrition.protein=Białko
menu.nutrition.fat=Tłuszcze menu.nutrition.carbs=W?glowodany
menu.nutrition.protein=Bia?ka
menu.nutrition.fat=T?uszcze
lang.en.display=Inglisz lang.en.display=Inglisz
lang.nl.display=Holenderski lang.nl.display=Holenderski

View file

@ -1,60 +1,52 @@
menu.label.ingredients=kipisi moku add.ingredient.title=kipisi moku sin
menu.label.preparation=pali moku add.recipe.title=lipu moku sin
menu.button.add.recipe=o pali lipu moku add.step.title=nasin sin pi pali moku
menu.button.add.ingredient=o pali kipisi moku
menu.button.add.step=o pali nasin add.ingredient.label=kipisi moku
menu.button.favourites=pilin pona add.recipe.label=nimi pi lipu moku
menu.button.remove.recipe=weka lipu moku add.step.label=nasin pi pali moku
menu.button.remove.ingredient=weka kipisi moku
menu.button.remove.step=weka nasin button.ok=pona
button.cancel=o pini
menu.label.recipes=lipu moku
menu.label.ingredients=kipisi pi moku ni
menu.label.preparation=nasin pi pali moku ni
menu.button.add.recipe=o pali e lipu 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.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.ingredient=o weka e kipisi moku ni
menu.button.remove.step=o weka e nasin pi pali moku ni
menu.button.edit=o pali menu.button.edit=o pali
menu.button.clone=o sama menu.button.clone=o sama
menu.button.print=o tawa lipu menu.button.print=o tawa lon lipu
menu.ingredients.title=kipisi moku ale
menu.button.add=o pali
menu.button.refresh=o sin
menu.button.close=o pini
app.word.recipe.n=lipu moku
app.updated=sin lon tenpo pini
app.estimated=nanpa isipin:
app.prompt.something-new=ijo sin...
app.prompt.new-ingredient=kipisi moku sin...
app.prompt.select-ingredient=o wile e kipisi moku
app.kcal=nanpa moku:
app.label.usage.part=kepeken lon
app.list=lipu esun pali moku
app.title.addoverview=o lukin e kipisi moku la tenpo kama pali
app.label.inferred-kcal=nanpa moku tan lipu moku ni:
app.label.inferred-size=suli tawa jan wan:
app.word.amount=nanpa
app.word.unit=kulupu
app.word.shop=ma pi tomo esun
app.word.scale=suli
app.word.serving.n=suli moku
app.word.step.1=nasin
app.word.step.n=nasin
app.word.ingredient=kipisi moku
app.word.ingredient.n=kipisi moku
verb.cancel=o pini menu.ingredients.title=nanpa moku
verb.save=pona
verb.delete=o weka menu.button.add=o pali
verb.add=o pali menu.button.refresh=o pali sin
verb.print=o tawa lipu menu.button.delete=o weka
verb.reset=o ante sin menu.button.close=o pini
verb.removesel=o weka ni
verb.addconfirm=pona menu.search=o alasa
menu.search=o alasa...
menu.label.selected-langs=toki wile
menu.shopping.title=ijo wile mani mute
menu.nutrition.carbs=kipisi moku suwi menu.nutrition.carbs=kipisi moku suwi
menu.nutrition.protein=kipisi moku walo menu.nutrition.protein=kipisi moku walo
menu.nutrition.fat=kipisi moku suli menu.nutrition.fat=kipisi moku suli
menu.label.selected-langs=toki wile:
lang.en.display=toki Inli lang.en.display=toki Inli
lang.nl.display=toki Netelan lang.nl.display=toki Netelan
lang.pl.display=toki Posuka lang.pl.display=toki Posuka
lang.tok.display=toki pona lang.tok.display=toki pona
lang.tr.display=toki Tuki lang.tr.display=toki Tuki
lang.zhc.display=toki Sonko (tan pi tenpo ni)
lang.zht.display=toki Sonko (tan pi tenpo pini) lang.zht.display=toki Sonko (tan pi tenpo pini)

View file

@ -1,80 +1,48 @@
add.ingredient.title=Malzeme Ekle
add.recipe.title=Tarif Olu\u015Ftur
add.step.title=Ad\u0131m Ekle
add.ingredient.label=Malzeme
add.recipe.label=Tarif Ad\u0131
add.step.label=Ad\u0131m
button.ok=Tamam
button.cancel=\u0130ptal
menu.label.recipes=Tarifler
menu.label.ingredients=Malzemeler menu.label.ingredients=Malzemeler
menu.label.preparation=Hazırlık 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ım ekle
menu.button.favourites=Favoriler menu.button.favourites=Favoriler
menu.button.ingredients=Malzemeler
menu.button.remove.recipe=Tarifi Sil
menu.button.remove.ingredient=Malzemeyi Sil
menu.button.remove.step=Ad\u0131m\u0131 Sil
menu.button.remove.recipe=Tarifi kaldır menu.button.edit=D\u00FCzenle
menu.button.remove.ingredient=Malzemeyi kaldır
menu.button.remove.step=Adımı kaldır
menu.button.edit=Düzenle
menu.button.clone=Kopyala menu.button.clone=Kopyala
menu.button.print=Tarifi yazdır menu.button.print=Tarifi Yazd\u0131r
menu.ingredients.title=Besin değeri
menu.ingredients.title=besin değerleri
menu.button.add=Ekle menu.button.add=Ekle
menu.button.refresh=Yenile menu.button.refresh=yenilemek
menu.button.delete=sil
menu.button.close=kapat
menu.button.close=Kapat
app.word.recipe.n=Tarifler
app.updated=Az önce güncellendi
app.estimated=Tahmini:
app.prompt.something-new=Yeni bir şey...
app.prompt.new-ingredient=Yeni malzeme...
app.prompt.select-ingredient=Malzemeyi seçin
app.kcal=Tahmini enerji değeri:
app.label.usage.part=Kullanıldığı yer
app.list=Alışveriş Listesi
app.title.addoverview=Eklemeden önce malzemeleri gözden geçirin
app.label.inferred-kcal=Bu tarif için çıkarılan kalori:
app.label.inferred-size=Çıkarılan porsiyon boyutu:
app.word.amount=Miktar
app.word.unit=Birim
app.word.shop=Mağaza
app.word.scale=Ölçek
app.word.serving.n=Porsiyonlar
app.word.step.1=Adım
app.word.step.n=Adımlar
app.word.ingredient=Malzeme
app.word.ingredient.n=Malzemeler
verb.cancel=İptal
verb.save=Kaydet
verb.delete=Sil
verb.add=Ekle
verb.print=Yazdır
verb.reset=Sıfırla
verb.removesel=Seçileni kaldır
verb.addconfirm=Onayla ve Ekle
menu.search=Ara...
menu.search=Arama...
menu.label.selected-langs=Diller menu.label.selected-langs=Diller
menu.shopping.title=alışveriş listesi menu.shopping.title=Al??veri? listesi
menu.nutrition.carbs=Karbonhidratlar menu.nutrition.carbs=Karbonhidratlar
menu.nutrition.protein=Protein menu.nutrition.protein=Protein
menu.nutrition.fat=yağ menu.nutrition.fat=Ya?
lang.en.display=English lang.en.display=English
lang.nl.display=Nederlands lang.nl.display=Nederlands

View file

@ -1,78 +1,37 @@
add.ingredient.title=添加配料
add.recipe.title=创建食谱
add.step.title=添加步骤
add.ingredient.label=配料
add.recipe.label=食谱名称
add.step.label=步骤
button.ok=确认
button.cancel=取消
menu.label.recipes=食谱
menu.label.ingredients=配料 menu.label.ingredients=配料
menu.label.preparation=准备 menu.label.preparation=准备步骤
menu.button.add.recipe=创建食谱
menu.button.add.recipe=添加食谱 menu.button.add.ingredient=添加配料
menu.button.add.ingredient=添加食材
menu.button.add.step=添加步骤 menu.button.add.step=添加步骤
menu.button.favourites=收藏
menu.button.remove.recipe=删除食谱
menu.button.remove.ingredient=删除食材
menu.button.remove.step=删除步骤
menu.button.remove.recipe=清除食谱
menu.button.remove.ingredient=清除配料
menu.button.remove.step=清除步骤
menu.button.edit=编辑 menu.button.edit=编辑
menu.button.clone=克隆 menu.button.clone=复制
menu.button.print=打印食谱 menu.button.print=打印食谱
menu.search=搜索
menu.ingredients.title=营养价值
menu.button.add=添加
menu.button.refresh=刷新
menu.button.close=关闭
app.word.recipe.n=食谱
app.updated=刚刚更新
app.estimated=估计:
app.prompt.something-new=新的食材...
app.prompt.new-ingredient=新的食材...
app.prompt.select-ingredient=选择你的食材
app.kcal=估计能量值:
app.label.usage.part=用于
app.list=购物清单
app.title.addoverview=在添加前检查食材
app.label.inferred-kcal=此食谱推断的卡路里:
app.label.inferred-size=推断的份量大小:
app.word.amount=数量
app.word.unit=单位
app.word.shop=商店
app.word.scale=比例
app.word.serving.n=份数
app.word.step.1=步骤
app.word.step.n=步骤
app.word.ingredient=食材
app.word.ingredient.n=食材
verb.cancel=取消
verb.save=保存
verb.delete=删除
verb.add=添加
verb.print=打印
verb.reset=重置
verb.removesel=删除所选
verb.addconfirm=确认并添加
menu.search=搜索...
menu.label.selected-langs=语言 menu.label.selected-langs=语言
menu.nutrition.carbs=碳水化合物 menu.nutrition.carbs=?????
menu.nutrition.protein=蛋白质 menu.nutrition.protein=???
menu.nutrition.fat=脂肪 menu.nutrition.fat=??
lang.en.display=English lang.en.display=English
lang.nl.display=Nederlands lang.nl.display=Nederlands

View file

@ -1,78 +1,37 @@
add.ingredient.title=添加配料
add.recipe.title=創建食譜
add.step.title=添加步驟
add.ingredient.label=配料
add.recipe.label=食譜名稱
add.step.label=步驟
button.ok=確認
button.cancel=取消
menu.label.recipes=食譜
menu.label.ingredients=配料 menu.label.ingredients=配料
menu.label.preparation=準備 menu.label.preparation=制備步驟
menu.button.add.recipe=創建食譜
menu.button.add.ingredient=添加配料
menu.button.add.step=添加步驟
menu.button.add.recipe=新增食譜 menu.button.remove.recipe=清除食譜
menu.button.add.ingredient=新增食材 menu.button.remove.ingredient=清除配料
menu.button.add.step=新增步驟 menu.button.remove.step=清除步驟
menu.button.favourites=收藏
menu.button.remove.recipe=刪除食譜
menu.button.remove.ingredient=刪除食材
menu.button.remove.step=刪除步驟
menu.button.edit=編輯 menu.button.edit=編輯
menu.button.clone=複製 menu.button.clone=複製
menu.button.print=列印食譜 menu.button.print=列印食譜
menu.search=搜索
menu.ingredients.title=營養價值
menu.button.add=新增
menu.button.refresh=重新整理
menu.button.close=關閉
app.word.recipe.n=食譜
app.updated=剛剛更新
app.estimated=估計:
app.prompt.something-new=發現新事物...
app.prompt.new-ingredient=新的食材...
app.prompt.select-ingredient=選擇你的食材
app.kcal=估計能量值:
app.label.usage.part=使用於
app.list=購物清單
app.title.addoverview=在加入前檢查食材
app.label.inferred-kcal=此食譜推斷的卡路里:
app.label.inferred-size=推斷的份量大小:
app.word.amount=數量
app.word.unit=單位
app.word.shop=商店
app.word.scale=比例
app.word.serving.n=份數
app.word.step.1=步驟
app.word.step.n=步驟
app.word.ingredient=食材
app.word.ingredient.n=食材
verb.cancel=取消
verb.save=儲存
verb.delete=刪除
verb.add=新增
verb.print=列印
verb.reset=重設
verb.removesel=刪除所選
verb.addconfirm=確認並新增
menu.search=搜尋...
menu.label.selected-langs=語言 menu.label.selected-langs=語言
menu.nutrition.carbs=碳水化合物 menu.nutrition.carbs=?????
menu.nutrition.protein=蛋白質 menu.nutrition.protein=???
menu.nutrition.fat=油脂 menu.nutrition.fat=??
lang.en.display=English lang.en.display=English
lang.nl.display=Nederlands lang.nl.display=Nederlands