diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/ExtrasService.kt b/app/src/main/java/com/github/damontecres/wholphin/services/ExtrasService.kt index e7770ff5..381032e1 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/ExtrasService.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/ExtrasService.kt @@ -5,6 +5,8 @@ import com.github.damontecres.wholphin.R import com.github.damontecres.wholphin.data.ExtrasItem import com.github.damontecres.wholphin.data.model.BaseItem import com.github.damontecres.wholphin.data.pluralRes +import com.github.damontecres.wholphin.data.stringRes +import com.github.damontecres.wholphin.ui.isNotNullOrBlank import dagger.hilt.android.qualifiers.ApplicationContext import org.jellyfin.sdk.api.client.ApiClient import org.jellyfin.sdk.api.client.extensions.userLibraryApi @@ -48,9 +50,10 @@ class ExtrasService if (items.size == 1) { val item = items.first() val title = - item.title ?: context.resources.getQuantityString(type.pluralRes, 1) + item.title.takeIf { it.isNotNullOrBlank() } + ?: context.resources.getQuantityString(type.pluralRes, 1) val subtitle = - if (item.title == null) { + if (item.title.isNotNullOrBlank()) { context.resources.getQuantityString(type.pluralRes, 1) } else { null @@ -64,8 +67,7 @@ class ExtrasService imageUrl = imageUrlService.getItemImageUrl(item, ImageType.PRIMARY), ) } else if (items.size > 1) { - val title = - context.resources.getQuantityString(type.pluralRes, items.size) + val title = context.resources.getString(type.stringRes) val subtitle = context.resources.getQuantityString( R.plurals.items, diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index fa8f0243..6db20221 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -31,7 +31,7 @@ المخرج مُعطّل الخوادم المكتشفة - + تنزيل وتحديث تنزيل… مُفعّل ينتهي عند %1$s @@ -66,6 +66,7 @@ المزيد الأفلام + الأفلام الاسم التالي @@ -80,6 +81,7 @@ المسار الأشخاص + الأشخاص عدد مرات التشغيل تشغيل من هنا @@ -104,7 +106,7 @@ إعادة تشغيل استئناف حفظ - + بحث وتنزيل بحث جارٍ البحث… البحث الصوتي @@ -151,32 +153,41 @@ إظهار الساعة الكواليس + الكواليس التصنيف العمري مدة العرض إضافات أخرى + أخرى الأغاني الرئيسية + الأغاني الرئيسية مقاطع + مقاطع مشاهد محذوفة + مشاهد محذوفة مقابلات + مقابلات مشاهد + مشاهد مقاطع خاصة + مقاطع خاصة مقاطع قصيرة + مقاطع قصيرة diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index bd688e39..97223729 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -63,6 +63,7 @@ Více Filmy + Filmy Jméno Další v pořadí @@ -77,6 +78,7 @@ Cesta Lidé + Lidé Počet přehrání Přehrát odtud @@ -145,6 +147,7 @@ Nejlépe hodnocené Nezhlédnuté Upoutávky + Upoutávky Harmonogram nahrávání Televizní program @@ -152,6 +155,7 @@ Sezóny Seriály + Seriály Prostředí Neznámý @@ -180,30 +184,39 @@ Doplňky Jiný + Jiný V zákulisí + V zákulisí Znělky + Znělky Tématická videa + Tématická videa Klipy + Klipy Vymazané scény + Vymazané scény Rozhovory + Rozhovory Scény + Scény Krátkometrážní filmy + Krátkometrážní filmy %d hodina @@ -385,15 +398,17 @@ Žádost ve 4K Softwarové dekódování AV1 Komerční - + Download & Update Bezprostředně - + Search & Download Trvání Vzorky + Vzorky Krátká videa + Krátká videa %s Stažen @@ -401,11 +416,11 @@ %s Stažení %s Stažení - + Combine Continue Watching & Next Up Direct play ASS titulky Direct play PGS titulky Přehrávání Backendu - + Cast & Crew Anamorfní Prokládané Color code programs @@ -515,12 +530,12 @@ Náhled Obrázek s dynamickou barvou Pouze obrázek - + Zadejte adresu a klíč API Klíč API Přihlásit se k serveru Seerr Uživatel Jellyfin Lokální uživatel - + Hledat a stáhnout titulky Nenalezeny žádné vzdálené titulky Současnost diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 53ad50cc..c13cadc6 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -30,7 +30,7 @@ Instruktør Deaktiveret Opdagede servere - + Download og opdater Downloader… Aktiveret Slutter %1$s @@ -65,6 +65,7 @@ Mere Film + Film Navn Næste @@ -79,6 +80,7 @@ Filsti Personer + Personer Antal afspilninger Afspil herfra @@ -103,7 +105,7 @@ Genstart Fortsæt Gem - + Søg og download Søg Søger… Stemmesøgning @@ -148,6 +150,7 @@ Bedst bedømte usete Trailere + Trailere DVR-plan TV-guide @@ -155,6 +158,7 @@ Sæsoner TV-serier + TV-serier Grænseflade Ukendt @@ -184,36 +188,47 @@ Ekstra Andet + Andet Bag kulisserne + Bag kulisserne Temasange + Temasange Temavideoer + Temavideoer Klip + Klip Slettede scener + Slettede scener Interview + Interview Scener + Scener Prøver + Prøver Specialindslag + Specialindslag Kortfilm + Kortfilm %s download @@ -244,7 +259,7 @@ Afspil næste automatisk Søg efter opdateringer Gælder kun for tv-serier - + Kombiner Fortsæt med at se & Næste Direkte afspilning af ASS-undertekster Direkte afspilning af PGS-undertekster Mix altid ned til stereo @@ -329,7 +344,7 @@ Aspektforhold Vis detaljer Billedtype - + Skuespillere og filmhold Gæsteroller Kantstørrelse Skift af billedopdateringsfrekvens diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 6ecbebec..a4070eca 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -19,9 +19,11 @@ Παρασκήνιο Θεματικά τραγούδια + Θεματικά τραγούδια Θεματικά βίντεο + Θεματικά βίντεο Επόμενο Ενεργοποιήστε την επανάληψη παρακολούθησης στα \'Επόμενα\' @@ -40,7 +42,7 @@ Σκηνοθέτης Στούντιο SDR - + Ηθοποιοί και Συνεργείο Περισσότερα Σαν Αυτό Επεισόδια #ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ @@ -169,27 +171,35 @@ Επιπρόσθετα Άλλο + Άλλο Παρασκήνια + Παρασκήνια Αποσπάσματα + Αποσπάσματα Διαγραμμένες σκηνές + Διαγραμμένες σκηνές Συνεντεύξεις + Συνεντεύξεις Σκηνές + Σκηνές Δείγματα + Δείγματα Χαρακτηριστικά + Χαρακτηριστικά Αυτόματος έλεγχος για ενημερώσεις Καθυστέρηση πριν την έναρξη του επόμενου diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index fedecb72..64d8c3b1 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -25,7 +25,7 @@ Rendező Letiltva Felfedezett szerverek - + Letöltés & Frissítés Letöltés folyamatban… Engedélyezve Adja meg a szerver IP-t vagy URL-t @@ -95,7 +95,7 @@ Újraindítás Folytatás Mentés - + Keresés & Letöltés Keresés Keresés… Szerver kiválasztása @@ -122,6 +122,7 @@ Legjobbra értékelt, nem megnézett Előzetesek + Előzetesek DVR Időzítés Műsorújság @@ -159,6 +160,7 @@ Színfalak mögött + Színfalak mögött Főcímdal @@ -352,10 +354,10 @@ Felirat késleltetése Háttér stílusa Adja meg a szerver címét - + Folytatás & Következő menü összevonása Lejátszás backend Kép-gyorsítótár mérete (MB) - + Stábtagok Navigációs menü oldalainak váltása fókusznál Lejátszás felülbírálatai Felbontásváltás diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index c2c66df5..50efdb0c 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -31,7 +31,7 @@ Režisors Atslēgts Atrastie serveri - + Lejupielādēt & Atjaunināt Lejupielādē… Ieslēgts Beigsies %1$s @@ -65,6 +65,7 @@ Vairāk Filmas + Filmas Nosaukums Rindā @@ -79,6 +80,7 @@ Ceļš Cilvēki + Cilvēki Skatījumu skaits Atskaņot no šejienes @@ -103,7 +105,7 @@ Restartēt Turpināt Saglabāt - + Meklēt & Lejupielādēt Meklēt Meklē… Balss meklēšana @@ -148,6 +150,7 @@ Augstāk novērtētie un neredzētie Treileri + Treileri Ierakstu plāns Programma @@ -155,6 +158,7 @@ Sezonas TV Šovi + TV Šovi Saskarne Nezināms @@ -184,36 +188,47 @@ Ekstras Cits + Cits Aizkadri + Aizkadri Tituldziesmas + Tituldziesmas Titulvideo + Titulvideo Klipi + Klipi Izgrieztās ainas + Izgrieztās ainas Intervijas + Intervijas Ainas + Ainas Paraugi + Paraugi Īssižeti + Īssižeti Īsie rullīši + Īsie rullīši Izlase %s diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 59793adf..9ddb6c77 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -27,7 +27,7 @@ Regissør Deaktivert Oppdagede servere - + Last ned og oppdater Laster ned… Aktivert Oppgi server-IP eller URL @@ -94,7 +94,7 @@ Start på nytt Fortsett Lagre - + Søk og last ned Søk Søker… Velg server @@ -121,6 +121,7 @@ Best vurderte usette Trailere + Trailere DVR-plan Programoversikt @@ -155,36 +156,47 @@ Ekstramateriale Annet + Annet Bak kulissene + Bak kulissene Temasanger + Temasanger Temavideoer + Temavideoer Klipp + Klipp Slettede scener + Slettede scener Intervjuer + Intervjuer Scener + Scener Smakebiter + Smakebiter Bakomfilmer + Bakomfilmer Kortfilmer + Kortfilmer %s nedlasting @@ -210,7 +222,7 @@ Spill neste automatisk Sjekk etter oppdateringer Gjelder kun TV-serier - + Slå sammen \'Fortsett å se\' og \'Neste\' Direkteavspilling av ASS-undertekster Direkteavspilling av PGS-undertekster Alltid nedmiks til stereo @@ -295,7 +307,7 @@ Bildeforhold Vis detaljer Bildetype - + Skuespillere og medarbeidere Gjesteroller Kantstørrelse Bytting av bildeoppdateringsfrekvens diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml index 5917854a..55e08a8d 100644 --- a/app/src/main/res/values-nn/strings.xml +++ b/app/src/main/res/values-nn/strings.xml @@ -32,7 +32,7 @@ Regissør Deaktivert Funne servarar - + Last ned og oppdater Lastar ned… Aktivert Oppgi servar-IP eller URL @@ -98,7 +98,7 @@ Start på nytt Hald fram Lagre - + Søk og last ned Søk Søker… Vel servar @@ -124,6 +124,7 @@ Best vurderte usette Trailerar + Trailerar DVR-plan Programoversikt @@ -158,36 +159,47 @@ Ekstra Anna + Anna Bak kulissane + Bak kulissane Temasongar + Temasongar Temavideoar + Temavideoar Klipp + Klipp Sletta sener + Sletta sener Intervju + Intervju Scener + Scener Smakebitar + Smakebitar Bakomfilmar + Bakomfilmar Kortfilmar + Kortfilmar Avanserte innstillingar Avansert grensesnitt @@ -197,7 +209,7 @@ Spel neste automatisk Sjekk etter oppdateringar Gjeld berre TV-seriar - + Slå saman \'Hald fram med å sjå\' og \'Neste\' Direkteavspeling av ASS-undertekstar Direkteavspeling av PGS-undertekstar Alltid nedmiks til stereo @@ -281,7 +293,7 @@ Bileteforhold Vis detaljar Bilettype - + Skodespelarar og medarbeidarar Gjesteroller Kantstorleik Byting av bildeoppdateringsfrekvens @@ -507,12 +519,12 @@ Miniatyr Bilete med dynamisk farge Berre bilete - + Skriv inn URL og API-nøkkel API-nøkkel Logg inn på Seerr-tenar Jellyfin-brukar Lokal brukar - + Søk og last ned undertekstar Fann ingen eksterne undertekstar No Bruk skjermsparar i appen diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index c446b6f9..ffee134b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -563,18 +563,19 @@ Mixagem Bastidores + Bastidores %s minuto %s minutos %s minutos - - - - - - + Insira a URL e a chave de API + Procurar e baixar legendas + Baixar e atualizar + Procurar e baixar + Combinar \"Continue Assistindo\" e \"A Seguir\" + Elenco e equipe Álbuns Artistas Músicas diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index dd2e07e2..d6a2d917 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -42,6 +42,7 @@ Nu este disponibilă nicio actualizare Filme + Filme Librărie Mergi la @@ -53,6 +54,7 @@ Marchează ca vizionat Persoane + Persoane Număr de redări Mai mult @@ -84,7 +86,7 @@ Rată de aspect Înregistrare detaliată Tip imagine - + Distribuție și echipă Vedete invitate Nivel Canale @@ -169,7 +171,7 @@ Cheie API Conectează-te la serverul Seerr Servere descoperite - + Descarcă & Actualizează Reclamă Evaluarea comunității A apărut o eroare! Apasă butonul pentru a trimite jurnalele către serverul tău. @@ -211,6 +213,7 @@ Sezoane Seriale TV + Seriale TV Interfață Necunoscut @@ -224,6 +227,7 @@ Pauză cu un click Interviuri + Interviuri Fundal @@ -291,7 +295,7 @@ Cere să sari peste Utilizator Jellyfin Utilizator local - + Caută & descarcă subtitrări Compozitor Scriitor Versuri @@ -313,7 +317,7 @@ Afișează informații de depanare privind redarea Doar subtitrări forțate Salvează - + Caută & Descarcă Reia Începe Vorbește pentru a căuta @@ -323,6 +327,7 @@ Cele mai bine cotate, nevizionate Trailere + Trailere Redă cu transcodare Informații media @@ -330,21 +335,26 @@ Adaugă în lista de redare Altele + Altele În spatele scenelor + În spatele scenelor Melodii tematice + Melodii tematice Scene șterse + Scene șterse Evaluare parentală Timp de execuție Extra Clipuri + Clipuri %s favorit Temă aplicație diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b9d4ea6e..d1c93f25 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -27,7 +27,7 @@ Режиссёр %1$s Режиссёр Обнаруженные серверы - + Загрузить и Обновить Скачивание… Введите IP или URL сервера Эпизоды @@ -73,7 +73,7 @@ Убрать из избранного Продолжить Сохранить - + Найти и скачать Найти Поиск… Выберите сервер @@ -134,6 +134,7 @@ За кадром + За кадром Клип @@ -201,7 +202,7 @@ Смотреть прямой эфир Порядок выхода эпизодов Сброс - + Снимались и снимали Приглашённые звёзды Соотношение сторон Показать подробности @@ -273,7 +274,7 @@ Задержка перед воспроизведением следующей серии Автовоспроизведение следующей серии Применяется только к Телешоу - + Объединить Продолжить просмотр и Далее Прямое воспроизведение ASS-субтитров Прямое воспроизведение PGS-субтитров Размер шрифта @@ -297,9 +298,11 @@ Отрывки + Отрывки Дополнительные материалы + Дополнительные материалы Выбор плеера Толщина обводки @@ -308,9 +311,11 @@ Форсированные Саундтреки + Саундтреки Видеоролики + Видеоролики Настроить элементы боковой панели Выберите элементы для показа на панели, остальные элементы будут скрыты @@ -325,6 +330,7 @@ Остановка воспроизведения при бездействии Короткометражки + Короткометражки Конец в %1$s Введите адрес сервера diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index e844ce79..46ec0b68 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -31,7 +31,7 @@ Režiser Onemogočeno Najdeni strežniki - + Prenesi in posodobi Prenos poteka… Omogočeno Konča se ob %1$s @@ -66,6 +66,7 @@ Več Filmi + Filmi Ime Naslednjo @@ -80,6 +81,7 @@ Pot Osebe + Osebe Število predvajanj Predvajaj od tu @@ -104,7 +106,7 @@ Zaženi znova Nadaljuj Shrani - + Poišči in prenesi Išči Iskanje… Glasovno iskanje @@ -148,6 +150,7 @@ Najbolje ocenjeno, neogledano Napovedniki + Napovedniki Program snemalnika Vodnik @@ -155,6 +158,7 @@ Sezone TV oddaje + TV oddaje Vmesnik Neznano @@ -184,36 +188,47 @@ Dodatki Ostalo + Ostalo V zakulisju + V zakulisju Tematske pesmi + Tematske pesmi Tematski videi + Tematski videi Posnetki + Posnetki Izbrisane scene + Izbrisane scene Intervjuji + Intervjuji Prizori + Prizori Vzorci + Vzorci Kratki filmi + Kratki filmi Kratki filmi + Kratki filmi Dodaj %s med priljubljene @@ -261,7 +276,7 @@ Samodejno predvajanje naslednjega Preveri za posodobitve Velja samo za televizijske serije - + Združi »Nadaljuj z ogledom« in »Naslednje« Za podnapise v formatu ASS uporabite knjižnico libass Neposredno predvajanje podnapisov PGS Vedno pretvori v stereo @@ -345,7 +360,7 @@ Razmerje stranic Pokaži podrobnosti Vrsta slike - + Igralska zasedba in ekipa Gostujoči igralci Velikost roba Preklapljanje hitrosti osveževanja @@ -542,12 +557,12 @@ Thumb Slika z dinamičnimi barvami Samo slika - + Vnesite URL in API ključ API ključ Prijava na strežnik Seerr Jellyfin uporabnik Lokalni uporabnik - + Išči in prenesi podnapise Ni bilo najdenih podnapisov danes Uporabite ohranjevalnik zaslona aplikacije diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 01c09b61..a33ef920 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -75,6 +75,7 @@ Topprankade osedda Förhandsvisningar + Förhandsvisningar DVR-schema TV Guide @@ -108,36 +109,47 @@ Extramaterial Annat + Annat Bakom kulisserna + Bakom kulisserna Temalåtar + Temalåtar Temavideor + Temavideor Klipp + Klipp Borttagna scener + Borttagna scener Intervjuer + Intervjuer Scener + Scener Exempel + Exempel Specialinslag + Specialinslag Kortfilmer + Kortfilmer %s nedladdning @@ -233,7 +245,7 @@ Inaktivera om du upplever krascher MPV inställningar ExoPlayer inställningar - + Ladda ner och uppdatera Hoppa över intro Hoppa över eftertexter Hoppa över segment @@ -364,8 +376,8 @@ Fråga om att hoppa över Hoppa över automatiskt Användbart för felsökning - - + Sök och ladda ner undertexter + Sök och ladda ner Mättnad Spara till album Spara till serverns användarprofil @@ -445,7 +457,7 @@ Rutnät Lista Kompakt lista - + Ange URL och API-nyckel Inga externa undertexter hittades Använd skärmsläckare i appen Textförfattare @@ -503,13 +515,13 @@ Inga servrar hittades Endast tvingade undertexter Inga trailrar - + Kombinera Fortsätt titta och kommande avsnitt Bildfrekvens Bitdjup Videoomfång Typ av videoomfång Färgrymd - + Rollista och team Genrer i %1$s Ta bort från Fortsätt titta Lokal diff --git a/app/src/test/java/com/github/damontecres/wholphin/services/ExtrasServiceTest.kt b/app/src/test/java/com/github/damontecres/wholphin/services/ExtrasServiceTest.kt index 5988d5d6..3998201f 100644 --- a/app/src/test/java/com/github/damontecres/wholphin/services/ExtrasServiceTest.kt +++ b/app/src/test/java/com/github/damontecres/wholphin/services/ExtrasServiceTest.kt @@ -2,7 +2,6 @@ package com.github.damontecres.wholphin.services import android.content.Context import android.content.res.Resources -import com.github.damontecres.wholphin.R import com.github.damontecres.wholphin.data.ExtrasItem import com.github.damontecres.wholphin.data.model.BaseItem import com.github.damontecres.wholphin.ui.successResponse @@ -47,12 +46,9 @@ class ExtrasServiceTest { every { mockApiClient.userLibraryApi } returns mockUserLibraryApi every { mockContext.resources } returns mockResources - every { mockResources.getQuantityString(R.plurals.interviews, any()) } returns "Interviews" - every { mockResources.getQuantityString(R.plurals.clips, any()) } returns "Clips" - every { mockResources.getQuantityString(R.plurals.interviews, any(), any()) } returns "Interviews" - every { mockResources.getQuantityString(R.plurals.clips, any(), any()) } returns "Clips" - - every { mockResources.getQuantityString(R.plurals.items, any(), any()) } returns "Items" + every { mockResources.getString(any()) } returns "Interviews" + every { mockResources.getQuantityString(any(), any()) } returns "Interviews" + every { mockResources.getQuantityString(any(), any(), any()) } returns "Interviews" every { mockImageUrlService.getItemImageUrl(any(), ImageType.PRIMARY, any(), any(), any()) } returns "https://localhost/image.jpg"