From 7409160fbebfb545414dd5115f194a3d23ceb80b Mon Sep 17 00:00:00 2001 From: iMoHax Date: Fri, 18 Mar 2016 16:05:02 +0300 Subject: [PATCH] localization update --- client/src/main/java/ru/trader/Main.java | 6 +- .../java/ru/trader/controllers/Dialogs.java | 27 ++++++ .../trader/controllers/FilterController.java | 5 +- .../controllers/GroupAddController.java | 5 +- .../trader/controllers/ItemAddController.java | 4 +- .../trader/controllers/LoginController.java | 7 +- .../ru/trader/controllers/MainController.java | 16 ++-- .../trader/controllers/OffersController.java | 2 +- .../trader/controllers/PathsController.java | 4 +- .../controllers/ProgressController.java | 4 +- .../controllers/RouteSearchController.java | 9 +- .../java/ru/trader/controllers/Screeners.java | 8 +- .../controllers/SettingsController.java | 5 +- .../controllers/StationEditorController.java | 10 +- .../controllers/SystemsEditorController.java | 5 +- .../controllers/TopOrdersController.java | 4 +- .../controllers/VendorFilterController.java | 7 +- .../db/controllers/ItemsController.java | 3 +- .../db/controllers/StationsController.java | 3 +- .../db/controllers/SystemsController.java | 3 +- .../java/ru/trader/model/MissionModel.java | 7 +- .../ru/trader/view/support/DurationField.java | 4 +- .../ru/trader/view/support/NumberField.java | 2 +- .../ru/trader/view/support/ViewUtils.java | 6 +- .../src/main/resources/lang/locale.properties | 17 ++++ .../resources/lang/locale_en_US.properties | 89 +++++++++++++++++- .../resources/lang/locale_ru_RU.properties | 91 ++++++++++++++++++- .../lang/locale_ru_RU_FULL.properties | 22 ++++- .../src/main/resources/view/db/dbeditor.fxml | 4 +- client/src/main/resources/view/db/items.fxml | 14 +-- .../src/main/resources/view/db/stations.fxml | 14 +-- .../src/main/resources/view/db/systems.fxml | 12 +-- client/src/main/resources/view/filter.fxml | 4 +- client/src/main/resources/view/helper.fxml | 12 +-- client/src/main/resources/view/items.fxml | 2 +- client/src/main/resources/view/main.fxml | 2 +- client/src/main/resources/view/offers.fxml | 6 +- client/src/main/resources/view/profile.fxml | 36 ++++---- .../src/main/resources/view/routeSearch.fxml | 13 ++- .../src/main/resources/view/routeTrack.fxml | 16 ++-- client/src/main/resources/view/router.fxml | 4 +- client/src/main/resources/view/sEditor.fxml | 4 +- client/src/main/resources/view/search.fxml | 6 +- client/src/main/resources/view/settings.fxml | 28 +++--- client/src/main/resources/view/topOrders.fxml | 2 +- client/src/main/resources/view/vEditor.fxml | 2 +- client/src/main/resources/view/vFilter.fxml | 10 +- 47 files changed, 395 insertions(+), 171 deletions(-) create mode 100644 client/src/main/java/ru/trader/controllers/Dialogs.java diff --git a/client/src/main/java/ru/trader/Main.java b/client/src/main/java/ru/trader/Main.java index 96ff8e1..cea56fd 100644 --- a/client/src/main/java/ru/trader/Main.java +++ b/client/src/main/java/ru/trader/Main.java @@ -9,6 +9,7 @@ import javafx.stage.Stage; import org.apache.log4j.PropertyConfigurator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ru.trader.controllers.Dialogs; import ru.trader.controllers.MainController; import ru.trader.controllers.Screeners; import ru.trader.view.support.Localization; @@ -76,6 +77,7 @@ public class Main extends Application { MainController.getWorld().refresh(); loadMainScene(); loadResources(); + Dialogs.initButtons(); primaryStage.show(); if (Main.SETTINGS.helper().isVisible()){ Screeners.showHelper(); @@ -90,8 +92,8 @@ public class Main extends Application { try { if (World.getMarket().isChange()) { Optional res = Screeners.showConfirm(Localization.getString("dialog.confirm.save")); - if (res.isPresent() && res.get() == ButtonType.YES) World.save(); - else if (!res.isPresent() || res.get() == ButtonType.CANCEL) { + if (res.isPresent() && res.get() == Dialogs.YES) World.save(); + else if (!res.isPresent() || res.get() == Dialogs.CANCEL) { we.consume(); return; } diff --git a/client/src/main/java/ru/trader/controllers/Dialogs.java b/client/src/main/java/ru/trader/controllers/Dialogs.java new file mode 100644 index 0000000..899f007 --- /dev/null +++ b/client/src/main/java/ru/trader/controllers/Dialogs.java @@ -0,0 +1,27 @@ +package ru.trader.controllers; + +import javafx.scene.control.ButtonBar; +import javafx.scene.control.ButtonType; +import ru.trader.view.support.Localization; + +public class Dialogs { + public static ButtonType OK; + public static ButtonType SAVE; + public static ButtonType CANCEL; + public static ButtonType YES; + public static ButtonType NO; + public static ButtonType LOGIN; + + static { + initButtons(); + } + + public static void initButtons(){ + OK = new ButtonType(Localization.getString("dialog.button.ok"), ButtonBar.ButtonData.OK_DONE); + SAVE = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); + CANCEL = new ButtonType(Localization.getString("dialog.button.cancel"), ButtonBar.ButtonData.CANCEL_CLOSE); + YES = new ButtonType(Localization.getString("dialog.button.yes"), ButtonBar.ButtonData.YES); + NO = new ButtonType(Localization.getString("dialog.button.no"), ButtonBar.ButtonData.NO); + LOGIN = new ButtonType(Localization.getString("login.text.login"), ButtonBar.ButtonData.OK_DONE); + } +} diff --git a/client/src/main/java/ru/trader/controllers/FilterController.java b/client/src/main/java/ru/trader/controllers/FilterController.java index b0ea2c0..6382888 100644 --- a/client/src/main/java/ru/trader/controllers/FilterController.java +++ b/client/src/main/java/ru/trader/controllers/FilterController.java @@ -113,11 +113,10 @@ public class FilterController { dlg = new Dialog<>(); if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("filter.title")); - ButtonType saveButton = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(saveButton, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.SAVE, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == saveButton) { + if (dialogButton == Dialogs.SAVE) { save(); return this.filter; } diff --git a/client/src/main/java/ru/trader/controllers/GroupAddController.java b/client/src/main/java/ru/trader/controllers/GroupAddController.java index 371cf96..2fcbc32 100644 --- a/client/src/main/java/ru/trader/controllers/GroupAddController.java +++ b/client/src/main/java/ru/trader/controllers/GroupAddController.java @@ -3,7 +3,6 @@ package ru.trader.controllers; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.Parent; -import javafx.scene.control.ButtonType; import javafx.scene.control.ComboBox; import javafx.scene.control.Dialog; import javafx.scene.control.TextField; @@ -34,9 +33,9 @@ public class GroupAddController { if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("dialog.group.title")); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.OK, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == ButtonType.OK) { + if (dialogButton == Dialogs.OK) { return add(market); } return null; diff --git a/client/src/main/java/ru/trader/controllers/ItemAddController.java b/client/src/main/java/ru/trader/controllers/ItemAddController.java index e7eff4b..556692d 100644 --- a/client/src/main/java/ru/trader/controllers/ItemAddController.java +++ b/client/src/main/java/ru/trader/controllers/ItemAddController.java @@ -36,9 +36,9 @@ public class ItemAddController { if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("dialog.item.title")); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.OK, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == ButtonType.OK) { + if (dialogButton == Dialogs.OK) { return add(market); } return null; diff --git a/client/src/main/java/ru/trader/controllers/LoginController.java b/client/src/main/java/ru/trader/controllers/LoginController.java index b9daf88..03cd8eb 100644 --- a/client/src/main/java/ru/trader/controllers/LoginController.java +++ b/client/src/main/java/ru/trader/controllers/LoginController.java @@ -30,9 +30,8 @@ public class LoginController { dialog.setTitle(Localization.getString("login.title")); dialog.setHeaderText(Localization.getString("login.header")); dialog.getDialogPane().setContent(content); - ButtonType loginButtonType = new ButtonType(Localization.getString("login.text.login"), ButtonBar.ButtonData.OK_DONE); - dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL); - Node loginButton = dialog.getDialogPane().lookupButton(loginButtonType); + dialog.getDialogPane().getButtonTypes().addAll(Dialogs.LOGIN, Dialogs.CANCEL); + Node loginButton = dialog.getDialogPane().lookupButton(Dialogs.LOGIN); loginButton.setDisable(true); email.textProperty().addListener((observable, oldValue, newValue) -> { loginButton.setDisable(newValue.trim().isEmpty()); @@ -40,7 +39,7 @@ public class LoginController { }); email.setText(Main.SETTINGS.edce().getEmail()); dialog.setResultConverter(dialogButton -> { - if (dialogButton == loginButtonType) { + if (dialogButton == Dialogs.LOGIN) { return new Pair<>(email.getText(), password.getText()); } return null; diff --git a/client/src/main/java/ru/trader/controllers/MainController.java b/client/src/main/java/ru/trader/controllers/MainController.java index 06b9e8d..4ec0471 100644 --- a/client/src/main/java/ru/trader/controllers/MainController.java +++ b/client/src/main/java/ru/trader/controllers/MainController.java @@ -155,7 +155,7 @@ public class MainController { public void clear(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.all"))); - if (res.isPresent() && res.get() == ButtonType.OK) { + if (res.isPresent() && res.get() == Dialogs.OK) { market.clear(); reload(); } @@ -163,7 +163,7 @@ public class MainController { public void clearOffers(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.offers"))); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.clearOffers(); reload(); } @@ -171,7 +171,7 @@ public class MainController { public void clearStations(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.stations"))); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.clearStations(); reload(); } @@ -179,7 +179,7 @@ public class MainController { public void clearSystems(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.systems"))); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.clearSystems(); reload(); } @@ -187,7 +187,7 @@ public class MainController { public void clearItems(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.items"))); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.clearItems(); reload(); } @@ -195,7 +195,7 @@ public class MainController { public void clearGroups(){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.groups"))); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.clearGroups(); reload(); } @@ -224,7 +224,7 @@ public class MainController { SystemModel system = profile.getSystem(); if (!ModelFabric.isFake(system)) { Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), system.getName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { market.remove(system); } } @@ -248,7 +248,7 @@ public class MainController { StationModel station = profile.getStation(); if (!ModelFabric.isFake(station)) { Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), station.getName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { station.getSystem().remove(station); } } diff --git a/client/src/main/java/ru/trader/controllers/OffersController.java b/client/src/main/java/ru/trader/controllers/OffersController.java index 62d5f1e..7fbb733 100644 --- a/client/src/main/java/ru/trader/controllers/OffersController.java +++ b/client/src/main/java/ru/trader/controllers/OffersController.java @@ -217,7 +217,7 @@ public class OffersController { StationModel s = getStation(); if (!ModelFabric.isFake(s)){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), s.getName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { s.getSystem().remove(s); } } diff --git a/client/src/main/java/ru/trader/controllers/PathsController.java b/client/src/main/java/ru/trader/controllers/PathsController.java index a2cb807..0f1bb7e 100644 --- a/client/src/main/java/ru/trader/controllers/PathsController.java +++ b/client/src/main/java/ru/trader/controllers/PathsController.java @@ -43,9 +43,9 @@ public class PathsController { if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("paths.title")); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.OK, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == ButtonType.OK) { + if (dialogButton == Dialogs.OK) { return getPath(); } return null; diff --git a/client/src/main/java/ru/trader/controllers/ProgressController.java b/client/src/main/java/ru/trader/controllers/ProgressController.java index b9232cd..20c5c9e 100644 --- a/client/src/main/java/ru/trader/controllers/ProgressController.java +++ b/client/src/main/java/ru/trader/controllers/ProgressController.java @@ -36,10 +36,10 @@ public class ProgressController { vbox.setPrefSize(300, 100); dlg.getDialogPane().setContent(vbox); - dlg.getDialogPane().getButtonTypes().addAll(ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == ButtonType.CANCEL) { + if (dialogButton == Dialogs.CANCEL) { if (task != null){ task.stop(); } diff --git a/client/src/main/java/ru/trader/controllers/RouteSearchController.java b/client/src/main/java/ru/trader/controllers/RouteSearchController.java index e9a598c..af7a7e7 100644 --- a/client/src/main/java/ru/trader/controllers/RouteSearchController.java +++ b/client/src/main/java/ru/trader/controllers/RouteSearchController.java @@ -1,10 +1,7 @@ package ru.trader.controllers; import javafx.fxml.FXML; -import javafx.scene.control.CheckBox; -import javafx.scene.control.ComboBox; -import javafx.scene.control.ListView; -import javafx.scene.control.TextField; +import javafx.scene.control.*; import ru.trader.analysis.CrawlerSpecificator; import ru.trader.model.*; import ru.trader.view.support.autocomplete.AutoCompletion; @@ -26,7 +23,7 @@ public class RouteSearchController { @FXML private ComboBox toStation; @FXML - private CheckBox cbFast; + private RadioButton rbByTime; @FXML private CheckBox cbFullScan; @FXML @@ -103,7 +100,7 @@ public class RouteSearchController { StationModel tS = t != null ? t.get(toStation.getValue()) : ModelFabric.NONE_STATION; CrawlerSpecificator specificator = new CrawlerSpecificator(); - specificator.setByTime(cbFast.isSelected()); + specificator.setByTime(rbByTime.isSelected()); specificator.setFullScan(cbFullScan.isSelected()); missionsList.getItems().forEach(m -> m.toSpecification(specificator)); market.getRoutes(f, fS, t, tS, profile.getBalance(), specificator, routes -> { diff --git a/client/src/main/java/ru/trader/controllers/Screeners.java b/client/src/main/java/ru/trader/controllers/Screeners.java index 4dfb571..bc72405 100644 --- a/client/src/main/java/ru/trader/controllers/Screeners.java +++ b/client/src/main/java/ru/trader/controllers/Screeners.java @@ -178,7 +178,7 @@ public class Screeners { public static void showException(Throwable ex){ Alert alert = new Alert(Alert.AlertType.ERROR); - alert.setTitle("Exception Dialog"); + alert.setTitle(Localization.getString("dialog.exception.title","Exception Dialog")); String text = ex.getLocalizedMessage(); alert.setHeaderText(text != null ? text : ex.getMessage()); @@ -188,7 +188,7 @@ public class Screeners { ex.printStackTrace(pw); String exceptionText = sw.toString(); - Label label = new Label("The exception stacktrace was:"); + Label label = new Label(Localization.getString("dialog.exception.label.stacktrace","The exception stacktrace was:")); TextArea textArea = new TextArea(exceptionText); textArea.setEditable(false); textArea.setWrapText(true); @@ -209,9 +209,9 @@ public class Screeners { public static Optional showConfirm(String text){ Alert alert = new Alert(Alert.AlertType.CONFIRMATION); - alert.setTitle("Confirmation Dialog"); + alert.setTitle(Localization.getString("dialog.confirm.title")); alert.setHeaderText(text); - alert.getButtonTypes().setAll(ButtonType.YES, ButtonType.NO, ButtonType.CANCEL); + alert.getButtonTypes().setAll(Dialogs.YES, Dialogs.NO, Dialogs.CANCEL); return alert.showAndWait(); } diff --git a/client/src/main/java/ru/trader/controllers/SettingsController.java b/client/src/main/java/ru/trader/controllers/SettingsController.java index 4c55b0a..cd7caa4 100644 --- a/client/src/main/java/ru/trader/controllers/SettingsController.java +++ b/client/src/main/java/ru/trader/controllers/SettingsController.java @@ -111,11 +111,10 @@ public class SettingsController { dlg = new Dialog<>(); if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("settings.title")); - ButtonType saveButton = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(saveButton, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.SAVE, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == saveButton) { + if (dialogButton == Dialogs.SAVE) { save(); } return dialogButton; diff --git a/client/src/main/java/ru/trader/controllers/StationEditorController.java b/client/src/main/java/ru/trader/controllers/StationEditorController.java index 8e69375..a5ed59f 100644 --- a/client/src/main/java/ru/trader/controllers/StationEditorController.java +++ b/client/src/main/java/ru/trader/controllers/StationEditorController.java @@ -145,20 +145,18 @@ public class StationEditorController { dlg = new Dialog<>(); if (owner != null) dlg.initOwner(owner.getScene().getWindow()); - ButtonType saveButton = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); - ButtonType cancelButton = new ButtonType(Localization.getString("dialog.button.cancel"), ButtonBar.ButtonData.CANCEL_CLOSE); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(saveButton, cancelButton); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.SAVE, Dialogs.CANCEL); - Button bSave = (Button) dlg.getDialogPane().lookupButton(saveButton); + Button bSave = (Button) dlg.getDialogPane().lookupButton(Dialogs.SAVE); bSave.disableProperty().bind(distance.wrongProperty()); dlg.setResultConverter(dialogButton -> { - if (dialogButton == saveButton) { + if (dialogButton == Dialogs.SAVE) { save(); } - if (dialogButton == cancelButton) { + if (dialogButton == Dialogs.CANCEL) { cancel(); } return dialogButton; diff --git a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java index c638cf1..494c115 100644 --- a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java +++ b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java @@ -161,11 +161,10 @@ public class SystemsEditorController { dlg = new Dialog<>(); if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("sEditor.title")); - ButtonType saveButton = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(saveButton, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.SAVE, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == saveButton) { + if (dialogButton == Dialogs.SAVE) { save(); } return dialogButton; diff --git a/client/src/main/java/ru/trader/controllers/TopOrdersController.java b/client/src/main/java/ru/trader/controllers/TopOrdersController.java index b579086..7772a2f 100644 --- a/client/src/main/java/ru/trader/controllers/TopOrdersController.java +++ b/client/src/main/java/ru/trader/controllers/TopOrdersController.java @@ -41,9 +41,9 @@ public class TopOrdersController { if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("topOrders.title")); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.OK, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == ButtonType.OK) { + if (dialogButton == Dialogs.OK) { return order; } return null; diff --git a/client/src/main/java/ru/trader/controllers/VendorFilterController.java b/client/src/main/java/ru/trader/controllers/VendorFilterController.java index 84e870d..e2fb177 100644 --- a/client/src/main/java/ru/trader/controllers/VendorFilterController.java +++ b/client/src/main/java/ru/trader/controllers/VendorFilterController.java @@ -2,8 +2,6 @@ package ru.trader.controllers; import javafx.fxml.FXML; import javafx.scene.Parent; -import javafx.scene.control.ButtonBar; -import javafx.scene.control.ButtonType; import javafx.scene.control.CheckBox; import javafx.scene.control.Dialog; import javafx.scene.layout.GridPane; @@ -77,11 +75,10 @@ public class VendorFilterController { dlg = new Dialog<>(); if (owner != null) dlg.initOwner(owner.getScene().getWindow()); dlg.setTitle(Localization.getString("filter.title")); - ButtonType saveButton = new ButtonType(Localization.getString("dialog.button.save"), ButtonBar.ButtonData.OK_DONE); dlg.getDialogPane().setContent(content); - dlg.getDialogPane().getButtonTypes().addAll(saveButton, ButtonType.CANCEL); + dlg.getDialogPane().getButtonTypes().addAll(Dialogs.SAVE, Dialogs.CANCEL); dlg.setResultConverter(dialogButton -> { - if (dialogButton == saveButton) { + if (dialogButton == Dialogs.SAVE) { save(); return this.filter; } diff --git a/client/src/main/java/ru/trader/db/controllers/ItemsController.java b/client/src/main/java/ru/trader/db/controllers/ItemsController.java index 1aaafc2..aada34f 100644 --- a/client/src/main/java/ru/trader/db/controllers/ItemsController.java +++ b/client/src/main/java/ru/trader/db/controllers/ItemsController.java @@ -7,6 +7,7 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.ComboBoxTableCell; +import ru.trader.controllers.Dialogs; import ru.trader.controllers.MainController; import ru.trader.controllers.Screeners; import ru.trader.core.FACTION; @@ -87,7 +88,7 @@ public class ItemsController { private void remove(ItemModel item){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), item.getName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { world.remove(item); } } diff --git a/client/src/main/java/ru/trader/db/controllers/StationsController.java b/client/src/main/java/ru/trader/db/controllers/StationsController.java index db4603c..5abeb84 100644 --- a/client/src/main/java/ru/trader/db/controllers/StationsController.java +++ b/client/src/main/java/ru/trader/db/controllers/StationsController.java @@ -7,6 +7,7 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.ComboBoxTableCell; +import ru.trader.controllers.Dialogs; import ru.trader.controllers.MainController; import ru.trader.controllers.Screeners; import ru.trader.core.*; @@ -97,7 +98,7 @@ public class StationsController { private void remove(StationModel station){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), station.getFullName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { station.getSystem().remove(station); } } diff --git a/client/src/main/java/ru/trader/db/controllers/SystemsController.java b/client/src/main/java/ru/trader/db/controllers/SystemsController.java index 2ec1c77..9fcd468 100644 --- a/client/src/main/java/ru/trader/db/controllers/SystemsController.java +++ b/client/src/main/java/ru/trader/db/controllers/SystemsController.java @@ -7,6 +7,7 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.ComboBoxTableCell; +import ru.trader.controllers.Dialogs; import ru.trader.controllers.MainController; import ru.trader.controllers.Screeners; import ru.trader.core.*; @@ -76,7 +77,7 @@ public class SystemsController { private void remove(SystemModel system){ Optional res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), system.getName())); - if (res.isPresent() && res.get() == ButtonType.YES) { + if (res.isPresent() && res.get() == Dialogs.YES) { world.remove(system); } } diff --git a/client/src/main/java/ru/trader/model/MissionModel.java b/client/src/main/java/ru/trader/model/MissionModel.java index 4bdaea1..e6cf2a8 100644 --- a/client/src/main/java/ru/trader/model/MissionModel.java +++ b/client/src/main/java/ru/trader/model/MissionModel.java @@ -4,6 +4,7 @@ import ru.trader.analysis.CrawlerSpecificator; import ru.trader.analysis.RouteReserve; import ru.trader.core.Offer; import ru.trader.store.simple.SimpleOffer; +import ru.trader.view.support.Localization; import java.time.Duration; import java.time.LocalDateTime; @@ -89,13 +90,13 @@ public class MissionModel { public String toString() { String t = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(time); if (isDelivery()){ - return String.format("Deliver %d items to %s at %s", count, target.getName(), t); + return String.format(Localization.getString("missions.delivery.text"), count, target.getName(), t); } if (isCourier()){ - return String.format("Deliver message to %s at %s", target.getName(), t); + return String.format(Localization.getString("missions.courier.text"), target.getName(), t); } if (isSupply()){ - return String.format("Supply %d %s to %s at %s", count, item.getName(), target.getName(), t); + return String.format(Localization.getString("missions.supply.text"), count, item.getName(), target.getName(), t); } return "MissionModel{" + "target=" + target + diff --git a/client/src/main/java/ru/trader/view/support/DurationField.java b/client/src/main/java/ru/trader/view/support/DurationField.java index d32cfd8..5c22aa3 100644 --- a/client/src/main/java/ru/trader/view/support/DurationField.java +++ b/client/src/main/java/ru/trader/view/support/DurationField.java @@ -43,7 +43,7 @@ public class DurationField extends TextField { public DurationField() { super(); converter = new DurationStringConverter(); - tooltip.setText("Wrong duration format, use like 1w1d1h1m1s"); + tooltip.setText(Localization.getString("message.wrongDuration")); tooltip.setAutoHide(true); wrong.addListener((ob, o ,n) -> { if (n) { @@ -87,7 +87,7 @@ public class DurationField extends TextField { } private static class DurationStringConverter extends StringConverter { - private static final Pattern PATTERN = Pattern.compile("^(?:([0-9]+)w)?(?:([0-9]+)d)?(?:([0-9]+)h)?(?:([0-9]+)m)?(?:([0-9]+)s)?$", Pattern.CASE_INSENSITIVE); + private static final Pattern PATTERN = Pattern.compile("^(?:([0-9]+)[wн])?(?:([0-9]+)[dд])?(?:([0-9]+)[hч])?(?:([0-9]+)[mм])?(?:([0-9]+)[sс])?$", Pattern.CASE_INSENSITIVE); private static long parseLong(String value){ if (value == null) return 0; diff --git a/client/src/main/java/ru/trader/view/support/NumberField.java b/client/src/main/java/ru/trader/view/support/NumberField.java index 221d096..12c5af3 100644 --- a/client/src/main/java/ru/trader/view/support/NumberField.java +++ b/client/src/main/java/ru/trader/view/support/NumberField.java @@ -59,7 +59,7 @@ public class NumberField extends TextField { NumberFormat f = new DecimalFormat(format, new DecimalFormatSymbols(Locale.ENGLISH)); f.setGroupingUsed(false); converter = new NumberStringConverter(f); - tooltip.setText("Wrong number"); + tooltip.setText(Localization.getString("message.wrongNumber")); tooltip.setAutoHide(true); wrong.addListener((ob, o ,n) -> { if (n) { diff --git a/client/src/main/java/ru/trader/view/support/ViewUtils.java b/client/src/main/java/ru/trader/view/support/ViewUtils.java index cb833f8..c4e2905 100644 --- a/client/src/main/java/ru/trader/view/support/ViewUtils.java +++ b/client/src/main/java/ru/trader/view/support/ViewUtils.java @@ -6,16 +6,14 @@ import javafx.application.Platform; import javafx.collections.ObservableList; import javafx.event.Event; import javafx.event.EventHandler; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TablePosition; -import javafx.scene.control.TableView; +import javafx.scene.control.*; import javax.swing.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; public class ViewUtils { - public final static String ILLEGAL_ITEM_STYLE = "illegal_item"; + public static final String ILLEGAL_ITEM_STYLE = "illegal_item"; //Scroll to row if invisible public static void show(TableView tableView, int index){ diff --git a/client/src/main/resources/lang/locale.properties b/client/src/main/resources/lang/locale.properties index 2eea4c6..b10006e 100644 --- a/client/src/main/resources/lang/locale.properties +++ b/client/src/main/resources/lang/locale.properties @@ -56,6 +56,23 @@ economic.TOURISM=Tourism economic.COLONY=Colony economic.NONE=None +power.DUVAL=Aisling Duval +power.DELAINE=Archon Delaine +power.LAVIGNY_DUVAL=Arissa Lavigny-Duval +power.PATREUS=Denton Patreus +power.MAHON=Edmund Mahon +power.WINTERS=Felicia Winters +power.YONG_RUI=Li Yong-Rui +power.ANTAL=Pranav Antal +power.HUDSON=Zachary Hudson +power.TORVAL=Zemina Torval +power.NONE=None + +power.states.CONTROL=Controlling +power.states.EXPLOITED=Exploited +power.states.EXPANSION=Expansion +power.states.NONE=None + item.group.chemicals=Chemicals item.explosives=Explosives item.hydrogenfuel=Hydrogen Fuel diff --git a/client/src/main/resources/lang/locale_en_US.properties b/client/src/main/resources/lang/locale_en_US.properties index c1012a6..1be374f 100644 --- a/client/src/main/resources/lang/locale_en_US.properties +++ b/client/src/main/resources/lang/locale_en_US.properties @@ -5,12 +5,29 @@ market.stations=Stations market.groups=Commodities groups market.items=Commods market.offers=Offers -market.item.name=Commodity -market.system.name=System -market.station.name=Station market.allegiance=Allegiance market.government=Government market.economic=Economy +market.power=Power +market.powerState=State + +#Item +market.item=Commodity +market.item.name=Name +market.item.illegal=Illegal in +market.item.legal=Legal in + +#Group +market.group=Group + +#System +market.system=System +market.system.name=Name + +#Station +market.station=Station +market.station.name=Name +market.station.distance=Distance market.station.services=Services market.station.type=Station type @@ -44,15 +61,21 @@ routes.profitByTime=Cr/Sec routes.text.format=Profit: %.0f Cr/t, Time: %s # Dialog +dialog.exception.title=Exception Dialog +dialog.exception.label.stacktrace=The exception stacktrace was: +dialog.confirm.title=Confirmation Dialog dialog.confirm.save=Changes were not saved, save changes? dialog.confirm.remove=Are you sure you want to delete %s? dialog.button.add=Add +dialog.button.ok=\u041E\u041A dialog.button.save=Save dialog.button.cancel=Cancel dialog.button.edit=Edit dialog.button.remove=Remove dialog.button.clear=Clear dialog.button.copy=Copy +dialog.button.yes=Yes +dialog.button.no=No # main.fxml main.title=Trader @@ -77,6 +100,7 @@ main.menu.settings.parameters=Preferences main.menu.settings.filter=Filter main.tab.routes=Routes main.tab.search=Search +main.tab.route=Current route # add item dialog dialog.item.title=Adding new commodity @@ -87,6 +111,18 @@ dialog.group.title=Adding new group dialog.group.id=ID: dialog.group.type=Type: +#profile.fxml +profile.name=Cmdr: +profile.balance=Balance: +profile.system=System: +profile.station=Station: +profile.docked=Docked: +profile.ship.cargo=Cargo: +profile.ship.tank=Fuel tank: +profile.ship.mass=Mass: +profile.ship.engine=Engine: +profile.ship.jump=Jump range, LY: + # items.fxml # itemDesc.fxml @@ -131,6 +167,10 @@ router.button.top=TOP 100 router.pane.total=Total router.pane.total.profit=Profit: router.pane.missions=Missions +router.search.type=Search type: +router.search.byTime=Best time, hours +router.search.byProfit=Best profit, Cr/h +router.search.full=Full scan # settings.fxml settings.title=Settings @@ -142,6 +182,20 @@ settings.emdn.auto=Auto update (sec.): settings.performance=Performance settings.performance.segmentSize=Segment size (0 - auto): settings.performance.limit=Routes count: +settings.edce.on=Active +settings.edce.interval=Update interval, sec. +settings.performance.jumps=Jumps: +settings.performance.landings=Landings: +settings.search=Search options +settings.search.fuelPrice=1t fuel price: +settings.search.pathType=Path priority: +settings.search.times.jump=Hyperjump time: +settings.search.times.landing=Landing time: +settings.search.times.takeoff=Takeoff time: +settings.search.times.recharge=Recharging FSD time: +settings.search.times.orbital=Orbital flight time: +settings.hotkeys=Hotkeys +settings.hotkeys.complete=Target complete: # sEditor.fxml sEditor.title=Star systems editor @@ -155,6 +209,15 @@ filter.radius=Rsdius(LY): filter.distance=Distance to station(Ls): filter.services=Services: filter.excludes=Excludes stations: +filter.stations=Market filters: +filter.stations.global=Default filter + +# vFilter.fxml +filter.stations.legalOnly=Legals only +filter.stations.notBuy=Don't buy +filter.stations.notSell=Don't sell +filter.stations.label.notBuy=Don't buy: +filter.stations.label.notSell=Don't sell: # analyzer progress analyzer.orders.title=Search orders @@ -186,4 +249,22 @@ missions.label.starport=Starport: missions.label.cargo=Cargo: missions.label.quantity=Quantity: missions.label.leftTime=Time left: -missions.label.reward=Reward: \ No newline at end of file +missions.label.reward=Reward: +missions.delivery.text=Deliver %d items to %s at %s +missions.courier.text=Deliver message to %s at %s +missions.supply.text=Supply %d %s to %s at %s + +#helper +helper.system=System: +helper.station=Station: +helper.time=Time: +helper.refuel=Refuel: +helper.sell=Sell: +helper.buy=Buy: +helper.missions=Complete missions: +helper.stations=Stations: +helper.items=Commodities: + +#messages +message.wrongNumber=Wrong number +message.wrongDuration=Wrong duration format, use like 1w1d1h1m1s \ No newline at end of file diff --git a/client/src/main/resources/lang/locale_ru_RU.properties b/client/src/main/resources/lang/locale_ru_RU.properties index cbba566..4194bea 100644 --- a/client/src/main/resources/lang/locale_ru_RU.properties +++ b/client/src/main/resources/lang/locale_ru_RU.properties @@ -5,15 +5,33 @@ market.stations=\u0421\u0442\u0430\u043D\u0446\u0438\u0438 market.groups=\u0413\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432 market.items=\u0422\u043E\u0432\u0430\u0440\u044B market.offers=\u0417\u0430\u043A\u0430\u0437\u044B -market.item.name=\u0422\u043E\u0432\u0430\u0440 -market.system.name=\u0421\u0438\u0441\u0442\u0435\u043C\u0430 -market.station.name=\u0421\u0442\u0430\u043D\u0446\u0438\u044F market.allegiance=\u041F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u043D\u043E\u0441\u0442\u044C market.government=\u0424\u043E\u0440\u043C\u0430 \u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F market.economic=\u042D\u043A\u043E\u043D\u043E\u043C\u0438\u043A\u0430 +market.power=\u0421\u0438\u043B\u0430 +market.powerState=\u0421\u0442\u0430\u0442\u0443\u0441 + +#Item +market.item=\u0422\u043E\u0432\u0430\u0440 +market.item.name=\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 +market.item.illegal=\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D \u0432 +market.item.legal=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D \u0432 + +#Group +market.group=\u0413\u0440\u0443\u043F\u043F\u0430 + +#System +market.system=\u0421\u0438\u0441\u0442\u0435\u043C\u0430 +market.system.name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 + +#Station +market.station=\u0421\u0442\u0430\u043D\u0446\u0438\u044F +market.station.name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 +market.station.distance=\u0414\u0438\u0441\u0442\u0430\u043D\u0446\u0438\u044F market.station.services=\u0421\u0435\u0440\u0432\u0438\u0441\u044B market.station.type=\u0422\u0438\u043F \u0441\u0442\u0430\u043D\u0446\u0438\u0438 + # Offer market.offer.buy=\u041F\u043E\u043A\u0443\u043F\u043A\u0430 market.offer.sell=\u041F\u0440\u043E\u0434\u0430\u0436\u0430 @@ -44,16 +62,21 @@ routes.profitByTime=\u041A\u0440/\u0421\u0435\u043A routes.text.format=\u041F\u0440\u0438\u0431\u044B\u043B\u044C: %.0f \u041A\u0440/\u0442, \u0412\u0440\u0435\u043C\u044F: %s # Dialog +dialog.exception.title=\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F +dialog.exception.label.stacktrace=\u041F\u0440\u0438\u0447\u0438\u043D\u0430 \u0432\u043E\u0437\u043D\u0438\u043A\u043D\u043E\u0432\u0435\u043D\u0438\u044F \u043E\u0448\u0438\u0431\u043A\u0438: +dialog.confirm.title=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F dialog.confirm.save=\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043D\u0435 \u0431\u044B\u043B\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C? dialog.confirm.remove=\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C %s? dialog.button.add=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C +dialog.button.ok=\u041E\u041A dialog.button.save=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C dialog.button.cancel=\u041E\u0442\u043C\u0435\u043D\u0430 dialog.button.edit=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C dialog.button.remove=\u0423\u0434\u0430\u043B\u0438\u0442\u044C dialog.button.clear=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C dialog.button.copy=\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C - +dialog.button.yes=\u0414\u0430 +dialog.button.no=\u041D\u0435\u0442 # main.fxml main.title=\u0422\u043E\u0440\u0433\u043E\u0439\u0434 @@ -78,6 +101,7 @@ main.menu.settings.parameters=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u main.menu.settings.filter=\u0424\u0438\u043B\u044C\u0442\u0440 main.tab.routes=\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B main.tab.search=\u041F\u043E\u0438\u0441\u043A +main.tab.route=\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 # add item dialog dialog.item.title=\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u043E\u0432\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430 @@ -88,6 +112,18 @@ dialog.group.title=\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 dialog.group.id=ID: dialog.group.type=\u0422\u0438\u043F: +#profile.fxml +profile.name=\u041A\u041C\u0414\u0420: +profile.balance=\u0411\u0430\u043B\u0430\u043D\u0441: +profile.system=\u0421\u0438\u0441\u0442\u0435\u043C\u0430: +profile.station=\u0421\u0442\u0430\u043D\u0446\u0438\u044F: +profile.docked=\u0412 \u0434\u043E\u043A\u0435: +profile.ship.cargo=\u0422\u0440\u044E\u043C: +profile.ship.tank=\u0422\u043E\u043F\u043B\u0438\u0432\u043D\u044B\u0439 \u0431\u0430\u043A: +profile.ship.mass=\u041C\u0430\u0441\u0441\u0430: +profile.ship.engine=\u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043B\u044C: +profile.ship.jump=\u0414\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043F\u0440\u044B\u0436\u043A\u0430, LY: + # items.fxml # itemDesc.fxml @@ -131,6 +167,10 @@ router.button.top=TOP 100 router.pane.total=\u0418\u0442\u043E\u0433\u043E router.pane.total.profit=\u041F\u0440\u0438\u0431\u044B\u043B\u044C: router.pane.missions=\u041C\u0438\u0441\u0441\u0438\u0438 +router.search.type=\u0422\u0438\u043F \u043F\u043E\u0438\u0441\u043A\u0430: +router.search.byTime=\u041D\u0430\u0438\u043C\u0435\u043D\u044C\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F, \u0447 +router.search.byProfit=\u041D\u0430\u0438\u0431\u043E\u043B\u044C\u0448\u0430\u044F \u043F\u0440\u0438\u0431\u044B\u043B\u044C, \u041A\u0440/\u0447 +router.search.full=\u0413\u043B\u0443\u0431\u043E\u043A\u0438\u0439 \u043F\u043E\u0438\u0441\u043A # settings.fxml settings.title=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B @@ -142,6 +182,20 @@ settings.emdn.auto=\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0442\u044C \u0430 settings.performance=\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C settings.performance.segmentSize=\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u043E\u0432 \u0432 \u0441\u0435\u0433\u043C\u0435\u043D\u0442\u0435 (0 - \u0430\u0432\u0442\u043E): settings.performance.limit=\u041A\u043E\u043B-\u0432\u043E \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u043E\u0432 \u043D\u0430 \u0432\u044B\u0432\u043E\u0434: +settings.edce.on=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C +settings.edce.interval=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B, \u0441\u0435\u043A. +settings.performance.jumps=\u041F\u0440\u044B\u0436\u043A\u043E\u0432: +settings.performance.landings=\u041F\u043E\u0441\u0430\u0434\u043E\u043A: +settings.search=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u043F\u043E\u0438\u0441\u043A\u0430 +settings.search.fuelPrice=\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C 1\u0442 \u0442\u043E\u043F\u043B\u0438\u0432\u0430: +settings.search.pathType=\u0422\u0438\u043F \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u043E\u0432: +settings.search.times.jump=\u0412\u0440\u0435\u043C\u044F \u0433\u0438\u043F\u0435\u0440\u043F\u0440\u044B\u0436\u043A\u0430: +settings.search.times.landing=\u0412\u0440\u0435\u043C\u044F \u043F\u043E\u0441\u0430\u0434\u043A\u0438: +settings.search.times.takeoff=\u0412\u0440\u0435\u043C\u044F \u0432\u0437\u043B\u0435\u0442\u0430: +settings.search.times.recharge=\u0412\u0440\u0435\u043C\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u0440\u044F\u0434\u043A\u0438 FSD: +settings.search.times.orbital=\u0412\u0440\u0435\u043C\u044F \u043E\u0440\u0431\u0438\u0442\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u043E\u043B\u0435\u0442\u0430: +settings.hotkeys=\u0413\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 +settings.hotkeys.complete=\u0422\u043E\u0447\u043A\u0430 \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0434\u043E\u0441\u0442\u0438\u0433\u043D\u0443\u0442\u0430: # sEditor.fxml sEditor.title=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0437\u0432\u0435\u0437\u0434\u043D\u044B\u0445 \u0441\u0438\u0441\u0442\u0435\u043C @@ -155,6 +209,15 @@ filter.radius=\u0420\u0430\u0434\u0438\u0443\u0441(LY): filter.distance=\u0414\u0438\u0441\u0442\u0430\u043D\u0446\u0438\u044F \u0434\u043E \u0441\u0442\u0430\u043D\u0446\u0438\u0438(Ls): filter.services=\u0421\u0435\u0440\u0432\u0438\u0441\u044B: filter.excludes=\u0418\u0441\u043A\u043B\u044E\u0447\u0430\u0435\u043C\u044B\u0435 \u0441\u0442\u0430\u043D\u0446\u0438\u0438: +filter.stations=\u0424\u0438\u043B\u044C\u0442\u0440\u044B \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B: +filter.stations.global=\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 + +# vFilter.fxml +filter.stations.legalOnly=\u0422\u043E\u043B\u044C\u043A\u043E \u043B\u0435\u0433\u0430\u043B\u044C\u043D\u044B\u0435 +filter.stations.notBuy=\u041D\u0435 \u043F\u043E\u043A\u0443\u043F\u0430\u0442\u044C +filter.stations.notSell=\u041D\u0435 \u043F\u0440\u043E\u0434\u0430\u0432\u0430\u0442\u044C +filter.stations.label.notBuy=\u041D\u0435 \u043F\u043E\u043A\u0443\u043F\u0430\u0442\u044C: +filter.stations.label.notSell=\u041D\u0435 \u043F\u0440\u043E\u0434\u0430\u0432\u0430\u0442\u044C: # analyzer progress analyzer.orders.title=\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u043A\u0430\u0437\u043E\u0432 @@ -187,4 +250,22 @@ missions.label.starport=\u041A\u043E\u0441\u043C\u043E\u043F\u043E\u0440\u0442: missions.label.cargo=\u0413\u0440\u0443\u0437: missions.label.quantity=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E: missions.label.leftTime=\u0412\u0440\u0435\u043C\u044F: -missions.label.reward=\u041D\u0430\u0433\u0440\u0430\u0434\u0430: \ No newline at end of file +missions.label.reward=\u041D\u0430\u0433\u0440\u0430\u0434\u0430: +missions.delivery.text=\u0414\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C %d \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u0432 \u043D\u0430 %s \u0434\u043E %s +missions.courier.text=\u0414\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 %s \u0434\u043E %s +missions.supply.text=\u041A\u0443\u043F\u0438\u0442\u044C \u0438 \u0434\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C %d %s \u043D\u0430 %s \u0434\u043E %s + +#helper +helper.system=\u0421\u0438\u0441\u0442\u0435\u043C\u0430: +helper.station=\u0421\u0442\u0430\u043D\u0446\u0438\u044F: +helper.time=\u0412\u0440\u0435\u043C\u044F: +helper.refuel=\u0417\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u044C: +helper.sell=\u041F\u0440\u043E\u0434\u0430\u0442\u044C: +helper.buy=\u041A\u0443\u043F\u0438\u0442\u044C: +helper.missions=\u0421\u0434\u0430\u0442\u044C \u043C\u0438\u0441\u0441\u0438\u0438: +helper.stations=\u0421\u0442\u0430\u043D\u0446\u0438\u0438: +helper.items=\u0422\u043E\u0432\u0430\u0440\u044B: + +#messages +message.wrongNumber=\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0446\u0438\u0444\u0440\u044B +message.wrongDuration=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043F\u0435\u0440\u0438\u043E\u0434\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0444\u043E\u0440\u043C\u0430\u0442 1w1d1h1m1s \ No newline at end of file diff --git a/client/src/main/resources/lang/locale_ru_RU_FULL.properties b/client/src/main/resources/lang/locale_ru_RU_FULL.properties index 57cc4d3..c705c99 100644 --- a/client/src/main/resources/lang/locale_ru_RU_FULL.properties +++ b/client/src/main/resources/lang/locale_ru_RU_FULL.properties @@ -58,6 +58,23 @@ economic.TOURISM=\u0422\u0443\u0440\u0438\u0437\u043C economic.COLONY=\u041A\u043E\u043B\u043E\u043D\u0438\u044F economic.NONE=\u041D\u0435\u0442 +power.DUVAL=Aisling Duval +power.DELAINE=Archon Delaine +power.LAVIGNY_DUVAL=Arissa Lavigny-Duval +power.PATREUS=Denton Patreus +power.MAHON=Edmund Mahon +power.WINTERS=Felicia Winters +power.YONG_RUI=Li Yong-Rui +power.ANTAL=Pranav Antal +power.HUDSON=Zachary Hudson +power.TORVAL=Zemina Torval +power.NONE=\u041D\u0435\u0442 + +power.states.CONTROL=\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u0443\u0435\u0442\u0441\u044F +power.states.EXPLOITED=\u042D\u043A\u0441\u043F\u043B\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044F +power.states.EXPANSION=\u042D\u043A\u0441\u043F\u0430\u043D\u0441\u0438\u044F +power.states.NONE=\u041D\u0435\u0442 + item.group.chemicals=\u0425\u0438\u043C\u0438\u043A\u0430\u0442\u044B item.explosives=\u0412\u0437\u0440\u044B\u0432\u0447\u0430\u0442\u043A\u0430 item.hydrogenfuel=\u0412\u043E\u0434\u043E\u0440\u043E\u0434\u043D\u043E\u0435 \u0442\u043E\u043F\u043B\u0438\u0432\u043E @@ -178,4 +195,7 @@ item.landmines=\u041C\u0438\u043D\u044B item.nonlethalweapons=\u041D\u0435\u043B\u0435\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u0440\u0443\u0436\u0438\u0435 item.personalweapons=\u041B\u0438\u0447\u043D\u043E\u0435 \u043E\u0440\u0443\u0436\u0438\u0435 item.reactivearmour=\u0420\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430 -item.group.ships=\u041A\u043E\u0440\u0430\u0431\u043B\u0438 \ No newline at end of file +item.group.ships=\u041A\u043E\u0440\u0430\u0431\u043B\u0438 + +#messages +message.wrongDuration=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043F\u0435\u0440\u0438\u043E\u0434\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0444\u043E\u0440\u043C\u0430\u0442 1\u043D1\u04341\u04471\u043C1\u0441 \ No newline at end of file diff --git a/client/src/main/resources/view/db/dbeditor.fxml b/client/src/main/resources/view/db/dbeditor.fxml index 6fbf8f5..a0b8575 100644 --- a/client/src/main/resources/view/db/dbeditor.fxml +++ b/client/src/main/resources/view/db/dbeditor.fxml @@ -10,10 +10,10 @@ - + - + diff --git a/client/src/main/resources/view/db/items.fxml b/client/src/main/resources/view/db/items.fxml index 9c32f79..e114cc2 100644 --- a/client/src/main/resources/view/db/items.fxml +++ b/client/src/main/resources/view/db/items.fxml @@ -18,19 +18,19 @@ - + - + - + - + - + @@ -40,8 +40,8 @@ - - + + diff --git a/client/src/main/resources/view/db/stations.fxml b/client/src/main/resources/view/db/stations.fxml index b0e3397..f6c34c9 100644 --- a/client/src/main/resources/view/db/stations.fxml +++ b/client/src/main/resources/view/db/stations.fxml @@ -13,10 +13,10 @@ fx:controller="ru.trader.db.controllers.StationsController"> - + - + @@ -34,10 +34,10 @@ - + - + @@ -47,9 +47,9 @@ - - - + + + diff --git a/client/src/main/resources/view/db/systems.fxml b/client/src/main/resources/view/db/systems.fxml index 7ef4648..81f8789 100644 --- a/client/src/main/resources/view/db/systems.fxml +++ b/client/src/main/resources/view/db/systems.fxml @@ -13,7 +13,7 @@ fx:controller="ru.trader.db.controllers.SystemsController"> - + @@ -31,10 +31,10 @@ - + - + @@ -45,9 +45,9 @@ - - - + + + diff --git a/client/src/main/resources/view/filter.fxml b/client/src/main/resources/view/filter.fxml index 8e1fc9e..051b84c 100644 --- a/client/src/main/resources/view/filter.fxml +++ b/client/src/main/resources/view/filter.fxml @@ -48,7 +48,7 @@ -