Adding configuration setting and supporting code to choose language (#168)

This commit is contained in:
Don Kimberlin 2020-06-18 23:33:43 -07:00 committed by GitHub
parent 18fd3a2384
commit 6ad310c398
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 81 additions and 1 deletions

View File

@ -19,12 +19,15 @@
package net.schueller.peertube.activity; package net.schueller.peertube.activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import java.util.Locale;
import static net.schueller.peertube.helper.Constants.DEFAULT_THEME; import static net.schueller.peertube.helper.Constants.DEFAULT_THEME;
import static net.schueller.peertube.helper.Constants.THEME_PREF_KEY; import static net.schueller.peertube.helper.Constants.THEME_PREF_KEY;
@ -45,6 +48,21 @@ public class CommonActivity extends AppCompatActivity {
"style", "style",
getPackageName()) getPackageName())
); );
// Set language
String countryCode=sharedPref.getString("pref_language_app","en");
Locale locale=new Locale(countryCode);;
//Neither Chinese language choice was working, found this fix on stack overflow
if(countryCode.equals("zh-rCN"))
locale = Locale.SIMPLIFIED_CHINESE;
if(countryCode.equals("zh-rTW"))
locale = Locale.TRADITIONAL_CHINESE;
Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
} }
} }

View File

@ -433,6 +433,58 @@
<item>za</item> <item>za</item>
<item>zu</item> <item>zu</item>
</string-array> </string-array>
<string-array name="supportedLanguagesValues">
<item>ar</item>
<item>bn</item>
<item>cs</item>
<item>de</item>
<item>el</item>
<item>en</item>
<item>es</item>
<item>fa</item>
<item>fi</item>
<item>fr</item>
<item>gd</item>
<item>hi</item>
<item>it</item>
<item>ja</item>
<item>no</item>
<item>nl</item>
<item>pl</item>
<item>ru</item>
<item>sv</item>
<item>tr</item>
<item>zh-rCN</item>
<item>zh-rTW</item>
</string-array>
<string-array name = "supportedLanguagesArray">
<item>@string/ar</item>
<item>@string/bn</item>
<item>@string/cs</item>
<item>@string/de</item>
<item>@string/el</item>
<item>@string/en</item>
<item>@string/es</item>
<item>@string/fa</item>
<item>@string/fi</item>
<item>@string/fr</item>
<item>@string/gd</item>
<item>@string/hi</item>
<item>@string/it</item>
<item>@string/ja</item>
<item>@string/no</item>
<item>@string/nl</item>
<item>@string/pl</item>
<item>@string/ru</item>
<item>@string/sv</item>
<item>@string/tr</item>
<item>@string/zh</item>
<item>@string/tw</item>
</string-array>
<string-array name="empty_array"/> <string-array name="empty_array"/>
<string-array name="quality"> <string-array name="quality">

View File

@ -60,9 +60,10 @@
<string name="pref_title_peertube_server">PeerTube Server</string> <string name="pref_title_peertube_server">PeerTube Server</string>
<string name="pref_title_background_play">Background Playback</string> <string name="pref_title_background_play">Background Playback</string>
<string name="pref_description_background_play">If enabled, continues to play video in background.</string> <string name="pref_description_background_play">If enabled, continues to play video in background.</string>
<string name="pref_language_app">Application Language</string>
<string name="pref_description_language_app">Select language for application interface. Restart app for change to take effect.</string>
<string name="pref_title_back_pause">Pause on back button</string> <string name="pref_title_back_pause">Pause on back button</string>
<string name="pref_description_back_pause">Pause background play when pressing back during video playback.</string> <string name="pref_description_back_pause">Pause background play when pressing back during video playback.</string>
<!-- languages --> <!-- languages -->
<string name="ab">Abkhazian</string> <string name="ab">Abkhazian</string>
<string name="aa">Afar</string> <string name="aa">Afar</string>

View File

@ -30,6 +30,15 @@
android:summary="@string/pref_description_back_pause" android:summary="@string/pref_description_back_pause"
android:title="@string/pref_title_back_pause" /> android:title="@string/pref_title_back_pause" />
<ListPreference
android:defaultValue="@array/empty_array"
android:entries="@array/supportedLanguagesArray"
android:entryValues="@array/supportedLanguagesValues"
android:key="pref_language_app"
android:summary="@string/pref_description_language_app"
android:title="@string/pref_language_app" />
/>
<ListPreference <ListPreference
android:title="@string/pref_title_app_theme" android:title="@string/pref_title_app_theme"
android:summary="@string/pref_description_app_theme" android:summary="@string/pref_description_app_theme"