From c6bb2b5b51611bffcd7464ca258a6c9332eb31be Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Tue, 24 Mar 2026 11:48:26 +0300 Subject: [PATCH] fix: provider-aware collection count labels in tracker list "1 album(s)" now shows "1 device(s)" for NUT, "1 repo(s)" for Gitea, "1 board(s)" for Planka instead of hardcoded album label. --- frontend/src/lib/i18n/en.json | 3 +++ frontend/src/lib/i18n/ru.json | 3 +++ .../src/routes/notification-trackers/+page.svelte | 13 ++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/i18n/en.json b/frontend/src/lib/i18n/en.json index 2850d3a..b1c5f9b 100644 --- a/frontend/src/lib/i18n/en.json +++ b/frontend/src/lib/i18n/en.json @@ -183,6 +183,9 @@ "delete": "Delete", "confirmDelete": "Delete this tracker?", "albums_count": "album(s)", + "repos_count": "repo(s)", + "boards_count": "board(s)", + "devices_count": "device(s)", "every": "every", "trackImages": "Track images", "trackVideos": "Track videos", diff --git a/frontend/src/lib/i18n/ru.json b/frontend/src/lib/i18n/ru.json index 3addd0d..7dfe6ee 100644 --- a/frontend/src/lib/i18n/ru.json +++ b/frontend/src/lib/i18n/ru.json @@ -183,6 +183,9 @@ "delete": "Удалить", "confirmDelete": "Удалить этот трекер?", "albums_count": "альбом(ов)", + "repos_count": "репозиторий(ев)", + "boards_count": "доска(ок)", + "devices_count": "устройство(в)", "every": "каждые", "trackImages": "Отслеживать фото", "trackVideos": "Отслеживать видео", diff --git a/frontend/src/routes/notification-trackers/+page.svelte b/frontend/src/routes/notification-trackers/+page.svelte index 2fec779..e612333 100644 --- a/frontend/src/routes/notification-trackers/+page.svelte +++ b/frontend/src/routes/notification-trackers/+page.svelte @@ -277,6 +277,17 @@ return p?.name || `#${id}`; } + const collectionCountLabel: Record = { + immich: 'notificationTracker.albums_count', + gitea: 'notificationTracker.repos_count', + planka: 'notificationTracker.boards_count', + nut: 'notificationTracker.devices_count', + }; + function getCollectionLabel(tracker: Tracker): string { + const pt = getProviderType(tracker); + return t(collectionCountLabel[pt] || 'notificationTracker.albums_count'); + } + function configsForTracker(tracker: Tracker, configs: (TrackingConfig | TemplateConfig)[]): (TrackingConfig | TemplateConfig)[] { const pt = getProviderType(tracker); return pt ? configs.filter((c) => c.provider_type === pt) : configs; @@ -423,7 +434,7 @@

- {(tracker.collection_ids || []).length} {t('notificationTracker.albums_count')} · {t('notificationTracker.every')} {tracker.scan_interval}s · {(tracker.tracker_targets || []).length} {t('notificationTracker.linkedTargets')} + {(tracker.collection_ids || []).length} {getCollectionLabel(tracker)} · {t('notificationTracker.every')} {tracker.scan_interval}s · {(tracker.tracker_targets || []).length} {t('notificationTracker.linkedTargets')}