summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorMürsel Türk2020-10-06 15:16:07 +0200
committerMürsel Türk2020-10-06 15:16:07 +0200
commitfc30d6ac80fa6ecc79573913e6cb7d4720d431e0 (patch)
tree4249047759cb276bdcf1a2bae234e5c2a1a79656 /dozentenmodul/src/main/java
parent[client] Add combobox for choosing language (diff)
downloadtutor-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')
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/App.java42
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;
}