Skip to content

Commit

Permalink
Merge pull request #977 from TortugaPower/fix-crash-playback
Browse files Browse the repository at this point in the history
Fix random crash on playback
  • Loading branch information
GianniCarlo authored Jul 30, 2023
2 parents b31d977 + 084eaf9 commit 6931bf2
Show file tree
Hide file tree
Showing 27 changed files with 93 additions and 96 deletions.
6 changes: 0 additions & 6 deletions BookPlayer/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
defaults.set(true, forKey: Constants.UserDefaults.completedFirstLaunch)
}

try? AVAudioSession.sharedInstance().setCategory(
AVAudioSession.Category.playback,
mode: .spokenAudio,
options: []
)

// register to audio-interruption notifications
NotificationCenter.default.addObserver(
self,
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/Base.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "No Title";
"voiceover_no_author" = "No Author";
"voiceover_book_progress" = "%@ by %@, %d percent completed, duration: %@";
"voiceover_book_progress" = "%@ by %@, %.0f percent completed, duration: %@";
"voiceover_no_file_title" = "No File Title";
"voiceover_no_file_subtitle" = "No File Subtitle";
"voiceover_no_playlist_title" = "No Folder Title";
"voiceover_playlist_progress" = "%@, Folder, %d percent completed";
"voiceover_playlist_progress" = "%@, Folder, %.0f percent completed";
"voiceover_unknown_title" = "Unknown title";
"voiceover_unknown_author" = "Unknown author";
"voiceover_book_info" = "%@ by %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "New Book Volume";
"bound_books_create_alert_description" = "Make sure items are in correct order. To reorder chapters later you need convert the volume back into a folder, reorder items and then re-create the volume.";
"bound_books_create_alert_title" = "Create a volume";
"voiceover_bound_books_progress" = "%@, Volume, %d percent Completed, duration %@";
"voiceover_bound_books_progress" = "%@, Volume, %.0f percent Completed, duration %@";
"voiceover_no_bound_books_title" = "No Volume Title";
"default_title" = "Default";
"voiceover_default_speed_title" = "Set default speed";
Expand Down
12 changes: 10 additions & 2 deletions BookPlayer/Player/PlayerManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,13 @@ extension PlayerManager {
self.libraryService.setLibraryLastBook(with: currentItem.relativePath)

do {
try AVAudioSession.sharedInstance().setActive(true)
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setCategory(
AVAudioSession.Category.playback,
mode: .spokenAudio,
options: []
)
try audioSession.setActive(true)
} catch {
fatalError("Failed to activate the audio session, \(error), description: \(error.localizedDescription)")
}
Expand Down Expand Up @@ -793,12 +799,14 @@ extension PlayerManager {
func markAsCompleted(_ flag: Bool) {
guard let currentItem = self.currentItem else { return }

self.libraryService.markAsFinished(flag: true, relativePath: currentItem.relativePath)
self.libraryService.markAsFinished(flag: flag, relativePath: currentItem.relativePath)

if let parentFolderPath = currentItem.parentFolder {
libraryService.recursiveFolderProgressUpdate(from: parentFolderPath)
}

currentItem.isFinished = flag

NotificationCenter.default.post(name: .bookEnd, object: nil, userInfo: nil)
}

Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/Services/VoiceOverService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ class VoiceOverService {
"voiceover_book_progress".localized,
item.title,
item.details,
Int(item.percentCompleted),
item.percentCompleted,
item.durationFormatted
)
case .folder:
return String.localizedStringWithFormat(
"voiceover_playlist_progress".localized,
item.title,
Int(item.percentCompleted)
item.percentCompleted
)
case .bound:
return String.localizedStringWithFormat(
"voiceover_bound_books_progress".localized,
item.title,
Int(item.percentCompleted),
item.percentCompleted,
item.durationFormatted
)
}
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/ar.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "ايقاف";
"voiceover_no_title" = "لا يوجد عنوان";
"voiceover_no_author" = "لا يوجد كاتب";
"voiceover_book_progress" = "%@ من %@ ، اكتمل %d في المائة ، المدة: %@";
"voiceover_book_progress" = "%@ من %@ ، اكتمل %.0f في المائة ، المدة: %@";
"voiceover_no_file_title" = "لا يوجد عنوان ملف";
"voiceover_no_file_subtitle" = "لا يوجد ملف الترجمة";
"voiceover_no_playlist_title" = "لا يوجد عنوان مجلد";
"voiceover_playlist_progress" = "%@ ، قائمة التشغيل ، اكتمل %d بالمائة";
"voiceover_playlist_progress" = "%@ ، قائمة التشغيل ، اكتمل %.0f بالمائة";
"voiceover_unknown_title" = "عنوان غير معروف";
"voiceover_unknown_author" = "كاتب غير معروف";
"voiceover_book_info" = "%@ بواسطة %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "حجم الكتاب الجديد";
"bound_books_create_alert_description" = "تأكد من أن العناصر في الترتيب الصحيح. لإعادة ترتيب الفصول لاحقًا ، تحتاج إلى تحويل وحدة التخزين مرة أخرى إلى مجلد ، وإعادة ترتيب العناصر ثم إعادة إنشاء المجلد.";
"bound_books_create_alert_title" = "إنشاء وحدة تخزين";
"voiceover_bound_books_progress" = "%@ ، وحدة التخزين ، %d مكتمل ، المدة %@";
"voiceover_bound_books_progress" = "%@ ، وحدة التخزين ، %.0f مكتمل ، المدة %@";
"voiceover_no_bound_books_title" = "لا يوجد عنوان وحدة التخزين";
"default_title" = "محددة مسبقا";
"voiceover_default_speed_title" = "ضبط السرعة الافتراضية";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/cs.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pozastavit";
"voiceover_no_title" = "Žádný název";
"voiceover_no_author" = "Žádný autor";
"voiceover_book_progress" = "%@ od %@, %d procent dokončeno, trvání: %@";
"voiceover_book_progress" = "%@ od %@, %.0f procent dokončeno, trvání: %@";
"voiceover_no_file_title" = "Žádný název souboru";
"voiceover_no_file_subtitle" = "Žádný podtitul souboru";
"voiceover_no_playlist_title" = "Žádný název složky";
"voiceover_playlist_progress" = "%@, Seznam stop, %d procent Dokončeno";
"voiceover_playlist_progress" = "%@, Seznam stop, %.0f procent Dokončeno";
"voiceover_unknown_title" = "Neznámý název";
"voiceover_unknown_author" = "Neznámý autor";
"voiceover_book_info" = "%@podle%@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Nový svazek knihy";
"bound_books_create_alert_description" = "Ujistěte se, že položky jsou ve správném pořadí. Chcete-li později změnit pořadí kapitol, musíte svazek převést zpět na složku, změnit pořadí položek a poté svazek znovu vytvořit.";
"bound_books_create_alert_title" = "Vytvořte svazek";
"voiceover_bound_books_progress" = "%@, objem, %d procent dokončeno, trvání %@";
"voiceover_bound_books_progress" = "%@, objem, %.0f procent dokončeno, trvání %@";
"voiceover_no_bound_books_title" = "Bez názvu svazku";
"default_title" = "Výchozí";
"voiceover_default_speed_title" = "Nastavte výchozí rychlost";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/da.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "Ingen titel";
"voiceover_no_author" = "Ingen forfatter";
"voiceover_book_progress" = "%@ af %@, %d procent fuldført, varighed: %@";
"voiceover_book_progress" = "%@ af %@, %.0f procent fuldført, varighed: %@";
"voiceover_no_file_title" = "Ingen filnavn";
"voiceover_no_file_subtitle" = "Ingen undertekstfil";
"voiceover_no_playlist_title" = "Ingen mappetitel";
"voiceover_playlist_progress" = "%@, Playliste, %d procent fuldført";
"voiceover_playlist_progress" = "%@, Playliste, %.0f procent fuldført";
"voiceover_unknown_title" = "Ukendt titel";
"voiceover_unknown_author" = "Ukendt forfatter";
"voiceover_book_info" = "%@ af %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Ny bogbind";
"bound_books_create_alert_description" = "Sørg for, at elementerne er i den rigtige rækkefølge. Hvis du vil ændre rækkefølgen af kapitler senere skal du konvertere bindet tilbage til en mappe, omarrangere elementer og derefter genskabe bindet.";
"bound_books_create_alert_title" = "Opret et volumen";
"voiceover_bound_books_progress" = "%@, Volumen, %d procent fuldført, varighed %@";
"voiceover_bound_books_progress" = "%@, Volumen, %.0f procent fuldført, varighed %@";
"voiceover_no_bound_books_title" = "Ingen bindtitel";
"default_title" = "Standard";
"voiceover_default_speed_title" = "Indstil standardhastighed";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/de.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "Kein Titel angegeben";
"voiceover_no_author" = "Kein Autor angegeben";
"voiceover_book_progress" = "%@ von %@, %d%% abgeschlossen, Dauer: %@";
"voiceover_book_progress" = "%@ von %@, %.0f%% abgeschlossen, Dauer: %@";
"voiceover_no_file_title" = "Datei ohne Titel";
"voiceover_no_file_subtitle" = "Datei ohne Untertitel";
"voiceover_no_playlist_title" = "Kein Ordnertitel";
"voiceover_playlist_progress" = "%@, Wiedergabeliste, %d%% abgeschlossen";
"voiceover_playlist_progress" = "%@, Wiedergabeliste, %.0f%% abgeschlossen";
"voiceover_unknown_title" = "Unbekannter Titel";
"voiceover_unknown_author" = "Unbekannter Autor";
"voiceover_book_info" = "%@ von %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Neuer Band";
"bound_books_create_alert_description" = "Achte darauf, dass alle Kapitel in der richtigen Reihenfolge vorliegen. Um Kapitel neu zu sortieren, kannst du den Band wieder in einen Ordner konvertieren, dort die Kapitel neu anordnen und dann wieder einen Band erstellen.";
"bound_books_create_alert_title" = "Band erstellen";
"voiceover_bound_books_progress" = "%@, Band, %d Prozent gehört, Dauer %@";
"voiceover_bound_books_progress" = "%@, Band, %.0f Prozent gehört, Dauer %@";
"voiceover_no_bound_books_title" = "Band ohne Titel";
"default_title" = "Standard";
"voiceover_default_speed_title" = "Standardgeschwindigkeit einstellen";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "No Title";
"voiceover_no_author" = "No Author";
"voiceover_book_progress" = "%@ by %@, %d percent completed, duration: %@";
"voiceover_book_progress" = "%@ by %@, %.0f percent completed, duration: %@";
"voiceover_no_file_title" = "No File Title";
"voiceover_no_file_subtitle" = "No File Subtitle";
"voiceover_no_playlist_title" = "No Folder Title";
"voiceover_playlist_progress" = "%@, Folder, %d percent completed";
"voiceover_playlist_progress" = "%@, Folder, %.0f percent completed";
"voiceover_unknown_title" = "Unknown title";
"voiceover_unknown_author" = "Unknown author";
"voiceover_book_info" = "%@ by %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "New Book Volume";
"bound_books_create_alert_description" = "Make sure items are in correct order. To reorder chapters later you need convert the volume back into a folder, reorder items and then re-create the volume.";
"bound_books_create_alert_title" = "Create a volume";
"voiceover_bound_books_progress" = "%@, Volume, %d percent Completed, duration %@";
"voiceover_bound_books_progress" = "%@, Volume, %.0f percent Completed, duration %@";
"voiceover_no_bound_books_title" = "No Volume Title";
"default_title" = "Default";
"voiceover_default_speed_title" = "Set default speed";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/es.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pausar";
"voiceover_no_title" = "Sin título";
"voiceover_no_author" = "Sin autor";
"voiceover_book_progress" = "%@ por %@, %d porcentaje completado, duración: %@";
"voiceover_book_progress" = "%@ por %@, %.0f porcentaje completado, duración: %@";
"voiceover_no_file_title" = "Sin título de archivo";
"voiceover_no_file_subtitle" = "Sin subtítulo de archivo";
"voiceover_no_playlist_title" = "Sin título de carpeta";
"voiceover_playlist_progress" = "%@, Playlist %d porcentaje Completado";
"voiceover_playlist_progress" = "%@, Playlist %.0f porcentaje Completado";
"voiceover_unknown_title" = "Título desconocido";
"voiceover_unknown_author" = "Autor desconocido";
"voiceover_book_info" = "%@ por %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Nuevo Volumen";
"bound_books_create_alert_description" = "Asegúrate de que los libros estén en el orden correcto. Para reordenar los capítulos más adelante, deberás convertir el volumen nuevamente a una carpeta, reordenar los elementos y luego volver a crear el volumen.";
"bound_books_create_alert_title" = "Crear un volumen";
"voiceover_bound_books_progress" = "%@, volumen, %d porcentaje completado, duración %@";
"voiceover_bound_books_progress" = "%@, volumen, %.0f porcentaje completado, duración %@";
"voiceover_no_bound_books_title" = "Sin título";
"default_title" = "Predeterminado";
"voiceover_default_speed_title" = "Establecer velocidad predeterminada";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/fi.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Keskeytä";
"voiceover_no_title" = "Ei otsikkoa";
"voiceover_no_author" = "Ei kirjailijaa";
"voiceover_book_progress" = "%@ kirjoittaja %@ , %d prosenttia valmis, kesto: %@";
"voiceover_book_progress" = "%@ kirjoittaja %@ , %.0f prosenttia valmis, kesto: %@";
"voiceover_no_file_title" = "Ei tiedoston otsikkoa";
"voiceover_no_file_subtitle" = "Ei tiedoston alaotsikkoa";
"voiceover_no_playlist_title" = "Ei kansion otsikkoa";
"voiceover_playlist_progress" = "%@ , soittolista, %d prosenttia valmis";
"voiceover_playlist_progress" = "%@ , soittolista, %.0f prosenttia valmis";
"voiceover_unknown_title" = "Tuntematon nimike";
"voiceover_unknown_author" = "Tuntematon kirjailija";
"voiceover_book_info" = "%@ kirjoittaja %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Uusi kirja";
"bound_books_create_alert_description" = "Varmista, että kohteet ovat oikeassa järjestyksessä. Jos haluat uudelleenjärjestää kappaleet myöhemmin, sinun on muutettava kirja takaisin kansioksi, uudelleenjärjestettävä kohteet ja luotava kirja uudelleen.";
"bound_books_create_alert_title" = "Luo kirja";
"voiceover_bound_books_progress" = "%@, määrä, %d prosenttia valmis, kesto %@";
"voiceover_bound_books_progress" = "%@, määrä, %.0f prosenttia valmis, kesto %@";
"voiceover_no_bound_books_title" = "Ei kirjan otsikkoa";
"default_title" = "Oletus";
"voiceover_default_speed_title" = "Aseta oletusnopeus";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/fr.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "Sans titre";
"voiceover_no_author" = "Aucun auteur";
"voiceover_book_progress" = "%@ af %@, %d procent fuldført, varighed: %@";
"voiceover_book_progress" = "%@ af %@, %.0f procent fuldført, varighed: %@";
"voiceover_no_file_title" = "Fichier sans titre";
"voiceover_no_file_subtitle" = "Fichier sans sous-titre";
"voiceover_no_playlist_title" = "Aucun titre de dossier";
"voiceover_playlist_progress" = "%@, Liste de lecture, %d pour cent terminé";
"voiceover_playlist_progress" = "%@, Liste de lecture, %.0f pour cent terminé";
"voiceover_unknown_title" = "Titre inconnu";
"voiceover_unknown_author" = "Auteur inconnu";
"voiceover_book_info" = "%@ par %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Nouveau volume de livre";
"bound_books_create_alert_description" = "Assurez-vous que les éléments sont dans le bon ordre. Pour réorganiser les chapitres ultérieurement, vous devez reconvertir le volume en dossier, réorganiser les éléments, puis recréer le volume.";
"bound_books_create_alert_title" = "Créer un volume";
"voiceover_bound_books_progress" = "%@, Volumen, %d procent fuldført, varighed %@";
"voiceover_bound_books_progress" = "%@, Volumen, %.0f procent fuldført, varighed %@";
"voiceover_no_bound_books_title" = "Pas de titre de volume";
"default_title" = "Défaut";
"voiceover_default_speed_title" = "Définir la vitesse par défaut";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/hu.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Szünet";
"voiceover_no_title" = "Nincs cím";
"voiceover_no_author" = "Nincs szerző";
"voiceover_book_progress" = "%@ – %@, %d százalék kész, időtartam: %@";
"voiceover_book_progress" = "%@ – %@, %.0f százalék kész, időtartam: %@";
"voiceover_no_file_title" = "A fájlnak nincs címe";
"voiceover_no_file_subtitle" = "A fájlnak nincsen felirata";
"voiceover_no_playlist_title" = "Nincs mappa címe";
"voiceover_playlist_progress" = "%@, lejátszólista, %d%% meghallgatva";
"voiceover_playlist_progress" = "%@, lejátszólista, %.0f%% meghallgatva";
"voiceover_unknown_title" = "Ismeretlen cím";
"voiceover_unknown_author" = "Ismeretlen szerző";
"voiceover_book_info" = "%@ - %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Új könyvkötet";
"bound_books_create_alert_description" = "Győződjön meg arról, hogy az elemek megfelelő sorrendben vannak. A fejezetek későbbi átrendezéséhez vissza kell alakítania a kötetet mappává, át kell rendeznie az elemeket, majd újra létre kell hoznia a kötetet.";
"bound_books_create_alert_title" = "Kötet létrehozása";
"voiceover_bound_books_progress" = "%@, kötet, %d százalék kész, időtartam %@";
"voiceover_bound_books_progress" = "%@, kötet, %.0f százalék kész, időtartam %@";
"voiceover_no_bound_books_title" = "Nincs kötet címke";
"default_title" = "Alapértelmezett";
"voiceover_default_speed_title" = "Állítsa be az alapértelmezett sebességet";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pausa";
"voiceover_no_title" = "Nessun titolo";
"voiceover_no_author" = "Nessun autore";
"voiceover_book_progress" = "%@ di %@ , %d percento completato, durata: %@";
"voiceover_book_progress" = "%@ di %@ , %.0f percento completato, durata: %@";
"voiceover_no_file_title" = "Nessun titolo del file";
"voiceover_no_file_subtitle" = "Nessun sottotitolo del file";
"voiceover_no_playlist_title" = "Nessun titolo della cartella";
"voiceover_playlist_progress" = "%@, Cartella, %d%% completato";
"voiceover_playlist_progress" = "%@, Cartella, %.0f%% completato";
"voiceover_unknown_title" = "Titolo sconosciuto";
"voiceover_unknown_author" = "Autore sconosciuto";
"voiceover_book_info" = "%@ di %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Nuovo volume del libro";
"bound_books_create_alert_description" = "Assicurati che gli articoli siano nell'ordine corretto. Per riordinare i capitoli in un secondo momento è necessario riconvertire il volume in una cartella, riordinare gli elementi e quindi ricreare il volume.";
"bound_books_create_alert_title" = "Crea un volume";
"voiceover_bound_books_progress" = "%@, Volume, %d percento completato, durata %@";
"voiceover_bound_books_progress" = "%@, Volume, %.0f percento completato, durata %@";
"voiceover_no_bound_books_title" = "Nessun titolo del volume";
"default_title" = "Default";
"voiceover_default_speed_title" = "Imposta la velocità predefinita";
Expand Down
6 changes: 3 additions & 3 deletions BookPlayer/nb.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@
"pause_title" = "Pause";
"voiceover_no_title" = "Uten tittel";
"voiceover_no_author" = "Ingen forfatter";
"voiceover_book_progress" = "%@ av %@, %d prosent fullført, varighet: %@";
"voiceover_book_progress" = "%@ av %@, %.0f prosent fullført, varighet: %@";
"voiceover_no_file_title" = "Ingen filtittel";
"voiceover_no_file_subtitle" = "Ingen filundertittel";
"voiceover_no_playlist_title" = "Ingen mappetittel";
"voiceover_playlist_progress" = "%@, mappe, %d prosent fullført";
"voiceover_playlist_progress" = "%@, mappe, %.0f prosent fullført";
"voiceover_unknown_title" = "Ukjent tittel";
"voiceover_unknown_author" = "Ukjent forfatter";
"voiceover_book_info" = "%@ av %@";
Expand Down Expand Up @@ -195,7 +195,7 @@
"bound_books_new_title_placeholder" = "Nytt volum";
"bound_books_create_alert_description" = "Kontroller at elementene er i riktig rekkefølge. For å omorganisere kapitler senere må du konvertere volumet tilbake til en mappe, omorganisere elementer og deretter opprette volumet på nytt.";
"bound_books_create_alert_title" = "Opprette et volum";
"voiceover_bound_books_progress" = "%@ , Volum, %d prosent fullført, varighet %@";
"voiceover_bound_books_progress" = "%@ , Volum, %.0f prosent fullført, varighet %@";
"voiceover_no_bound_books_title" = "Ingen volumtittel";
"default_title" = "Standard";
"voiceover_default_speed_title" = "Angi standardhastighet";
Expand Down
Loading

0 comments on commit 6931bf2

Please sign in to comment.