feat(points): balance, history and shop page

Add /points page with wallet balance, shop grouped by slot and ledger
history with game names. The wallet loads once in PreferencesContext after
login, so the header shows a balance chip and the link. Premium accents
gold and teal override the free accent while equipped. German and English.
This commit is contained in:
lobo committed 2026-10-01 13:17:04 +02:00
1 parent 22633a9e45
commit ca3d34bad0
16 files changed
+556 -9

No files matched your search

+48
View File
@@ -294,6 +294,7 @@
"LIGHT_MODE": "Helles Design",
"PLAY_NEXT": "Nächstes Spiel",
"STATS": "Statistik",
"POINTS": "Pile Points",
"ADMIN": "Admin",
"VIEW_AS": {
"MENU": "Ansehen als",
@@ -801,6 +802,53 @@
"STORE_LIST_BROKEN": "Die Liste von der Store-Seite konnte nicht gelesen werden.",
"STORE_LIST_WAITS": "Die Liste von der Store-Seite wartet, bis der laufende Import fertig ist. Lade diese Seite nicht neu."
},
"POINTS": {
"TITLE": "Pile Points",
"BALANCE": "Guthaben",
"SHOP": "Shop",
"HISTORY": "Verlauf",
"BUY": "Kaufen",
"EQUIP": "Anlegen",
"UNEQUIP": "Ablegen",
"EQUIPPED": "Getragen",
"EMPTY_HISTORY": "Noch keine Punkte. Spiel etwas von deinem Stapel!",
"ERROR_NOT_ENOUGH": "Nicht genug Punkte.",
"HOW_TO": "So bekommst du Punkte",
"RULES": {
"STARTED": "5 Punkte, wenn du ein Spiel von deinem Stapel startest und spielst (Steam-Spiele, einmal pro Spiel).",
"FINISHED": "30, 50 oder 80 Punkte, wenn du ein Spiel durchspielst (nach seiner Spielzeit), sofern du es wirklich gespielt hast. Einmal pro Spiel.",
"COMPLETED": "+40 Punkte, wenn du in einem abgeschlossenen Spiel 100 % der Erfolge hast.",
"FINISHED_MANUAL": "15 Punkte für ein manuelles Spiel, das du durchspielst, höchstens 3 pro Woche.",
"MONTH": "40 Punkte, wenn dein Stapel am Monatsende kleiner ist als am Monatsanfang und du in dem Monat ein Spiel durchgespielt hast.",
"STREAK": "20 Punkte für jede Woche mit einem beendeten Spiel nach einer Woche mit einem beendeten Spiel."
},
"SLOTS": {
"AVATAR_BORDER": "Avatarrahmen",
"BADGE": "Abzeichen",
"ACCENT": "Akzent",
"BANNER_FRAME": "Bannerrahmen"
},
"ITEMS": {
"BORDER_GOLD": "Goldener Avatarrahmen",
"BORDER_NEON": "Neon-Avatarrahmen",
"BADGE_PILE_SLAYER": "Abzeichen Stapel-Bezwinger",
"BADGE_COMPLETIONIST": "Abzeichen Komplettierer",
"ACCENT_GOLD": "Akzent Gold",
"ACCENT_TEAL": "Akzent Türkis",
"FRAME_GOLD": "Goldener Bannerrahmen",
"FRAME_NEON": "Neon-Bannerrahmen"
},
"KINDS": {
"STARTED": "Gestartet",
"FINISHED": "Durchgespielt",
"FINISHED_MANUAL": "Durchgespielt (manuelles Spiel)",
"COMPLETED": "100-%-Bonus",
"MONTH": "Kleinerer Stapel im",
"STREAK": "Serien-Woche",
"STARTER": "Startpunkte",
"BUY": "Gekauft"
}
},
"UNSAVED_CHANGES": {
"CONFIRM": "Du hast Änderungen, die nicht gespeichert sind. Seite verlassen und die Änderungen verwerfen?"
}
+48
View File
@@ -294,6 +294,7 @@
"LIGHT_MODE": "Light mode",
"PLAY_NEXT": "Play next",
"STATS": "Stats",
"POINTS": "Pile Points",
"ADMIN": "Admin",
"VIEW_AS": {
"MENU": "View as",
@@ -801,6 +802,53 @@
"STORE_LIST_BROKEN": "The list from the store page could not be read.",
"STORE_LIST_WAITS": "The list from the store page waits until the running import is done. Do not reload this page."
},
"POINTS": {
"TITLE": "Pile Points",
"BALANCE": "Balance",
"SHOP": "Shop",
"HISTORY": "History",
"BUY": "Buy",
"EQUIP": "Equip",
"UNEQUIP": "Take off",
"EQUIPPED": "Worn",
"EMPTY_HISTORY": "No points yet. Play a game from your pile!",
"ERROR_NOT_ENOUGH": "Not enough points.",
"HOW_TO": "How to earn points",
"RULES": {
"STARTED": "5 points when you start a game from your pile and play it (Steam games, once per game).",
"FINISHED": "30, 50 or 80 points when you finish a game (by its time to beat), if you really played it. Once per game.",
"COMPLETED": "+40 points when you reach 100 % achievements in a completed game.",
"FINISHED_MANUAL": "15 points for a manual game you finish, at most 3 per week.",
"MONTH": "40 points when your pile is smaller at the end of a month than at its start and you finished a game that month.",
"STREAK": "20 points for every week with a finished game after a week with a finished game."
},
"SLOTS": {
"AVATAR_BORDER": "Avatar border",
"BADGE": "Badge",
"ACCENT": "Accent",
"BANNER_FRAME": "Banner frame"
},
"ITEMS": {
"BORDER_GOLD": "Golden avatar border",
"BORDER_NEON": "Neon avatar border",
"BADGE_PILE_SLAYER": "Pile Slayer badge",
"BADGE_COMPLETIONIST": "Completionist badge",
"ACCENT_GOLD": "Gold accent",
"ACCENT_TEAL": "Teal accent",
"FRAME_GOLD": "Golden banner frame",
"FRAME_NEON": "Neon banner frame"
},
"KINDS": {
"STARTED": "Started",
"FINISHED": "Finished",
"FINISHED_MANUAL": "Finished (manual game)",
"COMPLETED": "100 % bonus",
"MONTH": "Smaller pile in",
"STREAK": "Streak week",
"STARTER": "Starter points",
"BUY": "Bought"
}
},
"UNSAVED_CHANGES": {
"CONFIRM": "You have changes that are not saved. Leave this page and lose them?"
}