diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 2aa5f5504..8723c2d2a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -647,6 +647,9 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
Liste der Konten
Liste der Nachrichten
Theme
+ Sprache
+
+ Systemvorgabe
Hintergrund-Synchronisierung
Nie
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index fd91ec62d..500e1cf70 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -309,30 +309,168 @@
- @string/setting_language_system
- - @string/setting_language_chinese
- - @string/setting_language_czech
- - @string/setting_language_english
- - @string/setting_language_german
- - @string/setting_language_france
- - @string/setting_language_italian
- - @string/setting_language_japanese
- - @string/setting_language_polish
- - @string/setting_language_spanish
- - @string/setting_language_russian
+ - Afrikaans
+ - Bahasa indonesia
+ - Bahasa melayu
+ - Bamanankan
+ - Català
+ - Cymraeg
+ - Dansk
+ - Deutsch
+ - Dholuo
+ - Eesti
+ - Español
+ - Fulfulde, Pulaar, Pular
+ - Gaeilge
+ - Galego
+ - Hausa
+ - Hrvatski
+ - Kinyarwanda
+ - Kirundi
+ - Kiswahili
+ - Latviešu
+ - Lietuviškai
+ - Magyar
+ - Malti
+ - Nederlands
+ - Norsk
+ - Pyccĸий
+ - Română
+ - Slovenčina
+ - Slovenščina
+ - Somali
+ - Српски
+ - Tiếng Việt
+ - Tϋrkçe
+ - Wolof
+ - Yorùbá
+ - Azərbaycan
+ - Euskera
+ - Français
+ - isiXhosa
+ - isiZulu
+ - Italiano
+ - O\'zbek
+ - Polski
+ - Português
+ - Shqip
+ - Suomi
+ - Svenska
+ - Íslenska
+ - Čeština
+ - Ɛʋɛ
+ - Ελληνικά
+ - Беларуская
+ - Български
+ - Кыргыз
+ - Македонски
+ - Українська
+ - аҧсуа бызшәа
+ - Қазақ
+ - Հայերեն
+ - עברית
+ - اردو
+ - العربية
+ - فارسی
+ - پښتو
+ - हिंदी
+ - తెలుగు
+ - ಕನ್ನಡ
+ - ภาษาไทย
+ - አማርኛ
+ - 中文
+ - 日本語
+ - 한국어
- - zh
- - cs
- - en
+ - af
+ - id
+ - ms
+ - bm
+ - ca
+ - cy
+ - da
- de
+ - luo
+ - et
+ - es
+ - ff
+ - ga
+ - gl
+ - ha
+ - hr
+ - rw
+ - rn
+ - sw
+ - lv
+ - lt
+ - hu
+ - mt
+ - nl
+ - no
+ - ru
+ - ro
+ - sk
+ - sl
+ - so
+ - sr
+ - vi
+ - tr
+ - wo
+ - yo
+ - az
+ - eu
+ - fr
+ - xs
+ - zu
+ - it
+ - uz
+ - pl
+ - pt
+ - sq
+ - fi
+ - sv
+ - is
+ - cs
+ - ee
+ - el
+ - be
+ - bg
+ - ky
+ - mk
+ - uk
+ - ab
+ - kk
+ - hy
+ - he
+ - ur
+ - ar
+ - fa
+ - ps
+ - hi
+ - te
+ - kn
+ - th
+ - am
+ - zh
+ - ja
+ - ko
+
+
+
+
+ - cs
+ - de
+ - en
+ - es
- fr
- it
- ja
- pl
- - es
- ru
+ - zh
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 962370f19..5da2d5b60 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -751,16 +751,6 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
Language
System default
- Chinese
- Czech
- English
- German
- French
- Italian
- Japanese
- Polish
- Spanish
- Russian
Background sync
Never
diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java
index a29cd9957..e64e94958 100644
--- a/src/com/fsck/k9/activity/setup/Prefs.java
+++ b/src/com/fsck/k9/activity/setup/Prefs.java
@@ -1,5 +1,9 @@
package com.fsck.k9.activity.setup;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Vector;
+
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -9,6 +13,7 @@ import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.view.KeyEvent;
+
import com.fsck.k9.K9;
import com.fsck.k9.Preferences;
import com.fsck.k9.R;
@@ -81,6 +86,21 @@ public class Prefs extends K9PreferenceActivity
addPreferencesFromResource(R.xml.global_preferences);
mLanguage = (ListPreference) findPreference(PREFERENCE_LANGUAGE);
+ Vector entryVector = new Vector(Arrays.asList(mLanguage.getEntries()));
+ Vector entryValueVector = new Vector(Arrays.asList(mLanguage.getEntryValues()));
+ String supportedLanguages[] = getResources().getStringArray(R.array.supported_languages);
+ HashSet supportedLanguageSet = new HashSet(Arrays.asList(supportedLanguages));
+ for (int i = entryVector.size() - 1; i > -1; --i)
+ {
+ if (!supportedLanguageSet.contains(entryValueVector.get(i)))
+ {
+ entryVector.remove(i);
+ entryValueVector.remove(i);
+ }
+ }
+ CharSequence dummy[] = new CharSequence[0];
+ mLanguage.setEntries(entryVector.toArray(dummy));
+ mLanguage.setEntryValues(entryValueVector.toArray(dummy));
mLanguage.setValue(K9.getK9Language());
mLanguage.setSummary(mLanguage.getEntry());
mLanguage.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()