Skip to content

Commit

Permalink
Update VoiceOver translations
Browse files Browse the repository at this point in the history
  • Loading branch information
GianniCarlo committed Jan 3, 2025
1 parent 4acc283 commit ba34d89
Show file tree
Hide file tree
Showing 57 changed files with 83 additions and 787 deletions.
64 changes: 4 additions & 60 deletions BookPlayer.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions BookPlayer/Base.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@ We're working hard on providing a seamless experience, if possible, please conta
"jellyfin_error_unauthorized" = "Sign In failed. Check your username and password.";
"file_size_unknown" = "Unknown size";
"runtime_unknown" = "Unknown duration";
"subscription_required_title" = "Subscription required";
"Swipe rows to see download options" = "Swipe rows to see download options";
6 changes: 5 additions & 1 deletion BookPlayer/Services/VoiceOverService.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import BookPlayerKit
#if os(watchOS)
import BookPlayerWatchKit
#else
import BookPlayerKit
#endif
import Foundation

class VoiceOverService {
Expand Down
2 changes: 2 additions & 0 deletions BookPlayer/ar.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "فشل تسجيل الدخول. تحقق من اسم المستخدم وكلمة المرور.";
"file_size_unknown" = "حجم غير معروف";
"runtime_unknown" = "مدة غير معروفة";
"subscription_required_title" = "الاشتراك مطلوب";
"Swipe rows to see download options" = "مرر الصفوف لرؤية خيارات التنزيل";
2 changes: 2 additions & 0 deletions BookPlayer/cs.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Přihlášení se nezdařilo. Zkontrolujte své uživatelské jméno a heslo.";
"file_size_unknown" = "Neznámá velikost";
"runtime_unknown" = "Neznámá doba trvání";
"subscription_required_title" = "Je vyžadováno předplatné";
"Swipe rows to see download options" = "Přejetím po řádcích zobrazíte možnosti stahování";
2 changes: 2 additions & 0 deletions BookPlayer/da.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Log ind mislykkedes. Tjek dit brugernavn og adgangskode.";
"file_size_unknown" = "Ukendt størrelse";
"runtime_unknown" = "Ukendt varighed";
"subscription_required_title" = "Kræver abonnement";
"Swipe rows to see download options" = "Stryg rækkerne for at se downloadmuligheder";
2 changes: 2 additions & 0 deletions BookPlayer/de.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Anmeldung fehlgeschlagen. Überprüfen Sie Ihren Benutzernamen und Ihr Passwort.";
"file_size_unknown" = "Unbekannte Größe";
"runtime_unknown" = "Unbekannte Dauer";
"subscription_required_title" = "Abonnement erforderlich";
"Swipe rows to see download options" = "Wischen Sie durch die Zeilen, um die Download-Optionen anzuzeigen";
2 changes: 2 additions & 0 deletions BookPlayer/el.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Η σύνδεση απέτυχε. Ελέγξτε το όνομα χρήστη και τον κωδικό πρόσβασής σας.";
"file_size_unknown" = "Άγνωστο μέγεθος";
"runtime_unknown" = "Άγνωστη διάρκεια";
"subscription_required_title" = "Απαιτείται συνδρομή";
"Swipe rows to see download options" = "Σύρετε σειρές για να δείτε τις επιλογές λήψης";
2 changes: 2 additions & 0 deletions BookPlayer/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@ We're working hard on providing a seamless experience, if possible, please conta
"jellyfin_error_unauthorized" = "Sign In failed. Check your username and password.";
"file_size_unknown" = "Unknown size";
"runtime_unknown" = "Unknown duration";
"subscription_required_title" = "Subscription required";
"Swipe rows to see download options" = "Swipe rows to see download options";
2 changes: 2 additions & 0 deletions BookPlayer/es.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Error al iniciar sesión. Verifique su nombre de usuario y contraseña.";
"file_size_unknown" = "Tamaño desconocido";
"runtime_unknown" = "Duración desconocida";
"subscription_required_title" = "Se requiere suscripción";
"Swipe rows to see download options" = "Desliza las filas para ver las opciones de descarga";
2 changes: 2 additions & 0 deletions BookPlayer/fi.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Kirjautuminen epäonnistui. Tarkista käyttäjätunnuksesi ja salasanasi.";
"file_size_unknown" = "Tuntematon koko";
"runtime_unknown" = "Tuntematon kesto";
"subscription_required_title" = "Tilaus vaaditaan";
"Swipe rows to see download options" = "Pyyhkäise rivejä nähdäksesi latausvaihtoehdot";
2 changes: 2 additions & 0 deletions BookPlayer/fr.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "La connexion a échoué. Vérifiez votre nom d'utilisateur et votre mot de passe.";
"file_size_unknown" = "Taille inconnue";
"runtime_unknown" = "Durée inconnue";
"subscription_required_title" = "Abonnement requis";
"Swipe rows to see download options" = "Faites glisser les lignes pour voir les options de téléchargement";
2 changes: 2 additions & 0 deletions BookPlayer/hu.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Sikertelen bejelentkezés. Ellenőrizze felhasználónevét és jelszavát.";
"file_size_unknown" = "Ismeretlen méret";
"runtime_unknown" = "Ismeretlen időtartam";
"subscription_required_title" = "Előfizetés szükséges";
"Swipe rows to see download options" = "Csúsztassa el a sorokat a letöltési lehetőségek megtekintéséhez";
2 changes: 2 additions & 0 deletions BookPlayer/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Accesso non riuscito. Controlla il tuo nome utente e la tua password.";
"file_size_unknown" = "Dimensioni sconosciute";
"runtime_unknown" = "Durata sconosciuta";
"subscription_required_title" = "Abbonamento richiesto";
"Swipe rows to see download options" = "Scorri le righe per vedere le opzioni di download";
2 changes: 2 additions & 0 deletions BookPlayer/ja.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@ We're working hard on providing a seamless experience, if possible, please conta
"jellyfin_error_unauthorized" = "Sign In failed. Check your username and password.";
"file_size_unknown" = "Unknown size";
"runtime_unknown" = "Unknown duration";
"subscription_required_title" = "Subscription required";
"Swipe rows to see download options" = "Swipe rows to see download options";
2 changes: 2 additions & 0 deletions BookPlayer/nb.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@ Vi jobber hardt for å gi deg en sømløs opplevelse. Hvis mulig, kontakt oss p
"jellyfin_error_unauthorized" = "Pålogging mislyktes. Sjekk brukernavnet og passordet ditt.";
"file_size_unknown" = "Ukjent størrelse";
"runtime_unknown" = "Ukjent varighet";
"subscription_required_title" = "Abonnement kreves";
"Swipe rows to see download options" = "Sveip rader for å se nedlastingsalternativer";
2 changes: 2 additions & 0 deletions BookPlayer/nl.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Aanmelden mislukt. Controleer uw gebruikersnaam en wachtwoord.";
"file_size_unknown" = "Onbekende grootte";
"runtime_unknown" = "Onbekende duur";
"subscription_required_title" = "Abonnement vereist";
"Swipe rows to see download options" = "Veeg over de rijen om de downloadopties te zien";
2 changes: 2 additions & 0 deletions BookPlayer/pl.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Logowanie nie powiodło się. Sprawdź swoją nazwę użytkownika i hasło.";
"file_size_unknown" = "Nieznany rozmiar";
"runtime_unknown" = "Nieznany czas trwania";
"subscription_required_title" = "Wymagana subskrypcja";
"Swipe rows to see download options" = "Przesuń wiersze, aby zobaczyć opcje pobierania";
2 changes: 2 additions & 0 deletions BookPlayer/pt-BR.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Falha ao entrar. Verifique seu nome de usuário e senha.";
"file_size_unknown" = "Tamanho desconhecido";
"runtime_unknown" = "Duração desconhecida";
"subscription_required_title" = "Assinatura necessária";
"Swipe rows to see download options" = "Deslize as linhas para ver as opções de download";
2 changes: 2 additions & 0 deletions BookPlayer/pt-PT.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Falha ao entrar. Verifique seu nome de usuário e senha.";
"file_size_unknown" = "Tamanho desconhecido";
"runtime_unknown" = "Duração desconhecida";
"subscription_required_title" = "Assinatura necessária";
"Swipe rows to see download options" = "Deslize as linhas para ver as opções de download";
2 changes: 2 additions & 0 deletions BookPlayer/ro.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Conectarea a eșuat. Verificați-vă numele de utilizator și parola.";
"file_size_unknown" = "Dimensiune necunoscută";
"runtime_unknown" = "Durată necunoscută";
"subscription_required_title" = "Este necesar un abonament";
"Swipe rows to see download options" = "Glisați rândurile pentru a vedea opțiunile de descărcare";
2 changes: 2 additions & 0 deletions BookPlayer/ru.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Войти не удалось. Проверьте имя пользователя и пароль.";
"file_size_unknown" = "Неизвестный размер";
"runtime_unknown" = "Неизвестная продолжительность";
"subscription_required_title" = "Требуется подписка";
"Swipe rows to see download options" = "Проведите пальцем по строкам, чтобы увидеть варианты загрузки";
2 changes: 2 additions & 0 deletions BookPlayer/sk-SK.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@ Usilovne pracujeme na poskytovaní bezproblémového zážitku, ak je to možné
"jellyfin_error_unauthorized" = "Prihlásenie zlyhalo. Skontrolujte svoje používateľské meno a heslo.";
"file_size_unknown" = "Neznáma veľkosť";
"runtime_unknown" = "Neznáme trvanie";
"subscription_required_title" = "Vyžaduje sa predplatné";
"Swipe rows to see download options" = "Potiahnutím riadkov zobrazíte možnosti sťahovania";
2 changes: 2 additions & 0 deletions BookPlayer/sv.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Inloggning misslyckades. Kontrollera ditt användarnamn och lösenord.";
"file_size_unknown" = "Okänd storlek";
"runtime_unknown" = "Okänd varaktighet";
"subscription_required_title" = "Prenumeration krävs";
"Swipe rows to see download options" = "Svep rader för att se nedladdningsalternativ";
2 changes: 2 additions & 0 deletions BookPlayer/tr.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Giriş başarısız. Kullanıcı adınızı ve şifrenizi kontrol edin.";
"file_size_unknown" = "Bilinmeyen boyut";
"runtime_unknown" = "Bilinmeyen süre";
"subscription_required_title" = "Abonelik gerekli";
"Swipe rows to see download options" = "İndirme seçeneklerini görmek için satırları kaydırın";
2 changes: 2 additions & 0 deletions BookPlayer/uk.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "Помилка входу. Перевірте своє ім'я користувача та пароль.";
"file_size_unknown" = "Невідомий розмір";
"runtime_unknown" = "Невідома тривалість";
"subscription_required_title" = "Потрібна підписка";
"Swipe rows to see download options" = "Гортайте рядки, щоб переглянути параметри завантаження";
2 changes: 2 additions & 0 deletions BookPlayer/zh-Hans.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,5 @@
"jellyfin_error_unauthorized" = "登录失败。请检查您的用户名和密码。";
"file_size_unknown" = "未知尺寸";
"runtime_unknown" = "持续时间未知";
"subscription_required_title" = "需要订阅";
"Swipe rows to see download options" = "滑动行查看下载选项";
29 changes: 0 additions & 29 deletions BookPlayerWatch/Base.lproj/Localizable.strings

This file was deleted.

5 changes: 5 additions & 0 deletions BookPlayerWatch/NowPlaying/Views/NowPlayingTitleView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,10 @@ struct NowPlayingTitleView: View {
.lineLimit(2)
.fixedSize(horizontal: false, vertical: true)
}
.accessibilityElement(children: .ignore)
.accessibilityLabel(VoiceOverService.playerMetaText(
title: item?.title ?? "",
author: item?.author ?? ""
))
}
}
2 changes: 2 additions & 0 deletions BookPlayerWatch/PlayerControlsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ struct PlayerControlsView: View {
.padding(10)
}
.buttonStyle(PlainButtonStyle())
.accessibilityLabel(VoiceOverService.rewindText())
.frame(width: geometry.size.width * 0.28)
Spacer()
Button {
Expand All @@ -54,6 +55,7 @@ struct PlayerControlsView: View {
.padding(10)
}
.buttonStyle(PlainButtonStyle())
.accessibilityLabel(VoiceOverService.fastForwardText())
.frame(width: geometry.size.width * 0.28)
Spacer()
}
Expand Down
12 changes: 12 additions & 0 deletions BookPlayerWatch/RemoteItemList/RemoteItemListCellView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,17 @@ struct RemoteItemListCellView: View {
return "\(Int(model.item.percentCompleted))% - "
}
}

