diff --git a/app/build.gradle b/app/build.gradle index 0257347fc..7b324e878 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { // Version code schema: // "1.2.3-beta4" -> 1020304 // "1.2.3" -> 1020395 - versionCode 2050001 - versionName "2.5.0-beta1" + versionCode 2050003 + versionName "2.5.0-beta3" def commit = "" try { diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java index ad2ed3499..2c3c44b1d 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java @@ -148,32 +148,24 @@ public class ProxyDialog { } private void setProxyConfig() { - String type = (String) spType.getSelectedItem(); - ProxyConfig proxy; - if (Proxy.Type.valueOf(type) == Proxy.Type.DIRECT) { - proxy = ProxyConfig.direct(); - } else { - String host = etHost.getText().toString(); - String port = etPort.getText().toString(); - String username = etUsername.getText().toString(); - if (TextUtils.isEmpty(username)) { - username = null; - } - String password = etPassword.getText().toString(); - if (TextUtils.isEmpty(password)) { - password = null; - } - int portValue = 0; - if (!TextUtils.isEmpty(port)) { - portValue = Integer.parseInt(port); - } - if (Proxy.Type.valueOf(type) == Proxy.Type.SOCKS) { - proxy = ProxyConfig.socks(host, portValue, username, password); - } else { - proxy = ProxyConfig.http(host, portValue, username, password); - } + final String type = (String) spType.getSelectedItem(); + final Proxy.Type typeEnum = Proxy.Type.valueOf(type); + final String host = etHost.getText().toString(); + final String port = etPort.getText().toString(); + + String username = etUsername.getText().toString(); + if (TextUtils.isEmpty(username)) { + username = null; } - UserPreferences.setProxyConfig(proxy); + String password = etPassword.getText().toString(); + if (TextUtils.isEmpty(password)) { + password = null; + } + int portValue = 0; + if (!TextUtils.isEmpty(port)) { + portValue = Integer.parseInt(port); + } + UserPreferences.setProxyConfig(new ProxyConfig(typeEnum, host, portValue, username, password)); } private final TextWatcher requireTestOnChange = new TextWatcher() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index 08daf01e2..74f89a039 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -611,27 +611,22 @@ public class UserPreferences { public static void setProxyConfig(ProxyConfig config) { SharedPreferences.Editor editor = prefs.edit(); editor.putString(PREF_PROXY_TYPE, config.type.name()); - Proxy.Type type = Proxy.Type.valueOf(config.type.name()); - if (type == Proxy.Type.DIRECT) { - editor.apply(); - return; - } - if(TextUtils.isEmpty(config.host)) { + if (TextUtils.isEmpty(config.host)) { editor.remove(PREF_PROXY_HOST); } else { editor.putString(PREF_PROXY_HOST, config.host); } - if(config.port <= 0 || config.port > 65535) { + if (config.port <= 0 || config.port > 65535) { editor.remove(PREF_PROXY_PORT); } else { editor.putInt(PREF_PROXY_PORT, config.port); } - if(TextUtils.isEmpty(config.username)) { + if (TextUtils.isEmpty(config.username)) { editor.remove(PREF_PROXY_USER); } else { editor.putString(PREF_PROXY_USER, config.username); } - if(TextUtils.isEmpty(config.password)) { + if (TextUtils.isEmpty(config.password)) { editor.remove(PREF_PROXY_PASSWORD); } else { editor.putString(PREF_PROXY_PASSWORD, config.password); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java index bca3792b0..b26c57963 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java @@ -118,7 +118,7 @@ public class AntennapodHttpClient { builder.followSslRedirects(true); ProxyConfig config = UserPreferences.getProxyConfig(); - if (config.type != Proxy.Type.DIRECT) { + if (config.type != Proxy.Type.DIRECT && !TextUtils.isEmpty(config.host)) { int port = config.port > 0 ? config.port : ProxyConfig.DEFAULT_PORT; SocketAddress address = InetSocketAddress.createUnresolved(config.host, port); builder.proxy(new Proxy(config.type, address)); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index 982800b1c..1973c626b 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -7,7 +7,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.os.Binder; import android.os.Build; import android.os.IBinder; import android.text.TextUtils; @@ -88,18 +87,11 @@ public class DownloadService extends Service { private ScheduledFuture downloadPostFuture; private final ScheduledThreadPoolExecutor notificationUpdateExecutor; private static DownloaderFactory downloaderFactory = new DefaultDownloaderFactory(); - private final IBinder binder = new LocalBinder(); private ConnectionStateMonitor connectionMonitor; - private class LocalBinder extends Binder { - public DownloadService getService() { - return DownloadService.this; - } - } - @Override public IBinder onBind(Intent intent) { - return binder; + return null; } public DownloadService() { @@ -264,9 +256,9 @@ public class DownloadService extends Service { EventBus.getDefault().postSticky(DownloadEvent.refresh(Collections.emptyList())); cancelNotificationUpdater(); - downloadHandleExecutor.shutdown(); - downloadEnqueueExecutor.shutdown(); - notificationUpdateExecutor.shutdown(); + downloadEnqueueExecutor.shutdownNow(); + downloadHandleExecutor.shutdownNow(); + notificationUpdateExecutor.shutdownNow(); if (downloadPostFuture != null) { downloadPostFuture.cancel(true); } @@ -401,6 +393,9 @@ public class DownloadService extends Service { @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "cancelDownloadReceiver: " + intent.getAction()); + if (!isRunning) { + return; + } if (TextUtils.equals(intent.getAction(), ACTION_CANCEL_DOWNLOAD)) { String url = intent.getStringExtra(EXTRA_DOWNLOAD_URL); if (url == null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java index 0d59a1b7e..797001e3a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java @@ -14,18 +14,6 @@ public class ProxyConfig { public static final int DEFAULT_PORT = 8080; - public static ProxyConfig direct() { - return new ProxyConfig(Proxy.Type.DIRECT, null, 0, null, null); - } - - public static ProxyConfig http(String host, int port, String username, String password) { - return new ProxyConfig(Proxy.Type.HTTP, host, port, username, password); - } - - public static ProxyConfig socks(String host, int port, String username, String password) { - return new ProxyConfig(Proxy.Type.SOCKS, host, port, username, password); - } - public ProxyConfig(Proxy.Type type, String host, int port, String username, String password) { this.type = type; this.host = host; diff --git a/core/src/main/res/values-da/strings.xml b/core/src/main/res/values-da/strings.xml index 42c7410e3..a6fec5b82 100644 --- a/core/src/main/res/values-da/strings.xml +++ b/core/src/main/res/values-da/strings.xml @@ -128,7 +128,7 @@ Notifikationer om afsnit Vis en notifikation når der er nye afsnit - %2$s har en ny udsendelse + %2$s har et nyt afsnit %2$s har %1$d nye afsnit @@ -177,7 +177,7 @@ Hent - Henter %d udsendelse. + Henter %d afsnit. Henter %d afsnit. Afspil @@ -198,24 +198,24 @@ Marker som læst For at springe til positioner, er du nødt til at afspille afsnittet - %d udsendelse markeret som afspillet. + %d afsnit markeret som afspillet. %d afsnit markeret som afspillet. Marker som uafspillet Marker som ulæst - %d udsendelse markeret som uafspillet. + %d afsnit markeret som uafspillet. %d afsnit markeret som uafspillede. Føj til kø Føjet til kø - %d udsendelse føjet til køen. + %d afsnit føjet til køen. %d afsnit føjet til køen. Fjern fra kø - %d udsendelse fjernet fra køen. + %d afsnit fjernet fra køen. %d afsnit fjernet fra køen. Føj til favoritter @@ -505,7 +505,7 @@ Vælg side Slet fjernet fra kø Fjern automatisk afsnit fra køen, når det slettes. - Abonnement filter + Abonnementsfilter Filtrer dine abonnementer i navigationspanelet og på abonnementsoversigten. Abonnementer er filtreret. Tæller større end 0 diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml index 9d3c23025..922154cb5 100644 --- a/core/src/main/res/values-es/strings.xml +++ b/core/src/main/res/values-es/strings.xml @@ -171,6 +171,8 @@ %d suscripción actualizada. %d suscripciones actualizadas. + Editar etiquetas + Renombrar etiqueta Descargar diff --git a/core/src/main/res/values-fi/strings.xml b/core/src/main/res/values-fi/strings.xml index bb8a1bcc7..28d17bfdc 100644 --- a/core/src/main/res/values-fi/strings.xml +++ b/core/src/main/res/values-fi/strings.xml @@ -39,6 +39,7 @@ Jaksojen toistoaika yhteensä: Tilastointitila Laske oikeasti soitettu aikamäärä. Uudelleensoitto lasketaan kahdesti, mutta soitetuksi merkattua ei lasketa. + Laske yhteen kaikki soitetuksi merkityt jaksot Huomio: Soittonopeutta ei lasketa mukaan. Nollaa tilastotiedot Tämä poistaa kaikkien jaksojen soiton keston historian. Haluatko varmasti jatkaa? @@ -170,6 +171,9 @@ %d tilaus päivitetty. %d tilausta päivitetty. + Muokkaa tunnisteita + Nimeä tunniste uudelleen + Jaksojen lataaminen mobiilidatayhteydellä on poistettu käytöstä asetuksista.\n\nHaluatko silti päivittää kaikki podcastit mobiilidatan kautta? Lataa @@ -182,6 +186,10 @@ Poista Ei voida poistaa tiedostoa. Laitteen uudelleenkäynnistys saattaa auttaa. Poista jakso + + 1 ladattu jakso poistettu. + %d ladattua jaksoa poistettu. + Poista \"uusi\"-lippu Poistettiin \"uusi\"-lippu Merkitse soitetuksi @@ -239,6 +247,8 @@ Podcastin palvelin ei vastaa. Lataus peruutettu Palvelinyhteys katkesi ennen latauksen valmistumista + Toinen laitteesi sovellus (kuten VPN tai mainosten esto) esti latauksen. + Suojattua yhteyttä ei voi muodostaa. Tämä voi tarkoittaa, että jokin muu laitteesi sovellus (kuten VPN tai mainosten esto) esti latauksen tai että palvelimen varmenteissa on jotain vialla. Lataukset valmistuivat virhe(id)en kanssa Automaattiset lataukset valmistuivat IO virhe @@ -248,11 +258,13 @@ %d lataus jäljellä %d latausta jäljellä + Viimeistellään... Ladataan podcastin tietoja Tuntematon otsikko Syöte Mediatiedosto Ei voida näyttää olematonta podcastia + Ehdotetulla podcastilla ei ollut RSS-linkkiä, AntennaPod löysi mahdollisesti vastaavan podcastin Todentaminen vaaditaan Pyytämäsi resurssi vaatii käyttäjätunnuksen ja salasanan Varmista mobiililataus @@ -296,6 +308,8 @@ Vahvista, että haluat tyhjentää jonon KAIKISTA jaksoista Aikaa jäljellä:\u0020 + Esiasetukset + %1$.2fx on jo tallennettu esiasetuksena. Ei jaksoja jonossa Lisää jakso lataamalla se, tai painamalla sitä pitkään ja valitsemalla \"Lisää jonoon\". @@ -319,6 +333,7 @@ Jakson automaattinen poisto, tuonti, vienti Projekti Synkronointi + Synkronoi muiden laitteiden kanssa Automaatio Tietoja Tuo/Vie @@ -333,9 +348,18 @@ Tyhjennä historia Mediasoitin Jakson siivous + Jaksot, jotka voidaan poistaa, jos automaattinen lataus tarvitsee tilaa uusille jaksoille Pysäytä soitto kun kuulokkeet tai bluetooth katkaistaan Jatka soittoa kun kuulokkeet yhdistetään uudestaan Jatka soittoa kun bluetooth yhdistyy uudestaan + Eteenpäin-painike + Mukauta eteenpäin-painikkeen toimintaa + Edellinen-painike + Mukauta edellinen-painikkeen toimintaa + Pikakelaus + Taaksepäin kelaus + Ohita jakso + Aloita jakso alusta Hyppää seuraavaan jonossa kun soitto valmistuu Poista jakso toiston loputtua Automaattinen poisto @@ -350,7 +374,11 @@ Verkko Päivitysaikaväli, latauksen ohjaimet, mobiilidata Päivitä podcastit + Määritä aikaväli tai tietty aika etsiä uusia jaksoja automaattisesti + Aikaväli + Aika Ei koskaan + aikaan %1$s Tunnin välein %d tunnin välein @@ -373,10 +401,10 @@ Valitse teema Aseta navigointihyllyn asiat Vaihda navigointihyllyssä esiintyviä asioita. - Aseta tilauksien järjestys + Aseta tilausten järjestys Vaihda tilauksiesi järjestystä Aseta tilauslaskuri - Vaihda tilauslaskurin näyttämiä tietoja. Tämä vaikuttaa myös tilauksien järjestykseen, jos \"Tilausjärjestys\" on \"Laskuri\". + Vaihda tilauslaskurin näyttämiä tietoja. Tämä vaikuttaa myös tilausten järjestykseen, jos \"Tilausjärjestys\" on \"Laskuri\". Muuta AntennaPodin ulkonäköä Automaattinen lataus Aseta jaksojen automaattinen lataus @@ -388,15 +416,34 @@ Jaksojen välimuisti Ladattuja jaksoja yhteensä välimuistissa tällä laitteella. Automaattinen lataaminen pysäytetään, jos tämä raja ylittyy. Käytä jakson kansikuvaa + Käytä jaksokohtaista kansikuvaa luetteloissa aina, kun se on saatavilla. Jos tätä ei ole valittu, sovellus käyttää aina podcastin kansikuvaa. Näytä jäljellä oleva aika + Näytä jaksojen jäljellä oleva aika, kun tämä on valittuna. Jos tätä ei ole valittu, näytä jaksojen kokonaiskesto. Käytä järjestelmän teemaa Vaalea Tumma Musta (AMOLED valmis) Ei rajoitettu + Kirjaudu ulos + Uloskirjautuminen onnistui Vaihda kirjautumistietoja Vaihda kirjautumistietoja gpodder.net tiliisi. + Synkronoi nyt + Pakota täysi synkronointi + %1$s kohteessa %2$s.

Voit valita synkronointipalveluntarjoajan uudelleen kirjauduttuasi ulos]]>
+ Voit valita useista palveluntarjoajista, joiden kanssa voit synkronoida tilauksesi ja jaksojen toistotilan + Gpoddersync on avoimen lähdekoodin Nextcloud-sovellus, jonka voit helposti asentaa omalle palvelimellesi. Sovellus on riippumaton AntennaPod-projektista. + Myönnä käyttöoikeus avatun verkkoselaimen avulla ja palaa AntennaPodiin. + Valitse synkronointipalveluntarjoaja + Uudelleensynkronoi kaikki tilaukset ja jaksojen tilat + Synkronoi tilausten ja jaksojen tilojen muutokset + Valitse synkronointipalveluntarjoaja + Mukauta muuttuvanopeuksisen toiston käytettävissä olevia nopeuksia Tämän podcastin jaksoja soittamaan aloitettaessa käytettävä nopeus + Automaattinen ohitus + Ohita esittelyt ja loppukiitokset. + Ohita lopusta + Ohita alusta Ohitettiin viimeiset %d sekuntia Ohitettiin ensimmäiset %d sekuntia Mukauta mediatietoja soiton nopeuteen @@ -404,17 +451,27 @@ Seuraava skippaa aikaa Kustomoi sekunnit jonka verran skipataaan kun painat Seuraava nappia. Edellinen skippaa aikaa - kustomoi sekunnit jonka verran hypätään takaisin kun painat Edellinen nappia. + Mukauta sekunnit jonka verran hypätään takaisin kun painat taakse kelaus -painiketta. Korkea ilmoitusprioriteetti Tämä laajentaa ilmoituksen näyttämään soittonapit Pysyvät soittokontrollit Säilytä ilmoitus- ja lukitusnäytön kontrollit kun soitto on pysäytetty. + Aseta kompaktit ilmoituspainikkeet + Muuta toistopainikkeita, kun ilmoitus on tiivistetty. Toisto/tauko-painike on aina mukana. Valitse maksimi %1$d asioita Voit valita vain maksimissaan %1$d asioita. Aseta lukitusruudun taustakuva Aseta lukitusruudun taustakuva nykyisen jakson kuvaan. Tämä kuva näkyy kolmannen osapuolen sovelluksissa. + Jonoon lisäyksen paikka + Lisää jaksot kohteeseen%1$s: + Perään + Eteen + Nykyisen jakson jälkeen Poissa käytöstä + Dokumentaatio ja tuki Käyttäjäfoorumi + Ilmoita virheestä + Avaa virheseuranta Kopioi leikepöydälle Kopioitiin leikepöydälle Kokeellinen @@ -425,6 +482,8 @@ Selainta ei löydetty Lisää ladatut jonoon Lisää ladatut jaksot jonoon + Androidin sisäänrakennettu soitin (vanhentunut) + Sonic Media Player (vanhentunut) ExoPlayer (suositeltu) Vaihda ExoPlayeriin Vaihdettu ExoPlayeriin. @@ -434,26 +493,43 @@ Lopeta soitto Jatka audion soittoa Toiminta - Takaisin napin toiminta - Vaihda Takaisin napin toiminta + Takaisin-painikkeen toiminta + Mukauta takaisin-painikkeen toiminta. Oletus Avaa navigaatiohylly Tuplanaputa sulkemiseen Varmista poistuminen Haluatko varmasti sulkea AntennaPodin? - Napauta Takaisin nappia sulkemiseen + Napauta takaisin-painiketta sulkeaksesi Mene sivulle... Valitse sivu Deletointi poistaa jonosta Poista jakso automaattisesti jonosta kun se deletoidaan. Tilaussuodin + Suodata navigointihyllyn ja tilausnäkymän tilauksiasi. + Tilauksia on suodatettu. + Laskurin arvo suurempi kuin nolla + Automaattisesti ladattu + Ei ladattu automaattisesti + Päivitettynä pidetyt + Päivitettynä pitämättömät + Ilmoitus käytössä + Ilmoitus pois käytöstä + Tämä asetus on podcast-kohtainen. Voit muuttaa sitä avaamalla podcastin-sivun. + Osallistu + Näytä tilauksen nimi + Näytä tilauksen nimi kansikuvan alapuolella Tietoja AntennaPod versio + Osallistujat Kuka tahansa voi auttaa tekemään AntennaPodista paremman - koodilla, käännöksillä, tai avustamalla käyttäjiä foorumilla Kehittäjät Kääntäjät Erityiskiitokset + Tietosuojakäytäntö + Lisenssit + AntennaPod käyttää muita hienoja ohjelmistoja Ei löydetty tuloksia Kirjoita hakulause etsiäksesi @@ -461,7 +537,11 @@ Ei löydetty tuloksia \"%1$s\" Synkronointi aloitettu + Ladataan jaksomuutokset palvelimelle... + Ladataan jaksomuutokset palvelimelta... + Ladataan toistojen tilat palvelimelle... Synkronoidaan tilauksia... + Odotetaan latausten valmistumista... Synkronointi onnistui Synkronointi epäonnistui @@ -469,7 +549,13 @@ Tietokanta OPML HTML + Näytä tilauksesi ystävälle + Siirrä tilauksesi toiseen podcast-sovellukseen + Tuo tilauksesi toisesta podcast-sovelluksesta + Siirrä tilaukset, kuunnellut jaksot ja jono toisella laitteella olevaan AntennaPodiin + Tuo AntennaPod-tietokanta toiselta laitteelta OPML tuonti + Tuo podcastien lista (OPML) Virhe lukiessa OPML dokumenttia: Ei tiedostoa valittuna! Valitse kaikki @@ -478,6 +564,8 @@ HTML vienti Tietokannan vienti Tietokannan tuonti + Tietokannan tuonti korvaa kaikki nykyiset tilauksesi ja toistohistoriasi. Vie nykyinen tietokanta halutessasi varmuuskopioksi ennen jatkamista. Haluatko korvata? + Ole hyvä ja odota... Vientivirhe Vienti onnistunut Viety tiedosto on kirjoitettu:\n\n%1$s @@ -486,12 +574,15 @@ Valitse OK käynnistääksesi AntennaPodin uudelleen Tämä tietokanta on viety AntennaPodin uudemmalla versiolla. Tämänhetkinen versiosi ei vielä osaa käsitellä sitä. Suosikkien vienti + Vie tallennetut suosikit tiedostoon Aseta uniajastin Lopeta uniajastin +%d min Uniajastin Väärä syöte. Ajan tulee olla numero + Ravista nollataksesi + Värise ennen loppua sekuntia minuuttia tuntia @@ -514,14 +605,19 @@ TOP PODCASTIT Etsi gpodder.net Sisäänkirjautuminen + Salasanaa ja tietoja ei salata! Luo tili Käyttäjätunnus Salasana + Gpodder.net on avoimen lähdekoodin podcast-synkronointipalvelu, joka on riippumaton AntennaPod-projektista. Virallinen gpodder.net-palvelin Mukautettu palvelin + Isäntänimi Valitse palvelin Laitteen nimi + AntennaPod laitteella %1$s Olemassaolevat laitteet + Luo laite Onneksi olkoon! Sinun gpodder.net tili on liitetty laitteeseesi. AntennaPod alkaa automaattisesti synkronoimaan gpodder.net tiliisi. Aloita synkrointi nyt gpodder.net synkrointivirhe @@ -539,30 +635,49 @@ Jatka puhelinsoiton jälkeen Tilaa + Tilataan... + Näyte + Pysäytä näyte + Takaisin Kelaa takaisin Hyppää eteen + Nopeuta + Hidasta Video Jaksoa ladataan Jakso on jonossa + Jakso on merkitty suosikiksi Lataa seuraava sivu + Kohta: %1$s + Käytä toiminto Soita kappale Edellinen kappale Seuraava kappale Autentikaatio Vaihda käyttäjätunnus ja salasana tälle podcastille ja sen jaksoille. + Tunnisteet + Muokkaa tämän podcastin tunnisteita tilaustesi järjestelemisen avuksi. Näytä pääluettelossa + {fa-info-circle} Vain kaikissa valituissa tilauksissa esiintyvät tunnisteet näytetään. Muita tunnisteita ei muuteta. Automaattisen latauksen asetukset - Jakson filtterit + Jaksosuodin Lista termeistä joilla valitaan jakso automaattiseen lataukseen Sisällytä Poista + Vähimmäiskesto (minuuttia) Yksittäiset sanat \n\"Monta sanaa\" Pidä päivitettynä + Sisällytä tämä podcast kun kaikki podcastit (auto)päivitetään Automaattinen lataaminen on pysäytetty AntennaPodin asetuksissa + Toistoaika: + Koknaiskesto (arvio): + Toistettujen jaksojen kesto: Jaksoja laitteella: Tilaa käytetty: + Aloitettuja jaksoja/yhteensä: + Kaikki podcastit » Tuodaan tilauksia sovelluksista @@ -570,25 +685,35 @@ Etsi iTunes:sta Etsi Podcastindex.org:sta Etsi fyyd:sta + Edistyneet Lisää Podcast RSS-osoitteesta Selaa gpodder.net Löydä Piilota Valitsit piilottaa ehdotukset. lisää » + Ehdotukset tarjoaa iTunes + Tulosten lähde %1$s Lisää paikallinen kansio Paikallinen kansio Yhdistä paikallinen kansio uudelleen - Filteri + Jos lupa evätään, voit käyttää tätä yhteyden muodostamiseen uudelleen täsmälleen samaan kansioon. Älä valitse toista kansiota. + Tämä virtuaalinen podcast luotiin lisäämällä kansio AntennaPodiin. + Järjestelmän tiedostonhallintaa ei voi käynnistää + Suodin On suosikki + Ei suosikki Ladattu Ei ladattu Jonossa Ei jonossa On media + Ei mediaa Pause + Ei tauotettu Soitettu + Ei toistettu Otsikko (A \u2192 Z) Otsikko (Z \u2192 A) @@ -596,6 +721,8 @@ Aika (Vanha \u2192 New) Kesto (Lyhyt \u2192 Long) Kesto (Pitkä \u2192 Short) + Tiedoston nimi (A \u2192 Ö) + Tiedoston nimi (Ö \u2192 A) A \u2192 Ö Ö \u2192 A Uusi \u2192 vanha @@ -609,6 +736,12 @@ Muistuta minua myöhemmin Miksei, tehdään tämä! + Sisällytä: + Toiston kohta + Jakson nettisivu + Linkki jaksoon + Mediatiedosto + Aloituskohta Audiokontrollit Soittonopeus @@ -631,6 +764,8 @@ Sarakkeiden määrä + Virheet + Uutiset Tarvitaan valinta Näytetään jos toiminta tarvitaan, esimerkiksi jos tarvitset uuden salasanan. Ladataan @@ -638,10 +773,22 @@ Soittaa nyt Sallii soiton kontrollit. Tämä on pääilmoitus, jonka näet kun podcast soitetaan. Lataus epäonnistui + Näytetään, kun lataus tai syötteen päivitys epäonnistuu. + Synkronointi epäonnistui Näytetään, kun gpodder-synkronointi epäonnistuu. Automaattinen lataus valmis Näytetään, kun jaksot on automaattisesti ladattu. Uusi jakso + Näytetään ilmoitusten ollessa käytössä, kun podcastin uusi jakso löytyy + Widget-asetukset + Luo widget + Läpikuultamattomuus + Asetuksen päivitys onnistui. + Näyttää siltä, että suoratoistat paljon. Haluatko, että jaksoluetteloissa näytetään suoratoistopainikkeet? + Näyttää siltä, että lataat paljon. Haluatko, että jaksoluetteloissa näytetään latauspainikkeet? + Tilauksen pikakuvake + Valitse tilaus + Lisää pikakuvake diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml index ffd5efffa..b0ffcb348 100644 --- a/core/src/main/res/values-fr/strings.xml +++ b/core/src/main/res/values-fr/strings.xml @@ -173,7 +173,7 @@
Modifier les tags Renommer le tag - Le téléchargement d\'épisodes par la connexion mobile est désactivé dans les paramètres.\n\nVoulez-vous quand même actualiser les podcasts ? + Le téléchargement d\'épisodes par la connexion mobile est désactivé dans les options.\n\nVoulez-vous quand même actualiser tous les podcasts ? Télécharger @@ -432,7 +432,7 @@ Forcer une synchronisation complète %1$s sur %2$s.

