feat(onboarding): remove dead ends for new users (#55)

Registration shows the address used and can start over.
Confirm page says an admin approves; no login link.
Welcome puts next steps first; Steam link returns to the dashboard.
Dashboard and library explain an empty or private library.
First sync shows queued, polls slower up to 10 min, then a calm text.
Login: simple checks, resend offer after 401, password toggles.
Only a real expired link counts as invalid; typed passwords stay.
Default language follows the browser; texts are platform-neutral.
This commit is contained in:
lobo committed 2026-10-21 09:37:17 +02:00
1 parent a60010e055
commit f9f0d94e2c
45 files changed
+979 -171

No files matched your search

+30 -12
View File
@@ -11,14 +11,17 @@
"SUBMIT": "Enter the game",
"NO_ACCOUNT": "No account yet?",
"FORGOT_PASSWORD": "Forgot password?",
"ERROR_EMAIL": "Enter a valid email address with '@' and '.'.",
"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.",
"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."
"ERROR_ACCOUNT_PENDING": "Your registration is waiting for the admin. You will get an email once it is decided.",
"NOT_CONFIRMED_HINT": "Not confirmed yet? Have the link sent again.",
"SHOW_PASSWORD": "Show password",
"HIDE_PASSWORD": "Hide password"
},
"REGISTRATION": {
"TITLE": "Register",
@@ -26,7 +29,8 @@
"PASSWORD": "Password",
"PASSWORD_CONFIRMATION": "Confirm password",
"SUBMIT": "Create account",
"SUCCESS": "We sent you an email. Click the link in it to confirm your address and choose your password; only then will the admin see your request.",
"SENT_TO": "We sent the link to {{email}}.",
"START_OVER": "Wrong address? Start over",
"RESEND_EMAIL": "Email",
"RESEND": "Send the link again",
"RESEND_SENT": "If this address has an unconfirmed registration, a new link is on its way.",
@@ -49,6 +53,7 @@
"DONE": "Your password has been changed. Log in with the new one.",
"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."
},
@@ -56,9 +61,9 @@
"TITLE": "Confirm your email address",
"INTRO": "Choose a password to confirm your email address.",
"SUBMIT": "Confirm",
"DONE": "Your address is confirmed. An admin will check your request; you will get an email once it is decided.",
"DONE": "Your address is confirmed. You get a mail once an admin has approved your account.",
"INVALID": "This link is unknown, already used or older than 24 hours. Request a new one:",
"TO_LOGIN": "Log in"
"ERROR_REJECTED": "The server did not accept this password. Check the rules and try again."
},
"SETTINGS": {
"PROFILE_STYLE": "Profile look",
@@ -211,6 +216,7 @@
"EMAIL_INVALID": "Enter a valid email address.",
"PASSWORD_TOO_SHORT": "Password must be at least 8 characters.",
"PASSWORD_TOO_LONG": "Password is too long: at most 72 characters, fewer with umlauts or emoji.",
"PASSWORD_RULES": "At least 8 characters, at most 72 (fewer with umlauts or emoji).",
"PASSWORD_CONFIRMATION_REQUIRED": "Please confirm your password.",
"CURRENT_PASSWORD_REQUIRED": "Enter your current password.",
"PASSWORD_MISMATCH": "Passwords do not match.",
@@ -225,12 +231,19 @@
"DASHBOARD": {
"LOADING": "Loading dashboard ...",
"HELLO": "Hello",
"STEAM_GAMES": "Steam games",
"GAMES": "Games",
"NO_STEAM_ID": "No Steam account linked yet – link it in the settings",
"MOST_PLAYED": "Most played",
"SHOW_ALL": "Show all",
"TO_LIBRARY": "Go to library",
"WELCOME_BACK": "Welcome back",
"WELCOME": "Welcome",
"EMPTY": {
"TITLE": "Your library is empty",
"NO_SOURCE": "Link a platform and we sync your games, or import a list.",
"LINK": "Link Steam / PlayStation",
"IMPORT": "Import games"
},
"CURRENTLY_PLAYING": "Currently playing",
"NOTHING_PLAYING": "Nothing right now. Set a game to \"Playing\".",
"UP_NEXT": "Up next",
@@ -267,7 +280,8 @@
"SOURCE": { "STEAM": "Steam", "PSN": "PlayStation", "MANUAL": "Manual" },
"TITLE": "Game Library",
"LOADING": "Loading games …",
"EMPTY": "No games yet. Sync your Steam library or add a game.",
"EMPTY": "No games yet. Link a platform, import a list or add a game.",
"EMPTY_PRIVATE": "The sync found no games. On Steam, \"Game details\" must be public: [Steam privacy settings](https://steamcommunity.com/my/edit/settings). Then sync again.",
"ERROR_LOAD": "Could not load your games.",
"COMING": "Out on {{date}}",
"COMING_SOON": "Coming soon",
@@ -284,10 +298,13 @@
"RESYNC": "Sync now",
"SYNC_STARTED": "Sync started …",
"SYNC_COOLDOWN": "Try again in {{seconds}}s",
"SYNCING": "Syncing with Steam …",
"SYNCING_FIRST_TIME": "First sync with Steam in progress. Your games will appear here shortly.",
"SYNCING": "Syncing your library …",
"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_STALE": "The sync is taking longer than usual. Reload the page 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}}",
"FILTER_ALL": "All",
"SEARCH_PLACEHOLDER": "Search games …",
@@ -1035,8 +1052,9 @@
"STEP_STEAM": "Link your Steam account",
"STEP_IMPORT": "Import your games",
"DONE": "Done",
"GO": "Let's go",
"SKIP": "Skip"
"GO": "Go to dashboard",
"ACTION_STEAM": "Link Steam",
"ACTION_IMPORT": "Import games"
},
"ADMIN_NEWS": {
"NEW": "New entry",