feat(library): add game links, auditor queue, audit log and filter
Build, Test & Push Frontend / quality-check (push) Successful in 25s
Build, Test & Push Frontend / docker (push) Successful in 23s

LinkGameDialog (user request or auditor link), EditionsCard on the
details page, LinkQueuePage and AuditLogPage for auditors with paging,
hideDuplicates filter and editions badge in the library, audit menu
entries, de/en texts.
This commit is contained in:
lobo committed 2026-10-02 09:10:56 +02:00
1 parent 80259cb0e9
commit f71e8f7aff
21 files changed
+992 -11

No files matched your search

+54 -2
View File
@@ -229,7 +229,9 @@
"FILTER_SHORT": "Short (up to 10 h)",
"FILTER_HIDDEN": "Hidden",
"NO_HIDDEN": "No hidden games. Hide a game on its detail page, e.g. a playtest or a tool.",
"ACHIEVEMENTS": "{{unlocked}} of {{total}} achievements"
"ACHIEVEMENTS": "{{unlocked}} of {{total}} achievements",
"FILTER_HIDE_DUPLICATES": "Hide duplicates",
"EDITIONS": "{{count}} editions in your library"
},
"GAME_DETAIL": {
"BACK": "Back",
@@ -319,7 +321,9 @@
"ADMIN_NEWS": "News",
"ADMIN_BROADCASTS": "Mail",
"PENDING_REQUESTS_one": "{{count}} registration waits",
"PENDING_REQUESTS_other": "{{count}} registrations wait"
"PENDING_REQUESTS_other": "{{count}} registrations wait",
"LINK_QUEUE": "Link queue",
"AUDIT_LOG": "Audit log"
},
"BACKLOG": {
"TITLE": "My backlog",
@@ -622,6 +626,54 @@
"OTHER": "The games could not be merged."
}
},
"LINKS": {
"ALSO_IN_LIBRARY": "Also in your library:",
"SAME_AS": "Same game as...",
"LINK_WITH": "Link with...",
"DIALOG_HINT": "Pick the game of your library that is the same game as \"{{name}}\".",
"SEARCH_PLACEHOLDER": "Search your library ...",
"NO_HITS": "No game found in your library.",
"REQUEST_CONFIRM": "Ask an auditor to link \"{{name}}\" and \"{{other}}\" as one game for everyone?",
"LINK_CONFIRM": "Link \"{{name}}\" and \"{{other}}\" as one game for every user?",
"REQUEST": "Send request",
"LINK": "Link",
"UNLINK": "Unlink",
"DISMISS": "Not the same",
"REQUESTED": "Request sent",
"LINKED": "Games linked",
"UNLINKED": "Link removed",
"DISMISSED": "Pair dismissed",
"QUEUE_TITLE": "Link queue",
"QUEUE_EMPTY": "Nothing to check.",
"PAGE_OF": "Page {{current}} of {{total}}",
"FROM_IGDB": "IGDB",
"REQUESTED_BY": "requested by {{count}} players",
"NO_ACCESS": "Only auditors can open this page.",
"ERROR": "The action failed.",
"ERROR_CODES": {
"SAME_GAME": "A game cannot be linked with itself.",
"ALREADY_LINKED": "These games are already linked.",
"PAIR_DISMISSED": "An auditor already decided that these are different games.",
"TOO_MANY_REQUESTS": "You have 20 open requests. Wait until an auditor decided them.",
"GAME_NOT_FOUND": "This game is not in your library."
}
},
"AUDIT": {
"TITLE": "Audit log",
"EMPTY": "No entries.",
"NO_ACCESS": "Only auditors can open this page.",
"LOAD_ERROR": "The audit log could not be loaded.",
"USER_ID": "user {{id}}",
"PAGE_OF": "Page {{current}} of {{total}}",
"ACTION": {
"LABEL": "Action",
"ALL": "All actions",
"GAME_MERGE": "Merge",
"GAME_LINK": "Link",
"GAME_UNLINK": "Unlink",
"GAME_LINK_DISMISS": "Dismissed"
}
},
"HINT": {
"CLOSE": "Close",
"DO_NOT_SHOW_AGAIN": "Do not show again",