mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	changed the way to change language, now is «NewPipe's language» selector
This commit is contained in:
		| @@ -56,7 +56,6 @@ import androidx.fragment.app.FragmentManager; | ||||
| import com.google.android.material.navigation.NavigationView; | ||||
|  | ||||
| import org.schabi.newpipe.extractor.NewPipe; | ||||
| import org.schabi.newpipe.extractor.ServiceList; | ||||
| import org.schabi.newpipe.extractor.StreamingService; | ||||
| import org.schabi.newpipe.extractor.exceptions.ExtractionException; | ||||
| import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance; | ||||
| @@ -67,7 +66,6 @@ import org.schabi.newpipe.fragments.list.search.SearchFragment; | ||||
| import org.schabi.newpipe.report.ErrorActivity; | ||||
| import org.schabi.newpipe.util.Constants; | ||||
| import org.schabi.newpipe.util.KioskTranslator; | ||||
| import org.schabi.newpipe.util.Localization; | ||||
| import org.schabi.newpipe.util.NavigationHelper; | ||||
| import org.schabi.newpipe.util.PeertubeHelper; | ||||
| import org.schabi.newpipe.util.PermissionHelper; | ||||
| @@ -78,8 +76,10 @@ import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Locale; | ||||
|  | ||||
| import static org.schabi.newpipe.util.Localization.changeAppLanguage; | ||||
| import static org.schabi.newpipe.util.Localization.getAppLanguage; | ||||
|  | ||||
| public class MainActivity extends AppCompatActivity { | ||||
|     private static final String TAG = "MainActivity"; | ||||
| @@ -116,10 +116,9 @@ public class MainActivity extends AppCompatActivity { | ||||
|         if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { | ||||
|             TLSSocketFactoryCompat.setAsDefault(); | ||||
|         } | ||||
|  | ||||
|         ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this)); | ||||
|  | ||||
|         changeAppLanguage(Localization.getPreferredLocale(getApplicationContext()), getResources()); | ||||
|         changeAppLanguage(getAppLanguage(getApplicationContext()), getResources()); | ||||
|  | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_main); | ||||
| @@ -424,6 +423,7 @@ public class MainActivity extends AppCompatActivity { | ||||
|  | ||||
|     @Override | ||||
|     protected void onResume() { | ||||
|         changeAppLanguage(getAppLanguage(getApplicationContext()), getResources()); | ||||
|         super.onResume(); | ||||
|  | ||||
|         // close drawer on return, and don't show animation, so its looks like the drawer isn't open | ||||
|   | ||||
| @@ -25,6 +25,11 @@ import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.util.NavigationHelper; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.Locale; | ||||
|  | ||||
| import static org.schabi.newpipe.util.Localization.changeAppLanguage; | ||||
| import static org.schabi.newpipe.util.Localization.getAppLanguage; | ||||
|  | ||||
| public class AboutActivity extends AppCompatActivity { | ||||
|  | ||||
|     /** | ||||
| @@ -62,6 +67,7 @@ public class AboutActivity extends AppCompatActivity { | ||||
|  | ||||
|     @Override | ||||
|     protected void onCreate(Bundle savedInstanceState) { | ||||
|         changeAppLanguage(getAppLanguage(getApplicationContext()), getResources()); | ||||
|         super.onCreate(savedInstanceState); | ||||
|         ThemeHelper.setTheme(this); | ||||
|  | ||||
|   | ||||
| @@ -15,9 +15,14 @@ import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.settings.SettingsActivity; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.Locale; | ||||
|  | ||||
| import us.shandian.giga.service.DownloadManagerService; | ||||
| import us.shandian.giga.ui.fragment.MissionsFragment; | ||||
|  | ||||
| import static org.schabi.newpipe.util.Localization.changeAppLanguage; | ||||
| import static org.schabi.newpipe.util.Localization.getAppLanguage; | ||||
|  | ||||
| public class DownloadActivity extends AppCompatActivity { | ||||
|  | ||||
|     private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag"; | ||||
| @@ -29,6 +34,7 @@ public class DownloadActivity extends AppCompatActivity { | ||||
|         i.setClass(this, DownloadManagerService.class); | ||||
|         startService(i); | ||||
|  | ||||
|         changeAppLanguage(getAppLanguage(getApplicationContext()), getResources()); | ||||
|         ThemeHelper.setTheme(this); | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_downloader); | ||||
|   | ||||
| @@ -56,6 +56,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | ||||
|  | ||||
|     private Localization initialSelectedLocalization; | ||||
|     private ContentCountry initialSelectedContentCountry; | ||||
|     private String initialLanguage; | ||||
|  | ||||
|     @Override | ||||
|     public void onCreate(@Nullable Bundle savedInstanceState) { | ||||
| @@ -64,6 +65,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | ||||
|  | ||||
|         initialSelectedLocalization = org.schabi.newpipe.util.Localization.getPreferredLocalization(requireContext()); | ||||
|         initialSelectedContentCountry = org.schabi.newpipe.util.Localization.getPreferredContentCountry(requireContext()); | ||||
|         initialLanguage = androidx.preference.PreferenceManager.getDefaultSharedPreferences(getContext()).getString("newpipes_language_key", "en"); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -125,9 +127,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | ||||
|                 .getPreferredLocalization(requireContext()); | ||||
|         final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization | ||||
|                 .getPreferredContentCountry(requireContext()); | ||||
|         final String selectedLanguage = androidx.preference.PreferenceManager.getDefaultSharedPreferences(getContext()).getString("newpipes_language_key", "en"); | ||||
|  | ||||
|         if (!selectedLocalization.equals(initialSelectedLocalization) | ||||
|                 || !selectedContentCountry.equals(initialSelectedContentCountry)) { | ||||
|                 || !selectedContentCountry.equals(initialSelectedContentCountry) || !selectedLanguage.equals(initialLanguage)) { | ||||
|             Toast.makeText(requireContext(), R.string.localization_changes_requires_app_restart, Toast.LENGTH_LONG).show(); | ||||
|  | ||||
|             NewPipe.setupLocalization(selectedLocalization, selectedContentCountry); | ||||
|   | ||||
| @@ -14,6 +14,11 @@ import android.view.MenuItem; | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.Locale; | ||||
|  | ||||
| import static org.schabi.newpipe.util.Localization.changeAppLanguage; | ||||
| import static org.schabi.newpipe.util.Localization.getAppLanguage; | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Created by Christian Schabesberger on 31.08.15. | ||||
| @@ -44,7 +49,7 @@ public class SettingsActivity extends AppCompatActivity implements BasePreferenc | ||||
|     @Override | ||||
|     protected void onCreate(Bundle savedInstanceBundle) { | ||||
|         setTheme(ThemeHelper.getSettingsThemeStyle(this)); | ||||
|  | ||||
|         changeAppLanguage(getAppLanguage(getApplicationContext()), getResources()); | ||||
|         super.onCreate(savedInstanceBundle); | ||||
|         setContentView(R.layout.settings_layout); | ||||
|  | ||||
|   | ||||
| @@ -7,6 +7,11 @@ import android.content.res.Resources; | ||||
| import android.preference.PreferenceManager; | ||||
| import android.text.TextUtils; | ||||
| import android.util.DisplayMetrics; | ||||
| import android.widget.Toast; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.PluralsRes; | ||||
| import androidx.annotation.StringRes; | ||||
|  | ||||
| import org.ocpsoft.prettytime.PrettyTime; | ||||
| import org.ocpsoft.prettytime.units.Decade; | ||||
| @@ -21,10 +26,6 @@ import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Locale; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.PluralsRes; | ||||
| import androidx.annotation.StringRes; | ||||
|  | ||||
| /* | ||||
|  * Created by chschtsch on 12/29/15. | ||||
|  * | ||||
| @@ -226,4 +227,21 @@ public class Localization { | ||||
|         conf.setLocale(loc); | ||||
|         res.updateConfiguration(conf, dm); | ||||
|     } | ||||
|  | ||||
|     public static Locale getAppLanguage(Context context) { | ||||
|         SharedPreferences prefs = androidx.preference.PreferenceManager.getDefaultSharedPreferences(context); | ||||
|         String lang = prefs.getString("newpipes_language_key", "en"); | ||||
|         Locale loc; | ||||
|         if (lang.equals("system")) { | ||||
|             loc = Locale.getDefault(); | ||||
|         } else if (lang.matches(".*-.*")) { | ||||
|             String[] localisation = lang.split("-"); | ||||
|             lang = localisation[0]; | ||||
|             String country = localisation[1]; | ||||
|             loc = new Locale(lang, country); | ||||
|         } else { | ||||
|             loc = new Locale(lang); | ||||
|         } | ||||
|         return loc; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -193,13 +193,13 @@ | ||||
|     <string name="short_billion">بی</string> | ||||
|     <string name="no_subscribers">کوئی صارفین نہیں</string> | ||||
|     <plurals name="subscribers"> | ||||
|         <item quantity="one">% s صارف</item> | ||||
|         <item quantity="other">% s صارفین</item> | ||||
|         <item quantity="one">%s صارف</item> | ||||
|         <item quantity="other">%s صارفین</item> | ||||
|     </plurals> | ||||
|     <string name="no_views">کوئی مناظر نہیں</string> | ||||
|     <plurals name="views"> | ||||
|         <item quantity="one">% s منظر</item> | ||||
|         <item quantity="other">% s مناظر</item> | ||||
|         <item quantity="one">%s منظر</item> | ||||
|         <item quantity="other">%s مناظر</item> | ||||
|     </plurals> | ||||
|     <string name="no_videos">ویڈیوز دستیاب نہیں</string> | ||||
|     <plurals name="videos"> | ||||
| @@ -388,7 +388,7 @@ | ||||
|     <string name="limit_data_usage_none_description">کوئی حد نہیں</string> | ||||
|     <string name="limit_mobile_data_usage_title">موبائل ڈیٹا کا استعمال کرتے وقت ریذولوشن کو محدود کریں</string> | ||||
|     <string name="minimize_on_exit_title">ایپ سوئچ کو کم سے کم کریں</string> | ||||
|     <string name="minimize_on_exit_summary">اہم ویڈیو پلیئر سے دوسرے ایپ میں سوئچنگ کرتے وقت کارروائی-% s</string> | ||||
|     <string name="minimize_on_exit_summary">اہم ویڈیو پلیئر سے دوسرے ایپ میں سوئچنگ کرتے وقت کارروائی-s%</string> | ||||
|     <string name="minimize_on_exit_none_description">کوئی نہیں</string> | ||||
|     <string name="minimize_on_exit_background_description">پس منظری پلیر میں کم کریں</string> | ||||
|     <string name="minimize_on_exit_popup_description">پاپ اپ پلیر میں کم کریں</string> | ||||
|   | ||||
| @@ -31,20 +31,20 @@ | ||||
|     <string name="seek_duration_key" translatable="false">seek_duration</string> | ||||
|     <string name="seek_duration_default_value" translatable="false">10000</string> | ||||
|     <string-array name="seek_duration_description" translatable="false"> | ||||
|       <item>5 seconds</item> | ||||
|       <item>10 seconds</item> | ||||
|       <item>15 seconds</item> | ||||
|       <item>20 seconds</item> | ||||
|       <item>25 seconds</item> | ||||
|       <item>30 seconds</item> | ||||
|         <item>5 seconds</item> | ||||
|         <item>10 seconds</item> | ||||
|         <item>15 seconds</item> | ||||
|         <item>20 seconds</item> | ||||
|         <item>25 seconds</item> | ||||
|         <item>30 seconds</item> | ||||
|     </string-array> | ||||
|     <string-array name="seek_duration_value" translatable="false"> | ||||
|       <item>5000</item> | ||||
|       <item>10000</item> | ||||
|       <item>15000</item> | ||||
|       <item>20000</item> | ||||
|       <item>25000</item> | ||||
|       <item>30000</item> | ||||
|         <item>5000</item> | ||||
|         <item>10000</item> | ||||
|         <item>15000</item> | ||||
|         <item>20000</item> | ||||
|         <item>25000</item> | ||||
|         <item>30000</item> | ||||
|     </string-array> | ||||
|  | ||||
|     <string name="minimize_on_exit_key" translatable="false">minimize_on_exit_key</string> | ||||
| @@ -175,6 +175,7 @@ | ||||
|     <string name="main_page_content_key" translatable="false">main_page_content</string> | ||||
|     <string name="enable_playback_resume_key" translatable="false">enable_playback_resume</string> | ||||
|     <string name="enable_playback_state_lists_key" translatable="false">enable_playback_state_lists</string> | ||||
|     <string name="newpipes_language_key" translatable="false">newpipes_language_key</string> | ||||
|  | ||||
|     <string name="import_data" translatable="false">import_data</string> | ||||
|     <string name="export_data" translatable="false">export_data</string> | ||||
| @@ -272,7 +273,6 @@ | ||||
|         <item>cs</item> | ||||
|         <item>da</item> | ||||
|         <item>de</item> | ||||
|         <item>eo</item> | ||||
|         <item>et</item> | ||||
|         <item>en-GB</item> | ||||
|         <item>en</item> | ||||
| @@ -352,7 +352,6 @@ | ||||
|         <item>Čeština</item> | ||||
|         <item>Dansk</item> | ||||
|         <item>Deutsch</item> | ||||
|         <item>Esperanto</item> | ||||
|         <item>Eesti</item> | ||||
|         <item>English (UK)</item> | ||||
|         <item>English (US)</item> | ||||
| @@ -925,6 +924,137 @@ | ||||
|         <item>ZW</item> | ||||
|     </string-array> | ||||
|  | ||||
|     <!--The next two arrays are set to change the NewPipe language--> | ||||
|     <string-array name="language_code_np" translatable="false"> | ||||
|         <item>system</item> | ||||
|         <item>ar</item> | ||||
|         <item>az</item> | ||||
|         <item>ast</item> | ||||
|         <item>be</item> | ||||
|         <item>bg-bd</item> | ||||
|         <item>bn</item> | ||||
|         <item>ca</item> | ||||
|         <item>cs</item> | ||||
|         <item>da</item> | ||||
|         <item>de</item> | ||||
|         <item>el</item> | ||||
|         <item>en</item> | ||||
|         <item>eo</item> | ||||
|         <item>es</item> | ||||
|         <item>et</item> | ||||
|         <item>eu</item> | ||||
|         <item>fa</item> | ||||
|         <item>fi</item> | ||||
|         <item>fil</item> | ||||
|         <item>fr</item> | ||||
|         <item>gl</item> | ||||
|         <item>he</item> | ||||
|         <item>hi</item> | ||||
|         <item>hr</item> | ||||
|         <item>hu</item> | ||||
|         <item>hy</item> | ||||
|         <item>ia</item> | ||||
|         <item>ind</item> | ||||
|         <item>it</item> | ||||
|         <item>ja</item> | ||||
|         <item>ko</item> | ||||
|         <item>ku</item> | ||||
|         <item>lt</item> | ||||
|         <item>mk</item> | ||||
|         <item>ms</item> | ||||
|         <item>nb-no</item> | ||||
|         <item>ne</item> | ||||
|         <item>nl</item> | ||||
|         <item>nl-be</item> | ||||
|         <item>pa</item> | ||||
|         <item>pl</item> | ||||
|         <item>pr</item> | ||||
|         <item>pt</item> | ||||
|         <item>pt-br</item> | ||||
|         <item>ro</item> | ||||
|         <item>ru</item> | ||||
|         <item>sk</item> | ||||
|         <item>sl</item> | ||||
|         <item>sq</item> | ||||
|         <item>sr</item> | ||||
|         <item>sv</item> | ||||
|         <item>ta</item> | ||||
|         <item>te</item> | ||||
|         <item>th</item> | ||||
|         <item>tr</item> | ||||
|         <item>uk</item> | ||||
|         <item>ur</item> | ||||
|         <item>vi</item> | ||||
|         <item>zh</item> | ||||
|         <item>zh-hans</item> | ||||
|         <item>zh-tw</item> | ||||
|     </string-array> | ||||
|     <string-array name="language_name_np" translatable="false"> | ||||
|         <item>@string/system</item> | ||||
|         <item>العربية</item> | ||||
|         <item>Azərbaycan dili</item> | ||||
|         <item>Asturianu</item> | ||||
|         <item>Беларуская</item> | ||||
|         <item>български език</item> | ||||
|         <item>বাংলা</item> | ||||
|         <item>Català</item> | ||||
|         <item>Čeština</item> | ||||
|         <item>Dansk</item> | ||||
|         <item>Deutsch</item> | ||||
|         <item>Ελληνικά</item> | ||||
|         <item>English</item> | ||||
|         <item>Esperanto</item> | ||||
|         <item>Español</item> | ||||
|         <item>Eesti keel</item> | ||||
|         <item>Euskara</item> | ||||
|         <item>فارسی</item> | ||||
|         <item>Suomen kieli</item> | ||||
|         <item>Wikang Filipino</item> | ||||
|         <item>Français</item> | ||||
|         <item>Galego</item> | ||||
|         <item>עברית</item> | ||||
|         <item>हिन्दी</item> | ||||
|         <item>Hrvatski</item> | ||||
|         <item>magyar</item> | ||||
|         <item>Հայերեն</item> | ||||
|         <item>Interlingua</item> | ||||
|         <item>Bahasa Indonesia</item> | ||||
|         <item>Italiano</item> | ||||
|         <item>日本語</item> | ||||
|         <item>한국어</item> | ||||
|         <item>کوردی</item> | ||||
|         <item>Lietuvių kalba</item> | ||||
|         <item>македонски јазик</item> | ||||
|         <item>Bahasa Melayu</item> | ||||
|         <item>Norsk bokmål</item> | ||||
|         <item>Nनेपाली</item> | ||||
|         <item>Nederlands (NL)</item> | ||||
|         <item>Nederlands (BE)</item> | ||||
|         <item>ਪੰਜਾਬੀ</item> | ||||
|         <item>Polski</item> | ||||
|         <item>Pirate Language</item> | ||||
|         <item>Português (PT)</item> | ||||
|         <item>Português (BR)</item> | ||||
|         <item>Română</item> | ||||
|         <item>русский язык</item> | ||||
|         <item>Slovenčina</item> | ||||
|         <item>Slovenščina</item> | ||||
|         <item>Shqip</item> | ||||
|         <item>Српски</item> | ||||
|         <item>Svenska</item> | ||||
|         <item>தமிழ்</item> | ||||
|         <item>తెలుగు</item> | ||||
|         <item>ไทย</item> | ||||
|         <item>Türkçe</item> | ||||
|         <item>українська мова</item> | ||||
|         <item>اردو</item> | ||||
|         <item>Tiếng Việt</item> | ||||
|         <item>官话</item> | ||||
|         <item>简化字</item> | ||||
|         <item>臺灣華語</item> | ||||
|         <!--todo : fix ia, ind, see why it crashes for ur--> | ||||
|     </string-array> | ||||
|  | ||||
|     <!-- Limit mobile data usage  --> | ||||
|     <string name="limit_mobile_data_usage_key" translatable="false">limit_mobile_data_usage</string> | ||||
|     <string name="limit_data_usage_none_key" translatable="false">limit_data_usage_none</string> | ||||
| @@ -943,6 +1073,7 @@ | ||||
|  | ||||
|     <string name="list_view_mode_key" translatable="false">list_view_mode</string> | ||||
|     <string name="list_view_mode_value" translatable="false">auto</string> | ||||
|     <string name="system">System</string> | ||||
|  | ||||
|     <string-array name="list_view_mode_values" translatable="false"> | ||||
|         <item>auto</item> | ||||
|   | ||||
| @@ -585,5 +585,6 @@ | ||||
|     <string name="downloads_storage_use_saf_title">Use SAF</string> | ||||
|     <string name="downloads_storage_use_saf_summary">The Storage Access Framework allows downloads to an external SD card.\nNote: some devices are not compatible</string> | ||||
|     <string name="choose_instance_prompt">Choose an instance</string> | ||||
|     <string name="newpipes_language_title">NewPipe\'s language</string> | ||||
|  | ||||
| </resources> | ||||
|   | ||||
| @@ -3,6 +3,16 @@ | ||||
|     xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     android:title="@string/content"> | ||||
|  | ||||
|     <ListPreference | ||||
|         app:iconSpaceReserved="false" | ||||
|         android:defaultValue="system" | ||||
|         android:entries="@array/language_name_np" | ||||
|         android:entryValues="@array/language_code_np" | ||||
|         android:key="@string/newpipes_language_key" | ||||
|         android:summary="%s" | ||||
|         android:title="@string/newpipes_language_title"/> | ||||
|  | ||||
|     <ListPreference | ||||
|         app:iconSpaceReserved="false" | ||||
|         android:defaultValue="@string/default_language_value" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bopol
					bopol