Déconnectez-vous pour pouvoir changer le service de synchronisation]]>
Vous pouvez choisir entre plusieurs services pour synchroniser les abonnements et les statuts des épisodes - Gpoddersync est une application Nextcloud open-source que vous pouvez installer facilement sur votre serveur. L\'application est indépendante du projet AntennaPod. + Gpoddersync est une application Nextcloud et open-source que vous pouvez installer facilement sur votre serveur. L\'application est indépendante du projet AntennaPod. Autoriser l\'accès à l\'aide du navigateur qui a été ouvert puis revenez sur AntennaPod. Choisir le service de synchronisation Resynchroniser tous les abonnements et tous les statuts d\'épisodes @@ -518,7 +518,7 @@ Ce paramètre est spécifique à chaque podcast. Vous pouvez le changer en ouvrant la page du podcast. Contribuer Afficher les noms des podcasts - Affiche le nom des abonnements en dessous des images des podcasts. + Affiche le nom des podcasts en dessous de leur image. À propos Version d\'AntennaPod @@ -541,7 +541,7 @@ Import des statuts des épisodes... Export des statuts de lecture... Synchronisation des abonnements... - En attente de la fin des téléchargements... + En attente que la récupération des données finissent... Synchronisation réussie Echec de la synchronisation @@ -658,7 +658,7 @@ Authentification Identifiant et mot de passe pour ce podcast. Tags - Modifier les tags de ce podcast pour organiser vos abonnements + Modifier les tags de ce podcast pour classer vos abonnements Montrer dans la liste principale {fa-info-circle} Seul les tags communs à tous les abonnements sélectionnés sont montrés. Les autres tags ne seront pas modifiés. Préférence de téléchargement automatique @@ -674,9 +674,9 @@ Temps de lecture : Durée totale (estimation) : Durée des épisodes lus : - Episodes sur l\'appareil : + Episode(s) sur l\'appareil : Espace utilisé : - Episodes commencés / total : + Episodes démarrés / total : Voir les statistiques pour tous les podcasts » Importation des abonnements à partir d\'applications à usage unique... @@ -741,7 +741,7 @@ Lien de la page web de l\'épisode Lien de l\'épisode Fichier de l\'épisode - A partir de + A partir de Contrôles audio Vitesse de lecture diff --git a/core/src/main/res/values-lt/strings.xml b/core/src/main/res/values-lt/strings.xml index f2a60e04f..ffa272965 100644 --- a/core/src/main/res/values-lt/strings.xml +++ b/core/src/main/res/values-lt/strings.xml @@ -185,6 +185,8 @@ %d prenumeratų atnaujinta. %d prenumeratų atnaujinta.
+ Redaguoti žymes + Pervadinti žymę Atsisiųsti @@ -349,6 +351,7 @@ Automatinis epizodų trynimas, importas, eksportas Projektas Sinchronizavimas + Sinchronizuoti su kitais įrenginiais Automatizacija Išsamiau Importas/Eksportas @@ -441,8 +444,17 @@ Tamsi Juoda (paruošta AMOLED) Neribojamas + Atsijungti + Sėkmingai atsijungta Keisti prisijungimo duomenis Keisti prisijungimo prie „gpodder.net“ paskyros duomenis. + Sinchronizuoti dabar + Priverstinis pilnas sinchronizavimas + Galite pasirinkti iš keleto teikėjų prenumeratų ir epizodų atkūrimo būsenai sinchronizuoti + Pasirinkite sinchronizavimo teikėją + Sinchronizuoti visų prenumeratų ir epizodų būsenas iš naujo + Sinchronizuoti prenumeratų ir epizodų būsenų pokyčius + Pasirinkite sinchronizavimo teikėją Derinkite prieinamas garso atkūrimo spartas Atkūrimo sparta, naudojama pradedant šios tinklalaidės epizodų atkūrimą Automatinis praleidimas @@ -522,6 +534,7 @@ Pranešimas išjungtas Šis nustatymas individualus kiekvienai tinklalaidei. Jį pakeisti galite atvėrę tinklalaidės langą. Prisidėti + Rodyti prenumeratos pavadinimą Apie „AntennaPod“ versija @@ -647,6 +660,7 @@ Peržiūra Stabdyti peržiūrą + Atgal Atsukti Persukti į priekį Padidinti spartą @@ -664,12 +678,16 @@ Tapatumo nustatymas Keisti vartotojo vardą ir slaptažodį šiai tinklalaidei ir jos epizodams. + Žymės + Keisti tinklalaidės žymes, kad palengvinti prenumeratų tvarkymą Rodyti pagrindiniame sąraše + {fa-info-circle} Rodomos tik žymės, bendros visoms pažymėtoms prenumeratoms. Kitos žymės liks nepaveiktos. Automatinio atsiuntimo nustatymai Epizodų filtras Žodžių ar frazių sąrašas, kuriuo remiantis sprendžiama, ar epizodas turėtų būti įtrauktas ar išbrauktas iš automatiškai atsiunčiamų epizodų Įtraukti Išbraukti + Minimali trukmė (minutėmis) Pavieniai žodžiai\n\"frazės kabutėse\" Pastoviai atnaujinti Įtraukti šią tinklalaidę į (automatinį) visų tinklalaidžių atnaujinimą @@ -783,4 +801,5 @@ Nustatymas sėkmingai atnaujintas. Panašu, jog dažnai klausotės tiesiogiai. Ar norite, jog epizodų sąraše būtų rodomi tiesioginio klausymosi mygtukai? Panašu, jog dažnai atsisiunčiate epizodus. Ar norite, jog epizodų sąraše būtų rodomi atsiuntimo mygtukai? + Pažymėti prenumeratą diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml index 6e5d5befa..31f030290 100644 --- a/core/src/main/res/values-nl/strings.xml +++ b/core/src/main/res/values-nl/strings.xml @@ -171,6 +171,9 @@ %d aflevering bijgewerkt. %d afleveringen bijgewerkt. + Labels bewerken + Labelnaam wijzigen + Het downloaden van afleveringen via mobiel internet is uitgeschakeld in de instellingen.\n\nWeet je zeker dat je wilt doorgaan? Downloaden @@ -183,6 +186,10 @@ Verwijderen Kan bestand niet verwijderen; start je apparaat opnieuw op. Aflevering verwijderen + + 1 gedownloade aflevering verwijderd. + %d gedownloade afleveringen verwijderd. + \'Nieuw\'-label verwijderen \'Nieuw\'-label is verwijderd Als afgespeeld markeren @@ -240,6 +247,8 @@ De hostserver reageert niet. Download afgebroken De serververbinding werd verbroken voordat de download kon worden afgerond + Het downloaden is geblokkeerd door een andere app (bijv. een vpn of advertentieblokkeerder). + Er kan geen beveiligde verbinding worden opgezet. Mogelijk blokkeert een andere app (bijv. een vpn of advertentieblokkeerder) de download of is er een probleem met de servercertificaten. Downloads afgerond, maar met fout(en) Automatisch downloaden afgerond In-/Uitvoerfout @@ -255,6 +264,7 @@ Feed Mediabestand Er is geen te tonen podcast opgegeven. + De aanbevolen podcast bevat geen rss-link, maar er is een gelijkaardige podcast gevonden Authenticatie vereist De opgevraagde bron vereist een gebruikersnaam en wachtwoord Bevestig downloaden via mobiel internet @@ -323,6 +333,7 @@ Automatisch verwijderen, im- en exporteren Project Synchronisatie + Synchroniseren met andere apparaten Automatische acties Details Importeren/Exporteren @@ -413,8 +424,20 @@ Donker Zwart (geschikt voor AMOLED) Onbeperkt + Uitloggen + Uitgelogd Inloggegevens wijzigen Wijzig de inloggegevens van je gpodder.net-account. + Nu synchroniseren + Volledige synchronisatie afdwingen + %1$s op %2$s.

