diff --git a/.github/workflows/update_locales.yml b/.github/workflows/update_locales.yml index 032637ab..8764d721 100644 --- a/.github/workflows/update_locales.yml +++ b/.github/workflows/update_locales.yml @@ -15,14 +15,23 @@ jobs: create: runs-on: ubuntu-latest steps: + - name: Generate access token + id: generate_token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.GH_APP_ID }} + private_key: ${{ secrets.GH_APP_KEY }} + repository: "recloudstream/cloudstream" - uses: actions/checkout@v2 + with: + token: ${{ steps.generate_token.outputs.token }} - name: Edit files run: | python3 .github/locales.py - name: Commit to the repo run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" + git config --local user.email "111277985+recloudstream[bot]@users.noreply.github.com" + git config --local user.name "recloudstream[bot]" git add . # "echo" returns true so the build succeeds, even if no changed files git commit -m 'update list of locales' || echo diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt index b03e40cf..3e9f6810 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt @@ -18,6 +18,7 @@ import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.lifecycle.* import androidx.preference.PreferenceManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.bottomsheet.BottomSheetBehavior @@ -48,6 +49,8 @@ import com.lagradost.cloudstream3.utils.AppUtils.addProgramsToContinueWatching import com.lagradost.cloudstream3.utils.AppUtils.isRecyclerScrollable import com.lagradost.cloudstream3.utils.AppUtils.loadResult import com.lagradost.cloudstream3.utils.AppUtils.loadSearchResult +import com.lagradost.cloudstream3.utils.AppUtils.ownHide +import com.lagradost.cloudstream3.utils.AppUtils.ownShow import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.DataStore.getKey import com.lagradost.cloudstream3.utils.DataStore.setKey @@ -104,26 +107,32 @@ class HomeFragment : Fragment() { val errorProfilePic = errorProfilePics.random() - fun Activity.loadHomepageList( - item: HomePageList, - deleteCallback: (() -> Unit)? = null, - ) { - loadHomepageList( - expand = HomeViewModel.ExpandableHomepageList(item, 1, false), - deleteCallback = deleteCallback, - expandCallback = null - ) - } + //fun Activity.loadHomepageList( + // item: HomePageList, + // deleteCallback: (() -> Unit)? = null, + //) { + // loadHomepageList( + // expand = HomeViewModel.ExpandableHomepageList(item, 1, false), + // deleteCallback = deleteCallback, + // expandCallback = null + // ) + //} + // returns a BottomSheetDialog that will be hidden with OwnHidden upon hide, and must be saved to be able call ownShow in onCreateView fun Activity.loadHomepageList( expand: HomeViewModel.ExpandableHomepageList, deleteCallback: (() -> Unit)? = null, - expandCallback: (suspend (String) -> HomeViewModel.ExpandableHomepageList?)? = null - ) { + expandCallback: (suspend (String) -> HomeViewModel.ExpandableHomepageList?)? = null, + dismissCallback : (() -> Unit), + ): BottomSheetDialog { val context = this val bottomSheetDialogBuilder = BottomSheetDialog(context) + bottomSheetDialogBuilder.setContentView(R.layout.home_episodes_expanded) val title = bottomSheetDialogBuilder.findViewById(R.id.home_expanded_text)!! + + //title.findViewTreeLifecycleOwner().lifecycle.addObserver() + val item = expand.list title.text = item.name val recycle = @@ -131,6 +140,23 @@ class HomeFragment : Fragment() { val titleHolder = bottomSheetDialogBuilder.findViewById(R.id.home_expanded_drag_down)!! + // main { + //(bottomSheetDialogBuilder.ownerActivity as androidx.fragment.app.FragmentActivity?)?.supportFragmentManager?.fragments?.lastOrNull()?.viewLifecycleOwner?.apply { + // println("GOT LIFE: lifecycle $this") + // this.lifecycle.addObserver(object : DefaultLifecycleObserver { + // override fun onResume(owner: LifecycleOwner) { + // super.onResume(owner) + // println("onResume!!!!") + // bottomSheetDialogBuilder?.ownShow() + // } + + // override fun onStop(owner: LifecycleOwner) { + // super.onStop(owner) + // bottomSheetDialogBuilder?.ownHide() + // } + // }) + //} + // } val delete = bottomSheetDialogBuilder.home_expanded_delete delete.isGone = deleteCallback == null if (deleteCallback != null) { @@ -175,7 +201,8 @@ class HomeFragment : Fragment() { recycle.adapter = SearchAdapter(item.list.toMutableList(), recycle) { callback -> handleSearchClickCallback(this, callback) if (callback.action == SEARCH_ACTION_LOAD || callback.action == SEARCH_ACTION_PLAY_FILE) { - bottomSheetDialogBuilder.dismissSafe(this) + bottomSheetDialogBuilder.ownHide() // we hide here because we want to resume it later + //bottomSheetDialogBuilder.dismissSafe(this) } }.apply { hasNext = expand.hasNext @@ -216,12 +243,14 @@ class HomeFragment : Fragment() { configEvent += spanListener bottomSheetDialogBuilder.setOnDismissListener { + dismissCallback.invoke() configEvent -= spanListener } //(recycle.adapter as SearchAdapter).notifyDataSetChanged() bottomSheetDialogBuilder.show() + return bottomSheetDialogBuilder } fun getPairList( @@ -399,6 +428,7 @@ class HomeFragment : Fragment() { ): View? { //homeViewModel = // ViewModelProvider(this).get(HomeViewModel::class.java) + bottomSheetDialog?.ownShow() val layout = if (isTvSettings()) R.layout.fragment_home_tv else R.layout.fragment_home return inflater.inflate(layout, container, false) @@ -480,6 +510,8 @@ class HomeFragment : Fragment() { private var currentApiName: String? = null private var toggleRandomButton = false + private var bottomSheetDialog: BottomSheetDialog? = null + @SuppressLint("SetTextI18n") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -626,8 +658,10 @@ class HomeFragment : Fragment() { HomeParentItemAdapterPreview(mutableListOf(), { callback -> homeHandleSearch(callback) }, { item -> - activity?.loadHomepageList(item, expandCallback = { + bottomSheetDialog = activity?.loadHomepageList(item, expandCallback = { homeViewModel.expandAndReturn(it) + }, dismissCallback = { + bottomSheetDialog = null }) }, { name -> homeViewModel.expand(name) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/quicksearch/QuickSearchFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/quicksearch/QuickSearchFragment.kt index 62f967d2..ad3d9eb8 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/quicksearch/QuickSearchFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/quicksearch/QuickSearchFragment.kt @@ -15,6 +15,7 @@ import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager +import com.google.android.material.bottomsheet.BottomSheetDialog import com.lagradost.cloudstream3.APIHolder.filterProviderByPreferredMedia import com.lagradost.cloudstream3.APIHolder.filterSearchResultByFilmQuality import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull @@ -30,6 +31,7 @@ import com.lagradost.cloudstream3.ui.search.SearchAdapter import com.lagradost.cloudstream3.ui.search.SearchClickCallback import com.lagradost.cloudstream3.ui.search.SearchHelper import com.lagradost.cloudstream3.ui.search.SearchViewModel +import com.lagradost.cloudstream3.utils.AppUtils.ownShow import com.lagradost.cloudstream3.utils.UIHelper import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar import com.lagradost.cloudstream3.utils.UIHelper.getSpanCount @@ -71,6 +73,8 @@ class QuickSearchFragment : Fragment() { private var providers: Set? = null private lateinit var searchViewModel: SearchViewModel + private var bottomSheetDialog: BottomSheetDialog? = null + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -80,7 +84,7 @@ class QuickSearchFragment : Fragment() { WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE ) searchViewModel = ViewModelProvider(this)[SearchViewModel::class.java] - + bottomSheetDialog?.ownShow() return inflater.inflate(R.layout.quick_search, container, false) } @@ -156,7 +160,9 @@ class QuickSearchFragment : Fragment() { // else -> SearchHelper.handleSearchClickCallback(activity, callback) //} }, { item -> - activity?.loadHomepageList(item) + bottomSheetDialog = activity?.loadHomepageList(item, dismissCallback = { + bottomSheetDialog = null + }) }) quick_search_master_recycler?.layoutManager = GridLayoutManager(context, 1) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt index 9c6b62e8..5c101246 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt @@ -45,6 +45,7 @@ import com.lagradost.cloudstream3.ui.home.HomeFragment.Companion.updateChips import com.lagradost.cloudstream3.ui.home.ParentItemAdapter import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings +import com.lagradost.cloudstream3.utils.AppUtils.ownShow import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.DataStore.getKey import com.lagradost.cloudstream3.utils.DataStore.setKey @@ -85,6 +86,7 @@ class SearchFragment : Fragment() { } private val searchViewModel: SearchViewModel by activityViewModels() + private var bottomSheetDialog: BottomSheetDialog? = null override fun onCreateView( inflater: LayoutInflater, @@ -94,6 +96,7 @@ class SearchFragment : Fragment() { activity?.window?.setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE ) + bottomSheetDialog?.ownShow() return inflater.inflate( if (isTvSettings()) R.layout.fragment_search_tv else R.layout.fragment_search, container, @@ -473,7 +476,9 @@ class SearchFragment : Fragment() { ParentItemAdapter(mutableListOf(), { callback -> SearchHelper.handleSearchClickCallback(activity, callback) }, { item -> - activity?.loadHomepageList(item) + bottomSheetDialog = activity?.loadHomepageList(item, dismissCallback = { + bottomSheetDialog = null + }) }) val historyAdapter = SearchHistoryAdaptor(mutableListOf()) { click -> 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 0814bf9d..78b028c2 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 @@ -64,7 +64,9 @@ val appLanguages = arrayListOf( Triple("", "German", "de"), Triple("", "Greek", "el"), Triple("", "English", "en"), + Triple("", "Esperanto", "eo"), Triple("", "Spanish", "es"), + Triple("", "Farsi", "fa"), Triple("", "French", "fr"), Triple("", "Hindi", "hi"), Triple("", "Croatian", "hr"), diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt index 847b3328..a3eb7362 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt @@ -13,9 +13,7 @@ import android.media.tv.TvContract.Channels.COLUMN_INTERNAL_PROVIDER_ID import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.net.Uri -import android.os.Build -import android.os.Environment -import android.os.ParcelFileDescriptor +import android.os.* import android.provider.MediaStore import android.text.Spanned import android.util.Log @@ -40,6 +38,7 @@ import com.google.android.gms.cast.framework.CastState import com.google.android.gms.common.ConnectionResult import com.google.android.gms.common.GoogleApiAvailability import com.google.android.gms.common.wrappers.Wrappers +import com.google.android.material.bottomsheet.BottomSheetDialog import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.MainActivity.Companion.afterRepositoryLoadedEvent @@ -79,6 +78,19 @@ object AppUtils { return if (layoutManager == null || adapter == null) false else layoutManager.findLastCompletelyVisibleItemPosition() < adapter.itemCount - 7 // bit more than 1 to make it more seamless } + fun BottomSheetDialog?.ownHide() { + this?.hide() + } + + fun BottomSheetDialog?.ownShow() { + // the reason for this is because show has a shitty animation we don't want + this?.window?.setWindowAnimations(-1) + this?.show() + Handler(Looper.getMainLooper()).postDelayed({ + this?.window?.setWindowAnimations(R.style.Animation_Design_BottomSheetDialog) + },200) + } + //fun Context.deleteFavorite(data: SearchResponse) { // if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return // normalSafeApiCall { diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5dad5937..f08ffa89 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -530,4 +530,6 @@ المميزات المظهر تشغيل المقطع الدعائي + سيتم تحديث التطبيق عند الخروج + بدأ التحديث \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5959fe83..9148a7a3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -410,7 +410,7 @@ Repository löschen Lade eine Liste der Websiten herunter, welche du verwenden möchtest Heruntergeladen: %d - Heruntergeladen: %d + Deaktiviert: %d Nicht heruntergeladen: %d CloudStream hat standardmäßig keine Websites installiert. Websites müssen aus Repositories installiert werden. \n @@ -427,7 +427,7 @@ Videospuren Bei Neustart anwenden Abgesicherter Modus aktiviert - Ein nicht behebbarer Absturz ist aufgetreten, und wir haben automatisch alle Erweiterungen deaktiviert, damit du die Erweiterung finden und entfernen kannst, die das Problem verursacht. + Alle Erweiterungen wurden aufgrund eines Absturzes deaktiviert, damit Sie diejenige finden können, die Probleme verursacht. Absturzinfo ansehen Bewertung: %s Beschreibung @@ -476,7 +476,7 @@ Aussehen Funktionen %d Plugins aktualisiert - Als beobachtet markieren + Als gesehen markieren Sind Sie sicher, dass Sie die App beenden möchten\? Ja Nein @@ -485,4 +485,6 @@ Konnte die neue Version der App nicht installieren Legacy PackageInstaller + Aktualisierung gestartet + Die Anwendung wird beim Beenden aktualisiert \ No newline at end of file diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml new file mode 100644 index 00000000..09e6941d --- /dev/null +++ b/app/src/main/res/values-eo/strings.xml @@ -0,0 +1,81 @@ + + + Reen + Hejmo + Elŝutoj + Reen + Fontoj + Efektivigi + Konservi + Tipara grando + Forigi + Epizodoj + E + +30 + Jaro + %d / 10 + /\?\? + /%d + Lingvo + Grando + Aŭtoroj + Priskribo + Versio + Stato + Nuligi + Forviŝi + Jes + Ne + Historio + Serĉi + Afiŝo + Spekti filmon + Spekti + Informoj + Kopii + Fermi + Tiparo + Elŝuti lingvojn + Aŭtomate elekti lingvon + Teksta koloro + Forigi + Informoj + S + Stato + Fonta eraro + Saluti + konto + Fenestra koloro + Agordoj + Ĝenroj + Ĉiuj lingvoj + Serĉi + Kontoj + GitHub + Sezono + Epizodo + Azia dramo + Aziaj dramoj + Serio + Televidaj serioj + −30 + Filmo + Filmoj + Aliaj + Blu-radia + Titolo + Nenio + Adiaŭi + Titolo + Fonto + Lingvokodo (eo) + pasvorto123 + MiaSalutNomo + saluton@mondo.com + 127.0.0.1 + MiaRetejo + ekzemplo.com + Rapido (%.2fx) + Serĉi… + Elŝuti + \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0e247ca8..af1e894e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -485,4 +485,6 @@ Intro Muestrar botones emergentes para saltar apertura/finalización del video Si + La aplicación se actualizará al salir + Actualización iniciada \ No newline at end of file diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml new file mode 100644 index 00000000..b1303012 --- /dev/null +++ b/app/src/main/res/values-fa/strings.xml @@ -0,0 +1,22 @@ + + + حذف + مکث + در صف + بارگیری + بارگیری ناموفق بود + جست‌وجو + اندازه‌کردن + پر کردن + بزرگ‌نمایی + همه + قطعه‌ها + وضعیت + درحال بارگیری… + عنوان منبع + خروج + ورود + هیچ‌کدام + عنوان + تاریخچه + \ No newline at end of file diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f8d5fe26..61e461b2 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -526,4 +526,6 @@ Otvaranje PackageInstaller %s %d%s + Aktualiziranje započeto + Program če se aktualizirati tijekom zatvaranja programa \ No newline at end of file diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 894b6d79..90306869 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -27,5 +27,238 @@ Nagyítás Összes Zeneszámok - Következő random + Következő véletlenszerű + Kijelentkezés + Bejelentkezés + Semmi + Cím + Betöltés… + Állapot + Forrás címe + Előzmények + Eigengravy mód + Felirat magassága + Letöltés elkezdve + Nem található cselekmény + Lejátszás folytatása + Filler + Lejátszás CloudStreamel + Kezdőlap + Keresés + Letöltések + Beállítások + Keresés… + Keresés %s… + Nincs adat + Több opció + Következő epizód + Műfajok + Megosztás + Megnyitás böngészőben + Betöltés kihagyása + Poster + \@string/result_poster_img_des + Nézés + Befejezve + Később megnézés + Nincs + Újranézés + Film lejátszása + Előzetes lejátszása + Élőadás lejátszása + Torrent streamelése + Források + Feliratok + Vissza + Letöltés kész + Stream + Hiba a linkek betöltésekor + Belső tárhely + Dub + Sub + Fájl törlése + Fájl lejátszása + Letöltés folytatása + Letöltés szüneteltetése + Automatikus hibajelentés kikapcsolása + Több információ + Elrejtés + Lejátszás + Információ + Könyvjelző szűrése + Könyvjelzők + Eltávolítás + Megtekintés állapotának beállítása + Alkalmazás + Mégse + Másolás + Bezárás + Törlés + Mentés + Lejátszás sebessége + Felirat beállítások + Szövegszín + Körvonal szín + Háttér szín + Ablak szín + Edge típus + Betűtípus + Keresés típusok szerint + Keresés szolgáltatók szerint + %d Banán a fejlesztőknek + Nyelvek letöltése + Tartsa lenyomva az alapértelmezett érték visszaállításához + Betűtípusok importálása %s + Eltávolítás + Több információ + \@string/home_play + VPN szükséges lehet ehhez a szolgáltató megfelelő működéséhez + Ez a szolgáltató torrent, VPN ajánlott + Leírás + Nem található leírás + Logcat megjelenítése 🐈 + Kép-a-képben + Folytatja a lejátszást egy miniatűr lejátszóban, más alkalmazások mellett + Lejátszó átméretezése gomb + Fekete szegélyek eltávolítása + Feliratok + 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 + Letöltés megszakítva + Letöltés + Betűtípus mérete + Felirat nyelve + A metaadatokat a webhely nem biztosítja, a videó betöltése sikertelen lesz, ha nem létezik a webhelyen. + Nyelv automatikus kiválasztása + Frissítések és biztonsági mentés + Speciális keresés + Filler epizódok mutatása animéknél + Előzetesek megjelenítése + Telepítési folyamat megismétlése + Anime applikáció ugyanazoktól a fejlesztőktől + Light novel applikáció ugyanazoktól a fejlesztőktől + Alkalmazás nyelve + Epizód + Epizódok + Év + Film + %d-%d + %d %s + Ep + Nem található epizód + Fájl törlése + %dp +\nhátra + Időtartam + Elérhető + Használatban + Alkalmazás + Befejezve + Értékelés + Rajzfilmek + Élőadások + Alapértelmezett + Filmek + TV sorozat + Anime + Torrentek + Ázsiai drámák + Dokumentumfilmek + OVA + Egyebek + Sorozat + \@string/anime + Forráshiba + NSFW + Rajzfilm + \@string/ova + Élőadás + NSFW + Videó + Torrent + Dokumentumfilm + Ázsiai dráma + Linkek újratöltése + Link másolás + Link letöltés + Automatikus letöltés + Adatok eltárolva + Hiba a biztonsági mentés során %s + Fiókok + Szolgáltatás szerinti keresés eredmények + Nem küld adatokat + Poszterek megjelenítése Kitsu-ról + Kiválasztott videóminőségek elrejtése keresési eredményekbe + Automatikus bővítményfrissítések + Bővítmények automatikus letöltése + Automatikusan telepíti az összes még nem telepített bővítményt a hozzáadott tárolókból. + Alkalmazás frissítések megjelenítése + Automatikusan keressen új frissítéseket indításkor + Frissítés az előzetes kiadásokhoz (prerelease) + Csak előzetesen kiadott frissítések (prerelease) keresése a teljes kiadások helyett + Github + Csatlakozz a Discordhoz + Adj Banánt a fejlesztőknek + Ez a szolgáltató nem támogatja a Chromecast-ot + Nem található link + A link vágólapra másolva + Epizód lejátszása + Alapértelmezett értékre visszaállítása + Az alkalmazás összeomlott. Egy névtelen hibabejelentés küldünk a fejlesztőknek + Évad + %s %d%s + Nincs évad + +30 + Ezzel véglegesen törli a %s +\nBiztosan törli\? + Folyamatban levő + Év + Webhely + Szinopszis + Nincsenek feliratok + Távoli hiba + Render hiba + Váratlan lejátszó hiba + Letöltés hiba, ellenőrízze a tárolási engedélyeket + Chromecast epizód + Chromecast link + Lejátszás az alkalmazásban + Lejátszás %s + Lejátszás böngészőben + Feliratok letöltése + Újracsatlakozás… + Swipe 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 az újját bal vagy jobb oldalon a fényerő vagy hangerő megváltoztatásához + Biztonsági mentés + 0 Banán a fejlesztőknek + Swipe to seek + Következő epizód automatikus lejátszása + Következő epizód lejátszása amikor az aktuális epizód véget ér + Dupla koppintás to seek + Dupla koppintás a szüneteltetéshez + Player seek amount + Koppintson kétszer a jobb vagy bal oldalra az előre vagy hátra ugráshoz + Koppintson 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 + Automatikusan szinkronizálja az aktuális epizód előrehaladását + Adatok visszaállítása a biztonsági mentésből + Biztonsági mentés betöltve + Információ + Folytatás + -30 + Frissítés elkezdődött + Nem sikerült visszaállítani az adatok a fájlból %s + Tárolási engedélyek hiányoznak. Kérjük próbálja újra. + Csak összeomlásokról küld adatokat + APK Telepítő + Egyes telefonok nem támogatják az új csomag telepítőt. Ha a frissítések nem települnek, próbálja meg a régi opciót. + Banán adva \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 91d7da85..e3ac0e56 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -504,4 +504,6 @@ Predefiniti Aspetto Funzionalità + L\'app verrà aggiornata all\'uscita + Aggiornamento avviato \ No newline at end of file diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index f49f56b9..cb8d5945 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -122,4 +122,11 @@ לא כן סימון כנצפה + סטטוס + התנתק + התחברות + כותרת + אין + הכל + כותרת \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b3558e0d..907ac76e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -294,7 +294,7 @@ %s %s konto Wyloguj się - Logowanie + Zaloguj się Przełącz konto Dodaj konto Utwórz konto @@ -308,7 +308,7 @@ Brak Normalne - Wszystkie + Wszystko Maks Min Kontur @@ -485,4 +485,6 @@ Układ Wygląd Odtwórz zwiastun + Aplikacja zostanie zaktualizowana po wyjściu + Aktualizacja rozpoczęta \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 64f67d87..c374b4bc 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -14,4 +14,12 @@ Удалить Всё Пауза + В ролях: %s + Название источника + Вход + Нет + Название + Загрузка… + Статус + Выйти \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 57af1678..7e83f840 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -281,4 +281,89 @@ Videospelarens upplösning Historik Markera som sedd + Inställningar för Chromecast-undertexter + TV-layout + Skapa konto + %d / 10 + /\?\? + /%d + Använd detta om undertexterna visas %d ms för tidigt + HD + SD + UHD + Upplösning och titel + Fel + Referer + Nästa + 1000 ms + Lägga till en klon av en befintlig webbplats med en annan webbadress. + Ogiltigt ID + Ogiltig webbadress + Orsakar krascher om inställningen är för hög på enheter med lågt minne, t.ex. Android TV. + Orsakar problem om inställningen är för hög på enheter med lågt lagringsutrymme, t.ex. Android TV. + Ta bort webbplats + Klona webbplats + Telefonlayout + Primärfärg + Användarnamn + namn@email.se + 127.0.0.1 + Källa + Slumpmässig + Kommer snart… + Filtrera efter föredraget språk + Kraschrapportering + Kunde inte logga in på %s + Utseende + Layout + 4K + Ändra appens utseende så att den passar din enhet + Skådespelare: %s + Spela Livestream + %s %s + Ingen undertextfördröjning + Spelarfunktioner + Trailer + Applayout + Funktioner + exempel.se + Språkkod (en) + Videocache på disken + Rensa video- och bildcache + Länkar + Appuppdateringar + Layout + Titel + Hoppa över installationen + Klar + Tillägg + Rensa + Direktsändning + Max tecken i videospelartiteln + Videobuffertstorlek + Videobuffertlängd + Ansvarsfriskrivning + Tillägg + Cache + Säkerhetskopiering + Undertexter + Aktivera NSFW på sidor som stöds + Undertextkodning + lösenord123 + Fördröjning av undertexter + Använd detta om undertexterna visas %d ms för sent + Importera från fil + Importera från Internet + Nedladdad fil + TS + TC + DVD + HDR + SDR + Upplösning + Ogiltig data + Ta bort dold textning från undertexter + Titta på videor på dessa språk + Föregående + Spår \ No newline at end of file diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index f516fd67..71bbbf7a 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -549,4 +549,6 @@ 播放器功能 行为 外观 + 更新开始 + 应用退出后将会更新 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 068dd88a..e30abea3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ - + + search_providers_list app_locale @@ -615,4 +616,4 @@ PackageInstaller App will be updated upon exit - \ No newline at end of file +