diff --git a/lang/cz/duplicate-finder.php b/lang/cz/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/cz/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/cz/maintenance.php b/lang/cz/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/cz/maintenance.php +++ b/lang/cz/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/de/duplicate-finder.php b/lang/de/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/de/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/de/maintenance.php b/lang/de/maintenance.php index 6b9b0ec426a..67eb7720051 100644 --- a/lang/de/maintenance.php +++ b/lang/de/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Lösche den gesamten Inhalt aus %s', 'button' => 'Säubern', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Job Historie reparieren', 'description' => 'Markiere Jobs mit dem Status %s oder %s als %s.', diff --git a/lang/el/duplicate-finder.php b/lang/el/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/el/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/el/maintenance.php b/lang/el/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/el/maintenance.php +++ b/lang/el/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/en/duplicate-finder.php b/lang/en/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/en/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/en/maintenance.php b/lang/en/maintenance.php index 44b2ed00e9a..ed972d7aaa0 100644 --- a/lang/en/maintenance.php +++ b/lang/en/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/es/duplicate-finder.php b/lang/es/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/es/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/es/maintenance.php b/lang/es/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/es/maintenance.php +++ b/lang/es/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/fr/duplicate-finder.php b/lang/fr/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/fr/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/fr/maintenance.php b/lang/fr/maintenance.php index 35fa82b53fc..ed0306045d3 100644 --- a/lang/fr/maintenance.php +++ b/lang/fr/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Supprimer le contenu de %s', 'button' => 'Nettoyer', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Réparer l’historique des Jobs', 'description' => 'Marquer les jobs avec status %s ou %s comme %s.', diff --git a/lang/hu/duplicate-finder.php b/lang/hu/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/hu/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/hu/maintenance.php b/lang/hu/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/hu/maintenance.php +++ b/lang/hu/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/it/duplicate-finder.php b/lang/it/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/it/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/it/maintenance.php b/lang/it/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/it/maintenance.php +++ b/lang/it/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/ja/duplicate-finder.php b/lang/ja/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/ja/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/ja/maintenance.php b/lang/ja/maintenance.php index 547f4ca1245..75df17ac35a 100644 --- a/lang/ja/maintenance.php +++ b/lang/ja/maintenance.php @@ -20,6 +20,14 @@ 'description' => '%s からすべてのコンテンツを削除します', 'button' => '削除', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'ジョブ履歴の修正', 'description' => 'ステータスが %s または %s のジョブを %s としてマークします。', diff --git a/lang/nl/duplicate-finder.php b/lang/nl/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/nl/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/nl/maintenance.php b/lang/nl/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/nl/maintenance.php +++ b/lang/nl/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/no/duplicate-finder.php b/lang/no/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/no/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/no/maintenance.php b/lang/no/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/no/maintenance.php +++ b/lang/no/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/pl/duplicate-finder.php b/lang/pl/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/pl/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/pl/maintenance.php b/lang/pl/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/pl/maintenance.php +++ b/lang/pl/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/pt/duplicate-finder.php b/lang/pt/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/pt/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/pt/maintenance.php b/lang/pt/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/pt/maintenance.php +++ b/lang/pt/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/ru/duplicate-finder.php b/lang/ru/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/ru/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/ru/maintenance.php b/lang/ru/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/ru/maintenance.php +++ b/lang/ru/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/sk/duplicate-finder.php b/lang/sk/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/sk/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/sk/maintenance.php b/lang/sk/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/sk/maintenance.php +++ b/lang/sk/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/sv/duplicate-finder.php b/lang/sv/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/sv/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/sv/maintenance.php b/lang/sv/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/sv/maintenance.php +++ b/lang/sv/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/vi/duplicate-finder.php b/lang/vi/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/vi/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/vi/maintenance.php b/lang/vi/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/vi/maintenance.php +++ b/lang/vi/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/zh_CN/duplicate-finder.php b/lang/zh_CN/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/zh_CN/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/zh_CN/maintenance.php b/lang/zh_CN/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/zh_CN/maintenance.php +++ b/lang/zh_CN/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/lang/zh_TW/duplicate-finder.php b/lang/zh_TW/duplicate-finder.php new file mode 100644 index 00000000000..5a7282f7f2e --- /dev/null +++ b/lang/zh_TW/duplicate-finder.php @@ -0,0 +1,35 @@ + 'Maintenance', + 'intro' => 'On this page you will find the duplicate pictures found in your database.', + 'found' => ' duplicates found!', + 'invalid-search' => ' At least the checksum or title condition must be checked.', + 'checksum-must-match' => 'Checksum must match.', + 'title-must-match' => 'Title must match.', + 'must-be-in-same-album' => 'Must be in the same album.', + + 'columns' => [ + 'album' => 'Album', + 'photo' => 'Photo', + 'checksum' => 'Checksum', + ], + + 'warning' => [ + 'no-original-left' => 'No original left.', + 'keep-one' => 'You selected all duplicates in this group. Please chose at least one duplicate to keep.', + ], + + 'delete-selected' => 'Delete selected', +]; \ No newline at end of file diff --git a/lang/zh_TW/maintenance.php b/lang/zh_TW/maintenance.php index 6a5f95681f0..787ddf6e2dd 100644 --- a/lang/zh_TW/maintenance.php +++ b/lang/zh_TW/maintenance.php @@ -20,6 +20,14 @@ 'description' => 'Remove all contents from %s', 'button' => 'Clean', ], + 'duplicate-finder' => [ + 'title' => 'Duplicates', + 'description' => 'This module counts potential duplicates betwen pictures.', + 'duplicates-all' => 'Duplicates over all albums', + 'duplicates-title' => 'Title duplicates per album', + 'duplicates-per-album' => 'Duplicates per album', + 'show' => 'Show duplicates', + ], 'fix-jobs' => [ 'title' => 'Fixing Jobs History', 'description' => 'Mark jobs with status %s or %s as %s.', diff --git a/resources/js/components/maintenance/DuplicateLine.vue b/resources/js/components/maintenance/DuplicateLine.vue new file mode 100644 index 00000000000..2d87782f4da --- /dev/null +++ b/resources/js/components/maintenance/DuplicateLine.vue @@ -0,0 +1,104 @@ + + diff --git a/resources/js/components/maintenance/MaintenanceDuplicateChecker.vue b/resources/js/components/maintenance/MaintenanceDuplicateChecker.vue new file mode 100644 index 00000000000..1c868b58f37 --- /dev/null +++ b/resources/js/components/maintenance/MaintenanceDuplicateChecker.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/resources/js/lychee.d.ts b/resources/js/lychee.d.ts index 6c7b110fcfb..e6983174a0f 100644 --- a/resources/js/lychee.d.ts +++ b/resources/js/lychee.d.ts @@ -481,6 +481,21 @@ declare namespace App.Http.Resources.Models { created_at: string; }; } +declare namespace App.Http.Resources.Models.Duplicates { + export type Duplicate = { + album_id: string; + album_title: string; + photo_id: string; + photo_title: string; + checksum: string; + url: string | null; + }; + export type DuplicateCount = { + pure_duplicates: number; + title_duplicates: number; + duplicates_within_album: number; + }; +} declare namespace App.Http.Resources.Models.Utils { export type AlbumProtectionPolicy = { is_public: boolean; diff --git a/resources/js/router/routes.ts b/resources/js/router/routes.ts index 45382059464..5af80c3bbeb 100644 --- a/resources/js/router/routes.ts +++ b/resources/js/router/routes.ts @@ -16,6 +16,7 @@ const Diagnostics = () => import("@/views/Diagnostics.vue"); const Statistics = () => import("@/views/Statistics.vue"); const Jobs = () => import("@/views/Jobs.vue"); const FixTree = () => import("@/views/FixTree.vue"); +const DuplicatesFinder = () => import("@/views/DuplicatesFinder.vue"); const routes_ = [ { @@ -104,6 +105,11 @@ const routes_ = [ path: "/fixTree", component: FixTree, }, + { + name: "duplicates", + path: "/duplicatesFinder", + component: DuplicatesFinder, + }, { name: "profile", path: "/profile", diff --git a/resources/js/services/maintenance-service.ts b/resources/js/services/maintenance-service.ts index 0b174bba9a8..f334191ab55 100644 --- a/resources/js/services/maintenance-service.ts +++ b/resources/js/services/maintenance-service.ts @@ -69,6 +69,25 @@ const MaintenanceService = { updateFullTree(albums: UpdateTreeData[]): Promise { return axios.post(`${Constants.getApiUrl()}Maintenance::fullTree`, { albums: albums }); }, + + getDuplicatesCount(): Promise> { + return axios.get(`${Constants.getApiUrl()}Maintenance::countDuplicates`, { data: {} }); + }, + + getDuplicates( + withAlbumConstraint: boolean, + withChecksumConstraint: boolean, + withTitleConstraint: boolean, + ): Promise> { + return axios.get(`${Constants.getApiUrl()}Maintenance::searchDuplicates`, { + data: {}, + params: { + with_album_constraint: withAlbumConstraint, + with_checksum_constraint: withChecksumConstraint, + with_title_constraint: withTitleConstraint, + }, + }); + }, }; export default MaintenanceService; diff --git a/resources/js/views/DuplicatesFinder.vue b/resources/js/views/DuplicatesFinder.vue new file mode 100644 index 00000000000..5c473fc5cdb --- /dev/null +++ b/resources/js/views/DuplicatesFinder.vue @@ -0,0 +1,201 @@ + + + diff --git a/resources/js/views/Maintenance.vue b/resources/js/views/Maintenance.vue index 4ac32223962..ef7cbeacae3 100644 --- a/resources/js/views/Maintenance.vue +++ b/resources/js/views/Maintenance.vue @@ -18,6 +18,7 @@ > + @@ -38,6 +39,7 @@ import MaintenanceCleaning from "@/components/maintenance/MaintenanceCleaning.vu import MaintenanceFilesize from "@/components/maintenance/MaintenanceFilesize.vue"; import MaintenanceFixJobs from "@/components/maintenance/MaintenanceFixJobs.vue"; import MaintenanceFixTree from "@/components/maintenance/MaintenanceFixTree.vue"; +import MaintenanceDuplicateChecker from "@/components/maintenance/MaintenanceDuplicateChecker.vue"; import MaintenanceGenSizevariants from "@/components/maintenance/MaintenanceGenSizevariants.vue"; import MaintenanceOptimize from "@/components/maintenance/MaintenanceOptimize.vue"; import MaintenanceUpdate from "@/components/maintenance/MaintenanceUpdate.vue";