diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index 6a9a88c2..88799412 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -322,7 +322,14 @@ "player": "Плейър", "subtitlesAndConfig": "Субтитри и конфигурация", "seekAndTiming": "Търсене и време", - "behavior": "Поведение" + "behavior": "Поведение", + "manageLibrariesDescription": "Пренареждай и скривай библиотеки", + "visualEffects": "Визуални ефекти", + "visualEffectsAuto": "Автоматично", + "visualEffectsAutoDescription": "Автоматично намалявай ефектите на по-слаби устройства", + "visualEffectsFull": "Пълни", + "visualEffectsReduced": "Намалени", + "visualEffectsReducedDescription": "По-малко анимации и изображения с по-ниска резолюция" }, "search": { "hint": "Търсене на филми, сериали, музика...", @@ -416,7 +423,9 @@ "setScore": "Задай оценка", "saved": "Запазено", "notAvailable": "Няма намерено съвпадение", - "noConnectedServices": "Свържи услуга в Настройки, за да оценяваш там." + "noConnectedServices": "Свържи услуга в Настройки, за да оценяваш там.", + "favorite": "Добави в любими", + "favorited": "Добавено в любими" }, "accessibility": { "mediaCardMovie": "${title}, филм", @@ -784,7 +793,8 @@ "year": "Година", "contentRating": "Възрастов рейтинг", "tag": "Таг", - "unwatched": "Негледани" + "unwatched": "Негледани", + "favorites": "Любими" }, "sortLabels": { "title": "Заглавие", @@ -808,7 +818,9 @@ "dateShared": "Дата на споделяне", "latestEpisodeAirDate": "Дата на излъчване на последния епизод", "lastEpisodeDateAdded": "Дата на добавяне на последния епизод" - } + }, + "noItemsMatchFilters": "Няма елементи, съответстващи на активните филтри", + "resetFilters": "Нулирай филтрите" }, "about": { "title": "Относно", @@ -1095,7 +1107,10 @@ "renameRoom": "Преименувай стая", "removeRoom": "Премахни", "guestSwitchUnavailable": "Превключването не е възможно — сървърът е недостъпен за синхронизация", - "guestSwitchFailed": "Превключването не е възможно — съдържанието не е намерено на този сървър" + "guestSwitchFailed": "Превключването не е възможно — съдържанието не е намерено на този сървър", + "participantNeedsUpdate": "${name} е с по-стара версия на приложението — синхронизирането не е налично", + "resumingWithout": "Продължаване без ${name}", + "waitingForName": "Изчакване на ${name}..." }, "downloads": { "title": "Изтегляния", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index 85d5e3bc..c88760a0 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -322,7 +322,14 @@ "player": "Afspiller", "subtitlesAndConfig": "Undertekster og konfiguration", "seekAndTiming": "Søgning og timing", - "behavior": "Adfærd" + "behavior": "Adfærd", + "manageLibrariesDescription": "Omarranger og skjul biblioteker", + "visualEffects": "Visuelle effekter", + "visualEffectsAuto": "Automatisk", + "visualEffectsAutoDescription": "Reducer automatisk effekter på enheder med lav ydeevne", + "visualEffectsFull": "Fuld", + "visualEffectsReduced": "Reduceret", + "visualEffectsReducedDescription": "Færre animationer og illustrationer i lavere opløsning" }, "search": { "hint": "Søg film, serier, musik...", @@ -416,7 +423,9 @@ "setScore": "Angiv en score", "saved": "Gemt", "notAvailable": "Intet match fundet", - "noConnectedServices": "Forbind en tjeneste i Indstillinger for at bedømme der." + "noConnectedServices": "Forbind en tjeneste i Indstillinger for at bedømme der.", + "favorite": "Favorit", + "favorited": "Føjet til favoritter" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "År", "contentRating": "Aldersvurdering", "tag": "Tag", - "unwatched": "Usete" + "unwatched": "Usete", + "favorites": "Favoritter" }, "sortLabels": { "title": "Titel", @@ -808,7 +818,9 @@ "dateShared": "Delt dato", "latestEpisodeAirDate": "Seneste episodes premieredato", "lastEpisodeDateAdded": "Dato for senest tilføjede episode" - } + }, + "noItemsMatchFilters": "Ingen elementer matcher de aktive filtre", + "resetFilters": "Nulstil filtre" }, "about": { "title": "Om", @@ -1095,7 +1107,10 @@ "renameRoom": "Omdøb rum", "removeRoom": "Fjern", "guestSwitchUnavailable": "Kunne ikke skifte — server ikke tilgængelig for synkronisering", - "guestSwitchFailed": "Kunne ikke skifte — indhold blev ikke fundet på denne server" + "guestSwitchFailed": "Kunne ikke skifte — indhold blev ikke fundet på denne server", + "participantNeedsUpdate": "${name} bruger en ældre appversion — synkronisering er ikke tilgængelig", + "resumingWithout": "Fortsætter uden ${name}", + "waitingForName": "Venter på ${name}..." }, "downloads": { "title": "Downloads", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 84ddf97c..a749d00d 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -322,7 +322,14 @@ "player": "Wiedergabe", "subtitlesAndConfig": "Untertitel & Konfiguration", "seekAndTiming": "Spulen & Timing", - "behavior": "Verhalten" + "behavior": "Verhalten", + "manageLibrariesDescription": "Mediatheken neu anordnen und ausblenden", + "visualEffects": "Visuelle Effekte", + "visualEffectsAuto": "Automatisch", + "visualEffectsAutoDescription": "Effekte auf leistungsschwachen Geräten automatisch reduzieren", + "visualEffectsFull": "Vollständig", + "visualEffectsReduced": "Reduziert", + "visualEffectsReducedDescription": "Weniger Animationen und Grafiken mit niedrigerer Auflösung" }, "search": { "hint": "Filme, Serien, Musik suchen...", @@ -416,7 +423,9 @@ "setScore": "Eine Wertung festlegen", "saved": "Gespeichert", "notAvailable": "Keine Übereinstimmung gefunden", - "noConnectedServices": "Verbinde einen Dienst in den Einstellungen, um dort zu bewerten." + "noConnectedServices": "Verbinde einen Dienst in den Einstellungen, um dort zu bewerten.", + "favorite": "Favorit", + "favorited": "Favorisiert" }, "accessibility": { "mediaCardMovie": "${title}, Film", @@ -784,7 +793,8 @@ "year": "Jahr", "contentRating": "Altersfreigabe", "tag": "Tag", - "unwatched": "Ungesehene" + "unwatched": "Ungesehene", + "favorites": "Favoriten" }, "sortLabels": { "title": "Titel", @@ -808,7 +818,9 @@ "dateShared": "Datum geteilt", "latestEpisodeAirDate": "Letztes Folgenausstrahlungsdatum", "lastEpisodeDateAdded": "Datum der zuletzt hinzugefügten Folge" - } + }, + "noItemsMatchFilters": "Keine Elemente entsprechen den aktiven Filtern", + "resetFilters": "Filter zurücksetzen" }, "about": { "title": "Über", @@ -1095,7 +1107,10 @@ "renameRoom": "Raum umbenennen", "removeRoom": "Entfernen", "guestSwitchUnavailable": "Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar", - "guestSwitchFailed": "Wechsel fehlgeschlagen — Inhalt auf diesem Server nicht gefunden" + "guestSwitchFailed": "Wechsel fehlgeschlagen — Inhalt auf diesem Server nicht gefunden", + "participantNeedsUpdate": "${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar", + "resumingWithout": "Fortfahren ohne ${name}", + "waitingForName": "Warten auf ${name}..." }, "downloads": { "title": "Downloads", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 6df239d3..f07b1d25 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -322,7 +322,14 @@ "player": "Reproductor", "subtitlesAndConfig": "Subtítulos y configuración", "seekAndTiming": "Búsqueda y tiempo", - "behavior": "Comportamiento" + "behavior": "Comportamiento", + "manageLibrariesDescription": "Reordena y oculta bibliotecas", + "visualEffects": "Efectos visuales", + "visualEffectsAuto": "Automático", + "visualEffectsAutoDescription": "Reduce automáticamente los efectos en dispositivos de bajo consumo", + "visualEffectsFull": "Completos", + "visualEffectsReduced": "Reducidos", + "visualEffectsReducedDescription": "Menos animaciones e ilustraciones de menor resolución" }, "search": { "hint": "Buscar películas, series, música...", @@ -416,7 +423,9 @@ "setScore": "Establecer puntuación", "saved": "Guardado", "notAvailable": "No se encontró coincidencia", - "noConnectedServices": "Conecta un servicio en Configuración para calificar ahí." + "noConnectedServices": "Conecta un servicio en Configuración para calificar ahí.", + "favorite": "Favorito", + "favorited": "Marcado como favorito" }, "accessibility": { "mediaCardMovie": "${title}, película", @@ -784,7 +793,8 @@ "year": "Año", "contentRating": "Clasificación", "tag": "Etiqueta", - "unwatched": "No vistos" + "unwatched": "No vistos", + "favorites": "Favoritos" }, "sortLabels": { "title": "Título", @@ -808,7 +818,9 @@ "dateShared": "Fecha de compartición", "latestEpisodeAirDate": "Última fecha de emisión del episodio", "lastEpisodeDateAdded": "Fecha de adición del último episodio" - } + }, + "noItemsMatchFilters": "Ningún elemento coincide con los filtros activos", + "resetFilters": "Restablecer filtros" }, "about": { "title": "Acerca de", @@ -1095,7 +1107,10 @@ "renameRoom": "Renombrar sala", "removeRoom": "Eliminar", "guestSwitchUnavailable": "No se pudo cambiar — servidor no disponible para sincronización", - "guestSwitchFailed": "No se pudo cambiar — contenido no encontrado en este servidor" + "guestSwitchFailed": "No se pudo cambiar — contenido no encontrado en este servidor", + "participantNeedsUpdate": "${name} usa una versión anterior de la app — sincronización no disponible", + "resumingWithout": "Reanudando sin ${name}", + "waitingForName": "Esperando a ${name}..." }, "downloads": { "title": "Descargas", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 4f6822e6..735d6b19 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -322,7 +322,14 @@ "player": "Lecteur", "subtitlesAndConfig": "Sous-titres et configuration", "seekAndTiming": "Recherche et minutage", - "behavior": "Comportement" + "behavior": "Comportement", + "manageLibrariesDescription": "Réorganiser et masquer les bibliothèques", + "visualEffects": "Effets visuels", + "visualEffectsAuto": "Automatique", + "visualEffectsAutoDescription": "Réduire automatiquement les effets sur les appareils peu puissants", + "visualEffectsFull": "Complets", + "visualEffectsReduced": "Réduits", + "visualEffectsReducedDescription": "Moins d’animations et d’illustrations de plus faible résolution" }, "search": { "hint": "Rechercher des films, des séries, de la musique...", @@ -416,7 +423,9 @@ "setScore": "Définir une note", "saved": "Enregistré", "notAvailable": "Aucune correspondance trouvée", - "noConnectedServices": "Connectez un service dans les Réglages pour noter ici." + "noConnectedServices": "Connectez un service dans les Réglages pour noter ici.", + "favorite": "Favori", + "favorited": "Ajouté aux favoris" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "Année", "contentRating": "Classification", "tag": "Tag", - "unwatched": "Non vus" + "unwatched": "Non vus", + "favorites": "Favoris" }, "sortLabels": { "title": "Titre", @@ -808,7 +818,9 @@ "dateShared": "Date de partage", "latestEpisodeAirDate": "Dernière date de diffusion", "lastEpisodeDateAdded": "Date d'ajout du dernier épisode" - } + }, + "noItemsMatchFilters": "Aucun élément ne correspond aux filtres actifs", + "resetFilters": "Réinitialiser les filtres" }, "about": { "title": "À propos", @@ -1095,7 +1107,10 @@ "renameRoom": "Renommer le salon", "removeRoom": "Supprimer", "guestSwitchUnavailable": "Impossible de changer — serveur indisponible pour la synchronisation", - "guestSwitchFailed": "Impossible de changer — contenu introuvable sur ce serveur" + "guestSwitchFailed": "Impossible de changer — contenu introuvable sur ce serveur", + "participantNeedsUpdate": "${name} utilise une ancienne version de l’app — synchronisation indisponible", + "resumingWithout": "Reprise sans ${name}", + "waitingForName": "En attente de ${name}..." }, "downloads": { "title": "Téléchargements", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index e12d323f..d473bd79 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -322,7 +322,14 @@ "player": "Lettore", "subtitlesAndConfig": "Sottotitoli e configurazione", "seekAndTiming": "Ricerca e tempistica", - "behavior": "Comportamento" + "behavior": "Comportamento", + "manageLibrariesDescription": "Riordina e nascondi le librerie", + "visualEffects": "Effetti visivi", + "visualEffectsAuto": "Automatico", + "visualEffectsAutoDescription": "Riduci automaticamente gli effetti sui dispositivi a basso consumo", + "visualEffectsFull": "Completi", + "visualEffectsReduced": "Ridotti", + "visualEffectsReducedDescription": "Meno animazioni e immagini a risoluzione inferiore" }, "search": { "hint": "Cerca film. spettacoli, musica...", @@ -416,7 +423,9 @@ "setScore": "Imposta un punteggio", "saved": "Salvato", "notAvailable": "Nessuna corrispondenza trovata", - "noConnectedServices": "Connetti un servizio nelle Impostazioni per valutare lì." + "noConnectedServices": "Connetti un servizio nelle Impostazioni per valutare lì.", + "favorite": "Preferito", + "favorited": "Aggiunto ai preferiti" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "Anno", "contentRating": "Classificazione", "tag": "Tag", - "unwatched": "Non visti" + "unwatched": "Non visti", + "favorites": "Preferiti" }, "sortLabels": { "title": "Titolo", @@ -808,7 +818,9 @@ "dateShared": "Data di condivisione", "latestEpisodeAirDate": "Data ultima messa in onda", "lastEpisodeDateAdded": "Data aggiunta ultimo episodio" - } + }, + "noItemsMatchFilters": "Nessun elemento corrisponde ai filtri attivi", + "resetFilters": "Reimposta filtri" }, "about": { "title": "Informazioni", @@ -1095,7 +1107,10 @@ "renameRoom": "Rinomina stanza", "removeRoom": "Rimuovi", "guestSwitchUnavailable": "Impossibile cambiare — server non disponibile per la sincronizzazione", - "guestSwitchFailed": "Impossibile cambiare — contenuto non trovato su questo server" + "guestSwitchFailed": "Impossibile cambiare — contenuto non trovato su questo server", + "participantNeedsUpdate": "${name} usa una versione precedente dell'app — sincronizzazione non disponibile", + "resumingWithout": "Ripresa senza ${name}", + "waitingForName": "In attesa di ${name}..." }, "downloads": { "title": "Download", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 8b7dbb07..616da2cb 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -322,7 +322,14 @@ "player": "プレーヤー", "subtitlesAndConfig": "字幕と設定", "seekAndTiming": "シークとタイミング", - "behavior": "動作" + "behavior": "動作", + "manageLibrariesDescription": "ライブラリを並べ替えたり非表示にしたりできます", + "visualEffects": "視覚効果", + "visualEffectsAuto": "自動", + "visualEffectsAutoDescription": "低性能なデバイスでは効果を自動的に減らします", + "visualEffectsFull": "フル", + "visualEffectsReduced": "軽減", + "visualEffectsReducedDescription": "アニメーションを減らし、低解像度のアートワークを使用します" }, "search": { "hint": "映画、番組、音楽を検索...", @@ -416,7 +423,9 @@ "setScore": "スコアを設定", "saved": "保存済み", "notAvailable": "一致なし", - "noConnectedServices": "評価するには、設定でサービスを接続してください。" + "noConnectedServices": "評価するには、設定でサービスを接続してください。", + "favorite": "お気に入り", + "favorited": "お気に入りに追加済み" }, "accessibility": { "mediaCardMovie": "${title}、映画", @@ -784,7 +793,8 @@ "year": "年", "contentRating": "視聴年齢区分", "tag": "タグ", - "unwatched": "未視聴" + "unwatched": "未視聴", + "favorites": "お気に入り" }, "sortLabels": { "title": "タイトル", @@ -808,7 +818,9 @@ "dateShared": "共有日", "latestEpisodeAirDate": "最新エピソード放送日", "lastEpisodeDateAdded": "最新エピソード追加日" - } + }, + "noItemsMatchFilters": "有効なフィルターに一致する項目はありません", + "resetFilters": "フィルターをリセット" }, "about": { "title": "アプリについて", @@ -1093,7 +1105,10 @@ "renameRoom": "ルーム名を変更", "removeRoom": "削除", "guestSwitchUnavailable": "切り替えできません — サーバーが同期できません", - "guestSwitchFailed": "切り替えできません — このサーバーにコンテンツが見つかりません" + "guestSwitchFailed": "切り替えできません — このサーバーにコンテンツが見つかりません", + "participantNeedsUpdate": "${name} は古いバージョンのアプリを使用しているため、同期できません", + "resumingWithout": "${name} なしで再開", + "waitingForName": "${name}を待っています..." }, "downloads": { "title": "ダウンロード", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 64b7221d..986dccc6 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -139,6 +139,12 @@ "tvFullCardLayoutDescription": "TV 카드에 이미지만 표시하고 배우 이름을 오버레이로 표시", "focusGlow": "포커스 글로우", "focusGlowDescription": "포커스된 카드 주위에 은은한 빛 효과를 표시", + "visualEffects": "시각 효과", + "visualEffectsAuto": "자동", + "visualEffectsAutoDescription": "저전력 기기에서 효과를 자동으로 줄입니다", + "visualEffectsFull": "전체", + "visualEffectsReduced": "축소", + "visualEffectsReducedDescription": "애니메이션을 줄이고 아트워크 해상도를 낮춥니다", "hideSpoilers": "미시청 에피소드 스포일러 숨기기", "hideSpoilersDescription": "시청하지 않은 에피소드의 썸네일과 설명을 흐리게 처리", "playerBackend": "플레이어 백엔드", @@ -249,6 +255,7 @@ "traktDescription": "Trakt와 시청 기록 동기화", "services": "서비스", "servicesDescription": "Trakt, MyAnimeList, Seerr 등 연결", + "manageLibrariesDescription": "라이브러리 순서를 변경하거나 숨깁니다", "companionRemoteServer": "컴패니언 리모트 서버", "companionRemoteServerDescription": "네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용", "autoPip": "자동 PIP 모드", @@ -414,6 +421,8 @@ "starValue": "${rating} / 5", "scoreValue": "${score} / 10", "setScore": "점수 설정", + "favorite": "즐겨찾기", + "favorited": "즐겨찾기됨", "saved": "저장됨", "notAvailable": "일치 항목 없음", "noConnectedServices": "평가하려면 설정에서 서비스를 연결하세요." @@ -740,6 +749,8 @@ "allLibrariesHidden": "모든 라이브러리가 숨겨졌습니다", "hiddenLibrariesCount": "숨겨진 라이브러리 (${count})", "thisLibraryIsEmpty": "이 미디어 라이브러리는 비어 있습니다", + "noItemsMatchFilters": "활성화된 필터와 일치하는 항목이 없습니다", + "resetFilters": "필터 초기화", "all": "전체", "clearAll": "모두 삭제", "scanLibraryConfirm": "「${title}」를 스캔 하시겠습니까?", @@ -784,7 +795,8 @@ "year": "연도", "contentRating": "시청 등급", "tag": "태그", - "unwatched": "미시청" + "unwatched": "미시청", + "favorites": "즐겨찾기" }, "sortLabels": { "title": "제목", @@ -1088,7 +1100,10 @@ "participantResumed": "${name}님이 재생했습니다", "participantSeeked": "${name}님이 탐색했습니다", "participantBuffering": "${name}님이 버퍼링 중입니다", + "participantNeedsUpdate": "${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다", + "resumingWithout": "${name}님 없이 재생을 재개합니다", "waitingForParticipants": "다른 참가자의 로딩을 기다리는 중...", + "waitingForName": "${name}님을 기다리는 중...", "recentRooms": "최근 방", "renameRoom": "방 이름 변경", "removeRoom": "제거", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index d583b72f..fc4e07d6 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -322,7 +322,14 @@ "player": "Spiller", "subtitlesAndConfig": "Undertekster og konfigurasjon", "seekAndTiming": "Søk og tidtaking", - "behavior": "Atferd" + "behavior": "Atferd", + "manageLibrariesDescription": "Omorganiser og skjul biblioteker", + "visualEffects": "Visuelle effekter", + "visualEffectsAuto": "Automatisk", + "visualEffectsAutoDescription": "Reduser effekter automatisk på enheter med lavt strømforbruk", + "visualEffectsFull": "Full", + "visualEffectsReduced": "Redusert", + "visualEffectsReducedDescription": "Færre animasjoner og grafikk med lavere oppløsning" }, "search": { "hint": "Søk i filmer, serier, musikk...", @@ -416,7 +423,9 @@ "setScore": "Sett en poengsum", "saved": "Lagret", "notAvailable": "Ingen treff", - "noConnectedServices": "Koble til en tjeneste i Innstillinger for å vurdere her." + "noConnectedServices": "Koble til en tjeneste i Innstillinger for å vurdere her.", + "favorite": "Favoritt", + "favorited": "Lagt til i favoritter" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "År", "contentRating": "Aldersgrense", "tag": "Tag", - "unwatched": "Usette" + "unwatched": "Usette", + "favorites": "Favoritter" }, "sortLabels": { "title": "Tittel", @@ -808,7 +818,9 @@ "dateShared": "Delingsdato", "latestEpisodeAirDate": "Siste episodes sendedato", "lastEpisodeDateAdded": "Dato for sist lagt til episode" - } + }, + "noItemsMatchFilters": "Ingen elementer samsvarer med de aktive filtrene", + "resetFilters": "Tilbakestill filtre" }, "about": { "title": "Om", @@ -1095,7 +1107,10 @@ "renameRoom": "Gi nytt navn til rom", "removeRoom": "Fjern", "guestSwitchUnavailable": "Kunne ikke bytte — server ikke tilgjengelig for synkronisering", - "guestSwitchFailed": "Kunne ikke bytte — innhold ble ikke funnet på denne serveren" + "guestSwitchFailed": "Kunne ikke bytte — innhold ble ikke funnet på denne serveren", + "participantNeedsUpdate": "${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig", + "resumingWithout": "Fortsetter uten ${name}", + "waitingForName": "Venter på ${name}..." }, "downloads": { "title": "Nedlastinger", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 653bc2c6..257c5d18 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -322,7 +322,14 @@ "player": "Speler", "subtitlesAndConfig": "Ondertitels en configuratie", "seekAndTiming": "Zoeken en timing", - "behavior": "Gedrag" + "behavior": "Gedrag", + "manageLibrariesDescription": "Bibliotheken herordenen en verbergen", + "visualEffects": "Visuele effecten", + "visualEffectsAuto": "Automatisch", + "visualEffectsAutoDescription": "Effecten automatisch verminderen op apparaten met laag vermogen", + "visualEffectsFull": "Volledig", + "visualEffectsReduced": "Verminderd", + "visualEffectsReducedDescription": "Minder animaties en illustraties met lagere resolutie" }, "search": { "hint": "Zoek films, series, muziek...", @@ -416,7 +423,9 @@ "setScore": "Score instellen", "saved": "Opgeslagen", "notAvailable": "Geen match gevonden", - "noConnectedServices": "Verbind een service in Instellingen om daar te beoordelen." + "noConnectedServices": "Verbind een service in Instellingen om daar te beoordelen.", + "favorite": "Favoriet", + "favorited": "Toegevoegd aan favorieten" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "Jaar", "contentRating": "Leeftijdsclassificatie", "tag": "Tag", - "unwatched": "Onbekeken" + "unwatched": "Onbekeken", + "favorites": "Favorieten" }, "sortLabels": { "title": "Titel", @@ -808,7 +818,9 @@ "dateShared": "Gedeeld op", "latestEpisodeAirDate": "Laatste afleveringsuitzending", "lastEpisodeDateAdded": "Datum laatst toegevoegde aflevering" - } + }, + "noItemsMatchFilters": "Geen items komen overeen met de actieve filters", + "resetFilters": "Filters opnieuw instellen" }, "about": { "title": "Over", @@ -1095,7 +1107,10 @@ "renameRoom": "Kamer hernoemen", "removeRoom": "Verwijderen", "guestSwitchUnavailable": "Kon niet schakelen — server niet beschikbaar voor synchronisatie", - "guestSwitchFailed": "Kon niet schakelen — inhoud niet gevonden op deze server" + "guestSwitchFailed": "Kon niet schakelen — inhoud niet gevonden op deze server", + "participantNeedsUpdate": "${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar", + "resumingWithout": "Hervatten zonder ${name}", + "waitingForName": "Wachten op ${name}..." }, "downloads": { "title": "Downloads", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index a5d9999b..ec8f1d09 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -322,7 +322,14 @@ "player": "Odtwarzacz", "subtitlesAndConfig": "Napisy i konfiguracja", "seekAndTiming": "Przewijanie i czas", - "behavior": "Zachowanie" + "behavior": "Zachowanie", + "manageLibrariesDescription": "Zmieniaj kolejność i ukrywaj biblioteki", + "visualEffects": "Efekty wizualne", + "visualEffectsAuto": "Automatycznie", + "visualEffectsAutoDescription": "Automatycznie ograniczaj efekty na urządzeniach o niższej wydajności", + "visualEffectsFull": "Pełne", + "visualEffectsReduced": "Ograniczone", + "visualEffectsReducedDescription": "Mniej animacji i grafiki o niższej rozdzielczości" }, "search": { "hint": "Szukaj filmów, seriali, muzyki...", @@ -416,7 +423,9 @@ "setScore": "Ustaw ocenę", "saved": "Zapisano", "notAvailable": "Nie znaleziono dopasowania", - "noConnectedServices": "Połącz usługę w Ustawieniach, aby tam oceniać." + "noConnectedServices": "Połącz usługę w Ustawieniach, aby tam oceniać.", + "favorite": "Dodaj do ulubionych", + "favorited": "Dodano do ulubionych" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "Rok", "contentRating": "Klasyfikacja wiekowa", "tag": "Tag", - "unwatched": "Nieobejrzane" + "unwatched": "Nieobejrzane", + "favorites": "Ulubione" }, "sortLabels": { "title": "Tytuł", @@ -808,7 +818,9 @@ "dateShared": "Data udostępnienia", "latestEpisodeAirDate": "Data emisji ostatniego odcinka", "lastEpisodeDateAdded": "Data dodania ostatniego odcinka" - } + }, + "noItemsMatchFilters": "Żadne elementy nie pasują do aktywnych filtrów", + "resetFilters": "Resetuj filtry" }, "about": { "title": "O aplikacji", @@ -1099,7 +1111,10 @@ "renameRoom": "Zmień nazwę pokoju", "removeRoom": "Usuń", "guestSwitchUnavailable": "Nie można przełączyć — serwer niedostępny do synchronizacji", - "guestSwitchFailed": "Nie można przełączyć — nie znaleziono treści na tym serwerze" + "guestSwitchFailed": "Nie można przełączyć — nie znaleziono treści na tym serwerze", + "participantNeedsUpdate": "${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna", + "resumingWithout": "Wznawianie bez ${name}", + "waitingForName": "Oczekiwanie na ${name}..." }, "downloads": { "title": "Pobrania", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 4a901bd0..cebca14b 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -322,7 +322,14 @@ "player": "Reprodutor", "subtitlesAndConfig": "Legendas e configuração", "seekAndTiming": "Busca e tempo", - "behavior": "Comportamento" + "behavior": "Comportamento", + "manageLibrariesDescription": "Reordene e oculte bibliotecas", + "visualEffects": "Efeitos visuais", + "visualEffectsAuto": "Automático", + "visualEffectsAutoDescription": "Reduza automaticamente os efeitos em dispositivos de baixo consumo", + "visualEffectsFull": "Completos", + "visualEffectsReduced": "Reduzidos", + "visualEffectsReducedDescription": "Menos animações e artes em menor resolução" }, "search": { "hint": "Buscar filmes, séries, músicas...", @@ -416,7 +423,9 @@ "setScore": "Definir pontuação", "saved": "Salvo", "notAvailable": "Nenhuma correspondência encontrada", - "noConnectedServices": "Conecte um serviço nas Configurações para avaliar por lá." + "noConnectedServices": "Conecte um serviço nas Configurações para avaliar por lá.", + "favorite": "Favorito", + "favorited": "Adicionado aos favoritos" }, "accessibility": { "mediaCardMovie": "${title}, filme", @@ -784,7 +793,8 @@ "year": "Ano", "contentRating": "Classificação", "tag": "Tag", - "unwatched": "Não assistidos" + "unwatched": "Não assistidos", + "favorites": "Favoritos" }, "sortLabels": { "title": "Título", @@ -808,7 +818,9 @@ "dateShared": "Data de compartilhamento", "latestEpisodeAirDate": "Última data de exibição do episódio", "lastEpisodeDateAdded": "Data de adição do último episódio" - } + }, + "noItemsMatchFilters": "Nenhum item corresponde aos filtros ativos", + "resetFilters": "Redefinir filtros" }, "about": { "title": "Sobre", @@ -1095,7 +1107,10 @@ "renameRoom": "Renomear sala", "removeRoom": "Remover", "guestSwitchUnavailable": "Não foi possível trocar — servidor indisponível para sincronização", - "guestSwitchFailed": "Não foi possível trocar — conteúdo não encontrado neste servidor" + "guestSwitchFailed": "Não foi possível trocar — conteúdo não encontrado neste servidor", + "participantNeedsUpdate": "${name} está em uma versão mais antiga do aplicativo — sincronização indisponível", + "resumingWithout": "Retomando sem ${name}", + "waitingForName": "Aguardando ${name}..." }, "downloads": { "title": "Downloads", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 2b0f519b..e2c53628 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -322,7 +322,14 @@ "player": "Плеер", "subtitlesAndConfig": "Субтитры и конфигурация", "seekAndTiming": "Перемотка и время", - "behavior": "Поведение" + "behavior": "Поведение", + "manageLibrariesDescription": "Изменять порядок и скрывать библиотеки", + "visualEffects": "Визуальные эффекты", + "visualEffectsAuto": "Автоматически", + "visualEffectsAutoDescription": "Автоматически уменьшать эффекты на маломощных устройствах", + "visualEffectsFull": "Полные", + "visualEffectsReduced": "Уменьшенные", + "visualEffectsReducedDescription": "Меньше анимаций и графика с более низким разрешением" }, "search": { "hint": "Поиск фильмов, сериалов, музыки...", @@ -416,7 +423,9 @@ "setScore": "Установить оценку", "saved": "Сохранено", "notAvailable": "Совпадений не найдено", - "noConnectedServices": "Подключите сервис в настройках, чтобы оценивать здесь." + "noConnectedServices": "Подключите сервис в настройках, чтобы оценивать здесь.", + "favorite": "Добавить в избранное", + "favorited": "Добавлено в избранное" }, "accessibility": { "mediaCardMovie": "${title}, фильм", @@ -784,7 +793,8 @@ "year": "Год", "contentRating": "Возрастной рейтинг", "tag": "Тег", - "unwatched": "Непросмотренные" + "unwatched": "Непросмотренные", + "favorites": "Избранное" }, "sortLabels": { "title": "Название", @@ -808,7 +818,9 @@ "dateShared": "Дата открытия доступа", "latestEpisodeAirDate": "Дата выхода последнего эпизода", "lastEpisodeDateAdded": "Дата добавления последнего эпизода" - } + }, + "noItemsMatchFilters": "Нет элементов, соответствующих активным фильтрам", + "resetFilters": "Сбросить фильтры" }, "about": { "title": "О приложении", @@ -1099,7 +1111,10 @@ "renameRoom": "Переименовать комнату", "removeRoom": "Удалить", "guestSwitchUnavailable": "Не удалось переключиться — сервер недоступен для синхронизации", - "guestSwitchFailed": "Не удалось переключиться — содержимое не найдено на этом сервере" + "guestSwitchFailed": "Не удалось переключиться — содержимое не найдено на этом сервере", + "participantNeedsUpdate": "${name} использует старую версию приложения — синхронизация недоступна", + "resumingWithout": "Возобновление без ${name}", + "waitingForName": "Ожидание ${name}..." }, "downloads": { "title": "Загрузки", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 1ff134cf..9dcc6abc 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,7 +4,7 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 16 -/// Strings: 22481 (1405 per locale) +/// Strings: 22706 (1419 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index 06632e67..ff786af3 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsBg extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Субтитри и конфигурация'; @override String get seekAndTiming => 'Търсене и време'; @override String get behavior => 'Поведение'; + @override String get manageLibrariesDescription => 'Пренареждай и скривай библиотеки'; + @override String get visualEffects => 'Визуални ефекти'; + @override String get visualEffectsAuto => 'Автоматично'; + @override String get visualEffectsAutoDescription => 'Автоматично намалявай ефектите на по-слаби устройства'; + @override String get visualEffectsFull => 'Пълни'; + @override String get visualEffectsReduced => 'Намалени'; + @override String get visualEffectsReducedDescription => 'По-малко анимации и изображения с по-ниска резолюция'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetBg extends TranslationsRateSheetEn { @override String get saved => 'Запазено'; @override String get notAvailable => 'Няма намерено съвпадение'; @override String get noConnectedServices => 'Свържи услуга в Настройки, за да оценяваш там.'; + @override String get favorite => 'Добави в любими'; + @override String get favorited => 'Добавено в любими'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesBg extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsBg groupings = _TranslationsLibrariesGroupingsBg._(_root); @override late final _TranslationsLibrariesFilterCategoriesBg filterCategories = _TranslationsLibrariesFilterCategoriesBg._(_root); @override late final _TranslationsLibrariesSortLabelsBg sortLabels = _TranslationsLibrariesSortLabelsBg._(_root); + @override String get noItemsMatchFilters => 'Няма елементи, съответстващи на активните филтри'; + @override String get resetFilters => 'Нулирай филтрите'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherBg extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Премахни'; @override String get guestSwitchUnavailable => 'Превключването не е възможно — сървърът е недостъпен за синхронизация'; @override String get guestSwitchFailed => 'Превключването не е възможно — съдържанието не е намерено на този сървър'; + @override String participantNeedsUpdate({required Object name}) => '${name} е с по-стара версия на приложението — синхронизирането не е налично'; + @override String resumingWithout({required Object name}) => 'Продължаване без ${name}'; + @override String waitingForName({required Object name}) => 'Изчакване на ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesBg extends TranslationsLibrariesFilt @override String get contentRating => 'Възрастов рейтинг'; @override String get tag => 'Таг'; @override String get unwatched => 'Негледани'; + @override String get favorites => 'Любими'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsBg { 'settings.subtitlesAndConfig' => 'Субтитри и конфигурация', 'settings.seekAndTiming' => 'Търсене и време', 'settings.behavior' => 'Поведение', + 'settings.manageLibrariesDescription' => 'Пренареждай и скривай библиотеки', + 'settings.visualEffects' => 'Визуални ефекти', + 'settings.visualEffectsAuto' => 'Автоматично', + 'settings.visualEffectsAutoDescription' => 'Автоматично намалявай ефектите на по-слаби устройства', + 'settings.visualEffectsFull' => 'Пълни', + 'settings.visualEffectsReduced' => 'Намалени', + 'settings.visualEffectsReducedDescription' => 'По-малко анимации и изображения с по-ниска резолюция', 'search.hint' => 'Търсене на филми, сериали, музика...', 'search.tryDifferentTerm' => 'Опитайте с различна дума за търсене', 'search.searchYourMedia' => 'Търсете във вашата медия', @@ -2502,6 +2524,8 @@ extension on TranslationsBg { 'rateSheet.saved' => 'Запазено', 'rateSheet.notAvailable' => 'Няма намерено съвпадение', 'rateSheet.noConnectedServices' => 'Свържи услуга в Настройки, за да оценяваш там.', + 'rateSheet.favorite' => 'Добави в любими', + 'rateSheet.favorited' => 'Добавено в любими', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, филм', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, ТВ сериал', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsBg { 'messages.errorLoading' => ({required Object error}) => 'Грешка: ${error}', 'messages.streamInterrupted' => 'Потокът прекъсна. Натиснете „Пусни“ или превъртете, за да опитате отново.', 'messages.fileInfoNotAvailable' => 'Информацията за файла не е налична', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Грешка при зареждане на информация за файла: ${error}', 'messages.errorLoadingSeries' => 'Грешка при зареждане на сериала', 'messages.musicNotSupported' => 'Възпроизвеждането на музика все още не се поддържа', @@ -2619,8 +2645,6 @@ extension on TranslationsBg { 'messages.unableToDetermineLibrarySection' => 'Не може да се определи секцията на библиотеката за този елемент', 'messages.logsCleared' => 'Логовете са изчистени', 'messages.logsCopied' => 'Логовете са копирани в клипборда', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Няма налични логове', 'messages.libraryScanning' => ({required Object title}) => 'Сканиране на "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Сканирането на библиотеката е стартирано за "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsBg { 'libraries.filterCategories.contentRating' => 'Възрастов рейтинг', 'libraries.filterCategories.tag' => 'Таг', 'libraries.filterCategories.unwatched' => 'Негледани', + 'libraries.filterCategories.favorites' => 'Любими', 'libraries.sortLabels.title' => 'Заглавие', 'libraries.sortLabels.dateAdded' => 'Дата на добавяне', 'libraries.sortLabels.releaseDate' => 'Дата на излизане', @@ -2860,6 +2885,8 @@ extension on TranslationsBg { 'libraries.sortLabels.dateShared' => 'Дата на споделяне', 'libraries.sortLabels.latestEpisodeAirDate' => 'Дата на излъчване на последния епизод', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Дата на добавяне на последния епизод', + 'libraries.noItemsMatchFilters' => 'Няма елементи, съответстващи на активните филтри', + 'libraries.resetFilters' => 'Нулирай филтрите', 'about.title' => 'Относно', 'about.openSourceLicenses' => 'Лицензи с отворен код', 'about.versionLabel' => ({required Object version}) => 'Версия ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsBg { 'watchTogether.removeRoom' => 'Премахни', 'watchTogether.guestSwitchUnavailable' => 'Превключването не е възможно — сървърът е недостъпен за синхронизация', 'watchTogether.guestSwitchFailed' => 'Превключването не е възможно — съдържанието не е намерено на този сървър', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} е с по-стара версия на приложението — синхронизирането не е налично', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Продължаване без ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Изчакване на ${name}...', 'downloads.title' => 'Изтегляния', 'downloads.manage' => 'Управление', 'downloads.tvShows' => 'ТВ сериали', 'downloads.movies' => 'Филми', 'downloads.music' => 'Музика', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} песни в опашката за изтегляне', 'downloads.noDownloads' => 'Все още няма изтегляния', 'downloads.noDownloadsDescription' => 'Изтегленото съдържание ще се показва тук за офлайн гледане', @@ -3133,8 +3165,6 @@ extension on TranslationsBg { 'downloads.cancelledDownloadTitle' => 'Отменено изтегляне', 'downloads.cancelledDownloadMessage' => 'Това изтегляне беше отменено. Какво искате да направите?', 'downloads.allEpisodesAlreadyDownloaded' => 'Всички епизоди вече са изтеглени', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Възобнови изтеглянето', 'downloads.cancelledDownload' => 'Отменено изтегляне', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (синхронизира се ${status})', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 05fff3df..89647844 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsDa extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Undertekster og konfiguration'; @override String get seekAndTiming => 'Søgning og timing'; @override String get behavior => 'Adfærd'; + @override String get manageLibrariesDescription => 'Omarranger og skjul biblioteker'; + @override String get visualEffects => 'Visuelle effekter'; + @override String get visualEffectsAuto => 'Automatisk'; + @override String get visualEffectsAutoDescription => 'Reducer automatisk effekter på enheder med lav ydeevne'; + @override String get visualEffectsFull => 'Fuld'; + @override String get visualEffectsReduced => 'Reduceret'; + @override String get visualEffectsReducedDescription => 'Færre animationer og illustrationer i lavere opløsning'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetDa extends TranslationsRateSheetEn { @override String get saved => 'Gemt'; @override String get notAvailable => 'Intet match fundet'; @override String get noConnectedServices => 'Forbind en tjeneste i Indstillinger for at bedømme der.'; + @override String get favorite => 'Favorit'; + @override String get favorited => 'Føjet til favoritter'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesDa extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsDa groupings = _TranslationsLibrariesGroupingsDa._(_root); @override late final _TranslationsLibrariesFilterCategoriesDa filterCategories = _TranslationsLibrariesFilterCategoriesDa._(_root); @override late final _TranslationsLibrariesSortLabelsDa sortLabels = _TranslationsLibrariesSortLabelsDa._(_root); + @override String get noItemsMatchFilters => 'Ingen elementer matcher de aktive filtre'; + @override String get resetFilters => 'Nulstil filtre'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherDa extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Fjern'; @override String get guestSwitchUnavailable => 'Kunne ikke skifte — server ikke tilgængelig for synkronisering'; @override String get guestSwitchFailed => 'Kunne ikke skifte — indhold blev ikke fundet på denne server'; + @override String participantNeedsUpdate({required Object name}) => '${name} bruger en ældre appversion — synkronisering er ikke tilgængelig'; + @override String resumingWithout({required Object name}) => 'Fortsætter uden ${name}'; + @override String waitingForName({required Object name}) => 'Venter på ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesDa extends TranslationsLibrariesFilt @override String get contentRating => 'Aldersvurdering'; @override String get tag => 'Tag'; @override String get unwatched => 'Usete'; + @override String get favorites => 'Favoritter'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsDa { 'settings.subtitlesAndConfig' => 'Undertekster og konfiguration', 'settings.seekAndTiming' => 'Søgning og timing', 'settings.behavior' => 'Adfærd', + 'settings.manageLibrariesDescription' => 'Omarranger og skjul biblioteker', + 'settings.visualEffects' => 'Visuelle effekter', + 'settings.visualEffectsAuto' => 'Automatisk', + 'settings.visualEffectsAutoDescription' => 'Reducer automatisk effekter på enheder med lav ydeevne', + 'settings.visualEffectsFull' => 'Fuld', + 'settings.visualEffectsReduced' => 'Reduceret', + 'settings.visualEffectsReducedDescription' => 'Færre animationer og illustrationer i lavere opløsning', 'search.hint' => 'Søg film, serier, musik...', 'search.tryDifferentTerm' => 'Prøv en anden søgning', 'search.searchYourMedia' => 'Søg i dine medier', @@ -2502,6 +2524,8 @@ extension on TranslationsDa { 'rateSheet.saved' => 'Gemt', 'rateSheet.notAvailable' => 'Intet match fundet', 'rateSheet.noConnectedServices' => 'Forbind en tjeneste i Indstillinger for at bedømme der.', + 'rateSheet.favorite' => 'Favorit', + 'rateSheet.favorited' => 'Føjet til favoritter', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsDa { 'messages.errorLoading' => ({required Object error}) => 'Fejl: ${error}', 'messages.streamInterrupted' => 'Streamen blev afbrudt. Tryk på afspil, eller spol for at prøve igen.', 'messages.fileInfoNotAvailable' => 'Filinfo ikke tilgængelig', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fejl ved indlæsning af filinfo: ${error}', 'messages.errorLoadingSeries' => 'Fejl ved indlæsning af serie', 'messages.musicNotSupported' => 'Musikafspilning understøttes endnu ikke', @@ -2619,8 +2645,6 @@ extension on TranslationsDa { 'messages.unableToDetermineLibrarySection' => 'Kan ikke bestemme biblioteksafdeling for dette element', 'messages.logsCleared' => 'Logs ryddet', 'messages.logsCopied' => 'Logs kopieret til udklipsholder', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Ingen logs tilgængelige', 'messages.libraryScanning' => ({required Object title}) => 'Scanner "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksscanning startet for "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsDa { 'libraries.filterCategories.contentRating' => 'Aldersvurdering', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Usete', + 'libraries.filterCategories.favorites' => 'Favoritter', 'libraries.sortLabels.title' => 'Titel', 'libraries.sortLabels.dateAdded' => 'Tilføjet dato', 'libraries.sortLabels.releaseDate' => 'Udgivelsesdato', @@ -2860,6 +2885,8 @@ extension on TranslationsDa { 'libraries.sortLabels.dateShared' => 'Delt dato', 'libraries.sortLabels.latestEpisodeAirDate' => 'Seneste episodes premieredato', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Dato for senest tilføjede episode', + 'libraries.noItemsMatchFilters' => 'Ingen elementer matcher de aktive filtre', + 'libraries.resetFilters' => 'Nulstil filtre', 'about.title' => 'Om', 'about.openSourceLicenses' => 'Open source-licenser', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsDa { 'watchTogether.removeRoom' => 'Fjern', 'watchTogether.guestSwitchUnavailable' => 'Kunne ikke skifte — server ikke tilgængelig for synkronisering', 'watchTogether.guestSwitchFailed' => 'Kunne ikke skifte — indhold blev ikke fundet på denne server', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} bruger en ældre appversion — synkronisering er ikke tilgængelig', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortsætter uden ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Venter på ${name}...', 'downloads.title' => 'Downloads', 'downloads.manage' => 'Administrer', 'downloads.tvShows' => 'TV-serier', 'downloads.movies' => 'Film', 'downloads.music' => 'Musik', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} numre i kø til download', 'downloads.noDownloads' => 'Ingen downloads endnu', 'downloads.noDownloadsDescription' => 'Downloadet indhold vises her til offlinevisning', @@ -3133,8 +3165,6 @@ extension on TranslationsDa { 'downloads.cancelledDownloadTitle' => 'Annulleret download', 'downloads.cancelledDownloadMessage' => 'Denne download blev annulleret. Hvad vil du gøre?', 'downloads.allEpisodesAlreadyDownloaded' => 'Alle episoder er allerede downloadet', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Genoptag download', 'downloads.cancelledDownload' => 'Annulleret download', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserer ${status})', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 327d7e20..84225c82 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsDe extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Untertitel & Konfiguration'; @override String get seekAndTiming => 'Spulen & Timing'; @override String get behavior => 'Verhalten'; + @override String get manageLibrariesDescription => 'Mediatheken neu anordnen und ausblenden'; + @override String get visualEffects => 'Visuelle Effekte'; + @override String get visualEffectsAuto => 'Automatisch'; + @override String get visualEffectsAutoDescription => 'Effekte auf leistungsschwachen Geräten automatisch reduzieren'; + @override String get visualEffectsFull => 'Vollständig'; + @override String get visualEffectsReduced => 'Reduziert'; + @override String get visualEffectsReducedDescription => 'Weniger Animationen und Grafiken mit niedrigerer Auflösung'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetDe extends TranslationsRateSheetEn { @override String get saved => 'Gespeichert'; @override String get notAvailable => 'Keine Übereinstimmung gefunden'; @override String get noConnectedServices => 'Verbinde einen Dienst in den Einstellungen, um dort zu bewerten.'; + @override String get favorite => 'Favorit'; + @override String get favorited => 'Favorisiert'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesDe extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsDe groupings = _TranslationsLibrariesGroupingsDe._(_root); @override late final _TranslationsLibrariesFilterCategoriesDe filterCategories = _TranslationsLibrariesFilterCategoriesDe._(_root); @override late final _TranslationsLibrariesSortLabelsDe sortLabels = _TranslationsLibrariesSortLabelsDe._(_root); + @override String get noItemsMatchFilters => 'Keine Elemente entsprechen den aktiven Filtern'; + @override String get resetFilters => 'Filter zurücksetzen'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherDe extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Entfernen'; @override String get guestSwitchUnavailable => 'Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar'; @override String get guestSwitchFailed => 'Wechsel fehlgeschlagen — Inhalt auf diesem Server nicht gefunden'; + @override String participantNeedsUpdate({required Object name}) => '${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar'; + @override String resumingWithout({required Object name}) => 'Fortfahren ohne ${name}'; + @override String waitingForName({required Object name}) => 'Warten auf ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesDe extends TranslationsLibrariesFilt @override String get contentRating => 'Altersfreigabe'; @override String get tag => 'Tag'; @override String get unwatched => 'Ungesehene'; + @override String get favorites => 'Favoriten'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsDe { 'settings.subtitlesAndConfig' => 'Untertitel & Konfiguration', 'settings.seekAndTiming' => 'Spulen & Timing', 'settings.behavior' => 'Verhalten', + 'settings.manageLibrariesDescription' => 'Mediatheken neu anordnen und ausblenden', + 'settings.visualEffects' => 'Visuelle Effekte', + 'settings.visualEffectsAuto' => 'Automatisch', + 'settings.visualEffectsAutoDescription' => 'Effekte auf leistungsschwachen Geräten automatisch reduzieren', + 'settings.visualEffectsFull' => 'Vollständig', + 'settings.visualEffectsReduced' => 'Reduziert', + 'settings.visualEffectsReducedDescription' => 'Weniger Animationen und Grafiken mit niedrigerer Auflösung', 'search.hint' => 'Filme, Serien, Musik suchen...', 'search.tryDifferentTerm' => 'Anderen Suchbegriff versuchen', 'search.searchYourMedia' => 'In den eigenen Medien suchen', @@ -2502,6 +2524,8 @@ extension on TranslationsDe { 'rateSheet.saved' => 'Gespeichert', 'rateSheet.notAvailable' => 'Keine Übereinstimmung gefunden', 'rateSheet.noConnectedServices' => 'Verbinde einen Dienst in den Einstellungen, um dort zu bewerten.', + 'rateSheet.favorite' => 'Favorit', + 'rateSheet.favorited' => 'Favorisiert', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, Film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, Serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsDe { 'messages.errorLoading' => ({required Object error}) => 'Fehler: ${error}', 'messages.streamInterrupted' => 'Der Stream wurde unterbrochen. Drücke auf Wiedergabe oder spule, um es erneut zu versuchen.', 'messages.fileInfoNotAvailable' => 'Dateiinfo nicht verfügbar', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fehler beim Laden der Dateiinfo: ${error}', 'messages.errorLoadingSeries' => 'Fehler beim Laden der Serie', 'messages.musicNotSupported' => 'Musikwiedergabe wird noch nicht unterstützt', @@ -2619,8 +2645,6 @@ extension on TranslationsDe { 'messages.unableToDetermineLibrarySection' => 'Bibliotheksbereich für dieses Element kann nicht ermittelt werden', 'messages.logsCleared' => 'Protokolle gelöscht', 'messages.logsCopied' => 'Protokolle in Zwischenablage kopiert', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Keine Protokolle verfügbar', 'messages.libraryScanning' => ({required Object title}) => 'Scanne „${title}“...', 'messages.libraryScanStarted' => ({required Object title}) => 'Mediathekscan gestartet für „${title}“', @@ -2839,6 +2863,7 @@ extension on TranslationsDe { 'libraries.filterCategories.contentRating' => 'Altersfreigabe', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Ungesehene', + 'libraries.filterCategories.favorites' => 'Favoriten', 'libraries.sortLabels.title' => 'Titel', 'libraries.sortLabels.dateAdded' => 'Hinzugefügt am', 'libraries.sortLabels.releaseDate' => 'Erscheinungsdatum', @@ -2860,6 +2885,8 @@ extension on TranslationsDe { 'libraries.sortLabels.dateShared' => 'Datum geteilt', 'libraries.sortLabels.latestEpisodeAirDate' => 'Letztes Folgenausstrahlungsdatum', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum der zuletzt hinzugefügten Folge', + 'libraries.noItemsMatchFilters' => 'Keine Elemente entsprechen den aktiven Filtern', + 'libraries.resetFilters' => 'Filter zurücksetzen', 'about.title' => 'Über', 'about.openSourceLicenses' => 'Open-Source-Lizenzen', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsDe { 'watchTogether.removeRoom' => 'Entfernen', 'watchTogether.guestSwitchUnavailable' => 'Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar', 'watchTogether.guestSwitchFailed' => 'Wechsel fehlgeschlagen — Inhalt auf diesem Server nicht gefunden', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortfahren ohne ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Warten auf ${name}...', 'downloads.title' => 'Downloads', 'downloads.manage' => 'Verwalten', 'downloads.tvShows' => 'Serien', 'downloads.movies' => 'Filme', 'downloads.music' => 'Musik', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} Titel zum Download in Warteschlange', 'downloads.noDownloads' => 'Noch keine Downloads', 'downloads.noDownloadsDescription' => 'Heruntergeladene Inhalte werden hier für die Offline-Wiedergabe angezeigt', @@ -3133,8 +3165,6 @@ extension on TranslationsDe { 'downloads.cancelledDownloadTitle' => 'Abgebrochener Download', 'downloads.cancelledDownloadMessage' => 'Dieser Download wurde abgebrochen. Was möchtest du tun?', 'downloads.allEpisodesAlreadyDownloaded' => 'Alle Episoden sind bereits heruntergeladen', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Download fortsetzen', 'downloads.cancelledDownload' => 'Abgebrochener Download', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} wird synchronisiert)', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index e7266a0b..c9dd1556 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsEs extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Subtítulos y configuración'; @override String get seekAndTiming => 'Búsqueda y tiempo'; @override String get behavior => 'Comportamiento'; + @override String get manageLibrariesDescription => 'Reordena y oculta bibliotecas'; + @override String get visualEffects => 'Efectos visuales'; + @override String get visualEffectsAuto => 'Automático'; + @override String get visualEffectsAutoDescription => 'Reduce automáticamente los efectos en dispositivos de bajo consumo'; + @override String get visualEffectsFull => 'Completos'; + @override String get visualEffectsReduced => 'Reducidos'; + @override String get visualEffectsReducedDescription => 'Menos animaciones e ilustraciones de menor resolución'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetEs extends TranslationsRateSheetEn { @override String get saved => 'Guardado'; @override String get notAvailable => 'No se encontró coincidencia'; @override String get noConnectedServices => 'Conecta un servicio en Configuración para calificar ahí.'; + @override String get favorite => 'Favorito'; + @override String get favorited => 'Marcado como favorito'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesEs extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsEs groupings = _TranslationsLibrariesGroupingsEs._(_root); @override late final _TranslationsLibrariesFilterCategoriesEs filterCategories = _TranslationsLibrariesFilterCategoriesEs._(_root); @override late final _TranslationsLibrariesSortLabelsEs sortLabels = _TranslationsLibrariesSortLabelsEs._(_root); + @override String get noItemsMatchFilters => 'Ningún elemento coincide con los filtros activos'; + @override String get resetFilters => 'Restablecer filtros'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherEs extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Eliminar'; @override String get guestSwitchUnavailable => 'No se pudo cambiar — servidor no disponible para sincronización'; @override String get guestSwitchFailed => 'No se pudo cambiar — contenido no encontrado en este servidor'; + @override String participantNeedsUpdate({required Object name}) => '${name} usa una versión anterior de la app — sincronización no disponible'; + @override String resumingWithout({required Object name}) => 'Reanudando sin ${name}'; + @override String waitingForName({required Object name}) => 'Esperando a ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesEs extends TranslationsLibrariesFilt @override String get contentRating => 'Clasificación'; @override String get tag => 'Etiqueta'; @override String get unwatched => 'No vistos'; + @override String get favorites => 'Favoritos'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsEs { 'settings.subtitlesAndConfig' => 'Subtítulos y configuración', 'settings.seekAndTiming' => 'Búsqueda y tiempo', 'settings.behavior' => 'Comportamiento', + 'settings.manageLibrariesDescription' => 'Reordena y oculta bibliotecas', + 'settings.visualEffects' => 'Efectos visuales', + 'settings.visualEffectsAuto' => 'Automático', + 'settings.visualEffectsAutoDescription' => 'Reduce automáticamente los efectos en dispositivos de bajo consumo', + 'settings.visualEffectsFull' => 'Completos', + 'settings.visualEffectsReduced' => 'Reducidos', + 'settings.visualEffectsReducedDescription' => 'Menos animaciones e ilustraciones de menor resolución', 'search.hint' => 'Buscar películas, series, música...', 'search.tryDifferentTerm' => 'Prueba con un término de búsqueda diferente', 'search.searchYourMedia' => 'Busca en tu contenido', @@ -2502,6 +2524,8 @@ extension on TranslationsEs { 'rateSheet.saved' => 'Guardado', 'rateSheet.notAvailable' => 'No se encontró coincidencia', 'rateSheet.noConnectedServices' => 'Conecta un servicio en Configuración para calificar ahí.', + 'rateSheet.favorite' => 'Favorito', + 'rateSheet.favorited' => 'Marcado como favorito', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, película', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serie de TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsEs { 'messages.errorLoading' => ({required Object error}) => 'Error: ${error}', 'messages.streamInterrupted' => 'La reproducción se interrumpió. Pulsa reproducir o avanza para volver a intentarlo.', 'messages.fileInfoNotAvailable' => 'Información de archivo no disponible', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error al cargar info de archivo: ${error}', 'messages.errorLoadingSeries' => 'Error al cargar la serie', 'messages.musicNotSupported' => 'La reproducción de música aún no está soportada', @@ -2619,8 +2645,6 @@ extension on TranslationsEs { 'messages.unableToDetermineLibrarySection' => 'No se puede determinar la sección de biblioteca para este elemento', 'messages.logsCleared' => 'Logs borrados', 'messages.logsCopied' => 'Logs copiados al portapapeles', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'No hay logs disponibles', 'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Escaneo de biblioteca iniciado para "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsEs { 'libraries.filterCategories.contentRating' => 'Clasificación', 'libraries.filterCategories.tag' => 'Etiqueta', 'libraries.filterCategories.unwatched' => 'No vistos', + 'libraries.filterCategories.favorites' => 'Favoritos', 'libraries.sortLabels.title' => 'Título', 'libraries.sortLabels.dateAdded' => 'Fecha de adición', 'libraries.sortLabels.releaseDate' => 'Fecha de estreno', @@ -2860,6 +2885,8 @@ extension on TranslationsEs { 'libraries.sortLabels.dateShared' => 'Fecha de compartición', 'libraries.sortLabels.latestEpisodeAirDate' => 'Última fecha de emisión del episodio', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Fecha de adición del último episodio', + 'libraries.noItemsMatchFilters' => 'Ningún elemento coincide con los filtros activos', + 'libraries.resetFilters' => 'Restablecer filtros', 'about.title' => 'Acerca de', 'about.openSourceLicenses' => 'Licencias de Código Abierto', 'about.versionLabel' => ({required Object version}) => 'Versión ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsEs { 'watchTogether.removeRoom' => 'Eliminar', 'watchTogether.guestSwitchUnavailable' => 'No se pudo cambiar — servidor no disponible para sincronización', 'watchTogether.guestSwitchFailed' => 'No se pudo cambiar — contenido no encontrado en este servidor', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} usa una versión anterior de la app — sincronización no disponible', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Reanudando sin ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Esperando a ${name}...', 'downloads.title' => 'Descargas', 'downloads.manage' => 'Gestionar', 'downloads.tvShows' => 'Series de TV', 'downloads.movies' => 'Películas', 'downloads.music' => 'Música', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} canciones en cola para descargar', 'downloads.noDownloads' => 'No hay descargas aún', 'downloads.noDownloadsDescription' => 'El contenido descargado aparecerá aquí para verlo sin conexión', @@ -3133,8 +3165,6 @@ extension on TranslationsEs { 'downloads.cancelledDownloadTitle' => 'Descarga cancelada', 'downloads.cancelledDownloadMessage' => 'Esta descarga se canceló. ¿Qué quieres hacer?', 'downloads.allEpisodesAlreadyDownloaded' => 'Todos los episodios ya están descargados', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Reanudar descarga', 'downloads.cancelledDownload' => 'Descarga cancelada', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizando ${status})', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 326a0164..682c64ab 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsFr extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Sous-titres et configuration'; @override String get seekAndTiming => 'Recherche et minutage'; @override String get behavior => 'Comportement'; + @override String get manageLibrariesDescription => 'Réorganiser et masquer les bibliothèques'; + @override String get visualEffects => 'Effets visuels'; + @override String get visualEffectsAuto => 'Automatique'; + @override String get visualEffectsAutoDescription => 'Réduire automatiquement les effets sur les appareils peu puissants'; + @override String get visualEffectsFull => 'Complets'; + @override String get visualEffectsReduced => 'Réduits'; + @override String get visualEffectsReducedDescription => 'Moins d’animations et d’illustrations de plus faible résolution'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetFr extends TranslationsRateSheetEn { @override String get saved => 'Enregistré'; @override String get notAvailable => 'Aucune correspondance trouvée'; @override String get noConnectedServices => 'Connectez un service dans les Réglages pour noter ici.'; + @override String get favorite => 'Favori'; + @override String get favorited => 'Ajouté aux favoris'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesFr extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsFr groupings = _TranslationsLibrariesGroupingsFr._(_root); @override late final _TranslationsLibrariesFilterCategoriesFr filterCategories = _TranslationsLibrariesFilterCategoriesFr._(_root); @override late final _TranslationsLibrariesSortLabelsFr sortLabels = _TranslationsLibrariesSortLabelsFr._(_root); + @override String get noItemsMatchFilters => 'Aucun élément ne correspond aux filtres actifs'; + @override String get resetFilters => 'Réinitialiser les filtres'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherFr extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Supprimer'; @override String get guestSwitchUnavailable => 'Impossible de changer — serveur indisponible pour la synchronisation'; @override String get guestSwitchFailed => 'Impossible de changer — contenu introuvable sur ce serveur'; + @override String participantNeedsUpdate({required Object name}) => '${name} utilise une ancienne version de l’app — synchronisation indisponible'; + @override String resumingWithout({required Object name}) => 'Reprise sans ${name}'; + @override String waitingForName({required Object name}) => 'En attente de ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesFr extends TranslationsLibrariesFilt @override String get contentRating => 'Classification'; @override String get tag => 'Tag'; @override String get unwatched => 'Non vus'; + @override String get favorites => 'Favoris'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsFr { 'settings.subtitlesAndConfig' => 'Sous-titres et configuration', 'settings.seekAndTiming' => 'Recherche et minutage', 'settings.behavior' => 'Comportement', + 'settings.manageLibrariesDescription' => 'Réorganiser et masquer les bibliothèques', + 'settings.visualEffects' => 'Effets visuels', + 'settings.visualEffectsAuto' => 'Automatique', + 'settings.visualEffectsAutoDescription' => 'Réduire automatiquement les effets sur les appareils peu puissants', + 'settings.visualEffectsFull' => 'Complets', + 'settings.visualEffectsReduced' => 'Réduits', + 'settings.visualEffectsReducedDescription' => 'Moins d’animations et d’illustrations de plus faible résolution', 'search.hint' => 'Rechercher des films, des séries, de la musique...', 'search.tryDifferentTerm' => 'Essayez un autre terme de recherche', 'search.searchYourMedia' => 'Rechercher dans vos médias', @@ -2502,6 +2524,8 @@ extension on TranslationsFr { 'rateSheet.saved' => 'Enregistré', 'rateSheet.notAvailable' => 'Aucune correspondance trouvée', 'rateSheet.noConnectedServices' => 'Connectez un service dans les Réglages pour noter ici.', + 'rateSheet.favorite' => 'Favori', + 'rateSheet.favorited' => 'Ajouté aux favoris', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, show TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsFr { 'messages.errorLoading' => ({required Object error}) => 'Erreur: ${error}', 'messages.streamInterrupted' => 'La lecture a été interrompue. Appuyez sur Lecture ou avancez pour réessayer.', 'messages.fileInfoNotAvailable' => 'Informations sur le fichier non disponibles', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erreur lors du chargement des informations sur le fichier: ${error}', 'messages.errorLoadingSeries' => 'Erreur lors du chargement de la série', 'messages.musicNotSupported' => 'La lecture de musique n\'est pas encore prise en charge', @@ -2619,8 +2645,6 @@ extension on TranslationsFr { 'messages.unableToDetermineLibrarySection' => 'Impossible de déterminer la section de la bibliothèque pour cet élément', 'messages.logsCleared' => 'Logs effacés', 'messages.logsCopied' => 'Logs copiés dans le presse-papier', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Aucun log disponible', 'messages.libraryScanning' => ({required Object title}) => 'Scan de "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Scan de la bibliothèque démarrée pour "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsFr { 'libraries.filterCategories.contentRating' => 'Classification', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Non vus', + 'libraries.filterCategories.favorites' => 'Favoris', 'libraries.sortLabels.title' => 'Titre', 'libraries.sortLabels.dateAdded' => 'Date d\'ajout', 'libraries.sortLabels.releaseDate' => 'Date de sortie', @@ -2860,6 +2885,8 @@ extension on TranslationsFr { 'libraries.sortLabels.dateShared' => 'Date de partage', 'libraries.sortLabels.latestEpisodeAirDate' => 'Dernière date de diffusion', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Date d\'ajout du dernier épisode', + 'libraries.noItemsMatchFilters' => 'Aucun élément ne correspond aux filtres actifs', + 'libraries.resetFilters' => 'Réinitialiser les filtres', 'about.title' => 'À propos', 'about.openSourceLicenses' => 'Licences Open Source', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsFr { 'watchTogether.removeRoom' => 'Supprimer', 'watchTogether.guestSwitchUnavailable' => 'Impossible de changer — serveur indisponible pour la synchronisation', 'watchTogether.guestSwitchFailed' => 'Impossible de changer — contenu introuvable sur ce serveur', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} utilise une ancienne version de l’app — synchronisation indisponible', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Reprise sans ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'En attente de ${name}...', 'downloads.title' => 'Téléchargements', 'downloads.manage' => 'Gérer', 'downloads.tvShows' => 'Show TV', 'downloads.movies' => 'Films', 'downloads.music' => 'Musique', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} titres en file d\'attente de téléchargement', 'downloads.noDownloads' => 'Aucun téléchargement pour le moment', 'downloads.noDownloadsDescription' => 'Le contenu téléchargé apparaîtra ici pour être consulté hors ligne.', @@ -3133,8 +3165,6 @@ extension on TranslationsFr { 'downloads.cancelledDownloadTitle' => 'Téléchargement annulé', 'downloads.cancelledDownloadMessage' => 'Ce téléchargement a été annulé. Que voulez-vous faire ?', 'downloads.allEpisodesAlreadyDownloaded' => 'Tous les épisodes sont déjà téléchargés', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Reprendre le téléchargement', 'downloads.cancelledDownload' => 'Téléchargement annulé', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synchronisation ${status})', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index 8a01b6ca..af19112d 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsIt extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Sottotitoli e configurazione'; @override String get seekAndTiming => 'Ricerca e tempistica'; @override String get behavior => 'Comportamento'; + @override String get manageLibrariesDescription => 'Riordina e nascondi le librerie'; + @override String get visualEffects => 'Effetti visivi'; + @override String get visualEffectsAuto => 'Automatico'; + @override String get visualEffectsAutoDescription => 'Riduci automaticamente gli effetti sui dispositivi a basso consumo'; + @override String get visualEffectsFull => 'Completi'; + @override String get visualEffectsReduced => 'Ridotti'; + @override String get visualEffectsReducedDescription => 'Meno animazioni e immagini a risoluzione inferiore'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetIt extends TranslationsRateSheetEn { @override String get saved => 'Salvato'; @override String get notAvailable => 'Nessuna corrispondenza trovata'; @override String get noConnectedServices => 'Connetti un servizio nelle Impostazioni per valutare lì.'; + @override String get favorite => 'Preferito'; + @override String get favorited => 'Aggiunto ai preferiti'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesIt extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsIt groupings = _TranslationsLibrariesGroupingsIt._(_root); @override late final _TranslationsLibrariesFilterCategoriesIt filterCategories = _TranslationsLibrariesFilterCategoriesIt._(_root); @override late final _TranslationsLibrariesSortLabelsIt sortLabels = _TranslationsLibrariesSortLabelsIt._(_root); + @override String get noItemsMatchFilters => 'Nessun elemento corrisponde ai filtri attivi'; + @override String get resetFilters => 'Reimposta filtri'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherIt extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Rimuovi'; @override String get guestSwitchUnavailable => 'Impossibile cambiare — server non disponibile per la sincronizzazione'; @override String get guestSwitchFailed => 'Impossibile cambiare — contenuto non trovato su questo server'; + @override String participantNeedsUpdate({required Object name}) => '${name} usa una versione precedente dell\'app — sincronizzazione non disponibile'; + @override String resumingWithout({required Object name}) => 'Ripresa senza ${name}'; + @override String waitingForName({required Object name}) => 'In attesa di ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesIt extends TranslationsLibrariesFilt @override String get contentRating => 'Classificazione'; @override String get tag => 'Tag'; @override String get unwatched => 'Non visti'; + @override String get favorites => 'Preferiti'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsIt { 'settings.subtitlesAndConfig' => 'Sottotitoli e configurazione', 'settings.seekAndTiming' => 'Ricerca e tempistica', 'settings.behavior' => 'Comportamento', + 'settings.manageLibrariesDescription' => 'Riordina e nascondi le librerie', + 'settings.visualEffects' => 'Effetti visivi', + 'settings.visualEffectsAuto' => 'Automatico', + 'settings.visualEffectsAutoDescription' => 'Riduci automaticamente gli effetti sui dispositivi a basso consumo', + 'settings.visualEffectsFull' => 'Completi', + 'settings.visualEffectsReduced' => 'Ridotti', + 'settings.visualEffectsReducedDescription' => 'Meno animazioni e immagini a risoluzione inferiore', 'search.hint' => 'Cerca film. spettacoli, musica...', 'search.tryDifferentTerm' => 'Prova altri termini di ricerca', 'search.searchYourMedia' => 'Cerca nei tuoi media', @@ -2502,6 +2524,8 @@ extension on TranslationsIt { 'rateSheet.saved' => 'Salvato', 'rateSheet.notAvailable' => 'Nessuna corrispondenza trovata', 'rateSheet.noConnectedServices' => 'Connetti un servizio nelle Impostazioni per valutare lì.', + 'rateSheet.favorite' => 'Preferito', + 'rateSheet.favorited' => 'Aggiunto ai preferiti', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serie TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsIt { 'messages.errorLoading' => ({required Object error}) => 'Errore: ${error}', 'messages.streamInterrupted' => 'La riproduzione si è interrotta. Premi Riproduci o scorri per riprovare.', 'messages.fileInfoNotAvailable' => 'Informazioni sul file non disponibili', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Errore caricamento informazioni sul file: ${error}', 'messages.errorLoadingSeries' => 'Errore caricamento serie', 'messages.musicNotSupported' => 'La riproduzione musicale non è ancora supportata', @@ -2619,8 +2645,6 @@ extension on TranslationsIt { 'messages.unableToDetermineLibrarySection' => 'Impossibile determinare la sezione della libreria per questo elemento', 'messages.logsCleared' => 'Log eliminati', 'messages.logsCopied' => 'Log copiati negli appunti', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Nessun log disponibile', 'messages.libraryScanning' => ({required Object title}) => 'Scansione "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Scansione libreria iniziata per "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsIt { 'libraries.filterCategories.contentRating' => 'Classificazione', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Non visti', + 'libraries.filterCategories.favorites' => 'Preferiti', 'libraries.sortLabels.title' => 'Titolo', 'libraries.sortLabels.dateAdded' => 'Data di aggiunta', 'libraries.sortLabels.releaseDate' => 'Data di uscita', @@ -2860,6 +2885,8 @@ extension on TranslationsIt { 'libraries.sortLabels.dateShared' => 'Data di condivisione', 'libraries.sortLabels.latestEpisodeAirDate' => 'Data ultima messa in onda', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data aggiunta ultimo episodio', + 'libraries.noItemsMatchFilters' => 'Nessun elemento corrisponde ai filtri attivi', + 'libraries.resetFilters' => 'Reimposta filtri', 'about.title' => 'Informazioni', 'about.openSourceLicenses' => 'Licenze Open Source', 'about.versionLabel' => ({required Object version}) => 'Versione ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsIt { 'watchTogether.removeRoom' => 'Rimuovi', 'watchTogether.guestSwitchUnavailable' => 'Impossibile cambiare — server non disponibile per la sincronizzazione', 'watchTogether.guestSwitchFailed' => 'Impossibile cambiare — contenuto non trovato su questo server', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} usa una versione precedente dell\'app — sincronizzazione non disponibile', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Ripresa senza ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'In attesa di ${name}...', 'downloads.title' => 'Download', 'downloads.manage' => 'Gestisci', 'downloads.tvShows' => 'Serie TV', 'downloads.movies' => 'Film', 'downloads.music' => 'Musica', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} brani in coda per il download', 'downloads.noDownloads' => 'Nessun download', 'downloads.noDownloadsDescription' => 'I contenuti scaricati appariranno qui per la visualizzazione offline', @@ -3133,8 +3165,6 @@ extension on TranslationsIt { 'downloads.cancelledDownloadTitle' => 'Download annullato', 'downloads.cancelledDownloadMessage' => 'Questo download è stato annullato. Cosa vuoi fare?', 'downloads.allEpisodesAlreadyDownloaded' => 'Tutti gli episodi sono già stati scaricati', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Riprendi download', 'downloads.cancelledDownload' => 'Download annullato', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizzazione ${status})', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index a0aa85b5..f026bfb7 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsJa extends TranslationsSettingsEn { @override String get subtitlesAndConfig => '字幕と設定'; @override String get seekAndTiming => 'シークとタイミング'; @override String get behavior => '動作'; + @override String get manageLibrariesDescription => 'ライブラリを並べ替えたり非表示にしたりできます'; + @override String get visualEffects => '視覚効果'; + @override String get visualEffectsAuto => '自動'; + @override String get visualEffectsAutoDescription => '低性能なデバイスでは効果を自動的に減らします'; + @override String get visualEffectsFull => 'フル'; + @override String get visualEffectsReduced => '軽減'; + @override String get visualEffectsReducedDescription => 'アニメーションを減らし、低解像度のアートワークを使用します'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetJa extends TranslationsRateSheetEn { @override String get saved => '保存済み'; @override String get notAvailable => '一致なし'; @override String get noConnectedServices => '評価するには、設定でサービスを接続してください。'; + @override String get favorite => 'お気に入り'; + @override String get favorited => 'お気に入りに追加済み'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesJa extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsJa groupings = _TranslationsLibrariesGroupingsJa._(_root); @override late final _TranslationsLibrariesFilterCategoriesJa filterCategories = _TranslationsLibrariesFilterCategoriesJa._(_root); @override late final _TranslationsLibrariesSortLabelsJa sortLabels = _TranslationsLibrariesSortLabelsJa._(_root); + @override String get noItemsMatchFilters => '有効なフィルターに一致する項目はありません'; + @override String get resetFilters => 'フィルターをリセット'; } // Path: about @@ -1339,6 +1350,9 @@ class _TranslationsWatchTogetherJa extends TranslationsWatchTogetherEn { @override String get removeRoom => '削除'; @override String get guestSwitchUnavailable => '切り替えできません — サーバーが同期できません'; @override String get guestSwitchFailed => '切り替えできません — このサーバーにコンテンツが見つかりません'; + @override String participantNeedsUpdate({required Object name}) => '${name} は古いバージョンのアプリを使用しているため、同期できません'; + @override String resumingWithout({required Object name}) => '${name} なしで再開'; + @override String waitingForName({required Object name}) => '${name}を待っています...'; } // Path: downloads @@ -1873,6 +1887,7 @@ class _TranslationsLibrariesFilterCategoriesJa extends TranslationsLibrariesFilt @override String get contentRating => '視聴年齢区分'; @override String get tag => 'タグ'; @override String get unwatched => '未視聴'; + @override String get favorites => 'お気に入り'; } // Path: libraries.sortLabels @@ -2418,6 +2433,13 @@ extension on TranslationsJa { 'settings.subtitlesAndConfig' => '字幕と設定', 'settings.seekAndTiming' => 'シークとタイミング', 'settings.behavior' => '動作', + 'settings.manageLibrariesDescription' => 'ライブラリを並べ替えたり非表示にしたりできます', + 'settings.visualEffects' => '視覚効果', + 'settings.visualEffectsAuto' => '自動', + 'settings.visualEffectsAutoDescription' => '低性能なデバイスでは効果を自動的に減らします', + 'settings.visualEffectsFull' => 'フル', + 'settings.visualEffectsReduced' => '軽減', + 'settings.visualEffectsReducedDescription' => 'アニメーションを減らし、低解像度のアートワークを使用します', 'search.hint' => '映画、番組、音楽を検索...', 'search.tryDifferentTerm' => '別の検索語をお試しください', 'search.searchYourMedia' => 'メディアを検索', @@ -2500,6 +2522,8 @@ extension on TranslationsJa { 'rateSheet.saved' => '保存済み', 'rateSheet.notAvailable' => '一致なし', 'rateSheet.noConnectedServices' => '評価するには、設定でサービスを接続してください。', + 'rateSheet.favorite' => 'お気に入り', + 'rateSheet.favorited' => 'お気に入りに追加済み', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}、映画', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}、テレビ番組', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}、${episodeInfo}', @@ -2608,6 +2632,8 @@ extension on TranslationsJa { 'messages.errorLoading' => ({required Object error}) => 'エラー: ${error}', 'messages.streamInterrupted' => 'ストリームが中断されました。再生を押すかシークして再試行してください。', 'messages.fileInfoNotAvailable' => 'ファイル情報が利用できません', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'ファイル情報の読み込みエラー: ${error}', 'messages.errorLoadingSeries' => 'シリーズの読み込みエラー', 'messages.musicNotSupported' => '音楽の再生はまだサポートされていません', @@ -2617,8 +2643,6 @@ extension on TranslationsJa { 'messages.unableToDetermineLibrarySection' => 'このアイテムのライブラリセクションを判別できません', 'messages.logsCleared' => 'ログをクリアしました', 'messages.logsCopied' => 'ログをクリップボードにコピーしました', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'ログがありません', 'messages.libraryScanning' => ({required Object title}) => '"${title}"をスキャン中...', 'messages.libraryScanStarted' => ({required Object title}) => '"${title}"のライブラリスキャンを開始しました', @@ -2837,6 +2861,7 @@ extension on TranslationsJa { 'libraries.filterCategories.contentRating' => '視聴年齢区分', 'libraries.filterCategories.tag' => 'タグ', 'libraries.filterCategories.unwatched' => '未視聴', + 'libraries.filterCategories.favorites' => 'お気に入り', 'libraries.sortLabels.title' => 'タイトル', 'libraries.sortLabels.dateAdded' => '追加日', 'libraries.sortLabels.releaseDate' => 'リリース日', @@ -2858,6 +2883,8 @@ extension on TranslationsJa { 'libraries.sortLabels.dateShared' => '共有日', 'libraries.sortLabels.latestEpisodeAirDate' => '最新エピソード放送日', 'libraries.sortLabels.lastEpisodeDateAdded' => '最新エピソード追加日', + 'libraries.noItemsMatchFilters' => '有効なフィルターに一致する項目はありません', + 'libraries.resetFilters' => 'フィルターをリセット', 'about.title' => 'アプリについて', 'about.openSourceLicenses' => 'オープンソースライセンス', 'about.versionLabel' => ({required Object version}) => 'バージョン ${version}', @@ -3111,11 +3138,16 @@ extension on TranslationsJa { 'watchTogether.removeRoom' => '削除', 'watchTogether.guestSwitchUnavailable' => '切り替えできません — サーバーが同期できません', 'watchTogether.guestSwitchFailed' => '切り替えできません — このサーバーにコンテンツが見つかりません', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} は古いバージョンのアプリを使用しているため、同期できません', + 'watchTogether.resumingWithout' => ({required Object name}) => '${name} なしで再開', + 'watchTogether.waitingForName' => ({required Object name}) => '${name}を待っています...', 'downloads.title' => 'ダウンロード', 'downloads.manage' => '管理', 'downloads.tvShows' => 'テレビ番組', 'downloads.movies' => '映画', 'downloads.music' => '音楽', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} 曲をダウンロード待機中', 'downloads.noDownloads' => 'ダウンロードなし', 'downloads.noDownloadsDescription' => 'ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます', @@ -3131,8 +3163,6 @@ extension on TranslationsJa { 'downloads.cancelledDownloadTitle' => 'キャンセルされたダウンロード', 'downloads.cancelledDownloadMessage' => 'このダウンロードはキャンセルされました。どうしますか?', 'downloads.allEpisodesAlreadyDownloaded' => 'すべてのエピソードはすでにダウンロード済みです', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'ダウンロードを再開', 'downloads.cancelledDownload' => 'キャンセルされたダウンロード', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(${status}を同期中)', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index 27c21def..dcfa32b8 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -271,6 +271,12 @@ class _TranslationsSettingsKo extends TranslationsSettingsEn { @override String get tvFullCardLayoutDescription => 'TV 카드에 이미지만 표시하고 배우 이름을 오버레이로 표시'; @override String get focusGlow => '포커스 글로우'; @override String get focusGlowDescription => '포커스된 카드 주위에 은은한 빛 효과를 표시'; + @override String get visualEffects => '시각 효과'; + @override String get visualEffectsAuto => '자동'; + @override String get visualEffectsAutoDescription => '저전력 기기에서 효과를 자동으로 줄입니다'; + @override String get visualEffectsFull => '전체'; + @override String get visualEffectsReduced => '축소'; + @override String get visualEffectsReducedDescription => '애니메이션을 줄이고 아트워크 해상도를 낮춥니다'; @override String get hideSpoilers => '미시청 에피소드 스포일러 숨기기'; @override String get hideSpoilersDescription => '시청하지 않은 에피소드의 썸네일과 설명을 흐리게 처리'; @override String get playerBackend => '플레이어 백엔드'; @@ -381,6 +387,7 @@ class _TranslationsSettingsKo extends TranslationsSettingsEn { @override String get traktDescription => 'Trakt와 시청 기록 동기화'; @override String get services => '서비스'; @override String get servicesDescription => 'Trakt, MyAnimeList, Seerr 등 연결'; + @override String get manageLibrariesDescription => '라이브러리 순서를 변경하거나 숨깁니다'; @override String get companionRemoteServer => '컴패니언 리모트 서버'; @override String get companionRemoteServerDescription => '네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용'; @override String get autoPip => '자동 PIP 모드'; @@ -555,6 +562,8 @@ class _TranslationsRateSheetKo extends TranslationsRateSheetEn { @override String starValue({required Object rating}) => '${rating} / 5'; @override String scoreValue({required Object score}) => '${score} / 10'; @override String get setScore => '점수 설정'; + @override String get favorite => '즐겨찾기'; + @override String get favorited => '즐겨찾기됨'; @override String get saved => '저장됨'; @override String get notAvailable => '일치 항목 없음'; @override String get noConnectedServices => '평가하려면 설정에서 서비스를 연결하세요.'; @@ -964,6 +973,8 @@ class _TranslationsLibrariesKo extends TranslationsLibrariesEn { @override String get allLibrariesHidden => '모든 라이브러리가 숨겨졌습니다'; @override String hiddenLibrariesCount({required Object count}) => '숨겨진 라이브러리 (${count})'; @override String get thisLibraryIsEmpty => '이 미디어 라이브러리는 비어 있습니다'; + @override String get noItemsMatchFilters => '활성화된 필터와 일치하는 항목이 없습니다'; + @override String get resetFilters => '필터 초기화'; @override String get all => '전체'; @override String get clearAll => '모두 삭제'; @override String scanLibraryConfirm({required Object title}) => '「${title}」를 스캔 하시겠습니까?'; @@ -1333,7 +1344,10 @@ class _TranslationsWatchTogetherKo extends TranslationsWatchTogetherEn { @override String participantResumed({required Object name}) => '${name}님이 재생했습니다'; @override String participantSeeked({required Object name}) => '${name}님이 탐색했습니다'; @override String participantBuffering({required Object name}) => '${name}님이 버퍼링 중입니다'; + @override String participantNeedsUpdate({required Object name}) => '${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다'; + @override String resumingWithout({required Object name}) => '${name}님 없이 재생을 재개합니다'; @override String get waitingForParticipants => '다른 참가자의 로딩을 기다리는 중...'; + @override String waitingForName({required Object name}) => '${name}님을 기다리는 중...'; @override String get recentRooms => '최근 방'; @override String get renameRoom => '방 이름 변경'; @override String get removeRoom => '제거'; @@ -1873,6 +1887,7 @@ class _TranslationsLibrariesFilterCategoriesKo extends TranslationsLibrariesFilt @override String get contentRating => '시청 등급'; @override String get tag => '태그'; @override String get unwatched => '미시청'; + @override String get favorites => '즐겨찾기'; } // Path: libraries.sortLabels @@ -2234,6 +2249,12 @@ extension on TranslationsKo { 'settings.tvFullCardLayoutDescription' => 'TV 카드에 이미지만 표시하고 배우 이름을 오버레이로 표시', 'settings.focusGlow' => '포커스 글로우', 'settings.focusGlowDescription' => '포커스된 카드 주위에 은은한 빛 효과를 표시', + 'settings.visualEffects' => '시각 효과', + 'settings.visualEffectsAuto' => '자동', + 'settings.visualEffectsAutoDescription' => '저전력 기기에서 효과를 자동으로 줄입니다', + 'settings.visualEffectsFull' => '전체', + 'settings.visualEffectsReduced' => '축소', + 'settings.visualEffectsReducedDescription' => '애니메이션을 줄이고 아트워크 해상도를 낮춥니다', 'settings.hideSpoilers' => '미시청 에피소드 스포일러 숨기기', 'settings.hideSpoilersDescription' => '시청하지 않은 에피소드의 썸네일과 설명을 흐리게 처리', 'settings.playerBackend' => '플레이어 백엔드', @@ -2344,6 +2365,7 @@ extension on TranslationsKo { 'settings.traktDescription' => 'Trakt와 시청 기록 동기화', 'settings.services' => '서비스', 'settings.servicesDescription' => 'Trakt, MyAnimeList, Seerr 등 연결', + 'settings.manageLibrariesDescription' => '라이브러리 순서를 변경하거나 숨깁니다', 'settings.companionRemoteServer' => '컴패니언 리모트 서버', 'settings.companionRemoteServerDescription' => '네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용', 'settings.autoPip' => '자동 PIP 모드', @@ -2497,6 +2519,8 @@ extension on TranslationsKo { 'rateSheet.starValue' => ({required Object rating}) => '${rating} / 5', 'rateSheet.scoreValue' => ({required Object score}) => '${score} / 10', 'rateSheet.setScore' => '점수 설정', + 'rateSheet.favorite' => '즐겨찾기', + 'rateSheet.favorited' => '즐겨찾기됨', 'rateSheet.saved' => '저장됨', 'rateSheet.notAvailable' => '일치 항목 없음', 'rateSheet.noConnectedServices' => '평가하려면 설정에서 서비스를 연결하세요.', @@ -2608,6 +2632,8 @@ extension on TranslationsKo { 'messages.errorLoading' => ({required Object error}) => '오류: ${error}', 'messages.streamInterrupted' => '스트림이 중단되었습니다. 재생을 누르거나 탐색하여 다시 시도하세요.', 'messages.fileInfoNotAvailable' => '파일 정보가 없습니다', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => '파일 정보 로딩 중 오류: ${error}', 'messages.errorLoadingSeries' => '시리즈 로딩 중 오류', 'messages.musicNotSupported' => '음악 재생 미지원', @@ -2617,8 +2643,6 @@ extension on TranslationsKo { 'messages.unableToDetermineLibrarySection' => '이 항목의 라이브러리 섹션을 확인할 수 없습니다', 'messages.logsCleared' => '로그가 삭제 되었습니다', 'messages.logsCopied' => '로그가 클립보드에 복사 되었습니다', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => '사용 가능한 로그가 없습니다', 'messages.libraryScanning' => ({required Object title}) => '"${title}"을(를) 스캔 중입니다...', 'messages.libraryScanStarted' => ({required Object title}) => '"${title}" 미디어 라이브러리 스캔 시작', @@ -2797,6 +2821,8 @@ extension on TranslationsKo { 'libraries.allLibrariesHidden' => '모든 라이브러리가 숨겨졌습니다', 'libraries.hiddenLibrariesCount' => ({required Object count}) => '숨겨진 라이브러리 (${count})', 'libraries.thisLibraryIsEmpty' => '이 미디어 라이브러리는 비어 있습니다', + 'libraries.noItemsMatchFilters' => '활성화된 필터와 일치하는 항목이 없습니다', + 'libraries.resetFilters' => '필터 초기화', 'libraries.all' => '전체', 'libraries.clearAll' => '모두 삭제', 'libraries.scanLibraryConfirm' => ({required Object title}) => '「${title}」를 스캔 하시겠습니까?', @@ -2837,6 +2863,7 @@ extension on TranslationsKo { 'libraries.filterCategories.contentRating' => '시청 등급', 'libraries.filterCategories.tag' => '태그', 'libraries.filterCategories.unwatched' => '미시청', + 'libraries.filterCategories.favorites' => '즐겨찾기', 'libraries.sortLabels.title' => '제목', 'libraries.sortLabels.dateAdded' => '추가된 날짜', 'libraries.sortLabels.releaseDate' => '출시일', @@ -3105,7 +3132,10 @@ extension on TranslationsKo { 'watchTogether.participantResumed' => ({required Object name}) => '${name}님이 재생했습니다', 'watchTogether.participantSeeked' => ({required Object name}) => '${name}님이 탐색했습니다', 'watchTogether.participantBuffering' => ({required Object name}) => '${name}님이 버퍼링 중입니다', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다', + 'watchTogether.resumingWithout' => ({required Object name}) => '${name}님 없이 재생을 재개합니다', 'watchTogether.waitingForParticipants' => '다른 참가자의 로딩을 기다리는 중...', + 'watchTogether.waitingForName' => ({required Object name}) => '${name}님을 기다리는 중...', 'watchTogether.recentRooms' => '최근 방', 'watchTogether.renameRoom' => '방 이름 변경', 'watchTogether.removeRoom' => '제거', @@ -3116,6 +3146,8 @@ extension on TranslationsKo { 'downloads.tvShows' => 'TV 프로그램', 'downloads.movies' => '영화', 'downloads.music' => '음악', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count}곡 다운로드 대기 중', 'downloads.noDownloads' => '다운로드 없음', 'downloads.noDownloadsDescription' => '다운로드한 콘텐츠는 오프라인 시청을 위해 여기에 표시됩니다', @@ -3131,8 +3163,6 @@ extension on TranslationsKo { 'downloads.cancelledDownloadTitle' => '취소된 다운로드', 'downloads.cancelledDownloadMessage' => '이 다운로드가 취소되었습니다. 어떻게 하시겠습니까?', 'downloads.allEpisodesAlreadyDownloaded' => '모든 에피소드가 이미 다운로드되었습니다', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => '다운로드 재개', 'downloads.cancelledDownload' => '취소된 다운로드', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} 동기화 중)', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 02ca4a76..f685670d 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsNb extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Undertekster og konfigurasjon'; @override String get seekAndTiming => 'Søk og tidtaking'; @override String get behavior => 'Atferd'; + @override String get manageLibrariesDescription => 'Omorganiser og skjul biblioteker'; + @override String get visualEffects => 'Visuelle effekter'; + @override String get visualEffectsAuto => 'Automatisk'; + @override String get visualEffectsAutoDescription => 'Reduser effekter automatisk på enheter med lavt strømforbruk'; + @override String get visualEffectsFull => 'Full'; + @override String get visualEffectsReduced => 'Redusert'; + @override String get visualEffectsReducedDescription => 'Færre animasjoner og grafikk med lavere oppløsning'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetNb extends TranslationsRateSheetEn { @override String get saved => 'Lagret'; @override String get notAvailable => 'Ingen treff'; @override String get noConnectedServices => 'Koble til en tjeneste i Innstillinger for å vurdere her.'; + @override String get favorite => 'Favoritt'; + @override String get favorited => 'Lagt til i favoritter'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesNb extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsNb groupings = _TranslationsLibrariesGroupingsNb._(_root); @override late final _TranslationsLibrariesFilterCategoriesNb filterCategories = _TranslationsLibrariesFilterCategoriesNb._(_root); @override late final _TranslationsLibrariesSortLabelsNb sortLabels = _TranslationsLibrariesSortLabelsNb._(_root); + @override String get noItemsMatchFilters => 'Ingen elementer samsvarer med de aktive filtrene'; + @override String get resetFilters => 'Tilbakestill filtre'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherNb extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Fjern'; @override String get guestSwitchUnavailable => 'Kunne ikke bytte — server ikke tilgjengelig for synkronisering'; @override String get guestSwitchFailed => 'Kunne ikke bytte — innhold ble ikke funnet på denne serveren'; + @override String participantNeedsUpdate({required Object name}) => '${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig'; + @override String resumingWithout({required Object name}) => 'Fortsetter uten ${name}'; + @override String waitingForName({required Object name}) => 'Venter på ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesNb extends TranslationsLibrariesFilt @override String get contentRating => 'Aldersgrense'; @override String get tag => 'Tag'; @override String get unwatched => 'Usette'; + @override String get favorites => 'Favoritter'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsNb { 'settings.subtitlesAndConfig' => 'Undertekster og konfigurasjon', 'settings.seekAndTiming' => 'Søk og tidtaking', 'settings.behavior' => 'Atferd', + 'settings.manageLibrariesDescription' => 'Omorganiser og skjul biblioteker', + 'settings.visualEffects' => 'Visuelle effekter', + 'settings.visualEffectsAuto' => 'Automatisk', + 'settings.visualEffectsAutoDescription' => 'Reduser effekter automatisk på enheter med lavt strømforbruk', + 'settings.visualEffectsFull' => 'Full', + 'settings.visualEffectsReduced' => 'Redusert', + 'settings.visualEffectsReducedDescription' => 'Færre animasjoner og grafikk med lavere oppløsning', 'search.hint' => 'Søk i filmer, serier, musikk...', 'search.tryDifferentTerm' => 'Prøv et annet søkeord', 'search.searchYourMedia' => 'Søk i mediene dine', @@ -2502,6 +2524,8 @@ extension on TranslationsNb { 'rateSheet.saved' => 'Lagret', 'rateSheet.notAvailable' => 'Ingen treff', 'rateSheet.noConnectedServices' => 'Koble til en tjeneste i Innstillinger for å vurdere her.', + 'rateSheet.favorite' => 'Favoritt', + 'rateSheet.favorited' => 'Lagt til i favoritter', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsNb { 'messages.errorLoading' => ({required Object error}) => 'Feil: ${error}', 'messages.streamInterrupted' => 'Avspillingen ble avbrutt. Trykk på Spill av eller spol for å prøve på nytt.', 'messages.fileInfoNotAvailable' => 'Filinformasjon ikke tilgjengelig', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Feil ved lasting av filinformasjon: ${error}', 'messages.errorLoadingSeries' => 'Feil ved lasting av serie', 'messages.musicNotSupported' => 'Musikkavspilling støttes ikke ennå', @@ -2619,8 +2645,6 @@ extension on TranslationsNb { 'messages.unableToDetermineLibrarySection' => 'Kan ikke fastslå bibliotekseksjonen for dette elementet', 'messages.logsCleared' => 'Logger tømt', 'messages.logsCopied' => 'Logger kopiert til utklippstavle', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Ingen logger tilgjengelig', 'messages.libraryScanning' => ({required Object title}) => 'Skanner "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotekkanning startet for "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsNb { 'libraries.filterCategories.contentRating' => 'Aldersgrense', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Usette', + 'libraries.filterCategories.favorites' => 'Favoritter', 'libraries.sortLabels.title' => 'Tittel', 'libraries.sortLabels.dateAdded' => 'Lagt til-dato', 'libraries.sortLabels.releaseDate' => 'Utgivelsesdato', @@ -2860,6 +2885,8 @@ extension on TranslationsNb { 'libraries.sortLabels.dateShared' => 'Delingsdato', 'libraries.sortLabels.latestEpisodeAirDate' => 'Siste episodes sendedato', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Dato for sist lagt til episode', + 'libraries.noItemsMatchFilters' => 'Ingen elementer samsvarer med de aktive filtrene', + 'libraries.resetFilters' => 'Tilbakestill filtre', 'about.title' => 'Om', 'about.openSourceLicenses' => 'Åpen kildekode-lisenser', 'about.versionLabel' => ({required Object version}) => 'Versjon ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsNb { 'watchTogether.removeRoom' => 'Fjern', 'watchTogether.guestSwitchUnavailable' => 'Kunne ikke bytte — server ikke tilgjengelig for synkronisering', 'watchTogether.guestSwitchFailed' => 'Kunne ikke bytte — innhold ble ikke funnet på denne serveren', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortsetter uten ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Venter på ${name}...', 'downloads.title' => 'Nedlastinger', 'downloads.manage' => 'Administrer', 'downloads.tvShows' => 'TV-serier', 'downloads.movies' => 'Filmer', 'downloads.music' => 'Musikk', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} spor i nedlastingskø', 'downloads.noDownloads' => 'Ingen nedlastinger ennå', 'downloads.noDownloadsDescription' => 'Nedlastet innhold vil vises her for frakoblet visning', @@ -3133,8 +3165,6 @@ extension on TranslationsNb { 'downloads.cancelledDownloadTitle' => 'Avbrutt nedlasting', 'downloads.cancelledDownloadMessage' => 'Denne nedlastingen ble avbrutt. Hva vil du gjøre?', 'downloads.allEpisodesAlreadyDownloaded' => 'Alle episoder er allerede lastet ned', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Gjenoppta nedlasting', 'downloads.cancelledDownload' => 'Avbrutt nedlasting', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserer ${status})', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index f0264f1f..02e050e1 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsNl extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Ondertitels en configuratie'; @override String get seekAndTiming => 'Zoeken en timing'; @override String get behavior => 'Gedrag'; + @override String get manageLibrariesDescription => 'Bibliotheken herordenen en verbergen'; + @override String get visualEffects => 'Visuele effecten'; + @override String get visualEffectsAuto => 'Automatisch'; + @override String get visualEffectsAutoDescription => 'Effecten automatisch verminderen op apparaten met laag vermogen'; + @override String get visualEffectsFull => 'Volledig'; + @override String get visualEffectsReduced => 'Verminderd'; + @override String get visualEffectsReducedDescription => 'Minder animaties en illustraties met lagere resolutie'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetNl extends TranslationsRateSheetEn { @override String get saved => 'Opgeslagen'; @override String get notAvailable => 'Geen match gevonden'; @override String get noConnectedServices => 'Verbind een service in Instellingen om daar te beoordelen.'; + @override String get favorite => 'Favoriet'; + @override String get favorited => 'Toegevoegd aan favorieten'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesNl extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsNl groupings = _TranslationsLibrariesGroupingsNl._(_root); @override late final _TranslationsLibrariesFilterCategoriesNl filterCategories = _TranslationsLibrariesFilterCategoriesNl._(_root); @override late final _TranslationsLibrariesSortLabelsNl sortLabels = _TranslationsLibrariesSortLabelsNl._(_root); + @override String get noItemsMatchFilters => 'Geen items komen overeen met de actieve filters'; + @override String get resetFilters => 'Filters opnieuw instellen'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherNl extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Verwijderen'; @override String get guestSwitchUnavailable => 'Kon niet schakelen — server niet beschikbaar voor synchronisatie'; @override String get guestSwitchFailed => 'Kon niet schakelen — inhoud niet gevonden op deze server'; + @override String participantNeedsUpdate({required Object name}) => '${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar'; + @override String resumingWithout({required Object name}) => 'Hervatten zonder ${name}'; + @override String waitingForName({required Object name}) => 'Wachten op ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesNl extends TranslationsLibrariesFilt @override String get contentRating => 'Leeftijdsclassificatie'; @override String get tag => 'Tag'; @override String get unwatched => 'Onbekeken'; + @override String get favorites => 'Favorieten'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsNl { 'settings.subtitlesAndConfig' => 'Ondertitels en configuratie', 'settings.seekAndTiming' => 'Zoeken en timing', 'settings.behavior' => 'Gedrag', + 'settings.manageLibrariesDescription' => 'Bibliotheken herordenen en verbergen', + 'settings.visualEffects' => 'Visuele effecten', + 'settings.visualEffectsAuto' => 'Automatisch', + 'settings.visualEffectsAutoDescription' => 'Effecten automatisch verminderen op apparaten met laag vermogen', + 'settings.visualEffectsFull' => 'Volledig', + 'settings.visualEffectsReduced' => 'Verminderd', + 'settings.visualEffectsReducedDescription' => 'Minder animaties en illustraties met lagere resolutie', 'search.hint' => 'Zoek films, series, muziek...', 'search.tryDifferentTerm' => 'Probeer een andere zoekterm', 'search.searchYourMedia' => 'Zoek in je media', @@ -2502,6 +2524,8 @@ extension on TranslationsNl { 'rateSheet.saved' => 'Opgeslagen', 'rateSheet.notAvailable' => 'Geen match gevonden', 'rateSheet.noConnectedServices' => 'Verbind een service in Instellingen om daar te beoordelen.', + 'rateSheet.favorite' => 'Favoriet', + 'rateSheet.favorited' => 'Toegevoegd aan favorieten', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsNl { 'messages.errorLoading' => ({required Object error}) => 'Fout: ${error}', 'messages.streamInterrupted' => 'De stream is onderbroken. Druk op afspelen of spoel om het opnieuw te proberen.', 'messages.fileInfoNotAvailable' => 'Bestand informatie niet beschikbaar', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fout bij laden bestand info: ${error}', 'messages.errorLoadingSeries' => 'Fout bij laden serie', 'messages.musicNotSupported' => 'Muziek afspelen wordt nog niet ondersteund', @@ -2619,8 +2645,6 @@ extension on TranslationsNl { 'messages.unableToDetermineLibrarySection' => 'Kan bibliotheeksectie voor dit item niet bepalen', 'messages.logsCleared' => 'Logs gewist', 'messages.logsCopied' => 'Logs gekopieerd naar klembord', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Geen logs beschikbaar', 'messages.libraryScanning' => ({required Object title}) => 'Scannen "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotheek scan gestart voor "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsNl { 'libraries.filterCategories.contentRating' => 'Leeftijdsclassificatie', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Onbekeken', + 'libraries.filterCategories.favorites' => 'Favorieten', 'libraries.sortLabels.title' => 'Titel', 'libraries.sortLabels.dateAdded' => 'Toegevoegd op', 'libraries.sortLabels.releaseDate' => 'Uitgavedatum', @@ -2860,6 +2885,8 @@ extension on TranslationsNl { 'libraries.sortLabels.dateShared' => 'Gedeeld op', 'libraries.sortLabels.latestEpisodeAirDate' => 'Laatste afleveringsuitzending', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum laatst toegevoegde aflevering', + 'libraries.noItemsMatchFilters' => 'Geen items komen overeen met de actieve filters', + 'libraries.resetFilters' => 'Filters opnieuw instellen', 'about.title' => 'Over', 'about.openSourceLicenses' => 'Open Source licenties', 'about.versionLabel' => ({required Object version}) => 'Versie ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsNl { 'watchTogether.removeRoom' => 'Verwijderen', 'watchTogether.guestSwitchUnavailable' => 'Kon niet schakelen — server niet beschikbaar voor synchronisatie', 'watchTogether.guestSwitchFailed' => 'Kon niet schakelen — inhoud niet gevonden op deze server', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Hervatten zonder ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Wachten op ${name}...', 'downloads.title' => 'Downloads', 'downloads.manage' => 'Beheren', 'downloads.tvShows' => 'Series', 'downloads.movies' => 'Films', 'downloads.music' => 'Muziek', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} nummers in wachtrij voor download', 'downloads.noDownloads' => 'Nog geen downloads', 'downloads.noDownloadsDescription' => 'Gedownloade content verschijnt hier voor offline weergave', @@ -3133,8 +3165,6 @@ extension on TranslationsNl { 'downloads.cancelledDownloadTitle' => 'Geannuleerde download', 'downloads.cancelledDownloadMessage' => 'Deze download is geannuleerd. Wat wil je doen?', 'downloads.allEpisodesAlreadyDownloaded' => 'Alle afleveringen zijn al gedownload', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Download hervatten', 'downloads.cancelledDownload' => 'Geannuleerde download', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} synchroniseren)', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index 2c37847e..3c72f91f 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsPl extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Napisy i konfiguracja'; @override String get seekAndTiming => 'Przewijanie i czas'; @override String get behavior => 'Zachowanie'; + @override String get manageLibrariesDescription => 'Zmieniaj kolejność i ukrywaj biblioteki'; + @override String get visualEffects => 'Efekty wizualne'; + @override String get visualEffectsAuto => 'Automatycznie'; + @override String get visualEffectsAutoDescription => 'Automatycznie ograniczaj efekty na urządzeniach o niższej wydajności'; + @override String get visualEffectsFull => 'Pełne'; + @override String get visualEffectsReduced => 'Ograniczone'; + @override String get visualEffectsReducedDescription => 'Mniej animacji i grafiki o niższej rozdzielczości'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetPl extends TranslationsRateSheetEn { @override String get saved => 'Zapisano'; @override String get notAvailable => 'Nie znaleziono dopasowania'; @override String get noConnectedServices => 'Połącz usługę w Ustawieniach, aby tam oceniać.'; + @override String get favorite => 'Dodaj do ulubionych'; + @override String get favorited => 'Dodano do ulubionych'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesPl extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsPl groupings = _TranslationsLibrariesGroupingsPl._(_root); @override late final _TranslationsLibrariesFilterCategoriesPl filterCategories = _TranslationsLibrariesFilterCategoriesPl._(_root); @override late final _TranslationsLibrariesSortLabelsPl sortLabels = _TranslationsLibrariesSortLabelsPl._(_root); + @override String get noItemsMatchFilters => 'Żadne elementy nie pasują do aktywnych filtrów'; + @override String get resetFilters => 'Resetuj filtry'; } // Path: about @@ -1345,6 +1356,9 @@ class _TranslationsWatchTogetherPl extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Usuń'; @override String get guestSwitchUnavailable => 'Nie można przełączyć — serwer niedostępny do synchronizacji'; @override String get guestSwitchFailed => 'Nie można przełączyć — nie znaleziono treści na tym serwerze'; + @override String participantNeedsUpdate({required Object name}) => '${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna'; + @override String resumingWithout({required Object name}) => 'Wznawianie bez ${name}'; + @override String waitingForName({required Object name}) => 'Oczekiwanie na ${name}...'; } // Path: downloads @@ -1879,6 +1893,7 @@ class _TranslationsLibrariesFilterCategoriesPl extends TranslationsLibrariesFilt @override String get contentRating => 'Klasyfikacja wiekowa'; @override String get tag => 'Tag'; @override String get unwatched => 'Nieobejrzane'; + @override String get favorites => 'Ulubione'; } // Path: libraries.sortLabels @@ -2424,6 +2439,13 @@ extension on TranslationsPl { 'settings.subtitlesAndConfig' => 'Napisy i konfiguracja', 'settings.seekAndTiming' => 'Przewijanie i czas', 'settings.behavior' => 'Zachowanie', + 'settings.manageLibrariesDescription' => 'Zmieniaj kolejność i ukrywaj biblioteki', + 'settings.visualEffects' => 'Efekty wizualne', + 'settings.visualEffectsAuto' => 'Automatycznie', + 'settings.visualEffectsAutoDescription' => 'Automatycznie ograniczaj efekty na urządzeniach o niższej wydajności', + 'settings.visualEffectsFull' => 'Pełne', + 'settings.visualEffectsReduced' => 'Ograniczone', + 'settings.visualEffectsReducedDescription' => 'Mniej animacji i grafiki o niższej rozdzielczości', 'search.hint' => 'Szukaj filmów, seriali, muzyki...', 'search.tryDifferentTerm' => 'Spróbuj innego wyszukiwania', 'search.searchYourMedia' => 'Przeszukaj swoje media', @@ -2506,6 +2528,8 @@ extension on TranslationsPl { 'rateSheet.saved' => 'Zapisano', 'rateSheet.notAvailable' => 'Nie znaleziono dopasowania', 'rateSheet.noConnectedServices' => 'Połącz usługę w Ustawieniach, aby tam oceniać.', + 'rateSheet.favorite' => 'Dodaj do ulubionych', + 'rateSheet.favorited' => 'Dodano do ulubionych', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serial TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2614,6 +2638,8 @@ extension on TranslationsPl { 'messages.errorLoading' => ({required Object error}) => 'Błąd: ${error}', 'messages.streamInterrupted' => 'Strumień został przerwany. Naciśnij odtwarzanie lub przewiń, aby spróbować ponownie.', 'messages.fileInfoNotAvailable' => 'Informacje o pliku niedostępne', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Błąd ładowania informacji o pliku: ${error}', 'messages.errorLoadingSeries' => 'Błąd ładowania serialu', 'messages.musicNotSupported' => 'Odtwarzanie muzyki nie jest jeszcze obsługiwane', @@ -2623,8 +2649,6 @@ extension on TranslationsPl { 'messages.unableToDetermineLibrarySection' => 'Nie można określić sekcji biblioteki dla tego elementu', 'messages.logsCleared' => 'Logi wyczyszczone', 'messages.logsCopied' => 'Logi skopiowane do schowka', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Brak dostępnych logów', 'messages.libraryScanning' => ({required Object title}) => 'Skanowanie "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Rozpoczęto skanowanie biblioteki "${title}"', @@ -2843,6 +2867,7 @@ extension on TranslationsPl { 'libraries.filterCategories.contentRating' => 'Klasyfikacja wiekowa', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Nieobejrzane', + 'libraries.filterCategories.favorites' => 'Ulubione', 'libraries.sortLabels.title' => 'Tytuł', 'libraries.sortLabels.dateAdded' => 'Data dodania', 'libraries.sortLabels.releaseDate' => 'Data premiery', @@ -2864,6 +2889,8 @@ extension on TranslationsPl { 'libraries.sortLabels.dateShared' => 'Data udostępnienia', 'libraries.sortLabels.latestEpisodeAirDate' => 'Data emisji ostatniego odcinka', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data dodania ostatniego odcinka', + 'libraries.noItemsMatchFilters' => 'Żadne elementy nie pasują do aktywnych filtrów', + 'libraries.resetFilters' => 'Resetuj filtry', 'about.title' => 'O aplikacji', 'about.openSourceLicenses' => 'Licencje open source', 'about.versionLabel' => ({required Object version}) => 'Wersja ${version}', @@ -3117,11 +3144,16 @@ extension on TranslationsPl { 'watchTogether.removeRoom' => 'Usuń', 'watchTogether.guestSwitchUnavailable' => 'Nie można przełączyć — serwer niedostępny do synchronizacji', 'watchTogether.guestSwitchFailed' => 'Nie można przełączyć — nie znaleziono treści na tym serwerze', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Wznawianie bez ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Oczekiwanie na ${name}...', 'downloads.title' => 'Pobrania', 'downloads.manage' => 'Zarządzaj', 'downloads.tvShows' => 'Seriale TV', 'downloads.movies' => 'Filmy', 'downloads.music' => 'Muzyka', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} utworów w kolejce do pobrania', 'downloads.noDownloads' => 'Brak pobrań', 'downloads.noDownloadsDescription' => 'Pobrane treści pojawią się tutaj do oglądania offline', @@ -3137,8 +3169,6 @@ extension on TranslationsPl { 'downloads.cancelledDownloadTitle' => 'Anulowane pobieranie', 'downloads.cancelledDownloadMessage' => 'To pobieranie zostało anulowane. Co chcesz zrobić?', 'downloads.allEpisodesAlreadyDownloaded' => 'Wszystkie odcinki są już pobrane', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Wznów pobieranie', 'downloads.cancelledDownload' => 'Anulowane pobieranie', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synchronizowanie ${status})', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index ecd19e55..b3b3f925 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsPt extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Legendas e configuração'; @override String get seekAndTiming => 'Busca e tempo'; @override String get behavior => 'Comportamento'; + @override String get manageLibrariesDescription => 'Reordene e oculte bibliotecas'; + @override String get visualEffects => 'Efeitos visuais'; + @override String get visualEffectsAuto => 'Automático'; + @override String get visualEffectsAutoDescription => 'Reduza automaticamente os efeitos em dispositivos de baixo consumo'; + @override String get visualEffectsFull => 'Completos'; + @override String get visualEffectsReduced => 'Reduzidos'; + @override String get visualEffectsReducedDescription => 'Menos animações e artes em menor resolução'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetPt extends TranslationsRateSheetEn { @override String get saved => 'Salvo'; @override String get notAvailable => 'Nenhuma correspondência encontrada'; @override String get noConnectedServices => 'Conecte um serviço nas Configurações para avaliar por lá.'; + @override String get favorite => 'Favorito'; + @override String get favorited => 'Adicionado aos favoritos'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesPt extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsPt groupings = _TranslationsLibrariesGroupingsPt._(_root); @override late final _TranslationsLibrariesFilterCategoriesPt filterCategories = _TranslationsLibrariesFilterCategoriesPt._(_root); @override late final _TranslationsLibrariesSortLabelsPt sortLabels = _TranslationsLibrariesSortLabelsPt._(_root); + @override String get noItemsMatchFilters => 'Nenhum item corresponde aos filtros ativos'; + @override String get resetFilters => 'Redefinir filtros'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherPt extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Remover'; @override String get guestSwitchUnavailable => 'Não foi possível trocar — servidor indisponível para sincronização'; @override String get guestSwitchFailed => 'Não foi possível trocar — conteúdo não encontrado neste servidor'; + @override String participantNeedsUpdate({required Object name}) => '${name} está em uma versão mais antiga do aplicativo — sincronização indisponível'; + @override String resumingWithout({required Object name}) => 'Retomando sem ${name}'; + @override String waitingForName({required Object name}) => 'Aguardando ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesPt extends TranslationsLibrariesFilt @override String get contentRating => 'Classificação'; @override String get tag => 'Tag'; @override String get unwatched => 'Não assistidos'; + @override String get favorites => 'Favoritos'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsPt { 'settings.subtitlesAndConfig' => 'Legendas e configuração', 'settings.seekAndTiming' => 'Busca e tempo', 'settings.behavior' => 'Comportamento', + 'settings.manageLibrariesDescription' => 'Reordene e oculte bibliotecas', + 'settings.visualEffects' => 'Efeitos visuais', + 'settings.visualEffectsAuto' => 'Automático', + 'settings.visualEffectsAutoDescription' => 'Reduza automaticamente os efeitos em dispositivos de baixo consumo', + 'settings.visualEffectsFull' => 'Completos', + 'settings.visualEffectsReduced' => 'Reduzidos', + 'settings.visualEffectsReducedDescription' => 'Menos animações e artes em menor resolução', 'search.hint' => 'Buscar filmes, séries, músicas...', 'search.tryDifferentTerm' => 'Tente um termo de busca diferente', 'search.searchYourMedia' => 'Buscar suas mídias', @@ -2502,6 +2524,8 @@ extension on TranslationsPt { 'rateSheet.saved' => 'Salvo', 'rateSheet.notAvailable' => 'Nenhuma correspondência encontrada', 'rateSheet.noConnectedServices' => 'Conecte um serviço nas Configurações para avaliar por lá.', + 'rateSheet.favorite' => 'Favorito', + 'rateSheet.favorited' => 'Adicionado aos favoritos', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, filme', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, série de TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsPt { 'messages.errorLoading' => ({required Object error}) => 'Erro: ${error}', 'messages.streamInterrupted' => 'A transmissão foi interrompida. Toque em reproduzir ou avance para tentar novamente.', 'messages.fileInfoNotAvailable' => 'Informações do arquivo não disponíveis', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erro ao carregar info do arquivo: ${error}', 'messages.errorLoadingSeries' => 'Erro ao carregar série', 'messages.musicNotSupported' => 'Reprodução de música ainda não é suportada', @@ -2619,8 +2645,6 @@ extension on TranslationsPt { 'messages.unableToDetermineLibrarySection' => 'Não é possível determinar a secção da biblioteca para este item', 'messages.logsCleared' => 'Logs limpos', 'messages.logsCopied' => 'Logs copiados para a área de transferência', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Nenhum log disponível', 'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Escaneamento da biblioteca iniciado para "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsPt { 'libraries.filterCategories.contentRating' => 'Classificação', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Não assistidos', + 'libraries.filterCategories.favorites' => 'Favoritos', 'libraries.sortLabels.title' => 'Título', 'libraries.sortLabels.dateAdded' => 'Data de adição', 'libraries.sortLabels.releaseDate' => 'Data de lançamento', @@ -2860,6 +2885,8 @@ extension on TranslationsPt { 'libraries.sortLabels.dateShared' => 'Data de compartilhamento', 'libraries.sortLabels.latestEpisodeAirDate' => 'Última data de exibição do episódio', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data de adição do último episódio', + 'libraries.noItemsMatchFilters' => 'Nenhum item corresponde aos filtros ativos', + 'libraries.resetFilters' => 'Redefinir filtros', 'about.title' => 'Sobre', 'about.openSourceLicenses' => 'Licenças Open Source', 'about.versionLabel' => ({required Object version}) => 'Versão ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsPt { 'watchTogether.removeRoom' => 'Remover', 'watchTogether.guestSwitchUnavailable' => 'Não foi possível trocar — servidor indisponível para sincronização', 'watchTogether.guestSwitchFailed' => 'Não foi possível trocar — conteúdo não encontrado neste servidor', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} está em uma versão mais antiga do aplicativo — sincronização indisponível', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Retomando sem ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Aguardando ${name}...', 'downloads.title' => 'Downloads', 'downloads.manage' => 'Gerenciar', 'downloads.tvShows' => 'Séries de TV', 'downloads.movies' => 'Filmes', 'downloads.music' => 'Música', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} faixas na fila para download', 'downloads.noDownloads' => 'Nenhum download ainda', 'downloads.noDownloadsDescription' => 'Conteúdo baixado aparecerá aqui para visualização offline', @@ -3133,8 +3165,6 @@ extension on TranslationsPt { 'downloads.cancelledDownloadTitle' => 'Download cancelado', 'downloads.cancelledDownloadMessage' => 'Este download foi cancelado. O que você deseja fazer?', 'downloads.allEpisodesAlreadyDownloaded' => 'Todos os episódios já foram baixados', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Retomar download', 'downloads.cancelledDownload' => 'Download cancelado', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizando ${status})', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 3ed9ce43..004ba397 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsRu extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Субтитры и конфигурация'; @override String get seekAndTiming => 'Перемотка и время'; @override String get behavior => 'Поведение'; + @override String get manageLibrariesDescription => 'Изменять порядок и скрывать библиотеки'; + @override String get visualEffects => 'Визуальные эффекты'; + @override String get visualEffectsAuto => 'Автоматически'; + @override String get visualEffectsAutoDescription => 'Автоматически уменьшать эффекты на маломощных устройствах'; + @override String get visualEffectsFull => 'Полные'; + @override String get visualEffectsReduced => 'Уменьшенные'; + @override String get visualEffectsReducedDescription => 'Меньше анимаций и графика с более низким разрешением'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetRu extends TranslationsRateSheetEn { @override String get saved => 'Сохранено'; @override String get notAvailable => 'Совпадений не найдено'; @override String get noConnectedServices => 'Подключите сервис в настройках, чтобы оценивать здесь.'; + @override String get favorite => 'Добавить в избранное'; + @override String get favorited => 'Добавлено в избранное'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesRu extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsRu groupings = _TranslationsLibrariesGroupingsRu._(_root); @override late final _TranslationsLibrariesFilterCategoriesRu filterCategories = _TranslationsLibrariesFilterCategoriesRu._(_root); @override late final _TranslationsLibrariesSortLabelsRu sortLabels = _TranslationsLibrariesSortLabelsRu._(_root); + @override String get noItemsMatchFilters => 'Нет элементов, соответствующих активным фильтрам'; + @override String get resetFilters => 'Сбросить фильтры'; } // Path: about @@ -1345,6 +1356,9 @@ class _TranslationsWatchTogetherRu extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Удалить'; @override String get guestSwitchUnavailable => 'Не удалось переключиться — сервер недоступен для синхронизации'; @override String get guestSwitchFailed => 'Не удалось переключиться — содержимое не найдено на этом сервере'; + @override String participantNeedsUpdate({required Object name}) => '${name} использует старую версию приложения — синхронизация недоступна'; + @override String resumingWithout({required Object name}) => 'Возобновление без ${name}'; + @override String waitingForName({required Object name}) => 'Ожидание ${name}...'; } // Path: downloads @@ -1879,6 +1893,7 @@ class _TranslationsLibrariesFilterCategoriesRu extends TranslationsLibrariesFilt @override String get contentRating => 'Возрастной рейтинг'; @override String get tag => 'Тег'; @override String get unwatched => 'Непросмотренные'; + @override String get favorites => 'Избранное'; } // Path: libraries.sortLabels @@ -2424,6 +2439,13 @@ extension on TranslationsRu { 'settings.subtitlesAndConfig' => 'Субтитры и конфигурация', 'settings.seekAndTiming' => 'Перемотка и время', 'settings.behavior' => 'Поведение', + 'settings.manageLibrariesDescription' => 'Изменять порядок и скрывать библиотеки', + 'settings.visualEffects' => 'Визуальные эффекты', + 'settings.visualEffectsAuto' => 'Автоматически', + 'settings.visualEffectsAutoDescription' => 'Автоматически уменьшать эффекты на маломощных устройствах', + 'settings.visualEffectsFull' => 'Полные', + 'settings.visualEffectsReduced' => 'Уменьшенные', + 'settings.visualEffectsReducedDescription' => 'Меньше анимаций и графика с более низким разрешением', 'search.hint' => 'Поиск фильмов, сериалов, музыки...', 'search.tryDifferentTerm' => 'Попробуйте другой запрос', 'search.searchYourMedia' => 'Поиск в вашей медиатеке', @@ -2506,6 +2528,8 @@ extension on TranslationsRu { 'rateSheet.saved' => 'Сохранено', 'rateSheet.notAvailable' => 'Совпадений не найдено', 'rateSheet.noConnectedServices' => 'Подключите сервис в настройках, чтобы оценивать здесь.', + 'rateSheet.favorite' => 'Добавить в избранное', + 'rateSheet.favorited' => 'Добавлено в избранное', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, фильм', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, сериал', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2614,6 +2638,8 @@ extension on TranslationsRu { 'messages.errorLoading' => ({required Object error}) => 'Ошибка: ${error}', 'messages.streamInterrupted' => 'Поток прервался. Нажмите «Воспроизвести» или перемотайте, чтобы повторить попытку.', 'messages.fileInfoNotAvailable' => 'Информация о файле недоступна', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Ошибка загрузки информации о файле: ${error}', 'messages.errorLoadingSeries' => 'Ошибка загрузки сериала', 'messages.musicNotSupported' => 'Воспроизведение музыки пока не поддерживается', @@ -2623,8 +2649,6 @@ extension on TranslationsRu { 'messages.unableToDetermineLibrarySection' => 'Не удаётся определить раздел библиотеки для этого элемента', 'messages.logsCleared' => 'Логи очищены', 'messages.logsCopied' => 'Логи скопированы в буфер обмена', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Логи отсутствуют', 'messages.libraryScanning' => ({required Object title}) => 'Сканирование "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Сканирование библиотеки начато для "${title}"', @@ -2843,6 +2867,7 @@ extension on TranslationsRu { 'libraries.filterCategories.contentRating' => 'Возрастной рейтинг', 'libraries.filterCategories.tag' => 'Тег', 'libraries.filterCategories.unwatched' => 'Непросмотренные', + 'libraries.filterCategories.favorites' => 'Избранное', 'libraries.sortLabels.title' => 'Название', 'libraries.sortLabels.dateAdded' => 'Дата добавления', 'libraries.sortLabels.releaseDate' => 'Дата выхода', @@ -2864,6 +2889,8 @@ extension on TranslationsRu { 'libraries.sortLabels.dateShared' => 'Дата открытия доступа', 'libraries.sortLabels.latestEpisodeAirDate' => 'Дата выхода последнего эпизода', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Дата добавления последнего эпизода', + 'libraries.noItemsMatchFilters' => 'Нет элементов, соответствующих активным фильтрам', + 'libraries.resetFilters' => 'Сбросить фильтры', 'about.title' => 'О приложении', 'about.openSourceLicenses' => 'Лицензии открытого ПО', 'about.versionLabel' => ({required Object version}) => 'Версия ${version}', @@ -3117,11 +3144,16 @@ extension on TranslationsRu { 'watchTogether.removeRoom' => 'Удалить', 'watchTogether.guestSwitchUnavailable' => 'Не удалось переключиться — сервер недоступен для синхронизации', 'watchTogether.guestSwitchFailed' => 'Не удалось переключиться — содержимое не найдено на этом сервере', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} использует старую версию приложения — синхронизация недоступна', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Возобновление без ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Ожидание ${name}...', 'downloads.title' => 'Загрузки', 'downloads.manage' => 'Управление', 'downloads.tvShows' => 'Сериалы', 'downloads.movies' => 'Фильмы', 'downloads.music' => 'Музыка', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} треков в очереди на загрузку', 'downloads.noDownloads' => 'Загрузок пока нет', 'downloads.noDownloadsDescription' => 'Загруженный контент появится здесь для просмотра офлайн', @@ -3137,8 +3169,6 @@ extension on TranslationsRu { 'downloads.cancelledDownloadTitle' => 'Загрузка отменена', 'downloads.cancelledDownloadMessage' => 'Эта загрузка была отменена. Что вы хотите сделать?', 'downloads.allEpisodesAlreadyDownloaded' => 'Все эпизоды уже загружены', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Возобновить загрузку', 'downloads.cancelledDownload' => 'Загрузка отменена', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (синхронизация ${status})', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 4b4ff2c8..91cfb20d 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsSv extends TranslationsSettingsEn { @override String get subtitlesAndConfig => 'Undertexter och konfiguration'; @override String get seekAndTiming => 'Sök och timing'; @override String get behavior => 'Beteende'; + @override String get manageLibrariesDescription => 'Ordna om och dölj bibliotek'; + @override String get visualEffects => 'Visuella effekter'; + @override String get visualEffectsAuto => 'Automatiskt'; + @override String get visualEffectsAutoDescription => 'Minska effekter automatiskt på enheter med låg effekt'; + @override String get visualEffectsFull => 'Fullständiga'; + @override String get visualEffectsReduced => 'Minskade'; + @override String get visualEffectsReducedDescription => 'Färre animationer och grafik med lägre upplösning'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetSv extends TranslationsRateSheetEn { @override String get saved => 'Sparat'; @override String get notAvailable => 'Ingen matchning hittades'; @override String get noConnectedServices => 'Anslut en tjänst i Inställningar för att betygsätta där.'; + @override String get favorite => 'Favorit'; + @override String get favorited => 'Tillagd i favoriter'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesSv extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsSv groupings = _TranslationsLibrariesGroupingsSv._(_root); @override late final _TranslationsLibrariesFilterCategoriesSv filterCategories = _TranslationsLibrariesFilterCategoriesSv._(_root); @override late final _TranslationsLibrariesSortLabelsSv sortLabels = _TranslationsLibrariesSortLabelsSv._(_root); + @override String get noItemsMatchFilters => 'Inga objekt matchar de aktiva filtren'; + @override String get resetFilters => 'Återställ filter'; } // Path: about @@ -1341,6 +1352,9 @@ class _TranslationsWatchTogetherSv extends TranslationsWatchTogetherEn { @override String get removeRoom => 'Ta bort'; @override String get guestSwitchUnavailable => 'Kunde inte byta — server inte tillgänglig för synkronisering'; @override String get guestSwitchFailed => 'Kunde inte byta — innehåll hittades inte på denna server'; + @override String participantNeedsUpdate({required Object name}) => '${name} använder en äldre appversion — synkronisering är inte tillgänglig'; + @override String resumingWithout({required Object name}) => 'Återupptar utan ${name}'; + @override String waitingForName({required Object name}) => 'Väntar på ${name}...'; } // Path: downloads @@ -1875,6 +1889,7 @@ class _TranslationsLibrariesFilterCategoriesSv extends TranslationsLibrariesFilt @override String get contentRating => 'Åldersgräns'; @override String get tag => 'Tagg'; @override String get unwatched => 'Osedda'; + @override String get favorites => 'Favoriter'; } // Path: libraries.sortLabels @@ -2420,6 +2435,13 @@ extension on TranslationsSv { 'settings.subtitlesAndConfig' => 'Undertexter och konfiguration', 'settings.seekAndTiming' => 'Sök och timing', 'settings.behavior' => 'Beteende', + 'settings.manageLibrariesDescription' => 'Ordna om och dölj bibliotek', + 'settings.visualEffects' => 'Visuella effekter', + 'settings.visualEffectsAuto' => 'Automatiskt', + 'settings.visualEffectsAutoDescription' => 'Minska effekter automatiskt på enheter med låg effekt', + 'settings.visualEffectsFull' => 'Fullständiga', + 'settings.visualEffectsReduced' => 'Minskade', + 'settings.visualEffectsReducedDescription' => 'Färre animationer och grafik med lägre upplösning', 'search.hint' => 'Sök filmer, serier, musik...', 'search.tryDifferentTerm' => 'Prova en annan sökterm', 'search.searchYourMedia' => 'Sök i dina media', @@ -2502,6 +2524,8 @@ extension on TranslationsSv { 'rateSheet.saved' => 'Sparat', 'rateSheet.notAvailable' => 'Ingen matchning hittades', 'rateSheet.noConnectedServices' => 'Anslut en tjänst i Inställningar för att betygsätta där.', + 'rateSheet.favorite' => 'Favorit', + 'rateSheet.favorited' => 'Tillagd i favoriter', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2610,6 +2634,8 @@ extension on TranslationsSv { 'messages.errorLoading' => ({required Object error}) => 'Fel: ${error}', 'messages.streamInterrupted' => 'Uppspelningen avbröts. Tryck på play eller spola för att försöka igen.', 'messages.fileInfoNotAvailable' => 'Filinformation inte tillgänglig', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fel vid laddning av filinformation: ${error}', 'messages.errorLoadingSeries' => 'Fel vid laddning av serie', 'messages.musicNotSupported' => 'Musikuppspelning stöds inte ännu', @@ -2619,8 +2645,6 @@ extension on TranslationsSv { 'messages.unableToDetermineLibrarySection' => 'Kan inte avgöra biblioteksavdelningen för detta objekt', 'messages.logsCleared' => 'Loggar rensade', 'messages.logsCopied' => 'Loggar kopierade till urklipp', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => 'Inga loggar tillgängliga', 'messages.libraryScanning' => ({required Object title}) => 'Skannar "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksskanning startad för "${title}"', @@ -2839,6 +2863,7 @@ extension on TranslationsSv { 'libraries.filterCategories.contentRating' => 'Åldersgräns', 'libraries.filterCategories.tag' => 'Tagg', 'libraries.filterCategories.unwatched' => 'Osedda', + 'libraries.filterCategories.favorites' => 'Favoriter', 'libraries.sortLabels.title' => 'Titel', 'libraries.sortLabels.dateAdded' => 'Tillagd', 'libraries.sortLabels.releaseDate' => 'Releasedatum', @@ -2860,6 +2885,8 @@ extension on TranslationsSv { 'libraries.sortLabels.dateShared' => 'Delningsdatum', 'libraries.sortLabels.latestEpisodeAirDate' => 'Senaste avsnittets sändningsdatum', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum då senaste avsnittet lades till', + 'libraries.noItemsMatchFilters' => 'Inga objekt matchar de aktiva filtren', + 'libraries.resetFilters' => 'Återställ filter', 'about.title' => 'Om', 'about.openSourceLicenses' => 'Öppen källkod-licenser', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', @@ -3113,11 +3140,16 @@ extension on TranslationsSv { 'watchTogether.removeRoom' => 'Ta bort', 'watchTogether.guestSwitchUnavailable' => 'Kunde inte byta — server inte tillgänglig för synkronisering', 'watchTogether.guestSwitchFailed' => 'Kunde inte byta — innehåll hittades inte på denna server', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} använder en äldre appversion — synkronisering är inte tillgänglig', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Återupptar utan ${name}', + 'watchTogether.waitingForName' => ({required Object name}) => 'Väntar på ${name}...', 'downloads.title' => 'Nedladdningar', 'downloads.manage' => 'Hantera', 'downloads.tvShows' => 'TV-serier', 'downloads.movies' => 'Filmer', 'downloads.music' => 'Musik', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} låtar i nedladdningskö', 'downloads.noDownloads' => 'Inga nedladdningar ännu', 'downloads.noDownloadsDescription' => 'Nedladdat innehåll visas här för offline-visning', @@ -3133,8 +3165,6 @@ extension on TranslationsSv { 'downloads.cancelledDownloadTitle' => 'Avbruten nedladdning', 'downloads.cancelledDownloadMessage' => 'Den här nedladdningen avbröts. Vad vill du göra?', 'downloads.allEpisodesAlreadyDownloaded' => 'Alla avsnitt är redan nedladdade', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => 'Återuppta nedladdning', 'downloads.cancelledDownload' => 'Avbruten nedladdning', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (synkroniserar ${status})', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index ddc9ff4c..ae924243 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -455,6 +455,13 @@ class _TranslationsSettingsZh extends TranslationsSettingsEn { @override String get subtitlesAndConfig => '字幕与配置'; @override String get seekAndTiming => '跳转与计时'; @override String get behavior => '行为'; + @override String get manageLibrariesDescription => '重新排序和隐藏媒体库'; + @override String get visualEffects => '视觉效果'; + @override String get visualEffectsAuto => '自动'; + @override String get visualEffectsAutoDescription => '在性能较低的设备上自动减少效果'; + @override String get visualEffectsFull => '完整'; + @override String get visualEffectsReduced => '简化'; + @override String get visualEffectsReducedDescription => '减少动画并使用较低分辨率的封面图片'; } // Path: search @@ -558,6 +565,8 @@ class _TranslationsRateSheetZh extends TranslationsRateSheetEn { @override String get saved => '已保存'; @override String get notAvailable => '未找到匹配项'; @override String get noConnectedServices => '在设置中连接服务,即可在此评分。'; + @override String get favorite => '收藏'; + @override String get favorited => '已收藏'; } // Path: accessibility @@ -989,6 +998,8 @@ class _TranslationsLibrariesZh extends TranslationsLibrariesEn { @override late final _TranslationsLibrariesGroupingsZh groupings = _TranslationsLibrariesGroupingsZh._(_root); @override late final _TranslationsLibrariesFilterCategoriesZh filterCategories = _TranslationsLibrariesFilterCategoriesZh._(_root); @override late final _TranslationsLibrariesSortLabelsZh sortLabels = _TranslationsLibrariesSortLabelsZh._(_root); + @override String get noItemsMatchFilters => '没有项目符合当前筛选条件'; + @override String get resetFilters => '重置筛选条件'; } // Path: about @@ -1339,6 +1350,9 @@ class _TranslationsWatchTogetherZh extends TranslationsWatchTogetherEn { @override String get removeRoom => '移除'; @override String get guestSwitchUnavailable => '无法切换 — 服务器无法同步'; @override String get guestSwitchFailed => '无法切换 — 在此服务器上未找到内容'; + @override String participantNeedsUpdate({required Object name}) => '${name} 正在使用较旧版本的应用,无法同步'; + @override String resumingWithout({required Object name}) => '不等待 ${name},继续播放'; + @override String waitingForName({required Object name}) => '正在等待 ${name}...'; } // Path: downloads @@ -1873,6 +1887,7 @@ class _TranslationsLibrariesFilterCategoriesZh extends TranslationsLibrariesFilt @override String get contentRating => '内容分级'; @override String get tag => '标签'; @override String get unwatched => '未观看'; + @override String get favorites => '收藏夹'; } // Path: libraries.sortLabels @@ -2418,6 +2433,13 @@ extension on TranslationsZh { 'settings.subtitlesAndConfig' => '字幕与配置', 'settings.seekAndTiming' => '跳转与计时', 'settings.behavior' => '行为', + 'settings.manageLibrariesDescription' => '重新排序和隐藏媒体库', + 'settings.visualEffects' => '视觉效果', + 'settings.visualEffectsAuto' => '自动', + 'settings.visualEffectsAutoDescription' => '在性能较低的设备上自动减少效果', + 'settings.visualEffectsFull' => '完整', + 'settings.visualEffectsReduced' => '简化', + 'settings.visualEffectsReducedDescription' => '减少动画并使用较低分辨率的封面图片', 'search.hint' => '搜索电影、系列、音乐...', 'search.tryDifferentTerm' => '尝试不同的搜索词', 'search.searchYourMedia' => '搜索媒体', @@ -2500,6 +2522,8 @@ extension on TranslationsZh { 'rateSheet.saved' => '已保存', 'rateSheet.notAvailable' => '未找到匹配项', 'rateSheet.noConnectedServices' => '在设置中连接服务,即可在此评分。', + 'rateSheet.favorite' => '收藏', + 'rateSheet.favorited' => '已收藏', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, 电影', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, 电视剧', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2608,6 +2632,8 @@ extension on TranslationsZh { 'messages.errorLoading' => ({required Object error}) => '错误: ${error}', 'messages.streamInterrupted' => '视频流已中断。按播放键或拖动进度条重试。', 'messages.fileInfoNotAvailable' => '文件信息不可用', + _ => null, + } ?? switch (path) { 'messages.errorLoadingFileInfo' => ({required Object error}) => '加载文件信息时出错: ${error}', 'messages.errorLoadingSeries' => '加载系列时出错', 'messages.musicNotSupported' => '尚不支持播放音乐', @@ -2617,8 +2643,6 @@ extension on TranslationsZh { 'messages.unableToDetermineLibrarySection' => '无法确定此项目的库分区', 'messages.logsCleared' => '日志已清除', 'messages.logsCopied' => '日志已复制到剪贴板', - _ => null, - } ?? switch (path) { 'messages.noLogsAvailable' => '没有可用日志', 'messages.libraryScanning' => ({required Object title}) => '正在扫描 “${title}”...', 'messages.libraryScanStarted' => ({required Object title}) => '已开始扫描 “${title}” 媒体库', @@ -2837,6 +2861,7 @@ extension on TranslationsZh { 'libraries.filterCategories.contentRating' => '内容分级', 'libraries.filterCategories.tag' => '标签', 'libraries.filterCategories.unwatched' => '未观看', + 'libraries.filterCategories.favorites' => '收藏夹', 'libraries.sortLabels.title' => '标题', 'libraries.sortLabels.dateAdded' => '添加日期', 'libraries.sortLabels.releaseDate' => '发行日期', @@ -2858,6 +2883,8 @@ extension on TranslationsZh { 'libraries.sortLabels.dateShared' => '共享日期', 'libraries.sortLabels.latestEpisodeAirDate' => '最新一集播出日期', 'libraries.sortLabels.lastEpisodeDateAdded' => '最新一集添加日期', + 'libraries.noItemsMatchFilters' => '没有项目符合当前筛选条件', + 'libraries.resetFilters' => '重置筛选条件', 'about.title' => '关于', 'about.openSourceLicenses' => '开源许可证', 'about.versionLabel' => ({required Object version}) => '版本 ${version}', @@ -3111,11 +3138,16 @@ extension on TranslationsZh { 'watchTogether.removeRoom' => '移除', 'watchTogether.guestSwitchUnavailable' => '无法切换 — 服务器无法同步', 'watchTogether.guestSwitchFailed' => '无法切换 — 在此服务器上未找到内容', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} 正在使用较旧版本的应用,无法同步', + 'watchTogether.resumingWithout' => ({required Object name}) => '不等待 ${name},继续播放', + 'watchTogether.waitingForName' => ({required Object name}) => '正在等待 ${name}...', 'downloads.title' => '下载', 'downloads.manage' => '管理', 'downloads.tvShows' => '电视剧', 'downloads.movies' => '电影', 'downloads.music' => '音乐', + _ => null, + } ?? switch (path) { 'downloads.tracksQueued' => ({required Object count}) => '${count} 首曲目已加入下载队列', 'downloads.noDownloads' => '暂无下载', 'downloads.noDownloadsDescription' => '下载的内容将在此处显示以供离线观看', @@ -3131,8 +3163,6 @@ extension on TranslationsZh { 'downloads.cancelledDownloadTitle' => '已取消的下载', 'downloads.cancelledDownloadMessage' => '此下载已取消。你想怎么做?', 'downloads.allEpisodesAlreadyDownloaded' => '所有剧集均已下载', - _ => null, - } ?? switch (path) { 'downloads.resumeDownload' => '继续下载', 'downloads.cancelledDownload' => '已取消的下载', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(正在同步 ${status})', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 8be4c601..47c66f77 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -322,7 +322,14 @@ "player": "Spelare", "subtitlesAndConfig": "Undertexter och konfiguration", "seekAndTiming": "Sök och timing", - "behavior": "Beteende" + "behavior": "Beteende", + "manageLibrariesDescription": "Ordna om och dölj bibliotek", + "visualEffects": "Visuella effekter", + "visualEffectsAuto": "Automatiskt", + "visualEffectsAutoDescription": "Minska effekter automatiskt på enheter med låg effekt", + "visualEffectsFull": "Fullständiga", + "visualEffectsReduced": "Minskade", + "visualEffectsReducedDescription": "Färre animationer och grafik med lägre upplösning" }, "search": { "hint": "Sök filmer, serier, musik...", @@ -416,7 +423,9 @@ "setScore": "Ange betyg", "saved": "Sparat", "notAvailable": "Ingen matchning hittades", - "noConnectedServices": "Anslut en tjänst i Inställningar för att betygsätta där." + "noConnectedServices": "Anslut en tjänst i Inställningar för att betygsätta där.", + "favorite": "Favorit", + "favorited": "Tillagd i favoriter" }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -784,7 +793,8 @@ "year": "År", "contentRating": "Åldersgräns", "tag": "Tagg", - "unwatched": "Osedda" + "unwatched": "Osedda", + "favorites": "Favoriter" }, "sortLabels": { "title": "Titel", @@ -808,7 +818,9 @@ "dateShared": "Delningsdatum", "latestEpisodeAirDate": "Senaste avsnittets sändningsdatum", "lastEpisodeDateAdded": "Datum då senaste avsnittet lades till" - } + }, + "noItemsMatchFilters": "Inga objekt matchar de aktiva filtren", + "resetFilters": "Återställ filter" }, "about": { "title": "Om", @@ -1095,7 +1107,10 @@ "renameRoom": "Byt namn på rum", "removeRoom": "Ta bort", "guestSwitchUnavailable": "Kunde inte byta — server inte tillgänglig för synkronisering", - "guestSwitchFailed": "Kunde inte byta — innehåll hittades inte på denna server" + "guestSwitchFailed": "Kunde inte byta — innehåll hittades inte på denna server", + "participantNeedsUpdate": "${name} använder en äldre appversion — synkronisering är inte tillgänglig", + "resumingWithout": "Återupptar utan ${name}", + "waitingForName": "Väntar på ${name}..." }, "downloads": { "title": "Nedladdningar", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index e7e43a55..50124a7a 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -322,7 +322,14 @@ "player": "播放器", "subtitlesAndConfig": "字幕与配置", "seekAndTiming": "跳转与计时", - "behavior": "行为" + "behavior": "行为", + "manageLibrariesDescription": "重新排序和隐藏媒体库", + "visualEffects": "视觉效果", + "visualEffectsAuto": "自动", + "visualEffectsAutoDescription": "在性能较低的设备上自动减少效果", + "visualEffectsFull": "完整", + "visualEffectsReduced": "简化", + "visualEffectsReducedDescription": "减少动画并使用较低分辨率的封面图片" }, "search": { "hint": "搜索电影、系列、音乐...", @@ -416,7 +423,9 @@ "setScore": "设置分数", "saved": "已保存", "notAvailable": "未找到匹配项", - "noConnectedServices": "在设置中连接服务,即可在此评分。" + "noConnectedServices": "在设置中连接服务,即可在此评分。", + "favorite": "收藏", + "favorited": "已收藏" }, "accessibility": { "mediaCardMovie": "${title}, 电影", @@ -784,7 +793,8 @@ "year": "年份", "contentRating": "内容分级", "tag": "标签", - "unwatched": "未观看" + "unwatched": "未观看", + "favorites": "收藏夹" }, "sortLabels": { "title": "标题", @@ -808,7 +818,9 @@ "dateShared": "共享日期", "latestEpisodeAirDate": "最新一集播出日期", "lastEpisodeDateAdded": "最新一集添加日期" - } + }, + "noItemsMatchFilters": "没有项目符合当前筛选条件", + "resetFilters": "重置筛选条件" }, "about": { "title": "关于", @@ -1093,7 +1105,10 @@ "renameRoom": "重命名房间", "removeRoom": "移除", "guestSwitchUnavailable": "无法切换 — 服务器无法同步", - "guestSwitchFailed": "无法切换 — 在此服务器上未找到内容" + "guestSwitchFailed": "无法切换 — 在此服务器上未找到内容", + "participantNeedsUpdate": "${name} 正在使用较旧版本的应用,无法同步", + "resumingWithout": "不等待 ${name},继续播放", + "waitingForName": "正在等待 ${name}..." }, "downloads": { "title": "下载",