diff --git a/src/main/java/de/doubleslash/keeptime/App.java b/src/main/java/de/doubleslash/keeptime/App.java index 2c3ff0a3..fc48185c 100644 --- a/src/main/java/de/doubleslash/keeptime/App.java +++ b/src/main/java/de/doubleslash/keeptime/App.java @@ -21,6 +21,7 @@ import java.io.StringWriter; import java.time.LocalDate; import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.stream.Collectors; @@ -84,6 +85,9 @@ public class App extends Application { @Override public void init() throws Exception { LOG.info("Starting KeepTime."); + + setLocaleToEnglish(); + final DefaultExceptionHandler defaultExceptionHandler = new DefaultExceptionHandler(); defaultExceptionHandler.register(); @@ -102,6 +106,22 @@ public void init() throws Exception { model.setSpringContext(springContext); } + private void setLocaleToEnglish() { + final Locale systemDefaultLocale = Locale.getDefault(); + final Locale wantedApplicationLocale = Locale.ENGLISH; + + if (systemDefaultLocale.getLanguage().equals(wantedApplicationLocale.getLanguage())) { + LOG.debug("Application locale already is '{}'. Nothing to do.", wantedApplicationLocale); + return; + } + + LOG.info("Setting application locale to '{}', was '{}'.", wantedApplicationLocale, systemDefaultLocale); + Locale.setDefault(wantedApplicationLocale); + Locale.setDefault(Locale.Category.DISPLAY, wantedApplicationLocale); + // keep system locale for format conversions (date, currency, numbers) + Locale.setDefault(Locale.Category.FORMAT, systemDefaultLocale); + } + @Override public void start(final Stage primaryStage) { LOG.info("Initialising the UI"); @@ -117,12 +137,13 @@ public void start(final Stage primaryStage) { } } - public static void showErrorDialogAndWait(String title, String header, String content, final Exception e, Window window) { + public static void showErrorDialogAndWait(String title, String header, String content, final Exception e, + Window window) { final Alert alert = new Alert(AlertType.ERROR); alert.setTitle(title); alert.setHeaderText(header); alert.setContentText(content); - if(window != null) { + if (window != null) { alert.initOwner(window); } final StringWriter sw = new StringWriter();