feat(nav): simplify navigation and terms (#57)
Build, Test & Push Frontend / quality-check (push) Successful in 40s
Build, Test & Push Frontend / docker (push) Successful in 29s

One glossary (docs/GLOSSARY.md) for all de and en texts.
Five nav items; phones get a bottom bar with labels.
Community page with following, followers, player search and stats.
The bell is the one place for notes, news and open questions.
Settings in tabs; auto-save is silent and rolls back on error.
Questions page explains itself; removed games are a library filter.
Own profile: menu link, public chip, copy link, private hint.
Points page starts with a short summary; stats use status colors.
This commit is contained in:
lobo committed 2026-10-21 14:54:48 +02:00
1 parent 45f5087227
commit 3712e3905f
80 files changed
+2237 -1189

No files matched your search

+93 -64
View File
@@ -14,8 +14,8 @@
"ERROR_EMAIL": "Enter an email address with '@'.",
"ERROR_PASSWORD": "The password must not be empty.",
"ERROR_INVALID_CREDENTIALS": "Email or password is wrong.",
"ERROR_TOO_MANY_ATTEMPTS": "Too many failed attempts. Please try again in {{minutes}} minutes.",
"ERROR_GENERIC": "Login failed. Please try again later.",
"ERROR_TOO_MANY_ATTEMPTS": "Too many failed attempts. Try again in {{minutes}} minutes.",
"ERROR_GENERIC": "Login failed. Try again later.",
"SESSION_EXPIRED": "Your session has expired. Please log in again.",
"ERROR_ACCOUNT_BLOCKED": "This account is blocked. Please contact the admin.",
"ERROR_ACCOUNT_PENDING": "Your registration is waiting for the admin. You will get an email once it is decided.",
@@ -35,13 +35,13 @@
"RESEND": "Send the link again",
"RESEND_SENT": "If this address has an unconfirmed registration, a new link is on its way.",
"HAVE_ACCOUNT": "Already have an account?",
"ERROR_GENERIC": "Registration failed. Please try again.",
"ERROR_GENERIC": "Registration failed. Try again.",
"ERROR_EMAIL_IN_USE": "This email address is already registered.",
"DISPLAY_NAME": "Display name (optional)",
"ERROR_DISPLAY_NAME_IN_USE": "This display name is already taken.",
"ERROR_TOO_MANY_ATTEMPTS": "Too many failed attempts. Please try again in {{minutes}} minutes.",
"ERROR_TOO_MANY_ATTEMPTS": "Too many failed attempts. Try again in {{minutes}} minutes.",
"INTRO": "You will get an email with a link: there you confirm your address and choose your password. Then an admin checks your account and emails you the decision.",
"ERROR_PENDING_LIMIT": "Too many registrations are waiting for the admin right now. Please try again later."
"ERROR_PENDING_LIMIT": "Too many registrations are waiting for the admin right now. Try again later."
},
"RESET_PASSWORD": {
"TITLE": "Reset password",
@@ -54,8 +54,8 @@
"TO_LOGIN": "Log in",
"INVALID": "This link is unknown, already used or older than 1 hour. Request a new one:",
"ERROR_REJECTED": "The server did not accept this password. Check the rules and try again.",
"ERROR_TOO_MANY": "Too many attempts. Please try again in {{minutes}} minutes.",
"ERROR_GENERIC": "That did not work. Please try again."
"ERROR_TOO_MANY": "Too many attempts. Try again in {{minutes}} minutes.",
"ERROR_GENERIC": "That did not work. Try again."
},
"CONFIRM_EMAIL": {
"TITLE": "Confirm your email address",
@@ -75,7 +75,7 @@
"TITLE": "Settings",
"LOADING": "Loading settings …",
"ACCOUNT": "Account",
"PREFERENCES": "Preferences",
"PREFERENCES": "Language & platform",
"STEAM": "Steam",
"EMAIL": "Email",
"ROLE": "Role",
@@ -148,7 +148,7 @@
"LINKED": "Steam account linked.",
"IN_USE": "This Steam account is already linked to another account.",
"CANCELLED": "Steam link cancelled.",
"FAILED": "Steam could not confirm the link. Please try again.",
"FAILED": "Steam could not confirm the link. Try again.",
"ERROR": "Could not start the Steam link.",
"UNLINKED": "Steam account unlinked."
},
@@ -173,7 +173,7 @@
"UNLINK_CONFIRM": "Yes, unlink",
"UNLINKED": "PlayStation account unlinked. Imported games stay in your library.",
"INVALID": "PlayStation did not accept the code. It may have expired: sign in again and copy a new one.",
"UNAVAILABLE": "PlayStation did not answer. Please try again later.",
"UNAVAILABLE": "PlayStation did not answer. Try again later.",
"BUSY": "Another of your PlayStation requests is still running. Wait a moment and try again.",
"ERROR": "Something went wrong with the PlayStation link."
},
@@ -201,15 +201,22 @@
"CANCEL": "Cancel",
"DONE": "Your account is deleted.",
"WRONG_PASSWORD": "The password is wrong.",
"TOO_MANY": "Too many wrong passwords. Please try again in {{minutes}} minutes.",
"ERROR": "The account could not be deleted. Please try again later.",
"TOO_MANY": "Too many wrong passwords. Try again in {{minutes}} minutes.",
"ERROR": "The account could not be deleted. Try again later.",
"LAST_ADMIN": "You are the last admin. Make another user admin first."
},
"PROFILE_TILES_HINT": "Choose what your profile shows, and where: open your profile and click \"Customize\".",
"FAVORITE_PLATFORM": "Favorite platform",
"FAVORITE_PLATFORM_HINT": "Selected first when you add a game on more than one platform.",
"FAVORITE_PLATFORM_NONE": "None",
"SKIN_OVERRIDES": "Your skin sets colors and corners. Take it off on the Pile Points page."
"SKIN_OVERRIDES": "Your skin sets colors and corners. Take it off on the Pile Points page.",
"PROFILE_STYLE_PRIVATE": "Your profile is private. Make it public above to change the look.",
"TAB_ACCOUNT": "Account",
"TAB_APPEARANCE": "Appearance",
"TAB_CONNECTIONS": "Connections",
"TAB_PROFILE": "Profile",
"TAB_ABOUT": "About",
"OPEN_COMMUNITY": "Manage who you follow on the Community page"
},
"VALIDATION": {
"EMAIL_REQUIRED": "Email is required.",
@@ -246,15 +253,15 @@
},
"CURRENTLY_PLAYING": "Currently playing",
"NOTHING_PLAYING": "Nothing right now. Set a game to \"Playing\".",
"UP_NEXT": "Up next",
"UP_NEXT_EMPTY": "Your backlog is empty. Nice!",
"UP_NEXT": "Queue",
"UP_NEXT_EMPTY": "Your queue is empty. Nice!",
"PILE_OF_SHAME": "Pile of Shame",
"PILE_SHARE": "{{percent}}% of your library",
"NEVER_PLAYED_one": "{{count}} game never started",
"NEVER_PLAYED_other": "{{count}} games never started",
"SUGGESTION": "How about",
"OTHER_SUGGESTION": "Another pick",
"BACKLOG_EMPTY": "Your backlog is empty. Nice!",
"BACKLOG_EMPTY": "Your Pile of Shame is empty. Nice!",
"SUMMARY_FAILED": "Could not load the overview.",
"RETRY": "Try again",
"ACTIVITY": "Playtime",
@@ -301,16 +308,16 @@
"RESYNC": "Sync now",
"SYNC_STARTED": "Sync started …",
"SYNC_COOLDOWN": "Try again in {{seconds}}s",
"SYNCING": "Syncing your library …",
"SYNCING": "Syncing …",
"SYNCING_FIRST_TIME": "First sync in progress. Your games will appear here shortly.",
"SYNC_QUEUED": "First sync queued …",
"SYNC_DURATION_HINT": "Usually under a minute, large libraries longer.",
"SYNC_FAILED": "Sync failed. Please try again later.",
"SYNC_FAILED": "Sync failed. Try again later.",
"SYNC_STALE": "The sync is still running. Large libraries need more time. Check back later.",
"SYNC_NOT_STARTED": "The first sync did not start. Try \"Sync now\".",
"LAST_SYNCED": "Last synced {{when}}",
"LAST_SYNCED": "Last sync {{when}}",
"FILTER_ALL": "All",
"SEARCH_PLACEHOLDER": "Search games …",
"SEARCH_PLACEHOLDER": "Search your library …",
"NO_MATCH": "No games match this filter.",
"SORT_RATING": "Best rated",
"SORT_PRIORITY": "Highest priority",
@@ -318,7 +325,10 @@
"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",
"EDITIONS": "{{count}} editions in your library"
"EDITIONS": "{{count}} editions in your library",
"FILTER_REMOVED": "Removed",
"NO_REMOVED": "No removed games.",
"FIND_GAMES_INSTEAD": "Look in Find games"
},
"GAME_DETAIL": {
"MORE": "More actions",
@@ -393,7 +403,7 @@
},
"MAIN": {
"WELCOME": "Control your game backlog",
"DESCRIPTION": "Organize your pile of shame. Track, manage, and conquer your gaming backlog like never before.",
"DESCRIPTION": "Organize your Pile of Shame. Track, manage, and conquer your gaming backlog like never before.",
"GET_STARTED": "Get Started",
"APPROVAL_HINT": "An admin approves every new account before the first login.",
"LOGIN": "Log in",
@@ -402,7 +412,6 @@
"NAV": {
"DASHBOARD": "Dashboard",
"LIBRARY": "Library",
"SEARCH": "Search",
"SETTINGS": "Settings",
"TO_DASHBOARD": "Go to dashboard",
"MENU": "Menu",
@@ -411,7 +420,6 @@
"LIGHT_MODE": "Light mode",
"PLAY_NEXT": "Play next",
"STATS": "Stats",
"FOLLOWING": "Following",
"COMMUNITY": "Community",
"POINTS": "Pile Points",
"ADMIN": "Admin",
@@ -424,9 +432,6 @@
"INBOX": "Inbox",
"INBOX_UNREAD_one": "Inbox, {{count}} new message",
"INBOX_UNREAD_other": "Inbox, {{count}} new messages",
"QUESTIONS": "Questions",
"QUESTIONS_OPEN_one": "Questions, {{count}} open",
"QUESTIONS_OPEN_other": "Questions, {{count}} open",
"WHATS_NEW": "What's new",
"ADMIN_NEWS": "Manage news",
"ADMIN_BROADCASTS": "Broadcast email",
@@ -434,10 +439,11 @@
"PENDING_REQUESTS_other": "{{count}} registrations waiting",
"LINK_QUEUE": "Link queue",
"AUDIT_LOG": "Audit log",
"GAME_CATALOG": "Game catalog"
"GAME_CATALOG": "Game catalog",
"MY_PROFILE": "My public profile"
},
"BACKLOG": {
"TITLE": "My backlog",
"TITLE": "My progress",
"STATUS_LABEL": "Status",
"PRIORITY_LABEL": "Priority",
"RATING_LABEL": "Rating",
@@ -448,7 +454,7 @@
"SAVE": "Save",
"RESET": "Discard",
"SAVED": "Saved",
"SAVE_FAILED": "Saving failed. Please try again.",
"SAVE_FAILED": "Saving failed. Try again.",
"STATUS": {
"BACKLOG": "Backlog",
"PLAYING": "Playing",
@@ -464,10 +470,10 @@
}
},
"BACKLOG_ORDER": {
"TITLE": "Backlog",
"SUBTITLE": "Your backlog in your own order. Drag a game, or use the arrows and the menu. The first games show up under \"Play next\" and on the dashboard.",
"EMPTY": "Your backlog is empty. Nice!",
"LOAD_FAILED": "Could not load the backlog.",
"TITLE": "Queue",
"SUBTITLE": "Your backlog games in your own order. Drag a game, or use the arrows and the menu. The first games show up under \"Play next\" and on the dashboard.",
"EMPTY": "Your queue is empty. Nice!",
"LOAD_FAILED": "Could not load the queue.",
"SAVE_FAILED": "Could not save the order. Reloading the list.",
"MOVE_UP": "Move up",
"MOVE_DOWN": "Move down",
@@ -499,11 +505,15 @@
"PERFECT_GAMES": "Perfect games",
"AVERAGE_COMPLETION": "Avg. completion",
"GAME_NOT_SHOWN": "This game is not shown on this profile.",
"GAME_ACHIEVEMENTS": "{{unlocked}} / {{total}} ({{percent}}%)"
"GAME_ACHIEVEMENTS": "{{unlocked}} / {{total}} ({{percent}}%)",
"OWN_PRIVATE": "Your profile is private. Make it public in Settings.",
"OPEN_SETTINGS": "Open settings",
"PUBLIC_CHIP": "Public",
"COPY_LINK": "Copy link"
},
"PLAY_NEXT": {
"TITLE": "What to play next",
"SUBTITLE": "Games from your backlog in seven rows: next in your order, the next part of a series you played, like games you played a lot, from a studio you played, what people you follow played, waiting longest, and by mood. Pick a length for all rows and a mood for the last one.",
"SUBTITLE": "Games from your backlog in seven rows: your queue, the next part of a series you played, like games you played a lot, from a studio you played, what people you follow played, waiting longest, and by mood. Pick a length for all rows and a mood for the last one.",
"REASON": {
"SIMILAR": "Because you played {{name}} ({{playtime}})",
"SERIES": "Series: {{name}}",
@@ -513,7 +523,7 @@
"LONGEST": "In your library since {{date}}"
},
"CATEGORY": {
"NEXT_UP": "Up next",
"NEXT_UP": "Queue",
"SERIES": "Next in series",
"SIMILAR": "Because you played",
"STUDIO": "Same studio",
@@ -596,7 +606,7 @@
},
"PILE": {
"TITLE": "Pile of Shame",
"GAMES": "Games on the pile",
"GAMES": "Games in the Pile of Shame",
"NORMAL": "To finish them",
"COMPLETIONIST": "To get them to 100%",
"KNOWN_one": "IGDB knows {{count}} of them",
@@ -608,10 +618,12 @@
"SINCE": "since {{date}}"
},
"TREND": {
"TITLE": "Pile trend",
"TITLE": "Pile of Shame trend",
"THIS_MONTH": "This month:",
"THIS_MONTH_ADDED": "+{{added}} added",
"THIS_MONTH_DONE": "−{{done}} off the pile",
"THIS_MONTH_DONE": "−{{done}} off the Pile of Shame",
"NET_one": "Net: {{net}} game in 90 days",
"NET_other": "Net: {{net}} games in 90 days",
"STARTS": "The trend starts today. Come back tomorrow for the first line."
},
"TOP_GAMES": {
@@ -695,9 +707,9 @@
"IN_LIBRARIES_one": "in {{count}} library",
"IN_LIBRARIES_other": "in {{count}} libraries",
"BEFORE_TRACKING": "Finished before the status history started",
"TREND_MOVES": "Pile moves in the last 90 days",
"TREND_ADDED": "Added to the pile this month",
"TREND_DONE": "Off the pile this month",
"TREND_MOVES": "Pile of Shame changes in the last 90 days",
"TREND_ADDED": "Added to the Pile of Shame this month",
"TREND_DONE": "Off the Pile of Shame this month",
"NEW_IN_LIBRARY": "New",
"GAMES_one": "{{count}} game",
"GAMES_other": "{{count}} games"
@@ -934,10 +946,10 @@
"DO_NOT_SHOW_AGAIN": "Do not show again",
"OK": "OK",
"SAVE_FAILED": "The hint could not be saved.",
"AUTO_NO_STEAM": "[Link your Steam account](/settings) to sync your library.",
"AUTO_NO_STEAM": "[Link your Steam account](/settings?tab=connections) to sync your library.",
"AUTO_EMPTY_LIBRARY": "Your library is still empty. [Import your games](/import).",
"AUTO_PILE_GREW_one": "Your pile grew by **{{count}}** game this month. [See the trend](/stats).",
"AUTO_PILE_GREW_other": "Your pile grew by **{{count}}** games this month. [See the trend](/stats).",
"AUTO_PILE_GREW_one": "Your Pile of Shame grew by **{{count}}** game this month. [See the trend](/stats).",
"AUTO_PILE_GREW_other": "Your Pile of Shame grew by **{{count}}** games this month. [See the trend](/stats).",
"AUTO_LINK_QUEUE_one": "**{{count}}** pair is waiting in the [link queue](/audit/links).",
"AUTO_LINK_QUEUE_other": "**{{count}}** pairs are waiting in the [link queue](/audit/links)."
},
@@ -984,17 +996,26 @@
"AUTO_TITLE": "Automatic hints",
"AUTO_NO_STEAM": "No Steam account linked",
"AUTO_EMPTY_LIBRARY": "Empty library",
"AUTO_PILE_GREW": "The pile grew this month",
"AUTO_PILE_GREW": "The Pile of Shame grew this month",
"AUTO_LINK_QUEUE": "Open pairs in the link queue (auditors)",
"AUTO_SAVED": "Saved."
},
"COMMUNITY": {
"TAB_FOLLOWING": "Following",
"TAB_FOLLOWERS": "Followers",
"TAB_PLAYERS": "Find users",
"TAB_STATS": "Community stats",
"SEARCH_PLACEHOLDER": "Search users by name",
"SEARCH_NONE": "No public profile with this name.",
"SEARCH_LIMITED": "Too many searches. Wait a minute.",
"SEARCH_FAILED": "The search did not work. Try again.",
"SEARCH_HINT": "Only public profiles can be found."
},
"FOLLOW": {
"TITLE": "Following",
"FOLLOW": "Follow",
"UNFOLLOW": "Unfollow",
"REMOVE": "Remove",
"FOLLOWING": "People you follow",
"FOLLOWERS": "People who follow you",
"NO_FOLLOWING": "You are not following anyone yet. Open a public profile and press \"Follow\".",
"NO_FOLLOWERS": "Nobody follows you yet.",
"PRIVATE_USER": "Private user",
@@ -1004,7 +1025,8 @@
"LOAD_ERROR": "The list could not be loaded.",
"LAST_ACTIVITY": "Last activity {{date}}",
"NO_ACTIVITY": "No activity yet",
"SHOW_ALL": "Show all"
"SHOW_ALL": "Show all",
"FIND_PLAYERS": "Find users"
},
"INBOX": {
"TITLE": "Inbox",
@@ -1031,12 +1053,13 @@
"DETAIL_WISHLIST": "Wishlist",
"SHOW_ALL": "Show all {{count}}",
"DETAILS_GONE": "No details any more: you no longer follow this person or the part is private now.",
"DETAILS_ERROR": "The details could not be loaded."
"DETAILS_ERROR": "The details could not be loaded.",
"QUESTIONS_OPEN_one": "{{count}} open question",
"QUESTIONS_OPEN_other": "{{count}} open questions",
"ALL_NEWS": "All news"
},
"NEWS": {
"TITLE": "What's new",
"GOT_IT": "Got it",
"SAVE_FAILED": "Could not save that you read the news.",
"LOAD_ERROR": "The news could not be loaded.",
"EMPTY": "Nothing new yet."
},
@@ -1044,11 +1067,11 @@
"TITLE": "Welcome to ToBePlayed",
"INTRO": "ToBePlayed keeps your games in one place: what you own, what you play, what is next.",
"FEATURE_LIBRARY": "Library and Pile of Shame",
"FEATURE_LIBRARY_TEXT": "All your games with playtime, filters and search. The pile shows what you never started.",
"FEATURE_LIBRARY_TEXT": "All your games with playtime, filters and search. The Pile of Shame shows what you never started.",
"FEATURE_STATUS": "Statuses",
"FEATURE_STATUS_TEXT": "Mark a game as \"Playing\", \"Finished\", \"100%\" or \"Dropped\", with rating and notes.",
"FEATURE_STATS": "Your stats",
"FEATURE_STATS_TEXT": "Totals, the pile in hours, most played games, genres and finished games per year.",
"FEATURE_STATS_TEXT": "Totals, the Pile of Shame in hours, most played games, genres and finished games per year.",
"FEATURE_PROFILE": "Public profile",
"FEATURE_PROFILE_TEXT": "Share your stats and what you play with a link. Off until you switch it on.",
"FEATURE_IMPORT": "Import",
@@ -1239,15 +1262,15 @@
"EQUIP": "Equip",
"UNEQUIP": "Take off",
"EQUIPPED": "Equipped",
"EMPTY_HISTORY": "No points yet. Play a game from your pile!",
"EMPTY_HISTORY": "No points yet. Play a game from your Pile of Shame!",
"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).",
"STARTED": "5 points when you start a game from your Pile of Shame and play it (Steam games, once per game).",
"FINISHED": "30, 50 or 80 points (by time to beat) when you finish a Steam game and there is proof that you played it. Without proof you get 10 points now and the rest once you play the game on Steam after finishing it. With no playtime on record you also get 10 points first, and the rest only with Steam playtime. Once per game.",
"COMPLETED": "+40 points when a game is at 100% and you unlocked all achievements. It needs a proven Steam finish (the early 10 points count only once proof arrives) or finish points for a manual edition of the game, when you reached 100% on or after {{date}}; a manual game itself never gets this bonus.",
"FINISHED_MANUAL": "15 points when you finish a manual game. At most 3 finishes per week (Monday to Sunday) earn points; manual games and Steam games without proof share this limit. A 4th manual finish in that week earns nothing; a 4th Steam finish without proof still earns the full points once proven.",
"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.",
"MONTH": "40 points when your Pile of Shame 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 in which you finish a game, if you also finished one the week before.",
"UNLOCK": "Items with a lock cannot be bought. They unlock once, for good, when you reach their goal.",
"PROOF": "A Steam finish needs proof of recent play: the ending achievement (unlocked at most 30 days before the finish), any playtime from 30 days before the finish on, or half the normal time to beat played after it.",
@@ -1362,7 +1385,7 @@
"FINISHED_EARLY": "Finished (early points)",
"FINISHED_TOPUP": "Finished (rest after proof)",
"COMPLETED": "100% bonus",
"MONTH": "Smaller pile in",
"MONTH": "Smaller Pile of Shame in",
"STREAK": "Streak week",
"STARTER": "Starter points",
"BUY": "Bought",
@@ -1373,9 +1396,12 @@
"GAMES_FINISHED": "{{count}} / {{target}} games finished",
"GAMES_COMPLETED": "{{count}} / {{target}} games at 100%",
"FINISH_WEEKS": "{{count}} / {{target}} weeks in a row with a finished game",
"PILE_DOWN_MONTHS": "{{count}} / {{target}} months in a row with a smaller pile",
"PILE_DOWN_MONTHS": "{{count}} / {{target}} months in a row with a smaller Pile of Shame",
"PLAY_MORE_MONTHS": "{{count}} / {{target}} months in a row with more playtime than the month before"
}
},
"SUMMARY_START": "Start a game: +5",
"SUMMARY_FINISH": "Finish a game: +30 to +80 by time to beat",
"SUMMARY_COMPLETED": "100%: +40. Points buy looks."
},
"UNSAVED_CHANGES": {
"CONFIRM": "You have changes that are not saved. Leave this page and lose them?"
@@ -1409,7 +1435,6 @@
}
},
"REMOVED_GAMES": {
"TITLE_COUNT": "Removed games ({{count}})",
"RESTORE": "Restore",
"RESTORED": "Game restored.",
"HINT": "Restored games keep their status, rating and notes."
@@ -1424,7 +1449,8 @@
"SKIP": "Skip",
"START": {
"ASK": "Start it?",
"REASON": "You played {{playtime}}, but it is still in your backlog."
"REASON": "You played {{playtime}}, but it is still in your backlog.",
"POINTS": "+5 points"
},
"FINISHED": {
"ASK": "Finished?",
@@ -1439,6 +1465,9 @@
"RATE": {
"ASK": "Rate it?",
"REASON": "You finished it. How was it?"
}
},
"INTRO": "Questions come from your playtime and your statuses. An answer keeps your library current and can earn points. A \"No\" is not forever: a Start or Finished question comes back after 5 more hours of play, a Dropped question after 90 days without play. A skipped rating is not asked again.",
"POINTS_PENDING": "Points by time to beat",
"NO_POINTS": "No points, but your library stays current."
}
}