Na het uitloggen kun je een synchronizatiedienst kiezen]]>
+ Je kunt meerdere diensten kiezen voor het synchroniseren van je abonnementen en afspeelstatussen + Gpoddersyng is een open source Nextcloud-app die je kunt installeren op je eigen server. De app niet betrokken is bij het AntennaPod-project. + Verleen toegang in de geopende webbrowser en keer terug naar AntennaPod. + Kies een synchronisatiedienst + Alle abonnementen en afspeelstatussen opnieuw synchroniseren + Alle gewijzigde abonnementen en afspeelstatussen opnieuw synchroniseren + Kies een synchronisatiedienst Pas de beschikbare snelheden aan voor de variabele afspeelsnelheid De te gebruiken snelheid bij het afspelen van afleveringen in deze podcast Automatisch overslaan @@ -494,6 +517,8 @@ Melding is uitgeschakeld Deze instellingen moet per podcast worden in- of uitgeschakeld. Pas aan door de podcastpagina te openen. Bijdragen + Abonnementsnaam tonen + Toon de abonnementsnaam onder de omslag. Over AntennaPod AntennaPod-versie @@ -516,6 +541,7 @@ Afleveringswijzigingen aan het downloaden… Afspeelstatus aan het uploaden … Abonnementen aan het synchroniseren… + Bezig met wachten op downloads… Synchronisatie afgerond Synchronisatie mislukt @@ -613,6 +639,7 @@ Voorvertoning Stop voorvertoning + Terug Terugspoelen Vooruitspoelen Verhoog snelheid @@ -630,18 +657,26 @@ Authenticatie Gebruikersnaam en wachtwoord wijzigen voor deze podcast en bijbehorende afleveringen. + Labels + Wijzig de labels van deze podcast om je abonnementen te organiseren Tonen op overzicht + {fa-info-circle} Er worden alleen algemene labels getoond. Andere labels worden niet aangepast. Instellingen voor Automatisch downloaden Afleveringsfilter Lijst van zoektermen die bepalen of een aflevering meegenomen of uitgesloten wordt bij automatisch downloaden Meenemen Uitsluiten + Minimale duur (in minuten) Losse woorden \n\"Meerdere tussen aanhalingstekens\" Bijgewerkt houden Deze podcast meenemen bij het (automatisch) verversen van alle podcasts Automatisch downloaden is uitgeschakeld in de AntennaPod-instellingen + Afgespeeld: + Totale duur (geschat): + Duur van beluisterde afleveringen: Afleveringen op apparaat: Gebruikte ruimte: + Aantal gestarte afleveringen: Alle podcasts tonen » Bezig met importeren van abonnementen uit eenmalige apps... @@ -686,6 +721,8 @@ Datum (oud \u2192 nieuw) Lengte (kort \u2192 lang) Lengte (lang \u2192 kort) + Bestandsnaam (A \u2192 Z) + Bestandsnaam (Z \u2192 A) A \u2192 Z Z \u2192 A Nieuw \u2192 Oud @@ -702,7 +739,9 @@ Opnemen: Afspeelpositie Website van aflevering + Link naar aflevering Mediabestand + Beginnen vanaf Audio-instellingen Afspeelsnelheid @@ -749,4 +788,7 @@ De instelling is aangepast. Het lijkt er op dat je vaak streamt. Wil je streamknoppen tonen in de lijst met afleveringen? Het lijkt er op dat je vaak dowloadt. Wil je downloadknoppen tonen in de lijst met afleveringen? + Abonnementssnelkoppeling + Kies een abonnement + Snelkoppeling toevoegen diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml index c4fb8ef1e..646f9cdc2 100644 --- a/core/src/main/res/values-pt/strings.xml +++ b/core/src/main/res/values-pt/strings.xml @@ -171,6 +171,9 @@ %d subscrição atualizada. %d subscrições atualizadas.
+ Editar etiquetas + Renomear etiqueta + A possibilidade de descarregar episódios através de dados móveis está desativada nas definições.\n\nAinda assim deseja recarregar todos os podcasts? Descarregar @@ -183,6 +186,10 @@ Eliminar Episódio não eliminado. Tente reiniciar o dispositivo. Eliminar episódio + + 1 episódio eliminado. + %d episódios eliminados. + Remover a marca \"novo\" A marca \"novo\" foi removida Marcar como reproduzido @@ -240,6 +247,8 @@ O servidor do podcast não respondeu. Descarga cancelada A ligação ao servidor foi terminada antes de terminar a descarga. + A descarga foi bloqueada por outra aplicação do seu dispositivo (uma VPN ou bloqueador de anúncios). + Não foi possível estabelecer uma ligação segura. Isto pode significar que uma aplicação (VPN ou bloqueador de anúncios) bloqueou a descarga ou que existe algum problema com o servidor. Descargas terminadas com erros Descargas automáticas terminadas Erro I/O @@ -255,6 +264,7 @@ Fonte Ficheiro multimédia Não foi possível mostrar o podcast. + O podcast sugerido não tem uma ligação RSS mas AntennaPod encontrou um podcast que pode ser coincidente. Requer autenticação O recurso solicitado requer um utilizador e uma palavra-passe Confirmação de descarga @@ -323,6 +333,7 @@ Eliminação automática, importação e exportação Projeto Sincronização + Sincronizar com outros dispositivos Automatização Detalhes Importar/Exportar @@ -413,8 +424,20 @@ Escuro Preto (AMOLED) Sem limite + Terminar sessão + Sessão terminada com sucesso Alterar informação de acesso Alterar a informação de acesso à sua conta gpodder.net + Sincronizar agora + Impor sincronização total + %1$s em %2$s.