var accessibilityDownloadStateLabel: String {
switch model.downloadState {
case .notDownloaded:
return ". ☁️"
case .downloading(let progress):
return ""
case .downloaded:
return ". ⌚️"
}
}

func formattedProgress(_ progress: Double) -> String {
numberFormatter.string(from: NSNumber(value: progress)) ?? ""
Expand Down Expand Up @@ -125,6 +136,7 @@ struct RemoteItemListCellView: View {
}
}
}
.accessibilityLabel(VoiceOverService.getAccessibilityLabel(for: model.item) + accessibilityDownloadStateLabel)
}
}

Expand Down
5 changes: 4 additions & 1 deletion BookPlayerWatch/RemotePlayerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ struct RemotePlayerView: View {
value: currentItem.currentTime / currentItem.duration,
fillColor: .accentColor
)
.accessibilityHidden(true)
.frame(maxHeight: 3)
}

Expand All @@ -37,7 +38,9 @@ struct RemotePlayerView: View {
}
.fixedSize(horizontal: false, vertical: false)
.ignoresSafeArea(edges: .bottom)
.navigationTitle(TimeParser.formatTotalDuration(playerManager.currentItem?.maxTimeInContext(prefersChapterContext: false, prefersRemainingTime: true, at: 1.0) ?? 0))
.navigationTitle(
TimeParser.formatTotalDuration(playerManager.currentItem?.maxTimeInContext(prefersChapterContext: false, prefersRemainingTime: true, at: playerManager.currentSpeed) ?? 0)
)
.errorAlert(error: $playerManager.error)
}
}
1 change: 1 addition & 0 deletions BookPlayerWatch/RootView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ struct RootView: View {
: nil
)
.environment(\.coreServices, coreServices)
.ignoresSafeArea(edges: .bottom)
}
}

Expand Down
29 changes: 0 additions & 29 deletions BookPlayerWatch/ar.lproj/Localizable.strings

This file was deleted.

29 changes: 0 additions & 29 deletions BookPlayerWatch/cs.lproj/Localizable.strings

This file was deleted.

29 changes: 0 additions & 29 deletions BookPlayerWatch/da.lproj/Localizable.strings

This file was deleted.

29 changes: 0 additions & 29 deletions BookPlayerWatch/de.lproj/Localizable.strings

This file was deleted.

Loading

0 comments on commit ba34d89

Please sign in to comment.