Merge branch 'master' into githubAccount

This commit is contained in:
Cloudburst 2022-11-13 23:35:22 +01:00 committed by GitHub
commit c8fe80842d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 235 additions and 84 deletions

View file

@ -110,6 +110,17 @@
<data android:scheme="cloudstreamrepo" /> <data android:scheme="cloudstreamrepo" />
</intent-filter> </intent-filter>
<!-- Allow searching with intents: cloudstreamsearch://Your%20Name -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cloudstreamsearch" />
</intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />

View file

@ -16,11 +16,9 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.navigation.NavController import androidx.navigation.*
import androidx.navigation.NavDestination
import androidx.navigation.NavDestination.Companion.hierarchy import androidx.navigation.NavDestination.Companion.hierarchy
import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavOptions
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
@ -45,6 +43,7 @@ import com.lagradost.cloudstream3.CommonActivity.onUserLeaveHint
import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.CommonActivity.showToast
import com.lagradost.cloudstream3.CommonActivity.updateLocale import com.lagradost.cloudstream3.CommonActivity.updateLocale
import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.network.initClient
import com.lagradost.cloudstream3.plugins.PluginManager import com.lagradost.cloudstream3.plugins.PluginManager
import com.lagradost.cloudstream3.plugins.PluginManager.loadSinglePlugin import com.lagradost.cloudstream3.plugins.PluginManager.loadSinglePlugin
@ -54,9 +53,11 @@ import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.account
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appString import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appString
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringRepo import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringRepo
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.githubApi import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.githubApi
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringSearch
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.inAppAuths import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.inAppAuths
import com.lagradost.cloudstream3.ui.APIRepository import com.lagradost.cloudstream3.ui.APIRepository
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_NAVIGATE_TO import com.lagradost.cloudstream3.ui.download.DOWNLOAD_NAVIGATE_TO
import com.lagradost.cloudstream3.ui.search.SearchFragment
import com.lagradost.cloudstream3.ui.search.SearchResultBuilder import com.lagradost.cloudstream3.ui.search.SearchResultBuilder
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isEmulatorSettings import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isEmulatorSettings
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
@ -92,11 +93,9 @@ import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_result_swipe.* import kotlinx.android.synthetic.main.fragment_result_swipe.*
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
import okhttp3.ConnectionSpec
import okhttp3.OkHttpClient
import okhttp3.internal.applyConnectionSpec
import java.io.File import java.io.File
import java.net.URI import java.net.URI
import java.net.URLDecoder
import java.nio.charset.Charset import java.nio.charset.Charset
import kotlin.reflect.KClass import kotlin.reflect.KClass
@ -151,7 +150,7 @@ val VLC = ResultResume(
val MPV = ResultResume( val MPV = ResultResume(
MPV_PACKAGE, MPV_PACKAGE,
//"is.xyz.mpv.MPVActivity.result", // resume not working :pensive: //"is.xyz.mpv.MPVActivity.result", // resume not working :pensive:
position = "position", position = "position",
duration = "duration", duration = "duration",
) )
@ -192,6 +191,15 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
companion object { companion object {
const val TAG = "MAINACT" const val TAG = "MAINACT"
/**
* Setting this will automatically enter the query in the search
* next time the search fragment is opened.
* This variable will clear itself after one use. Null does nothing.
*
* This is a very bad solution but I was unable to find a better one.
**/
private var nextSearchQuery: String? = null
/** /**
* Fires every time a new batch of plugins have been loaded, no guarantee about how often this is run and on which thread * Fires every time a new batch of plugins have been loaded, no guarantee about how often this is run and on which thread
* */ * */
@ -210,6 +218,9 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
isWebview: Boolean isWebview: Boolean
): Boolean = ): Boolean =
with(activity) { with(activity) {
// Invalid URIs can crash
fun safeURI(uri: String) = normalSafeApiCall { URI(uri) }
if (str != null && this != null) { if (str != null && this != null) {
if (str.startsWith("https://cs.repo")) { if (str.startsWith("https://cs.repo")) {
val realUrl = "https://" + str.substringAfter("?") val realUrl = "https://" + str.substringAfter("?")
@ -245,10 +256,14 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
return true return true
} }
} }
} else if (URI(str).scheme == appStringRepo) { } else if (safeURI(str)?.scheme == appStringRepo) {
val url = str.replaceFirst(appStringRepo, "https") val url = str.replaceFirst(appStringRepo, "https")
loadRepository(url) loadRepository(url)
return true return true
} else if (safeURI(str)?.scheme == appStringSearch) {
nextSearchQuery =
URLDecoder.decode(str.substringAfter("$appStringSearch://"), "UTF-8")
nav_view.selectedItemId = R.id.navigation_search
} else if (!isWebview) { } else if (!isWebview) {
if (str.startsWith(DOWNLOAD_NAVIGATE_TO)) { if (str.startsWith(DOWNLOAD_NAVIGATE_TO)) {
this.navigate(R.id.navigation_downloads) this.navigate(R.id.navigation_downloads)
@ -645,6 +660,17 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
val navHostFragment = val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController val navController = navHostFragment.navController
navController.addOnDestinationChangedListener { _: NavController, navDestination: NavDestination, bundle: Bundle? ->
// Intercept search and add a query
if (navDestination.matchDestination(R.id.navigation_search) && !nextSearchQuery.isNullOrBlank()) {
bundle?.apply {
this.putString(SearchFragment.SEARCH_QUERY, nextSearchQuery)
nextSearchQuery = null
}
}
}
//val navController = findNavController(R.id.nav_host_fragment) //val navController = findNavController(R.id.nav_host_fragment)
/*navOptions = NavOptions.Builder() /*navOptions = NavOptions.Builder()

View file

@ -13,39 +13,42 @@ open class VoeExtractor : ExtractorApi() {
override val requiresReferer = false override val requiresReferer = false
private data class ResponseLinks( private data class ResponseLinks(
@JsonProperty("hls") val url: String?, @JsonProperty("hls") val hls: String?,
@JsonProperty("mp4") val mp4: String?,
@JsonProperty("video_height") val label: Int? @JsonProperty("video_height") val label: Int?
//val type: String // Mp4 //val type: String // Mp4
) )
override suspend fun getUrl(url: String, referer: String?): List<ExtractorLink> { override suspend fun getUrl(url: String, referer: String?): List<ExtractorLink> {
val extractedLinksList: MutableList<ExtractorLink> = mutableListOf() val html = app.get(url).text
val doc = app.get(url).text if (html.isNotBlank()) {
if (doc.isNotBlank()) { val src = html.substringAfter("const sources =").substringBefore(";")
val start = "const sources =" // Remove last comma, it is not proper json otherwise
var src = doc.substring(doc.indexOf(start))
src = src.substring(start.length, src.indexOf(";"))
.replace("0,", "0") .replace("0,", "0")
.trim() // Make json use the proper quotes
.replace("'", "\"")
//Log.i(this.name, "Result => (src) ${src}") //Log.i(this.name, "Result => (src) ${src}")
parseJson<ResponseLinks?>(src)?.let { voelink -> parseJson<ResponseLinks?>(src)?.let { voeLink ->
//Log.i(this.name, "Result => (voelink) ${voelink}") //Log.i(this.name, "Result => (voeLink) ${voeLink}")
val linkUrl = voelink.url
val linkLabel = voelink.label?.toString() ?: "" // Always defaults to the hls link, but returns the mp4 if null
val linkUrl = voeLink.hls ?: voeLink.mp4
val linkLabel = voeLink.label?.toString() ?: ""
if (!linkUrl.isNullOrEmpty()) { if (!linkUrl.isNullOrEmpty()) {
extractedLinksList.add( return listOf(
ExtractorLink( ExtractorLink(
name = this.name, name = this.name,
source = this.name, source = this.name,
url = linkUrl, url = linkUrl,
quality = getQualityFromName(linkLabel), quality = getQualityFromName(linkLabel),
referer = url, referer = url,
isM3u8 = true isM3u8 = voeLink.hls != null
) )
) )
} }
} }
} }
return extractedLinksList return emptyList()
} }
} }

View file

@ -44,6 +44,9 @@ abstract class AccountManager(private val defIndex: Int) : AuthAPI {
const val appString = "cloudstreamapp" const val appString = "cloudstreamapp"
const val appStringRepo = "cloudstreamrepo" const val appStringRepo = "cloudstreamrepo"
// Instantly start the search given a query
const val appStringSearch = "cloudstreamsearch"
val unixTime: Long val unixTime: Long
get() = System.currentTimeMillis() / 1000L get() = System.currentTimeMillis() / 1000L
val unixTimeMs: Long val unixTimeMs: Long

View file

@ -612,6 +612,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
//player_media_route_button?.isClickable = !isGone //player_media_route_button?.isClickable = !isGone
player_go_back_holder?.isGone = isGone player_go_back_holder?.isGone = isGone
player_sources_btt?.isGone = isGone player_sources_btt?.isGone = isGone
player_skip_episode?.isGone = isGone
} }
private fun updateLockUI() { private fun updateLockUI() {
@ -1101,7 +1102,6 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
} }
protected fun uiReset() { protected fun uiReset() {
isLocked = false
isShowing = false isShowing = false
// if nothing has loaded these buttons should not be visible // if nothing has loaded these buttons should not be visible

View file

@ -1582,7 +1582,6 @@ class ResultViewModel2 : ViewModel() {
return return
} }
val episodes = currentEpisodes[indexer]
val ranges = currentRanges[indexer] val ranges = currentRanges[indexer]
if (ranges?.contains(range) != true) { if (ranges?.contains(range) != true) {
@ -1594,7 +1593,6 @@ class ResultViewModel2 : ViewModel() {
} }
} }
val size = episodes?.size
val isMovie = currentResponse?.isMovie() == true val isMovie = currentResponse?.isMovie() == true
currentIndex = indexer currentIndex = indexer
currentRange = range currentRange = range
@ -1604,6 +1602,7 @@ class ResultViewModel2 : ViewModel() {
text to r text to r
} ?: emptyList()) } ?: emptyList())
val size = currentEpisodes[indexer]?.size
_episodesCountText.postValue( _episodesCountText.postValue(
some( some(
if (isMovie) null else if (isMovie) null else
@ -1683,9 +1682,12 @@ class ResultViewModel2 : ViewModel() {
generator = if (isMovie) { generator = if (isMovie) {
getMovie()?.let { RepoLinkGenerator(listOf(it), page = currentResponse) } getMovie()?.let { RepoLinkGenerator(listOf(it), page = currentResponse) }
} else { } else {
episodes?.let { list -> val episodes = currentEpisodes.filter { it.key.dubStatus == indexer.dubStatus }
RepoLinkGenerator(list, page = currentResponse) .toList()
} .sortedBy { it.first.season }
.flatMap { it.second }
RepoLinkGenerator(episodes, page = currentResponse)
} }
if (isMovie) { if (isMovie) {

View file

@ -73,6 +73,14 @@ class SearchFragment : Fragment() {
} }
} }
} }
const val SEARCH_QUERY = "search_query"
fun newInstance(query: String): Bundle {
return Bundle().apply {
putString(SEARCH_QUERY, query)
}
}
} }
private val searchViewModel: SearchViewModel by activityViewModels() private val searchViewModel: SearchViewModel by activityViewModels()
@ -132,7 +140,8 @@ class SearchFragment : Fragment() {
val default = enumValues<TvType>().sorted().filter { it != TvType.NSFW } val default = enumValues<TvType>().sorted().filter { it != TvType.NSFW }
.map { it.ordinal.toString() }.toSet() .map { it.ordinal.toString() }.toSet()
val preferredTypes = (PreferenceManager.getDefaultSharedPreferences(ctx) val preferredTypes = (PreferenceManager.getDefaultSharedPreferences(ctx)
.getStringSet(this.getString(R.string.prefer_media_type_key), default)?.ifEmpty { default } ?: default) .getStringSet(this.getString(R.string.prefer_media_type_key), default)
?.ifEmpty { default } ?: default)
.mapNotNull { it.toIntOrNull() ?: return@mapNotNull null } .mapNotNull { it.toIntOrNull() ?: return@mapNotNull null }
val settings = ctx.getApiSettings() val settings = ctx.getApiSettings()
@ -487,6 +496,14 @@ class SearchFragment : Fragment() {
search_master_recycler?.adapter = masterAdapter search_master_recycler?.adapter = masterAdapter
search_master_recycler?.layoutManager = GridLayoutManager(context, 1) search_master_recycler?.layoutManager = GridLayoutManager(context, 1)
// Automatically search the specified query, this allows the app search to launch from intent
arguments?.getString(SEARCH_QUERY)?.let { query ->
if (query.isBlank()) return@let
main_search?.setQuery(query, true)
// Clear the query as to not make it request the same query every time the page is opened
arguments?.putString(SEARCH_QUERY, null)
}
// SubtitlesFragment.push(activity) // SubtitlesFragment.push(activity)
//searchViewModel.search("iron man") //searchViewModel.search("iron man")
//(activity as AppCompatActivity).loadResult("https://shiro.is/overlord-dubbed", "overlord-dubbed", "Shiro") //(activity as AppCompatActivity).loadResult("https://shiro.is/overlord-dubbed", "overlord-dubbed", "Shiro")

View file

@ -274,7 +274,12 @@
app:exitAnim="@anim/exit_anim" app:exitAnim="@anim/exit_anim"
app:popEnterAnim="@anim/enter_anim" app:popEnterAnim="@anim/enter_anim"
app:popExitAnim="@anim/exit_anim" app:popExitAnim="@anim/exit_anim"
tools:layout="@layout/fragment_search" /> tools:layout="@layout/fragment_search">
<argument
android:name="search_query"
android:defaultValue=""
app:argType="string" />
</fragment>
<fragment <fragment
android:id="@+id/navigation_downloads" android:id="@+id/navigation_downloads"

View file

@ -20,7 +20,7 @@
<string name="app_name">CloudStream</string> <string name="app_name">CloudStream</string>
<string name="play_with_app_name">تشغيل بواسطة CloudStream</string> <string name="play_with_app_name">تشغيل بواسطة CloudStream</string>
<string name="title_home">الصفحة الرئيسية</string> <string name="title_home">الرئيسية</string>
<string name="title_search">البحث</string> <string name="title_search">البحث</string>
<string name="title_downloads">التنزيلات</string> <string name="title_downloads">التنزيلات</string>
<string name="title_settings">الإعدادات</string> <string name="title_settings">الإعدادات</string>
@ -31,8 +31,8 @@
<string name="no_data">لايوجد بيانات</string> <string name="no_data">لايوجد بيانات</string>
<string name="episode_more_options_des">المزيد من الخيارات</string> <string name="episode_more_options_des">المزيد من الخيارات</string>
<string name="next_episode">الحلقة التالية</string> <string name="next_episode">الحلقة التالية</string>
<string name="result_tags">أنواع</string> <string name="result_tags">النوع</string>
<string name="result_share">شارك</string> <string name="result_share">مشاركة</string>
<string name="result_open_in_browser">فتح في الويب</string> <string name="result_open_in_browser">فتح في الويب</string>
<string name="skip_loading">تخطي التحميل</string> <string name="skip_loading">تخطي التحميل</string>
<string name="loading">…تحميل</string> <string name="loading">…تحميل</string>
@ -230,7 +230,7 @@
<string name="rating">تقييم</string> <string name="rating">تقييم</string>
<string name="duration">المدة الزمنية</string> <string name="duration">المدة الزمنية</string>
<string name="site">موقع</string> <string name="site">موقع</string>
<string name="synopsis">ملخص</string> <string name="synopsis">القصة</string>
<string name="queued">في قائمة الانتظار</string> <string name="queued">في قائمة الانتظار</string>
<string name="no_subtitles">الترجمة ليست موجودة</string> <string name="no_subtitles">الترجمة ليست موجودة</string>

View file

@ -19,11 +19,11 @@
<string name="app_name">CloudStream</string> <string name="app_name">CloudStream</string>
<string name="play_with_app_name">Mit CloudStream abspielen</string> <string name="play_with_app_name">Mit CloudStream abspielen</string>
<string name="title_home">Startseite</string> <string name="title_home">Startseite</string>
<string name="title_search">Suche</string> <string name="title_search">Suchen</string>
<string name="title_downloads">Downloads</string> <string name="title_downloads">Downloads</string>
<string name="title_settings">Einstellungen</string> <string name="title_settings">Einstellungen</string>
<string name="search_hint">Suche…</string> <string name="search_hint">Suchen</string>
<string name="search_hint_site" formatted="true">Suche %s…</string> <string name="search_hint_site" formatted="true">Suche %s…</string>
<string name="no_data">Keine Daten vorhanden</string> <string name="no_data">Keine Daten vorhanden</string>
@ -32,15 +32,15 @@
<string name="result_tags">Genres</string> <string name="result_tags">Genres</string>
<string name="result_share">Teilen</string> <string name="result_share">Teilen</string>
<string name="result_open_in_browser">In Browser öffnen</string> <string name="result_open_in_browser">In Browser öffnen</string>
<string name="skip_loading">Buffern überspringen</string> <string name="skip_loading">Puffern überspringen</string>
<string name="loading">Lädt…</string> <string name="loading">Lädt…</string>
<string name="type_watching">Am schauen</string> <string name="type_watching">Am schauen</string>
<string name="type_on_hold">Pausiert</string> <string name="type_on_hold">Pausiert</string>
<string name="type_completed">Abgeschlossen</string> <string name="type_completed">Abgeschlossen</string>
<string name="type_dropped">Abgebrochen</string> <string name="type_dropped">Abgebrochen</string>
<string name="type_plan_to_watch">Möchte schauen</string> <string name="type_plan_to_watch">Geplant</string>
<string name="type_none">None</string> <string name="type_none">Nichts</string>
<string name="type_re_watching">Erneut anschauen</string> <string name="type_re_watching">Erneut anschauen</string>
<string name="play_movie_button">Film abspielen</string> <string name="play_movie_button">Film abspielen</string>
@ -90,7 +90,7 @@
<string name="sort_clear">Löschen</string> <string name="sort_clear">Löschen</string>
<string name="sort_save">Speichern</string> <string name="sort_save">Speichern</string>
<string name="player_speed">Players Geschwindigkeit</string> <string name="player_speed">Player Geschwindigkeit</string>
<string name="subtitles_settings">Untertiteleinstellungen</string> <string name="subtitles_settings">Untertiteleinstellungen</string>
<string name="subs_text_color">Textfarbe</string> <string name="subs_text_color">Textfarbe</string>
@ -275,8 +275,8 @@
<string name="source_error">Quellenfehler</string> <string name="source_error">Quellenfehler</string>
<string name="remote_error">Remotefehler</string> <string name="remote_error">Remotefehler</string>
<string name="render_error">Renderfehler</string> <string name="render_error">Renderfehler</string>
<string name="unexpected_error">Unerwarteter Player-Fehler</string> <string name="unexpected_error">Unerwarteter Playerfehler</string>
<string name="storage_error">Download-Fehler, Speicherberechtigungen prüfen</string> <string name="storage_error">Downloadfehler, Speicherberechtigungen prüfen</string>
<string name="episode_action_chromecast_episode">Chromecast-Episode</string> <string name="episode_action_chromecast_episode">Chromecast-Episode</string>
<string name="episode_action_chromecast_mirror">Chromecastmirror</string> <string name="episode_action_chromecast_mirror">Chromecastmirror</string>
@ -453,7 +453,7 @@
<string name="trailer">Trailer</string> <string name="trailer">Trailer</string>
<string name="network_adress_example">Link zum Stream</string> <string name="network_adress_example">Link zum Stream</string>
<string name="referer">Referent</string> <string name="referer">Referent</string>
<string name="next">Nächste</string> <string name="next">Weiter</string>
<string name="provider_languages_tip">Videos in diesen Sprachen ansehen</string> <string name="provider_languages_tip">Videos in diesen Sprachen ansehen</string>
<string name="previous">Vorherige</string> <string name="previous">Vorherige</string>
<string name="skip_setup">Einrichtung überspringen</string> <string name="skip_setup">Einrichtung überspringen</string>
@ -497,4 +497,39 @@
<string name="tracks">Spuren</string> <string name="tracks">Spuren</string>
<string name="enable_nsfw_on_providers">Aktivieren der NSFW auf unterstützten Anbietern</string> <string name="enable_nsfw_on_providers">Aktivieren der NSFW auf unterstützten Anbietern</string>
<string name="category_providers">Anbieter</string> <string name="category_providers">Anbieter</string>
<string name="extension_rating" formatted="true">Bewertung: %s</string>
<string name="extension_description">Beschreibung</string>
<string name="extension_version">Version</string>
<string name="extension_status">Status</string>
<string name="extension_size">Größe</string>
<string name="extension_authors">Autoren</string>
<string name="extension_types">Unterstützt</string>
<string name="extension_language">Sprache</string>
<string name="extension_install_first">Zuerst muss die Erweiterung installiert werden</string>
<string name="hls_playlist">HLS Playlist</string>
<string name="player_pref">Bevorzugter Videoplayer</string>
<string name="player_settings_play_in_app">Interner Player</string>
<string name="player_settings_play_in_vlc">VLC</string>
<string name="player_settings_play_in_mpv">MPV</string>
<string name="player_settings_play_in_web">Web Video Cast</string>
<string name="player_settings_play_in_browser">Browser</string>
<string name="app_not_found_error">App nicht gefunden</string>
<string name="all_languages_preference">Alle Sprachen</string>
<string name="skip_type_format" formatted="true">Überspringen %s</string>
<string name="skip_type_op">Opening</string>
<string name="skip_type_ed">Ending</string>
<string name="skip_type_recap">Zusammenfassung</string>
<string name="skip_type_mixed_ed">Vermischte Endings</string>
<string name="skip_type_mixed_op">Vermischte Openings</string>
<string name="skip_type_creddits">Abspann</string>
<string name="skip_type_intro">Intro</string>
<string name="clear_history">Verlauf löschen</string>
<string name="history">Verlauf</string>
<string name="enable_skip_op_from_database_des">Überspringen Button für Openings/Endings anzeigen</string>
<string name="clipboard_too_large">Zu viel Text. Kann nicht in der Zwischenablage gespeichert werden.</string>
</resources> </resources>

View file

@ -10,18 +10,18 @@
<string name="no_data">Aucune Donnée</string> <string name="no_data">Aucune Donnée</string>
<string name="episode_more_options_des">Plus d\'options</string> <string name="episode_more_options_des">Plus d\'options</string>
<string name="go_back_img_des">Retour</string> <string name="go_back_img_des">Retour</string>
<string name="next_episode">Episode suivant</string> <string name="next_episode">Épisode suivant</string>
<string name="result_poster_img_des">Miniature</string> <string name="result_poster_img_des">Miniature</string>
<string name="result_tags">Genres</string> <string name="result_tags">Genres</string>
<string name="result_share">Partager</string> <string name="result_share">Partager</string>
<string name="result_open_in_browser">Ouvrir dans le naviguateur</string> <string name="result_open_in_browser">Ouvrir dans le navigateur</string>
<string name="skip_loading">Passer le chargement</string> <string name="skip_loading">Passer le chargement</string>
<string name="loading">Chargement…</string> <string name="loading">Chargement…</string>
<string name="type_watching">En visionnage</string> <string name="type_watching">En visionnage</string>
<string name="type_on_hold">En pose</string> <string name="type_on_hold">En pause</string>
<string name="type_completed">Terminé</string> <string name="type_completed">Terminé</string>
<string name="type_dropped">Abandonné</string> <string name="type_dropped">Abandonné</string>
<string name="type_plan_to_watch">A regarder</string> <string name="type_plan_to_watch">À regarder</string>
<string name="type_none">Aucun</string> <string name="type_none">Aucun</string>
<string name="play_movie_button">Lire</string> <string name="play_movie_button">Lire</string>
<string name="play_torrent_button">Streamer le Torrent</string> <string name="play_torrent_button">Streamer le Torrent</string>
@ -29,15 +29,15 @@
<string name="pick_subtitle">Sous-titres</string> <string name="pick_subtitle">Sous-titres</string>
<string name="reload_error">Réessayer la connection…</string> <string name="reload_error">Réessayer la connection…</string>
<string name="go_back">Retour</string> <string name="go_back">Retour</string>
<string name="episode_poster_img_des">Miniature de l\'Episode</string> <string name="episode_poster_img_des">Miniature de l\'Épisode</string>
<string name="play_episode">Lire l\'Episode</string> <string name="play_episode">Lire l\'Épisode</string>
<!--<string name="need_storage">Permet de télécharger les épisodes</string>--> <!--<string name="need_storage">Permet de télécharger les épisodes</string>-->
<string name="download">Télécharger</string> <string name="download">Télécharger</string>
<string name="downloaded">Téléchargé</string> <string name="downloaded">Téléchargé</string>
<string name="downloading">Téléchargement</string> <string name="downloading">Téléchargement</string>
<string name="download_paused">Téléchargement en pause</string> <string name="download_paused">Téléchargement en pause</string>
<string name="download_started">Téléchargement commencé</string> <string name="download_started">Téléchargement commencé</string>
<string name="download_failed">Echec du Téléchargement</string> <string name="download_failed">Échec du Téléchargement</string>
<string name="download_canceled">Téléchargement Annulé</string> <string name="download_canceled">Téléchargement Annulé</string>
<string name="download_done">Téléchargement Terminé</string> <string name="download_done">Téléchargement Terminé</string>
<string name="error_loading_links_toast">Erreur lors du téléchargement des liens</string> <string name="error_loading_links_toast">Erreur lors du téléchargement des liens</string>
@ -68,34 +68,34 @@
<string name="subs_background_color">Couleur de fond</string> <string name="subs_background_color">Couleur de fond</string>
<string name="subs_window_color">Couleur de la fenètre</string> <string name="subs_window_color">Couleur de la fenètre</string>
<string name="subs_edge_type">Type de bordure</string> <string name="subs_edge_type">Type de bordure</string>
<string name="subs_subtitle_elevation">Elevation des sous-titres</string> <string name="subs_subtitle_elevation">Élévation des sous-titres</string>
<string name="preview_background_img_des">Aperçu de l\'arrière-plan</string> <string name="preview_background_img_des">Aperçu de l\'arrière-plan</string>
<string name="subs_font">Police</string> <string name="subs_font">Police</string>
<string name="search_provider_text_providers">Rechercher en utilisant les fournisseurs</string> <string name="search_provider_text_providers">Rechercher en utilisant les fournisseurs</string>
<string name="search_provider_text_types">Rechercher en utilisant les types</string> <string name="search_provider_text_types">Rechercher en utilisant les types</string>
<string name="benene_count_text">%d Benenes données au dev</string> <string name="benene_count_text">%d Benenes données au dev</string>
<string name="benene_count_text_none">Aucune Benenes donnée</string> <string name="benene_count_text_none">Aucune Benenes donnée</string>
<string name="subs_auto_select_language">Séléction automatique de la langue</string> <string name="subs_auto_select_language">Sélection automatique de la langue</string>
<string name="subs_download_languages">Télécharger les langues</string> <string name="subs_download_languages">Télécharger les langues</string>
<string name="subs_hold_to_reset_to_default">Maintenir pour réinitialliser les valeurs par défault</string> <string name="subs_hold_to_reset_to_default">Maintenir pour réinitialiser les valeurs par défaut</string>
<string name="continue_watching">Continer à regarder</string> <string name="continue_watching">Continuer à regarder</string>
<string name="action_remove_watching">Supprimer</string> <string name="action_remove_watching">Supprimer</string>
<string name="action_open_watching">Plus d\'info</string> <string name="action_open_watching">Plus d\'info</string>
<string name="vpn_might_be_needed">Un VPN peut être requit pour que ce fournisseur fonctionne</string> <string name="vpn_might_be_needed">Un VPN peut être requit pour que ce fournisseur fonctionne</string>
<string name="vpn_torrent">Ce fournisseur est un torrent, un VPN est recommendé</string> <string name="vpn_torrent">Ce fournisseur est un torrent, un VPN est recommandé</string>
<string name="torrent_plot">Description</string> <string name="torrent_plot">Description</string>
<string name="normal_no_plot">Aucune description trouvée</string> <string name="normal_no_plot">Aucune description trouvée</string>
<string name="torrent_no_plot">Aucune description trouvée</string> <string name="torrent_no_plot">Aucune description trouvée</string>
<string name="picture_in_picture">Lecteur en mode Picture-in-Picture</string> <string name="picture_in_picture">Lecteur en mode Picture-in-Picture</string>
<string name="picture_in_picture_des">Continuer la lecture dans une fenêtre miniature en superposition sur d\'autres applis</string> <string name="picture_in_picture_des">Continuer la lecture dans une fenêtre miniature en superposition sur d\'autres applis</string>
<string name="player_size_settings">Boutton de redimentionnement du lecteur</string> <string name="player_size_settings">Bouton de redimensionnement du lecteur</string>
<string name="player_size_settings_des">Supprimer les bordures noires</string> <string name="player_size_settings_des">Supprimer les bordures noires</string>
<string name="player_subtitles_settings">Sous-titres</string> <string name="player_subtitles_settings">Sous-titres</string>
<string name="player_subtitles_settings_des">Paramètres des sous-titres du lecteur</string> <string name="player_subtitles_settings_des">Paramètres des sous-titres du lecteur</string>
<string name="eigengraumode_settings">Vitesse de lecture</string> <string name="eigengraumode_settings">Vitesse de lecture</string>
<string name="eigengraumode_settings_des">Ajouter l\'option de vitesse sur le lecteur</string> <string name="eigengraumode_settings_des">Ajouter l\'option de vitesse sur le lecteur</string>
<string name="swipe_to_seek_settings">Balayer pour avancer rapidement</string> <string name="swipe_to_seek_settings">Balayer pour avancer rapidement</string>
<string name="swipe_to_seek_settings_des">Balayer vers la gauche ou la droite pour controler le temps du lecteur vidéo</string> <string name="swipe_to_seek_settings_des">Balayer vers la gauche ou la droite pour contrôler le temps du lecteur vidéo</string>
<string name="swipe_to_change_settings">Balayer pour changer les paramètres</string> <string name="swipe_to_change_settings">Balayer pour changer les paramètres</string>
<string name="swipe_to_change_settings_des">Balayer sur le coté droit ou gauche pour changer le niveau de luminosité ou de volume</string> <string name="swipe_to_change_settings_des">Balayer sur le coté droit ou gauche pour changer le niveau de luminosité ou de volume</string>
<string name="double_tap_to_seek_settings">Taper deux fois pour rechercher</string> <string name="double_tap_to_seek_settings">Taper deux fois pour rechercher</string>
@ -106,13 +106,13 @@
<string name="search">Rechercher</string> <string name="search">Rechercher</string>
<string name="settings_info">Informations</string> <string name="settings_info">Informations</string>
<string name="advanced_search">Recherche Avancée</string> <string name="advanced_search">Recherche Avancée</string>
<string name="advanced_search_des">Donne les résultats séparé par les fournisseur</string> <string name="advanced_search_des">Donne les résultats séparés par les fournisseurs</string>
<string name="bug_report_settings_off">N\'envoyer les données que lors d\'un crash</string> <string name="bug_report_settings_off">N\'envoyer les données que lors d\'un crash</string>
<string name="bug_report_settings_on">N\'envoyer aucune données</string> <string name="bug_report_settings_on">N\'envoyer aucune données</string>
<string name="updates_settings">Afficher les mises-à-jour de l\'application</string> <string name="updates_settings">Afficher les mises-à-jour de l\'application</string>
<string name="updates_settings_des">Chercher des mises-à-jour automatiquement au démarage</string> <string name="updates_settings_des">Chercher des mises-à-jour automatiquement au démarage</string>
<string name="uprereleases_settings">Mettre à jour vers une version béta</string> <string name="uprereleases_settings">Mettre à jour vers une version bêta</string>
<string name="uprereleases_settings_des">Rechercher pour une mise à jour vers une version béta au lieu des version complètes seulement</string> <string name="uprereleases_settings_des">Rechercher pour une mise à jour vers une version bêta au lieu des version complètes seulement</string>
<string name="github">Github</string> <string name="github">Github</string>
<string name="lightnovel">L\'application Light Novel par les mêmes devs</string> <string name="lightnovel">L\'application Light Novel par les mêmes devs</string>
<string name="anim">Application d\'animés par les mêmes devs</string> <string name="anim">Application d\'animés par les mêmes devs</string>
@ -122,24 +122,24 @@
<string name="app_language">Language de l\'application</string> <string name="app_language">Language de l\'application</string>
<string name="no_chromecast_support_toast">Ce fournisseur ne supporte pas le Chromecast</string> <string name="no_chromecast_support_toast">Ce fournisseur ne supporte pas le Chromecast</string>
<string name="no_links_found_toast">Aucun lien trouvé</string> <string name="no_links_found_toast">Aucun lien trouvé</string>
<string name="copy_link_toast">Lien copié dans le presse-papiers</string> <string name="copy_link_toast">Lien copié dans le presse-papier</string>
<string name="play_episode_toast">Lecture de l\'episode</string> <string name="play_episode_toast">Lecture de l\'episode</string>
<string name="subs_default_reset_toast">Réinitialiser aux valeurs par défault</string> <string name="subs_default_reset_toast">Réinitialiser aux valeurs par défault</string>
<string name="acra_report_toast">Désolé, l\'application à crashé. Un rapport de bug anonyme va être envoyé aux devloppeurs</string> <string name="acra_report_toast">Désolé, l\'application à crashé. Un rapport de bug anonyme va être envoyé aux développeurs</string>
<string name="season">Saison</string> <string name="season">Saison</string>
<string name="no_season">Pas de Saison</string> <string name="no_season">Pas de Saison</string>
<string name="episode">Episode</string> <string name="episode">Épisode</string>
<string name="episodes">Episodes</string> <string name="episodes">Épisodes</string>
<string name="season_short">S</string> <string name="season_short">S</string>
<string name="episode_short">E</string> <string name="episode_short">E</string>
<string name="delete_file">Supprimer le Fichier</string> <string name="delete_file">Supprimer le Fichier</string>
<string name="delete">Supprimer</string> <string name="delete">Supprimer</string>
<string name="pause">Pause</string> <string name="pause">Pause</string>
<string name="resume">Reprendre</string> <string name="resume">Reprendre</string>
<string name="delete_message">Cela va supprimer définitivement %s\nÊtes vous sûr ?</string> <string name="delete_message">Cela va supprimer définitivement %s\nÊtes-vous sûr ?</string>
<string name="status_ongoing">En cours</string> <string name="status_ongoing">En cours</string>
<string name="status_completed">Terminé</string> <string name="status_completed">Terminé</string>
<string name="status">Status</string> <string name="status">Statut</string>
<string name="year">Année</string> <string name="year">Année</string>
<string name="rating">Note</string> <string name="rating">Note</string>
<string name="duration">Durée</string> <string name="duration">Durée</string>
@ -159,9 +159,9 @@
<string name="source_error">Erreur de la source</string> <string name="source_error">Erreur de la source</string>
<string name="remote_error">Erreur distante</string> <string name="remote_error">Erreur distante</string>
<string name="render_error">Erreur d\'affichage</string> <string name="render_error">Erreur d\'affichage</string>
<string name="unexpected_error">Erreur innatendue du lecteur</string> <string name="unexpected_error">Erreur inattendue du lecteur</string>
<string name="storage_error">Erreur du téléchargement, vérifier l\'autorisation du stockage</string> <string name="storage_error">Erreur du téléchargement, vérifier l\'autorisation du stockage</string>
<string name="episode_action_chromecast_episode">Episode Chromecast</string> <string name="episode_action_chromecast_episode">Épisode Chromecast</string>
<string name="episode_action_chromecast_mirror">Miroir Chromecast</string> <string name="episode_action_chromecast_mirror">Miroir Chromecast</string>
<string name="episode_action_play_in_app">Lecture dans l\'application</string> <string name="episode_action_play_in_app">Lecture dans l\'application</string>
<string name="episode_action_play_in_format">Lecture dans %s</string> <string name="episode_action_play_in_format">Lecture dans %s</string>
@ -207,18 +207,18 @@
<string name="app_layout">Disposition de l\'application</string> <string name="app_layout">Disposition de l\'application</string>
<string name="tv_layout">Disposition TV</string> <string name="tv_layout">Disposition TV</string>
<string name="provider_lang_settings">Language des fournisseurs</string> <string name="provider_lang_settings">Language des fournisseurs</string>
<string name="preferred_media_settings">Médias préfères</string> <string name="preferred_media_settings">Médias préférées</string>
<string name="automatic">Auto</string> <string name="automatic">Auto</string>
<string name="cast_format">Acteurs: %s</string> <string name="cast_format">Acteurs: %s</string>
<string name="duration_format">%d min</string> <string name="duration_format">%d min</string>
<string name="search_hint_site">Rechercher sur %s...</string> <string name="search_hint_site">Rechercher sur %s...</string>
<string name="type_re_watching">A re-regarder</string> <string name="type_re_watching">À re-regarder</string>
<string name="sort_copy">Copier</string> <string name="sort_copy">Copier</string>
<string name="sort_close">Coller</string> <string name="sort_close">Coller</string>
<string name="sort_clear">Effacer</string> <string name="sort_clear">Effacer</string>
<string name="sort_save">Enregister</string> <string name="sort_save">Enregister</string>
<string name="subs_import_text">Importer des polices en les plaçants dans %s</string> <string name="subs_import_text">Importer des polices en les plaçants dans %s</string>
<string name="provider_info_meta">Les metadonnées ne sont pas fournies par le site, le chargement de la vidéo va échoué si elle n\'existe pas sur le site.</string> <string name="provider_info_meta">Les metadonnées ne sont pas fournies par le site, le chargement de la vidéo va échouer si elle n\'existe pas sur le site.</string>
<string name="show_log_cat">Afficher les logs 🐈</string> <string name="show_log_cat">Afficher les logs 🐈</string>
<string name="chromecast_subtitles_settings">Sous-titres Chromecast</string> <string name="chromecast_subtitles_settings">Sous-titres Chromecast</string>
<string name="chromecast_subtitles_settings_des">Paramètres des sous-titres Chromecast</string> <string name="chromecast_subtitles_settings_des">Paramètres des sous-titres Chromecast</string>
@ -228,7 +228,7 @@
<string name="restore_settings">Restaurer les données sauvegardées</string> <string name="restore_settings">Restaurer les données sauvegardées</string>
<string name="backup_settings">Sauvegarder les données</string> <string name="backup_settings">Sauvegarder les données</string>
<string name="restore_success">Fichier de sauvegarde chargé</string> <string name="restore_success">Fichier de sauvegarde chargé</string>
<string name="restore_failed_format">Echec de la restauration des données depuis le fichier</string> <string name="restore_failed_format">Échec de la restauration des données depuis le fichier</string>
<string name="backup_success">Restauration des données réussie</string> <string name="backup_success">Restauration des données réussie</string>
<string name="backup_failed">Permission d\'accès au stockage manquante</string> <string name="backup_failed">Permission d\'accès au stockage manquante</string>
<string name="backup_failed_error_format">Erreur pendant la sauvegarde %s</string> <string name="backup_failed_error_format">Erreur pendant la sauvegarde %s</string>
@ -250,7 +250,7 @@
<string name="video_ram_description">Causera des crashs aléatoire si mit trop haut. Ne le changez pas si vous avez un appareil avec peu de ram comme une télévision android ou un vieux téléphone.</string> <string name="video_ram_description">Causera des crashs aléatoire si mit trop haut. Ne le changez pas si vous avez un appareil avec peu de ram comme une télévision android ou un vieux téléphone.</string>
<string name="video_disk_description">Causera des problèmes si mit trop haut et si vous avez un appareil avec peu de stockage comme une télévision android ou un vieux téléphone.</string> <string name="video_disk_description">Causera des problèmes si mit trop haut et si vous avez un appareil avec peu de stockage comme une télévision android ou un vieux téléphone.</string>
<string name="random_button_settings">Bouton aléatoire</string> <string name="random_button_settings">Bouton aléatoire</string>
<string name="random_button_settings_desc">Afficher le boutton aléatoire</string> <string name="random_button_settings_desc">Afficher le bouton aléatoire</string>
<string name="emulator_layout">Disposition émulateur</string> <string name="emulator_layout">Disposition émulateur</string>
<string name="bottom_title_settings">Position du titre du poster</string> <string name="bottom_title_settings">Position du titre du poster</string>
<string name="bottom_title_settings_des">Mettre le titre sous le poster</string> <string name="bottom_title_settings_des">Mettre le titre sous le poster</string>
@ -272,15 +272,15 @@
<string name="subtitles_outline">Contour</string> <string name="subtitles_outline">Contour</string>
<string name="subtitles_depressed">Déprimé</string> <string name="subtitles_depressed">Déprimé</string>
<string name="subtitles_shadow">Ombre</string> <string name="subtitles_shadow">Ombre</string>
<string name="subtitles_raised">Elevation</string> <string name="subtitles_raised">Élévation</string>
<string name="subtitle_offset">Synchroniser les sous-titres</string> <string name="subtitle_offset">Synchroniser les sous-titres</string>
<string name="subtitle_offset_hint">1000ms</string> <string name="subtitle_offset_hint">1000ms</string>
<string name="subtitle_offset_title">Délai des sous-titres</string> <string name="subtitle_offset_title">Délai des sous-titres</string>
<string name="subtitle_offset_extra_hint_later_format">Utilisez si les sous-titres sont affichés %dms trop tôt</string> <string name="subtitle_offset_extra_hint_later_format">Utilisez si les sous-titres sont affichés %dms trop tôt</string>
<string name="subtitle_offset_extra_hint_before_format">Utilisez si les sous-titres sont affichés %dms trop tard</string> <string name="subtitle_offset_extra_hint_before_format">Utilisez si les sous-titres sont affichés %dms trop tard</string>
<string name="subtitle_offset_extra_hint_none_format">Aucun délai de sous-titre</string> <string name="subtitle_offset_extra_hint_none_format">Aucun délai de sous-titre</string>
<string name="subtitles_example_text">Le rapide rendard brun saute au-dessus du chien paresseux</string> <string name="subtitles_example_text">Portez ce vieux whisky au juge blond qui fume</string>
<string name="recommended">Recommendé</string> <string name="recommended">Recommandé</string>
<string name="player_loaded_subtitles">%s chargé</string> <string name="player_loaded_subtitles">%s chargé</string>
<string name="player_load_subtitles">Charger depuis le fichier</string> <string name="player_load_subtitles">Charger depuis le fichier</string>
<string name="downloaded_file">Fichier téléchargé</string> <string name="downloaded_file">Fichier téléchargé</string>
@ -289,7 +289,7 @@
<string name="actor_background">Arrière plan</string> <string name="actor_background">Arrière plan</string>
<string name="home_source">Source</string> <string name="home_source">Source</string>
<string name="home_random">Aléatoire</string> <string name="home_random">Aléatoire</string>
<string name="coming_soon">A venir ...</string> <string name="coming_soon">À venir ...</string>
<string name="poster_image">Image de l\'affiche</string> <string name="poster_image">Image de l\'affiche</string>
<string name="authenticated_user">Connecté %s</string> <string name="authenticated_user">Connecté %s</string>
<string name="action_add_to_bookmarks">Définir le statut de visionage</string> <string name="action_add_to_bookmarks">Définir le statut de visionage</string>

View file

@ -153,6 +153,10 @@
<string name="swipe_to_seek_settings_des">Scorri a sinistra o a destra per controllare il tempo del video</string> <string name="swipe_to_seek_settings_des">Scorri a sinistra o a destra per controllare il tempo del video</string>
<string name="swipe_to_change_settings">Scorri per cambiare le impostazioni</string> <string name="swipe_to_change_settings">Scorri per cambiare le impostazioni</string>
<string name="swipe_to_change_settings_des">Passa il dito sul lato sinistro o destro per cambiare la luminosità o il volume</string> <string name="swipe_to_change_settings_des">Passa il dito sul lato sinistro o destro per cambiare la luminosità o il volume</string>
<string name="autoplay_next_settings">Riproduci automaticamente l\'episodio successivo</string>
<string name="autoplay_next_settings_des">Avvia l\'episodio successivo al termine di quello in corso</string>
<string name="double_tap_to_seek_settings">Doppio tocco per andare avanti/indietro</string> <string name="double_tap_to_seek_settings">Doppio tocco per andare avanti/indietro</string>
<string name="double_tap_to_pause_settings">Doppio tocco per mettere in pausa</string> <string name="double_tap_to_pause_settings">Doppio tocco per mettere in pausa</string>
<string name="double_tap_to_seek_settings_des">Tocca due volte il lato destro o sinistro dello schermo per mandare avanti o indietro il video</string> <string name="double_tap_to_seek_settings_des">Tocca due volte il lato destro o sinistro dello schermo per mandare avanti o indietro il video</string>
@ -186,7 +190,9 @@
<string name="show_fillers_settings">Mostra tag [filler] per anime</string> <string name="show_fillers_settings">Mostra tag [filler] per anime</string>
<string name="show_trailers_settings">Mostra trailer</string> <string name="show_trailers_settings">Mostra trailer</string>
<string name="kitsu_settings">Mostra poster da Kitsu</string> <string name="kitsu_settings">Mostra poster da Kitsu</string>
<string name="pref_filter_search_quality">Nascondi la qualità video selezionata dai risultati di ricerca</string>
<string name="automatic_plugin_updates">Aggiorna automaticamente i plugin</string>
<string name="updates_settings">Mostra gli aggiornamenti dell\'app</string> <string name="updates_settings">Mostra gli aggiornamenti dell\'app</string>
<string name="updates_settings_des">Cerca automaticamente nuovi aggiornamenti all\'avvio</string> <string name="updates_settings_des">Cerca automaticamente nuovi aggiornamenti all\'avvio</string>
<string name="uprereleases_settings">Aggiorna alle prerelease</string> <string name="uprereleases_settings">Aggiorna alle prerelease</string>
@ -208,9 +214,12 @@
<string name="acra_report_toast">Spiacente, l\'applicazione è andata in crash. Una segnalazione anonima di bug sarà inviata agli sviluppatori</string> <string name="acra_report_toast">Spiacente, l\'applicazione è andata in crash. Una segnalazione anonima di bug sarà inviata agli sviluppatori</string>
<string name="season">Stagione</string> <string name="season">Stagione</string>
<string name="season_format">%s %d%s</string>
<string name="no_season">Nessuna stagione</string> <string name="no_season">Nessuna stagione</string>
<string name="episode">Episodio</string> <string name="episode">Episodio</string>
<string name="episodes">Episodi</string> <string name="episodes">Episodi</string>
<string name="episodes_range">%d-%d</string>
<string name="episode_format" formatted="true">%d %s</string>
<string name="season_short">S</string> <string name="season_short">S</string>
<string name="episode_short">E</string> <string name="episode_short">E</string>
<string name="no_episodes_found">Nessun episodio trovato</string> <string name="no_episodes_found">Nessun episodio trovato</string>
@ -251,6 +260,8 @@
<string name="documentaries">Documentari</string> <string name="documentaries">Documentari</string>
<string name="asian_drama">Drama Asiatici</string> <string name="asian_drama">Drama Asiatici</string>
<string name="livestreams">Livestreams</string> <string name="livestreams">Livestreams</string>
<string name="nsfw">NSFW</string>
<string name="others">Altri</string>
<!--singular--> <!--singular-->
<string name="movies_singular">Film</string> <string name="movies_singular">Film</string>
@ -262,6 +273,8 @@
<string name="documentaries_singular">Documentario</string> <string name="documentaries_singular">Documentario</string>
<string name="asian_drama_singular">Drama Asiatico</string> <string name="asian_drama_singular">Drama Asiatico</string>
<string name="live_singular">Livestream</string> <string name="live_singular">Livestream</string>
<string name="nsfw_singular">NSFW</string>
<string name="other_singular">Altro</string>
<string name="source_error">Source error</string> <string name="source_error">Source error</string>
<string name="remote_error">Remote error</string> <string name="remote_error">Remote error</string>
@ -333,7 +346,9 @@
<string name="provider_lang_settings">Lingua provider</string> <string name="provider_lang_settings">Lingua provider</string>
<string name="app_layout">Layout app</string> <string name="app_layout">Layout app</string>
<string name="preferred_media_settings">Media preferito</string> <string name="preferred_media_settings">Media preferito</string>
<string name="enable_nsfw_on_providers">Abilita NSFW sui provider supportati</string>
<string name="subtitles_encoding">Encoding Sottotitoli</string> <string name="subtitles_encoding">Encoding Sottotitoli</string>
<string name="category_providers">Provider</string>
<string name="category_ui">Interfaccia utente</string> <string name="category_ui">Interfaccia utente</string>
<string name="automatic">Auto</string> <string name="automatic">Auto</string>
@ -438,11 +453,11 @@
<string name="error">Errore</string> <string name="error">Errore</string>
<!--<string name="subtitles_remove_captions">Remove closed captions from subtitles</string>--> <!--<string name="subtitles_remove_captions">Remove closed captions from subtitles</string>-->
<!--<string name="subtitles_remove_bloat">Remove bloat from subtitles</string>--> <!--<string name="subtitles_remove_bloat">Remove bloat from subtitles</string>-->
<!--<string name="extras">Extra</string>--> <string name="subtitles_filter_lang">Filtra in base alla lingua preferita</string>
<string name="extras">Extra</string>
<string name="trailer">Trailer</string> <string name="trailer">Trailer</string>
<string name="network_adress_example">Link allo stream</string> <string name="network_adress_example">Link allo stream</string>
<string name="referer">Referer</string> <string name="referer">Referer</string>
<string name="next">Prossimo</string> <string name="next">Prossimo</string>
<string name="provider_languages_tip">Guarda video in queste lingue</string> <string name="provider_languages_tip">Guarda video in queste lingue</string>
@ -472,6 +487,7 @@
<string name="plugins_downloaded" formatted="true">Scaricato: %d</string> <string name="plugins_downloaded" formatted="true">Scaricato: %d</string>
<string name="plugins_disabled" formatted="true">Disabilitato: %d</string> <string name="plugins_disabled" formatted="true">Disabilitato: %d</string>
<string name="plugins_not_downloaded" formatted="true">Non scaricato: %d</string> <string name="plugins_not_downloaded" formatted="true">Non scaricato: %d</string>
<string name="plugins_updated" formatted="true">Aggiornati %d plugin</string>
<string name="blank_repo_message">Aggiungi una repository per installare l\'estensione dei siti</string> <string name="blank_repo_message">Aggiungi una repository per installare l\'estensione dei siti</string>
<string name="view_public_repositories_button">Vedi le repository della community</string> <string name="view_public_repositories_button">Vedi le repository della community</string>
<string name="view_public_repositories_button_short">Lista pubblica</string> <string name="view_public_repositories_button_short">Lista pubblica</string>
@ -485,10 +501,41 @@
<string name="apply_on_restart">Applica al riavvio</string> <string name="apply_on_restart">Applica al riavvio</string>
<string name="safe_mode_title">Safe Mode abilitata</string> <string name="safe_mode_title">Safe Mode abilitata</string>
<string name="safe_mode_description">Si è verificato un crash irrecuperabile e abbiamo disabilitato automaticamente tutte le estensioni, in modo che possiate trovare e rimuovere l\'estensione che causa il problema.</string> <string name="safe_mode_description">Si è verificato un crash irrecuperabile. Tutte le estensioni sono state disabilitate, in modo da trovare e rimuovere l\'estensione che causa il problema.</string>
<string name="safe_mode_crash_info">Vedi informazioni del crash</string> <string name="safe_mode_crash_info">Vedi informazioni del crash</string>
<string name="extension_rating" formatted="true">Voto: %s</string>
<string name="extension_description">Descrizione</string>
<string name="extension_version">Versione</string>
<string name="extension_status">Stato</string>
<string name="extension_size">Dimensione</string>
<string name="extension_authors">Autori</string>
<string name="extension_types">Supportati</string>
<string name="extension_language">Lingua</string>
<string name="extension_install_first">Prima installa l\'estensione</string>
<string name="hls_playlist">HLS Playlist</string> <string name="hls_playlist">HLS Playlist</string>
<!--<string name="refer <string name="player_pref">Video player preferito</string>
er">Referer</string>--> <string name="player_settings_play_in_app">Player interno</string>
<string name="player_settings_play_in_vlc">VLC</string>
<string name="player_settings_play_in_mpv">MPV</string>
<string name="player_settings_play_in_web">Web Video Cast</string>
<string name="player_settings_play_in_browser">Browser</string>
<string name="app_not_found_error">App non trovata</string>
<string name="all_languages_preference">Tutte le lingue</string>
<string name="skip_type_format" formatted="true">Salta %s</string>
<!--<string name="skip_type_op">Opening</string>-->
<!--<string name="skip_type_ed">Ending</string>-->
<string name="skip_type_recap">Riassunto</string>
<!--<string name="skip_type_mixed_ed">Mixed ending</string>-->
<!--<string name="skip_type_mixed_op">Mixed opening</string>-->
<string name="skip_type_creddits">Crediti</string>
<!--<string name="skip_type_intro">Intro</string>-->
<string name="clear_history">Cancella cronologia</string>
<string name="history">Cronologia</string>
<string name="enable_skip_op_from_database_des">Mostra popup per salta sigla iniziale/finale</string>
<string name="clipboard_too_large">Testo troppo lungo. Impossibile salvare negli appunti.</string>
</resources> </resources>

View file

@ -590,4 +590,6 @@
<string name="clear_history">清除历史记录</string> <string name="clear_history">清除历史记录</string>
<string name="history">历史记录</string> <string name="history">历史记录</string>
<string name="enable_skip_op_from_database_des">显示跳过片头/片尾弹窗</string>
<string name="clipboard_too_large">文本过多,无法保存到剪贴板。</string>
</resources> </resources>