From d5d9da046ef212e172312dd37fc046fdacaa395a Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Thu, 23 Apr 2026 18:04:19 +0200 Subject: [PATCH] feat: toggle auto update check on startup close #913 --- lib/i18n/da.i18n.json | 2 ++ lib/i18n/de.i18n.json | 2 ++ lib/i18n/en.i18n.json | 2 ++ lib/i18n/es.i18n.json | 2 ++ lib/i18n/fr.i18n.json | 2 ++ lib/i18n/it.i18n.json | 2 ++ lib/i18n/ja.i18n.json | 2 ++ lib/i18n/ko.i18n.json | 2 ++ lib/i18n/nb.i18n.json | 2 ++ lib/i18n/nl.i18n.json | 2 ++ lib/i18n/pl.i18n.json | 2 ++ lib/i18n/pt.i18n.json | 2 ++ lib/i18n/ru.i18n.json | 2 ++ lib/i18n/strings.g.dart | 4 ++-- lib/i18n/strings_da.g.dart | 8 ++++++-- lib/i18n/strings_de.g.dart | 8 ++++++-- lib/i18n/strings_en.g.dart | 12 ++++++++++-- lib/i18n/strings_es.g.dart | 8 ++++++-- lib/i18n/strings_fr.g.dart | 8 ++++++-- lib/i18n/strings_it.g.dart | 8 ++++++-- lib/i18n/strings_ja.g.dart | 8 ++++++-- lib/i18n/strings_ko.g.dart | 8 ++++++-- lib/i18n/strings_nb.g.dart | 8 ++++++-- lib/i18n/strings_nl.g.dart | 8 ++++++-- lib/i18n/strings_pl.g.dart | 8 ++++++-- lib/i18n/strings_pt.g.dart | 8 ++++++-- lib/i18n/strings_ru.g.dart | 8 ++++++-- lib/i18n/strings_sv.g.dart | 8 ++++++-- lib/i18n/strings_zh.g.dart | 8 ++++++-- lib/i18n/sv.i18n.json | 2 ++ lib/i18n/zh.i18n.json | 2 ++ lib/screens/main_screen.dart | 6 +++--- lib/screens/settings/settings_screen.dart | 19 +++++++++++++++++++ lib/services/settings_service.dart | 10 ++++++++++ 34 files changed, 158 insertions(+), 35 deletions(-) diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index 5b0adfaf..46989ab2 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -177,6 +177,8 @@ "updates": "Opdateringer", "updateAvailable": "Opdatering tilgængelig", "checkForUpdates": "Søg efter opdateringer", + "autoCheckUpdatesOnStartup": "Søg automatisk efter opdateringer ved opstart", + "autoCheckUpdatesOnStartupDescription": "Vis en notifikation, når en ny version er tilgængelig ved opstart", "validationErrorEnterNumber": "Indtast et gyldigt tal", "validationErrorDuration": "Varighed skal være mellem ${min} og ${max} ${unit}", "shortcutAlreadyAssigned": "Genvej allerede tildelt til ${action}", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 95d9173f..95337579 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -177,6 +177,8 @@ "updates": "Updates", "updateAvailable": "Update verfügbar", "checkForUpdates": "Nach Updates suchen", + "autoCheckUpdatesOnStartup": "Beim Start automatisch nach Updates suchen", + "autoCheckUpdatesOnStartupDescription": "Benachrichtigung anzeigen, wenn beim Start eine neue Version verfügbar ist", "validationErrorEnterNumber": "Bitte eine gültige Zahl eingeben", "validationErrorDuration": "Dauer muss zwischen ${min} und ${max} ${unit} liegen", "shortcutAlreadyAssigned": "Tastenkürzel bereits zugewiesen an ${action}", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index 41313817..e7efca03 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -177,6 +177,8 @@ "updates": "Updates", "updateAvailable": "Update Available", "checkForUpdates": "Check for Updates", + "autoCheckUpdatesOnStartup": "Automatically check for updates on startup", + "autoCheckUpdatesOnStartupDescription": "Show a notification when a new version is available at launch", "validationErrorEnterNumber": "Please enter a valid number", "validationErrorDuration": "Duration must be between ${min} and ${max} ${unit}", "shortcutAlreadyAssigned": "Shortcut already assigned to ${action}", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 28bdb699..c3144fd8 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -177,6 +177,8 @@ "updates": "Actualizaciones", "updateAvailable": "Actualización disponible", "checkForUpdates": "Buscar actualizaciones", + "autoCheckUpdatesOnStartup": "Buscar actualizaciones automáticamente al iniciar", + "autoCheckUpdatesOnStartupDescription": "Mostrar una notificación cuando haya una nueva versión disponible al iniciar", "validationErrorEnterNumber": "Por favor, introduce un número válido", "validationErrorDuration": "La duración debe estar entre ${min} y ${max} ${unit}", "shortcutAlreadyAssigned": "El atajo ya está asignado a ${action}", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index b7de2a77..3e81f25e 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -177,6 +177,8 @@ "updates": "Mises à jour", "updateAvailable": "Mise à jour disponible", "checkForUpdates": "Vérifier les mises à jour", + "autoCheckUpdatesOnStartup": "Vérifier automatiquement les mises à jour au démarrage", + "autoCheckUpdatesOnStartupDescription": "Afficher une notification lorsqu'une nouvelle version est disponible au démarrage", "validationErrorEnterNumber": "Veuillez saisir un numéro valide", "validationErrorDuration": "La durée doit être comprise entre ${min} et ${max} ${unit}", "shortcutAlreadyAssigned": "Raccourci déjà attribué à ${action}", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 6761d93b..dc23e841 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -177,6 +177,8 @@ "updates": "Aggiornamenti", "updateAvailable": "Aggiornamento disponibile", "checkForUpdates": "Controlla aggiornamenti", + "autoCheckUpdatesOnStartup": "Controlla automaticamente gli aggiornamenti all'avvio", + "autoCheckUpdatesOnStartupDescription": "Mostra una notifica quando è disponibile una nuova versione all'avvio", "validationErrorEnterNumber": "Inserisci un numero valido", "validationErrorDuration": "la durata deve essere compresa tra ${min} e ${max} ${unit}", "shortcutAlreadyAssigned": "Scorciatoia già assegnata a ${action}", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 92c13c3c..e268293d 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -177,6 +177,8 @@ "updates": "アップデート", "updateAvailable": "アップデート利用可能", "checkForUpdates": "アップデートを確認", + "autoCheckUpdatesOnStartup": "起動時にアップデートを自動的に確認", + "autoCheckUpdatesOnStartupDescription": "起動時に新しいバージョンが利用可能な場合に通知を表示", "validationErrorEnterNumber": "有効な数値を入力してください", "validationErrorDuration": "時間は${min}から${max} ${unit}の間である必要があります", "shortcutAlreadyAssigned": "ショートカットは既に${action}に割り当てられています", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index d59cea3b..dc76a174 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -177,6 +177,8 @@ "updates": "업데이트", "updateAvailable": "사용 가능한 업데이트 있음", "checkForUpdates": "업데이트 확인", + "autoCheckUpdatesOnStartup": "시작 시 자동으로 업데이트 확인", + "autoCheckUpdatesOnStartupDescription": "시작 시 새 버전이 있으면 알림 표시", "validationErrorEnterNumber": "유효한 숫자를 입력하세요", "validationErrorDuration": "기간은 ${min}과 ${max} ${unit} 사이여야 합니다", "shortcutAlreadyAssigned": "단축키가 이미 ${action}에 할당 되었습니다", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index 520f0e58..e35e926f 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -177,6 +177,8 @@ "updates": "Oppdateringer", "updateAvailable": "Oppdatering tilgjengelig", "checkForUpdates": "Se etter oppdateringer", + "autoCheckUpdatesOnStartup": "Se automatisk etter oppdateringer ved oppstart", + "autoCheckUpdatesOnStartupDescription": "Vis et varsel når en ny versjon er tilgjengelig ved oppstart", "validationErrorEnterNumber": "Vennligst skriv inn et gyldig tall", "validationErrorDuration": "Varigheten må være mellom ${min} og ${max} ${unit}", "shortcutAlreadyAssigned": "Snarvei allerede tilordnet til ${action}", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 3919618e..85dd499f 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -177,6 +177,8 @@ "updates": "Updates", "updateAvailable": "Update beschikbaar", "checkForUpdates": "Controleer op updates", + "autoCheckUpdatesOnStartup": "Automatisch controleren op updates bij opstarten", + "autoCheckUpdatesOnStartupDescription": "Toon een melding wanneer bij het opstarten een nieuwe versie beschikbaar is", "validationErrorEnterNumber": "Voer een geldig nummer in", "validationErrorDuration": "Duur moet tussen ${min} en ${max} ${unit} zijn", "shortcutAlreadyAssigned": "Sneltoets al toegewezen aan ${action}", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index 1ccca64a..44164dce 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -177,6 +177,8 @@ "updates": "Aktualizacje", "updateAvailable": "Dostępna aktualizacja", "checkForUpdates": "Sprawdź aktualizacje", + "autoCheckUpdatesOnStartup": "Automatycznie sprawdzaj aktualizacje przy uruchomieniu", + "autoCheckUpdatesOnStartupDescription": "Pokaż powiadomienie, gdy przy uruchomieniu dostępna jest nowa wersja", "validationErrorEnterNumber": "Wprowadź prawidłową liczbę", "validationErrorDuration": "Czas musi być między ${min} a ${max} ${unit}", "shortcutAlreadyAssigned": "Skrót jest już przypisany do ${action}", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index 4cfb1f5b..7a2308cd 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -177,6 +177,8 @@ "updates": "Atualizações", "updateAvailable": "Atualização Disponível", "checkForUpdates": "Verificar Atualizações", + "autoCheckUpdatesOnStartup": "Verificar atualizações automaticamente ao iniciar", + "autoCheckUpdatesOnStartupDescription": "Mostrar uma notificação quando uma nova versão estiver disponível ao iniciar", "validationErrorEnterNumber": "Insira um número válido", "validationErrorDuration": "A duração deve ser entre ${min} e ${max} ${unit}", "shortcutAlreadyAssigned": "Atalho já atribuído a ${action}", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 54967f78..77194888 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -177,6 +177,8 @@ "updates": "Обновления", "updateAvailable": "Доступно обновление", "checkForUpdates": "Проверить обновления", + "autoCheckUpdatesOnStartup": "Автоматически проверять обновления при запуске", + "autoCheckUpdatesOnStartupDescription": "Показывать уведомление при запуске, если доступна новая версия", "validationErrorEnterNumber": "Введите корректное число", "validationErrorDuration": "Длительность должна быть от ${min} до ${max} ${unit}", "shortcutAlreadyAssigned": "Клавиша уже назначена для ${action}", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 3b0e95d8..9a0f99d0 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 15 -/// Strings: 13725 (915 per locale) +/// Strings: 13755 (917 per locale) /// -/// Built on 2026-04-23 at 02:28 UTC +/// Built on 2026-04-23 at 15:55 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 8cfafa1a..02af12df 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn { @override String get updates => 'Opdateringer'; @override String get updateAvailable => 'Opdatering tilgængelig'; @override String get checkForUpdates => 'Søg efter opdateringer'; + @override String get autoCheckUpdatesOnStartup => 'Søg automatisk efter opdateringer ved opstart'; + @override String get autoCheckUpdatesOnStartupDescription => 'Vis en notifikation, når en ny version er tilgængelig ved opstart'; @override String get validationErrorEnterNumber => 'Indtast et gyldigt tal'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Varighed skal være mellem ${min} og ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Genvej allerede tildelt til ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsDa { 'settings.updates' => 'Opdateringer', 'settings.updateAvailable' => 'Opdatering tilgængelig', 'settings.checkForUpdates' => 'Søg efter opdateringer', + 'settings.autoCheckUpdatesOnStartup' => 'Søg automatisk efter opdateringer ved opstart', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Vis en notifikation, når en ny version er tilgængelig ved opstart', 'settings.validationErrorEnterNumber' => 'Indtast et gyldigt tal', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Varighed skal være mellem ${min} og ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genvej allerede tildelt til ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsDa { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Er du sikker på, at du vil opdatere metadata for "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Er du sikker på, at du vil tømme papirkurven for "${title}"?', 'libraries.manageLibraries' => 'Administrer biblioteker', - 'libraries.sort' => 'Sortér', - 'libraries.sortBy' => 'Sortér efter', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sortér', + 'libraries.sortBy' => 'Sortér efter', 'libraries.filters' => 'Filtre', 'libraries.confirmActionMessage' => 'Er du sikker på, at du vil udføre denne handling?', 'libraries.showLibrary' => 'Vis bibliotek', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index acf04d1d..becdb444 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn { @override String get updates => 'Updates'; @override String get updateAvailable => 'Update verfügbar'; @override String get checkForUpdates => 'Nach Updates suchen'; + @override String get autoCheckUpdatesOnStartup => 'Beim Start automatisch nach Updates suchen'; + @override String get autoCheckUpdatesOnStartupDescription => 'Benachrichtigung anzeigen, wenn beim Start eine neue Version verfügbar ist'; @override String get validationErrorEnterNumber => 'Bitte eine gültige Zahl eingeben'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen'; @override String shortcutAlreadyAssigned({required Object action}) => 'Tastenkürzel bereits zugewiesen an ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsDe { 'settings.updates' => 'Updates', 'settings.updateAvailable' => 'Update verfügbar', 'settings.checkForUpdates' => 'Nach Updates suchen', + 'settings.autoCheckUpdatesOnStartup' => 'Beim Start automatisch nach Updates suchen', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Benachrichtigung anzeigen, wenn beim Start eine neue Version verfügbar ist', 'settings.validationErrorEnterNumber' => 'Bitte eine gültige Zahl eingeben', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Tastenkürzel bereits zugewiesen an ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsDe { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Metadaten für „${title}“ wirklich aktualisieren?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Papierkorb für „${title}“ wirklich leeren?', 'libraries.manageLibraries' => 'Mediatheken verwalten', - 'libraries.sort' => 'Sortieren', - 'libraries.sortBy' => 'Sortieren nach', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sortieren', + 'libraries.sortBy' => 'Sortieren nach', 'libraries.filters' => 'Filter', 'libraries.confirmActionMessage' => 'Aktion wirklich durchführen?', 'libraries.showLibrary' => 'Mediathek anzeigen', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 271531de..96807f62 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -635,6 +635,12 @@ class TranslationsSettingsEn { /// en: 'Check for Updates' String get checkForUpdates => 'Check for Updates'; + /// en: 'Automatically check for updates on startup' + String get autoCheckUpdatesOnStartup => 'Automatically check for updates on startup'; + + /// en: 'Show a notification when a new version is available at launch' + String get autoCheckUpdatesOnStartupDescription => 'Show a notification when a new version is available at launch'; + /// en: 'Please enter a valid number' String get validationErrorEnterNumber => 'Please enter a valid number'; @@ -3426,6 +3432,8 @@ extension on Translations { 'settings.updates' => 'Updates', 'settings.updateAvailable' => 'Update Available', 'settings.checkForUpdates' => 'Check for Updates', + 'settings.autoCheckUpdatesOnStartup' => 'Automatically check for updates on startup', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Show a notification when a new version is available at launch', 'settings.validationErrorEnterNumber' => 'Please enter a valid number', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Duration must be between ${min} and ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Shortcut already assigned to ${action}', @@ -3769,10 +3777,10 @@ extension on Translations { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Are you sure you want to refresh metadata for "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Are you sure you want to empty trash for "${title}"?', 'libraries.manageLibraries' => 'Manage Libraries', - 'libraries.sort' => 'Sort', - 'libraries.sortBy' => 'Sort By', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sort', + 'libraries.sortBy' => 'Sort By', 'libraries.filters' => 'Filters', 'libraries.confirmActionMessage' => 'Are you sure you want to perform this action?', 'libraries.showLibrary' => 'Show library', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index 9e6e6126..805147ed 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn { @override String get updates => 'Actualizaciones'; @override String get updateAvailable => 'Actualización disponible'; @override String get checkForUpdates => 'Buscar actualizaciones'; + @override String get autoCheckUpdatesOnStartup => 'Buscar actualizaciones automáticamente al iniciar'; + @override String get autoCheckUpdatesOnStartupDescription => 'Mostrar una notificación cuando haya una nueva versión disponible al iniciar'; @override String get validationErrorEnterNumber => 'Por favor, introduce un número válido'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'La duración debe estar entre ${min} y ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'El atajo ya está asignado a ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsEs { 'settings.updates' => 'Actualizaciones', 'settings.updateAvailable' => 'Actualización disponible', 'settings.checkForUpdates' => 'Buscar actualizaciones', + 'settings.autoCheckUpdatesOnStartup' => 'Buscar actualizaciones automáticamente al iniciar', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Mostrar una notificación cuando haya una nueva versión disponible al iniciar', 'settings.validationErrorEnterNumber' => 'Por favor, introduce un número válido', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'La duración debe estar entre ${min} y ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'El atajo ya está asignado a ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsEs { 'libraries.refreshMetadataConfirm' => ({required Object title}) => '¿Estás seguro de que quieres actualizar los metadatos de "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '¿Estás seguro de que quieres vaciar la papelera de "${title}"?', 'libraries.manageLibraries' => 'Gestionar Bibliotecas', - 'libraries.sort' => 'Ordenar', - 'libraries.sortBy' => 'Ordenar por', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Ordenar', + 'libraries.sortBy' => 'Ordenar por', 'libraries.filters' => 'Filtros', 'libraries.confirmActionMessage' => '¿Estás seguro de que quieres realizar esta acción?', 'libraries.showLibrary' => 'Mostrar biblioteca', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 6906fa06..b8cd8bbb 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn { @override String get updates => 'Mises à jour'; @override String get updateAvailable => 'Mise à jour disponible'; @override String get checkForUpdates => 'Vérifier les mises à jour'; + @override String get autoCheckUpdatesOnStartup => 'Vérifier automatiquement les mises à jour au démarrage'; + @override String get autoCheckUpdatesOnStartupDescription => 'Afficher une notification lorsqu\'une nouvelle version est disponible au démarrage'; @override String get validationErrorEnterNumber => 'Veuillez saisir un numéro valide'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'La durée doit être comprise entre ${min} et ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Raccourci déjà attribué à ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsFr { 'settings.updates' => 'Mises à jour', 'settings.updateAvailable' => 'Mise à jour disponible', 'settings.checkForUpdates' => 'Vérifier les mises à jour', + 'settings.autoCheckUpdatesOnStartup' => 'Vérifier automatiquement les mises à jour au démarrage', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Afficher une notification lorsqu\'une nouvelle version est disponible au démarrage', 'settings.validationErrorEnterNumber' => 'Veuillez saisir un numéro valide', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'La durée doit être comprise entre ${min} et ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Raccourci déjà attribué à ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsFr { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir actualiser les métadonnées pour "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir vider la corbeille pour "${title}"?', 'libraries.manageLibraries' => 'Gérer les bibliothèques', - 'libraries.sort' => 'Trier', - 'libraries.sortBy' => 'Trier par', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Trier', + 'libraries.sortBy' => 'Trier par', 'libraries.filters' => 'Filtres', 'libraries.confirmActionMessage' => 'Êtes-vous sûr de vouloir effectuer cette action ?', 'libraries.showLibrary' => 'Afficher la bibliothèque', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index 3fafa010..2ccf47ac 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn { @override String get updates => 'Aggiornamenti'; @override String get updateAvailable => 'Aggiornamento disponibile'; @override String get checkForUpdates => 'Controlla aggiornamenti'; + @override String get autoCheckUpdatesOnStartup => 'Controlla automaticamente gli aggiornamenti all\'avvio'; + @override String get autoCheckUpdatesOnStartupDescription => 'Mostra una notifica quando è disponibile una nuova versione all\'avvio'; @override String get validationErrorEnterNumber => 'Inserisci un numero valido'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Scorciatoia già assegnata a ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsIt { 'settings.updates' => 'Aggiornamenti', 'settings.updateAvailable' => 'Aggiornamento disponibile', 'settings.checkForUpdates' => 'Controlla aggiornamenti', + 'settings.autoCheckUpdatesOnStartup' => 'Controlla automaticamente gli aggiornamenti all\'avvio', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Mostra una notifica quando è disponibile una nuova versione all\'avvio', 'settings.validationErrorEnterNumber' => 'Inserisci un numero valido', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Scorciatoia già assegnata a ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsIt { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Sei sicuro di voler aggiornare i metadati per "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Sei sicuro di voler svuotare il cestino per "${title}"?', 'libraries.manageLibraries' => 'Gestisci librerie', - 'libraries.sort' => 'Ordina', - 'libraries.sortBy' => 'Ordina per', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Ordina', + 'libraries.sortBy' => 'Ordina per', 'libraries.filters' => 'Filtri', 'libraries.confirmActionMessage' => 'Sei sicuro di voler eseguire questa azione?', 'libraries.showLibrary' => 'Mostra libreria', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 531da453..7ff49430 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn { @override String get updates => 'アップデート'; @override String get updateAvailable => 'アップデート利用可能'; @override String get checkForUpdates => 'アップデートを確認'; + @override String get autoCheckUpdatesOnStartup => '起動時にアップデートを自動的に確認'; + @override String get autoCheckUpdatesOnStartupDescription => '起動時に新しいバージョンが利用可能な場合に通知を表示'; @override String get validationErrorEnterNumber => '有効な数値を入力してください'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '時間は${min}から${max} ${unit}の間である必要があります'; @override String shortcutAlreadyAssigned({required Object action}) => 'ショートカットは既に${action}に割り当てられています'; @@ -1589,6 +1591,8 @@ extension on TranslationsJa { 'settings.updates' => 'アップデート', 'settings.updateAvailable' => 'アップデート利用可能', 'settings.checkForUpdates' => 'アップデートを確認', + 'settings.autoCheckUpdatesOnStartup' => '起動時にアップデートを自動的に確認', + 'settings.autoCheckUpdatesOnStartupDescription' => '起動時に新しいバージョンが利用可能な場合に通知を表示', 'settings.validationErrorEnterNumber' => '有効な数値を入力してください', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '時間は${min}から${max} ${unit}の間である必要があります', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'ショートカットは既に${action}に割り当てられています', @@ -1932,10 +1936,10 @@ extension on TranslationsJa { 'libraries.refreshMetadataConfirm' => ({required Object title}) => '"${title}"のメタデータを更新してもよろしいですか?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '"${title}"のゴミ箱を空にしてもよろしいですか?', 'libraries.manageLibraries' => 'ライブラリを管理', - 'libraries.sort' => '並べ替え', - 'libraries.sortBy' => '並べ替え順', _ => null, } ?? switch (path) { + 'libraries.sort' => '並べ替え', + 'libraries.sortBy' => '並べ替え順', 'libraries.filters' => 'フィルター', 'libraries.confirmActionMessage' => 'この操作を実行してもよろしいですか?', 'libraries.showLibrary' => 'ライブラリを表示', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index e14e0058..3e7ff177 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn { @override String get updates => '업데이트'; @override String get updateAvailable => '사용 가능한 업데이트 있음'; @override String get checkForUpdates => '업데이트 확인'; + @override String get autoCheckUpdatesOnStartup => '시작 시 자동으로 업데이트 확인'; + @override String get autoCheckUpdatesOnStartupDescription => '시작 시 새 버전이 있으면 알림 표시'; @override String get validationErrorEnterNumber => '유효한 숫자를 입력하세요'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '기간은 ${min}과 ${max} ${unit} 사이여야 합니다'; @override String shortcutAlreadyAssigned({required Object action}) => '단축키가 이미 ${action}에 할당 되었습니다'; @@ -1589,6 +1591,8 @@ extension on TranslationsKo { 'settings.updates' => '업데이트', 'settings.updateAvailable' => '사용 가능한 업데이트 있음', 'settings.checkForUpdates' => '업데이트 확인', + 'settings.autoCheckUpdatesOnStartup' => '시작 시 자동으로 업데이트 확인', + 'settings.autoCheckUpdatesOnStartupDescription' => '시작 시 새 버전이 있으면 알림 표시', 'settings.validationErrorEnterNumber' => '유효한 숫자를 입력하세요', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '기간은 ${min}과 ${max} ${unit} 사이여야 합니다', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '단축키가 이미 ${action}에 할당 되었습니다', @@ -1932,10 +1936,10 @@ extension on TranslationsKo { 'libraries.refreshMetadataConfirm' => ({required Object title}) => '「${title}」의 메타데이터를 새로고침 하시겠습니까?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '${title}의 휴지통을 비우시겠습니까?', 'libraries.manageLibraries' => '미디어 라이브러리 관리', - 'libraries.sort' => '정렬', - 'libraries.sortBy' => '정렬 기준', _ => null, } ?? switch (path) { + 'libraries.sort' => '정렬', + 'libraries.sortBy' => '정렬 기준', 'libraries.filters' => '필터', 'libraries.confirmActionMessage' => '이 작업을 실행 하시겠습니까?', 'libraries.showLibrary' => '미디어 라이브러리 표시', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 84cf7722..c5f60432 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn { @override String get updates => 'Oppdateringer'; @override String get updateAvailable => 'Oppdatering tilgjengelig'; @override String get checkForUpdates => 'Se etter oppdateringer'; + @override String get autoCheckUpdatesOnStartup => 'Se automatisk etter oppdateringer ved oppstart'; + @override String get autoCheckUpdatesOnStartupDescription => 'Vis et varsel når en ny versjon er tilgjengelig ved oppstart'; @override String get validationErrorEnterNumber => 'Vennligst skriv inn et gyldig tall'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Varigheten må være mellom ${min} og ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Snarvei allerede tilordnet til ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsNb { 'settings.updates' => 'Oppdateringer', 'settings.updateAvailable' => 'Oppdatering tilgjengelig', 'settings.checkForUpdates' => 'Se etter oppdateringer', + 'settings.autoCheckUpdatesOnStartup' => 'Se automatisk etter oppdateringer ved oppstart', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Vis et varsel når en ny versjon er tilgjengelig ved oppstart', 'settings.validationErrorEnterNumber' => 'Vennligst skriv inn et gyldig tall', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Varigheten må være mellom ${min} og ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Snarvei allerede tilordnet til ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsNb { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Er du sikker på at du vil oppdatere metadata for "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Er du sikker på at du vil tømme papirkurven for "${title}"?', 'libraries.manageLibraries' => 'Administrer biblioteker', - 'libraries.sort' => 'Sorter', - 'libraries.sortBy' => 'Sorter etter', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sorter', + 'libraries.sortBy' => 'Sorter etter', 'libraries.filters' => 'Filtre', 'libraries.confirmActionMessage' => 'Er du sikker på at du vil utføre denne handlingen?', 'libraries.showLibrary' => 'Vis bibliotek', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index a1875c6f..033bccc1 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn { @override String get updates => 'Updates'; @override String get updateAvailable => 'Update beschikbaar'; @override String get checkForUpdates => 'Controleer op updates'; + @override String get autoCheckUpdatesOnStartup => 'Automatisch controleren op updates bij opstarten'; + @override String get autoCheckUpdatesOnStartupDescription => 'Toon een melding wanneer bij het opstarten een nieuwe versie beschikbaar is'; @override String get validationErrorEnterNumber => 'Voer een geldig nummer in'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn'; @override String shortcutAlreadyAssigned({required Object action}) => 'Sneltoets al toegewezen aan ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsNl { 'settings.updates' => 'Updates', 'settings.updateAvailable' => 'Update beschikbaar', 'settings.checkForUpdates' => 'Controleer op updates', + 'settings.autoCheckUpdatesOnStartup' => 'Automatisch controleren op updates bij opstarten', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Toon een melding wanneer bij het opstarten een nieuwe versie beschikbaar is', 'settings.validationErrorEnterNumber' => 'Voer een geldig nummer in', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Sneltoets al toegewezen aan ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsNl { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Weet je zeker dat je metadata wilt vernieuwen voor "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Weet je zeker dat je de prullenbak wilt legen voor "${title}"?', 'libraries.manageLibraries' => 'Beheer bibliotheken', - 'libraries.sort' => 'Sorteren', - 'libraries.sortBy' => 'Sorteer op', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sorteren', + 'libraries.sortBy' => 'Sorteer op', 'libraries.filters' => 'Filters', 'libraries.confirmActionMessage' => 'Weet je zeker dat je deze actie wilt uitvoeren?', 'libraries.showLibrary' => 'Toon bibliotheek', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index 8d1fb897..d9dacbff 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn { @override String get updates => 'Aktualizacje'; @override String get updateAvailable => 'Dostępna aktualizacja'; @override String get checkForUpdates => 'Sprawdź aktualizacje'; + @override String get autoCheckUpdatesOnStartup => 'Automatycznie sprawdzaj aktualizacje przy uruchomieniu'; + @override String get autoCheckUpdatesOnStartupDescription => 'Pokaż powiadomienie, gdy przy uruchomieniu dostępna jest nowa wersja'; @override String get validationErrorEnterNumber => 'Wprowadź prawidłową liczbę'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Czas musi być między ${min} a ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Skrót jest już przypisany do ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsPl { 'settings.updates' => 'Aktualizacje', 'settings.updateAvailable' => 'Dostępna aktualizacja', 'settings.checkForUpdates' => 'Sprawdź aktualizacje', + 'settings.autoCheckUpdatesOnStartup' => 'Automatycznie sprawdzaj aktualizacje przy uruchomieniu', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Pokaż powiadomienie, gdy przy uruchomieniu dostępna jest nowa wersja', 'settings.validationErrorEnterNumber' => 'Wprowadź prawidłową liczbę', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Czas musi być między ${min} a ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Skrót jest już przypisany do ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsPl { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Czy na pewno chcesz odświeżyć metadane dla "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Czy na pewno chcesz opróżnić kosz dla "${title}"?', 'libraries.manageLibraries' => 'Zarządzaj bibliotekami', - 'libraries.sort' => 'Sortuj', - 'libraries.sortBy' => 'Sortuj wg', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sortuj', + 'libraries.sortBy' => 'Sortuj wg', 'libraries.filters' => 'Filtry', 'libraries.confirmActionMessage' => 'Czy na pewno chcesz wykonać tę operację?', 'libraries.showLibrary' => 'Pokaż bibliotekę', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 21c67138..10308cef 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn { @override String get updates => 'Atualizações'; @override String get updateAvailable => 'Atualização Disponível'; @override String get checkForUpdates => 'Verificar Atualizações'; + @override String get autoCheckUpdatesOnStartup => 'Verificar atualizações automaticamente ao iniciar'; + @override String get autoCheckUpdatesOnStartupDescription => 'Mostrar uma notificação quando uma nova versão estiver disponível ao iniciar'; @override String get validationErrorEnterNumber => 'Insira um número válido'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'A duração deve ser entre ${min} e ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Atalho já atribuído a ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsPt { 'settings.updates' => 'Atualizações', 'settings.updateAvailable' => 'Atualização Disponível', 'settings.checkForUpdates' => 'Verificar Atualizações', + 'settings.autoCheckUpdatesOnStartup' => 'Verificar atualizações automaticamente ao iniciar', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Mostrar uma notificação quando uma nova versão estiver disponível ao iniciar', 'settings.validationErrorEnterNumber' => 'Insira um número válido', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'A duração deve ser entre ${min} e ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Atalho já atribuído a ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsPt { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Tem certeza que deseja atualizar os metadados de "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Tem certeza que deseja esvaziar a lixeira de "${title}"?', 'libraries.manageLibraries' => 'Gerenciar Bibliotecas', - 'libraries.sort' => 'Ordenar', - 'libraries.sortBy' => 'Ordenar Por', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Ordenar', + 'libraries.sortBy' => 'Ordenar Por', 'libraries.filters' => 'Filtros', 'libraries.confirmActionMessage' => 'Tem certeza que deseja realizar esta ação?', 'libraries.showLibrary' => 'Mostrar biblioteca', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 4b7e5564..70d25819 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn { @override String get updates => 'Обновления'; @override String get updateAvailable => 'Доступно обновление'; @override String get checkForUpdates => 'Проверить обновления'; + @override String get autoCheckUpdatesOnStartup => 'Автоматически проверять обновления при запуске'; + @override String get autoCheckUpdatesOnStartupDescription => 'Показывать уведомление при запуске, если доступна новая версия'; @override String get validationErrorEnterNumber => 'Введите корректное число'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Длительность должна быть от ${min} до ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Клавиша уже назначена для ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsRu { 'settings.updates' => 'Обновления', 'settings.updateAvailable' => 'Доступно обновление', 'settings.checkForUpdates' => 'Проверить обновления', + 'settings.autoCheckUpdatesOnStartup' => 'Автоматически проверять обновления при запуске', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Показывать уведомление при запуске, если доступна новая версия', 'settings.validationErrorEnterNumber' => 'Введите корректное число', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Длительность должна быть от ${min} до ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Клавиша уже назначена для ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsRu { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Вы уверены, что хотите обновить метаданные для "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Вы уверены, что хотите очистить корзину для "${title}"?', 'libraries.manageLibraries' => 'Управление библиотеками', - 'libraries.sort' => 'Сортировка', - 'libraries.sortBy' => 'Сортировать по', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Сортировка', + 'libraries.sortBy' => 'Сортировать по', 'libraries.filters' => 'Фильтры', 'libraries.confirmActionMessage' => 'Вы уверены, что хотите выполнить это действие?', 'libraries.showLibrary' => 'Показать библиотеку', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index dd1d38a9..06143c9e 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn { @override String get updates => 'Uppdateringar'; @override String get updateAvailable => 'Uppdatering tillgänglig'; @override String get checkForUpdates => 'Kontrollera uppdateringar'; + @override String get autoCheckUpdatesOnStartup => 'Kontrollera uppdateringar automatiskt vid start'; + @override String get autoCheckUpdatesOnStartupDescription => 'Visa en avisering när en ny version är tillgänglig vid start'; @override String get validationErrorEnterNumber => 'Vänligen ange ett giltigt nummer'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Genväg redan tilldelad ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsSv { 'settings.updates' => 'Uppdateringar', 'settings.updateAvailable' => 'Uppdatering tillgänglig', 'settings.checkForUpdates' => 'Kontrollera uppdateringar', + 'settings.autoCheckUpdatesOnStartup' => 'Kontrollera uppdateringar automatiskt vid start', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Visa en avisering när en ny version är tillgänglig vid start', 'settings.validationErrorEnterNumber' => 'Vänligen ange ett giltigt nummer', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genväg redan tilldelad ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsSv { 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Är du säker på att du vill uppdatera metadata för "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Är du säker på att du vill tömma papperskorgen för "${title}"?', 'libraries.manageLibraries' => 'Hantera bibliotek', - 'libraries.sort' => 'Sortera', - 'libraries.sortBy' => 'Sortera efter', _ => null, } ?? switch (path) { + 'libraries.sort' => 'Sortera', + 'libraries.sortBy' => 'Sortera efter', 'libraries.filters' => 'Filter', 'libraries.confirmActionMessage' => 'Är du säker på att du vill utföra denna åtgärd?', 'libraries.showLibrary' => 'Visa bibliotek', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index efa5da2c..e2cf9607 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -297,6 +297,8 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn { @override String get updates => '更新'; @override String get updateAvailable => '有可用更新'; @override String get checkForUpdates => '检查更新'; + @override String get autoCheckUpdatesOnStartup => '启动时自动检查更新'; + @override String get autoCheckUpdatesOnStartupDescription => '启动时如有新版本可用则显示通知'; @override String get validationErrorEnterNumber => '请输入一个有效的数字'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间'; @override String shortcutAlreadyAssigned({required Object action}) => '快捷键已被分配给 ${action}'; @@ -1589,6 +1591,8 @@ extension on TranslationsZh { 'settings.updates' => '更新', 'settings.updateAvailable' => '有可用更新', 'settings.checkForUpdates' => '检查更新', + 'settings.autoCheckUpdatesOnStartup' => '启动时自动检查更新', + 'settings.autoCheckUpdatesOnStartupDescription' => '启动时如有新版本可用则显示通知', 'settings.validationErrorEnterNumber' => '请输入一个有效的数字', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '快捷键已被分配给 ${action}', @@ -1932,10 +1936,10 @@ extension on TranslationsZh { 'libraries.refreshMetadataConfirm' => ({required Object title}) => '确定要刷新 “${title}” 的元数据吗?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '确定要清空 “${title}” 的回收站吗?', 'libraries.manageLibraries' => '管理媒体库', - 'libraries.sort' => '排序', - 'libraries.sortBy' => '排序依据', _ => null, } ?? switch (path) { + 'libraries.sort' => '排序', + 'libraries.sortBy' => '排序依据', 'libraries.filters' => '筛选器', 'libraries.confirmActionMessage' => '确定要执行此操作吗?', 'libraries.showLibrary' => '显示媒体库', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 9cabcd0e..e0a00b5f 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -177,6 +177,8 @@ "updates": "Uppdateringar", "updateAvailable": "Uppdatering tillgänglig", "checkForUpdates": "Kontrollera uppdateringar", + "autoCheckUpdatesOnStartup": "Kontrollera uppdateringar automatiskt vid start", + "autoCheckUpdatesOnStartupDescription": "Visa en avisering när en ny version är tillgänglig vid start", "validationErrorEnterNumber": "Vänligen ange ett giltigt nummer", "validationErrorDuration": "Tiden måste vara mellan ${min} och ${max} ${unit}", "shortcutAlreadyAssigned": "Genväg redan tilldelad ${action}", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index b67911c2..bf536503 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -177,6 +177,8 @@ "updates": "更新", "updateAvailable": "有可用更新", "checkForUpdates": "检查更新", + "autoCheckUpdatesOnStartup": "启动时自动检查更新", + "autoCheckUpdatesOnStartupDescription": "启动时如有新版本可用则显示通知", "validationErrorEnterNumber": "请输入一个有效的数字", "validationErrorDuration": "时长必须介于 ${min} 和 ${max} ${unit} 之间", "shortcutAlreadyAssigned": "快捷键已被分配给 ${action}", diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart index 17c5398e..72e66cea 100644 --- a/lib/screens/main_screen.dart +++ b/lib/screens/main_screen.dart @@ -211,11 +211,11 @@ class _MainScreenState extends State with RouteAware, WindowListener } Future _checkForUpdatesOnStartup() async { - // Delay slightly to allow UI to settle - await Future.delayed(const Duration(seconds: 3)); - if (!mounted) return; + final settingsService = await SettingsService.getInstance(); + if (!settingsService.getAutoCheckUpdatesOnStartup()) return; + // Native updater (Sparkle/WinSparkle) handles everything — skip Flutter dialog if (UpdateService.useNativeUpdater) { await UpdateService.checkForUpdatesNative(inBackground: true); diff --git a/lib/screens/settings/settings_screen.dart b/lib/screens/settings/settings_screen.dart index b98c30ae..25276f18 100644 --- a/lib/screens/settings/settings_screen.dart +++ b/lib/screens/settings/settings_screen.dart @@ -68,6 +68,7 @@ class _SettingsScreenState extends State with FocusableTab { static const _kClearCache = 'clear_cache'; static const _kResetSettings = 'reset_settings'; static const _kCheckForUpdates = 'check_for_updates'; + static const _kAutoCheckUpdatesOnStartup = 'auto_check_updates_on_startup'; static const _kAbout = 'about'; static const _kWatchTogetherRelay = 'watch_together_relay'; static const _kExportSettings = 'export_settings'; @@ -81,6 +82,7 @@ class _SettingsScreenState extends State with FocusableTab { bool _enableDebugLogging = false; bool _downloadOnWifiOnly = false; bool _autoRemoveWatchedDownloads = false; + bool _autoCheckUpdatesOnStartup = true; bool _videoPlayerNavigationEnabled = false; String? _customRelayUrl; @@ -138,6 +140,7 @@ class _SettingsScreenState extends State with FocusableTab { _enableDebugLogging = _settingsService.getEnableDebugLogging(); _downloadOnWifiOnly = _settingsService.getDownloadOnWifiOnly(); _autoRemoveWatchedDownloads = _settingsService.getAutoRemoveWatchedDownloads(); + _autoCheckUpdatesOnStartup = _settingsService.getAutoCheckUpdatesOnStartup(); _videoPlayerNavigationEnabled = _settingsService.getVideoPlayerNavigationEnabled(); _customRelayUrl = _settingsService.getCustomRelayUrl(); _isLoading = false; @@ -481,6 +484,20 @@ class _SettingsScreenState extends State with FocusableTab { ); } + Widget _buildAutoCheckUpdatesOnStartupTile() { + return SwitchListTile( + focusNode: _focusTracker.get(_kAutoCheckUpdatesOnStartup), + secondary: const AppIcon(Symbols.notifications_active_rounded, fill: 1), + title: Text(t.settings.autoCheckUpdatesOnStartup), + subtitle: Text(t.settings.autoCheckUpdatesOnStartupDescription), + value: _autoCheckUpdatesOnStartup, + onChanged: (value) async { + setState(() => _autoCheckUpdatesOnStartup = value); + await _settingsService.setAutoCheckUpdatesOnStartup(value); + }, + ); + } + Widget _buildUpdateSection() { if (UpdateService.useNativeUpdater) { return Column( @@ -494,6 +511,7 @@ class _SettingsScreenState extends State with FocusableTab { trailing: const AppIcon(Symbols.chevron_right_rounded, fill: 1), onTap: () => UpdateService.checkForUpdatesNative(inBackground: false), ), + _buildAutoCheckUpdatesOnStartupTile(), ], ); } @@ -526,6 +544,7 @@ class _SettingsScreenState extends State with FocusableTab { } }, ), + _buildAutoCheckUpdatesOnStartupTile(), ], ); } diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index 9653f51b..6f8d7c63 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -83,6 +83,7 @@ class SettingsService extends BaseSharedPreferencesService { static const String _keyCustomDownloadPathType = 'custom_download_path_type'; static const String _keyDownloadOnWifiOnly = 'download_on_wifi_only'; static const String _keyAutoRemoveWatchedDownloads = 'auto_remove_watched_downloads'; + static const String _keyAutoCheckUpdatesOnStartup = 'auto_check_updates_on_startup'; static const String _prefixWatchedThreshold = 'watched_threshold_'; static const String _keyVideoPlayerNavigationEnabled = 'video_player_navigation_enabled'; static const String _keyShowPerformanceOverlay = 'show_performance_overlay'; @@ -994,6 +995,14 @@ class SettingsService extends BaseSharedPreferencesService { return prefs.getBool(_keyDownloadOnWifiOnly) ?? false; } + Future setAutoCheckUpdatesOnStartup(bool value) async { + await prefs.setBool(_keyAutoCheckUpdatesOnStartup, value); + } + + bool getAutoCheckUpdatesOnStartup() { + return prefs.getBool(_keyAutoCheckUpdatesOnStartup) ?? true; + } + // Auto-remove watched downloads Future setAutoRemoveWatchedDownloads(bool value) async { await prefs.setBool(_keyAutoRemoveWatchedDownloads, value); @@ -1486,6 +1495,7 @@ class SettingsService extends BaseSharedPreferencesService { prefs.remove(_keyCustomDownloadPath), prefs.remove(_keyCustomDownloadPathType), prefs.remove(_keyDownloadOnWifiOnly), + prefs.remove(_keyAutoCheckUpdatesOnStartup), prefs.remove(_keyVideoPlayerNavigationEnabled), prefs.remove(_keyShowPerformanceOverlay), prefs.remove(_keyAutoHidePerformanceOverlay),