Compare commits

...

4 Commits

Author SHA1 Message Date
Hosted Weblate ed42a717ed
Merge remote-tracking branch 'origin/master' 2024-04-27 18:11:27 +02:00
KingLucius 004c481a5e
feat(ui): Episode Air date & Upcoming countdown (#1058) 2024-04-27 18:11:22 +02:00
Hosted Weblate c28ad4ff3a
Translated using Weblate (German)
Currently translated at 99.5% (695 of 698 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.1% (692 of 698 strings)

Translated using Weblate (Croatian)

Currently translated at 99.5% (695 of 698 strings)

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Arabic (Levantine))

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (German)

Currently translated at 99.1% (692 of 698 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Arabic (Levantine))

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (Arabic)

Currently translated at 100.0% (698 of 698 strings)

Translated using Weblate (French)

Currently translated at 98.4% (686 of 697 strings)

Co-authored-by: Andre Costa <andrecaeu@gmail.com>
Co-authored-by: Antonio N <antonioenpidev@gmail.com>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: Eji-san <ejierubani@gmail.com>
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Evgeniy Khramov <65224669+thejenja@users.noreply.github.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jose Delvani <delvani.eletricista@gmail.com>
Co-authored-by: Massimo Pissarello <mapi68@gmail.com>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Mæve Rey <mrey@users.noreply.hosted.weblate.org>
Co-authored-by: Nicoara Alex <alex.nicoara@yahoo.com>
Co-authored-by: Pizza Party <paol.m@proton.me>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Semih <semihbrn10@gmail.com>
Co-authored-by: Walter H <walter75@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com>
Co-authored-by: programutox <programutox@disroot.org>
Co-authored-by: streaming s <fsrmllll1111@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/apc/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/ar/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/cs/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/de/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/es/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/fr/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/hr/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/id/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/it/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/pl/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/pt/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/ro/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/ru/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/tr/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/uk/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/vi/
Translate-URL: https://hosted.weblate.org/projects/cloudstream/app/zh_Hans/
Translation: Cloudstream/App
2024-04-27 18:00:54 +02:00
b4byhuey e2946cad6b
Added Vidguard Extractor (#1053) 2024-04-27 18:00:40 +02:00
26 changed files with 338 additions and 72 deletions

View File

@ -0,0 +1,101 @@
package com.lagradost.cloudstream3.extractors
import android.util.Log
import com.lagradost.cloudstream3.SubtitleFile
import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.utils.AppUtils
import com.lagradost.cloudstream3.utils.ExtractorApi
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.INFER_TYPE
import com.lagradost.cloudstream3.utils.Qualities
import org.mozilla.javascript.Context
import org.mozilla.javascript.NativeJSON
import org.mozilla.javascript.NativeObject
import org.mozilla.javascript.Scriptable
import java.util.Base64
open class Vidguardto : ExtractorApi() {
override val name = "Vidguard"
override val mainUrl = "https://vidguard.to"
override val requiresReferer = false
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
val res = app.get(url)
val resc = res.document.select("script:containsData(eval)").firstOrNull()?.data()
resc?.let {
val jsonStr2 = AppUtils.parseJson<SvgObject>(runJS2(it))
val watchlink = sigDecode(jsonStr2.stream)
callback.invoke(
ExtractorLink(
this.name,
name,
watchlink,
this.mainUrl,
Qualities.Unknown.value,
INFER_TYPE
)
)
}
}
private fun sigDecode(url: String): String {
val sig = url.split("sig=")[1].split("&")[0]
var t = ""
for (v in sig.chunked(2)) {
val byteValue = Integer.parseInt(v, 16) xor 2
t += byteValue.toChar()
}
val padding = when (t.length % 4) {
2 -> "=="
3 -> "="
else -> ""
}
val decoded = Base64.getDecoder().decode((t + padding).toByteArray(Charsets.UTF_8))
t = String(decoded).dropLast(5).reversed()
val charArray = t.toCharArray()
for (i in 0 until charArray.size - 1 step 2) {
val temp = charArray[i]
charArray[i] = charArray[i + 1]
charArray[i + 1] = temp
}
val modifiedSig = String(charArray).dropLast(5)
return url.replace(sig, modifiedSig)
}
private fun runJS2(hideMyHtmlContent: String): String {
Log.d("runJS", "start")
val rhino = Context.enter()
rhino.initSafeStandardObjects()
rhino.optimizationLevel = -1
val scope: Scriptable = rhino.initSafeStandardObjects()
scope.put("window", scope, scope)
var result = ""
try {
Log.d("runJS", "Executing JavaScript: $hideMyHtmlContent")
rhino.evaluateString(scope, hideMyHtmlContent, "JavaScript", 1, null)
val svgObject = scope.get("svg", scope)
result = if (svgObject is NativeObject) {
NativeJSON.stringify(Context.getCurrentContext(), scope, svgObject, null, null).toString()
} else {
Context.toString(svgObject)
}
Log.d("runJS", "Result: $result")
} catch (e: Exception) {
Log.e("runJS", "Error executing JavaScript", e)
} finally {
Context.exit()
}
return result
}
data class SvgObject(
val stream: String,
val hash: String
)
}

View File

@ -9,9 +9,11 @@ import androidx.core.view.isVisible
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.lagradost.cloudstream3.APIHolder.unixTimeMS
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.databinding.ResultEpisodeBinding
import com.lagradost.cloudstream3.databinding.ResultEpisodeLargeBinding
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.secondsToReadable
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_DOWNLOAD
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_LONG_CLICK
import com.lagradost.cloudstream3.ui.download.DownloadClickEvent
@ -23,6 +25,8 @@ import com.lagradost.cloudstream3.utils.AppUtils.html
import com.lagradost.cloudstream3.utils.UIHelper.setImage
import com.lagradost.cloudstream3.utils.UIHelper.toPx
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
import java.text.DateFormat
import java.text.SimpleDateFormat
import java.util.*
const val ACTION_PLAY_EPISODE_IN_PLAYER = 1
@ -104,7 +108,7 @@ class EpisodeAdapter(
override fun getItemViewType(position: Int): Int {
val item = getItem(position)
return if (item.poster.isNullOrBlank()) 0 else 1
return if (item.poster.isNullOrBlank() && item.description.isNullOrBlank()) 0 else 1
}
@ -260,6 +264,33 @@ class EpisodeAdapter(
}
}
if (card.airDate != null) {
val isUpcoming = unixTimeMS < card.airDate
if (isUpcoming) {
episodePlayIcon.isVisible = false
episodeUpcomingIcon.isVisible = !episodePoster.isVisible
episodeDate.setText(
txt(
R.string.episode_upcoming_format,
secondsToReadable(card.airDate.minus(unixTimeMS).div(1000).toInt(), "")
)
)
} else {
episodeUpcomingIcon.isVisible = false
val formattedAirDate = SimpleDateFormat.getDateInstance(
DateFormat.LONG,
Locale.getDefault()
).apply {
}.format(Date(card.airDate))
episodeDate.setText(txt(formattedAirDate))
}
} else {
episodeDate.isVisible = false
}
if (isLayout(EMULATOR or PHONE)) {
episodePoster.setOnClickListener {
clickCallback.invoke(EpisodeClickEvent(ACTION_CLICK_DEFAULT, card))
@ -271,6 +302,7 @@ class EpisodeAdapter(
}
}
}
itemView.setOnClickListener {
clickCallback.invoke(EpisodeClickEvent(ACTION_CLICK_DEFAULT, card))
}

View File

@ -50,6 +50,7 @@ data class ResultEpisode(
val videoWatchState: VideoWatchState,
/** Sum of all previous season episode counts + episode */
val totalEpisodeIndex: Int? = null,
val airDate: Long? = null,
)
fun ResultEpisode.getRealPosition(): Long {
@ -85,6 +86,7 @@ fun buildResultEpisode(
tvType: TvType,
parentId: Int,
totalEpisodeIndex: Int? = null,
airDate: Long? = null,
): ResultEpisode {
val posDur = getViewPos(id)
val videoWatchState = getVideoWatchState(id) ?: VideoWatchState.None
@ -107,7 +109,8 @@ fun buildResultEpisode(
tvType,
parentId,
videoWatchState,
totalEpisodeIndex
totalEpisodeIndex,
airDate,
)
}

View File

@ -2277,7 +2277,8 @@ class ResultViewModel2 : ViewModel() {
fillers.getOrDefault(episode, false),
loadResponse.type,
mainId,
totalIndex
totalIndex,
airDate = i.date
)
val season = eps.seasonIndex ?: 0
@ -2326,7 +2327,8 @@ class ResultViewModel2 : ViewModel() {
null,
loadResponse.type,
mainId,
totalIndex
totalIndex,
airDate = episode.date
)
val season = ep.seasonIndex ?: 0

View File

@ -186,6 +186,7 @@ import com.lagradost.cloudstream3.extractors.VideoVard
import com.lagradost.cloudstream3.extractors.VideovardSX
import com.lagradost.cloudstream3.extractors.Vidgomunime
import com.lagradost.cloudstream3.extractors.Vidgomunimesb
import com.lagradost.cloudstream3.extractors.Vidguardto
import com.lagradost.cloudstream3.extractors.VidhideExtractor
import com.lagradost.cloudstream3.extractors.Vidmoly
import com.lagradost.cloudstream3.extractors.Vidmolyme
@ -888,7 +889,8 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
StreamWishExtractor(),
EmturbovidExtractor(),
Vtbe(),
EPlayExtractor()
EPlayExtractor(),
Vidguardto()
)

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="#9BA0A4"
android:pathData="M320,800h320v-120q0,-66 -47,-113t-113,-47q-66,0 -113,47t-47,113v120ZM480,440q66,0 113,-47t47,-113v-120L320,160v120q0,66 47,113t113,47ZM160,880v-80h80v-120q0,-61 28.5,-114.5T348,480q-51,-32 -79.5,-85.5T240,280v-120h-80v-80h640v80h-80v120q0,61 -28.5,114.5T612,480q51,32 79.5,85.5T720,680v120h80v80L160,880ZM480,800ZM480,160Z"/>
</vector>

View File

@ -43,14 +43,26 @@
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:nextFocusRight="@id/download_button"
android:scaleType="centerCrop"
tools:src="@drawable/example_poster" />
tools:src="@drawable/example_poster"
tools:visibility="invisible"/>
<ImageView
android:id="@+id/episode_play_icon"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center"
android:contentDescription="@string/play_episode"
android:src="@drawable/play_button" />
android:src="@drawable/play_button"
tools:visibility="invisible"/>
<ImageView
android:id="@+id/episode_upcoming_icon"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center"
android:src="@drawable/hourglass_24"
android:visibility="gone"
tools:visibility="visible" />
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/episode_progress"
@ -100,6 +112,13 @@
android:layout_height="wrap_content"
android:textColor="?attr/grayTextColor"
tools:text="Rated: 8.8" />
<TextView
android:id="@+id/episode_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?attr/grayTextColor"
tools:text="15 Apr 2024" />
</LinearLayout>
<com.lagradost.cloudstream3.ui.download.button.PieFetchButton

View File

@ -621,5 +621,7 @@
<string name="music_singlar">موسيقى</string>
<string name="audio_book_singular">أوديو بوك</string>
<string name="custom_media_singluar">الميديا</string>
<string name="battery_dialog_message">لتضمن عدم انقطاع التنزيلات والنوتيفيكايشنات للبرامج التلفزيونية يلي مشتركلها، الآپ \"كلود ستريم\" بده إذن ليمشي بـ الباكگروند. ازا كبست أوكي، رح تتوجه ع صفحة معلومات التطبيق. هونيك، نزال حتى توصل ل «استخدام بطارية التطبيق» \"App battery usage\" وحط استخدام البطارية ع «غير مقيد» \"Unrestricted\". ملاحظة إنو هيدا الإذن ما بيعني إنو \"كلود ستريم 3\" رح تستنزف البطارية. ومش رح يشتغل الآن بـ الباكگروند إلّا عند الضرورة، متل لمّا تتلقا نوتيفيكايشن أو تنزل ڤيديو من الريپو الاصلي. فيك ترجع ترد هيدا الستنگ بـ«الإعدادات العامة» \"General settings\"، إزا غيرت رأيك.</string>
</resources>
<string name="battery_dialog_message">لتضمن عدم انقطاع التنزيلات والنوتيفيكايشنات للبرامج التلفزيونية يلي مشتركلها، الآپ \"كلود ستريم\" بده إذن ليمشي بـ الباكگراوند. ازا كبست أوكي، رح تتوجه ع صفحة معلومات التطبيق. هونيك، نزال حتى توصل ل «استخدام بطارية التطبيق» \"App battery usage\" وحط استخدام البطارية ع «غير مقيد» \"Unrestricted\".
\nملاحظة إنو هيدا الإذن ما بيعني إنو \"كلود ستريم 3\" رح تستنزف البطارية. ومش رح يشتغل الپآ بالباكگراوند إلّا عند الضرورة، متل لمّا تتلقا نوتيفيكايشن أو تنزل ڤيديو من الريپو الاصلي. فيك ترجع ترد هيدا الستنگ بـ«الإعدادات العامة» \"General settings\"، إزا غيرت رأيك.</string>
<string name="reset_btn">ريسات</string>
</resources>

View File

@ -650,4 +650,5 @@
\nواضبط استخدام البطارية على غير مقيد. يرجى ملاحظة أن هذا الإذن لا يعني أن CS3 سوف يستنزف البطارية. ولن يعمل إلا في الخلفية عند الضرورة، كما هو الحال عند تلقي الإشعارات أو تنزيل مقاطع الفيديو من الملحقات الرسمية. إذا اخترت الإلغاء، فيمكنك ضبط هذا الإعداد لاحقًا في الإعدادات العامة.</string>
<string name="music_singlar">موسيقى</string>
<string name="custom_media_singluar">الوسائط</string>
</resources>
<string name="reset_btn">اعادة تعيين</string>
</resources>

View File

@ -639,4 +639,5 @@
<string name="music_singlar">Música</string>
<string name="audio_book_singular">Áudio-livro</string>
<string name="custom_media_singluar">Mídia</string>
</resources>
<string name="reset_btn">Redefinir</string>
</resources>

View File

@ -641,4 +641,5 @@
<string name="battery_dialog_title">Zakažte optimalizace baterie</string>
<string name="battery_dialog_message">Aby bylo zajištěno nepřetržité stahování a upozornění na odebírané seriály, potřebuje aplikace CloudStream povolení ke spuštění na pozadí. Stisknutím tlačítka OK budete přesměrováni na informace o aplikaci. Tam přejděte na položku Využití baterie aplikací a nastavte možnost Využití baterie na hodnotu Neomezené. Upozorňujeme, že toto povolení neznamená, že CS3 bude vybíjet baterii. Na pozadí bude pracovat pouze v případě potřeby, například při přijímání oznámení nebo stahování videí z oficiálních rozšíření. Pokud se rozhodnete toto nastavení zrušit, můžete jej později upravit v Obecných nastaveních.</string>
<string name="audio_book_singular">Audiokniha</string>
</resources>
<string name="reset_btn">Resetovat</string>
</resources>

View File

@ -151,7 +151,7 @@
<string name="backup_failed">Speicherberechtigungen fehlen. Bitte erneut versuchen.</string>
<string name="search">Suche</string>
<string name="category_account">Konten und Sicherheit</string>
<string name="category_updates">Updates und Datensicherung</string>
<string name="category_updates">Aktualisierungen und Datensicherung</string>
<string name="settings_info">Info</string>
<string name="advanced_search">Erweiterte Suche</string>
<string name="advanced_search_des">Liefert die Suchergebnisse getrennt nach Anbietern</string>
@ -421,7 +421,7 @@
<string name="tracks">Spuren</string>
<string name="audio_tracks">Audiospuren</string>
<string name="video_tracks">Videospuren</string>
<string name="apply_on_restart">Bei Neustart anwenden</string>
<string name="apply_on_restart">Starte die App neu, um die Änderungen zu sehen.</string>
<string name="safe_mode_title">Abgesicherter Modus aktiviert</string>
<string name="safe_mode_description">Alle Erweiterungen wurden aufgrund eines Absturzes deaktiviert, damit Sie diejenige finden können, welche Probleme verursacht.</string>
<string name="safe_mode_crash_info">Absturzinfo ansehen</string>
@ -607,4 +607,12 @@
<string name="clipboard_unknown_error">Beim kopieren ist ein Fehler aufgetreten, bitte kopieren sie logical und wenden sich an den Support.</string>
<string name="clipboard_permission_error">Fehler beim zugriff auf die Zwischenablage, bitte erneut versuchen.</string>
<string name="repo_copy_label">Repository Name und URL</string>
</resources>
<string name="ok">OK</string>
<string name="battery_dialog_title">Akku-Optimierung deaktivieren</string>
<string name="music_singlar">Musik</string>
<string name="audio_book_singular">Hörbuch</string>
<string name="custom_media_singluar">Medien</string>
<string name="reset_btn">Zurücksetzen</string>
<string name="app_unrestricted_toast">Akkuverbrauch der App ist bereits auf unbeschränkt eingestellt</string>
<string name="app_info_intent_error">CloudStreams App-Info kann nicht geöffnet werden.</string>
</resources>

View File

@ -176,7 +176,7 @@
<string name="subs_edge_type">Tipo de Borde</string>
<string name="subs_subtitle_elevation">Elevación de Subtítulo</string>
<string name="search_provider_text_providers">Buscar usando proveedores</string>
<string name="picture_in_picture_des">Continúa la reproducción en un reproductor miniatura encima de otras aplicaciones</string>
<string name="picture_in_picture_des">Continúa la reproducción en una imagen pequeña encima de otras aplicaciones</string>
<string name="player_size_settings">Botón de cambio de tamaño del reproductor</string>
<string name="player_size_settings_des">Eliminar bordes negros</string>
<string name="subs_auto_select_language">Seleccionar idioma automáticamente</string>
@ -232,7 +232,7 @@
<string name="advanced_search_des">Mostrar los resultados de la búsqueda por proveedor</string>
<string name="bug_report_settings_off">Solo envíar los datos si la App se cierra / falla inesperadamente</string>
<string name="bug_report_settings_on">No enviar datos</string>
<string name="show_trailers_settings">Mostrar los trailers</string>
<string name="show_trailers_settings">Mostrar avances</string>
<string name="kitsu_settings">Mostrar pósters de Kitsu</string>
<string name="uprereleases_settings">Actualizar a las versiones preliminares</string>
<string name="uprereleases_settings_des">Buscar actualizaciones preliminares (beta) en lugar de solo versiones completas (stable releases)</string>
@ -339,7 +339,7 @@
<string name="poster_ui_settings">Alternar elementos de la interfaz de usuario en el póster</string>
<string name="no_update_found">No se encontró ninguna actualización</string>
<string name="category_general">General</string>
<string name="primary_color_settings">Color primario</string>
<string name="primary_color_settings">Color principal</string>
<string name="app_theme_settings">Tema de la aplicación</string>
<string name="example_email">hola@mundo.com</string>
<string name="login_format" formatted="true">%1$s %2$s</string>
@ -449,13 +449,13 @@
<string name="batch_download">Descarga por lotes</string>
<string name="plugin_singular">plugin</string>
<string name="plugin">plugins</string>
<string name="plugins_updated" formatted="true">Actualizados %d plugins</string>
<string name="plugins_updated" formatted="true">%d plugins actualizados</string>
<string name="view_public_repositories_button">Ver repositorios de la comunidad</string>
<string name="view_public_repositories_button_short">Lista pública</string>
<string name="tracks">Pistas</string>
<string name="audio_tracks">Pistas de audio</string>
<string name="video_tracks">Pistas de video</string>
<string name="safe_mode_title">Modo seguro ON</string>
<string name="safe_mode_title">Modo seguro activado</string>
<string name="safe_mode_crash_info">Ver información de fallos</string>
<string name="extension_rating" formatted="true">Puntaje:%s</string>
<string name="extension_version">Versión</string>
@ -483,7 +483,7 @@
<string name="yes">Si</string>
<string name="delayed_update_notice">La aplicación se actualizará al salir</string>
<string name="update_started">Actualización iniciada</string>
<string name="plugin_downloaded">Complemento descargado</string>
<string name="plugin_downloaded">Plugin descargado</string>
<string name="action_remove_from_watched">Quitar de visto</string>
<string name="sort_by">Ordenar por</string>
<string name="sort">Ordenar</string>
@ -512,7 +512,7 @@
<string name="test_log">Registro</string>
<string name="start">Empezar</string>
<string name="test_passed">Aprobado</string>
<string name="category_provider_test">Prueba del proveedor</string>
<string name="category_provider_test">Verificar al proveedor</string>
<string name="restart">Reiniciar</string>
<string name="subscription_list_name">Suscrito</string>
<string name="subscription_new">Suscrito a %s</string>
@ -545,7 +545,7 @@
<string name="unable_to_inflate">La interfaz de usuario no se ha podido crear correctamente, se trata de un GRAN BUG y debe ser reportado inmediatamente %s</string>
<string name="automatic_plugin_download_mode_title">Seleccionar modo para filtrar los plugins descargados</string>
<string name="disable">Deshabilitar</string>
<string name="no_plugins_found_error">No se encontraron complementos en el repositorio</string>
<string name="no_plugins_found_error">No se encontraron plugins en el repositorio</string>
<string name="no_repository_found_error">Repositorio no encontrado, comprueba la URL y prueba la VPN</string>
<string name="already_voted">Ya has votado</string>
<string name="backup_frequency">Frecuencia de la copia de seguridad</string>
@ -617,4 +617,5 @@
<string name="custom_media_singluar">Media</string>
<string name="audio_book_singular">Audiolibro</string>
<string name="battery_dialog_message">Para garantizar descargas y notificaciones ininterrumpidas para programas de televisión suscritos, CloudStream necesita permiso para ejecutarse en segundo plano. Al presionar OK, se le dirigirá a información de la aplicación. Allí, desplácese hasta Uso de la batería de la aplicación y establezca el uso de la batería en Sin restricciones. Tenga en cuenta que este permiso no significa que CS3 agotará su batería. Solo funcionará en segundo plano cuando sea necesario, como cuando reciba notificaciones o descargue videos de extensiones oficiales. Si decide cancelar, puede ajustar esta configuración más adelante en los ajustes generales.</string>
</resources>
<string name="reset_btn">Reset</string>
</resources>

View File

@ -280,7 +280,7 @@
<string name="backup_failed_error_format">Erreur de sauvegarde %s</string>
<string name="search">Recherche</string>
<string name="category_account">Comptes et Sécurité</string>
<string name="category_updates">Mises à jour et sauvegarde</string>
<string name="category_updates">Mises à jour et Sauvegarde</string>
<string name="settings_info">Info</string>
<string name="advanced_search">Recherche avancée</string>
<string name="advanced_search_des">Vous donne les résultats de la recherche séparés par fournisseur</string>
@ -419,7 +419,7 @@
<string name="setup_extensions_subtext">Télécharger la liste de sites que vous voulez utiliser</string>
<string name="plugins_downloaded" formatted="true">Téléchargé : %d</string>
<string name="video_tracks">Pistes vidéo</string>
<string name="apply_on_restart">Appliqué au redémarrage</string>
<string name="apply_on_restart">Redémarrez l\'application pour voir les changements.</string>
<string name="safe_mode_description">Toutes les extensions ont été désactivé à cause d\'un crash pour vous aider à trouver l\'extension causant le problème.</string>
<string name="safe_mode_title">Mode sans échec activé</string>
<string name="extension_size">Taille</string>
@ -595,4 +595,17 @@
<string name="test_extensions_summary">Ce test est destiné uniquement aux développeurs et ne vérifie ni n\'empêche le fonctionnement d\'aucune extension.</string>
<string name="toast_copied">Copié!</string>
<string name="repo_copy_label">Nom du dépôt et adresse internet</string>
</resources>
<string name="favorite">Favori</string>
<string name="biometric_warning">Vos données CloudStream viennent d\'être sauvegardées. Bien que cette éventualité soit très faible, tous les appareils peuvent se comporter différemment. Dans le rare cas où l\'accès à l\'application est bloqué, effacez complètement les données de l\'application et restaurez à partir d\'une sauvegarde. Nous sommes sincèrement désolés pour les désagréments occasionnés par cette situation.</string>
<string name="battery_dialog_title">Désactiver l\'optimisation de la batterie</string>
<string name="app_info_intent_error">Impossible d\'ouvrir les infos sur l\'application CloudStream.</string>
<string name="biometric_authentication_title">Déverrouiller CloudStream</string>
<string name="music_singlar">Musique</string>
<string name="resume_remaining" formatted="true">%s
\nrestants</string>
<string name="clipboard_permission_error">Erreur d\'accès au presse-papiers, veuillez réessayer.</string>
<string name="ok">OK</string>
<string name="biometric_unsupported">L\'authentification biométrique n\'est pas prise en charge sur cet appareil</string>
<string name="audio_book_singular">Livre Audio</string>
<string name="password_pin_authentication_title">Mot de passe/Code PIN</string>
</resources>

View File

@ -158,7 +158,7 @@
<string name="backup_failed_error_format">Pogreška pri sigurnosnom kopiranju %s</string>
<string name="search">Pretraži</string>
<string name="category_account">Računi i sigurnost</string>
<string name="category_updates">Ažuriranja i sigurnosne kopije</string>
<string name="category_updates">Ažuriranja i sigurnosna kopija</string>
<string name="settings_info">Informacije</string>
<string name="advanced_search">Napredno pretraživanje</string>
<string name="advanced_search_des">Daje rezultate pretraživanja odvojene prema pružatelju usluga</string>
@ -442,7 +442,7 @@
<string name="tracks">Zapis</string>
<string name="audio_tracks">Audio zapis</string>
<string name="video_tracks">Video zapis</string>
<string name="apply_on_restart">Primjenjuje se na ponovnom pokretanju</string>
<string name="apply_on_restart">Ponovo pokreni aplikaciju za prikaz promjena.</string>
<string name="safe_mode_title">Sigurnosni način rada omogućen</string>
<string name="safe_mode_description">Sve su ekstenzije isključene zbog rušenja aplikacije kako biste lakše pronašli ono koje uzrokuje probleme.</string>
<string name="safe_mode_crash_info">Pogledajte podatke o padu</string>
@ -629,4 +629,15 @@
<string name="password_pin_authentication_title">Lozinka/PIN autentifikacija</string>
<string name="biometric_unsupported">Ovaj uređaj ne podržava biometrijsku autentifikaciju</string>
<string name="biometric_prompt_description">Ovaj je ekran zatvoren zbog višestrukih neuspjelih pokušaja. Pokrenite aplikaciju ponovo.</string>
</resources>
<string name="ok">U redu</string>
<string name="battery_dialog_title">Deaktiviraj optimizaciju baterije</string>
<string name="audio_book_singular">Audio knjiga</string>
<string name="custom_media_singluar">Medij</string>
<string name="app_unrestricted_toast">Korištenje baterije aplikacije je već postavljena na neograničeno</string>
<string name="app_info_intent_error">Neuspjelo otvaranje podataka CloudStream aplikacije.</string>
<string name="favorite">Favorit</string>
<string name="unfavorite">Ukloni iz favorita</string>
<string name="music_singlar">Glazba</string>
<string name="reset_btn">Obnovi</string>
<string name="biometric_setting_summary">Otključaj aplikaciju pomoću otiska prsta, ID-a lica, PIN-a, uzorka i lozinke.</string>
</resources>

View File

@ -638,4 +638,5 @@
<string name="audio_book_singular">Buku Audio</string>
<string name="custom_media_singluar">Media</string>
<string name="battery_dialog_message">Untuk memastikan unduhan dan pemberitahuan tanpa gangguan untuk acara TV berlangganan, CloudStream memerlukan izin untuk berjalan di latar belakang. Dengan menekan OK, Anda akan diarahkan ke Info aplikasi. Di sana, gulir ke Penggunaan baterai aplikasi dan atur penggunaan baterai ke Tidak Terbatas. Harap dicatat, izin ini tidak berarti CS3 akan menguras baterai Anda. Ini hanya akan beroperasi di latar belakang ketika diperlukan, seperti ketika menerima pemberitahuan atau mengunduh video dari ekstensi resmi. Jika Anda memilih untuk membatalkannya, Anda dapat menyesuaikan pengaturan ini nanti di Pengaturan Umum.</string>
</resources>
<string name="reset_btn">Mengatur ulang</string>
</resources>

View File

@ -637,4 +637,5 @@
<string name="app_unrestricted_toast">L\'utilizzo della batteria dell\'app è già impostato su \"Senza restrizioni\"</string>
<string name="music_singlar">Musica</string>
<string name="audio_book_singular">Audiolibro</string>
</resources>
<string name="reset_btn">Reimposta</string>
</resources>

View File

@ -618,4 +618,5 @@
<string name="custom_media_singluar">Multimedia</string>
<string name="app_unrestricted_toast">Użycie akumulatora przez aplikację jest już ustawione na nieograniczone</string>
<string name="battery_dialog_message">Aby zapewnić nieprzerwane pobieranie i powiadomienia o subskrybowanych programach telewizyjnych, CloudStream potrzebuje pozwolenia na działanie w tle. Naciskając OK, zostaniesz przekierowany do informacji o aplikacji. Tam przewiń do użycia akumulatora przez aplikację i ustaw je na nieograniczone. Pamiętaj, że to pozwolenie nie oznacza, że CS3 będzie zużywać akumulator. Będzie działać w tle tylko wtedy, gdy będzie to konieczne, na przykład podczas odbierania powiadomień lub pobierania filmów z oficjalnych rozszerzeń. Jeśli zdecydujesz się anulować, możesz dostosować to ustawienie później w ustawieniach głównych.</string>
</resources>
<string name="reset_btn">Resetuj</string>
</resources>

View File

@ -615,4 +615,5 @@
<string name="custom_media_singluar">Multimédia</string>
<string name="battery_dialog_title">Desativar a otimização da bateria</string>
<string name="battery_dialog_message">Para garantir descarregamentos ininterruptos e notificações de programas de TV subscritos, o CloudStream precisa de permissão para ser executado em segundo plano. Ao premir OK, será direcionado para informações da aplicação. Aí, desloque-se para utilização da bateria da aplicação e defina a utilização da bateria para sem restrições. Tenha em atenção que esta permissão não significa que o CS3 irá esgotar a sua bateria. Este só funcionará em segundo plano quando necessário, como ao receber notificações ou baixar vídeos de extensões oficiais. Se optar por cancelar, pode ajustar esta definição mais tarde em definições gerais.</string>
</resources>
<string name="reset_btn">Reiniciar</string>
</resources>

View File

@ -59,7 +59,7 @@
<string name="download_failed">Descărcare eșuată</string>
<string name="download_canceled">Descărcare anulată</string>
<string name="download_done">Descărcare finalizată</string>
<string name="stream">Stream</string>
<string name="stream">Stream de rețea</string>
<string name="error_loading_links_toast">Eroare la încărcarea linkurilor</string>
<string name="download_storage_text">Stocare internă</string>
<string name="app_dubbed_text">Dub</string>
@ -142,7 +142,7 @@
<string name="backup_failed">Permisiunea de arhivare lipșe, vă rugăm să încercați din nou.</string>
<string name="backup_failed_error_format">Eroare de backup %s</string>
<string name="search">Căutare</string>
<string name="category_account">Conturi și credite</string>
<string name="category_account">Conturi și Securitate</string>
<string name="category_updates">Actualizări și copii de rezervă</string>
<string name="settings_info">Informații</string>
<string name="advanced_search">Căutare avansată</string>
@ -255,8 +255,8 @@
<string name="video_buffer_length_settings">Lungimea buffer-ului video</string>
<string name="video_buffer_disk_settings">Dimensiunea cache-ului video pe disc</string>
<string name="video_buffer_clear_settings">Ștergeți memoria cache de imagine și video</string>
<string name="video_ram_description">Provoacă blocaje dacă este setată la un nivel prea ridicat pe dispozitive cu memorie redusă, cum ar fi Android TV.</string>
<string name="video_disk_description">Cauzează probleme dacă este setat la un nivel prea ridicat pe dispozitive cu spațiu de stocare redus, cum ar fi Android TV.</string>
<string name="video_ram_description">Cauzează blocări dacă este setat prea mare pe dispozitive cu memorie redusă, cum ar fi Android TV.</string>
<string name="video_disk_description">Cauzează probleme dacă este setat prea mare pe dispozitive cu spațiu de stocare redus, cum ar fi Android TV.</string>
<string name="dns_pref">DNS peste HTTPS</string>
<string name="dns_pref_summary">Folositor pentru evitarea blocajelor ISP</string>
<string name="add_site_pref">Adaugați site-ul</string>
@ -272,8 +272,8 @@
<string name="legal_notice_text">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.</string>
<string name="category_general">General</string>
<string name="random_button_settings">Aleatoriu</string>
<string name="random_button_settings_desc">Afișați butonul aleatoriu pe pagina de start și în bibliotecă</string>
<string name="provider_lang_settings">Limba furnizorului</string>
<string name="random_button_settings_desc">Afișează butonul pentru aleatoriu pe Pagina Principală și în Bibliotecă</string>
<string name="provider_lang_settings">Limbi ale extensiei</string>
<string name="app_layout">Aplicație de prezentare</string>
<string name="preferred_media_settings">Media preferată</string>
<string name="subtitles_encoding">Codificarea subtitrărilor</string>
@ -309,7 +309,7 @@
<string name="sync_total_episodes_none">/\?\?</string>
<string name="sync_total_episodes_some" formatted="true">/%d</string>
<string name="authenticated_user" formatted="true">%s autentificat/ă</string>
<string name="authenticated_user_fail" formatted="true">Nu s-a putut autentifica la %s</string>
<string name="authenticated_user_fail" formatted="true">Nu am putut să mă autentific la %s</string>
<!-- ============ -->
<string name="none">Nu există</string>
<string name="normal">Normal</string>
@ -332,7 +332,7 @@
https://en.wikipedia.org/w/index.php?title=Pangram&oldid=225849300
https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog
-->
<string name="subtitles_example_text">Vând muzică de jazz și haine de bun-gust în New-York și Quebec la preț fix.</string>
<string name="subtitles_example_text">Vulpea maro iute sare peste câinele leneș</string>
<string name="recommended">Recomandări</string>
<string name="player_loaded_subtitles" formatted="true">A fost încărcat %s</string>
<string name="player_load_subtitles">Încărcați din fișier</string>
@ -343,7 +343,7 @@
<string name="actor_background">Secundar</string>
<string name="home_source">Sursa</string>
<string name="home_random">Aleatoriu</string>
<string name="coming_soon">În curând</string>
<string name="coming_soon">În curând</string>
<string name="quality_cam">Cam</string>
<string name="quality_cam_rip">Cam</string>
<string name="quality_cam_hd">Cam</string>
@ -365,7 +365,7 @@
<string name="resolution_and_title">Titlu și rezoluție</string>
<string name="title">Titlu</string>
<string name="resolution">Rezoluție</string>
<string name="error_invalid_id">ID invalid</string>
<string name="error_invalid_id">ID-ul invalid</string>
<string name="error_invalid_data">Date invalide</string>
<string name="error">Eroare</string>
<!--<string name="subtitles_remove_captions">Remove closed captions from subtitles</string>-->
@ -394,14 +394,14 @@
<string name="episode_format" formatted="true">%1$d %2$s</string>
<string name="nsfw">NSFW</string>
<string name="episodes_range">%1$d-%2$d</string>
<string name="android_tv_interface_on_seek_settings">Player Afișat - Căutați Suma</string>
<string name="android_tv_interface_off_seek_settings">Player Ascuns/ă - Căutați Suma</string>
<string name="android_tv_interface_on_seek_settings">Jucătorul afișat - Cantitatea de căutare</string>
<string name="android_tv_interface_off_seek_settings">Jucător ascuns - Sumă de căutare</string>
<string name="livestreams">Livestream-uri</string>
<string name="nsfw_singular">NSFW</string>
<string name="test_failed">Eșuat</string>
<string name="android_tv_interface_on_seek_settings_summary">Suma căutată și utilizată atunci când player-ul este vizibil/ă</string>
<string name="android_tv_interface_on_seek_settings_summary">Suma de căutare utilizată atunci când jucătorul este vizibil</string>
<string name="live_singular">Livestream</string>
<string name="android_tv_interface_off_seek_settings_summary">Cantitatea de căutare utilizată atunci când playerul este ascuns</string>
<string name="android_tv_interface_off_seek_settings_summary">Cantitatea de căutare folosită când jucătorul este ascuns</string>
<string name="watch_quality_pref_data">Calitatea preferată (Date Mobile)</string>
<string name="other_singular">Video</string>
<string name="apk_installer_settings">Instalator APK</string>
@ -426,11 +426,11 @@
<string name="subscription_deleted">Dezabonat de la %s</string>
<string name="plugins_not_downloaded" formatted="true">Nu s-a descărcat: %d</string>
<string name="view_public_repositories_button">Vezi depozite din comunitate</string>
<string name="apk_installer_package_installer">PackageInstaller (Instalare a pachetelor)</string>
<string name="apk_installer_package_installer">Instalator de pachete</string>
<string name="extension_status">Stare</string>
<string name="plugin_load_fail" formatted="true">Nu se poate încărca %s</string>
<string name="audio_tracks">Piste audio</string>
<string name="referer">Referent</string>
<string name="referer">Referer (opțional)</string>
<string name="skip_type_op">Deschidere</string>
<string name="pref_category_extensions">Extensii</string>
<string name="pref_category_player_layout">Layout</string>
@ -440,7 +440,8 @@
<string name="extension_authors">Autori</string>
<string name="crash_reporting_title">Raportarea accidentelor</string>
<string name="add_repository">Adaugă depozit</string>
<string name="empty_library_no_accounts_message">Se pare că biblioteca ta este goală :( Conectează-te la un cont de bibliotecă sau adaugă emisiuni în biblioteca ta locală.</string>
<string name="empty_library_no_accounts_message">Biblioteca ta este goală :(
\nConectați-vă într-un cont de bibliotecă sau adăugați emisiuni la biblioteca locală.</string>
<string name="subtitles_remove_captions">Eliminați subtitrările închise din subtitrări</string>
<string name="setup_extensions_subtext">Descărcați lista de site-uri pe care doriți să le utilizați</string>
<string name="sort_rating_desc">Evaluare (Ridicat la Scăzut)</string>
@ -453,7 +454,7 @@
<string name="safe_mode_crash_info">Vezi informații despre accident</string>
<string name="open_with">Deschideți cu</string>
<string name="subtitles_remove_bloat">Eliminați bloat din subtitrări</string>
<string name="plugins_updated" formatted="true">Actualizat %d plugin-uri</string>
<string name="plugins_updated" formatted="true">S-au actualizat %d plugin-uri</string>
<string name="sort_rating_asc">Evaluare (Scăzut la Ridicat)</string>
<string name="setup_done">Terminat</string>
<string name="extension_version">Versiune</string>
@ -472,11 +473,11 @@
<string name="sort">Sortează</string>
<string name="select_library">Selectați Biblioteca</string>
<string name="subtitles_filter_lang">Filtrați în funcție de limba media preferată</string>
<string name="subscription_episode_released">Episodul %d lansat!</string>
<string name="subscription_episode_released">Episodul %d a fost lansat!</string>
<string name="pref_category_android_tv">Android TV</string>
<string name="player_settings_play_in_vlc">VLC</string>
<string name="provider_languages_tip">Urmăriți videoclipuri în aceste limbi</string>
<string name="revert">Reveniți</string>
<string name="revert">Revenire</string>
<string name="pref_category_actions">Acțiuni</string>
<string name="sort_alphabetical_z">Alfabetic (Z la A)</string>
<string name="error_invalid_url">URL invalid</string>
@ -492,7 +493,7 @@
\nNu încarcă nicio extensie la pornire până când fișierul nu este eliminat.</string>
<string name="action_remove_from_watched">Scoateți de la urmărit</string>
<string name="sort_updated_old">Actualizat (Vechi la Nou)</string>
<string name="apply_on_restart">Aplică la repornire</string>
<string name="apply_on_restart">Reporniți aplicația pentru a vedea schimbările.</string>
<string name="extension_description">Descriere</string>
<string name="plugin_downloaded">Plugin Descărcat</string>
<string name="confirm_exit_dialog">Sunteți sigur că vreți să ieșiți\?</string>
@ -508,13 +509,13 @@
<string name="update_notification_failed">Nu s-a putut instala noua versiune a aplicației</string>
<string name="tracks">Piste</string>
<string name="restart">Repornește</string>
<string name="enable_nsfw_on_providers">Activează NSFW la furnizori suportate</string>
<string name="enable_nsfw_on_providers">Activează conținutul pentru adulți pe extensiile suportate</string>
<string name="jsdelivr_enabled">Nu s-a putut ajunge la GitHub. Se activează proxy-ul jsDelivr…</string>
<string name="jsdelivr_proxy">Proxy GitHub</string>
<string name="jsdelivr_proxy_summary">Depășește blocarea GitHub folosind jsDelivr. Poate cauza întârzieri de câteva zile la actualizări.</string>
<string name="jsdelivr_proxy_summary">Ocolește blocarea URL-urilor brute de pe GitHub folosind jsDelivr. Poate cauza întârzieri în actualizări cu câteva zile.</string>
<string name="next">Următorul</string>
<string name="batch_download_nothing_to_download_format" formatted="true">Toate %s deja descărcate</string>
<string name="plugins_downloaded" formatted="true">S-a descărcat: %d</string>
<string name="plugins_downloaded" formatted="true">Descărcat: %d</string>
<string name="plugins_disabled" formatted="true">Dezactivat: %d</string>
<string name="uppercase_all_subtitles">Toate subtitrările cu majuscule</string>
<string name="download_all_plugins_from_repo">Descărcați toate plugin-urile din acest depozit\?</string>
@ -532,7 +533,7 @@
<string name="extension_types">Suportat</string>
<string name="hls_playlist">Playlist HLS</string>
<string name="video_tracks">Piste video</string>
<string name="enable_skip_op_from_database_des">Arată Afișați pop-up-uri de săritură pentru deschidere/încheiere</string>
<string name="enable_skip_op_from_database_des">Afișează opțiunea de omitere a ferestrelor pop-up pentru început/sfârșit</string>
<string name="all_languages_preference">Toate limbile</string>
<string name="skip_type_mixed_op">Deschidere mixat</string>
<string name="skip_type_creddits">Credite</string>
@ -593,4 +594,45 @@
<string name="speed_setting_summary">Adaugă o opțiune de viteză la player</string>
<string name="favorites_list_name">Favoriți/te</string>
<string name="backup_frequency">Frecvența de backup</string>
</resources>
<string name="repo_copy_label">Numele și URL-ul depozitului</string>
<string name="toast_copied">Copiat!</string>
<string name="clipboard_permission_error">Eroare la accesarea Clipboard-ului. Te rog să încerci din nou.</string>
<string name="clipboard_unknown_error">Eroare la copiere. Te rog să copiezi logcat-ul și să contactezi suportul aplicației.</string>
<string name="pin_error_incorrect">PIN incorect. Te rog să încerci din nou.</string>
<string name="pin">PIN</string>
<string name="select_an_account">Selectați un cont</string>
<string name="manage_accounts">Administrați conturile</string>
<string name="edit_account">Editare cont</string>
<string name="logged_account" formatted="true">Conectat ca %s</string>
<string name="rotate_video">Rotire</string>
<string name="unfavorite">Nefavorite</string>
<string name="biometric_authentication_title">Deblocați CloudStream</string>
<string name="skip_startup_account_select_pref">Omiteți selecția contului la pornire</string>
<string name="links_reloaded_toast">Linkuri reîncărcate</string>
<string name="use_default_account">Utilizați contul implicit</string>
<string name="test_extensions_summary">Această testare este destinată doar dezvoltatorilor și nu verifică sau respinge funcționarea oricărei extensii.</string>
<string name="battery_dialog_message">Pentru a asigura descărcările neîntrerupte și notificările pentru serialele TV la care ești abonat, CloudStream are nevoie de permisiunea de a rula în fundal. Apăsând pe OK, vei fi direcționat către informațiile aplicației. Acolo, derulează la \"App battery usage\" și setează utilizarea bateriei la \"Unrestricted\". Te rog să reții, această permisiune nu înseamnă că CS3 îți va consuma bateria. Va opera în fundal doar când este necesar, cum ar fi atunci când primește notificări sau descarcă videoclipuri din extensiile oficiale. Dacă alegi să anulezi, poți ajusta această setare mai târziu în \"General Settings\".</string>
<string name="pin_error_length">PIN-ul trebuie să fie format din 4 caractere</string>
<string name="rotate_video_desc">Afișează un buton de comutare pentru orientarea ecranului</string>
<string name="password_pin_authentication_title">Autentificare parolă/PIN</string>
<string name="biometric_unsupported">Autentificarea biometrică nu este acceptată pe acest dispozitiv</string>
<string name="biometric_setting_summary">Deblocați aplicația cu amprentă digitală, ID facial, PIN, model și parolă.</string>
<string name="biometric_prompt_description">Acest ecran a fost închis din cauza mai multor încercări eșuate. Vă rugăm să reporniți aplicația.</string>
<string name="biometric_warning">Datele dvs. CloudStream au fost salvate acum. Deși posibilitatea acestui lucru este foarte mică, toate dispozitivele se pot comporta diferit. În cazul rar, în care nu aveți acces la aplicație, ștergeți complet datele aplicației și restaurați dintr-o copie de rezervă. Ne pare foarte rău pentru orice neplăcere care decurge din aceasta.</string>
<string name="ok">Ok</string>
<string name="battery_dialog_title">Dezactivează optimizarea bateriei</string>
<string name="app_unrestricted_toast">Utilizarea bateriei pentru aplicație este deja setată ca fiind nelimitată</string>
<string name="app_info_intent_error">Imposibil de deschis informațiile aplicației CloudStream.</string>
<string name="favorite">Favorite</string>
<string name="music_singlar">Muzică</string>
<string name="audio_book_singular">Carte audio</string>
<string name="custom_media_singluar">Media</string>
<string name="result_search_tooltip">Caută în alte extensii</string>
<string name="test_extensions">Testează toate extensiile</string>
<string name="auto_rotate_video">Rotire automată</string>
<string name="reset_btn">Resetați</string>
<string name="auto_rotate_video_desc">Activați comutarea automată a orientării ecranului pe baza orientării video</string>
<string name="biometric_setting">Blocare cu biometrie</string>
<string name="resume_remaining" formatted="true">%s
\nrămase</string>
</resources>

View File

@ -616,4 +616,5 @@
<string name="biometric_prompt_description">Этот экран был закрыт из-за нескольких неудачных попыток. Пожалуйста, перезапустите приложение.</string>
<string name="biometric_warning">Ваши данные в CloudStream были скопированы. Хотя вероятность этого очень мала, все устройства могут вести себя по-разному. В редких случаях, когда доступ к приложению заблокирован, полностью удалите данные приложения и восстановите их из резервной копии. Мы приносим свои извинения за любые неудобства, связанные с этим.</string>
<string name="battery_dialog_message">Чтобы обеспечить бесперебойную загрузку и получение уведомлений о телепередачах, на которые вы подписаны, CloudStream необходимо разрешение на запуск в фоновом режиме. Нажав OK, вы перейдете к информации о приложении. Там перейдите к разделу 𝘼𝙥𝙥 𝙗𝙖𝙩𝙩𝙚𝙧𝙮 𝙪𝙨𝙖𝙜𝙚 и установите значение \"Использование батареи\" 𝙐𝙣𝙧𝙚𝙨𝙩𝙧𝙞𝙘𝙩𝙚𝙙. Пожалуйста, обратите внимание, что это разрешение не означает, что CS3 разрядит вашу батарею. Он будет работать в фоновом режиме только при необходимости, например, при получении уведомлений или загрузке видео с официальных расширений. Если вы решите отменить, вы можете изменить эту настройку позже в 𝙂𝙚𝙣𝙚𝙧𝙖𝙡 𝙎𝙚𝙩𝙩𝙞𝙣𝙜𝙨.</string>
</resources>
<string name="reset_btn">Сброс</string>
</resources>

View File

@ -664,4 +664,5 @@
<string name="custom_media_singluar">Medya</string>
<string name="battery_dialog_message">Abone olunan TV şovları için kesintisiz indirmeleri ve bildirimleri sağlamak için, CloudStream\'in arka planda çalışmasına izin vermeniz gerekmektedir. Tamam\'a basarak Uygulama bilgilerine yönlendirileceksiniz. Orada, 𝘼𝙥𝙥 𝙗𝙖𝙩𝙩𝙚𝙧𝙮 𝙪𝙨𝙖𝙜𝙚 (Uygulama pil kullanımı) kısmına gidip pil kullanımını 𝙐𝙣𝙧𝙚𝙨𝙩𝙧𝙞𝙘𝙩𝙚𝙙 (Sınırsız) olarak ayarlayın. Bu iznin CS3\'ün pilinizi hızlıca tüketeceği anlamına gelmediğini lütfen unutmayın. Sadece gerektiğinde, resmi eklentilerden bildirim almak veya videoları indirmek gibi durumlarda arka planda çalışacaktır. İptal etmeyi seçerseniz, bu ayarı daha sonra 𝙂𝙚𝙣𝙚𝙧𝙖𝙡 𝙎𝙚𝙩𝙩𝙞𝙣𝙜𝙨 (Genel Ayarlar) bölümünden ayarlayabilirsiniz.</string>
<string name="app_unrestricted_toast">Uygulama pil kullanımı zaten sınırsız olarak ayarlanmış</string>
</resources>
<string name="reset_btn">Sıfırla</string>
</resources>

View File

@ -617,4 +617,5 @@
<string name="audio_book_singular">Аудіо книга</string>
<string name="music_singlar">Музика</string>
<string name="custom_media_singluar">Медіа</string>
</resources>
<string name="reset_btn">Скинути</string>
</resources>

View File

@ -63,7 +63,7 @@
<string name="download_failed">Tải lỗi</string>
<string name="download_canceled">Đã hủy</string>
<string name="download_done">Tải thành công</string>
<string name="stream">Trực tiếp</string>
<string name="stream">Luồng mạng</string>
<string name="error_loading_links_toast">Đã có lỗi xảy ra</string>
<string name="download_storage_text">Bộ nhớ trong</string>
<string name="app_dubbed_text">Lồng Tiếng</string>
@ -196,7 +196,7 @@
\nBạn có chắc chắn muốn xóa\?</string>
<string name="resume_time_left" formatted="true">%dm
\ncòn lại</string>
<string name="status_ongoing">Đang Chiếu</string>
<string name="status_ongoing">Đang chiếu</string>
<string name="status_completed">Hoàn Thành</string>
<string name="status">Trạng Thái</string>
<string name="year">Năm</string>
@ -287,10 +287,10 @@
<string name="category_general">Tổng quan</string>
<string name="random_button_settings">Nút ngẫu nhiên</string>
<string name="random_button_settings_desc">Hiện nút ngẫu nhiên trên Trang chủ và Thư viện</string>
<string name="provider_lang_settings">Ngôn ngữ nguồn phim</string>
<string name="provider_lang_settings">Ngôn ngữ mở rộng</string>
<string name="app_layout">Giao diện App</string>
<string name="preferred_media_settings">Thể loại ưu tiên</string>
<string name="enable_nsfw_on_providers">Kích hoạt NSFW với nguồn phim hỗ trợ</string>
<string name="enable_nsfw_on_providers">Kích hoạt NSFW trên các tiện ích mở rộng được hỗ trợ</string>
<string name="subtitles_encoding">Mã hoá phụ đề</string>
<string name="category_providers">Nguồn phim</string>
<string name="category_ui">Giao diện</string>
@ -622,11 +622,13 @@
\ncòn lại</string>
<string name="biometric_unsupported">Xác thực bằng sinh trắc học không được hỗ trợ trên thiết bị này</string>
<string name="password_pin_authentication_title">Mật khẩu/PIN Xác thực</string>
<string name="biometric_warning">Dữ liệu CloudStream của bạn đã được sao lưu. Dù khả năng rất thấp, nhưng mỗi thiết bị có thể hoạt động khác nhau. Trong trường hợp thiểu số, bạn sẽ bị khóa khỏi ứng dụng, hãy xóa dữ liệu ứng dụng và khởi tạo từ bản sao lưu. Chúng tôi rất xin lỗi vì bất kỳ sự bất tiện nào.</string>
<string name="biometric_warning">Dữ liệu CloudStream của bạn hiện đã được sao lưu. Mặc dù khả năng xảy ra điều này là rất thấp nhưng tất cả các thiết bị đều có thể hoạt động khác nhau. Trong trường hợp hiếm gặp là bạn bị khóa truy cập ứng dụng, hãy xóa hoàn toàn dữ liệu ứng dụng và khôi phục từ bản sao lưu. Chúng tôi rất xin lỗi vì bất kỳ sự bất tiện nào phát sinh từ việc này.</string>
<string name="biometric_setting_summary">Mở khóa ứng dụng bằng Vân tay, Khuôn mặt, PIN, Hình vẽ và Mật khẩu.</string>
<string name="biometric_prompt_description">Màn hình bị đóng sau nhiều lần thử thất bại. Hãy khởi động lại ứng dụng.</string>
<string name="test_extensions_summary">Phần kiểm thử này chỉ dành cho nhà phát triển và không xác nhận hay từ chối việc hoạt động của nguồn phim.</string>
<string name="app_unrestricted_toast">Chế độ tiêu thụ pin của ứng dụng đã được đặt ở mức không giới hạn</string>
<string name="custom_media_singluar">… 
\n———</string>
</resources>
<string name="custom_media_singluar">Phương tiện</string>
<string name="repo_copy_label">Tên và URL kho lưu trữ</string>
<string name="reset_btn">Đặt lại</string>
<string name="battery_dialog_message">Để đảm bảo quá trình tải xuống và thông báo cho các chương trình truyền hình đã đăng ký không bị gián đoạn, CloudStream cần có quyền chạy ở chế độ nền. Bằng cách nhấn OK, bạn sẽ được chuyển đến Thông tin ứng dụng. Ở đó, cuộn đến 𝘼𝙥𝙥 𝙗𝙖𝙩𝙩𝙚𝙧𝙮 𝙪𝙨𝙖𝙜𝙚 và đặt mức sử dụng pin thành 𝙐𝙣𝙧𝙚𝙨𝙩𝙧𝙞𝙘𝙩𝙚𝙙. Xin lưu ý, quyền này không có nghĩa là CS3 sẽ làm hao pin của bạn. Nó sẽ chỉ hoạt động ở chế độ nền khi cần thiết, chẳng hạn như khi nhận được thông báo hoặc tải xuống video từ các tiện ích mở rộng chính thức. Nếu bạn chọn hủy, bạn có thể điều chỉnh cài đặt này sau trong 𝙂𝙚𝙣𝙚𝙧𝙖𝙡 𝙎𝙚𝙩𝙩𝙞𝙣𝙜𝙨.</string>
</resources>

View File

@ -659,4 +659,12 @@
<string name="music_singlar">音乐</string>
<string name="app_info_intent_error">无法打开 CloudStream 的应用程序信息。</string>
<string name="biometric_setting_summary">使用指纹、面部 ID、PIN 码、图案和密码解锁应用程序。</string>
</resources>
<string name="test_extensions_summary">此测试仅适用于开发人员,不会验证或否认任何扩展的工作。</string>
<string name="battery_dialog_message">为了确保订阅电视节目的不间断下载和通知CloudStream 需要获得在后台运行的权限。 点击“确定”,您将被定向到“应用程序信息”。 在那里,滑动至 𝘼𝙥𝙥 𝙗𝙖𝙩𝙩𝙚𝙧𝙮 𝙪𝙨𝙖𝙜𝙚 并将电池用量设置为 𝙐𝙣𝙧𝙚𝙨𝙩𝙧𝙞𝙘𝙩𝙚𝙙。 请注意,此权限并不意味着 CS3 会耗尽您的电池。 它只会在必要时在后台运行,例如收到通知或从官方扩展下载视频时。 如果您选择取消,您可以稍后在 𝙂𝙚𝙣𝙚𝙧𝙖𝙡 𝙎𝙚𝙩𝙩𝙞𝙣𝙜𝙨 中调整此设置。</string>
<string name="biometric_warning">您的CloudStream数据现已备份。 尽管发生这种情况的可能性非常低,但不同设备的行为都会有所不同。 在极少数情况下,您可能会被锁定而无法访问该应用程序,请完全清除应用程序数据并从备份中恢复。 对于由此造成的任何不便,我们深表歉意。</string>
<string name="repo_copy_label">存储库名称和 URL</string>
<string name="clipboard_unknown_error">复制错误,请复制 logcat 并联系应用程序支持。</string>
<string name="ok">好的</string>
<string name="reset_btn">重置</string>
<string name="biometric_prompt_description">由于多次尝试失败,此屏幕已关闭。 请重新启动应用程序。</string>
</resources>

View File

@ -292,6 +292,7 @@
<string name="episodes">Episodes</string>
<string name="episodes_range">%1$d-%2$d</string>
<string name="episode_format" formatted="true">%1$d %2$s</string>
<string name="episode_upcoming_format" formatted="true">Upcoming in %s</string>
<string name="season_short">S</string>
<string name="episode_short">E</string>
<string name="no_episodes_found">No Episodes found</string>