fix: server tasks panel polish

This commit is contained in:
edde746
2026-03-27 09:37:53 +01:00
parent 25e3c4a543
commit 8e9968628a
32 changed files with 460 additions and 90 deletions
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Opdaterer servere...",
"loadingServers": "Indlæser servere...",
"connectingToServers": "Forbinder til servere...",
"startingOfflineMode": "Starter offlinetilstand..."
"startingOfflineMode": "Starter offlinetilstand...",
"loading": "Indlæser..."
},
"screens": {
"licenses": "Licenser",
@@ -884,5 +885,10 @@
"manuallySelected": "Manuelt valgt",
"shownWithForeignAudio": "Vist med fremmedsproget lyd",
"alwaysEnabled": "Altid aktiveret"
},
"serverTasks": {
"title": "Serveropgaver",
"failedToLoad": "Kunne ikke indlæse opgaver",
"noTasks": "Ingen opgaver kører"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Server werden aktualisiert...",
"loadingServers": "Server werden geladen...",
"connectingToServers": "Verbindung zu Servern...",
"startingOfflineMode": "Offlinemodus wird gestartet..."
"startingOfflineMode": "Offlinemodus wird gestartet...",
"loading": "Laden..."
},
"screens": {
"licenses": "Lizenzen",
@@ -884,5 +885,10 @@
"manuallySelected": "Manuell ausgewählt",
"shownWithForeignAudio": "Bei fremdsprachigem Audio anzeigen",
"alwaysEnabled": "Immer aktiviert"
},
"serverTasks": {
"title": "Serveraufgaben",
"failedToLoad": "Aufgaben konnten nicht geladen werden",
"noTasks": "Keine laufenden Aufgaben"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Refreshing servers...",
"loadingServers": "Loading servers...",
"connectingToServers": "Connecting to servers...",
"startingOfflineMode": "Starting offline mode..."
"startingOfflineMode": "Starting offline mode...",
"loading": "Loading..."
},
"screens": {
"licenses": "Licenses",
@@ -884,5 +885,10 @@
"manuallySelected": "Manually selected",
"shownWithForeignAudio": "Shown with foreign audio",
"alwaysEnabled": "Always enabled"
},
"serverTasks": {
"title": "Server Tasks",
"failedToLoad": "Failed to load tasks",
"noTasks": "No tasks running"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Actualizando servidores...",
"loadingServers": "Cargando servidores...",
"connectingToServers": "Conectando a servidores...",
"startingOfflineMode": "Iniciando modo sin conexión..."
"startingOfflineMode": "Iniciando modo sin conexión...",
"loading": "Cargando..."
},
"screens": {
"licenses": "Licencias",
@@ -884,5 +885,10 @@
"manuallySelected": "Seleccionado manualmente",
"shownWithForeignAudio": "Mostrar con audio extranjero",
"alwaysEnabled": "Siempre activado"
},
"serverTasks": {
"title": "Tareas del servidor",
"failedToLoad": "Error al cargar tareas",
"noTasks": "No hay tareas en ejecución"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Actualisation des serveurs...",
"loadingServers": "Chargement des serveurs...",
"connectingToServers": "Connexion aux serveurs...",
"startingOfflineMode": "Démarrage en mode hors-ligne..."
"startingOfflineMode": "Démarrage en mode hors-ligne...",
"loading": "Chargement..."
},
"screens": {
"licenses": "Licenses",
@@ -884,5 +885,10 @@
"manuallySelected": "Sélectionné manuellement",
"shownWithForeignAudio": "Affichés avec audio étranger",
"alwaysEnabled": "Toujours activé"
},
"serverTasks": {
"title": "Tâches du serveur",
"failedToLoad": "Échec du chargement des tâches",
"noTasks": "Aucune tâche en cours"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Aggiornamento server...",
"loadingServers": "Caricamento server...",
"connectingToServers": "Connessione ai server...",
"startingOfflineMode": "Avvio modalità offline..."
"startingOfflineMode": "Avvio modalità offline...",
"loading": "Caricamento..."
},
"screens": {
"licenses": "Licenze",
@@ -884,5 +885,10 @@
"manuallySelected": "Selezionato manualmente",
"shownWithForeignAudio": "Mostrati con audio straniero",
"alwaysEnabled": "Sempre attivo"
},
"serverTasks": {
"title": "Attività del server",
"failedToLoad": "Impossibile caricare le attività",
"noTasks": "Nessuna attività in corso"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "サーバーを更新中...",
"loadingServers": "サーバーを読み込み中...",
"connectingToServers": "サーバーに接続中...",
"startingOfflineMode": "オフラインモードを開始中..."
"startingOfflineMode": "オフラインモードを開始中...",
"loading": "読み込み中..."
},
"screens": {
"licenses": "ライセンス",
@@ -884,5 +885,10 @@
"manuallySelected": "手動選択",
"shownWithForeignAudio": "外国語音声時に表示",
"alwaysEnabled": "常に有効"
},
"serverTasks": {
"title": "サーバータスク",
"failedToLoad": "タスクの読み込みに失敗しました",
"noTasks": "実行中のタスクはありません"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "서버 새로고침 중...",
"loadingServers": "서버 로딩 중...",
"connectingToServers": "서버 연결 중...",
"startingOfflineMode": "오프라인 모드 시작 중..."
"startingOfflineMode": "오프라인 모드 시작 중...",
"loading": "로딩 중..."
},
"screens": {
"licenses": "라이선스",
@@ -884,5 +885,10 @@
"manuallySelected": "수동 선택",
"shownWithForeignAudio": "외국어 오디오 시 표시",
"alwaysEnabled": "항상 활성화"
},
"serverTasks": {
"title": "서버 작업",
"failedToLoad": "작업을 불러올 수 없습니다",
"noTasks": "실행 중인 작업 없음"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Oppdaterer servere...",
"loadingServers": "Laster servere...",
"connectingToServers": "Kobler til servere...",
"startingOfflineMode": "Starter frakoblet modus..."
"startingOfflineMode": "Starter frakoblet modus...",
"loading": "Laster..."
},
"screens": {
"licenses": "Lisenser",
@@ -884,5 +885,10 @@
"manuallySelected": "Manuelt valgt",
"shownWithForeignAudio": "Vist med fremmedspråklig lyd",
"alwaysEnabled": "Alltid aktivert"
},
"serverTasks": {
"title": "Serveroppgaver",
"failedToLoad": "Kunne ikke laste oppgaver",
"noTasks": "Ingen oppgaver kjører"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Servers vernieuwen...",
"loadingServers": "Servers laden...",
"connectingToServers": "Verbinden met servers...",
"startingOfflineMode": "Offlinemodus starten..."
"startingOfflineMode": "Offlinemodus starten...",
"loading": "Laden..."
},
"screens": {
"licenses": "Licenties",
@@ -884,5 +885,10 @@
"manuallySelected": "Handmatig geselecteerd",
"shownWithForeignAudio": "Weergeven bij anderstalig geluid",
"alwaysEnabled": "Altijd ingeschakeld"
},
"serverTasks": {
"title": "Servertaken",
"failedToLoad": "Taken konden niet worden geladen",
"noTasks": "Geen actieve taken"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Odświeżanie serwerów...",
"loadingServers": "Ładowanie serwerów...",
"connectingToServers": "Łączenie z serwerami...",
"startingOfflineMode": "Uruchamianie trybu offline..."
"startingOfflineMode": "Uruchamianie trybu offline...",
"loading": "Ładowanie..."
},
"screens": {
"licenses": "Licencje",
@@ -884,5 +885,10 @@
"manuallySelected": "Wybrany ręcznie",
"shownWithForeignAudio": "Wyświetlane przy obcojęzycznym audio",
"alwaysEnabled": "Zawsze włączone"
},
"serverTasks": {
"title": "Zadania serwera",
"failedToLoad": "Nie udało się załadować zadań",
"noTasks": "Brak uruchomionych zadań"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Atualizando servidores...",
"loadingServers": "Carregando servidores...",
"connectingToServers": "Conectando aos servidores...",
"startingOfflineMode": "Iniciando modo offline..."
"startingOfflineMode": "Iniciando modo offline...",
"loading": "Carregando..."
},
"screens": {
"licenses": "Licenças",
@@ -884,5 +885,10 @@
"manuallySelected": "Seleção manual",
"shownWithForeignAudio": "Exibir com áudio estrangeiro",
"alwaysEnabled": "Sempre ativado"
},
"serverTasks": {
"title": "Tarefas do servidor",
"failedToLoad": "Falha ao carregar tarefas",
"noTasks": "Nenhuma tarefa em execução"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Обновление серверов...",
"loadingServers": "Загрузка серверов...",
"connectingToServers": "Подключение к серверам...",
"startingOfflineMode": "Запуск автономного режима..."
"startingOfflineMode": "Запуск автономного режима...",
"loading": "Загрузка..."
},
"screens": {
"licenses": "Лицензии",
@@ -884,5 +885,10 @@
"manuallySelected": "Выбор вручную",
"shownWithForeignAudio": "Показывать при иноязычном аудио",
"alwaysEnabled": "Всегда включены"
},
"serverTasks": {
"title": "Задачи сервера",
"failedToLoad": "Не удалось загрузить задачи",
"noTasks": "Нет выполняемых задач"
}
}
+2 -2
View File
@@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 15
/// Strings: 11970 (798 per locale)
/// Strings: 12030 (802 per locale)
///
/// Built on 2026-03-22 at 10:44 UTC
/// Built on 2026-03-27 at 07:32 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsDa with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsDa videoSettings = _TranslationsVideoSettingsDa._(_root);
@override late final _TranslationsExternalPlayerDa externalPlayer = _TranslationsExternalPlayerDa._(_root);
@override late final _TranslationsMetadataEditDa metadataEdit = _TranslationsMetadataEditDa._(_root);
@override late final _TranslationsServerTasksDa serverTasks = _TranslationsServerTasksDa._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonDa implements TranslationsCommonEn {
@override String get loadingServers => 'Indlæser servere...';
@override String get connectingToServers => 'Forbinder til servere...';
@override String get startingOfflineMode => 'Starter offlinetilstand...';
@override String get loading => 'Indlæser...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditDa implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Altid aktiveret';
}
// Path: serverTasks
class _TranslationsServerTasksDa implements TranslationsServerTasksEn {
_TranslationsServerTasksDa._(this._root);
final TranslationsDa _root; // ignore: unused_field
// Translations
@override String get title => 'Serveropgaver';
@override String get failedToLoad => 'Kunne ikke indlæse opgaver';
@override String get noTasks => 'Ingen opgaver kører';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsDa implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsDa._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsDa {
'common.loadingServers' => 'Indlæser servere...',
'common.connectingToServers' => 'Forbinder til servere...',
'common.startingOfflineMode' => 'Starter offlinetilstand...',
'common.loading' => 'Indlæser...',
'screens.licenses' => 'Licenser',
'screens.switchProfile' => 'Skift profil',
'screens.subtitleStyling' => 'Undertekststil',
@@ -1796,9 +1811,9 @@ extension on TranslationsDa {
'liveTv.evening' => 'Aften',
'liveTv.lateNight' => 'Sen aften',
'liveTv.whatsOn' => 'Hvad der kører',
'liveTv.watchChannel' => 'Se kanal',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Se kanal',
'liveTv.favorites' => 'Favoritter',
'collections.title' => 'Samlinger',
'collections.collection' => 'Samling',
@@ -2085,6 +2100,9 @@ extension on TranslationsDa {
'metadataEdit.manuallySelected' => 'Manuelt valgt',
'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedsproget lyd',
'metadataEdit.alwaysEnabled' => 'Altid aktiveret',
'serverTasks.title' => 'Serveropgaver',
'serverTasks.failedToLoad' => 'Kunne ikke indlæse opgaver',
'serverTasks.noTasks' => 'Ingen opgaver kører',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsDe with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsDe videoSettings = _TranslationsVideoSettingsDe._(_root);
@override late final _TranslationsExternalPlayerDe externalPlayer = _TranslationsExternalPlayerDe._(_root);
@override late final _TranslationsMetadataEditDe metadataEdit = _TranslationsMetadataEditDe._(_root);
@override late final _TranslationsServerTasksDe serverTasks = _TranslationsServerTasksDe._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonDe implements TranslationsCommonEn {
@override String get loadingServers => 'Server werden geladen...';
@override String get connectingToServers => 'Verbindung zu Servern...';
@override String get startingOfflineMode => 'Offlinemodus wird gestartet...';
@override String get loading => 'Laden...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditDe implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Immer aktiviert';
}
// Path: serverTasks
class _TranslationsServerTasksDe implements TranslationsServerTasksEn {
_TranslationsServerTasksDe._(this._root);
final TranslationsDe _root; // ignore: unused_field
// Translations
@override String get title => 'Serveraufgaben';
@override String get failedToLoad => 'Aufgaben konnten nicht geladen werden';
@override String get noTasks => 'Keine laufenden Aufgaben';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsDe implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsDe._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsDe {
'common.loadingServers' => 'Server werden geladen...',
'common.connectingToServers' => 'Verbindung zu Servern...',
'common.startingOfflineMode' => 'Offlinemodus wird gestartet...',
'common.loading' => 'Laden...',
'screens.licenses' => 'Lizenzen',
'screens.switchProfile' => 'Profil wechseln',
'screens.subtitleStyling' => 'Untertitel-Stil',
@@ -1796,9 +1811,9 @@ extension on TranslationsDe {
'liveTv.evening' => 'Abend',
'liveTv.lateNight' => 'Spätnacht',
'liveTv.whatsOn' => 'Jetzt im TV',
'liveTv.watchChannel' => 'Kanal ansehen',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Kanal ansehen',
'liveTv.favorites' => 'Favoriten',
'downloads.title' => 'Downloads',
'downloads.manage' => 'Verwalten',
@@ -2085,6 +2100,9 @@ extension on TranslationsDe {
'metadataEdit.manuallySelected' => 'Manuell ausgewählt',
'metadataEdit.shownWithForeignAudio' => 'Bei fremdsprachigem Audio anzeigen',
'metadataEdit.alwaysEnabled' => 'Immer aktiviert',
'serverTasks.title' => 'Serveraufgaben',
'serverTasks.failedToLoad' => 'Aufgaben konnten nicht geladen werden',
'serverTasks.noTasks' => 'Keine laufenden Aufgaben',
_ => null,
};
}
+27 -1
View File
@@ -77,6 +77,7 @@ class Translations with BaseTranslations<AppLocale, Translations> {
late final TranslationsVideoSettingsEn videoSettings = TranslationsVideoSettingsEn._(_root);
late final TranslationsExternalPlayerEn externalPlayer = TranslationsExternalPlayerEn._(_root);
late final TranslationsMetadataEditEn metadataEdit = TranslationsMetadataEditEn._(_root);
late final TranslationsServerTasksEn serverTasks = TranslationsServerTasksEn._(_root);
}
// Path: app
@@ -254,6 +255,9 @@ class TranslationsCommonEn {
/// en: 'Starting offline mode...'
String get startingOfflineMode => 'Starting offline mode...';
/// en: 'Loading...'
String get loading => 'Loading...';
}
// Path: screens
@@ -2499,6 +2503,24 @@ class TranslationsMetadataEditEn {
String get alwaysEnabled => 'Always enabled';
}
// Path: serverTasks
class TranslationsServerTasksEn {
TranslationsServerTasksEn._(this._root);
final Translations _root; // ignore: unused_field
// Translations
/// en: 'Server Tasks'
String get title => 'Server Tasks';
/// en: 'Failed to load tasks'
String get failedToLoad => 'Failed to load tasks';
/// en: 'No tasks running'
String get noTasks => 'No tasks running';
}
// Path: hotkeys.actions
class TranslationsHotkeysActionsEn {
TranslationsHotkeysActionsEn._(this._root);
@@ -2938,6 +2960,7 @@ extension on Translations {
'common.loadingServers' => 'Loading servers...',
'common.connectingToServers' => 'Connecting to servers...',
'common.startingOfflineMode' => 'Starting offline mode...',
'common.loading' => 'Loading...',
'screens.licenses' => 'Licenses',
'screens.switchProfile' => 'Switch Profile',
'screens.subtitleStyling' => 'Subtitle Styling',
@@ -3399,9 +3422,9 @@ extension on Translations {
'liveTv.evening' => 'Evening',
'liveTv.lateNight' => 'Late Night',
'liveTv.whatsOn' => 'What\'s On',
'liveTv.watchChannel' => 'Watch Channel',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Watch Channel',
'liveTv.favorites' => 'Favorites',
'collections.title' => 'Collections',
'collections.collection' => 'Collection',
@@ -3688,6 +3711,9 @@ extension on Translations {
'metadataEdit.manuallySelected' => 'Manually selected',
'metadataEdit.shownWithForeignAudio' => 'Shown with foreign audio',
'metadataEdit.alwaysEnabled' => 'Always enabled',
'serverTasks.title' => 'Server Tasks',
'serverTasks.failedToLoad' => 'Failed to load tasks',
'serverTasks.noTasks' => 'No tasks running',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsEs with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsEs videoSettings = _TranslationsVideoSettingsEs._(_root);
@override late final _TranslationsExternalPlayerEs externalPlayer = _TranslationsExternalPlayerEs._(_root);
@override late final _TranslationsMetadataEditEs metadataEdit = _TranslationsMetadataEditEs._(_root);
@override late final _TranslationsServerTasksEs serverTasks = _TranslationsServerTasksEs._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonEs implements TranslationsCommonEn {
@override String get loadingServers => 'Cargando servidores...';
@override String get connectingToServers => 'Conectando a servidores...';
@override String get startingOfflineMode => 'Iniciando modo sin conexión...';
@override String get loading => 'Cargando...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditEs implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Siempre activado';
}
// Path: serverTasks
class _TranslationsServerTasksEs implements TranslationsServerTasksEn {
_TranslationsServerTasksEs._(this._root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Tareas del servidor';
@override String get failedToLoad => 'Error al cargar tareas';
@override String get noTasks => 'No hay tareas en ejecución';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsEs implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsEs._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsEs {
'common.loadingServers' => 'Cargando servidores...',
'common.connectingToServers' => 'Conectando a servidores...',
'common.startingOfflineMode' => 'Iniciando modo sin conexión...',
'common.loading' => 'Cargando...',
'screens.licenses' => 'Licencias',
'screens.switchProfile' => 'Cambiar Perfil',
'screens.subtitleStyling' => 'Estilo de Subtítulos',
@@ -1796,9 +1811,9 @@ extension on TranslationsEs {
'liveTv.evening' => 'Noche',
'liveTv.lateNight' => 'Trasnoche',
'liveTv.whatsOn' => 'En emisión',
'liveTv.watchChannel' => 'Ver canal',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Ver canal',
'liveTv.favorites' => 'Favoritos',
'collections.title' => 'Colecciones',
'collections.collection' => 'Colección',
@@ -2085,6 +2100,9 @@ extension on TranslationsEs {
'metadataEdit.manuallySelected' => 'Seleccionado manualmente',
'metadataEdit.shownWithForeignAudio' => 'Mostrar con audio extranjero',
'metadataEdit.alwaysEnabled' => 'Siempre activado',
'serverTasks.title' => 'Tareas del servidor',
'serverTasks.failedToLoad' => 'Error al cargar tareas',
'serverTasks.noTasks' => 'No hay tareas en ejecución',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsFr with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsFr videoSettings = _TranslationsVideoSettingsFr._(_root);
@override late final _TranslationsExternalPlayerFr externalPlayer = _TranslationsExternalPlayerFr._(_root);
@override late final _TranslationsMetadataEditFr metadataEdit = _TranslationsMetadataEditFr._(_root);
@override late final _TranslationsServerTasksFr serverTasks = _TranslationsServerTasksFr._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonFr implements TranslationsCommonEn {
@override String get loadingServers => 'Chargement des serveurs...';
@override String get connectingToServers => 'Connexion aux serveurs...';
@override String get startingOfflineMode => 'Démarrage en mode hors-ligne...';
@override String get loading => 'Chargement...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditFr implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Toujours activé';
}
// Path: serverTasks
class _TranslationsServerTasksFr implements TranslationsServerTasksEn {
_TranslationsServerTasksFr._(this._root);
final TranslationsFr _root; // ignore: unused_field
// Translations
@override String get title => 'Tâches du serveur';
@override String get failedToLoad => 'Échec du chargement des tâches';
@override String get noTasks => 'Aucune tâche en cours';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsFr implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsFr._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsFr {
'common.loadingServers' => 'Chargement des serveurs...',
'common.connectingToServers' => 'Connexion aux serveurs...',
'common.startingOfflineMode' => 'Démarrage en mode hors-ligne...',
'common.loading' => 'Chargement...',
'screens.licenses' => 'Licenses',
'screens.switchProfile' => 'Changer de profil',
'screens.subtitleStyling' => 'Configuration des sous-titres',
@@ -1796,9 +1811,9 @@ extension on TranslationsFr {
'liveTv.evening' => 'Soirée',
'liveTv.lateNight' => 'Nuit tardive',
'liveTv.whatsOn' => 'En ce moment',
'liveTv.watchChannel' => 'Regarder la chaîne',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Regarder la chaîne',
'liveTv.favorites' => 'Favoris',
'collections.title' => 'Collections',
'collections.collection' => 'Collection',
@@ -2085,6 +2100,9 @@ extension on TranslationsFr {
'metadataEdit.manuallySelected' => 'Sélectionné manuellement',
'metadataEdit.shownWithForeignAudio' => 'Affichés avec audio étranger',
'metadataEdit.alwaysEnabled' => 'Toujours activé',
'serverTasks.title' => 'Tâches du serveur',
'serverTasks.failedToLoad' => 'Échec du chargement des tâches',
'serverTasks.noTasks' => 'Aucune tâche en cours',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsIt with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsIt videoSettings = _TranslationsVideoSettingsIt._(_root);
@override late final _TranslationsExternalPlayerIt externalPlayer = _TranslationsExternalPlayerIt._(_root);
@override late final _TranslationsMetadataEditIt metadataEdit = _TranslationsMetadataEditIt._(_root);
@override late final _TranslationsServerTasksIt serverTasks = _TranslationsServerTasksIt._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonIt implements TranslationsCommonEn {
@override String get loadingServers => 'Caricamento server...';
@override String get connectingToServers => 'Connessione ai server...';
@override String get startingOfflineMode => 'Avvio modalità offline...';
@override String get loading => 'Caricamento...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditIt implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Sempre attivo';
}
// Path: serverTasks
class _TranslationsServerTasksIt implements TranslationsServerTasksEn {
_TranslationsServerTasksIt._(this._root);
final TranslationsIt _root; // ignore: unused_field
// Translations
@override String get title => 'Attività del server';
@override String get failedToLoad => 'Impossibile caricare le attività';
@override String get noTasks => 'Nessuna attività in corso';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsIt implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsIt._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsIt {
'common.loadingServers' => 'Caricamento server...',
'common.connectingToServers' => 'Connessione ai server...',
'common.startingOfflineMode' => 'Avvio modalità offline...',
'common.loading' => 'Caricamento...',
'screens.licenses' => 'Licenze',
'screens.switchProfile' => 'Cambia profilo',
'screens.subtitleStyling' => 'Stile sottotitoli',
@@ -1796,9 +1811,9 @@ extension on TranslationsIt {
'liveTv.evening' => 'Sera',
'liveTv.lateNight' => 'Notte tarda',
'liveTv.whatsOn' => 'In onda ora',
'liveTv.watchChannel' => 'Guarda canale',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Guarda canale',
'liveTv.favorites' => 'Preferiti',
'downloads.title' => 'Download',
'downloads.manage' => 'Gestisci',
@@ -2085,6 +2100,9 @@ extension on TranslationsIt {
'metadataEdit.manuallySelected' => 'Selezionato manualmente',
'metadataEdit.shownWithForeignAudio' => 'Mostrati con audio straniero',
'metadataEdit.alwaysEnabled' => 'Sempre attivo',
'serverTasks.title' => 'Attività del server',
'serverTasks.failedToLoad' => 'Impossibile caricare le attività',
'serverTasks.noTasks' => 'Nessuna attività in corso',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsJa with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsJa videoSettings = _TranslationsVideoSettingsJa._(_root);
@override late final _TranslationsExternalPlayerJa externalPlayer = _TranslationsExternalPlayerJa._(_root);
@override late final _TranslationsMetadataEditJa metadataEdit = _TranslationsMetadataEditJa._(_root);
@override late final _TranslationsServerTasksJa serverTasks = _TranslationsServerTasksJa._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonJa implements TranslationsCommonEn {
@override String get loadingServers => 'サーバーを読み込み中...';
@override String get connectingToServers => 'サーバーに接続中...';
@override String get startingOfflineMode => 'オフラインモードを開始中...';
@override String get loading => '読み込み中...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditJa implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => '常に有効';
}
// Path: serverTasks
class _TranslationsServerTasksJa implements TranslationsServerTasksEn {
_TranslationsServerTasksJa._(this._root);
final TranslationsJa _root; // ignore: unused_field
// Translations
@override String get title => 'サーバータスク';
@override String get failedToLoad => 'タスクの読み込みに失敗しました';
@override String get noTasks => '実行中のタスクはありません';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsJa implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsJa._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsJa {
'common.loadingServers' => 'サーバーを読み込み中...',
'common.connectingToServers' => 'サーバーに接続中...',
'common.startingOfflineMode' => 'オフラインモードを開始中...',
'common.loading' => '読み込み中...',
'screens.licenses' => 'ライセンス',
'screens.switchProfile' => 'プロフィール切替',
'screens.subtitleStyling' => '字幕スタイル',
@@ -1796,9 +1811,9 @@ extension on TranslationsJa {
'liveTv.evening' => '夕方',
'liveTv.lateNight' => '深夜',
'liveTv.whatsOn' => '放送中',
'liveTv.watchChannel' => 'チャンネルを視聴',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'チャンネルを視聴',
'liveTv.favorites' => 'お気に入り',
'collections.title' => 'コレクション',
'collections.collection' => 'コレクション',
@@ -2085,6 +2100,9 @@ extension on TranslationsJa {
'metadataEdit.manuallySelected' => '手動選択',
'metadataEdit.shownWithForeignAudio' => '外国語音声時に表示',
'metadataEdit.alwaysEnabled' => '常に有効',
'serverTasks.title' => 'サーバータスク',
'serverTasks.failedToLoad' => 'タスクの読み込みに失敗しました',
'serverTasks.noTasks' => '実行中のタスクはありません',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsKo with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsKo videoSettings = _TranslationsVideoSettingsKo._(_root);
@override late final _TranslationsExternalPlayerKo externalPlayer = _TranslationsExternalPlayerKo._(_root);
@override late final _TranslationsMetadataEditKo metadataEdit = _TranslationsMetadataEditKo._(_root);
@override late final _TranslationsServerTasksKo serverTasks = _TranslationsServerTasksKo._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonKo implements TranslationsCommonEn {
@override String get loadingServers => '서버 로딩 중...';
@override String get connectingToServers => '서버 연결 중...';
@override String get startingOfflineMode => '오프라인 모드 시작 중...';
@override String get loading => '로딩 중...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditKo implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => '항상 활성화';
}
// Path: serverTasks
class _TranslationsServerTasksKo implements TranslationsServerTasksEn {
_TranslationsServerTasksKo._(this._root);
final TranslationsKo _root; // ignore: unused_field
// Translations
@override String get title => '서버 작업';
@override String get failedToLoad => '작업을 불러올 수 없습니다';
@override String get noTasks => '실행 중인 작업 없음';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsKo implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsKo._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsKo {
'common.loadingServers' => '서버 로딩 중...',
'common.connectingToServers' => '서버 연결 중...',
'common.startingOfflineMode' => '오프라인 모드 시작 중...',
'common.loading' => '로딩 중...',
'screens.licenses' => '라이선스',
'screens.switchProfile' => '프로필 전환',
'screens.subtitleStyling' => '자막 스타일 설정',
@@ -1796,9 +1811,9 @@ extension on TranslationsKo {
'liveTv.evening' => '저녁',
'liveTv.lateNight' => '심야 방송',
'liveTv.whatsOn' => '지금 방송 중',
'liveTv.watchChannel' => '채널 시청',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => '채널 시청',
'liveTv.favorites' => '즐겨찾기',
'collections.title' => '컬렉션',
'collections.collection' => '컬렉션',
@@ -2085,6 +2100,9 @@ extension on TranslationsKo {
'metadataEdit.manuallySelected' => '수동 선택',
'metadataEdit.shownWithForeignAudio' => '외국어 오디오 시 표시',
'metadataEdit.alwaysEnabled' => '항상 활성화',
'serverTasks.title' => '서버 작업',
'serverTasks.failedToLoad' => '작업을 불러올 수 없습니다',
'serverTasks.noTasks' => '실행 중인 작업 없음',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsNb with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsNb videoSettings = _TranslationsVideoSettingsNb._(_root);
@override late final _TranslationsExternalPlayerNb externalPlayer = _TranslationsExternalPlayerNb._(_root);
@override late final _TranslationsMetadataEditNb metadataEdit = _TranslationsMetadataEditNb._(_root);
@override late final _TranslationsServerTasksNb serverTasks = _TranslationsServerTasksNb._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonNb implements TranslationsCommonEn {
@override String get loadingServers => 'Laster servere...';
@override String get connectingToServers => 'Kobler til servere...';
@override String get startingOfflineMode => 'Starter frakoblet modus...';
@override String get loading => 'Laster...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditNb implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Alltid aktivert';
}
// Path: serverTasks
class _TranslationsServerTasksNb implements TranslationsServerTasksEn {
_TranslationsServerTasksNb._(this._root);
final TranslationsNb _root; // ignore: unused_field
// Translations
@override String get title => 'Serveroppgaver';
@override String get failedToLoad => 'Kunne ikke laste oppgaver';
@override String get noTasks => 'Ingen oppgaver kjører';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsNb implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsNb._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsNb {
'common.loadingServers' => 'Laster servere...',
'common.connectingToServers' => 'Kobler til servere...',
'common.startingOfflineMode' => 'Starter frakoblet modus...',
'common.loading' => 'Laster...',
'screens.licenses' => 'Lisenser',
'screens.switchProfile' => 'Bytt profil',
'screens.subtitleStyling' => 'Undertekststil',
@@ -1796,9 +1811,9 @@ extension on TranslationsNb {
'liveTv.evening' => 'Kveld',
'liveTv.lateNight' => 'Sen kveld',
'liveTv.whatsOn' => 'Hva går nå',
'liveTv.watchChannel' => 'Se kanal',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Se kanal',
'liveTv.favorites' => 'Favoritter',
'collections.title' => 'Samlinger',
'collections.collection' => 'Samling',
@@ -2085,6 +2100,9 @@ extension on TranslationsNb {
'metadataEdit.manuallySelected' => 'Manuelt valgt',
'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedspråklig lyd',
'metadataEdit.alwaysEnabled' => 'Alltid aktivert',
'serverTasks.title' => 'Serveroppgaver',
'serverTasks.failedToLoad' => 'Kunne ikke laste oppgaver',
'serverTasks.noTasks' => 'Ingen oppgaver kjører',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsNl with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsNl videoSettings = _TranslationsVideoSettingsNl._(_root);
@override late final _TranslationsExternalPlayerNl externalPlayer = _TranslationsExternalPlayerNl._(_root);
@override late final _TranslationsMetadataEditNl metadataEdit = _TranslationsMetadataEditNl._(_root);
@override late final _TranslationsServerTasksNl serverTasks = _TranslationsServerTasksNl._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonNl implements TranslationsCommonEn {
@override String get loadingServers => 'Servers laden...';
@override String get connectingToServers => 'Verbinden met servers...';
@override String get startingOfflineMode => 'Offlinemodus starten...';
@override String get loading => 'Laden...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditNl implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Altijd ingeschakeld';
}
// Path: serverTasks
class _TranslationsServerTasksNl implements TranslationsServerTasksEn {
_TranslationsServerTasksNl._(this._root);
final TranslationsNl _root; // ignore: unused_field
// Translations
@override String get title => 'Servertaken';
@override String get failedToLoad => 'Taken konden niet worden geladen';
@override String get noTasks => 'Geen actieve taken';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsNl implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsNl._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsNl {
'common.loadingServers' => 'Servers laden...',
'common.connectingToServers' => 'Verbinden met servers...',
'common.startingOfflineMode' => 'Offlinemodus starten...',
'common.loading' => 'Laden...',
'screens.licenses' => 'Licenties',
'screens.switchProfile' => 'Wissel van profiel',
'screens.subtitleStyling' => 'Ondertitel opmaak',
@@ -1796,9 +1811,9 @@ extension on TranslationsNl {
'liveTv.evening' => 'Avond',
'liveTv.lateNight' => 'Late avond',
'liveTv.whatsOn' => 'Nu op TV',
'liveTv.watchChannel' => 'Kanaal bekijken',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Kanaal bekijken',
'liveTv.favorites' => 'Favorieten',
'downloads.title' => 'Downloads',
'downloads.manage' => 'Beheren',
@@ -2085,6 +2100,9 @@ extension on TranslationsNl {
'metadataEdit.manuallySelected' => 'Handmatig geselecteerd',
'metadataEdit.shownWithForeignAudio' => 'Weergeven bij anderstalig geluid',
'metadataEdit.alwaysEnabled' => 'Altijd ingeschakeld',
'serverTasks.title' => 'Servertaken',
'serverTasks.failedToLoad' => 'Taken konden niet worden geladen',
'serverTasks.noTasks' => 'Geen actieve taken',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsPl with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsPl videoSettings = _TranslationsVideoSettingsPl._(_root);
@override late final _TranslationsExternalPlayerPl externalPlayer = _TranslationsExternalPlayerPl._(_root);
@override late final _TranslationsMetadataEditPl metadataEdit = _TranslationsMetadataEditPl._(_root);
@override late final _TranslationsServerTasksPl serverTasks = _TranslationsServerTasksPl._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonPl implements TranslationsCommonEn {
@override String get loadingServers => 'Ładowanie serwerów...';
@override String get connectingToServers => 'Łączenie z serwerami...';
@override String get startingOfflineMode => 'Uruchamianie trybu offline...';
@override String get loading => 'Ładowanie...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditPl implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Zawsze włączone';
}
// Path: serverTasks
class _TranslationsServerTasksPl implements TranslationsServerTasksEn {
_TranslationsServerTasksPl._(this._root);
final TranslationsPl _root; // ignore: unused_field
// Translations
@override String get title => 'Zadania serwera';
@override String get failedToLoad => 'Nie udało się załadować zadań';
@override String get noTasks => 'Brak uruchomionych zadań';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsPl implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsPl._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsPl {
'common.loadingServers' => 'Ładowanie serwerów...',
'common.connectingToServers' => 'Łączenie z serwerami...',
'common.startingOfflineMode' => 'Uruchamianie trybu offline...',
'common.loading' => 'Ładowanie...',
'screens.licenses' => 'Licencje',
'screens.switchProfile' => 'Zmień profil',
'screens.subtitleStyling' => 'Styl napisów',
@@ -1796,9 +1811,9 @@ extension on TranslationsPl {
'liveTv.evening' => 'Wieczorem',
'liveTv.lateNight' => 'Późna noc',
'liveTv.whatsOn' => 'Co leci',
'liveTv.watchChannel' => 'Oglądaj kanał',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Oglądaj kanał',
'liveTv.favorites' => 'Ulubione',
'collections.title' => 'Kolekcje',
'collections.collection' => 'Kolekcja',
@@ -2085,6 +2100,9 @@ extension on TranslationsPl {
'metadataEdit.manuallySelected' => 'Wybrany ręcznie',
'metadataEdit.shownWithForeignAudio' => 'Wyświetlane przy obcojęzycznym audio',
'metadataEdit.alwaysEnabled' => 'Zawsze włączone',
'serverTasks.title' => 'Zadania serwera',
'serverTasks.failedToLoad' => 'Nie udało się załadować zadań',
'serverTasks.noTasks' => 'Brak uruchomionych zadań',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsPt with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsPt videoSettings = _TranslationsVideoSettingsPt._(_root);
@override late final _TranslationsExternalPlayerPt externalPlayer = _TranslationsExternalPlayerPt._(_root);
@override late final _TranslationsMetadataEditPt metadataEdit = _TranslationsMetadataEditPt._(_root);
@override late final _TranslationsServerTasksPt serverTasks = _TranslationsServerTasksPt._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonPt implements TranslationsCommonEn {
@override String get loadingServers => 'Carregando servidores...';
@override String get connectingToServers => 'Conectando aos servidores...';
@override String get startingOfflineMode => 'Iniciando modo offline...';
@override String get loading => 'Carregando...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditPt implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Sempre ativado';
}
// Path: serverTasks
class _TranslationsServerTasksPt implements TranslationsServerTasksEn {
_TranslationsServerTasksPt._(this._root);
final TranslationsPt _root; // ignore: unused_field
// Translations
@override String get title => 'Tarefas do servidor';
@override String get failedToLoad => 'Falha ao carregar tarefas';
@override String get noTasks => 'Nenhuma tarefa em execução';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsPt implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsPt._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsPt {
'common.loadingServers' => 'Carregando servidores...',
'common.connectingToServers' => 'Conectando aos servidores...',
'common.startingOfflineMode' => 'Iniciando modo offline...',
'common.loading' => 'Carregando...',
'screens.licenses' => 'Licenças',
'screens.switchProfile' => 'Trocar Perfil',
'screens.subtitleStyling' => 'Estilo de Legendas',
@@ -1796,9 +1811,9 @@ extension on TranslationsPt {
'liveTv.evening' => 'Noite',
'liveTv.lateNight' => 'Madrugada',
'liveTv.whatsOn' => 'O que Está Passando',
'liveTv.watchChannel' => 'Assistir Canal',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Assistir Canal',
'liveTv.favorites' => 'Favoritos',
'collections.title' => 'Coleções',
'collections.collection' => 'Coleção',
@@ -2085,6 +2100,9 @@ extension on TranslationsPt {
'metadataEdit.manuallySelected' => 'Seleção manual',
'metadataEdit.shownWithForeignAudio' => 'Exibir com áudio estrangeiro',
'metadataEdit.alwaysEnabled' => 'Sempre ativado',
'serverTasks.title' => 'Tarefas do servidor',
'serverTasks.failedToLoad' => 'Falha ao carregar tarefas',
'serverTasks.noTasks' => 'Nenhuma tarefa em execução',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsRu with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsRu videoSettings = _TranslationsVideoSettingsRu._(_root);
@override late final _TranslationsExternalPlayerRu externalPlayer = _TranslationsExternalPlayerRu._(_root);
@override late final _TranslationsMetadataEditRu metadataEdit = _TranslationsMetadataEditRu._(_root);
@override late final _TranslationsServerTasksRu serverTasks = _TranslationsServerTasksRu._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonRu implements TranslationsCommonEn {
@override String get loadingServers => 'Загрузка серверов...';
@override String get connectingToServers => 'Подключение к серверам...';
@override String get startingOfflineMode => 'Запуск автономного режима...';
@override String get loading => 'Загрузка...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditRu implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Всегда включены';
}
// Path: serverTasks
class _TranslationsServerTasksRu implements TranslationsServerTasksEn {
_TranslationsServerTasksRu._(this._root);
final TranslationsRu _root; // ignore: unused_field
// Translations
@override String get title => 'Задачи сервера';
@override String get failedToLoad => 'Не удалось загрузить задачи';
@override String get noTasks => 'Нет выполняемых задач';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsRu implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsRu._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsRu {
'common.loadingServers' => 'Загрузка серверов...',
'common.connectingToServers' => 'Подключение к серверам...',
'common.startingOfflineMode' => 'Запуск автономного режима...',
'common.loading' => 'Загрузка...',
'screens.licenses' => 'Лицензии',
'screens.switchProfile' => 'Сменить профиль',
'screens.subtitleStyling' => 'Стиль субтитров',
@@ -1796,9 +1811,9 @@ extension on TranslationsRu {
'liveTv.evening' => 'Вечер',
'liveTv.lateNight' => 'Поздний вечер',
'liveTv.whatsOn' => 'Что идёт',
'liveTv.watchChannel' => 'Смотреть канал',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Смотреть канал',
'liveTv.favorites' => 'Избранное',
'collections.title' => 'Коллекции',
'collections.collection' => 'Коллекция',
@@ -2085,6 +2100,9 @@ extension on TranslationsRu {
'metadataEdit.manuallySelected' => 'Выбор вручную',
'metadataEdit.shownWithForeignAudio' => 'Показывать при иноязычном аудио',
'metadataEdit.alwaysEnabled' => 'Всегда включены',
'serverTasks.title' => 'Задачи сервера',
'serverTasks.failedToLoad' => 'Не удалось загрузить задачи',
'serverTasks.noTasks' => 'Нет выполняемых задач',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsSv with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsSv videoSettings = _TranslationsVideoSettingsSv._(_root);
@override late final _TranslationsExternalPlayerSv externalPlayer = _TranslationsExternalPlayerSv._(_root);
@override late final _TranslationsMetadataEditSv metadataEdit = _TranslationsMetadataEditSv._(_root);
@override late final _TranslationsServerTasksSv serverTasks = _TranslationsServerTasksSv._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonSv implements TranslationsCommonEn {
@override String get loadingServers => 'Laddar servrar...';
@override String get connectingToServers => 'Ansluter till servrar...';
@override String get startingOfflineMode => 'Startar offlineläge...';
@override String get loading => 'Laddar...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditSv implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => 'Alltid aktiverad';
}
// Path: serverTasks
class _TranslationsServerTasksSv implements TranslationsServerTasksEn {
_TranslationsServerTasksSv._(this._root);
final TranslationsSv _root; // ignore: unused_field
// Translations
@override String get title => 'Serveruppgifter';
@override String get failedToLoad => 'Kunde inte ladda uppgifter';
@override String get noTasks => 'Inga pågående uppgifter';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsSv implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsSv._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsSv {
'common.loadingServers' => 'Laddar servrar...',
'common.connectingToServers' => 'Ansluter till servrar...',
'common.startingOfflineMode' => 'Startar offlineläge...',
'common.loading' => 'Laddar...',
'screens.licenses' => 'Licenser',
'screens.switchProfile' => 'Byt profil',
'screens.subtitleStyling' => 'Undertext-styling',
@@ -1796,9 +1811,9 @@ extension on TranslationsSv {
'liveTv.evening' => 'Kväll',
'liveTv.lateNight' => 'Sen kväll',
'liveTv.whatsOn' => 'På TV nu',
'liveTv.watchChannel' => 'Titta på kanal',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => 'Titta på kanal',
'liveTv.favorites' => 'Favoriter',
'downloads.title' => 'Nedladdningar',
'downloads.manage' => 'Hantera',
@@ -2085,6 +2100,9 @@ extension on TranslationsSv {
'metadataEdit.manuallySelected' => 'Manuellt vald',
'metadataEdit.shownWithForeignAudio' => 'Visas vid främmande ljud',
'metadataEdit.alwaysEnabled' => 'Alltid aktiverad',
'serverTasks.title' => 'Serveruppgifter',
'serverTasks.failedToLoad' => 'Kunde inte ladda uppgifter',
'serverTasks.noTasks' => 'Inga pågående uppgifter',
_ => null,
};
}
+19 -1
View File
@@ -74,6 +74,7 @@ class TranslationsZh with BaseTranslations<AppLocale, Translations> implements T
@override late final _TranslationsVideoSettingsZh videoSettings = _TranslationsVideoSettingsZh._(_root);
@override late final _TranslationsExternalPlayerZh externalPlayer = _TranslationsExternalPlayerZh._(_root);
@override late final _TranslationsMetadataEditZh metadataEdit = _TranslationsMetadataEditZh._(_root);
@override late final _TranslationsServerTasksZh serverTasks = _TranslationsServerTasksZh._(_root);
}
// Path: app
@@ -151,6 +152,7 @@ class _TranslationsCommonZh implements TranslationsCommonEn {
@override String get loadingServers => '正在加载服务器...';
@override String get connectingToServers => '正在连接服务器...';
@override String get startingOfflineMode => '正在启动离线模式...';
@override String get loading => '加载中...';
}
// Path: screens
@@ -1108,6 +1110,18 @@ class _TranslationsMetadataEditZh implements TranslationsMetadataEditEn {
@override String get alwaysEnabled => '始终启用';
}
// Path: serverTasks
class _TranslationsServerTasksZh implements TranslationsServerTasksEn {
_TranslationsServerTasksZh._(this._root);
final TranslationsZh _root; // ignore: unused_field
// Translations
@override String get title => '服务器任务';
@override String get failedToLoad => '加载任务失败';
@override String get noTasks => '没有正在运行的任务';
}
// Path: hotkeys.actions
class _TranslationsHotkeysActionsZh implements TranslationsHotkeysActionsEn {
_TranslationsHotkeysActionsZh._(this._root);
@@ -1335,6 +1349,7 @@ extension on TranslationsZh {
'common.loadingServers' => '正在加载服务器...',
'common.connectingToServers' => '正在连接服务器...',
'common.startingOfflineMode' => '正在启动离线模式...',
'common.loading' => '加载中...',
'screens.licenses' => '许可证',
'screens.switchProfile' => '切换用户',
'screens.subtitleStyling' => '字幕样式',
@@ -1796,9 +1811,9 @@ extension on TranslationsZh {
'liveTv.evening' => '晚上',
'liveTv.lateNight' => '深夜',
'liveTv.whatsOn' => '正在播出',
'liveTv.watchChannel' => '观看频道',
_ => null,
} ?? switch (path) {
'liveTv.watchChannel' => '观看频道',
'liveTv.favorites' => '收藏',
'downloads.title' => '下载',
'downloads.manage' => '管理',
@@ -2085,6 +2100,9 @@ extension on TranslationsZh {
'metadataEdit.manuallySelected' => '手动选择',
'metadataEdit.shownWithForeignAudio' => '外语音频时显示',
'metadataEdit.alwaysEnabled' => '始终启用',
'serverTasks.title' => '服务器任务',
'serverTasks.failedToLoad' => '加载任务失败',
'serverTasks.noTasks' => '没有正在运行的任务',
_ => null,
};
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "Uppdaterar servrar...",
"loadingServers": "Laddar servrar...",
"connectingToServers": "Ansluter till servrar...",
"startingOfflineMode": "Startar offlineläge..."
"startingOfflineMode": "Startar offlineläge...",
"loading": "Laddar..."
},
"screens": {
"licenses": "Licenser",
@@ -884,5 +885,10 @@
"manuallySelected": "Manuellt vald",
"shownWithForeignAudio": "Visas vid främmande ljud",
"alwaysEnabled": "Alltid aktiverad"
},
"serverTasks": {
"title": "Serveruppgifter",
"failedToLoad": "Kunde inte ladda uppgifter",
"noTasks": "Inga pågående uppgifter"
}
}
+7 -1
View File
@@ -53,7 +53,8 @@
"refreshingServers": "正在刷新服务器...",
"loadingServers": "正在加载服务器...",
"connectingToServers": "正在连接服务器...",
"startingOfflineMode": "正在启动离线模式..."
"startingOfflineMode": "正在启动离线模式...",
"loading": "加载中..."
},
"screens": {
"licenses": "许可证",
@@ -884,5 +885,10 @@
"manuallySelected": "手动选择",
"shownWithForeignAudio": "外语音频时显示",
"alwaysEnabled": "始终启用"
},
"serverTasks": {
"title": "服务器任务",
"failedToLoad": "加载任务失败",
"noTasks": "没有正在运行的任务"
}
}
+60 -58
View File
@@ -4,6 +4,8 @@ import 'package:flutter/material.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:provider/provider.dart';
import '../focus/key_event_utils.dart';
import '../i18n/strings.g.dart';
import '../theme/mono_tokens.dart';
import 'package:plezy/widgets/app_icon.dart';
import '../models/plex_activity.dart';
@@ -45,6 +47,12 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
final _panelNotifier = ValueNotifier<_PanelData>(_PanelData.loading);
Timer? _pollTimer;
@override
void deactivate() {
_removeOverlay();
super.deactivate();
}
@override
void dispose() {
_removeOverlay();
@@ -79,63 +87,53 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
builder: (ctx) => _buildOverlay(ctx, right: right, top: top),
);
Overlay.of(context).insert(_overlayEntry!);
_fetchActivities().then((_) {
if (mounted && _overlayEntry != null) {
_pollTimer = Timer.periodic(const Duration(seconds: 1), (_) => _silentRefresh());
}
});
_fetchActivities();
}
Future<void> _fetchActivities() async {
Future<List<_ServerResult>> _loadFromServers() async {
final multiServer = Provider.of<MultiServerProvider>(context, listen: false);
final serverIds = multiServer.onlineServerIds;
try {
final futures = serverIds.map((serverId) async {
final client = multiServer.getClientForServer(serverId);
if (client == null) return null;
final activities = await client.getActivities();
return _ServerResult(
serverId: serverId,
serverName: client.serverName ?? serverId,
activities: activities,
);
});
final rawResults = await Future.wait(futures);
if (!mounted) return;
_panelNotifier.value = _PanelData(
fetchState: _FetchState.loaded,
results: rawResults.whereType<_ServerResult>().toList(),
final futures = serverIds.map((serverId) async {
final client = multiServer.getClientForServer(serverId);
if (client == null) return null;
final activities = await client.getActivities();
return _ServerResult(
serverId: serverId,
serverName: client.serverName ?? serverId,
activities: activities,
);
});
final rawResults = await Future.wait(futures);
return rawResults.whereType<_ServerResult>().toList();
}
Future<void> _fetchActivities() async {
try {
final results = await _loadFromServers();
if (!mounted) return;
_panelNotifier.value = _PanelData(fetchState: _FetchState.loaded, results: results);
_startPolling();
} catch (_) {
if (!mounted) return;
_panelNotifier.value = const _PanelData(fetchState: _FetchState.error, results: []);
}
}
void _startPolling() {
_pollTimer?.cancel();
if (mounted && _overlayEntry != null) {
_pollTimer = Timer.periodic(const Duration(seconds: 3), (_) => _silentRefresh());
}
}
Future<void> _silentRefresh() async {
if (!mounted) return;
final multiServer = Provider.of<MultiServerProvider>(context, listen: false);
final serverIds = multiServer.onlineServerIds;
try {
final futures = serverIds.map((serverId) async {
final client = multiServer.getClientForServer(serverId);
if (client == null) return null;
final activities = await client.getActivities();
return _ServerResult(
serverId: serverId,
serverName: client.serverName ?? serverId,
activities: activities,
);
});
final rawResults = await Future.wait(futures);
final results = await _loadFromServers();
if (!mounted) return;
_panelNotifier.value = _PanelData(
fetchState: _FetchState.loaded,
results: rawResults.whereType<_ServerResult>().toList(),
);
_panelNotifier.value = _PanelData(fetchState: _FetchState.loaded, results: results);
} catch (_) {
// silently ignore poll errors
}
@@ -145,15 +143,15 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
final multiServer = Provider.of<MultiServerProvider>(context, listen: false);
final client = multiServer.getClientForServer(serverId);
if (client == null) return;
await client.cancelActivity(uuid);
try {
await client.cancelActivity(uuid);
} catch (_) {
return;
}
_pollTimer?.cancel();
_pollTimer = null;
_panelNotifier.value = _PanelData.loading;
_fetchActivities().then((_) {
if (mounted && _overlayEntry != null) {
_pollTimer = Timer.periodic(const Duration(seconds: 1), (_) => _silentRefresh());
}
});
_fetchActivities();
}
Widget _buildOverlay(BuildContext overlayContext, {required double right, required double top}) {
@@ -168,9 +166,13 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
Positioned(
right: right,
top: top,
child: ValueListenableBuilder<_PanelData>(
valueListenable: _panelNotifier,
builder: (context, data, _) => _buildPanel(context, data),
child: Focus(
autofocus: true,
onKeyEvent: (_, event) => handleBackKeyAction(event, _removeOverlay),
child: ValueListenableBuilder<_PanelData>(
valueListenable: _panelNotifier,
builder: (context, data, _) => _buildPanel(context, data),
),
),
),
],
@@ -210,10 +212,10 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
padding: const EdgeInsets.fromLTRB(16, 10, 16, 10),
child: Row(
children: [
AppIcon(Symbols.pending_actions_rounded, size: 18, color: theme.colorScheme.onSurface),
AppIcon(Symbols.monitor_heart_rounded, size: 18, color: theme.colorScheme.onSurface),
const SizedBox(width: 8),
Text(
'Server Tasks',
t.serverTasks.title,
style: theme.textTheme.titleSmall?.copyWith(fontWeight: FontWeight.bold),
),
],
@@ -229,7 +231,7 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
padding: const EdgeInsets.all(24),
child: Center(
child: Text(
'Loading...',
t.common.loading,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.onSurface.withValues(alpha: 0.55),
),
@@ -246,7 +248,7 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
children: [
Icon(Icons.error_outline, color: theme.colorScheme.error),
const SizedBox(height: 8),
Text('Failed to load tasks', style: theme.textTheme.bodyMedium),
Text(t.serverTasks.failedToLoad, style: theme.textTheme.bodyMedium),
],
),
);
@@ -258,7 +260,7 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
padding: const EdgeInsets.all(24),
child: Center(
child: Text(
'No tasks running',
t.serverTasks.noTasks,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.onSurface.withValues(alpha: 0.55),
),
@@ -352,7 +354,7 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
icon: AppIcon(Symbols.close_rounded, size: 16, color: theme.colorScheme.onSurface),
onPressed: () => _cancelActivity(serverId, activity.uuid),
visualDensity: VisualDensity.compact,
tooltip: 'Cancel',
tooltip: t.common.cancel,
),
],
),
@@ -363,9 +365,9 @@ class _ServerActivitiesButtonState extends State<ServerActivitiesButton> {
Widget build(BuildContext context) {
return IconButton(
key: _buttonKey,
icon: const AppIcon(Symbols.pending_actions_rounded, color: Colors.white),
icon: const AppIcon(Symbols.monitor_heart_rounded, color: Colors.white),
onPressed: _togglePanel,
tooltip: 'Server Tasks',
tooltip: t.serverTasks.title,
);
}
}