Languages in their original names

This commit is contained in:
stom79 2018-12-15 10:59:43 +01:00
parent 68beac1bae
commit 2a742807e3
5 changed files with 163 additions and 55 deletions

View File

@ -25,6 +25,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.net.Uri; import android.net.Uri;
@ -725,7 +726,9 @@ public abstract class BaseMainActivity extends BaseActivity
tabPosition.put("art",i); tabPosition.put("art",i);
} }
if( i > 3 && !Helper.isTablet(getApplicationContext())){ if( (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
tabLayout.setTabMode(TabLayout.MODE_FIXED);
else if( i > 3 && !Helper.isTablet(getApplicationContext())){
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}else{ }else{
tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setTabMode(TabLayout.MODE_FIXED);

View File

@ -53,8 +53,8 @@ public class MainApplication extends MultiDexApplication {
try { try {
List<Locale> SUPPORTED_LOCALES = new ArrayList<>(); List<Locale> SUPPORTED_LOCALES = new ArrayList<>();
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.getDefault())); String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE_NEW, Helper.getDefaultLocale());
Locale defaultLocale = Helper.restoreLocaleFromString(defaultLocaleString); Locale defaultLocale = new Locale(defaultLocaleString);
SUPPORTED_LOCALES.add(defaultLocale); SUPPORTED_LOCALES.add(defaultLocale);
LocaleChanger.initialize(getApplicationContext(), SUPPORTED_LOCALES); LocaleChanger.initialize(getApplicationContext(), SUPPORTED_LOCALES);
}catch (Exception ignored){ignored.printStackTrace();} }catch (Exception ignored){ignored.printStackTrace();}

View File

@ -636,6 +636,8 @@ public class SettingsFragment extends Fragment {
}); });
String currentLanguage = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE_NEW, Helper.localeToStringStorage(Locale.getDefault()));
Locale currentLocale = Helper.restoreLocaleFromString(currentLanguage);
final Spinner set_change_locale = rootView.findViewById(R.id.set_change_locale); final Spinner set_change_locale = rootView.findViewById(R.id.set_change_locale);
ArrayAdapter<String> adapterLocale = new ArrayAdapter<>(context, ArrayAdapter<String> adapterLocale = new ArrayAdapter<>(context,
android.R.layout.simple_spinner_dropdown_item, Helper.getLocales(context)); android.R.layout.simple_spinner_dropdown_item, Helper.getLocales(context));
@ -651,75 +653,78 @@ public class SettingsFragment extends Fragment {
SharedPreferences.Editor editor = sharedpreferences.edit(); SharedPreferences.Editor editor = sharedpreferences.edit();
switch (position) { switch (position) {
case 0: case 0:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.getDefault())); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, Helper.getDefaultLocale());
editor.commit(); editor.commit();
break; break;
case 1: case 1:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ENGLISH)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "en");
editor.commit(); editor.commit();
break; break;
case 2: case 2:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.FRANCE)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "fr");
editor.commit(); editor.commit();
break; break;
case 3: case 3:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.GERMAN)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "de");
editor.commit(); editor.commit();
break; break;
case 4: case 4:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ITALIAN)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "it");
editor.commit(); editor.commit();
break; break;
case 5: case 5:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.JAPAN)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "ja");
editor.commit(); editor.commit();
break; break;
case 6: case 6:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.SIMPLIFIED_CHINESE)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW,"zh-TW");
editor.commit(); editor.commit();
break; break;
case 7: case 7:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.TRADITIONAL_CHINESE)); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "zh-CN");
editor.commit(); editor.commit();
break; break;
case 8: case 8:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("eu"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "eu");
editor.commit(); editor.commit();
break; break;
case 9: case 9:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("ar"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "ar");
editor.commit(); editor.commit();
break; break;
case 10: case 10:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("nl"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "nl");
editor.commit(); editor.commit();
break; break;
case 11: case 11:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("gl"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "gl");
editor.commit(); editor.commit();
break; break;
case 12: case 12:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("el"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "el");
editor.commit(); editor.commit();
break; break;
case 13: case 13:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pt"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "pt");
editor.commit(); editor.commit();
break; break;
case 14: case 14:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("es"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "es");
editor.commit(); editor.commit();
break; break;
case 15: case 15:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pl"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "pl");
editor.commit(); editor.commit();
break; break;
case 16: case 16:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("sr"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "sr");
editor.commit(); editor.commit();
break; break;
case 17: case 17:
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("uk"))); editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "uk");
editor.commit();
case 18:
editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "ru");
editor.commit(); editor.commit();
break; break;
} }

View File

