diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c2ba2907..02946e85 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -70,9 +70,9 @@ android { val localProperties = gradleLocalProperties(rootDir) buildConfigField( - "String", - "BUILDDATE", - "new java.text.SimpleDateFormat(\"yyyy-MM-dd HH:mm\").format(new java.util.Date(" + System.currentTimeMillis() + "L));" + "long", + "BUILD_DATE", + "${System.currentTimeMillis()}" ) buildConfigField( "String", @@ -154,7 +154,7 @@ repositories { dependencies { // Testing testImplementation("junit:junit:4.13.2") - testImplementation("org.json:json:20231013") + testImplementation("org.json:json:20240303") androidTestImplementation("androidx.test:core") implementation("androidx.test.ext:junit-ktx:1.1.5") androidTestImplementation("androidx.test.ext:junit:1.1.5") diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt index 273e267b..ecbdcbbc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt @@ -865,7 +865,11 @@ enum class TvType(value: Int?) { AsianDrama(9), Live(10), NSFW(11), - Others(12) + Others(12), + Music(13), + AudioBook(14), + /** Wont load the built in player, make your own interaction */ + CustomMedia(15), } public enum class AutoDownloadMode(val value: Int) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt index 5a7e72ef..7baac71c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt @@ -135,7 +135,10 @@ import com.lagradost.cloudstream3.utils.AppUtils.setDefaultFocus import com.lagradost.cloudstream3.utils.BackupUtils.backup import com.lagradost.cloudstream3.utils.BackupUtils.setUpBackup import com.lagradost.cloudstream3.utils.BiometricAuthenticator +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.biometricPrompt import com.lagradost.cloudstream3.utils.BiometricAuthenticator.deviceHasPasswordPinLock +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.isAuthEnabled +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.promptInfo import com.lagradost.cloudstream3.utils.BiometricAuthenticator.startBiometricAuthentication import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.Coroutines.main @@ -1231,18 +1234,17 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, changeStatusBarState(isLayout(EMULATOR)) /** Biometric stuff for users without accounts **/ - val authEnabled = settingsManager.getBoolean(getString(R.string.biometric_key), false) val noAccounts = settingsManager.getBoolean( getString(R.string.skip_startup_account_select_key), false ) || accounts.count() <= 1 - if (isLayout(PHONE) && authEnabled && noAccounts) { + if (isLayout(PHONE) && isAuthEnabled(this) && noAccounts) { if (deviceHasPasswordPinLock(this)) { startBiometricAuthentication(this, R.string.biometric_authentication_title, false) - BiometricAuthenticator.promptInfo?.let { promt -> - BiometricAuthenticator.biometricPrompt?.authenticate(promt) + promptInfo?.let { prompt -> + biometricPrompt?.authenticate(prompt) } // hide background while authenticating, Sorry moms & dads 🙏 @@ -1790,8 +1792,6 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, } } catch (e: Exception) { logError(e) - } finally { - setKey(HAS_DONE_SETUP_KEY, true) } // Used to check current focus for TV @@ -1827,6 +1827,10 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, binding?.navHostFragment?.isInvisible = false } + override fun onAuthenticationError() { + finish() + } + private var backPressedCallback: OnBackPressedCallback? = null private fun attachBackPressedCallback() { diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt index 025e6fb6..a30af11c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/PluginManager.kt @@ -429,7 +429,6 @@ object PluginManager { **/ fun loadAllLocalPlugins(context: Context, forceReload: Boolean) { val dir = File(LOCAL_PLUGINS_PATH) - removeKey(PLUGINS_KEY_LOCAL) if (!dir.exists()) { val res = dir.mkdirs() diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/BaseAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/BaseAdapter.kt index 7439bfdf..d90177f5 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/BaseAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/BaseAdapter.kt @@ -85,7 +85,7 @@ abstract class BaseAdapter< AsyncDifferConfig.Builder(diffCallback).build() ) - fun submitList(list: List?) { + open fun submitList(list: List?) { // deep copy at least the top list, because otherwise adapter can go crazy mDiffer.submitList(list?.let { CopyOnWriteArrayList(it) }) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt index 41aef176..0b0d83db 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/account/AccountSelectActivity.kt @@ -23,7 +23,10 @@ import com.lagradost.cloudstream3.ui.settings.Globals.PHONE import com.lagradost.cloudstream3.ui.settings.Globals.TV import com.lagradost.cloudstream3.ui.settings.Globals.isLayout import com.lagradost.cloudstream3.utils.BiometricAuthenticator +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.biometricPrompt import com.lagradost.cloudstream3.utils.BiometricAuthenticator.deviceHasPasswordPinLock +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.isAuthEnabled +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.promptInfo import com.lagradost.cloudstream3.utils.BiometricAuthenticator.startBiometricAuthentication import com.lagradost.cloudstream3.utils.DataStoreHelper.accounts import com.lagradost.cloudstream3.utils.DataStoreHelper.selectedKeyIndex @@ -48,7 +51,6 @@ class AccountSelectActivity : AppCompatActivity(), BiometricAuthenticator.Biomet ) val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) - val authEnabled = settingsManager.getBoolean(getString(R.string.biometric_key), false) val skipStartup = settingsManager.getBoolean(getString(R.string.skip_startup_account_select_key), false ) || accounts.count() <= 1 @@ -56,7 +58,7 @@ class AccountSelectActivity : AppCompatActivity(), BiometricAuthenticator.Biomet fun askBiometricAuth() { - if (isLayout(PHONE) && authEnabled) { + if (isLayout(PHONE) && isAuthEnabled(this)) { if (deviceHasPasswordPinLock(this)) { startBiometricAuthentication( this, @@ -64,8 +66,8 @@ class AccountSelectActivity : AppCompatActivity(), BiometricAuthenticator.Biomet false ) - BiometricAuthenticator.promptInfo?.let { promt -> - BiometricAuthenticator.biometricPrompt?.authenticate(promt) + promptInfo?.let { prompt -> + biometricPrompt?.authenticate(prompt) } } } @@ -189,4 +191,8 @@ class AccountSelectActivity : AppCompatActivity(), BiometricAuthenticator.Biomet override fun onAuthenticationSuccess() { Log.i(BiometricAuthenticator.TAG,"Authentication successful in AccountSelectActivity") } + + override fun onAuthenticationError() { + finish() + } } \ No newline at end of file diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt index fb75e772..4b0360d7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeParentItemAdapter.kt @@ -63,6 +63,10 @@ open class ParentItemAdapter( } } + override fun submitList(list: List?) { + super.submitList(list?.sortedBy { it.list.list.isEmpty() }) + } + override fun onUpdateContent( holder: ViewHolderState, item: HomeViewModel.ExpandableHomepageList, diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt index 8d0ca37b..fb5160a7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt @@ -30,7 +30,7 @@ import com.google.android.gms.cast.framework.CastState import com.google.android.material.bottomsheet.BottomSheetDialog import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.updateHasTrailers -import com.lagradost.cloudstream3.CommonActivity +import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.DubStatus import com.lagradost.cloudstream3.LoadResponse import com.lagradost.cloudstream3.MainActivity.Companion.afterPluginsLoadedEvent @@ -61,6 +61,7 @@ import com.lagradost.cloudstream3.utils.AppUtils.getNameFull import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable import com.lagradost.cloudstream3.utils.AppUtils.loadCache import com.lagradost.cloudstream3.utils.AppUtils.openBrowser +import com.lagradost.cloudstream3.utils.BatteryOptimizationChecker.openBatteryOptimizationSettings import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialogInstant @@ -442,8 +443,9 @@ open class ResultFragmentPhone : FullScreenPlayer() { val name = (viewModel.page.value as? Resource.Success)?.value?.title ?: txt(R.string.no_data).asStringNull(context) ?: "" - CommonActivity.showToast(txt(message, name), Toast.LENGTH_SHORT) + showToast(txt(message, name), Toast.LENGTH_SHORT) } + context?.let { openBatteryOptimizationSettings(it) } } resultFavorite.setOnClickListener { viewModel.toggleFavoriteStatus(context) { newStatus: Boolean? -> @@ -457,7 +459,7 @@ open class ResultFragmentPhone : FullScreenPlayer() { val name = (viewModel.page.value as? Resource.Success)?.value?.title ?: txt(R.string.no_data).asStringNull(context) ?: "" - CommonActivity.showToast(txt(message, name), Toast.LENGTH_SHORT) + showToast(txt(message, name), Toast.LENGTH_SHORT) } } mediaRouteButton.apply { @@ -465,7 +467,7 @@ open class ResultFragmentPhone : FullScreenPlayer() { alpha = if (chromecastSupport) 1f else 0.3f if (!chromecastSupport) { setOnClickListener { - CommonActivity.showToast( + showToast( R.string.no_chromecast_support_toast, Toast.LENGTH_LONG ) @@ -640,6 +642,8 @@ open class ResultFragmentPhone : FullScreenPlayer() { ), null ) { click -> + context?.let { openBatteryOptimizationSettings(it) } + when (click.action) { DOWNLOAD_ACTION_DOWNLOAD -> { viewModel.handleAction( diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt index 3263ee93..69f8e8aa 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt @@ -781,25 +781,28 @@ class ResultFragmentTv : Fragment() { // resultEpisodeLoading.isVisible = episodes is Resource.Loading if (episodes is Resource.Success) { - val first = episodes.value.firstOrNull() - if (first != null) { + + val lastWatchedIndex = episodes.value.indexOfLast { ep -> ep.videoWatchState == VideoWatchState.Watched } + val firstUnwatched = episodes.value.getOrElse(lastWatchedIndex + 1) { episodes.value.firstOrNull() } + + if (firstUnwatched != null) { resultPlaySeriesText.text = when { - first.season != null -> - "${getString(R.string.season_short)}${first.season}:${getString(R.string.episode_short)}${first.episode}" - else -> "${getString(R.string.episode)} ${first.episode}" + firstUnwatched.season != null -> + "${getString(R.string.season_short)}${firstUnwatched.season}:${getString(R.string.episode_short)}${firstUnwatched.episode}" + else -> "${getString(R.string.episode)} ${firstUnwatched.episode}" } resultPlaySeriesButton.setOnClickListener { viewModel.handleAction( EpisodeClickEvent( ACTION_CLICK_DEFAULT, - first + firstUnwatched ) ) } resultPlaySeriesButton.setOnLongClickListener { viewModel.handleAction( - EpisodeClickEvent(ACTION_SHOW_OPTIONS, first) + EpisodeClickEvent(ACTION_SHOW_OPTIONS, firstUnwatched) ) return@setOnLongClickListener true } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt index c90e01d0..84b8cf48 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt @@ -246,6 +246,9 @@ fun LoadResponse.toResultData(repo: APIRepository): ResultData { TvType.Live -> R.string.live_singular TvType.Others -> R.string.other_singular TvType.NSFW -> R.string.nsfw_singular + TvType.Music -> R.string.music_singlar + TvType.AudioBook -> R.string.audio_book_singular + TvType.CustomMedia -> R.string.custom_media_singluar } ), yearText = txt(year?.toString()), @@ -627,6 +630,9 @@ class ResultViewModel2 : ViewModel() { TvType.Live -> "LiveStreams" TvType.NSFW -> "NSFW" TvType.Others -> "Others" + TvType.Music -> "Music" + TvType.AudioBook -> "AudioBooks" + TvType.CustomMedia -> "Media" } } @@ -1759,20 +1765,28 @@ class ResultViewModel2 : ViewModel() { val data = currentResponse?.syncData?.toList() ?: emptyList() val list = HashMap().apply { putAll(data) } - - activity?.navigate( - R.id.global_to_navigation_player, - GeneratorPlayer.newInstance( - generator?.also { - it.getAll() // I know kinda shit to iterate all, but it is 100% sure to work - ?.indexOfFirst { value -> value is ResultEpisode && value.id == click.data.id } - ?.let { index -> - if (index >= 0) - it.goto(index) - } - } ?: return, list + generator?.also { + it.getAll() // I know kinda shit to iterate all, but it is 100% sure to work + ?.indexOfFirst { value -> value is ResultEpisode && value.id == click.data.id } + ?.let { index -> + if (index >= 0) + it.goto(index) + } + } + if (currentResponse?.type == TvType.CustomMedia) { + generator?.generateLinks( + clearCache = true, + LoadType.Unknown, + callback = {}, + subtitleCallback = {}) + } else { + activity?.navigate( + R.id.global_to_navigation_player, + GeneratorPlayer.newInstance( + generator ?: return, list + ) ) - ) + } } ACTION_MARK_AS_WATCHED -> { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt index 298431ee..f0d402da 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt @@ -12,6 +12,7 @@ import androidx.core.view.isVisible import androidx.fragment.app.FragmentActivity import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager +import androidx.preference.SwitchPreferenceCompat import androidx.recyclerview.widget.RecyclerView import com.lagradost.cloudstream3.AcraApplication.Companion.openBrowser import com.lagradost.cloudstream3.CommonActivity.onDialogDismissedEvent @@ -30,6 +31,7 @@ import com.lagradost.cloudstream3.syncproviders.AuthAPI import com.lagradost.cloudstream3.syncproviders.InAppAuthAPI import com.lagradost.cloudstream3.syncproviders.OAuth2API import com.lagradost.cloudstream3.ui.settings.Globals.EMULATOR +import com.lagradost.cloudstream3.ui.settings.Globals.PHONE import com.lagradost.cloudstream3.ui.settings.Globals.TV import com.lagradost.cloudstream3.ui.settings.Globals.isLayout import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref @@ -38,13 +40,20 @@ import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setTool import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.AppUtils.html import com.lagradost.cloudstream3.utils.BackupUtils +import com.lagradost.cloudstream3.utils.BiometricAuthenticator +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.authCallback +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.biometricPrompt +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.deviceHasPasswordPinLock +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.isAuthEnabled +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.promptInfo +import com.lagradost.cloudstream3.utils.BiometricAuthenticator.startBiometricAuthentication import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialogText import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard import com.lagradost.cloudstream3.utils.UIHelper.setImage -class SettingsAccount : PreferenceFragmentCompat() { +class SettingsAccount : PreferenceFragmentCompat(), BiometricAuthenticator.BiometricAuthCallback { companion object { /** Used by nginx plugin too */ fun showLoginInfo( @@ -252,6 +261,31 @@ class SettingsAccount : PreferenceFragmentCompat() { } } + private fun updateAuthPreference(enabled: Boolean) { + val biometricKey = getString(R.string.biometric_key) + + PreferenceManager.getDefaultSharedPreferences(context ?: return).edit() + .putBoolean(biometricKey, enabled).apply() + findPreference(biometricKey)?.isChecked = enabled + } + + override fun onAuthenticationError() { + updateAuthPreference(!isAuthEnabled(context ?: return)) + } + + override fun onAuthenticationSuccess() { + if (isAuthEnabled(context?: return)) { + updateAuthPreference(true) + BackupUtils.backup(activity) + activity?.showBottomDialogText( + getString(R.string.biometric_setting), + getString(R.string.biometric_warning).html() + ) { onDialogDismissedEvent } + } else { + updateAuthPreference(false) + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setUpToolbar(R.string.category_account) @@ -263,22 +297,25 @@ class SettingsAccount : PreferenceFragmentCompat() { hideKeyboard() setPreferencesFromResource(R.xml.settings_account, rootKey) - getPref(R.string.biometric_key)?.setOnPreferenceClickListener { - val authEnabled = PreferenceManager.getDefaultSharedPreferences( - context ?: return@setOnPreferenceClickListener false - ) - .getBoolean(getString(R.string.biometric_key), false) + // hide preference on tvs and emulators + getPref(R.string.biometric_key)?.isEnabled = isLayout(PHONE) - if (authEnabled) { - BackupUtils.backup(activity) - val title = activity?.getString(R.string.biometric_setting) - val warning = activity?.getString(R.string.biometric_warning) - activity?.showBottomDialogText( - title as String, - warning.html() - ) { onDialogDismissedEvent } + getPref(R.string.biometric_key)?.setOnPreferenceClickListener { + val ctx = context ?: return@setOnPreferenceClickListener false + + if (deviceHasPasswordPinLock(ctx)) { + startBiometricAuthentication( + activity?: return@setOnPreferenceClickListener false, + R.string.biometric_authentication_title, + false + ) + promptInfo?.let { + authCallback = this + biometricPrompt?.authenticate(it) + } } - true + + false } val syncApis = diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 72e22269..dfa84998 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -30,6 +30,11 @@ import com.lagradost.cloudstream3.utils.UIHelper.navigate import com.lagradost.cloudstream3.utils.UIHelper.setImage import com.lagradost.cloudstream3.utils.UIHelper.toPx import java.io.File +import java.text.DateFormat +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import java.util.TimeZone class SettingsFragment : Fragment() { companion object { @@ -180,12 +185,14 @@ class SettingsFragment : Fragment() { val appVersion = getString(R.string.app_version) val commitInfo = getString(R.string.commit_hash) - val buildDate = BuildConfig.BUILDDATE + val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, + Locale.getDefault() + ).apply { timeZone = TimeZone.getTimeZone("UTC") + }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") - binding?.buildDate?.text = buildDate - - binding?.appVersionInfo?.setOnLongClickListener{ - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo") + binding?.buildDate?.text = buildTimestamp + binding?.appVersionInfo?.setOnLongClickListener { + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") true } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt index 6cf00375..c3d84867 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt @@ -27,11 +27,15 @@ import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.mvvm.normalSafeApiCall import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.ui.EasterEggMonke +import com.lagradost.cloudstream3.ui.settings.Globals.PHONE import com.lagradost.cloudstream3.ui.settings.Globals.beneneCount +import com.lagradost.cloudstream3.ui.settings.Globals.isLayout import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setPaddingBottom import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setToolBarScrollFlags import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar +import com.lagradost.cloudstream3.utils.BatteryOptimizationChecker.isAppRestricted +import com.lagradost.cloudstream3.utils.BatteryOptimizationChecker.showBatteryOptimizationDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showMultiDialog @@ -45,7 +49,6 @@ import com.lagradost.safefile.SafeFile // Change local language settings in the app. fun getCurrentLocale(context: Context): String { - // val dm = res.displayMetrics val res = context.resources val conf = res.configuration @@ -204,6 +207,20 @@ class SettingsGeneral : PreferenceFragmentCompat() { return@setOnPreferenceClickListener true } + // disable preference on tvs and emulators + getPref(R.string.battery_optimisation_key)?.isEnabled = isLayout(PHONE) + getPref(R.string.battery_optimisation_key)?.setOnPreferenceClickListener { + val ctx = context ?: return@setOnPreferenceClickListener false + + if (isAppRestricted(ctx)) { + showBatteryOptimizationDialog(ctx) + } else { + showToast(R.string.app_unrestricted_toast) + } + + true + } + fun showAdd() { val providers = synchronized(allProviders) { allProviders.distinctBy { it.javaClass }.sortedBy { it.name } } activity?.showDialog( diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/setup/SetupFragmentLayout.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/setup/SetupFragmentLayout.kt index 98803818..d8fa46e6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/setup/SetupFragmentLayout.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/setup/SetupFragmentLayout.kt @@ -9,6 +9,7 @@ import android.widget.ArrayAdapter import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import androidx.preference.PreferenceManager +import com.lagradost.cloudstream3.AcraApplication.Companion.setKey import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.FragmentSetupLayoutBinding import com.lagradost.cloudstream3.mvvm.normalSafeApiCall @@ -86,6 +87,7 @@ class SetupFragmentLayout : Fragment() { nextBtt.setOnClickListener { + setKey(HAS_DONE_SETUP_KEY, true) findNavController().navigate(R.id.navigation_home) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt index 87d17a2b..279a0cb5 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/BackupUtils.kt @@ -40,7 +40,7 @@ import java.io.OutputStream import java.io.PrintWriter import java.lang.System.currentTimeMillis import java.text.SimpleDateFormat -import java.util.* +import java.util.Date object BackupUtils { @@ -68,7 +68,8 @@ object BackupUtils { DOWNLOAD_EPISODE_CACHE, "biometric_key", // can lock down users if backup is shared on a incompatible device - "nginx_user" // Nginx user key + "nginx_user", // Nginx user key + "download_path_key" // No access rights after restore data from backup ) /** false if key should not be contained in backup */ diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/BiometricAuthenticator.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/BiometricAuthenticator.kt index de9b9963..c57600ee 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/BiometricAuthenticator.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/BiometricAuthenticator.kt @@ -12,20 +12,20 @@ import androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_WEAK import androidx.biometric.BiometricManager.Authenticators.DEVICE_CREDENTIAL import androidx.biometric.BiometricPrompt import androidx.core.content.ContextCompat +import androidx.core.content.ContextCompat.getString import androidx.fragment.app.FragmentActivity +import androidx.preference.PreferenceManager import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.R object BiometricAuthenticator { + const val TAG = "cs3Auth" private const val MAX_FAILED_ATTEMPTS = 3 private var failedAttempts = 0 - const val TAG = "cs3Auth" - private var biometricManager: BiometricManager? = null var biometricPrompt: BiometricPrompt? = null var promptInfo: BiometricPrompt.PromptInfo? = null - var authCallback: BiometricAuthCallback? = null // listen to authentication success private fun initializeBiometrics(activity: Activity) { @@ -37,20 +37,12 @@ object BiometricAuthenticator { activity as FragmentActivity, executor, object : BiometricPrompt.AuthenticationCallback() { - override fun onAuthenticationError(errorCode: Int, errString: CharSequence) { super.onAuthenticationError(errorCode, errString) showToast("$errString") Log.e(TAG, "$errorCode") - failedAttempts++ - - if (failedAttempts >= MAX_FAILED_ATTEMPTS) { - failedAttempts = 0 - activity.finish() - } else { - failedAttempts = 0 - activity.finish() - } + authCallback?.onAuthenticationError() + //activity.finish() } override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { @@ -89,7 +81,6 @@ object BiometricAuthenticator { .setDescription(description) .setAllowedAuthenticators(authFlag) .build() - } else { // for apis < 30 promptInfo = BiometricPrompt.PromptInfo.Builder() @@ -98,7 +89,6 @@ object BiometricAuthenticator { .setDeviceCredentialAllowed(true) .build() } - } else { // fallback for A12+ when both fingerprint & Face unlock is absent but PIN is set promptInfo = BiometricPrompt.PromptInfo.Builder() @@ -114,7 +104,6 @@ object BiometricAuthenticator { var result = false if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - when (biometricManager?.canAuthenticate( DEVICE_CREDENTIAL or BIOMETRIC_STRONG or BIOMETRIC_WEAK )) { @@ -126,7 +115,6 @@ object BiometricAuthenticator { BiometricManager.BIOMETRIC_ERROR_UNSUPPORTED -> result = true BiometricManager.BIOMETRIC_STATUS_UNKNOWN -> result = false } - } else { @Suppress("DEPRECATION") when (biometricManager?.canAuthenticate()) { @@ -153,12 +141,11 @@ object BiometricAuthenticator { // function to start authentication in any fragment or activity fun startBiometricAuthentication(activity: Activity, title: Int, setDeviceCred: Boolean) { initializeBiometrics(activity) - + authCallback = activity as? BiometricAuthCallback if (isBiometricHardWareAvailable()) { authCallback = activity as? BiometricAuthCallback authenticationDialog(activity, title, setDeviceCred) promptInfo?.let { biometricPrompt?.authenticate(it) } - } else { if (deviceHasPasswordPinLock(activity)) { authCallback = activity as? BiometricAuthCallback @@ -171,7 +158,15 @@ object BiometricAuthenticator { } } + fun isAuthEnabled(ctx: Context):Boolean { + return ctx.let { + PreferenceManager.getDefaultSharedPreferences(ctx) + .getBoolean(getString(ctx, R.string.biometric_key), false) + } + } + interface BiometricAuthCallback { fun onAuthenticationSuccess() + fun onAuthenticationError() } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/PowerManagerAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/PowerManagerAPI.kt new file mode 100644 index 00000000..27609730 --- /dev/null +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/PowerManagerAPI.kt @@ -0,0 +1,86 @@ +package com.lagradost.cloudstream3.utils + +import android.content.ActivityNotFoundException +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.os.Bundle +import android.os.PowerManager +import android.provider.Settings +import android.util.Log +import androidx.appcompat.app.AlertDialog +import androidx.preference.PreferenceManager +import com.lagradost.cloudstream3.BuildConfig +import com.lagradost.cloudstream3.CommonActivity.showToast +import com.lagradost.cloudstream3.R +import com.lagradost.cloudstream3.ui.settings.Globals.PHONE +import com.lagradost.cloudstream3.ui.settings.Globals.isLayout + +const val packageName = BuildConfig.APPLICATION_ID +const val TAG = "PowerManagerAPI" + +object BatteryOptimizationChecker { + + fun isAppRestricted(context: Context?): Boolean { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null) { + val powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager + return !powerManager.isIgnoringBatteryOptimizations(context.packageName) + } + + return false // below Marshmallow, it's always unrestricted when app is in background + } + + fun openBatteryOptimizationSettings(context: Context) { + if (shouldShowBatteryOptimizationDialog(context)) { + showBatteryOptimizationDialog(context) + } + } + + fun showBatteryOptimizationDialog(context: Context) { + val settingsManager = PreferenceManager.getDefaultSharedPreferences(context) + + try { + context.let { + AlertDialog.Builder(it) + .setTitle(R.string.battery_dialog_title) + .setIcon(R.drawable.ic_battery) + .setMessage(R.string.battery_dialog_message) + .setPositiveButton(R.string.ok) { _, _ -> + intentOpenAppInfo(it) + } + .setNegativeButton(R.string.cancel) { _, _ -> + settingsManager.edit() + .putBoolean(context.getString(R.string.battery_optimisation_key), false) + .apply() + } + .show() + } + } catch (t: Throwable) { + Log.e(TAG, "Error showing battery optimization dialog", t) + } + } + + private fun shouldShowBatteryOptimizationDialog(context: Context): Boolean { + val isRestricted = isAppRestricted(context) + val isOptimizedNotShown = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(context.getString(R.string.battery_optimisation_key), true) + return isRestricted && isOptimizedNotShown && isLayout(PHONE) + } + + private fun intentOpenAppInfo(context: Context) { + val intent = Intent() + try { + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + .setData(Uri.fromParts("package", packageName, null)) + context.startActivity(intent, Bundle()) + } catch (t: Throwable) { + Log.e(TAG, "Unable to invoke any intent", t) + if (t is ActivityNotFoundException) { + showToast("Exception: Activity Not Found") + } else { + showToast(R.string.app_info_intent_error) + } + } + } +} diff --git a/app/src/main/res/drawable/ic_battery.xml b/app/src/main/res/drawable/ic_battery.xml new file mode 100644 index 00000000..24d0a77f --- /dev/null +++ b/app/src/main/res/drawable/ic_battery.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_plugin_details.xml b/app/src/main/res/layout/fragment_plugin_details.xml index 7a8f85e4..79013d9f 100644 --- a/app/src/main/res/layout/fragment_plugin_details.xml +++ b/app/src/main/res/layout/fragment_plugin_details.xml @@ -52,6 +52,7 @@ android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/title_settings" android:visibility="gone" + android:focusable="true" app:srcCompat="@drawable/ic_baseline_tune_24" tools:visibility="visible" /> @@ -61,6 +62,7 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical|end" android:layout_marginStart="16dp" + android:focusable="true" android:background="?attr/selectableItemBackgroundBorderless" android:src="@drawable/ic_github_logo" /> @@ -81,6 +83,7 @@ style="@style/SmallBlackButton" android:layout_gravity="center" android:layout_marginStart="10dp" + android:focusable="false" android:text="@string/extension_description" /> @@ -123,8 +123,6 @@ android:id="@+id/delimiter0" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="center" - android:padding="10dp" android:text="•" android:textColor="?attr/textColor" /> @@ -132,7 +130,6 @@ android:id="@+id/commit_hash" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="center" android:padding="10dp" android:text="@string/commit_hash" android:textColor="?attr/textColor" /> @@ -141,9 +138,6 @@ android:id="@+id/delimiter1" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="center" - android:padding="10dp" android:text="•" android:textColor="?attr/textColor" /> @@ -151,10 +145,9 @@ android:id="@+id/build_date" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="center" android:padding="10dp" - android:textColor="?attr/textColor" /> + android:textColor="?attr/textColor" + tools:text="21/03/2024 09:02 pm"/> diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index e932b236..45e9a1d4 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -92,7 +92,7 @@ Laai tans… Sub Verwyder - Stroom + Netwerk stroom Op rus CloudStream Speel @@ -105,4 +105,5 @@ Soek met behulp van tipes Voer lettertipes in deur dit in %s te plaas Rolverdeling: %s + Nuwe episode notifikasie diff --git a/app/src/main/res/values-ajp/strings.xml b/app/src/main/res/values-ajp/strings.xml index 550d83a9..4d1fc074 100644 --- a/app/src/main/res/values-ajp/strings.xml +++ b/app/src/main/res/values-ajp/strings.xml @@ -68,8 +68,8 @@ هيدا المصدر مش عاطي \"ميتا داتا\". إذا مش موجودة بالمصدر، ما رح يمشي الڤيديو. ما في أجزاء مشّي الحلقة - أكونتات - سرعة \"إيگن گرايڤي\" + الحسابات والأمان + سرعة الڤيديو كَمِّل سِجِل ما نلاقى الوصف @@ -80,7 +80,6 @@ محي بلش في تِلِفونات ما فيا تعوز الطريقة الجديدة لتجديد الآپات. جربو \"الطريقة القديمة\" إذا ما عم تنزل التجديدات. - بتزيد أوپسيونات لتحدد سرعة الڤيديو بعد ما تسكر \"كلود ستريم\"، بكفي الڤيديو بشِباك زغير فوق غير آپ هيدا المصدر ما بيدعم \"كروم كاست\" تنبيش منظّم @@ -124,7 +123,7 @@ %1$d–%2$d عطي المطورين موزززة عوز النسخة الإحتياطية - نقى أكونت + نقي أكونت سحابو ل فوق وتحت من اليمين أو الشمال ل تتحكمو بقوة الصوت أو قوة الضو ننسخ الرابط الوصف @@ -199,7 +198,7 @@ شوف إذا في تجديد في مشكلة بجهاز العرض (Renderer error) العِنوان - پروكسي raw.githubusercontent.com + پروكسي \"گِت هَب\" جودة مشغل الڤيديو ملصق الترجمة أوڤا @@ -252,7 +251,7 @@ الحد الأعلى للحروف بعنوان الڤيديو المظاهر تجديدات الآپ - لغات المصادر + لغات الإضافات عام ممر التنزيل إخلاء مسؤولية @@ -265,7 +264,7 @@ فرجي أنمي المدبلج-المترجم النسخ الإحتياطي الإجراءات - بتتجاوز منع \"گِت هَب\" بستعمال JSDelivr. معقول تقدي لتأخير بتجديدات الآپ بكم يوم. + تجاوز منع روابط \"گِت هَب\" الـ\"raw\" بستعمال JSDelivr. معقول تقدي لتأخير تجديدات الآپ بكم يوم. ميزات مشغل الڤيديوات شيل موقع مظهر @@ -289,7 +288,7 @@ الشكل %1$d ساعة %2$d ديقة فضّى - إسم أكونتي الكول + إسم الأكونت فَلتِر الإشارات المرجعية بَلَش التجديد نسخ @@ -305,9 +304,9 @@ مشّي الحلقة سرعة الڤيديو تحكمو بالأكونتات - رمز اللغة (apc/ar/en) + رمز اللغة (ar) عمول أكونت - فرجي المحتوى الـ18+ بالمصادر يلي بتحتوي + تمكين محتوى 18+ في الامتدادات الداعمة المحتوى المفضل غَيِر الأكونت حط پوز على التنزيل @@ -334,8 +333,8 @@ إي مايل (ع شكل: email@example.com) %d ديقة فحص المصادر - example.com - إسم الوبسيت الكول تبعي + https://example.com + إسم الوب سيت الجديدة فتاح ومَشّي الملف نوع الألون رجاع @@ -348,7 +347,7 @@ اللون الاساسي فوت ع الأكونت مترجم - بِث + بِث من الإنترنت مشي التخزين الجُواني زيد أكونت @@ -382,11 +381,9 @@ حطو الأرقام السرية لـ\"%s\" الطريقة القديمة معلى - \"كلود ستريم\" ما بتجي مع مصادر ڤيديوات. لازم تنزلو المصادر من ريپوز. + \"كلود ستريم\" ما بتجي مع مصادر ڤيديوات. لازم تنزلو المصادر من ريپويات. \n -\nفي معلومات على الـ\"ديسكورد\" تبعنا، أو فيكون تنبشو ع معلومات على الإنترنت. -\n -\nما فينا تحط الروابط تبع ريپوز المصادر هون من ورا \"سكاي يو كي المحدودة\" 🤮، يلي عازت تفكيرا المحدود لتجرب توقف هيدا الآپ بإستعمال \"قانون الألفية للملكية الرقميَّة\". +\nفي معلومات على الـ\"ديسكورد\" تبعنا، أو فيكن تنبشو ع معلومات على الإنترنت. زبد تتبع 3G/4G… نفَتح %s @@ -410,7 +407,7 @@ HDR مش منزل: %d ل بعدو - رابط الڤيديو + https://example.com/example.mp4 نقي الرفّ وقفتو الإشتراك لـ\"%s\" WP @@ -569,7 +566,7 @@ دي ڤي دي الجودة عين الافتراضي - المرجع + المرجع (إختياري) المشغل يلي بـ\"كلود ستريم\" نزل لايحة المواقع يلي بدك تعوزن حطو الأرقام السرية @@ -595,5 +592,26 @@ برومو غير إتجاه الشاشة أوتوماتيكيًا حسب شكل الڤيديو رجع نعمل لاود لاللينك - نعمل كَپي للعنوان! + نبش بغير مصادر + نوتيفيكايشن عن حلقات جديدة + فرجي الاقترحات + بتزيد خيار السرعة بالمشغل + فحاص كل المصادر + هيدا الفحص معمول للمطورين وما بأكد لحالو إزا المصدر عم يشتغل. + المفضلة + فتح قفل كلودستريم + قفل بواسطة المقاييس الحيوية + رمز/كلمة مرور للمصادقة + فتاح التطبيق باستعمال البصمة، آي دي الوج، پِن، النمط، إو الپاسورد. + تسَكرت هيدي الواجهة من ورا محاولات فاشلة عديدة. پليز، سكر الآپ ورجاع فتحه. + %s +\nباقي + المصادقة البيومترية مش مدعومة ع هالجهاز + شيله من المفضل + اسم وعنوان الريپوزيتوري + نتسخ! + في ارور بالوصول ل الكليپبورد. پليز جرب مرة أخرى. + في ارور بالنسخ. پليز نسوخ الـLogcat 🐈 وبعته ل المسؤولين عن دعم الآپ. + هلّق نعمل نسخة احتياطية للداتا تبع \"كلود ستريم\". إذا مابق ينفتح ويمشي الآپ، فيك تعمل كلير للداتا تبعه وترَجع الداتا من النسخة الاحتياطية اللي هلّق عملنالك ياها. +\nالاحتمال انو مابق ينفتح الآپ احتمالية زغيرة كتير، بس كل جهاز بيتصرف بشكل مختلف، ونحنا منعتذر إذا سببنا أي إزعاج. diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index a8e79d22..3140afeb 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -54,7 +54,7 @@ فشل التنزيل تم إلغاء التنزيل تم التنزيل - بث + دفق الشبكة خطأ في تحميل الرابط التخزين الداخلي مدبلج @@ -114,8 +114,7 @@ إعدادات ترجمة المُشغل ترجمة كروم كاست إعدادات ترجمة كروم كاست - وضع إيغنغرافي - يضيف خيار السرعة في المُشغل + سرعة التشغيل السحب لتقديم اسحب من جانب إلى آخر للتحكم في موضعك في مقطع فيديو السحب لتغيير الإعدادات @@ -139,7 +138,7 @@ إذن الوصول الى ذاكرة التخزين مفقود, من فضلك حاول مجددا. فشل إنشاء نسخة احتياطية %s بحث - الحسابات + الحسابات والأمن التحديثات والنسخ الاحتياطية معلومات البحث المتقدم @@ -284,10 +283,10 @@ عام زر العشوائي إظهار زر عشوائي على الصفحة الرئيسية والمكتبة - لغات المزود + لغات الامتداد واجهة التطبيق المحتوى المفضل - تفعيل محتوى خاص للبالغين داخل المزودين المدعومين + تفعيل محتوى خاص للبالغين داخل الإمتداد المدعوم فك تشفير الترجمة المصادر الواجهة @@ -308,8 +307,8 @@ إسم المستخدم البريد الإلكتروني 127.0.0.1 - إسم الموقع - رابط الموقع + إسم الموقع الجديد + رابط الموقع مثلا : https://example.com اللغة (الإنجليزية) Poster Pôster - Episode Poster - Main Poster - Next Random - Go back - Change Provider - Preview Background + Pôster do episódio + Pôster Principal + Próximo Aleatório + Voltar + Alterar Provedor + Visualizar plano de fundo Velocidade (%.2fx) - Nota: %.1f + Avaliado: %.1f Nova atualização encontrada! \n%1$s -> %2$s - Filler + Preenchimento %d min CloudStream Início - Procurar + Pesquisar Downloads Configurações Procurar… - Procurar no %s… + Pesquisar %s… Sem dados - Mais Opções + Mais opções Próximo episódio Gêneros Compartilhar - Abrir no Navegador - Pular Carregamento + Abrir no navegador + Pular carregamento Carregando… Assistindo Em espera - Completado - Deixado + Concluído + Desistido Planejando assistir Reassistindo - Assistir Filme + Reproduzir filme Transmitir Torrent Fontes Legendas - Tentar reconectar… + Tentando conectar novamente… Voltar - Assistir Episódio + Reproduzir episódio - Baixar - Baixado + Download + Download concluído Baixando - Download Pausado - Download Iniciado - Download Falhado - Download Cancelado - Download Finalizado + Download pausado + Download iniciado + Download falhou + Download cancelado + Download concluído Transmitir - Erro Carregando Links - Armazenamento Interno + Erro ao carregar links + Armazenamento interno Dub Sub - Deletar Arquivo - Assistir Arquivo - Retomar Download - Pausar Download - Desativar relatório automático de erros - Mais info + Deletar arquivo + Reproduzir arquivo + Retomar download + Pausar download + Desative o relatório automático de erros + Mais informações Esconder - Assistir - Info - Filtrar Marcadores + Reproduzir + Informações + Filtrar marcadores Marcadores Remover - Selecionar marcador + Definir como assistido/não assistido Aplicar Copiar Fechar Limpar Salvar - Velocidade do Reprodutor - Configurar Legendas - Cor do Texto - Cor do Contorno - Cor do Fundo - Cor da Janela - Tipo de Borda - Elevação da Legenda + Velocidade de reprodução + Configurações de legendas + Cor do texto + Cor do contorno + Cor de fundo + Cor da janela + Tipo de borda + Elevação da legenda Fonte - Tamanho da Fonte + Tamanho da fonte Pesquisar usando fornecedor - Pesquisar usando genêros + Pesquisar usando tipos %d Benenes doados aos desenvolvedores Nenhuma Benenes doada - Autosseleção de Lingua - Baixar Linguas - Lingua da legenda - Segure para retornar a configuração padrão - Importe fontes colocando elas em %s - Continue Assistindo + Seleção automática de idioma + Baixar idiomas + Idioma da Legenda + Segure para redefinir para o padrão + Importe fontes colocando-as em %s + Continuar assistindo Remover Mais Info @string/home_play @@ -122,8 +122,7 @@ Configurações de legendas do Player Legendas do Chromecast Configurações de legendas do Chromecast - Modo Eigengravy - Adiciona um botão de velocidade no player + Velocidade de playback Deslize para avançar o vídeo Deslize de lado à lado para controlar a posição no vídeo Deslize para mudar as configurações @@ -145,7 +144,7 @@ Permissões de armazenamento faltando. Por favor tente novamente. Erro no backup de %s Procurar - Contas + Contas e Segurança Atualizações e backup Info Procura Avançada @@ -167,7 +166,7 @@ Junte-se ao Discord Dar um benene para os desenvolvedores Benene dada - Linguagem do App + Idioma do aplicativo Esse fornecedor não possui suporte para Chromecast Nenhum link encontrado Link copiado para área de transferência @@ -280,8 +279,8 @@ Any legal issues regarding the content on this application should be taken up with the actual file hosts and providers themselves as we are not affiliated with them. In case of copyright infringement, please directly contact the responsible parties or the streaming websites. The app is purely for educational and personal use. CloudStream 3 does not host any content on the app, and has no control over what media is put up or taken down. CloudStream 3 functions like any other search engine, such as Google. CloudStream 3 does not host, upload or manage any videos, films or content. It simply crawls, aggregates and displayes links in a convenient, user-friendly interface. It merely scrapes 3rd-party websites that are publicly accessable via any regular web browser. It is the responsibility of user to avoid any actions that might violate the laws governing his/her locality. Use CloudStream 3 at your own risk. Geral Botão Aleatório - Mostra o botão Aleatório na página inicial - Linguagem dos fornecedores + Mostrar botão aleatório na página inicial e na biblioteca + Linguagem das extensões Layout do App Mídia preferida Codificação das legendas @@ -296,11 +295,11 @@ Coloca o título debaixo do poster senha123 - MeuNomeLegal + Nome de usuário oi@mundo.com 127.0.0.1 - MeuSiteLegal - examplo.com + NovoNomedoSite + https://example.com Codigo da Língua (bp) - Já fiz vinho com toque de kiwi para belga sexy. + A rápida raposa marrom salta sobre o cachorro preguiçoso Recomendada %s carregada Carregar de arquivo @@ -419,8 +418,6 @@ Não transferido: %d CloudStream não tem fontes instaladas por padrão. Você precisa instalar um site de repositórios. \n -\nPor causa das limitações do DMCA (Digital Millennium Copyright Act ) feito em nome de Sky UK Limited 🤮nós não podemos adicionar site de repositórios no app. -\n \nEntre no nosso Discord ou pesquise online. Ver repositórios da comunidade Lista pública @@ -429,23 +426,23 @@ %s (Desativado) Reproduzir automaticamente próximo episódio Começa o próximo episódio quando o atual termina - Ativar NSFW em fornecedores compatíveis + Ativar NSFW em extensões compatíveis Fornecedores Reverter Ações votou com sucesso Baixando atualização do aplicativo… - Referencias + Referenciador (opcional) Atualizações do App - Tocar com CloudStream + Assistir com o CloudStream Automaticamente instale todos os plugins não instalados dos repositórios adicionados. - Reproduzir Trailer + Reproduzir trailer Navegador Copia de Segurança A Barra de Progresso pode ser usada quando o player estiver oculto Inscrito Essa lista está vazia. Tente mudar para outra. - Reproduzir Livestream + Reproduzir transmissão ao vivo Log do Teste Baixar plugins automaticamente Selecione o modo para filtrar os plugins baixados @@ -493,7 +490,7 @@ Arquivo de modo de segurança encontrado! \nNão carregar nenhuma extensão na inicialização até que o arquivo seja removido. Inscrito em %s - Episódio %d lançado + Episódio %d lançado! Selecionar padrão Inscrição cancelada de %s Alguns aparelhos não possuem suporte para este pacote de instalação. Tente a opção legada se a atualização não instalar. @@ -558,7 +555,7 @@ Aparência Desativar Usar - Link da stream + https://example.com/example.mp4 Gestos Plugin baixado Não foi possível se conectar ao GitHub. Ativando proxy JsDelivr… @@ -572,7 +569,66 @@ Provedor de teste Layout Padrões - Proxy: raw.githubusercontent.com - Contorna o bloqueio do GitHub usando jsDelivr. Pode atrasar as atualizações por alguns dias. + Proxy do GitHub + Contorne o bloqueio de URLs \"raw\" do GitHub usando jsDelivr. Pode atrasar as atualizações por alguns dias. Rotas alternativas + Favoritos + %s adicionado aos favoritos + Duplicata em potencial encontrada + Adicionar + Substituir + Possíveis itens duplicados foram encontrados em sua biblioteca: +\n +\n %s +\n +\nGostaria de adicionar este item mesmo assim, substituir os existentes ou cancelar a ação? + Insira o PIN + Insira o PIN para %s + Insira o PIN atual + PIN incorreto. Por favor, tente novamente. + O PIN deve ter 4 caracteres + Selecione uma conta + Gerenciar contas + Ignorar a seleção da conta na inicialização + Exibir um botão para alternar a orientação da tela + %s removido dos favoritos + Adicionar aos favoritos + Remover dos favoritos + Girar + Bloquear perfil + PIN + Links recarregados + Frequência de backup + Substitua tudo + Parece que já existe um item potencialmente duplicado na sua biblioteca: \'%s.\' +\n +\nGostaria de adicionar este item mesmo assim, substituir o existente ou cancelar a ação? + Inscrever-se + Cancelar inscrição + Usar conta padrão + Editar conta + Conectado como %s + Habilite a troca automática de orientação da tela com base na orientação do vídeo + Rotação automática + Notificação de novo episódio + Pesquisar em outras extensões + Mostrar recomendações + Adiciona uma opção de velocidade no reprodutor + Testar todas as extensões + Esse teste é feito somente para desenvolvedores e não verifica ou nega o funcionamento de qualquer extensão. + Desbloquear CloudStream + O backup dos seus dados do CloudStream foi feito agora. Embora a possibilidade disso seja muito baixa, todos os dispositivos podem se comportar de maneira diferente. No caso raro de você ficar impedido de acessar o aplicativo, limpe os dados do aplicativo completamente e restaure a partir de um backup. Lamentamos muito qualquer inconveniente decorrente disso. + Bloquear com Biometria + Autenticação de Senha/PIN + A autenticação biométrica não é compatível com este dispositivo + Desbloquear o aplicativo com impressão digital, ID facial, PIN, padrão e senha. + Esta tela foi fechada devido a diversas tentativas malsucedidas. Por favor reinicie o aplicativo. + %s +\nrestante(s) + Favorito + Não favorito + copiado! + Erro ao acessar a área de transferência. Tente novamente. + Nome e URL do repositório + Erro ao copiar. Copie o logcat e entre em contato com o suporte do aplicativo. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 00c968f2..519b05b6 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -117,8 +117,7 @@ Nastavení titulků přehrávače Titulky Chromecastu Natavení titulků Chromecastu - Rychlostní režim - Přidá do přehrávače možnost rychlosti + Rychlost přehrávání Přejet pro posun Přejeďte prstem ze strany na stranu pro ovládání své pozice ve videu Přejet pro změnu nastavení @@ -140,7 +139,7 @@ Chybí oprávnění k úložišti. Zkuste to prosím znovu. Chyba při zálohování %s Search - Účty + Účty a zabezpečení Aktualizace a záloha Informace Pokročilé hledání @@ -266,7 +265,7 @@ Obecné Náhodné tlačítko Zobrazit na domovské stránce a v knihovně náhodné tlačítko - Jazyk poskytovatelů + Jazyky rozšíření Rozložení aplikace Preferovaná média Kódování titulků @@ -281,7 +280,7 @@ Umístit název pod plakát heslo123 - MojeSuperJmeno + Uživatelské jméno ahoj@svete.cz 127.0.0.1 lozinka123 - MojeCoolIme + Korisničko ime bok@svijete.com 127.0.0.1 - MojaCoolStranica - primjer.com + NovoImeStranice + https://primjer.com Šifra jezika (en) %1$s %2$s račun @@ -402,8 +401,8 @@ Filtriraj po željenom jeziku medija Extras Trailer - Veza na stream - Upućivač + https://primjer.com/primjer.mp4 + Referent (nije obavezno) Sljedeće Gledaj videozapise na ovim jezicima Prethodno @@ -434,8 +433,6 @@ Nepreuzeto: %d CloudStream nema instalirane web stranice prema zadanim postavkama. Morate instalirati stranice iz repozitorija. \n -\nZbog bezumnog uklanjanja DMCA od strane Sky UK Limited 🤮 ne možemo povezati web mjesto repozitorija u aplikaciji. -\n \nPridružite se našem Discordu ili tražite online. Pregledajte repozitorije zajednice Javni popis @@ -549,9 +546,9 @@ Otkazana pretplata sa %s Vraćanje ISP zaobilaznice - raw.githubusercontent.com Proxy + GitHub Proxy Neuspješno dohvaćanje GitHuba. Uključuje se jsdelivr proxy … - Zaobilazi blokiranje GitHuba koristeći jsdelivr. Može odgoditi ažuriranja za nekoliko dana. + Zaobilazi blokiranje neobrađenih GitHub URL-ova koristeći jsDelivr. Može uzrokovati kašnjenje ažuriranja nekoliko dana. Preferirana kvaliteta gledanja (podatkovna mobilna mreža) Profil %d Wi-Fi @@ -614,7 +611,22 @@ Prikaži gumb za prebacivanje orijentacije zaslona Omogućuje automatsko mijenjanje orijentacije zaslona na temelju orijentacije videa Automatsko rotiranje - Naslov je kopiran! rotiraj_video_tipka automatski_rotiraj_video_tipka + Obavijest za novu epizodu + Pretraži u ostalim proširenjima + Dodaje opciju brzine u playeru + Testiraj sva proširenja + Ovaj je test namijenjen samo programerima i ne provjerava niti negira rad bilo kojeg proširenja. + Prikaži preporuke + Ime repozitorija i URL + kopirano! + Zaključaj s biometrijskim podatcima + %s +\npreostalo + Greška u pristupanju međuspremnika. Pokušaj ponovo. + Otključaj CloudStream + Lozinka/PIN autentifikacija + Ovaj uređaj ne podržava biometrijsku autentifikaciju + Ovaj je ekran zatvoren zbog višestrukih neuspjelih pokušaja. Pokrenite aplikaciju ponovo. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 5b1dbcf0..5533cdc0 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -37,7 +37,7 @@ Állapot Forrás címe Előzmények - Eigengravy mód + Visszajátszás sebessége Felirat magassága Letöltés elkezdve Nem található cselekmény @@ -71,7 +71,7 @@ Feliratok Vissza Letöltés kész - Stream + Hálózati stream Hiba a linkek betöltésekor Belső tárhely Dub @@ -124,7 +124,6 @@ Lejátszó feliratok beállításai Chromecast Feliratok Chromecast feliratok beállításai - Sebességbeállítást ad hozzá a lejátszóhoz Epizód lejátszása Letöltve Letöltés szüneteltetve @@ -171,11 +170,11 @@ OVA Egyebek Sorozat - @string/anime + Anime Forráshiba NSFW Rajzfilm - @string/ova + OVA Élőadás NSFW Videó @@ -184,7 +183,7 @@ Ázsiai dráma Linkek újratöltése Link másolás - Link letöltés + Letöltés mirror Automatikus letöltés Adatok eltárolva Hiba a biztonsági mentés során %s @@ -223,9 +222,9 @@ Távoli hiba Render hiba Váratlan lejátszó hiba - Letöltés hiba, ellenőrízze a tárolási engedélyeket + Letöltés hiba, ellenőrizze a tárolási engedélyeket Chromecast epizód - Chromecast link + Chromecast mirror Lejátszás az alkalmazásban Lejátszás %s Lejátszás böngészőben @@ -233,7 +232,7 @@ Újracsatlakozás… Húzd balra vagy jobbra a videólejátszóban az idő vezérléséhez Csúsztassa ujját a beállítások módosításához - Csúsztassa felfelé vagy lefelé a bal vagy jobb oldalon a fényerő vagy a hangerő megváltoztatásához + Csúsztassa felf/le az ujját a bal/jobb oldalon a fényerő vagy a hangerő megváltoztatásához Biztonsági mentés 0 Banán a fejlesztőknek Húzd el, hogy beless @@ -243,7 +242,7 @@ Dupla koppintás a szüneteltetéshez Lejátszó keresési értéke (Másodpercben) Koppintson kétszer a jobb vagy bal oldalra az előre vagy hátra ugráshoz - Koppintson kétszer középen a szüneteltetéshez + Koppintson kétszer középre a szüneteltetéshez Rendszer fényerejének használata Rendszer fényerejének használata az appban a sötét átfedés helyett Előrehaladás frissítése @@ -286,7 +285,7 @@ Funkciók Előnyben részesített videóminőség (mobilinternet) Videolejátszó cím max karakterek - Nem sikerült elérni a GitHubot, a jsdelivr proxy engedélyezése. + Nem sikerült elérni a GitHubot, a jsdelivr proxy bekapcsolva… Bővítmények Általános Felirat kódolása @@ -295,10 +294,10 @@ Szolgáltató teszt Sikertelen Problémákat okoz, ha túl magasra van állítva az alacsony tárhellyel rendelkező eszközökön, például az Android TV-n. - Korhatáros tartalmak engedélyezése a támogatott szolgáltatóknál + Korhatáros tartalmak engedélyezése a támogatott kiegészítőknél Elrendezés - raw.githubusercontent.com Proxy - A lejátszó funkciói + GitHub Proxy + Lejátszó funkciók Előnyben részesített videóminőség (WiFi-n) Hasznos az internetszolgáltató blokkjainak megkerüléséhez Elrendezés @@ -306,10 +305,10 @@ NGINX szerver URL-címe Szinkronizált/feliratozott animék megjelenítése Alapértelmezettek - Megjelenít egy gombot a Kezdőlapon, amely egy véletlenszerű filmet vagy TV sorozatot választ a Kezdőlapról + Véletlenszerű gomb megjelenítése a Könyvtárban és Főoldalon Letöltési útvonal Gyorsítótár - Szolgáltatók nyelvei + Kiegészítők nyelvei Napló Könyvtár internetszolgáltató-kikerülések @@ -322,7 +321,7 @@ Előnyben részesített média Hivatkozások Videó és kép gyorsítótár törlése - A jsdelivr használatával a GitHub blokkolása megkerülhető. Néhány nappal késleltetheti a frissítéseket. + A jsDelivr használatával a tiszta GitHub blokkolása megkerülhető. Néhány nappal késleltetheti a frissítéseket. Összeomlást okoz, ha túl magasra van állítva a kevés memóriával rendelkező eszközökön, például az Android TV-n. Betöltés az internetről Videósávok @@ -333,13 +332,13 @@ Alkalmazásfrissítés letöltése… Frissítve (újabbtól a régebbihez) Úgy tűnik, a könyvtárad üres :( -\nJelentkezz be egy könyvtár fiókba, vagy adj hozzá műsorokat a helyi könyvtárodhoz - Úgy tűnik, ez a lista üres, próbálj meg egy másikra váltani +\nJelentkezz be egy könyvtár fiókba, vagy adj hozzá műsorokat a helyi könyvtárodhoz. + Úgy tűnik, ez a lista üres, próbálj meg egy másikra váltani. Max 4K SDR Fiók létrehozása - pelda.com + https://példa.hu Feliratok szinkronizálása Alkalmazásfrissítés telepítése… Túl sok szöveg. Nem lehet a vágólapra menteni. @@ -349,7 +348,7 @@ Frissítés /\?\? Árnyék - Filmelőzetes + Előzetes Mit szeretnél látni Minden %s már letöltött Először telepítse a bővítményt @@ -357,13 +356,13 @@ Kinézet Alkalmazás elrendezés Szinkronizálás - Nem sikerült bejelentkezni a következőként: %s + Nem sikerült bejelentkezni a %s-nál Min 1000 ms Ajánlott Érvénytelen adatok - Link a streamhez + https://példa.hu/példa.mp4 Nem sikerült betölteni: %s Elkezdődött a(z) %1$d %2$s letöltése… Töltse le az összes bővítményt ebből a tárolóból\? @@ -372,16 +371,16 @@ MPV Alkalmazás nem található PackageInstaller - Rendezés e szerint: + Rendezés e szerint Feliratkozott a következőre: %s - MenőWeboldalam + ÚjOldalNév DVD %d plugin frissítve Értékelés: %s Előzmények törlése Nem Feliratkozva - Használd ezt, ha a feliratok %d ms-sel korábban jelennek meg. + Használd ezt, ha a feliratok %d ms-sel korábban jelennek meg Lejátszó Felbontás és cím Előnyben részesített videolejátszó @@ -420,7 +419,7 @@ Minden felirat nagybetűs Intro Leiratkozott a következőről: %s - Bloat eltávolítása a feliratokról + Szükségtelen elemek eltávolítása a feliratokról Szűrés előnyben részesített médianyelv szerint Biztos vagy benne, hogy ki akarsz lépni\? Rendezés @@ -431,9 +430,7 @@ Ez az összes tároló bővítményt is törli A CloudStream alapértelmezés szerint nem telepített webhelyeket. A webhelyeket a tárolókból kell telepítenie. \n -\nA Sky UK Limited agyatlan DMCA letiltása miatt 🤮 nem tudjuk az alkalmazásban linkelni az adattár oldalát. -\n -\nCsatlakozz a Discordunkhoz vagy keress online. +\nCsatlakozz a Discord-unkhoz vagy keress online. Verzió Megjelölés megtekintettként Eltávolítás a megnézettek közül @@ -466,7 +463,7 @@ Betűrendben (A-tól a Z-ig) Frissítve (régebbitől az újabbig) jelszó123 - AzÉnMenőFelhasználónevem + Felhasználónév 127.0.0.1 Fiókváltás Fiók hozzáadása @@ -481,14 +478,14 @@ Bővítmények Tároló hozzáadása Tároló neve - Tárhely URL címe + Repó URL Bővítmény betöltve Bővítmény letöltve Közreműködők Betűrendben (Z-től az A-ig) Könyvtár kiválasztása - Biztonságos módú fájl található! -\nNem tölt be semmilyen kiterjesztést indításkor, amíg a fájl el nem lesz távolítva. + Biztonságos módú fájlba ütköztünk! +\nNem töltődik be semmilyen kiegészítő indításkor, amíg a fájl nem kerül törlésre. Normál %s betöltve Beállítás kihagyása @@ -503,7 +500,7 @@ Az átugrás mértéke, amikor a lejátszó el van rejtve Jogi nyilatkozat Lejátszó megjelenítve - Ugrási Érték - Lejátszó elrejtve - Ugrási Érték + Lejátszó Elrejtve - Ugrási Érték Klónozott oldal Egy meglévő webhely klónjának hozzáadása, más URL-címmel TV elrendezés @@ -513,4 +510,86 @@ Mentési gyakoriság Értékelt Kikapcsolás + Kamera Rip + Nyitás + WP + Új epizód értesítés + Keresés más kiegészítőkben + Ajánlatok mutatása + Sebesség opció megjelenítése a lejátszóban + Minden kiegészítő tesztelése + Ez a teszt szigorúan fejlesztők számára készült, nem alkalmas egyes kiegészítők működésének visszaigazolására. + %1$s %2$s + TS + Feliratkozás + Leiratkozás + Linkek Újratöltve + Zárás + Hivatkozó (opcionális) + Nem találhatóak pluginek a repóban + Repó nem található, ellenőrizze a címet vagy próbálja VPN-el + Web Videó Cast + %s kihagyása + A kihagyási felugró ablakok mutatása nyitás/zárás esetén + Alapbeállítás + Használ + %d profil + Használja ezt ha a felirat %d ms-ot késik + Kamera HD + Poszter Kép + TC + Mobil adat + Wi-Fi + Szerkeszt + Kamera + Nyomott + Kevert zárás + Kevert nyitás + Segítség + Profilok + Eltávolítás kedvencekből + Adja meg a jelenlegi PIN-t + Itt beállíthatja hogyan rendezze el a forrásokat. Ha egy videónak nagyobb a prioritása, előbb fog megjelenni a listában. A forrás prioritás és a minőség prioritás együttes értéke adja ki a videó prioritást. +\n +\nForrás A: 3 +\nMinőség B: 7 +\nEzek összértéke egy 10-es videó prioritást eredményez. +\n +\nFIGYELEM: Ha az összeg több mint 10, a lejátszó nem tölt be mást ha már a link betöltésre került! + Potenciálisan dupla elemek a könyvtárjában: +\n +\n%s +\n +\nSzeretné hozzáadni ezt az elemet mindenképpen, ezzel felülírva a jelenlegit, vagy visszavonja a műveletet? + Fiók választás kihagyása belépéskor + Használjon alapértelmezett fiókot + Elforgatás + Profil háttér + Kedvencek + %s hozzáadva a kedvencekhez + %s eltávolítva a kedvencekből + Hozzáadás a kedvencekhez + Úgy tűnik egy potenciálisan dupla elem már létezik a könyvtárjában: \'%s.\' +\n +\nMindenképpen hozzá akarja adni ezt az elemet, ezzel felülírva a régit, vagy visszavonja a műveletet? + Adja meg a PIN-t + Profil Zárolása + Válasszon egy fiókot + Fiókok kezelése + Fiók módosítása + Belépve mint %s + Jelenítsen meg egy kapcsolót a képorientáció váltáshoz + Potenciális Dupla Találat + Adja meg a PIN-t a %s-hoz + PIN + Hibás PIN. Próbálja újra. + A UI hibásan jelenítődött meg, ez egy JELENTŐS BUG ezért kérjük jelentse be %s + Már korábban szavazott + Hozzáadás + Kicserélés + Mind Kicserélése + Minőségek + A PIN 4 karakter hosszú kell legyen + Auto elforgatás + Az automatikus videó orientáció alapján való képernyő elforgatás bekapcsolása diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 0bb2a24a..d9a10c61 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -115,8 +115,7 @@ Pengaturan subtitle pemutar Subtitle Chromecast Pengaturan subtitle Chromecast - Mode Eigengravy - Menambahkan opsi kecepatan di pemutar + Kecepatan pemutaran Geser untuk mengubah waktu Geser dari sisi ke sisi untuk mengontrol posisi dalam video Geser untuk mengubah pengaturan @@ -138,7 +137,7 @@ Izin penyimpanan tidak ditemukan, mohon coba lagi. Error saat mencadang %s Cari - Kredit dan akun + Akun dan Keamanan Update dan cadangan Info Pencarian Lanjutan @@ -263,8 +262,8 @@ Any legal issues regarding the content on this application should be taken up with the actual file hosts and providers themselves as we are not affiliated with them. In case of copyright infringement, please directly contact the responsible parties or the streaming websites. The app is purely for educational and personal use. CloudStream 3 does not host any content on the app, and has no control over what media is put up or taken down. CloudStream 3 functions like any other search engine, such as Google. CloudStream 3 does not host, upload or manage any videos, films or content. It simply crawls, aggregates and displayes links in a convenient, user-friendly interface. It merely scrapes 3rd-party websites that are publicly accessable via any regular web browser. It is the responsibility of user to avoid any actions that might violate the laws governing his/her locality. Use CloudStream 3 at your own risk. Umum Tombol Acak - Tampilkan tombol acak di Beranda - Bahasa provider + Tampilkan tombol acak di Beranda dan Pustaka + Bahasa ekstensi Tata Letak Aplikasi Media yang lebih diinginkan Antarmuka pengguna @@ -373,10 +372,10 @@ Bawaan Tampilan Fitur - Tampilkan konten NSFW + Mengaktifkan NSFW pada Ekstensi yang didukung Putar Cuplikan Putar Siaran - Siaran + Aliran jaringan Bahasa Subtitel Putar otomatis episode selanjutnya Putar episode selanjutnya, setelah ini berakhir @@ -398,22 +397,20 @@ %1$s %2$d%3$s Siaran langsung Hapus Website - UsernameKeren + Username contoh@email.com 127.0.0.1 - Websiteku - contoh.com + NamaSitus Baru + https://contoh.com Ekstra Apa yang ingin anda lihat Plugin terhapus %d plugin diperbarui Lihat Repositori dari Group List Umum - CloudStream tidak memiliki sumber video secara bawaan. Kamu harus menginstall dari repositori. + CloudStream tidak memiliki situs yang terinstal secara default. Anda perlu menginstal situs-situs dari repositori. \n -\nKarena banyak laporan dari banyak pihak berwajib, kami tidak dapat memberikannya secara langsung. -\n -\nGabung dengan group Discord atau cari di internet. +\nBergabunglah dengan Discord kami atau cari secara online. Alamat Repositori Buat Akun Error @@ -457,7 +454,7 @@ Pilih ini untuk menghapus semua repositori plugin Lewati pengaturan Alamat salah - Alamat streaming + https://contoh.com/contoh.mp4 Selanjutnya Sebelumnya Ubah tampilan aplikasi @@ -482,7 +479,7 @@ Gerakan Beberapa perangkat tidak mendukung penginstal paket mode baru. Coba mode lama jika pembaruan tidak dapat diinstal. Aksi - Referer + Memberi referensi (opsional) Ya Install ekstensi terlebih dahulu Semua Bahasa @@ -545,9 +542,9 @@ Berlangganan ke %s Berhenti berlangganan di %s Episode %d telah rilis! - Proxy raw.githubusercontent.com + Proxy GitHub Tidak dapat menjangkau GitHub. Mengaktifkan proxy jsDelivr… - Melewati pemblokiran GitHub menggunakan jsDelivr. Dapat menyebabkan pembaruan tertunda beberapa hari. + Lewati pemblokiran raw URL github menggunakan jsDelivr. Dapat menyebabkan pembaruan tertunda selama beberapa hari. Bypass ISP Pulihkan Kualitas nonton yang diinginkan (Data Seluler) @@ -607,4 +604,30 @@ Lewati pemilihan akun saat startup Kelola Akun Edit akun + Putar + Menampilkan tombol sakelar untuk orientasi layar + Tautan Dimuat Ulang + Mengaktifkan peralihan otomatis orientasi layar berdasarkan orientasi video + Putar otomatis + Cari di ekstensi lainnya + Menambahkan opsi percepat di pemutar + Tes ini hanya ditujukan untuk pengembang dan tidak memverifikasi atau menolak kerja ekstensi apa pun. + Notifikasi episode baru + Tampilkan rekomendasi + Menguji semua Ekstensi + Data CloudStream Anda telah dicadangkan. Meskipun peluang terjadinya kasus ini sangat kecil dan jarang terjadi, tetapi semua perangkat berperilaku berbeda. Jika Anda ada dalam situasi terburuk, misalnya gagal untuk mengakses aplikasi, segera hapus data aplikasi sepenuhnya dan pulihkan data cadangan. Kami mohon maaf atas segala ketidaknyamanan yang mungkin ditimbulkan. + Otentikasi Kata Sandi/PIN + Otentikasi biometrik tidak didukung di perangkat ini + Buka kunci aplikasi dengan Sidik Jari, ID Wajah, PIN, Pola, dan Kata Sandi. + Layar ini ditutup setelah mengalami beberapa kali percobaan yang gagal. Anda harus memulai ulang aplikasi ini. + Batalkan favorit + Buka kunci CloudStream + %s +\ntersisa + Favorit + Kunci dengan Biometrik + Nama dan URL repositori + Gagal mengakses Papan Klip, mohon coba lagi. + disalin! + Gagal menyalin, mohon salin logcat dan hubungi pengembang aplikasi. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 74839a47..7b958ad3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -61,7 +61,7 @@ Download fallito Download cancellato Download completato - Stream + Flusso di rete Errore durante il caricamento dei link Archiviazione interna Doppiato @@ -122,8 +122,7 @@ Impostazioni sottotitoli lettore Sottotitoli Chromecast Impostazioni sottotitoli Chromecast - Modalità Eigengravy - Aggiungi opzione velocità nel player + Velocità di riproduzione Scorri per mandare avanti/indietro Scorri da un lato all\'altro per controllare la tua posizione in un video Scorri per cambiare le impostazioni @@ -147,7 +146,7 @@ Permessi di archiviazione mancanti. Per favore riprova. Errore nel backup %s Cerca - Accounts + Account e sicurezza Aggiornamenti e Backup Info Ricerca avanzata @@ -287,11 +286,11 @@ Avvertenza Generale Random - Mostra pulsante Random nella homepage - Lingua provider + Mostra pulsante casuale nella home page e nella libreria + Lingue estensione Layout app Media preferito - Abilita NSFW sui provider supportati + Abilita NSFW sulle estensioni supportate Encoding Sottotitoli Provider Interfaccia utente @@ -305,11 +304,11 @@ Titolo sotto il poster password123 - IlMioUsername + Nome utente hello@world.com 127.0.0.1 - IlMioSito - example.com + NuovoNomeSito + https://example.com Codice lingua (it) %1$s %2$s account @@ -391,8 +390,8 @@ Filtra in base alla lingua preferita Extra Trailer - Link allo stream - Referer + https://example.com/example.mp4 + Referente (facoltativo) Prossimo Guarda video in queste lingue Precedente @@ -424,9 +423,7 @@ Aggiornati %d plugin CloudStream non ha siti installati per impostazione predefinita. È necessario installare i siti dai repository. \n -\nA causa di una rimozione DMCA senza cervello da Sky UK Limited 🤮 non possiamo collegare il sito repository nell\'app. -\n -\nUnisciti al nostro Discord o cerca online. +\nJoin our Discord or search online. Vedi le repository della community Lista pubblica Tutti i sottotitoli in maiuscolo @@ -539,12 +536,12 @@ Ferma Superato Fallito - Proxy raw.githubusercontent.com + Proxy GitHub Disiscritto da %s Iscritto Iscritto a %s Impossibile raggiungere GitHub. Attivazione proxy jsDelivr… - Aggira il blocco di GitHub usando jsDelivr. Potrebbe causare un ritardo degli aggiornamenti di alcuni giorni. + Evita il blocco degli URL github non elaborati utilizzando jsDelivr. Potrebbe causare un ritardo degli aggiornamenti di alcuni giorni. Baypass ISP Ripristina Aggiornando shows a cui sei iscritto @@ -602,10 +599,34 @@ Entrato come %s Inserisci il PIN per %s Blocca profilo - Usa Account Default + Usa account predefinito Salta la selezione dell\'account all\'avvio Gestisci Accounts Modifica account Collegamenti ricaricati Ruota + Visualizza un pulsante di commutazione per l\'orientamento dello schermo + Abilita la commutazione automatica dell\'orientamento dello schermo in base all\'orientamento del video + Rotazione automatica + Cerca in altre estensioni + Mostra consigli + Aggiunge un\'opzione di velocità nel lettore + Prova tutte le estensioni + Questo test è pensato solo per gli sviluppatori e non verifica o nega il funzionamento di alcuna estensione. + Notifica nuovo episodio + Sblocca CloudStream + Blocca con biometria + Autenticazione con password/PIN + L\'autenticazione biometrica non è supportata su questo dispositivo + Sblocca app con impronta digitale, Face ID, PIN, sequenza e password. + Questa schermata è stata chiusa a causa di più tentativi falliti. Riavvia l\'app. + È stato eseguito il backup dei tuoi dati CloudStream. Sebbene questa possibilità sia molto bassa, tutti i dispositivi possono comportarsi in modo diverso. Nel raro caso in cui ti venga bloccato l\'accesso all\'app, cancella completamente i dati dell\'app e ripristina da un backup. Siamo molto spiacenti per qualsiasi inconveniente derivanti da questo. + Non preferito + %s +\nresiduo + Preferito + Nome e URL del repository + copiato! + Errore durante l\'accesso agli Appunti. Riprova. + Errore durante la copia. Copia logcat e contatta il supporto dell\'app. diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index d5c2ad5e..da2952a0 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -271,7 +271,6 @@ ‪דפדפן צבע חלון הצג לוג - הוסף אפשרות מהירות בנגן לחץ פעמיים כדי להציץ לחץ פעמיים כדי לעצור התשתמש בבהירות המערכת בנגן האפליקציה במקום שכבת-על כהה diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 04e27c85..acb2cfc3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -237,9 +237,9 @@ プレーヤーの字幕設定 Chromecastの字幕 Chromecastの字幕設定 - プレーヤーに速度オプションを追加します スワイプして探す 次のエピソードを自動再生する 現在のエピソードが終了したら次のエピソードを開始する 長押しするとデフォルトにリセットされます + ダウンロードを再開 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 0bf3bd9b..1a63050a 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -111,7 +111,6 @@ Chromecast 자막 Chromecast 자막 설정 배속 모드 - 플레이어에 속도 옵션을 추가합니다 스와이프하여 탐색 좌우로 스와이프하여 동영상 위치 제어하기 스와이프하여 설정 변경 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 54f9be82..f61bcfc0 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -67,7 +67,6 @@ Ištrinti Atšaukti Pradėti - Prideda greičio pasirinkti grotuve Filmukas Atsiuntimas atšauktas Išplėstinė paieška diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index ab8db2a9..49b333e3 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -124,7 +124,6 @@ Chromecast subtitri Chromecast subtitru iestāfijumi Eigengravy Mode - Pievieno atskaņošanas ātrumu playerim Novelc lai paradītu Novelc no māla lidz malai lai pozicionētu video Novēlu lai mainītu iestādījums diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 956f18e5..fe82a90b 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -90,7 +90,6 @@ Преводи Поставки на плеерот за преводи Режим на Eigengravy - Додава можност за брзина на снимка во плеерот Повлечете за да барате Повлечете од страна на страна за да ја контролирате вашата позиција во видеото Повлечете за да ги промените поставките @@ -336,7 +335,7 @@ Карактеристики Азиска драма Додатоци - Се прикажува копче на почетната страница што може да избере случаен филм или ТВ серија од почетната страница + Прикажи случајно копче на почетната страница и библиотеката Поддржано Сметки Вовед @@ -531,4 +530,65 @@ Смени провајдер Оди назад Актери: %s + %s додадени на фаворити + %s избришено од фаворити + Одбери опција за филтрирање на превземени плагини + Складиштето не е пронајдено, проверете го URL-то и пробајте VPN + Фаворити + Додадено во фаворити + Избриши од фаворити + Замени ги сите + Се чини дека потенцијално дупликат ставка веќе постои во вашата библиотека: „%s“. +\n +\nДали сепак сакате да ја додадете оваа ставка, да ја замените постојната или да го откажете дејството? + Во вашата библиотека се пронајдени потенцијални дупликати ставки: +\n +\n%s +\n +\nДали сепак сакате да ја додадете оваа ставка, да ги замените постоечките или да го откажете дејството? + Внеси ПИН за %s + ПИН-от мора да биде 4 карактери + Менаџирај кориснички сметки + Измени корисничка сметка + Логиран како %s + Прескокнете го изборот на корисничка сметка при стартување + Користете ја стандардната сметка + Ротирај + Прикажете копче за префрлување за ориентација на екранот + Веќе гласаше + Овде можете да го промените начинот на кој се подредуваат изворите. Ако видеото има повисок приоритет, ќе се појави повисоко во изборот на изворот. Збирот на приоритетот на изворот и приоритетот на квалитетот е приоритет на видеото. +\n +\nИзвор А: 3 +\nКвалитет Б: 7 +\nЌе има комбиниран приоритет на видеото од 10. +\n +\nЗАБЕЛЕШКА: Ако сумата е 10 или повеќе, играчот автоматски ќе го прескокне вчитувањето кога ќе се вчита таа врска! + Одбери корисничка сметка + Повторно вчитани линкови + Оневозможи + Внеси ПИН + Внеси моментален ПИН + ПИН + Заклучи профил + Неточен ПИН. Пробај повторно. + Исклучи претплата + Профил %d + Претплати се + Позадина на профил + Мобилен интернет + Поставете стандардно + Квалитети + Пронајдени потенцијални дупликати + Додади + Замени + Wi-Fi + Не се најдени плагини во складиштето + Користи + Измени + Профили + Помош + UI-то не можеше да се креира правилно, ова е ГОЛЕМ БАГ и треба веднаш да се пријави %s + Зачестеност на зачувување на бекап + Овозможете автоматско префрлување на ориентацијата на екранот врз основа на видео ориентација + Автоматска ротација diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 49c5b3ec..0ddd8577 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -84,8 +84,6 @@ കറുത്ത അതിർത്തി നീക്കംചെയ്യുക പ്ലേയർ സബ്‌ടൈറ്റിലുകളുടെ സെറ്റിങ്‌സ് - - വേഗം നിയന്ത്രിക്കാൻ ഓപ്ഷൻ ചേർക്കുക വീഡിയോപ്ലേയറിൽ സമയം നിയന്ത്രിക്കാൻ ഇടത്തോട്ടോ വലത്തോട്ടോ സ്വൈപ്പുചെയ്യുക @@ -171,7 +169,7 @@ കണ്ടതാണെന്ന് അടയാളപ്പെടുത്തുക %1$d%2$d yg5t4r%dujyhtg - %d മണിക്കൂർ %d മിനിറ്റ് + %1$d മണിക്കൂർ %2$d മിനിറ്റ് %1$sghj%2$d rtf:% അക്കൗണ്ട് ഉണ്ടാക്കുക diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index f60362ae..ef796f9f 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -263,7 +263,6 @@ အက်ပ်ထဲဝင်လိုက်သည့်နှင့်အက်ပ်အပ်ဒိတ်ကိုစစ်ဆေးပါ။ Chromecast စာတန်းထိုးများ Chromecast စာတန်းထိုး ပြုပြင်ရန် - ကြည့်ရှုမှုပုံစံထဲမှာအရိှန်ရွေးစရာတစ်ခုထည့်ရန် အသံအတိုးအကျယ်နှင့်အလင်းအမှောင်များကိုချိန်ညိှရန် ဘယ် သို့ ညာ ဘက်တွင် အပေါ်အောက်ဆွဲပါ ယခုကြည့်နေသောအပိုင်းပြီးပါကနောက်အပိုင်းကိုဖွင့်ပါ သင့်၏အပိုင်းကြည်ရှုမှုရောက်ရှိနေရာကိုအလိုအလျောက်သိမ်းဆည်းပါ diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 5b594334..fc537837 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -124,7 +124,6 @@ Chromecast Ondertitels Chromecast ondertitels instellingen Eigengravy Modus - Voegt een snelheidsoptie toe in de speler Swipe to seek Veeg naar links of rechts om de tijd in de videospeler te regelen Veeg om instellingen te wijzigen @@ -606,4 +605,7 @@ PIN invoeren PIN Huidige PIN invoeren + Link opnieuw geladen + Autoroteer + Roteer diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 49b559ed..724f4a63 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -98,7 +98,6 @@ Undertekster Innstillinger for spillerens teksting Eigengravy Modus - Legger til hastighetsalternativ i spilleren Sveip for å søke Sveip til venstre eller høyre for å kontrollere tiden i videospilleren Sveip for å endre innstillinger diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index cb7cf73d..3e22ba16 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -52,7 +52,7 @@ Błąd przy pobieraniu Anulowano pobieranie Zakończono pobieranie - Odtwórz + Strumień sieciowy Błąd przy ładowaniu linków Pamięć wewnętrzna Dub @@ -112,18 +112,17 @@ Ustawienia napisów Napisy Chromecast Ustawienia napisów Chromecast - Tryb Eigengravy - Ustawienia prędkości - Przesuń aby przewinąć + Prędkość odtwarzania + Przesuń, aby przewinąć Przesuwaj w lewo lub prawo, aby kontrolować czas filmu - Przesuń aby zmienić ustawienia - Przesuwaj góra-dół z lewej lub prawej strony ekranu aby zmienić jasność czy głośność + Przesuń, aby zmienić ustawienia + Przesuwaj góra-dół z lewej lub prawej strony ekranu, aby zmienić jasność czy głośność Autoodtwarzanie następnego odcinka Rozpocznij następny odcinek po skończeniu bieżącego Czas przewinięcia przy podwójnym kliknięciu (w sekundach) - Podwójne kliknięcie aby przewinąć - Kliknij 2 razy z prawej lub lewej strony aby przewinąć - Kliknij dwukrotnie aby wstrzymać + Podwójne kliknięcie, aby przewinąć + Kliknij dwa razy z prawej lub lewej strony, aby przewinąć + Kliknij dwukrotnie, aby wstrzymać Kliknij dwukrotnie na środku, aby zatrzymać wideo Użyj jasności systemowej Użyj jasności systemowej w odtwarzaczu aplikacji zamiast ciemnej nakładki @@ -137,7 +136,7 @@ Brak uprawnień do pamięci, spróbuj ponownie. Błąd tworzenia kopii zapasowej %s Szukaj - Konta + Konta i zabezpieczenia Aktualizacje i kopia zapasowa Informacje Zaawansowane wyszukiwanie @@ -210,7 +209,7 @@ Torrenty Filmy dokumentalne OVA - Dramy azjatyckie + Dramaty azjatyckie Transmisje na żywo NSFW Inne @@ -220,7 +219,7 @@ Kreskówka Torrent Film dokumentalny - Drama azjatycka + Dramat azjatycki Transmisja na żywo NSFW Inne @@ -229,8 +228,8 @@ Błąd renderowania Nieoczekiwany błąd odtwarzacza Błąd pobierania, sprawdź uprawnienia aplikacji - odcinek Chromecast - mirror dla Chromecast + Odcinek Chromecast + Mirror dla Chromecast Odtwórz w aplikacji Odtwórz w %s Odtwórz w przeglądarce @@ -254,7 +253,7 @@ Pomiń tę aktualizację Aktualizacja Domyślna jakość (WiFi) - Maksymalna ilość znaków w tytule odtwarzacza + Maksymalna liczba znaków w tytule odtwarzacza Rozdzielczość odtwarzacza wideo Rozmiar bufora wideo Długość bufora wideo @@ -276,11 +275,11 @@ Zastrzeżenie Ogólne Przycisk do losowania - Pokaż przycisk do losowania na stronie głównej - Języki źródeł + Pokaż przycisk do losowania na stronie głównej i w bibliotece + Języki rozszerzeń Układ aplikacji Preferowane media - Włącz NSFW w obsługiwanych źródłach + Włącz NSFW w obsługiwanych rozszerzeniach Kodowanie napisów Źródła Układ interfejsu @@ -365,14 +364,14 @@ Filtrowanie wg preferowanego języka Dodatki Zwiastun - Odsyłacz + Odsyłacz (opcjonalny) Następny Wyświetlaj filmy w tych językach Poprzedni - Pomiń setup + Pomiń konfigurację Dostosuj wygląd aplikacji do urządzenia Zgłaszanie błędów - Co chciałbyś obejrzeć + Co chcesz obejrzeć Gotowe Rozszerzenia Dodaj repozytorium @@ -397,8 +396,6 @@ Zaaktualizowano %d rozszerzeń CloudStream nie ma domyślnie zainstalowanych żadnych witryn. Musisz zainstalować witryny z repozytoriów. \n -\nZ powodu bezmyślnego usunięcia DMCA przez Sky UK Limited 🤮 nie możemy zamieścić linku do witryny z repozytoriami. -\n \nDołącz do naszego Discorda lub poszukaj online. Zobacz repozytoria społeczności Publiczna lista @@ -433,7 +430,7 @@ Wyczyść historię Historia Za dużo tekstu. Nie można skopiować do schowka. - Link do odtwarzania + https://example.com/example.mp4 Odtwórz w CloudStream Pomiń %s %1$dh %2$dm @@ -453,17 +450,17 @@ Podsumowanie Instalator APK Niektóre telefony nie obsługują nowego instalatora pakietów. Wypróbuj tryb legacy, jeśli aktualizacje nie zostaną zainstalowane. - password123 + hasło123 @string/ova - MojaFajnaWitryna - MyCoolUsername + NowaNazwaWitryny + Nazwa użytkownika 127.0.0.1 Tryb kompatybilności - przyklad.pl + https://example.com /\?\? Instalator pakietów @string/home_play - hello@world.com + witaj@poczta.pl @string/anime Opening Ending @@ -518,7 +515,7 @@ Rozpocznij Nie powiodło się Ukończone powodzeniem - Serwer pośredniczący raw.githubusercontent.com + Serwer proxy GitHuba Obejścia ISP Test dostawcy Zatrzymaj @@ -528,8 +525,8 @@ Zasubskrybowano %s Anulowano subskrypcję %s Został wydany odcinek %d! - Obchodzi blokadę GitHuba za pomocą jsDelivr. może spowodować opóźnienie aktualizacji o kilka dni. - Nie udało się połączyć z GitHub, włączono serwer pośredniczący jsDelivr… + Obchodzi blokadę surowych adresów URL GitHuba za pomocą jsDelivr. Może powodować opóźnienie aktualizacji o kilka dni. + Nie udało się połączyć z GitHubem. Włączono serwer pośredniczący jsDelivr… Domyślna jakość (dane mobilne) W tym miejscu można zmienić kolejność źródeł. Jeśli wideo ma wyższy priorytet, pojawi się wyżej w wyborze źródła. Priorytet wideo jest sumą priorytetu źródła i priorytetu jakości. \n @@ -562,7 +559,7 @@ \n%s \n \nCzy chcesz dodać ten element, zastąpić istniejące, czy anulować operację? - Wprowadź pin dla %s + Wprowadź PIN dla %s Częstotliwość tworzenia kopii zapasowych Znaleziono potencjalny duplikat Zablokuj profil @@ -592,4 +589,25 @@ Automatyczny obrót Obrót Włącz automatyczne przełączanie orientacji ekranu na podstawie orientacji filmu + Dodaje opcję prędkości w odtwarzaczu + Powiadomienie o nowym odcinku + Szukaj w innych rozszerzeniach + Pokaż rekomendacje + Przetestuj wszystkie rozszerzenia + Ten test jest przeznaczony wyłącznie dla programistów i nie weryfikuje ani nie zaprzecza działaniu żadnego rozszerzenia. + Zablokuj za pomocą biometrii + Uwierzytelnianie hasłem/kodem PIN + Ten ekran został zamknięty z powodu wielu nieudanych prób. Uruchom ponownie aplikację. + Odblokuj CloudStream + To urządzenie nie obsługuje uwierzytelniania biometrycznego + Odblokuj aplikację za pomocą odcisku palca, identyfikatora twarzy, kodu PIN, wzoru i hasła. + Kopia zapasowa Twoich danych CloudStream została teraz utworzona. Chociaż prawdopodobieństwo tego jest bardzo niskie, wszystkie urządzenia mogą zachowywać się inaczej. W rzadkich przypadkach, gdy dostęp do aplikacji zostanie zablokowany, należy całkowicie wyczyścić dane aplikacji i przywrócić je z kopii zapasowej. Bardzo nam przykro z powodu wszelkich niedogodności z tym związanych. + Usuń z ulubionych + %s +\npozostało + Dodaj do ulubionych + Nazwa repozytorium i adres URL + Błąd dostępu do schowka. Spróbuj ponownie. + skopiowano! + Błąd podczas kopiowania. Skopiuj logcat i skontaktuj się z pomocą techniczną aplikacji. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 398a1aa3..b3180fee 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -59,7 +59,7 @@ Falha no Download Download cancelado Download concluído - Stream + Transmitir Erro a Carregar Links Armazenamento Interno Dob @@ -118,8 +118,7 @@ Configurações de legendas do player Legendas do Chromecast Configurações de legendas do Chromecast - Modo Eigengravy - Acrescenta uma opção de velocidade no player + Velocidade de reprodução Deslize para andar Deslize para os lados para controlar a posição em um vídeo Deslize para mudar as configurações @@ -143,7 +142,7 @@ Permissão de armazenamento não encontrada, por favor tente novamente. Erro no backup de %s Procurar - Contas + Contas e segurança Atualizações e backup Info Procura Avançada @@ -273,10 +272,10 @@ Geral Botão Aleatório Mostrar botão aleatório na página inicial - Idioma dos fornecedores + Línguas de extensão Layout da App Mídia preferida - Ativar NSFW em fornecedores compatíveis + Ativar NSFW nas Extensões suportadas Codificação das legendas Fornecedores Layout @@ -289,11 +288,11 @@ Local do título do poster Coloca o título debaixo do poster senha123 - MeuNomeFixe + Nome de utilizador ola@mundo.com 127.0.0.1 - MeuSiteFixe - examplo.com + NovoNomedoSite + https://example.com Codigo da Língua (pt) Conta Sair @@ -374,9 +373,7 @@ Transferido: %d Desativado: %d Não transferido: %d - O CloudStream não possui sites instalados por padrão. Você precisa instalar os sites a partir de repositórios. -\n -\nDevido a uma restrição sem sentido de direitos autorais (DMCA) pela Sky UK Limited 🤮 não podemos vincular o site do repositório no aplicativo. + O CloudStream não tem sites instalados por padrão. É necessário instalar os sites a partir de repositórios. \n \nJunte-se ao nosso Discord ou pesquise online. Ver repositórios da comunidade @@ -443,7 +440,7 @@ Cam Abertura Selecionar Biblioteca - Ignora o bloqueio do GitHub usando jsDelivr. Pode fazer com que as actualizações sejam atrasadas por alguns dias. + Contorna o bloqueio de URLs raw do GitHub usando jsDelivr. Pode atrasar as atualizações por uns dias. VLC Todas as linguagens Atualizado (Novo para Antigo) @@ -462,9 +459,9 @@ Final misto Avaliações (Decrescente) Aplicar ao reiniciar - Referente + Referenciador (opcional) Player oculto - Quantidade de Busca - raw.githubusercontent.com Proxy + Proxy do GitHub Blu-ray Aparência 1000 ms @@ -476,7 +473,7 @@ Ver informações sobre falha Aplicativo não encontrado Reverter - Link para transmitir + https://example.com/example.mp4 Plugins baixados %d plugins atualizados Pular %s @@ -551,4 +548,63 @@ Não foram encontrados plugins no repositório Repositório não encontrado, verifique o URL e tente a VPN Você já votou + Cancelar Inscrição + Subscrever + Favoritos + A recarregar links + Frequência de Backup + %s removido dos favoritos + Adicionar aos favoritos + Possível duplicata encontrada + %s adicionado aos favoritos + Remover dos favoritos + Substituir + Substituir Tudo + Insira o PIN atual + PIN + PIN incorreto. Por favor, tente novamente. + O PIN deve ter 4 caracteres + Editar conta + Conectado como %s + Ignorar a seleção da conta na inicialização + Girar + Digite o PIN para %s + Bloquear Perfil + Selecione uma conta + Gerenciar contas + Usar conta padrão + Potenciais itens duplicados foram encontrados na sua biblioteca: +\n +\n%s +\n +\nDeseja adicionar esse item mesmo assim, subtituir os existentes, ou cancelar a ação? + Parece que já existe um item potencialmente duplicado na sua biblioteca: \'%s.\' +\n +\nDeseja adicionar esse item mesmo assim, subtituir o existente, ou cancelar a ação? + Mostrar recomendações + Adiciona uma opção de velocidade no leitor + Testar todas as extensões + Este teste destina-se apenas a programadores e não verifica ou nega o funcionamento de qualquer extensão. + Adicionar + Insira o PIN + Notificação de novo episódio + Procurar noutras extensões + Apresentar um botão de alternância para a orientação do ecrã + Ativar a mudança automática da orientação do ecrã com base na orientação do vídeo + Rotação automática + Nome do repositório e URL + Favorito + Desfavorito + Bloqueio com biometria + copiado! + %s +\nrestante + Erro ao aceder à área de transferência, tente novamente. + Erro ao copiar, copie o logcat e contacte o suporte da aplicação. + Desbloquear o CloudStream + Autenticação por palavra-passe/PIN + A autenticação biométrica não é suportada neste dispositivo + Desbloqueie a aplicação com impressão digital, ID facial, PIN, padrão e palavra-passe. + Esta janela fechar-se-á após algumas tentativas falhadas. Terá de reiniciar a aplicação. + Foi feita uma cópia de segurança dos seus dados CloudStream, embora a probabilidade deste caso raro seja muito baixa, mas todos os dispositivos se comportam de forma diferente. No caso de ficar impedido de aceder à aplicação, na pior das hipóteses, limpe totalmente os dados da aplicação e restaure a cópia de segurança. Lamentamos profundamente qualquer inconveniente. diff --git a/app/src/main/res/values-qt/strings.xml b/app/src/main/res/values-qt/strings.xml index 72f16012..5de97c7d 100644 --- a/app/src/main/res/values-qt/strings.xml +++ b/app/src/main/res/values-qt/strings.xml @@ -82,7 +82,6 @@ ahhhaauugghh oha ooh ouuhhh oooohhahhh ouuhhh haaahhh ahoouuh - haaoooohhaaahhuoha ouuhhh ah oouuh ohoohaaahhu ohahaaaauugghh ahooo aaahhu aaaghh aaaghhohahooooo ouuhhh oouuh ooo-ahahahooo-ahah ohaaaaaghh aaaaaahhaaahhuoouuhaaaaa aahooo diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 1a084e02..d7da44b4 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -120,8 +120,7 @@ Setări de subtitrare Subtitrări Chromecast Setări pentru subtitrare Chromecast - Modul Eigengravy - Adăugați opțiunea de viteză în player + viteza de redare Derulați spre înainte/înapoi Derulați dintr-o parte în alta pentru a controla timpul de difuzare a videoclipului Derulați pentru a modifica setările @@ -273,7 +272,7 @@ Orice probleme legale privind conținutul acestei aplicații ar trebui să fie rezolvate cu furnizorii și gazdele actuale de fișiere, întrucât noi nu suntem afiliați cu aceștia. În caz de încălcare a drepturilor de autor, vă rugăm să contactați direct părțile responsabile sau site-urile de streaming. Aplicația este destinată exclusiv utilizării educaționale și personale. CloudStream 3 nu găzduiește niciun fel de conținut în aplicație și nu are niciun control asupra conținutului media care este pus sau retras. CloudStream 3 funcționează ca orice alt motor de căutare, cum ar fi Google. CloudStream 3 nu găzduiește, nu încarcă și nu gestionează niciun videoclip, film sau conținut. Pur și simplu navighează, adună și afișează linkuri într-o interfață convenabilă și ușor de utilizat. Pur și simplu, acesta extrage paginile web ale unor terțe părți care sunt accesibile publicului prin intermediul oricărui browser web obișnuit. Este responsabilitatea utilizatorului de a evita orice acțiune care ar putea încălca legile care guvernează locația sa. Utilizați CloudStream 3 pe propria răspundere. General Aleatoriu - Afișați butonul Aleatoriu pe pagina de start + Afișați butonul aleatoriu pe pagina de start și în bibliotecă Limba furnizorului Aplicație de prezentare Media preferată @@ -289,11 +288,11 @@ Locația titlului de pe poster parola123 - David Popovici + Numele utilizatorului/utilizatoarei davidpopovici@gmail.com 127.0.0.1 - David Popovici - davidpopovici.com + NouNumeSite + https://exemplu.com Cod limbă (RO) %1$s %2$s Cont @@ -309,7 +308,7 @@ %d / 10 /\?\? /%d - %s autentificat + %s autentificat/ă Nu s-a putut autentifica la %s Nu există @@ -396,11 +395,11 @@ NSFW %1$d-%2$d Player Afișat - Căutați Suma - Player Ascuns - Căutați Suma + Player Ascuns/ă - Căutați Suma Livestream-uri NSFW Eșuat - Cantitatea de căutare utilizată atunci când playerul este vizibil + Suma căutată și utilizată atunci când player-ul este vizibil/ă Livestream Cantitatea de căutare utilizată atunci când playerul este ascuns Calitatea preferată (Date Mobile) @@ -484,11 +483,9 @@ Toate extensiile au fost dezactivate din cauza unei defecțiuni pentru a vă ajuta să o găsiți pe cea care cauzează probleme. Se descarcă actualizarea aplicației… Browser web - CloudStream nu are niciun site instalat în mod implicit. Trebuie să instalați site-urile din depozite. + CloudStream nu are niciun site instalat din start. Trebuie să instalați site-urile din depozite. \n -\nDin cauza unui DMCA takedown fără creier de către Sky UK Limited 🤮 nu putem lega site-ul de depozit în aplicație. -\n -\nAlăturați-vă Discordului nostru sau căutați online. +\nAlăturați-vă Discord-ului nostru sau căutați online. A început să descarce %1$d %2$s… Mod sigur pornit Fișier Mod Sigur găsit! @@ -513,8 +510,8 @@ Repornește Activează NSFW la furnizori suportate Nu s-a putut ajunge la GitHub. Se activează proxy-ul jsDelivr… - Proxy raw.githubusercontent.com - Depășește blocarea GitHub folosind jsdelivr, poate cauza întârzieri de câteva zile la actualizări. + Proxy GitHub + Depășește blocarea GitHub folosind jsDelivr. Poate cauza întârzieri de câteva zile la actualizări. Următorul Toate %s deja descărcate S-a descărcat: %d @@ -528,7 +525,7 @@ Moştenit Test de furnizor Furnizori - Link către stream + https://example.com/example.mp4 Acest lucru va șterge, de asemenea, toate plugin-urile din depozit Se instalează actualizarea aplicației… S-a descărcat %1$d %2$s @@ -569,4 +566,31 @@ UI nu a putut fi creată corect, acesta este un BUG MAJOR și trebuie raportat imediat %s Selectați modul de filtrare a descărcării plugin-urilor Ați votat deja + Elemente potențial duplicate au fost găsite în biblioteca ta: +\n +\n%s +\n +\nÎn ciuda acestui fapt, ai dori să adaugi acest alement, să le înlocuiești pe cele existente, sau să anulezi acțiunea? + %s a fost adăugat la favoriți/te + %s a fost eliminat din favoriți/te + Adaugă la favoriți/te + Elimină din favoriți/te + Se pare că un element potențial duplicat deja există în biblioteca ta: \'%s.\' +\n +\nÎn ciuda aceasta, ai dori să adaugi acest element, să îl înlocuiești pe cel existent, sau să anulezi acțiunea? + Introduce PIN-ul pentru %s + Introduce PIN-ul actual + Introduce PIN-ul + Blochează Profilul + Dezabonează-te + Abonează-te + Adaugă + Înlocuiește + Înlocuiește tot + Posibil Duplicat Găsit + Notificare episod nou + Arată sugestii + Adaugă o opțiune de viteză la player + Favoriți/te + Frecvența de backup diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 82bd3581..16f4449b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -15,7 +15,7 @@ Отмена Все Пауза - Актёрский состав: %s + В ролях: %s Название источника Войти Нет @@ -71,8 +71,8 @@ Скачано Скачивание Скачать остановлена - Скачать начатый - Скачать отменённый + Загрузка началась + Загрузка отменена Скачать выполнено Инфо Обновление началось @@ -99,17 +99,17 @@ Цвет фона Цвет окна Тип края - Субтитр подъём - Поиск с использованием поставщиков + Подъем субтитров + Поиск с использованием провайдеров Поиск с использованием типов - %d Бенены данность на разрабы - Бенены не дают + %d бенен(а/ов) выдано разрабам + Бенены не выданы Автовыбор языка Скачать языки Язык субтитров Удерживайте, чтобы сбросить по умолчанию Ошибка загрузки ссылок - Поток + Сетевой Поток Шрифт Размер шрифта Удалить файл @@ -132,13 +132,12 @@ Картинка в картинке Продолжение воспроизведения в миниатюрном проигрывателе поверх других приложений Кнопка изменения размера проигрывателя - Удалите черные границы + Убрать черные границы Субтитры Настройки субтитров проигрывателя Субтитры Chromecast Настройки субтитров Chromecast - Режим Eigengravy - Добавляет опцию скорости в проигрывателе + Скорость воспроизведения Проведите пальцем для поиска Проведите пальцем для изменения настроек Проведите вверх или вниз по левой или правой стороне, чтобы изменить яркость или громкость @@ -150,13 +149,13 @@ Не удалось восстановить данные из %s Отсутствует разрешение на хранение. Пожалуйста попробуйте снова. Аккаунты - Обновления и резервное + Обновления и резервное копирование Информация Расширенный поиск Показывать трейлеры - Скрыть выбранное качество видео в результатах поиска - Автоматическое обновление плагинов - Автоматическая загрузка плагинов + Скрыть выбранные форматы видео в результатах поиска + Автообновление плагинов + Автозагрузка плагинов Показать обновления приложения Автоматически проверять обновления при старте приложения. Обновится до пре-релиза @@ -197,10 +196,10 @@ Сезон Аниме приложение от тех же разработчиков Автоматически загружать еще не установленные плагины из добавленных репозиториев. - Присоединится в Discord - Бесплатно + Присоединиться к Discord-серверу + Свободно %dm - %1$d ч. %2$d мин. + %1$dч %2$dм Фильмы Мультфильм Сериалы @@ -218,7 +217,7 @@ Азиатская драма Общие Провайдеры - Макет + Расстановка Расширения Плеер Резервное копирование данных @@ -246,25 +245,25 @@ Оговорка Синхронизация субтитров Добавить клон существующего сайта с другим URL-адресом - Используется для обхода блокировок интернет провайдера + Используется для обхода блокировок интернет-провайдера Путь скачивания Давал бенен Обновить Основной цвет - Языки поставщиков + Языки провайдеров Название репозитория Очистить историю - Referer + Реферер (необязательно) Дайте бенен разрабам Ссылки - Макет - Макет приложения + Расстановка + Расстановка приложения Тема приложения Добавить репозиторий Убрать отметку Вы уверены, что хотите выйти\? Плагин скачан - Плагин удалён + Плагин удален Описание Версия Статус @@ -276,7 +275,7 @@ Пропустить %s Концовка Используйте яркость системы в проигрывателе приложения вместо темного наложения - Обновить состояние хода просмотра + Обновлять прогресс просмотра Данные сохранены Показывает результаты поиска, разделенные по провайдеру Поиск предварительных обновлений вместо полных выпусков @@ -302,7 +301,7 @@ Больше не показывать Пропустить это обновление URL сервера NGINX - Создать учётную запись + Создать аккаунт Добавить слежение Добавлено %s Синхронизировать @@ -325,7 +324,7 @@ Отчистить кеш видео и изображений Вызывает сбои, если установлено слишком высокое значение на устройствах с небольшим объемом памяти, таких как Android TV. Вызывает проблемы, если установлено слишком высокое значение на устройствах с небольшим объемом памяти, таких как Android TV. - Легкая новелла от тех же разработчиков + Легкое приложение для новелл от тех же разработчиков Язык Плейлист HLS Сначала установить расширение @@ -344,13 +343,13 @@ Эмулятор Под плакатом parol123 - МоёИмяПользователя - Сменить учётную запись - Добавить учётную запись - МойКрутойСайт - example.com + Юзернейм + Сменить аккаунт + Добавить аккаунт + ИмяСайта + https://example.com Код языка (ru) - учётная запись + аккаунт Автоматически 127.0.0.1 Обновления приложения @@ -423,9 +422,6 @@ %s (отключено) Далее В CloudStream по умолчанию не установлены сайты. Вам необходимо установить сайты из репозиториев. -\n -\nИз-за безмозглой жалобы DMCA от Sky UK Limited 🤮 мы не можем привязать сайт репозитория в приложении. -\n \nПрисоединяйтесь к нашему Discord-серверу или найдите в интернете. Недопустимые данные Разрешение и название @@ -461,7 +457,7 @@ Загрузить из интернета Загрузка обновления приложения… Недопустимый URL - Применить при перезапуске + Будет применено при перезапуске Отчеты ошибках Что вы хотите увидеть Смотрите видео на этих языках @@ -469,8 +465,8 @@ Изображение постера Пакетная загрузка Скачайте список сайтов, который вы хотите использовать - Отображать Аниме с Дубляжом/Субтитрами - Включить NSFW на поддерживаемых провайдерах + Отображать аниме с дубляжом/субтитрами + Включить NSFW у поддерживаемых расширений (провайдеров) Удалять скрытые субтитры из субтитров Дополнительно Изменить вид интерфейса, чтобы соответствовать устройству @@ -491,11 +487,11 @@ Показывать всплывающие окна для пропуска вступления/заключения Фильтровать по предпочитаемому языку медиа Неверный ID - Ссылка на стрим - Отображать рандомную кнопку на Главной странице + https://example.com/example.mp4 + Отображать рандомную кнопку в библиотеке и главной странице Рандомная кнопка Legacy (старый) - Веб видеокаст + Web Video Cast Не отправляет данные Перезагрузить ссылки Предпочтительные медиа @@ -520,12 +516,12 @@ Вернуться Подписался на %s Предпочтительное качество видео (Мобильный интернет) - raw.githubusercontent.com Прокси-сервер - Не удалось подключиться к GitHub. Включаем проксирование через jsdelivr… + GitHub прокси + Не удалось подключиться к GitHub. Включаем проксирование через jsDelivr… Эпизод %d выпущен! Обходы провайдера Обновление подписки на фильмы и сериалы - Обход ограничения доступа к GitHub с помощью jsDelivr может задержать обновления на несколько дней. + Обход ограничения доступа к raw github URLs с помощью jsDelivr. Обновления могут задержаться на несколько дней. Подписные Отказались от подписки на %s Мобильный интернет @@ -552,4 +548,49 @@ \n \nПРИМЕЧАНИЕ. Если сумма равна 10 или более, плеер автоматически пропустит загрузку при загрузке этой ссылки! Ссылки перезагружены + Выбрать аккаунт + %s убран из избранных + Введите пин-код + Защитить профиль + Пин-код + Найден возможный дубликат + Добавить + Неверный пин-код. Попробуйте снова. + Пин-код должен состоять из 4 цифр + Изменить аккаунт + Управление аккаунтами + Вы вошли как %s + Пропускать выбор аккаунта при запуске + Повернуть + Показывать переключатель ориентации экрана + Заменить все + Потенциальные дубликаты элементов были найдены в вашей библиотеке: +\n +\n\'%s.\' +\n +\nВы хотите добавить этот элемент, заменить существующие или отменить это действие? + Убрать из избранных + Добавить в избранное + Включить автоматическую смену ориентации экрана на основе ориентации видео + Автоповорот + rotate_video_key + Использовать аккаунт по умолчанию + Отписаться + Заменить + Введите текущий пин-код + auto_rotate_video_key + Избранное + %s добавлен в избранное + Введите пин-код от %s + Подписаться + Частота резервного копирования + Похоже, что потенциальный дубликат элемента уже существует в вашей библиотеке: \'%s.\' +\n +\nВы хотите добавить этот элемент, заменить существующий или отменить это действие? + Оповещение о выходе нового эпизода + Искать в других расширениях + Показать рекомендации + Этот тест предназначен только для разработчиков и не подтверждает или не опровергает работоспособность провайдеров. + Добавление настроек скорости в плеер + Протестировать всех провайдеров diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 490f74ac..ebaaa2ae 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -149,7 +149,6 @@ Použiť systémový jas Obnoviť dáta zo zálohy Dvojitým ťuknutím pretočiť - Pridá možnosť rýchlosti do prehrávača Automaticky sťahovať doplnky Pripojte sa na Discord Neodosiela žiadne dáta diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index a63d44fe..7b0d2870 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -250,7 +250,6 @@ Qoraal-hoosaadka Habaynta Qrl-hoosaadka Koromakaastiga Habka Xawaare-kordhinta - Waxaad kordhin karta xawaaraha aad ku daawanayso Midig iyo bidix u jiid si aad marba dhinac ugu dhaafiso muqaalka Laba jeer taabo midig ama bidix si aad u dhaafiso ama ku ceshato Laba jeer taabo si aad u dhaafiso diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0f6f37cd..76508c43 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -83,8 +83,7 @@ Ta bort de svarta kanterna Undertexter Inställningar för undertexter - Eigengrau Läge - Lägger till hastighetsalternativet i spelaren + Uppspelningshastighet Svep för att strya tiden Svep åt vänster eller höger för att styra tiden i videospelaren Svep för att ändra inställningar @@ -138,7 +137,7 @@ Inga undertexter Standard Tillgängligt - Använtt + Använt App Filmer Tv Serier @@ -180,9 +179,9 @@ Använd system ljusstyrka Använder systemets ljusstyrka instället för en svart överlaga Visa filler avsnitt för anime - Visa Dubbad/Subbad anime - Anpassad till skärmstorlek - Leverantörspråk + Visa dubbad/undertextad anime + Anpassa till skärmstorlek + Tilläggsspråk Utsträckt Inzoomad Oförväntat uppspelingsfel @@ -205,7 +204,7 @@ Logga ut konto Nerladdningsplats - Kollar om + Tittar på nytt Automatisk DNS över HTTPS " " @@ -217,7 +216,7 @@ Chromecast-undertexter Dubbeltryck i mitten för att pausa Återställ data från backup - Konton + Konton och säkerhet Uppdateringar och backup Automatiska pluginuppdateringar %1$dd %2$dh %3$dm @@ -294,7 +293,7 @@ UHD Upplösning och titel Fel - Referer + Referent (valfritt) Nästa 1000 ms Lägga till en klon av en befintlig webbplats med en annan webbadress @@ -327,7 +326,7 @@ Trailer Applayout Funktioner - exempel.se + https://example.com Språkkod (en) Videocache på disken Rensa video- och bildcache @@ -348,7 +347,7 @@ Cache Säkerhetskopiering Undertexter - Aktivera NSFW på sidor som stöds + Aktivera NSFW på tillägg som stöds Undertextkodning lösenord123 Fördröjning av undertexter @@ -367,7 +366,7 @@ Titta på videor på dessa språk Föregående Spår - Uppdaterar + Uppdatering påbörjad Logg Videospelarens hoppsträcka (Sekunder) Ändra status @@ -379,12 +378,12 @@ Slumpknapp Visa sub Kunde inte öppna appen - raw.githubusercontent.com Proxy + GitHub Proxy Webbläsarens videospelare Installerar uppdatering till appen… Kunde inte nå GitHub, sätter på jsDelivr proxy… Leverantörer - MinTrevligaWebbsida + Nytt webbplatsnamn Ta bort reklam från undertexter VLC Alla språk @@ -432,7 +431,7 @@ Profiler Hjälp Kvalitet - Ström + Nätverks Stream Databasens namn All %s har redan laddats ner Ladda ner alla tillägg från den här databasen? @@ -480,7 +479,7 @@ Loggat in som %s Hoppa över val av konto vid start auto_rotera_video_nyckel - Förbi passera blockering av GitHub genom att använda jsDelivr. Kan göra att uppdateringar försenas med några dagar. + Gå förbi blockering av rå GitHub-URL:er med jsDelivr. Kan göra att uppdateringar försenas med några dagar. Funktion Önskad media Lägg titeln under affischen @@ -499,9 +498,7 @@ Visa community databaser Blandad inledning Skippa %s - CloudStream har inga webbplatser installerade som standard. Du måste installera webbplatserna från databaser. -\n -\nPå grund av en hjärnlös DMCA-borttagning av Sky UK Limited kan vi inte länka databaser på denna applikation. + CloudStream har inga webbplatser installerade som standard. Du måste installera webbplatser från arkiv. \n \nGå med i vår Discord eller sök online. Välj bibliotek @@ -551,7 +548,7 @@ Gester %s autentiserad Statister - Länka till strömmen + https://example.com/example.mp4 Radera databasen Profil bakgrund WP @@ -591,5 +588,20 @@ \nKommer att ha en kombinerad videoprioritet på 10. \n \nOBS: Om summan är 10 eller mer kommer spelaren automatiskt att hoppa över laddningen när den länken laddas! - Titel kopierad! + Meddelande om nytt avsnitt + Sök i andra tillägg + Visa rekommendationer + Lägger till ett hastighetsalternativ i spelaren + Testa alla tillägg + Detta test är endast avsett för utvecklare och verifierar eller förnekar inte att någon tillägg fungerar. + Lås med biometrik + Lösenord/PIN autentisering + Lås upp appen med Fingerprint, Face ID, PIN, mönster eller lösenord. + Lås upp CloudStream + Biometrisk autentisering stöds inte på den här enheten + Detta fönster stängs efter några misslyckade försök. Du måste starta om appen. + Favorit + Ta bort från favoriter + %s +\nkvarstår diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 234207b9..e981d05a 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -99,7 +99,6 @@ Logcat 🐈 காட்டு பிற பயன்பாடுகளுக்கு மேல் மினியேச்சர் பிளேயரில் பிளேபேக் தொடர்கிறது வசன வரிகள் - பிளேயரில் வேக விருப்பத்தை சேர்க்க வீடியோ பிளேயரில் நேரத்தைக் கட்டுப்படுத்த இடது அல்லது வலதுபுறம் ஸ்வைப் செய்யவும் பிரகாசம் அல்லது ஒலியளவை மாற்ற இடது அல்லது வலது பக்கத்தில் ஸ்வைப் செய்யவும் இடைநிறுத்துவதற்கு இருமுறை தட்டவும் diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index fc3946bb..b4308eb7 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -101,7 +101,6 @@ Subtitles Player subtitles settings Eigengravy Mode - Magdagdag ng \'speed option\' sa \'player\' Swipe to seek Swipe pakanan o pakaliwa upang makontrol ang oras ng pinapanood Swipe to change settings diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e8b7881a..7005fd95 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -76,7 +76,7 @@ İndirme iptal edildi İndirme bitti %s - %s - Yayınla + Ağ akışı Bağlantılar yüklenirken hata oluştu Dahili depolama Dublajlı @@ -137,8 +137,7 @@ Oynatıcı alt yazı ayarları Chromecast alt yazıları Chromecast alt yazı ayarları - Eigengrau modu - Oynatıcıya hız seçeneği ekler + Oynatma hızı Atlamak için kaydır Zamanı ayarlamak için yanlardan kaydır Ayarları değiştirmek için kaydır @@ -162,7 +161,7 @@ Depolama izinleri eksik. Lütfen tekrar deneyin. %s yedeklenirken hata Ara - Hesaplar + Hesaplar ve Güvenlik Güncellemeler ve yedekleme Bilgi Gelişmiş arama @@ -309,10 +308,10 @@ Genel Rastgele İçerik Anasayfada ve Kütüphanede rastgele düğmesini göster - Sağlayıcı dilleri + Uzantı dilleri Uygulama düzeni Tercih edilen medya - Desteklenen sağlayıcılarda +18 içeriği etkinleştir + Desteklenen Uzantılarda NSFW\'yi etkinleştirin Alt yazı kodlaması Sağlayıcılar Düzen @@ -330,11 +329,11 @@ opensubtitles_key nginx_key şifre123 - HavalıKullanıcıAdı + Kullanıcı Adı hello@world.com 127.0.0.1 - MyCoolSite - ornek.com + YeniSiteAdı + https://ornek.com Dil kodu (tr) ?attr/colorPrimary - @android:dimen/dialog_min_width_major - @android:dimen/dialog_min_width_minor + @dimen/abc_dialog_min_width_major + @dimen/abc_dialog_min_width_minor @drawable/dialog__window_background diff --git a/app/src/main/res/xml/settings_general.xml b/app/src/main/res/xml/settings_general.xml index c4900bca..cdda6d85 100644 --- a/app/src/main/res/xml/settings_general.xml +++ b/app/src/main/res/xml/settings_general.xml @@ -6,10 +6,7 @@ android:title="@string/app_language" android:icon="@drawable/ic_baseline_language_24" /> - + + android:title="@string/title_downloads"> + + + + + + + + ("clean") { diff --git a/fastlane/metadata/android/af/short_description.txt b/fastlane/metadata/android/af/short_description.txt index 59cfb7e5..aaba87f3 100644 --- a/fastlane/metadata/android/af/short_description.txt +++ b/fastlane/metadata/android/af/short_description.txt @@ -1 +1 @@ -Laai af of stroom flieks, TV-reekse en anime. +Laai af en stroom flieks, TV-reekse en anime. diff --git a/fastlane/metadata/android/hi-IN/full_description.txt b/fastlane/metadata/android/hi-IN/full_description.txt index 89927810..465db20e 100644 --- a/fastlane/metadata/android/hi-IN/full_description.txt +++ b/fastlane/metadata/android/hi-IN/full_description.txt @@ -1,10 +1,10 @@ -क्लाउडस्ट्रीम-3 आपको मूवी, टीवी-सीरीज़ और एनीमे स्ट्रीम और डाउनलोड करने की सुविधा देता है। +क्लाउडस्ट्रीम-3 आपको फ़िल्में, टीवी शृंखलाएँ और एनिमे स्ट्रीम एवं डाउनलोड करने की सुविधा देता है। -ऐप बिना किसी विज्ञापन और एनालिटिक्स के आता है और -कई ट्रेलर और मूवी साइटों और अन्य का समर्थन करता है जैसे कि- +ऐप विज्ञापन और विश्लेषिकी से मुक्त है एवं +अनेकों ट्रेलर और मूवी साइटों के समर्थन जैसी सुविधाएँ देता है, जैसे कि – -बुकमार्क +पृष्ठचिह्न उपशीर्षक डाउनलोड -क्रोमकास्ट का समर्थन +क्रोमकास्ट समर्थन diff --git a/fastlane/metadata/android/hi-IN/short_description.txt b/fastlane/metadata/android/hi-IN/short_description.txt index a8a1eb4d..5a0f2d12 100644 --- a/fastlane/metadata/android/hi-IN/short_description.txt +++ b/fastlane/metadata/android/hi-IN/short_description.txt @@ -1 +1 @@ -फिल्में, टीवी-सीरीज़ और एनीमे स्ट्रीम करें और डाउनलोड करें। +फ़िल्में, टीवी धारावाहिक और एनिमे स्ट्रीम और डाउनलोड करें। diff --git a/fastlane/metadata/android/hu-HU/changelogs/2.txt b/fastlane/metadata/android/hu-HU/changelogs/2.txt new file mode 100644 index 00000000..012882d2 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/2.txt @@ -0,0 +1 @@ +- Változáslista hozzáadva! diff --git a/fastlane/metadata/android/hu-HU/full_description.txt b/fastlane/metadata/android/hu-HU/full_description.txt new file mode 100644 index 00000000..24deb97a --- /dev/null +++ b/fastlane/metadata/android/hu-HU/full_description.txt @@ -0,0 +1,10 @@ +A CloudStream-3 segítségével streamelhet vagy letölthet filmeket, TV sorozatokat vagy animéket.. + +Az app nem tartalmaz semmilyen reklámot vagy követést, +és támogat többféle film és előzetes oldalt, és sok minden mást, pl. + +Könyvjelzőket + +Felirat Letöltést + +Chromecast támogatást diff --git a/fastlane/metadata/android/hu-HU/short_description.txt b/fastlane/metadata/android/hu-HU/short_description.txt new file mode 100644 index 00000000..2e7e6127 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/short_description.txt @@ -0,0 +1 @@ +Streameljen vagy töltsön le filmeket, TV sorozatokat vagy animét. diff --git a/fastlane/metadata/android/hu-HU/title.txt b/fastlane/metadata/android/hu-HU/title.txt new file mode 100644 index 00000000..dde89d58 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/title.txt @@ -0,0 +1 @@ +CloudStream diff --git a/fastlane/metadata/android/id/changelogs/2.txt b/fastlane/metadata/android/id/changelogs/2.txt new file mode 100644 index 00000000..677af86c --- /dev/null +++ b/fastlane/metadata/android/id/changelogs/2.txt @@ -0,0 +1 @@ +- Log perubahan ditambahkan! diff --git a/fastlane/metadata/android/id/full_description.txt b/fastlane/metadata/android/id/full_description.txt new file mode 100644 index 00000000..fde69775 --- /dev/null +++ b/fastlane/metadata/android/id/full_description.txt @@ -0,0 +1,12 @@ +CloudStream-3 memudahkan Anda streaming dan mengunduh Film, Seri TV, dan Anime. + + +Aplikasi ini hadir tanpa iklan dan pelacak analitik dan +mendukung beberapa situs trailer & film, dan +masih banyak lagi, misalnya + +Bookmark + +Mengunduh subtitle + +Dukungan Chromecast diff --git a/fastlane/metadata/android/id/short_description.txt b/fastlane/metadata/android/id/short_description.txt new file mode 100644 index 00000000..d7a9ebe4 --- /dev/null +++ b/fastlane/metadata/android/id/short_description.txt @@ -0,0 +1 @@ +Stream dan unduh film, seri TV, dan anime. diff --git a/fastlane/metadata/android/id/title.txt b/fastlane/metadata/android/id/title.txt new file mode 100644 index 00000000..dde89d58 --- /dev/null +++ b/fastlane/metadata/android/id/title.txt @@ -0,0 +1 @@ +CloudStream diff --git a/fastlane/metadata/android/ko-KR/changelogs/2.txt b/fastlane/metadata/android/ko-KR/changelogs/2.txt new file mode 100644 index 00000000..f4c05b14 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/changelogs/2.txt @@ -0,0 +1 @@ +- 변경기록이 추가됨! diff --git a/fastlane/metadata/android/ko-KR/full_description.txt b/fastlane/metadata/android/ko-KR/full_description.txt new file mode 100644 index 00000000..542c1ff7 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/full_description.txt @@ -0,0 +1,10 @@ +클라우트스트림-3는 영화, TV-연속극 및 애니메이션 스트리밍을 할 수 있고 내려받을 수 있습니다. + +이 앱은 광고나 분석 없이 제공되고 +여러 예고편 & 영화 사이트 등을 지원합니다. + +북마크 + +자막 내려받기 + +크롬캐스트 지원 diff --git a/fastlane/metadata/android/ko-KR/short_description.txt b/fastlane/metadata/android/ko-KR/short_description.txt new file mode 100644 index 00000000..e85980b1 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/short_description.txt @@ -0,0 +1 @@ +영화, TV 시리즈 및 애니메이션 스트림과 내려받기. diff --git a/fastlane/metadata/android/ko-KR/title.txt b/fastlane/metadata/android/ko-KR/title.txt new file mode 100644 index 00000000..a199a665 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/title.txt @@ -0,0 +1 @@ +클라우드스티림 diff --git a/fastlane/metadata/android/mk-MK/changelogs/2.txt b/fastlane/metadata/android/mk-MK/changelogs/2.txt index 949f6579..ee4f49cc 100644 --- a/fastlane/metadata/android/mk-MK/changelogs/2.txt +++ b/fastlane/metadata/android/mk-MK/changelogs/2.txt @@ -1 +1 @@ -- Дневник на промени е додаден! +- Дневникот на промени е додаден! diff --git a/fastlane/metadata/android/mk-MK/full_description.txt b/fastlane/metadata/android/mk-MK/full_description.txt index cb06980e..b49c1683 100644 --- a/fastlane/metadata/android/mk-MK/full_description.txt +++ b/fastlane/metadata/android/mk-MK/full_description.txt @@ -1,8 +1,8 @@ CloudStream-3 ви дозволува да гледате и превземате филмови, телевизиски серии и аниме. Апликацијата нема реклами и аналитика. Таа поддржува повеќе страници за трејлери, филмови и многу повеќе. Апликацијата вклучува: - + Обележувачи (Bookmarks) - + Превземање на преводи - + Поддршка за Chromecast diff --git a/fastlane/metadata/android/pl-PL/changelogs/2.txt b/fastlane/metadata/android/pl-PL/changelogs/2.txt new file mode 100644 index 00000000..e558535d --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/2.txt @@ -0,0 +1 @@ +- Dodano dziennik zmian! diff --git a/fastlane/metadata/android/pl-PL/full_description.txt b/fastlane/metadata/android/pl-PL/full_description.txt new file mode 100644 index 00000000..11f71ff7 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/full_description.txt @@ -0,0 +1,10 @@ +CloudStream-3 umożliwia strumieniowe przesyłanie i pobieranie filmów, seriali telewizyjnych i anime. + +Aplikacja jest dostarczana bez reklam i analityki, obsługuje +wiele witryn ze zwiastunami, filmami i nie tylko, np. + +Zakładki + +Pobieranie napisów + +Obsługa Chromecasta diff --git a/fastlane/metadata/android/pt-BR/changelogs/2.txt b/fastlane/metadata/android/pt-BR/changelogs/2.txt new file mode 100644 index 00000000..c094fe97 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/changelogs/2.txt @@ -0,0 +1 @@ +- Histórico de mudanças adicionado! diff --git a/fastlane/metadata/android/pt-BR/full_description.txt b/fastlane/metadata/android/pt-BR/full_description.txt new file mode 100644 index 00000000..1406838e --- /dev/null +++ b/fastlane/metadata/android/pt-BR/full_description.txt @@ -0,0 +1,10 @@ +O CloudStream-3 permite que você faça transmissões, download de filmes, séries, e anime. + +O aplicativo não contém anúncios ou ferramentas de análise, +e suporta múltiplos sites de filmes e trailers, e muito mais, como: + +Favoritos + +Download de legendas + +Suporte à Chromecast diff --git a/fastlane/metadata/android/pt-BR/short_description.txt b/fastlane/metadata/android/pt-BR/short_description.txt new file mode 100644 index 00000000..46635de9 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/short_description.txt @@ -0,0 +1 @@ +Faça transmissões, download de filmes, séries, e anime. diff --git a/fastlane/metadata/android/pt-BR/title.txt b/fastlane/metadata/android/pt-BR/title.txt new file mode 100644 index 00000000..dde89d58 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/title.txt @@ -0,0 +1 @@ +CloudStream diff --git a/fastlane/metadata/android/zh-CN/changelogs/2.txt b/fastlane/metadata/android/zh-CN/changelogs/2.txt index 5512f16c..c8c4624d 100644 --- a/fastlane/metadata/android/zh-CN/changelogs/2.txt +++ b/fastlane/metadata/android/zh-CN/changelogs/2.txt @@ -1 +1 @@ -- 添加了更新日志! +- 新增更新日志! diff --git a/fastlane/metadata/android/zh-CN/full_description.txt b/fastlane/metadata/android/zh-CN/full_description.txt index 56519df6..b2dcf1de 100644 --- a/fastlane/metadata/android/zh-CN/full_description.txt +++ b/fastlane/metadata/android/zh-CN/full_description.txt @@ -1,9 +1,10 @@ -CloudStream-3可以让你串流和下载电影、剧集和动漫。这款应用没有任何广告和分析。它支持多个预告片和电影网站等。特点包括: +CloudStream-3可以让你串流和下载电影、剧集和动漫。 + +这款应用没有任何广告和隐私分析并且 +它支持多个预告片和电影网站等。特点包括: 书签 -下载和串流电影、电视节目和动漫 - 下载字幕 支持投屏