Update collection/playlist play button to show pause when playing #1394, update collections to play local item if available

This commit is contained in:
advplyr 2025-01-26 15:11:49 -06:00
parent c79ecbb92e
commit 0520cbd538
33 changed files with 84 additions and 50 deletions

View file

@ -6,7 +6,7 @@
</div> </div>
<div class="book-table-content h-full px-2 flex items-center"> <div class="book-table-content h-full px-2 flex items-center">
<div class="max-w-full"> <div class="max-w-full">
<p class="truncate block text-sm">{{ bookTitle }}</p> <p class="truncate block text-sm">{{ bookTitle }} <span v-if="localLibraryItem" class="material-icons text-success text-base align-text-bottom">download_done</span></p>
<p class="truncate block text-fg-muted text-xs">{{ bookAuthor }}</p> <p class="truncate block text-fg-muted text-xs">{{ bookAuthor }}</p>
<p v-if="media.duration" class="text-xxs text-fg-muted">{{ bookDuration }}</p> <p v-if="media.duration" class="text-xxs text-fg-muted">{{ bookDuration }}</p>
</div> </div>
@ -39,6 +39,9 @@ export default {
libraryItemId() { libraryItemId() {
return this.book.id return this.book.id
}, },
localLibraryItem() {
return this.book.localLibraryItem
},
media() { media() {
return this.book.media || {} return this.book.media || {}
}, },
@ -73,18 +76,34 @@ export default {
showPlayBtn() { showPlayBtn() {
return !this.isMissing && !this.isInvalid && this.tracks.length return !this.isMissing && !this.isInvalid && this.tracks.length
}, },
isStreaming() { playerIsStartingPlayback() {
// Play has been pressed and waiting for native play response
return this.$store.state.playerIsStartingPlayback
},
isOpenInPlayer() {
if (this.localLibraryItem && this.$store.getters['getIsMediaStreaming'](this.localLibraryItem.id)) return true
return this.$store.getters['getIsMediaStreaming'](this.libraryItemId) return this.$store.getters['getIsMediaStreaming'](this.libraryItemId)
}, },
streamIsPlaying() { streamIsPlaying() {
return this.$store.state.playerIsPlaying && this.isStreaming return this.$store.state.playerIsPlaying && this.isOpenInPlayer
} }
}, },
methods: { methods: {
async playClick() { async playClick() {
if (this.playerIsStartingPlayback) return
await this.$hapticsImpact() await this.$hapticsImpact()
if (this.streamIsPlaying) { if (this.streamIsPlaying) {
this.$eventBus.$emit('pause-item') this.$eventBus.$emit('pause-item')
return
}
this.$store.commit('setPlayerIsStartingPlayback', this.libraryItemId)
if (this.localLibraryItem) {
this.$eventBus.$emit('play-item', {
libraryItemId: this.localLibraryItem.id,
serverLibraryItemId: this.libraryItemId
})
} else { } else {
this.$eventBus.$emit('play-item', { this.$eventBus.$emit('play-item', {
libraryItemId: this.libraryItemId libraryItemId: this.libraryItemId

View file

@ -113,12 +113,12 @@ export default {
showPlayBtn() { showPlayBtn() {
return !this.isMissing && !this.isInvalid && (this.tracks.length || this.episode) return !this.isMissing && !this.isInvalid && (this.tracks.length || this.episode)
}, },
isStreaming() { isOpenInPlayer() {
if (this.localLibraryItem && this.localEpisode && this.$store.getters['getIsMediaStreaming'](this.localLibraryItem.id, this.localEpisode.id)) return true if (this.localLibraryItem && this.localEpisode && this.$store.getters['getIsMediaStreaming'](this.localLibraryItem.id, this.localEpisode.id)) return true
return this.$store.getters['getIsMediaStreaming'](this.libraryItem.id, this.episodeId) return this.$store.getters['getIsMediaStreaming'](this.libraryItem.id, this.episodeId)
}, },
streamIsPlaying() { streamIsPlaying() {
return this.$store.state.playerIsPlaying && this.isStreaming return this.$store.state.playerIsPlaying && this.isOpenInPlayer
}, },
playerIsStartingPlayback() { playerIsStartingPlayback() {
// Play has been pressed and waiting for native play response // Play has been pressed and waiting for native play response

View file

@ -12,9 +12,9 @@
{{ collectionName }} {{ collectionName }}
</h1> </h1>
<div class="flex-grow" /> <div class="flex-grow" />
<ui-btn v-if="showPlayButton" :disabled="streaming" color="success" :padding-x="4" small :loading="playerIsStartingForThisMedia" class="flex items-center justify-center h-9 mr-2 w-24" @click="clickPlay"> <ui-btn v-if="showPlayButton" color="success" :padding-x="4" :loading="playerIsStartingForThisMedia" small class="flex items-center justify-center mx-1 w-24" @click="playClick">
<span v-show="!streaming" class="material-icons -ml-2 pr-1 text-white">play_arrow</span> <span class="material-icons">{{ playerIsPlaying ? 'pause' : 'play_arrow' }}</span>
{{ streaming ? $strings.ButtonPlaying : $strings.ButtonPlay }} <span class="px-1 text-sm">{{ playerIsPlaying ? $strings.ButtonPause : $strings.ButtonPlay }}</span>
</ui-btn> </ui-btn>
</div> </div>
@ -47,6 +47,18 @@ export default {
return redirect('/bookshelf') return redirect('/bookshelf')
} }
// Lookup matching local items and attach to collection items
if (collection.books.length) {
const localLibraryItems = (await app.$db.getLocalLibraryItems('book')) || []
if (localLibraryItems.length) {
collection.books.forEach((collectionItem) => {
const matchingLocalLibraryItem = localLibraryItems.find((lli) => lli.libraryItemId === collectionItem.id)
if (!matchingLocalLibraryItem) return
collectionItem.localLibraryItem = matchingLocalLibraryItem
})
}
}
return { return {
collection collection
} }
@ -70,13 +82,19 @@ export default {
description() { description() {
return this.collection.description || '' return this.collection.description || ''
}, },
playableBooks() { playableItems() {
return this.bookItems.filter((book) => { return this.bookItems.filter((book) => {
return !book.isMissing && !book.isInvalid && book.media.tracks.length return !book.isMissing && !book.isInvalid && book.media.tracks.length
}) })
}, },
streaming() { playerIsPlaying() {
return !!this.playableBooks.find((b) => this.$store.getters['getIsMediaStreaming'](b.id)) return this.$store.state.playerIsPlaying && this.isOpenInPlayer
},
isOpenInPlayer() {
return !!this.playableItems.find((i) => {
if (i.localLibraryItem && this.$store.getters['getIsMediaStreaming'](i.localLibraryItem.id)) return true
return this.$store.getters['getIsMediaStreaming'](i.id)
})
}, },
playerIsStartingPlayback() { playerIsStartingPlayback() {
// Play has been pressed and waiting for native play response // Play has been pressed and waiting for native play response
@ -88,21 +106,34 @@ export default {
return mediaId === this.mediaIdStartingPlayback return mediaId === this.mediaIdStartingPlayback
}, },
showPlayButton() { showPlayButton() {
return this.playableBooks.length return this.playableItems.length
} }
}, },
methods: { methods: {
clickPlay() { async playClick() {
if (this.playerIsStartingPlayback) return if (this.playerIsStartingPlayback) return
await this.$hapticsImpact()
var nextBookNotRead = this.playableBooks.find((pb) => { if (this.playerIsPlaying) {
var prog = this.$store.getters['user/getUserMediaProgress'](pb.id) this.$eventBus.$emit('pause-item')
} else {
this.playNextItem()
}
},
playNextItem() {
const nextBookNotRead = this.playableItems.find((pb) => {
const prog = this.$store.getters['user/getUserMediaProgress'](pb.id)
return !prog?.isFinished return !prog?.isFinished
}) })
if (nextBookNotRead) { if (nextBookNotRead) {
this.mediaIdStartingPlayback = nextBookNotRead.id this.mediaIdStartingPlayback = nextBookNotRead.id
this.$store.commit('setPlayerIsStartingPlayback', nextBookNotRead.id) this.$store.commit('setPlayerIsStartingPlayback', nextBookNotRead.id)
this.$eventBus.$emit('play-item', { libraryItemId: nextBookNotRead.id })
if (nextBookNotRead.localLibraryItem) {
this.$eventBus.$emit('play-item', { libraryItemId: nextBookNotRead.localLibraryItem.id, serverLibraryItemId: nextBookNotRead.id })
} else {
this.$eventBus.$emit('play-item', { libraryItemId: nextBookNotRead.id })
}
} }
} }
}, },

View file

@ -10,9 +10,9 @@
{{ playlistName }} {{ playlistName }}
</h1> </h1>
<div class="flex-grow" /> <div class="flex-grow" />
<ui-btn v-if="showPlayButton" :disabled="streaming" color="success" :padding-x="4" :loading="playerIsStartingForThisMedia" small class="flex items-center justify-center text-center h-9 mr-2 w-24" @click="clickPlay"> <ui-btn v-if="showPlayButton" color="success" :padding-x="4" :loading="playerIsStartingForThisMedia" small class="flex items-center justify-center mx-1 w-24" @click="playClick">
<span v-show="!streaming" class="material-icons -ml-2 pr-1 text-white">play_arrow</span> <span class="material-icons">{{ playerIsPlaying ? 'pause' : 'play_arrow' }}</span>
{{ streaming ? $strings.ButtonPlaying : $strings.ButtonPlay }} <span class="px-1 text-sm">{{ playerIsPlaying ? $strings.ButtonPause : $strings.ButtonPlay }}</span>
</ui-btn> </ui-btn>
</div> </div>
@ -101,7 +101,10 @@ export default {
return libraryItem.media.tracks.length return libraryItem.media.tracks.length
}) })
}, },
streaming() { playerIsPlaying() {
return this.$store.state.playerIsPlaying && this.isOpenInPlayer
},
isOpenInPlayer() {
return !!this.playableItems.find((i) => { return !!this.playableItems.find((i) => {
if (i.localLibraryItem && this.$store.getters['getIsMediaStreaming'](i.localLibraryItem.id, i.localEpisode?.id)) return true if (i.localLibraryItem && this.$store.getters['getIsMediaStreaming'](i.localLibraryItem.id, i.localEpisode?.id)) return true
return this.$store.getters['getIsMediaStreaming'](i.libraryItemId, i.episodeId) return this.$store.getters['getIsMediaStreaming'](i.libraryItemId, i.episodeId)
@ -126,7 +129,17 @@ export default {
this.selectedEpisode = playlistItem.episode this.selectedEpisode = playlistItem.episode
this.showMoreMenu = true this.showMoreMenu = true
}, },
clickPlay() { async playClick() {
if (this.playerIsStartingPlayback) return
await this.$hapticsImpact()
if (this.playerIsPlaying) {
this.$eventBus.$emit('pause-item')
} else {
this.playNextItem()
}
},
playNextItem() {
const nextItem = this.playableItems.find((i) => { const nextItem = this.playableItems.find((i) => {
const prog = this.$store.getters['user/getUserMediaProgress'](i.libraryItemId, i.episodeId) const prog = this.$store.getters['user/getUserMediaProgress'](i.libraryItemId, i.episodeId)
return !prog?.isFinished return !prog?.isFinished

View file

@ -34,7 +34,6 @@
"ButtonPause": "تَوَقَّف", "ButtonPause": "تَوَقَّف",
"ButtonPlay": "تشغيل", "ButtonPlay": "تشغيل",
"ButtonPlayEpisode": "شغل الحلقة", "ButtonPlayEpisode": "شغل الحلقة",
"ButtonPlaying": "مشغل الآن",
"ButtonPlaylists": "قوائم التشغيل", "ButtonPlaylists": "قوائم التشغيل",
"ButtonRead": "اقرأ", "ButtonRead": "اقرأ",
"ButtonReadLess": "قلص", "ButtonReadLess": "قلص",

View file

@ -29,7 +29,6 @@
"ButtonNextEpisode": "Наступны эпізод", "ButtonNextEpisode": "Наступны эпізод",
"ButtonOpenFeed": "Адкрыць стужку", "ButtonOpenFeed": "Адкрыць стужку",
"ButtonPause": "Паўза", "ButtonPause": "Паўза",
"ButtonPlaying": "Прайграваецца",
"ButtonPlaylists": "Плэйлісты", "ButtonPlaylists": "Плэйлісты",
"ButtonRemoveFromServer": "Выдаліць з сервера", "ButtonRemoveFromServer": "Выдаліць з сервера",
"ButtonSave": "Захаваць", "ButtonSave": "Захаваць",

View file

@ -34,7 +34,6 @@
"ButtonPause": "বিরতি", "ButtonPause": "বিরতি",
"ButtonPlay": "বাজান", "ButtonPlay": "বাজান",
"ButtonPlayEpisode": "পর্বটি চালান", "ButtonPlayEpisode": "পর্বটি চালান",
"ButtonPlaying": "বাজছে",
"ButtonPlaylists": "প্লেলিস্ট", "ButtonPlaylists": "প্লেলিস্ট",
"ButtonRead": "পড়ুন", "ButtonRead": "পড়ুন",
"ButtonReadLess": "কম পড়ুন", "ButtonReadLess": "কম পড়ুন",

View file

@ -34,7 +34,6 @@
"ButtonPause": "Pausa", "ButtonPause": "Pausa",
"ButtonPlay": "Reproduir", "ButtonPlay": "Reproduir",
"ButtonPlayEpisode": "Reproduir episodi", "ButtonPlayEpisode": "Reproduir episodi",
"ButtonPlaying": "Reproduint",
"ButtonPlaylists": "Llistes de reproducció", "ButtonPlaylists": "Llistes de reproducció",
"ButtonRead": "Llegir", "ButtonRead": "Llegir",
"ButtonReadLess": "Llig menys", "ButtonReadLess": "Llig menys",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pozastavit", "ButtonPause": "Pozastavit",
"ButtonPlay": "Přehrát", "ButtonPlay": "Přehrát",
"ButtonPlayEpisode": "Přehrát epizodu", "ButtonPlayEpisode": "Přehrát epizodu",
"ButtonPlaying": "Hraje",
"ButtonPlaylists": "Seznamy skladeb", "ButtonPlaylists": "Seznamy skladeb",
"ButtonRead": "Číst", "ButtonRead": "Číst",
"ButtonReadLess": "Číst méně", "ButtonReadLess": "Číst méně",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pause", "ButtonPause": "Pause",
"ButtonPlay": "Afspil", "ButtonPlay": "Afspil",
"ButtonPlayEpisode": "Afspil Afsnit", "ButtonPlayEpisode": "Afspil Afsnit",
"ButtonPlaying": "Afspiller",
"ButtonPlaylists": "Afspilningslister", "ButtonPlaylists": "Afspilningslister",
"ButtonRead": "Læs", "ButtonRead": "Læs",
"ButtonReadLess": "Se mindre", "ButtonReadLess": "Se mindre",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pausieren", "ButtonPause": "Pausieren",
"ButtonPlay": "Abspielen", "ButtonPlay": "Abspielen",
"ButtonPlayEpisode": "Episode abspielen", "ButtonPlayEpisode": "Episode abspielen",
"ButtonPlaying": "Spielt",
"ButtonPlaylists": "Wiedergabelisten", "ButtonPlaylists": "Wiedergabelisten",
"ButtonRead": "Lesen", "ButtonRead": "Lesen",
"ButtonReadLess": "weniger Anzeigen", "ButtonReadLess": "weniger Anzeigen",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pause", "ButtonPause": "Pause",
"ButtonPlay": "Play", "ButtonPlay": "Play",
"ButtonPlayEpisode": "Play Episode", "ButtonPlayEpisode": "Play Episode",
"ButtonPlaying": "Playing",
"ButtonPlaylists": "Playlists", "ButtonPlaylists": "Playlists",
"ButtonRead": "Read", "ButtonRead": "Read",
"ButtonReadLess": "Read less", "ButtonReadLess": "Read less",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pausar", "ButtonPause": "Pausar",
"ButtonPlay": "Reproducir", "ButtonPlay": "Reproducir",
"ButtonPlayEpisode": "Reproducir episodio", "ButtonPlayEpisode": "Reproducir episodio",
"ButtonPlaying": "Reproduciendo",
"ButtonPlaylists": "Listas de reproducción", "ButtonPlaylists": "Listas de reproducción",
"ButtonRead": "Leer", "ButtonRead": "Leer",
"ButtonReadLess": "Leer menos", "ButtonReadLess": "Leer menos",

View file

@ -34,7 +34,6 @@
"ButtonPause": "Pysäytä", "ButtonPause": "Pysäytä",
"ButtonPlay": "Toista", "ButtonPlay": "Toista",
"ButtonPlayEpisode": "Toista jakso", "ButtonPlayEpisode": "Toista jakso",
"ButtonPlaying": "Toistetaan",
"ButtonPlaylists": "Soittolistat", "ButtonPlaylists": "Soittolistat",
"ButtonRead": "Lue", "ButtonRead": "Lue",
"ButtonReadLess": "Lue vähemmän", "ButtonReadLess": "Lue vähemmän",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pause", "ButtonPause": "Pause",
"ButtonPlay": "Lire", "ButtonPlay": "Lire",
"ButtonPlayEpisode": "Lire lépisode", "ButtonPlayEpisode": "Lire lépisode",
"ButtonPlaying": "En lecture",
"ButtonPlaylists": "Listes de lecture", "ButtonPlaylists": "Listes de lecture",
"ButtonRead": "Lire", "ButtonRead": "Lire",
"ButtonReadLess": "Lire moins", "ButtonReadLess": "Lire moins",

View file

@ -13,7 +13,6 @@
"ButtonLibrary": "પુસ્તકાલય", "ButtonLibrary": "પુસ્તકાલય",
"ButtonOpenFeed": "ફીડ ખોલો", "ButtonOpenFeed": "ફીડ ખોલો",
"ButtonPlay": "ચલાવો", "ButtonPlay": "ચલાવો",
"ButtonPlaying": "ચલાવી રહ્યું છે",
"ButtonPlaylists": "પ્લેલિસ્ટ", "ButtonPlaylists": "પ્લેલિસ્ટ",
"ButtonRead": "વાંચો", "ButtonRead": "વાંચો",
"ButtonRemove": "કાઢી નાખો", "ButtonRemove": "કાઢી નાખો",

View file

@ -27,7 +27,6 @@
"ButtonLibrary": "ספרייה", "ButtonLibrary": "ספרייה",
"ButtonPlay": "נגן", "ButtonPlay": "נגן",
"ButtonPlayEpisode": "נגן פרק", "ButtonPlayEpisode": "נגן פרק",
"ButtonPlaying": "מנגן",
"ButtonPlaylists": "רשימת השמעה", "ButtonPlaylists": "רשימת השמעה",
"HeaderOpenRSSFeed": "פתח ערוץ RSS", "HeaderOpenRSSFeed": "פתח ערוץ RSS",
"LabelAddedDate": "נוסף ב-{0}" "LabelAddedDate": "נוסף ב-{0}"

View file

@ -13,7 +13,6 @@
"ButtonLibrary": "पुस्तकालय", "ButtonLibrary": "पुस्तकालय",
"ButtonOpenFeed": "फ़ीड खोलें", "ButtonOpenFeed": "फ़ीड खोलें",
"ButtonPlay": "चलाएँ", "ButtonPlay": "चलाएँ",
"ButtonPlaying": "चल रही है",
"ButtonPlaylists": "प्लेलिस्ट्स", "ButtonPlaylists": "प्लेलिस्ट्स",
"ButtonRead": "पढ़ लिया", "ButtonRead": "पढ़ लिया",
"ButtonRemove": "हटाएं", "ButtonRemove": "हटाएं",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pauziraj", "ButtonPause": "Pauziraj",
"ButtonPlay": "Reproduciraj", "ButtonPlay": "Reproduciraj",
"ButtonPlayEpisode": "Reproduciraj nastavak", "ButtonPlayEpisode": "Reproduciraj nastavak",
"ButtonPlaying": "Izvodi se",
"ButtonPlaylists": "Popisi za izvođenje", "ButtonPlaylists": "Popisi za izvođenje",
"ButtonRead": "Pročitaj", "ButtonRead": "Pročitaj",
"ButtonReadLess": "Pročitaj manje", "ButtonReadLess": "Pročitaj manje",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Szünet", "ButtonPause": "Szünet",
"ButtonPlay": "Lejátszás", "ButtonPlay": "Lejátszás",
"ButtonPlayEpisode": "Epizód lejátszása", "ButtonPlayEpisode": "Epizód lejátszása",
"ButtonPlaying": "Lejátszás folyamatban",
"ButtonPlaylists": "Lejátszási listák", "ButtonPlaylists": "Lejátszási listák",
"ButtonRead": "Olvasás", "ButtonRead": "Olvasás",
"ButtonReadLess": "Mutass kevesebbet", "ButtonReadLess": "Mutass kevesebbet",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pausa", "ButtonPause": "Pausa",
"ButtonPlay": "Riproduci", "ButtonPlay": "Riproduci",
"ButtonPlayEpisode": "Riproduci episodio", "ButtonPlayEpisode": "Riproduci episodio",
"ButtonPlaying": "In riproduzione",
"ButtonPlaylists": "Playlist", "ButtonPlaylists": "Playlist",
"ButtonRead": "Leggi", "ButtonRead": "Leggi",
"ButtonReadLess": "Riduci", "ButtonReadLess": "Riduci",

View file

@ -28,7 +28,6 @@
"ButtonPause": "Pauzė", "ButtonPause": "Pauzė",
"ButtonPlay": "Groti", "ButtonPlay": "Groti",
"ButtonPlayEpisode": "Groti episodą", "ButtonPlayEpisode": "Groti episodą",
"ButtonPlaying": "Grojama",
"ButtonPlaylists": "Grojaraščiai", "ButtonPlaylists": "Grojaraščiai",
"ButtonRead": "Skaityti", "ButtonRead": "Skaityti",
"ButtonReadLess": "Skaityti mažiau", "ButtonReadLess": "Skaityti mažiau",

View file

@ -34,7 +34,6 @@
"ButtonPause": "Pauze", "ButtonPause": "Pauze",
"ButtonPlay": "Afspelen", "ButtonPlay": "Afspelen",
"ButtonPlayEpisode": "Aflevering afspelen", "ButtonPlayEpisode": "Aflevering afspelen",
"ButtonPlaying": "Speelt",
"ButtonPlaylists": "Afspeellijsten", "ButtonPlaylists": "Afspeellijsten",
"ButtonRead": "Lees", "ButtonRead": "Lees",
"ButtonReadLess": "Minder lezen", "ButtonReadLess": "Minder lezen",

View file

@ -31,7 +31,6 @@
"ButtonPause": "Pause", "ButtonPause": "Pause",
"ButtonPlay": "Spill av", "ButtonPlay": "Spill av",
"ButtonPlayEpisode": "Spill episode", "ButtonPlayEpisode": "Spill episode",
"ButtonPlaying": "Spiller av",
"ButtonPlaylists": "Spillelister", "ButtonPlaylists": "Spillelister",
"ButtonRead": "Les", "ButtonRead": "Les",
"ButtonRemove": "Fjern", "ButtonRemove": "Fjern",

View file

@ -34,7 +34,6 @@
"ButtonPause": "Wstrzymaj", "ButtonPause": "Wstrzymaj",
"ButtonPlay": "Odtwarzaj", "ButtonPlay": "Odtwarzaj",
"ButtonPlayEpisode": "Odtwórz odcinek", "ButtonPlayEpisode": "Odtwórz odcinek",
"ButtonPlaying": "Odtwarzane",
"ButtonPlaylists": "Listy odtwarzania", "ButtonPlaylists": "Listy odtwarzania",
"ButtonRead": "Czytaj", "ButtonRead": "Czytaj",
"ButtonReadLess": "Czytaj mniej", "ButtonReadLess": "Czytaj mniej",

View file

@ -34,7 +34,6 @@
"ButtonPause": "Pausar", "ButtonPause": "Pausar",
"ButtonPlay": "Reproduzir", "ButtonPlay": "Reproduzir",
"ButtonPlayEpisode": "Reproduzir Episódio", "ButtonPlayEpisode": "Reproduzir Episódio",
"ButtonPlaying": "Reproduzindo",
"ButtonPlaylists": "Lista de Reprodução", "ButtonPlaylists": "Lista de Reprodução",
"ButtonRead": "Ler", "ButtonRead": "Ler",
"ButtonReadLess": "Ler menos", "ButtonReadLess": "Ler menos",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Пауза", "ButtonPause": "Пауза",
"ButtonPlay": "Слушать", "ButtonPlay": "Слушать",
"ButtonPlayEpisode": "Воспроизвести эпизод", "ButtonPlayEpisode": "Воспроизвести эпизод",
"ButtonPlaying": "Проигрывается",
"ButtonPlaylists": "Плейлисты", "ButtonPlaylists": "Плейлисты",
"ButtonRead": "Читать", "ButtonRead": "Читать",
"ButtonReadLess": "Читать меньше", "ButtonReadLess": "Читать меньше",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Premor", "ButtonPause": "Premor",
"ButtonPlay": "Predvajaj", "ButtonPlay": "Predvajaj",
"ButtonPlayEpisode": "Predvajan epizodo", "ButtonPlayEpisode": "Predvajan epizodo",
"ButtonPlaying": "Predvajam",
"ButtonPlaylists": "Seznami predvajanj", "ButtonPlaylists": "Seznami predvajanj",
"ButtonRead": "Preberi", "ButtonRead": "Preberi",
"ButtonReadLess": "Preberi manj", "ButtonReadLess": "Preberi manj",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Pausa", "ButtonPause": "Pausa",
"ButtonPlay": "Spela", "ButtonPlay": "Spela",
"ButtonPlayEpisode": "Spela Episod", "ButtonPlayEpisode": "Spela Episod",
"ButtonPlaying": "Spelar",
"ButtonPlaylists": "Spellistor", "ButtonPlaylists": "Spellistor",
"ButtonRead": "Läs", "ButtonRead": "Läs",
"ButtonRemove": "Ta bort", "ButtonRemove": "Ta bort",

View file

@ -35,7 +35,6 @@
"ButtonPause": "Призупинити", "ButtonPause": "Призупинити",
"ButtonPlay": "Слухати", "ButtonPlay": "Слухати",
"ButtonPlayEpisode": "Слухати епізод", "ButtonPlayEpisode": "Слухати епізод",
"ButtonPlaying": "Відтворюється",
"ButtonPlaylists": "Списки відтворення", "ButtonPlaylists": "Списки відтворення",
"ButtonRead": "Читати", "ButtonRead": "Читати",
"ButtonReadLess": "Читати менше", "ButtonReadLess": "Читати менше",

View file

@ -32,7 +32,6 @@
"ButtonOverride": "Bỏ Qua", "ButtonOverride": "Bỏ Qua",
"ButtonPause": "Tạm Dừng", "ButtonPause": "Tạm Dừng",
"ButtonPlay": "Phát", "ButtonPlay": "Phát",
"ButtonPlaying": "Đang Phát",
"ButtonPlaylists": "Danh Sách Phát", "ButtonPlaylists": "Danh Sách Phát",
"ButtonRead": "Đọc", "ButtonRead": "Đọc",
"ButtonRemove": "Xóa", "ButtonRemove": "Xóa",

View file

@ -35,7 +35,6 @@
"ButtonPause": "暂停", "ButtonPause": "暂停",
"ButtonPlay": "播放", "ButtonPlay": "播放",
"ButtonPlayEpisode": "播放剧集", "ButtonPlayEpisode": "播放剧集",
"ButtonPlaying": "正在播放",
"ButtonPlaylists": "播放列表", "ButtonPlaylists": "播放列表",
"ButtonRead": "读取", "ButtonRead": "读取",
"ButtonReadLess": "阅读较少", "ButtonReadLess": "阅读较少",

View file

@ -34,7 +34,6 @@
"ButtonPause": "暫停", "ButtonPause": "暫停",
"ButtonPlay": "播放", "ButtonPlay": "播放",
"ButtonPlayEpisode": "播放劇集", "ButtonPlayEpisode": "播放劇集",
"ButtonPlaying": "正在播放",
"ButtonPlaylists": "播放列表", "ButtonPlaylists": "播放列表",
"ButtonRead": "讀取", "ButtonRead": "讀取",
"ButtonRemove": "移除", "ButtonRemove": "移除",