Se quiser, pode escolher outro serviço de sincronização assim quer terminar a sessão]]>
+ Pode escolher diversos serviços para sincronizar as suas subscrições e o estado de reprodução dos episódios com + Gpoddersync é uma aplicação NextCloud que pode, facilmente, ser instalada no seu servidor. Esta aplicação é independente do projeto AntennaPod. + Conceda o acesso necessário através do navegador web e retorne a AntennaPod. + Escolher serviço de sincroniação + Voltar a sincronizar todas as subscrições e o estado de reprodução + Sincronizar alterações às subscrições e ao estado de reprodução + Escolher serviço de sincroniação Personalizar disponibilidade das velocidades variáveis de reprodução Velocidade utilizada para a reprodução áudio dos episódios deste podcast Ignorar automaticamente @@ -494,6 +517,8 @@ Notificações desativadas Esta definição é específica por podcast. Pode alterar a sua opção na página do podcast. Participar + Mostrar título da subscrição + Mostrar título da subscrição por baixo da imagem. Acerca Versão do AntennaPod @@ -516,6 +541,7 @@ Descarregar alterações nos episódios... Carregar estado de reprodução... Sincronizar subscrições... + A aguardar pelo término das descargas... Sincronização bem sucedida Falha na sincronização @@ -613,6 +639,7 @@ Antevisão Parar pré-visualização + Recuar Recuo rápido Avanço rápido Aumentar velocidade @@ -630,18 +657,26 @@ Autenticação Altere o seu nome de utilizador e palavra-passe para este podcast e seus episódios + Etiquetas + Escolha as etiquetas a usar neste podcast para organizar melhor as suas subscrições Mostrar na lista principal + {fa-info-circle} Apenas são mostradas as etiquetas comuns às subscrições selecionadas. As outras etiquetas não são afetadas. Definições de descarga automática Filtro de episódios Lista de termos utilizados para determinar se um episódio deve ser incluído ou excluído das descargas automáticas Incluir Excluir + Duração mínima (em minutos) Uma palavra\n\"Várias palavras\" Manter atualizada Incluir este podcast ao recarregar automaticamente todos os podcasts A descarga automática está desativada nas definições do AntennaPod + Tempo de reprodução: + Duração total (estimada): + Duração dos episódios reproduzidos: Episódios no dispositivo: Espaço utilizado: + Episódios iniciados/total: Ver para todos os podcasts » Importar subscrições de aplicações single-purpose... @@ -686,6 +721,8 @@ Data (Antiga \u2192 Recente) Duração (Curta \u2192 Longa) Duração (Longa \u2192 Curta) + Nome do ficheiro (A \u2192 Z) + Nome do ficheiro (Z \u2192 A) A \u2192 Z Z \u2192 A Novo \u2192 Antigo @@ -702,7 +739,9 @@ Incluir: Posição de reprodução Página web do episódio + Ligação para o episódio Ficheiro multimédia + Iniciando em Controlos de áudio Velocidade de reprodução @@ -749,4 +788,7 @@ Definições atualizadas com sucesso. Parece que você prefere as emissões. Deseja que a lista de episódios mostre os botões adequados? Parece que você prefere as descargas. Deseja que a lista de episódios mostre os botões adequados? + Atalho da subscrição + Selecione a subscrição + Adicionar atalho diff --git a/core/src/main/res/values-ro/strings.xml b/core/src/main/res/values-ro/strings.xml index e00e1104a..b9cf03cb8 100644 --- a/core/src/main/res/values-ro/strings.xml +++ b/core/src/main/res/values-ro/strings.xml @@ -178,6 +178,9 @@ %d abonamente actualizate. %d de abonamente actualizate.
+ Editează etichetele + Redenumește etichetele + Descărcarea episoadelor folosint datele mobile este oprită din setări.\n\nDoriți să reîmprospătați toate podcasturile folosint datele mobile ? Descarcă @@ -191,6 +194,11 @@ Șterge Imposibil de șters. Restartarea dispozitivului ar putea ajuta. Șterge episod + + 1 episod descărcat a fost șters. + %d episoade descărcare au fost șterse. + %d de episoade descărcare au fost șterse. + Îndepărtați semnul \"nou\" Semnul \"nou\" a fost șters Marchează ca citit @@ -252,6 +260,8 @@ Serverul podcastului refuză să răspundă. Descărcare anulată Conexiunea cu serverul a fost pierdută înainte să se termine descărcarea. + Descărcarea a fost blocată de o altă aplicație de pe dispozitivul dumneavoastră (VPN sau ad blocker). + Nu s-a putut stabili o conexiune securizată. Acest lucru poate sugera că o aplicație de pe dispozitivul dumoneavoastră (VPN sau ad blocker) a blocat descărcarea, sau că ceva este în neregulă cu certificatele de la server. Descărcări terminate Descărcările automate sunt complete Eroare IO @@ -268,6 +278,7 @@ Feed Fișier media Nu a fost furnizat niciun podcast ce ar putea fi arătat. + Podcastul sugerat nu are un link RSS, AntennaPod a găsit un podcast care s-ar putea potrivi Autentificare necesară Resursele cerute necesită un username si parolă Confirmați descărcarea folosind datele mobile @@ -336,6 +347,7 @@ Episoadele se șterg automat, Importă, Exportă Proiect Sincronizare + Sincronizare cu alte dispozitive Automatizare Detalii Importă/Exportă @@ -427,8 +439,20 @@ Întunecat Negru (pentru AMOLED) Nelimitat + Deconectare + Deconectarea a reușit Schimbă informațiile de autentificare Schimbă informațiile de autentificare pentru contul tău gpodder.net. + Sincronizează acum + Forțează sincronizarea completă + %1$s pe %2$s.

