diff --git a/public/i18n/de.json b/public/i18n/de.json
index 3ff4c64..cd14754 100644
--- a/public/i18n/de.json
+++ b/public/i18n/de.json
@@ -107,7 +107,8 @@
"ACTIVITY": "Spielzeit",
"ACTIVITY_TOTAL": "{{time}} in {{days}} Tagen",
"ACTIVITY_EMPTY": "Noch keine Spielzeit aufgezeichnet. Ab jetzt zählt jeder Sync mit.",
- "RECENTLY_PLAYED": "Zuletzt gespielt (2 Wochen)"
+ "RECENTLY_PLAYED": "Zuletzt gespielt (2 Wochen)",
+ "BACKLOG_HOURS": "≈ {{time}} Spielzeit bis alles durch ist"
},
"LIBRARY": {
"TITLE": "Spielebibliothek",
@@ -135,7 +136,8 @@
"SEARCH_PLACEHOLDER": "Spiel suchen …",
"NO_MATCH": "Keine Spiele für diesen Filter.",
"SORT_RATING": "Beste Bewertung",
- "SORT_PRIORITY": "Höchste Priorität"
+ "SORT_PRIORITY": "Höchste Priorität",
+ "FILTER_SHORT": "Kurz (bis 10 h)"
},
"GAME_DETAIL": {
"BACK": "Zurück",
@@ -152,7 +154,11 @@
"NO_ACHIEVEMENTS": "Dieses Spiel hat keine Erfolge auf Steam.",
"STATS_HIDDEN": "Statistiken von Steam verborgen — Profil und Spieldetails auf öffentlich stellen, um Erfolge zu sehen.",
"PLAYED_RECENTLY": "Laut Steam hast du das Spiel in den letzten 2 Wochen {{time}} gespielt, es steht aber noch im Backlog.",
- "SET_PLAYING": "Auf „Spiele ich“ setzen"
+ "SET_PLAYING": "Auf „Spiele ich“ setzen",
+ "TTB": "Spieldauer laut IGDB",
+ "TTB_HASTILY": "Story",
+ "TTB_NORMALLY": "+ Extras",
+ "TTB_COMPLETELY": "100 %"
},
"LANDING": {
"STATS_TITLE": "Community-Statistiken",
diff --git a/public/i18n/en.json b/public/i18n/en.json
index ec768d1..6b21f8f 100644
--- a/public/i18n/en.json
+++ b/public/i18n/en.json
@@ -107,7 +107,8 @@
"ACTIVITY": "Playtime",
"ACTIVITY_TOTAL": "{{time}} in {{days}} days",
"ACTIVITY_EMPTY": "No playtime recorded yet. Every sync from now on counts.",
- "RECENTLY_PLAYED": "Recently played (2 weeks)"
+ "RECENTLY_PLAYED": "Recently played (2 weeks)",
+ "BACKLOG_HOURS": "≈ {{time}} of play to clear it"
},
"LIBRARY": {
"TITLE": "Game Library",
@@ -135,7 +136,8 @@
"SEARCH_PLACEHOLDER": "Search games …",
"NO_MATCH": "No games match this filter.",
"SORT_RATING": "Best rated",
- "SORT_PRIORITY": "Highest priority"
+ "SORT_PRIORITY": "Highest priority",
+ "FILTER_SHORT": "Short (up to 10 h)"
},
"GAME_DETAIL": {
"BACK": "Back",
@@ -152,7 +154,11 @@
"NO_ACHIEVEMENTS": "This game has no achievements on Steam.",
"STATS_HIDDEN": "Stats hidden by Steam — set your profile and game details to public to see achievements.",
"PLAYED_RECENTLY": "Steam says you played this game for {{time}} in the last 2 weeks, but it is still in your backlog.",
- "SET_PLAYING": "Set to \"Playing\""
+ "SET_PLAYING": "Set to \"Playing\"",
+ "TTB": "Time to beat (IGDB)",
+ "TTB_HASTILY": "Story",
+ "TTB_NORMALLY": "+ Extras",
+ "TTB_COMPLETELY": "100%"
},
"LANDING": {
"STATS_TITLE": "Community stats",
diff --git a/src/components/PileOfShameCard.jsx b/src/components/PileOfShameCard.jsx
index f6a6a37..da13d18 100644
--- a/src/components/PileOfShameCard.jsx
+++ b/src/components/PileOfShameCard.jsx
@@ -7,6 +7,7 @@ import {Card} from '@/components/ui/card';
import GameCover from './GameCover.jsx';
import {STATUS_META} from './GameStatusBadge.jsx';
import {backlogShare, GAME_STATUSES} from '../utils/backlog.js';
+import {formatPlaytime} from '../utils/games.js';
export default function PileOfShameCard({summary, syncing, onShuffle, shuffling}) {
const {t, i18n} = useTranslation();
@@ -36,6 +37,11 @@ export default function PileOfShameCard({summary, syncing, onShuffle, shuffling}