From fc30d6ac80fa6ecc79573913e6cb7d4720d431e0 Mon Sep 17 00:00:00 2001 From: Mürsel Türk Date: Tue, 6 Oct 2020 15:16:07 +0200 Subject: [client] Default language is now english Added also a function that intercepts all exceptions while setting the provided language. --- .../src/main/java/org/openslx/dozmod/App.java | 42 ++++++++++++++++------ 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/App.java b/dozentenmodul/src/main/java/org/openslx/dozmod/App.java index 1ca0fe05..77203d50 100755 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/App.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/App.java @@ -8,6 +8,7 @@ import java.awt.event.ContainerEvent; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; import java.util.HashSet; import java.util.Locale; import java.util.Set; @@ -163,22 +164,18 @@ public class App { setupLogger(); // Setting the locale - // Check first if preferred language exists - if (Config.getPreferredLanguage() != null) { - String[] locale = Config.getPreferredLanguage().split("_"); - Locale.setDefault(new Locale(locale[0], locale[1])); - } else { + if (!setPreferredLanguage()) { // Detect operating system language String ul = System.getProperty("user.language"); - if (ul.equals("en")) { - Locale.setDefault(new Locale("en", "US")); - Config.setPreferredLanguage(Language.EN_US.value); + if (ul.equals("de")) { + Locale.setDefault(new Locale("de", "DE")); + Config.setPreferredLanguage(Language.DE_DE.value); } else if (ul.equals("tr")) { Locale.setDefault(new Locale("tr", "TR")); Config.setPreferredLanguage(Language.TR_TR.value); } else { - Locale.setDefault(new Locale("de", "DE")); - Config.setPreferredLanguage(Language.DE_DE.value); + Locale.setDefault(new Locale("en", "US")); + Config.setPreferredLanguage(Language.EN_US.value); } } @@ -372,6 +369,31 @@ public class App { } } + /** + * Check if any default language is already set and valid. + * @return true, if any default language exists and is valid. + */ + private static boolean setPreferredLanguage() { + // Check if any preferred language exists + String language = Config.getPreferredLanguage(); + // Check whether the provided string is null or empty + if (language == null || language.trim().isEmpty()) { + return false; + } + // Check if the provided string has the format language_country e.g. en_US + String[] parts = language.split("_"); + if (parts.length != 2) { + return false; + } + Locale locale = new Locale(parts[0], parts[1]); + // Check now if the locale is valid + if (!Arrays.asList(Locale.getAvailableLocales()).contains(locale)) { + return false; + } + Locale.setDefault(locale); + return true; + } + public static synchronized boolean isInitDone() { return proxyInitDone; } -- cgit v1.2.3-55-g7522