Puteți să vă alegeți furnizorul de sincronizare din nou, după ce v-ați deconectat]]>
+ Puteți alege dintre furnizori multipli pentru a vă sincroniza abonamentele dumneavoastră și starea episoadelor + Gpoddersync este o aplicație Nextcould cu sursă deschisă ce poate fii instalată cu ușurință pe serverul dumneavoastră. Aceasta aplicație este independenta de proiectul AntennaPod. + Oferă acces folosint web browserul deschis și întorcețivă la AntennaPod. + Alege furnizorul de sincronizare + Resincronizează toate abonamentele și starea episoadelor + Sincronizează schimbările abonamentelor și starea episoadelor + Alege furnizorul de sincronizare Personalizați viteza variabilă pentru redare Viteza de redare folosită la pornirea redării audio pentru episoadele din acest podcast Ignorare automată @@ -508,6 +532,8 @@ Notificări oprite Această setare este unică pentru fiecare podcast. Poți schimba această setare dacă deschizi pagina podcastului. Contribuie + Arată titlul abonamentului + Arată titlul abonamentului sub imaginea de copertă. Despre Versiune AntennaPod @@ -530,6 +556,7 @@ Se descarcă modificările episoadelor... Se încarcă starea fișierelor redate... Se sincronizează abonamentele... + Aștepați ca descărcarea să se încheie... Sincronizarea a reușit Sincronizarea a eșuat @@ -630,6 +657,7 @@ Previzualizare Oprește previzualizarea + Înapoi Înapoi Repede înainte Mărește viteza @@ -647,18 +675,26 @@ Autentificare Schimbăți numele si parola pentru acest podcast și episoadele sale, + Etichete + Schimbă etichetele acestui podcast pentru a putea organiza abonamentele dumneavoastră Arată în lista principală + {fa-info-circle} Doar etichetele comune din toate abonamentele selectate sunt arătate. Alte etichete rămân neafectate. Descarcă automat setările Filtru setări Listă de termeni folosită pentru a decide dacă un episod va fi sau nu inclus când descărcarea automată este pornită Include Exclude + Durata minimă (în minute) Un singur cuvânt \n\"Cuvinte multiple\" Menține actualizat Include acest podcast când reîmprospătarea automată a podcasturilor este pornită Descărcarea automată este oprită în setările generale ale AntennaPod + Timpul redat: + Durata totală (estimată): + Durata episoadelor redate: Episoade pe acest dispozitiv: Spațiu folosit: + Episoade pornite/total: Vizualizare a tuturor podcasturilor » Importare abonamente din aplicații cu un singur scop... @@ -703,6 +739,8 @@ Data (Nouă \u2192 Veche) Durată (Shortă \u2192 Lungă) Durată (Lungă \u2192 Scurtă) + Numele fișierului (A \u2192 Z) + Numele fișierului (Z \u2192 A) A \u2192 Z Z \u2192 A Nou \u2192 Vechi @@ -719,7 +757,9 @@ Include: Poziția de redare Pagina web a episodului + Linkul episodului Fișier media + Pornind de la Control audio Viteza de redare @@ -766,4 +806,7 @@ Setarea a fost actualizată cu succes Se pare că faci streaming foarte mult. Dorești ca lista de episoade să arate butonul de stream ? Se pare că descarci foarte mult. Dorești ca lista de episoade să arate butonul de descărcare ? + Scurtătură pentru abonamente + Selectează abonamentul + Adaugă scurtătură diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml index cbbf1a37d..01dd6fe81 100644 --- a/core/src/main/res/values-ru/strings.xml +++ b/core/src/main/res/values-ru/strings.xml @@ -185,6 +185,9 @@ %d подписок обновлено. %d подписок обновлено.
+ Редактировать метки + Переименовать метку + Загрузка выпусков через мобильное соединение отключена в настройках.\n\nВы действительно хотите обновить подкасты через мобильное соединение? Загрузить @@ -199,6 +202,12 @@ Удалить Невозможно удалить файл. Попробуйте перезагрузить устройство. Удалить выпуск + + %d загруженный выпуск удалён. + %d загруженных выпуска удалёно. + %d загруженных выпусков удалёно. + %d загруженных выпусков удалёно. + Убрать пометку «Новый» Пометка «Новый» убрана Отметить как прослушанное @@ -264,6 +273,8 @@ Сервер подкаста отказывает в ответе. Загрузка отменена Соединение с сервером было оборвано до завершения загрузки. + Загрузка была заблокирована другим приложением на вашем устройстве (например, VPN или блокировщиком рекламы). + Невозможно установить защищённое соединение. Возможно загрузке препятствует другое приложение (например, VPN или блокировщик рекламы), либо что-то не так с сертификатом сервера. Загрузки завершились с ошибкой Автозагрузка завершена Ошибка ввода-вывода @@ -281,6 +292,7 @@ Канал Медиафайл Не указан подкаст, который следовало бы показать. + У предложенного подкаста отсутствует RSS-ссылка, AntennaPod нашел подкаст, который возможно ему соответствует Необходима авторизация Для доступа к ресурсу необходимо ввести имя пользователя и пароль Подтвердите загрузку через мобильное соединение @@ -349,6 +361,7 @@ Автоматическое удаление выпусков, импорт, экспорт Проект Синхронизация + Синхронизация с другими устройствами Автоматизация Подробнее Импорт/экспорт @@ -441,8 +454,20 @@ Темная Черная (для AMOLED) Неограничен + Выход + Выход успешно выполнен Изменить информацию авторизации Изменить информацию авторизации для аккаунта gpodder.net + Синхронизировать сейчас + Выполнить полную синхронизацию + %1$s на %2$s.

