diff --git a/i18n/en.json b/i18n/en.json
index d5756b4f0f..285feee4f5 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -74,6 +74,7 @@
"cron_expression_description": "Set the scanning interval using the cron format. For more information please refer to e.g. Crontab Guru",
"cron_expression_presets": "Cron expression presets",
"disable_login": "Disable login",
+ "download_csv": "Download CSV",
"duplicate_detection_job_description": "Run machine learning on assets to detect similar images. Relies on Smart Search",
"exclusion_pattern_description": "Exclusion patterns lets you ignore files and folders when scanning your library. This is useful if you have folders that contain files you don't want to import, such as RAW files.",
"export_config_as_json_description": "Download the current system config as a JSON file",
@@ -181,6 +182,7 @@
"machine_learning_smart_search_enabled": "Enable smart search",
"machine_learning_smart_search_enabled_description": "If disabled, images will not be encoded for smart search.",
"machine_learning_url_description": "The URL of the machine learning server. If more than one URL is provided, each server will be attempted one-at-a-time until one responds successfully, in order from first to last. Servers that don't respond will be temporarily ignored until they come back online.",
+ "maintenance_integrity_check_all": "Check All",
"maintenance_integrity_checksum_mismatch": "Checksum Mismatch",
"maintenance_integrity_checksum_mismatch_job": "Check for checksum mismatches",
"maintenance_integrity_checksum_mismatch_refresh_job": "Refresh checksum mismatch reports",
@@ -1119,6 +1121,7 @@
"failed": "Failed",
"failed_count": "Failed: {count}",
"failed_to_authenticate": "Failed to authenticate",
+ "failed_to_delete_file": "Failed to delete file",
"failed_to_load_assets": "Failed to load assets",
"failed_to_load_folder": "Failed to load folder",
"favorite": "Favorite",
@@ -1140,6 +1143,7 @@
"filter_places": "Filter places",
"find_them_fast": "Find them fast by name with search",
"first": "First",
+ "first_page": "First page",
"fix_incorrect_match": "Fix incorrect match",
"folder": "Folder",
"folder_not_found": "Folder not found",
@@ -1239,6 +1243,7 @@
"individual_share": "Individual share",
"individual_shares": "Individual shares",
"info": "Info",
+ "integrity_checks": "Integrity Checks",
"interval": {
"day_at_onepm": "Every day at 1pm",
"hours": "Every {hours, plural, one {hour} other {{hours, number} hours}}",
@@ -1463,6 +1468,7 @@
"newest_first": "Newest first",
"next": "Next",
"next_memory": "Next memory",
+ "next_page": "Next page",
"no": "No",
"no_albums_message": "Create an album to organize your photos and videos",
"no_albums_with_name_yet": "It looks like you do not have any albums with this name yet.",
@@ -1632,6 +1638,7 @@
"previous_or_next_month": "Month forward/back",
"previous_or_next_photo": "Photo forward/back",
"previous_or_next_year": "Year forward/back",
+ "previous_page": "Previous page",
"primary": "Primary",
"privacy": "Privacy",
"profile": "Profile",
diff --git a/web/src/lib/services/queue.service.ts b/web/src/lib/services/queue.service.ts
index 851f03a0d9..5ffc70f346 100644
--- a/web/src/lib/services/queue.service.ts
+++ b/web/src/lib/services/queue.service.ts
@@ -245,7 +245,7 @@ export const asQueueItem = ($t: MessageFormatter, queue: { name: QueueName }): Q
},
[QueueName.IntegrityCheck]: {
icon: '',
- title: 'TODO',
+ title: $t('integrity_checks'),
},
};
diff --git a/web/src/lib/utils.ts b/web/src/lib/utils.ts
index 6b6ceddd64..6a0b68961b 100644
--- a/web/src/lib/utils.ts
+++ b/web/src/lib/utils.ts
@@ -163,7 +163,7 @@ export const getQueueName = derived(t, ($t) => {
[QueueName.BackupDatabase]: $t('admin.backup_database'),
[QueueName.Ocr]: $t('admin.machine_learning_ocr'),
[QueueName.Workflow]: $t('workflow'),
- [QueueName.IntegrityCheck]: 'TODO',
+ [QueueName.IntegrityCheck]: $t('integrity_checks'),
};
return names[name];
diff --git a/web/src/routes/admin/maintenance/+page.svelte b/web/src/routes/admin/maintenance/+page.svelte
index 7021d8a558..fc8820a583 100644
--- a/web/src/routes/admin/maintenance/+page.svelte
+++ b/web/src/routes/admin/maintenance/+page.svelte
@@ -125,19 +125,20 @@
size="tiny"
variant="ghost"
class="self-end mt-1"
- disabled={jobs?.backgroundTask.queueStatus.isActive}>Check All{$t('admin.maintenance_integrity_check_all')}
{$t('refresh')}
{$t('view')}
{/snippet}
diff --git a/web/src/routes/admin/maintenance/integrity-report/[type]/+page.svelte b/web/src/routes/admin/maintenance/integrity-report/[type]/+page.svelte
index 359e42ada4..5d91b1af13 100644
--- a/web/src/routes/admin/maintenance/integrity-report/[type]/+page.svelte
+++ b/web/src/routes/admin/maintenance/integrity-report/[type]/+page.svelte
@@ -79,7 +79,7 @@
await createJob({ jobCreateDto: { name } });
toastManager.success($t('admin.job_created'));
} catch (error) {
- handleError(error, 'Failed to delete file!');
+ handleError(error, $t('failed_to_delete_file'));
}
}
}
@@ -97,7 +97,7 @@
});
integrityReport.items = integrityReport.items.filter((report) => report.id !== id);
} catch (error) {
- handleError(error, 'Failed to delete file!');
+ handleError(error, $t('failed_to_delete_file'));
} finally {
deleting.delete(id);
}
@@ -147,14 +147,14 @@
]}
actions={[
{
- title: 'Download CSV',
+ title: $t('admin.download_csv'),
icon: mdiDownload,
onAction: () => {
location.href = `${getBaseUrl()}/admin/maintenance/integrity/report/${data.type}/csv`;
},
},
{
- title: 'Delete All',
+ title: $t('trash_page_delete_all'),
onAction: removeAll,
icon: mdiTrashCanOutline,
},
@@ -198,21 +198,21 @@
disabled={page === 1}
color="primary"
icon={mdiPageFirst}
- aria-label="first page"
+ aria-label={$t('first_page')}
onclick={() => loadPage(1)}
/>
loadPage(page - 1)}
/>
loadPage(page + 1)}
/>