@ -282,7 +282,7 @@ public class Helper {
public static final String SET_DISPLAY_VIDEO_PREVIEWS= "set_display_video_previews"; public static final String SET_DISPLAY_VIDEO_PREVIEWS= "set_display_video_previews";
public static final String SET_OLD_DIRECT_TIMELINE = "sset_old_direct_timeline"; public static final String SET_OLD_DIRECT_TIMELINE = "sset_old_direct_timeline";
public static final String SET_BATTERY_PROFILE = "set_battery_profile"; public static final String SET_BATTERY_PROFILE = "set_battery_profile";
public static final String SET_DEFAULT_LOCALE = "set_default_locale"; public static final String SET_DEFAULT_LOCALE_NEW = "set_default_locale_new";
public static final int S_512KO = 1; public static final int S_512KO = 1;
public static final int S_1MO = 2; public static final int S_1MO = 2;
public static final int S_2MO = 3; public static final int S_2MO = 3;
@ -2900,47 +2900,140 @@ public class Helper {
} }
} }
public static String[] getLocales(Context context){ public static String[] getLocales(Context context){
String[] locale = new String[18]; String[] locale = new String[19];
locale[0] = context.getString(R.string.default_language); locale[0] = context.getString(R.string.default_language);
locale[1] = Locale.ENGLISH.getDisplayLanguage(); locale[1] = context.getString(R.string.english);
locale[2] = Locale.FRANCE.getDisplayLanguage(); locale[2] = context.getString(R.string.french);
locale[3] = Locale.GERMAN.getDisplayLanguage(); locale[3] = context.getString(R.string.german);
locale[4] = Locale.ITALIAN.getDisplayLanguage(); locale[4] = context.getString(R.string.italian);
locale[5] = Locale.JAPAN.getDisplayLanguage(); locale[5] = context.getString(R.string.japanese);
locale[6] = Locale.SIMPLIFIED_CHINESE.getDisplayLanguage(); locale[6] = context.getString(R.string.simplified_chinese);
locale[7] = Locale.TRADITIONAL_CHINESE.getDisplayLanguage(); locale[7] = context.getString(R.string.traditional_chinese);
locale[8] = new Locale("eu").getDisplayLanguage(); locale[8] = context.getString(R.string.basque);
locale[9] = new Locale("ar").getDisplayLanguage(); locale[9] = context.getString(R.string.arabic);
locale[10] = new Locale("nl").getDisplayLanguage(); locale[10] = context.getString(R.string.dutch);
locale[11] = new Locale("gl").getDisplayLanguage(); locale[11] = context.getString(R.string.galician);
locale[12] = new Locale("el").getDisplayLanguage(); locale[12] = context.getString(R.string.greek);
locale[13] = new Locale("pt").getDisplayLanguage(); locale[13] = context.getString(R.string.portuguese);
locale[14] = new Locale("es").getDisplayLanguage(); locale[14] = context.getString(R.string.spanish);
locale[15] = new Locale("pl").getDisplayLanguage(); locale[15] = context.getString(R.string.polish);
locale[16] = new Locale("sr").getDisplayLanguage(); locale[16] = context.getString(R.string.serbian);
locale[17] = new Locale("uk").getDisplayLanguage(); locale[17] = context.getString(R.string.ukrainian);
locale[18] = context.getString(R.string.russian);
return locale;
}
public static String getLocalesTwoChars(int stringLocaleId){
switch (stringLocaleId){
case R.string.default_language:
return Locale.getDefault().getLanguage();
case R.string.english:
return "en";
case R.string.french:
return "fr";
case R.string.arabic:
return "ar";
case R.string.kabyle:
return "kab";
case R.string.italian:
return "it";
case R.string.catalan:
return "ca";
case R.string.german:
return "de";
case R.string.spanish:
return "es";
case R.string.welsh:
return "cy";
case R.string.polish:
return "pl";
case R.string.traditional_chinese:
return "zh-TW";
case R.string.simplified_chinese:
return "zh-CN";
case R.string.basque:
return "eu";
case R.string.hindi:
return "hi";
case R.string.japanese:
return "ja";
case R.string.dutch:
return "nl";
case R.string.galician:
return "gl";
case R.string.greek:
return "el";
case R.string.portuguese:
return "pt";
case R.string.serbian:
return "sr";
case R.string.ukrainian:
return "uk";
case R.string.russian:
return "ru";
default:
return Locale.getDefault().getLanguage();
}
}
public static String getDefaultLocale(){
String locale = Locale.getDefault().getCountry();
if( locale.startsWith("zh")){
if( Locale.getDefault().getLanguage().equals("TW") || Locale.getDefault().getLanguage().equals("CN"))
locale = Locale.getDefault().getCountry() + "-" + Locale.getDefault().getLanguage();
else
locale = Locale.getDefault().getCountry() + "-TW";
}
return locale; return locale;
} }
public static int languageSpinnerPosition(Context context){ public static int languageSpinnerPosition(Context context){
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.getDefault())); String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE_NEW, "NOT_DEFINED");
Locale defaultLocale = Helper.restoreLocaleFromString(defaultLocaleString); switch (defaultLocaleString){
if( defaultLocale == null) case "NOT_DEFINED":
return 0; return 0;
String language = defaultLocale.getDisplayLanguage(); case "en":
String[] locales = getLocales(context); return 1;
int index = 0; case "fr":
for (int i=0;i<locales.length;i++) { return 2;
if (locales[i].equals(language)) { case "de":
index = i; return 3;
break; case "it":
} return 4;
case "ja":
return 5;
case "zh-TW":
return 6;
case "zh-CN":
return 7;
case "eu":
return 8;
case "ar":
return 9;
case "nl":
return 10;
case "gl":
return 11;
case "el":
return 12;
case "pt":
return 13;
case "es":
return 14;
case "pl":
return 15;
case "sr":
return 16;
case "uk":
return 17;
case "ru":
return 18;
default:
return 0;
} }
return index;
} }
public static RetrieveFeedsAsyncTask.Type timelineType(Context context, int position){ public static RetrieveFeedsAsyncTask.Type timelineType(Context context, int position){

View File

@ -753,6 +753,13 @@
<string name="basque" translatable="false">Euskara</string> <string name="basque" translatable="false">Euskara</string>
<string name="hindi" translatable="false">हिंदी</string> <string name="hindi" translatable="false">हिंदी</string>
<string name="japanese" translatable="false">日本語</string> <string name="japanese" translatable="false">日本語</string>
<string name="dutch" translatable="false">Nederlands</string>
<string name="galician" translatable="false">Galego</string>
<string name="greek" translatable="false">Ελληνικά</string>
<string name="portuguese" translatable="false">Português</string>
<string name="serbian" translatable="false">Српски</string>
<string name="ukrainian" translatable="false">Українська</string>
<string name="russian" translatable="false">Русский</string>
<!-- end languages --> <!-- end languages -->
</resources> </resources>