Вы сможете снова выбрать провайдера синхронизации после выхода из системы]]>
+ Вы можете выбрать провайдера для сихронизации ваших подписок и состояния воспроизведения выпусков + Gpoddersync — приложение с открытым исходным кодом для Nextcloud, которое вы можете установить на свой сервер. Это приложение не связано с проектом AntennaPod. + Предоставить доступ, открыв веб-браузер, и вернуться в AntennaPod. + Выберите провайдера синхронизации + Пересихронизировать ваши подписки и состояние выпусков + Сихронизировать ваши подписки и изменения состояния выпусков + Выберите провайдера синхронизации Выбрать значения скорости, доступные при воспроизведении Скорость, с которой будут изначально воспроизводиться выпуски этого подкаста Автоматический пропуск @@ -522,6 +547,8 @@ Без уведомления Эта настройка у каждого подкаста своя. Изменить её можно открыв страницу подкаста. Поучаствовать + Показать название подписки + Отображать название подписки внизу обложки. О программе Версия AntennaPod @@ -544,6 +571,7 @@ Загрузка изменений выпуска… Отправка состояния прослушивания… Синхронизация подписок… + Ожидаем завершения загрузок… Синхронизация выполнена Сбой синхронизации @@ -647,6 +675,7 @@ Предпросмотр Остановить предпросмотр + Назад Назад Вперед Увеличить скорость @@ -664,18 +693,26 @@ Авторизация Изменить имя пользователя и пароль для этого подкаста и его выпусков. + Метки + Измените метки для этого подкаста, чтобы помочь организовать ваши подписки Показывать в основном списке + {fa-info-circle} Отображаются только общие метки для всех выбранных подписок. Другие метки остаются незатронутыми. Настройки автозагрузки Фильтр выпусков Перечень условий по включению или исключению выпуска из списков автоматической загрузки Включить Исключить + Минимальная продолжительность (в минутах) По одному слову \n\"По фразе\" Постоянно обновлять Обновлять подкаст при (авто)обновлении всех подкастов Автоматическая загрузка отключена в основных настройках AntennaPod + Времени прослушано: + Общая продолжительность (примерно): + Длительность прослушанных выпусков: Выпуски на устройстве: Используемое пространство: + Выпусков начато/всего: Просмотреть все подкасты » Импорт подписок из моноприложений… @@ -720,6 +757,8 @@ от старых к новым от коротких к длинным от длинных к коротким + имя файла от А к Я + имя файла от Я к А от А к Я от Я к А от новых к старым @@ -736,7 +775,9 @@ Включая: Позиция воспроизведения Вебстраница выпуска + Ссылка на выпуск Медиафайл + начиная с Управление звучанием Скорость воспроизведения @@ -783,4 +824,7 @@ Настройки успешно обновлены. Похоже, вы часто слушаете по сети. Хотите, чтобы в списке выпусков отображались кнопки для потокового воспроизведения? Похоже, вы часто слушаете загружаете выпуски. Хотите, чтобы в списке выпусков отображались кнопки для загрузки? + Ярлык подписки + Выбрать подписку + Добавить ярлык diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml index 80bff0452..caabb24cf 100644 --- a/core/src/main/res/values-sv/strings.xml +++ b/core/src/main/res/values-sv/strings.xml @@ -171,11 +171,14 @@ %d prenumeration uppdaterad. %d prenumerationer uppdaterade.
+ Redigera etiketter + Byt namn på etikett + Nedladdning av episoder över mobil dataanslutning är avstängt i inställningarna.\n\nVill du fortfarande uppdatera alla podcasts över mobildata? Ladda ned Laddar ner 1%d episod. - Laddar ner 1%d episoder. + Laddar ner %d episoder. Spela Pausa @@ -183,6 +186,10 @@ Ta bort Kunde inte ta bort filen. Testa att starta om enheten. Radera episod + + 1 nedladdad episod borttagen. + %d nedladdade episoder borttagna. + Ta bort \"ny\"-flagga Tog bort \"ny\"-flagga Markera som spelad @@ -192,24 +199,24 @@ Spela episoden för att kunna hoppa till olika positioner 1%d episod markerad som spelad. - 1%d episoder markerade som spelade. + %d episoder markerade som spelade. Markera som ospelad Markera som ospelad 1%d episod markerad som ospelad. - 1%d episoder markerade som ospelade. + %d episoder markerade som ospelade. Lägg till i kön Tillagd i kön 1%d episod tillagd i kön. - 1%d episoder tillagda i kön. + %d episoder tillagda i kön. Ta bort från Kön 1%d episod borttagen från kön. - 1%d episoder borttagna från kön. + %d episoder borttagna från kön. Lägg till i favoriter Ta bort från favoriter @@ -240,6 +247,8 @@ Podcastens server svarade inte. Nedladdning avbruten Serveranslutningen förlorades innan nedladdningen var klar. + Nedladdningen blockerades av en annan app på din enhet (exepelvis en VPN eller reklamblockerare). + Kan inte etablera en säker anslutning. Detta kan betyda att en annan app på din enhet (exempelvis en VPN eller reklamblockerare) blockerade nedladdningen, eller att någonting är fel med servercertifikaten. Nedladdningar avslutades med fel Automatiska nedladdningar klara IO fel @@ -255,6 +264,7 @@ Flöde Mediafil Inga tillhandahållna podcasts som kunde visas. + Den föreslagna podcasten hade inte en RSS-länk, AntennaPod hittade en podcast som kunde matcha Autentisering krävs Resursen du begärde kräver ett användarnamn och ett lösenord Bekräfta mobil nedladdning @@ -323,6 +333,7 @@ Automatisk episodradering, Import, Export Projekt Synkronisering + Synkronisera med andra enheter Automatisering Detaljer Importera/Exportera @@ -413,8 +424,20 @@ Mörkt Svart (AMOLED redo) Obegränsat + Logga ut + Utloggning lyckades Ändra inloggningsinformation Ändra inloggningsinformationen för ditt gpodder.net konto. + Synkronisera nu + Tvinga full synkronisering + %1$s på %2$s.

