diff --git a/AndorsTrail/res/values/arrays.xml b/AndorsTrail/res/values/arrays.xml
index c50962c79..0310341fa 100644
--- a/AndorsTrail/res/values/arrays.xml
+++ b/AndorsTrail/res/values/arrays.xml
@@ -144,9 +144,11 @@
- Português Brasil (82%)
- Русский язык (96%)
+
+
- default
- - en
+ - en-US
- de
- es
- fr
diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
index f85488213..932b150c2 100644
--- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
+++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
@@ -70,7 +70,6 @@ public final class AndorsTrailApplication extends Application {
private Pair lastLocale = null;
- @SuppressLint("NewApi")
public boolean setLocale(Activity context) {
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
@@ -80,11 +79,7 @@ public final class AndorsTrailApplication extends Application {
if (lastLocale != null && lastLocale.first == preferences.language) {
targetLocale = lastLocale.second;
} else {
- if (preferences.language.equalsIgnoreCase("default")) {
- targetLocale = defaultLocale;
- } else {
- targetLocale = Locale.forLanguageTag(preferences.language);
- }
+ targetLocale = localeForLanguageTag(preferences.language);
lastLocale = new Pair(preferences.language, targetLocale);
}
@@ -98,7 +93,23 @@ public final class AndorsTrailApplication extends Application {
return true;
}
-
+
+ // Supports language or language_COUNTRY in short form e.g. "en" or "en_US"
+ private Locale localeForLanguageTag(String languageTag) {
+ Locale locale = null;
+ if (languageTag != null && !languageTag.equalsIgnoreCase("default")) {
+ final int pos = languageTag.indexOf('-');
+ if (pos == -1) {
+ locale = new Locale(languageTag);
+ }
+ else locale = new Locale(languageTag.substring(0, pos), languageTag.substring(pos+1));
+ }
+ if (locale == null) {
+ locale = defaultLocale;
+ }
+ return locale;
+ }
+
/**
* Logging to text file system as found on https://stackoverflow.com/questions/19565685/saving-logcat-to-a-text-file-in-android-device
*/