diff options
| author | Mürsel Türk | 2020-10-06 15:16:07 +0200 |
|---|---|---|
| committer | Mürsel Türk | 2020-10-06 15:16:07 +0200 |
| commit | fc30d6ac80fa6ecc79573913e6cb7d4720d431e0 (patch) | |
| tree | 4249047759cb276bdcf1a2bae234e5c2a1a79656 /dozentenmodul/src/main/java/org | |
| parent | [client] Add combobox for choosing language (diff) | |
| download | tutor-module-fc30d6ac80fa6ecc79573913e6cb7d4720d431e0.tar.gz tutor-module-fc30d6ac80fa6ecc79573913e6cb7d4720d431e0.tar.xz tutor-module-fc30d6ac80fa6ecc79573913e6cb7d4720d431e0.zip | |
[client] Default language is now english
Added also a function that intercepts all exceptions while setting the provided language.
Diffstat (limited to 'dozentenmodul/src/main/java/org')
| -rwxr-xr-x | dozentenmodul/src/main/java/org/openslx/dozmod/App.java | 42 |
1 files changed, 32 insertions, 10 deletions
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; } |