Du kan välja en ny synkroniseringsleverantör när du har loggat ut]]>
+ Du kan välja från flera leverantörer att synkronisera dina prenumerationer och episoders uppspelningsstatus med + Gpoddersync är en Nexcloud-app med öppen källkod som du enkelt kan installera på din egen server. Appen är oberoende från AntennaPod-projektet. + Get tillåtelse med webbläsaren som öppnades och kom tillbaka till AntennaPod. + Välj din synkroniseringsleverantör + Synkronisera om alla prenumerationer och episodstatusar + Synkronisera ändringar i prenumerationer och episodstatusar + Välj synkroniseringsleverantör Anpassa de tillgängliga hastigheterna för variabel uppspelningshastighet Uppspelningshastigheten att använda för episoder i denna podcast Automatisk överhoppning @@ -494,6 +517,8 @@ Avisering avstängt Denna inställning är unik för var podcast. Du kan ändra den genom att öppna podcastsidan. Bidra + Visa Prenumerationstitel + Visa titel på prenumerationen under omslagsbilden. Om AntennaPod version @@ -516,6 +541,7 @@ Laddar ner episodändringar... Laddar upp spelliststatus Synkroniserar prenumerationer + Väntar på nedladdningar... Synkronisering lyckades Synkronisering misslyckades @@ -613,6 +639,7 @@ Förhandsvisning Stoppa förhandsvisning + Tillbaka Backa Snabbspola Öka hastigheten @@ -630,18 +657,26 @@ Autentisering Byt ditt användarnamn och lösenord för den här podcasten och dess episoder. + Etiketter + Ändra etiketterna för denna podcast för att organisera prenumerationerna Visa i huvudlistan + {fa-info-circle} Bara etiketter gemensamma med alla valda prenumerationer visas. Andra etiketter påverkas inte. Automatisk nedladdningsinställningar Episodfilter Lista av termer som används för att avgöra om en episod ska inkluderas eller exkluderas vid automatisk nedladdning Inkludera Exkludera + Minsta längd (i minuter) Enstaka ord \n\"Flera ord\" Håll uppdaterad Inkludera detta flöde vid (auto-)uppdatering av alla podcasts Automatisk nedladdning är avstängt i AntennaPods huvudinställningar + Tid spelad: + Total längd (uppskattning): + Längd på spelade episoder: Episoder på enheten: Använt utrymme: + Episoder startade/totalt: Visa för alla podcasts » Importerar prenumerationer från appar gjorda för ett enda syfte… @@ -686,6 +721,8 @@ Datum (Gammal \u2192 Ny) Längd (Kort \u2192 Lång) Längd (Lång \u2192 Kort) + Filnamn (A \u2192 Ö) + Filnamne (Ö \u2192 A) A \u2192 Ö Ö \u2192 A Ny \u2192 Gammal @@ -702,7 +739,9 @@ Inkludera: Uppspelningsposition Episodes webbplats + Länk till episod Mediafil + Startar från Ljudkontroller Uppspelningshastighet @@ -749,4 +788,7 @@ Inställningen sparad. Det verkar som att du strömmar mycket. Vill du att episodlistan ska visa strömmningsknapparna? Det verkar som at du laddar ner mycket. Vill du att episodlistan ska visa nedladdningsknapparna? + Prenumerationsgenväg + Välj prenumeration + Lägg till genväg diff --git a/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java b/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java index 1c1ba9f53..b19500895 100644 --- a/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java +++ b/parser/feed/src/main/java/de/danoeh/antennapod/parser/feed/namespace/Rss20.java @@ -130,7 +130,7 @@ public class Rss20 extends Namespace { if (CHANNEL.equals(second) && state.getFeed() != null) { state.getFeed().setDescription(contentFromHtml); } else if (ITEM.equals(second) && state.getCurrentItem() != null) { - state.getCurrentItem().setDescriptionIfLonger(contentFromHtml); + state.getCurrentItem().setDescriptionIfLonger(content); // fromHtml here breaks \n when not html } } else if (LANGUAGE.equals(localName) && state.getFeed() != null) { state.getFeed().setLanguage(content.toLowerCase(Locale.US)); diff --git a/parser/media/src/main/java/de/danoeh/antennapod/parser/media/vorbis/VorbisCommentReader.java b/parser/media/src/main/java/de/danoeh/antennapod/parser/media/vorbis/VorbisCommentReader.java index 607172531..3d5f29f17 100644 --- a/parser/media/src/main/java/de/danoeh/antennapod/parser/media/vorbis/VorbisCommentReader.java +++ b/parser/media/src/main/java/de/danoeh/antennapod/parser/media/vorbis/VorbisCommentReader.java @@ -41,7 +41,7 @@ public abstract class VorbisCommentReader { public void readInputStream(InputStream input) throws VorbisCommentReaderException { try { - skipIdentificationHeader(input); + findIdentificationHeader(input); onVorbisCommentFound(); findOggPage(input); findCommentHeader(input); @@ -61,7 +61,11 @@ public abstract class VorbisCommentReader { byte[] buffer = new byte[4]; final byte[] oggPageHeader = {'O', 'g', 'g', 'S'}; for (int bytesRead = 0; bytesRead < SECOND_PAGE_MAX_LENGTH; bytesRead++) { - buffer[bytesRead % buffer.length] = (byte) input.read(); + int data = input.read(); + if (data == -1) { + throw new IOException("EOF while trying to find vorbis page"); + } + buffer[bytesRead % buffer.length] = (byte) data; if (bufferMatches(buffer, oggPageHeader, bytesRead)) { break; } @@ -103,7 +107,7 @@ public abstract class VorbisCommentReader { * Looks for an identification header in the first page of the file. If an * identification header is found, it will be skipped completely */ - private void skipIdentificationHeader(InputStream input) throws IOException { + private void findIdentificationHeader(InputStream input) throws IOException { byte[] buffer = new byte[FIRST_OPUS_PAGE_LENGTH]; IOUtils.readFully(input, buffer); final byte[] oggIdentificationHeader = new byte[]{ PACKET_TYPE_IDENTIFICATION, 'v', 'o', 'r', 'b', 'i', 's' }; @@ -115,6 +119,7 @@ public abstract class VorbisCommentReader { return; } } + throw new IOException("No vorbis identification header found"); } private void findCommentHeader(InputStream input) throws IOException {