{"nav":{"skipToContent":"Skip to content","supplementaryContent":"Supplementary content","home":"Home","explore":"Explore","create":"Create","social":"Social","me":"Me","sections":"Sections","createPost":"Create post","servers":"Servers","suggestions":"Slafgestions","roadmap":"Roadmap","selectTheme":"Select theme","themeDarkPink":"Dark Pink","themeDarkPinkDesc":"Dark surfaces, pink accent actions","themeDarkPurple":"Dark Purple","themeDarkPurpleDesc":"Dark surfaces, purple accent actions","themeDarkRetro":"Dark Retro","themeDarkRetroDesc":"Near-black surfaces, warm coral accent","themeLight":"Light","themeLightDesc":"Light surfaces, vibrant pink accent","userMenu":"User menu","primaryNavigation":"Primary navigation","selectLanguage":"Select language","primary":"Primary","platform":"Platform","unreadCount":"{count} new","forumHub":"Forum Hub"},"menu":{"viewProfile":"View profile","settings":"Settings","theme":"Theme","language":"Language","childLogin":"Log in as a child","forgetDevice":"Not your own computer?","forgetDeviceHint":"Forget this device so the next person on this computer can't get into your account or pretend to be you.","logout":"Log out","admin":"Admin","adminDashboard":"Admin Dashboard","logoutFailed":"Couldn't log you out. Please try again."},"topbar":{"searchPlaceholder":"Search posts, communities, users…","logoLabel":"Slaf.se Community – home","notifications":"Notifications","notificationsUnread":"{count} unread notifications","social":"Social","socialPending":"Social, {count} pending","markAllRead":"Mark all read","messages":"Messages","messagesEmpty":"No unread messages","messagesMarkRead":"Mark as read","messagesOpenCenter":"Open message center","notificationsEmpty":"No notifications","notificationsSeeAll":"See all notifications","friendRequestAccept":"Accept","friendRequestDecline":"Decline","friendRequestAccepted":"Accepted","friendRequestDeclined":"Declined","notifFriendRequest":"{actor} sent you a friend request.","notifLike":"{actor} liked your post.","notifComment":"{actor} commented on your post.","notifMention":"{actor} mentioned you in a post.","notifReply":"{actor} replied to your comment.","notifFollow":"{actor} started following you.","notifFamilyGroupRequest":"{actor} wants to add you to their Family group.","notifFamilyGroupRequestWithRelation":"{actor} wants to add you as {relation} to their Family group.","notifFamilyGroupApproved":"{actor} approved your Family group request.","notifFamilyGroupDeclined":"{actor} declined your Family group request.","notifCoParentInvite":"{actor} invited you to co-parent their household.","notifHouseholdLinkRequest":"{actor} wants to link their household with yours.","notifChildLinkRequest":"{actor} wants to add a child you care for to their household.","notifChildLoginApproval":"A child in your family is trying to log in. Review the request.","notifChildPostPendingReview":"{actor} made a post that's waiting for your review.","notifChildAccountClaimed":"{actor} claimed their account and now manages it themselves.","familyGroupAccept":"Accept","familyGroupDecline":"Decline","familyGroupAccepted":"Accepted","familyGroupDeclined":"Declined","notificationsEmptySub":"You'll be notified when someone interacts with your content.","notificationsLoadMore":"Load more","notificationsEnd":"You're all caught up","seen":"Seen","notifSuggestionPromoted":"Your suggestion \"{title}\" has been added to the roadmap!","notifSuggestionTrashed":"Your suggestion \"{title}\" has been archived.","notifSuggestionMerged":"Your suggestion \"{title}\" has been merged into another suggestion.","notifSuggestionComment":"{actor} commented on your suggestion.","notifSuggestionReply":"{actor} replied to your comment on a suggestion.","notifDataExportReady":"Your data export is ready to download.","notifDataExportFailed":"Your data export failed. Please try again.","notifReportResolved":"We reviewed the content you reported.","notifPostHidden":"One of your posts was hidden by a moderator.","notifCommentHidden":"One of your comments was hidden by a moderator.","notifBadgeEarned":"You unlocked {emoji} {name} · level {level}.","notifBadgeEarnedUnknown":"You unlocked a new badge.","notifPhotoTagRequest":"{actor} wants to tag you in a photo.","notifMealPlanHouseholdInvite":"{actor} invited you to their meal planner household.","photoTagApprove":"Approve","photoTagDecline":"Decline","photoTagApproved":"Approved","photoTagDeclined":"Declined","notifCookbookInvite":"{actor} invited you to edit their cookbook {name}.","notifCookbookInviteUnnamed":"{actor} invited you to edit their cookbook.","notifInvitationRequested":"Someone asked for an invitation to Slaf.","cookbookInviteAccept":"Join","cookbookInviteDecline":"Decline","cookbookInviteAccepted":"Joined","cookbookInviteDeclined":"Declined","requestGone":"This request is no longer there.","requestFailed":"Couldn't send your answer. Please try again.","notificationsLoadFailed":"Couldn't load notifications. Please try again.","messagesLoadFailed":"Couldn't load your conversations. Please try again."},"auth":{"input":{"showPassword":"Show password","hidePassword":"Hide password"},"layout":{"homeLink":"Slaf – home","footerNav":"Footer","privacyTitle":"Slaf is in beta — invite only","privacyBody":"Slaf is currently in closed beta and only accessible with an invite code. If a friend gave you one, you're welcome!","brandBadge":"Social network","brandHeadline":"The light\nin the dark.","brandTagline":"For those who think with their whole brain — and aren't afraid to live outside the box.","brandTaglineMobile":"For those who think outside the box.","socialProof":"Join thousands who think differently","footerAbout":"About Slaf","footerPrivacy":"Privacy","footerTerms":"Terms","footerCookies":"🍪 Cookies","footerSlogan":"Life is a party since © 1997","languagePicker":"{language} – change language"},"login":{"title":"Welcome back.","subtitle":"Log in and jump back in.","noAccount":"New here?","register":"Create an account","childPrompt":"Are you a kid?","childLink":"Log in with your username","emailLabel":"Email address","passwordLabel":"Password","rememberMe":"Remember me","forgotPassword":"Forgot password?","submit":"Log in","submitting":"Logging in...","errorEmailRequired":"Please enter your email address.","errorEmailInvalid":"Please enter a valid email address.","errorPasswordRequired":"Please enter your password.","errorDefault":"Login failed. Please try again.","errorUnexpected":"An unexpected error occurred. Please try again.","errorRateLimited":"Too many attempts. Please wait a minute and try again.","errorEmailUnconfirmed":"Your password is correct but your email address has not been confirmed yet.","errorEmailUnconfirmedUseCode":"Log in with a one-time code instead","errorEmailUnconfirmedResend":"Send new confirmation email","errorEmailUnconfirmedResending":"Sending...","errorEmailUnconfirmedResendSent":"Confirmation email sent! Check your inbox.","errorEmailUnconfirmedResendError":"Could not send the email. Please try again.","successRegistered":"Registration successful! Log in now.","successReset":"Password reset! Log in with your new password.","successPasswordChanged":"Password changed! Log in with your new password.","deletionScheduledNotice":"Your account is scheduled for deletion. Log in any time before the scheduled date to cancel.","deletionCancelledNotice":"Your scheduled account deletion was cancelled. Welcome back.","dismissNotice":"Dismiss","errorInvalidCredentials":"Wrong email or password.","errorChallengeFailed":"The check was not accepted. It is running again – sign in once it is done.","errorBanned":"Your account has been permanently banned. You know what you did…","errorSuspended":"Your account has been suspended. You know what you did…","errorSuspendedUntil":"Your account has been suspended until {until}. You know what you did…","errorLockedOut":"Too many failed attempts. Wait a while and try again."},"register":{"title":"Join us!","hasAccount":"Already have an account?","signIn":"Sign in","requiredField":"Required field","slafName":"Slaf name","slafNameHelper":"3–20 characters. Letters, numbers, underscores, and hyphens only.","checkingUsername":"Checking availability...","usernameAvailable":"Username is available","usernameTaken":"Username is already taken","tryOneOf":"Try one of these:","showOptional":"Add optional details","hideOptional":"Hide optional details","firstName":"First Name","lastName":"Last Name","emailLabel":"Email address","dateOfBirth":"Date of Birth","dobHelper":"You must be between 16 and 115 years old to register.","currentCity":"Current city","cityPlaceholder":"Search for your city…","cityRequired":"Please select your current city.","password":"Password","passwordStrength":"Password strength:","passwordHint":"Use 10+ characters with a mix of uppercase, lowercase, numbers & symbols","confirmPassword":"Confirm Password","passwordsMatch":"Passwords match","passwordsNoMatch":"Passwords do not match","submit":"Make me a Slaf!","submitting":"Creating account...","errorPasswordsNoMatch":"Passwords do not match.","errorTooYoung":"You must be at least 16 years old to register.","errorTooOld":"Age must not exceed 115 years.","gender":"Gender","genderMale":"Male","genderFemale":"Female","genderOther":"Other","errorGenderRequired":"Please select a gender.","invitationCode":"Invitation Code","invitationCodeHelper":"Enter the invitation code you received to create an account.","errorInvitationCodeRequired":"An invitation code is required to register.","acceptTerms":"I've read the <terms>terms</terms> and the <privacy>privacy policy</privacy>. I'm in — and I promise not to be an arsehat.","errorMustAcceptTerms":"Accept the terms to continue","errorDefault":"Registration failed. Please try again.","errorUnexpected":"An unexpected error occurred. Please try again.","strength":{"tooWeak":"Too weak","weak":"Weak","fair":"Fair","good":"Good","strong":"Strong"},"errorRateLimited":"Too many attempts. Please wait a minute and try again.","errorChallengeFailed":"The check was not accepted. It is running again – send once it is done.","errorAccountExists":"An account with that email address or username already exists.","errorInvitationCodeInvalid":"The invitation code is invalid or has already been used.","errorDetailsRejected":"Some details weren't accepted. Check the fields again – the password needs upper- and lowercase letters, at least one digit and a symbol."},"forgotPassword":{"title":"Forgot password?","rememberNow":"Remember it now?","login":"Log in","emailLabel":"Email address","submit":"Send reset link","submitting":"Sending...","instructions":"Enter your email and we'll send you a link to reset your password.","successMessage":"Email sent! Check your inbox for instructions.","devMode":"DEV MODE:","devTokenDesc":"Use this token for testing:","devResetLink":"→ Go to reset page","errorDefault":"Could not send reset email","errorUnexpected":"An unexpected error occurred. Please try again.","errorRateLimited":"Too many attempts. Please wait a minute and try again.","errorChallengeFailed":"The check was not accepted. It is running again – send once it is done."},"resetPassword":{"title":"New password","rememberNow":"Remembered it?","login":"Log in","emailLabel":"Email address","tokenLabel":"Reset code","tokenHelp":"Paste the code from the email, or open the link in the email directly.","newPasswordLabel":"New password","confirmPasswordLabel":"Confirm new password","passwordsDoNotMatch":"The passwords do not match","submit":"Save new password","submitting":"Saving...","success":"Your password has been changed. Taking you to sign in…","errorInvalidLink":"The link is invalid or has expired.","requestNewLink":"Request a new link","errorRateLimited":"Too many attempts. Please wait a minute and try again.","errorDefault":"The password could not be changed. Please try again.","errorUnexpected":"An unexpected error occurred. Please try again.","errorPasswordRejected":"The password wasn't accepted. It needs at least 6 characters with upper- and lowercase letters, a digit and a symbol."},"confirmEmail":{"verifying":"Confirming your email address...","successTitle":"Email confirmed!","successBody":"Your account is now active. You can log in and start using Slaf.","goToLogin":"Log in","errorTitle":"Link is invalid or has expired","errorBody":"This confirmation link no longer works. Request a new one below.","resend":"Send new confirmation link","resending":"Sending...","resendSuccess":"A new confirmation link has been sent to your email address.","loginFirst":"You need to be logged in to resend the confirmation link.","loginLink":"Log in","errorUnexpected":"An unexpected error occurred. Please try again."},"emailBanner":{"message":"Please confirm your email address to unlock all features.","resend":"Resend link","resending":"Sending...","sent":"Sent! Check your inbox.","dismiss":"Dismiss"},"twoFactor":{"title":"Two-factor authentication","subtitle":"Logging in as {email}","codeLabel":"Code from your authenticator app","recoveryLabel":"Recovery code","recoveryPlaceholder":"xxxxx-xxxxx","submit":"Log in","submitting":"Verifying…","switchToRecovery":"Use a recovery code instead","switchToTotp":"← Use authenticator code instead","back":"← Back to login","errorDefault":"Invalid code. Please try again.","errorInvalidCode":"That code isn't right. Please try again.","errorLoginExpired":"Your login expired before the code was entered. Please log in again.","errorInvalidOrExpired":"The code wasn't accepted. Try again – or go back and sign in again if it's been a while.","errorLocked":"The account is banned or temporarily locked."},"loginLink":{"toggle":"Log in with email code","togglePassword":"Log in with password","emailLabel":"Email address","submit":"Send login code","submitting":"Sending...","successTitle":"Check your email!","successBody":"We sent a 6-digit code to {email}. The code is valid for 5 minutes.","codeLabel":"Login code","codePlaceholder":"123456","verifySubmit":"Log in","verifySubmitting":"Verifying...","changeEmail":"Change email","errorInvalidCode":"Invalid code. Please check and try again.","errorTooManyAttempts":"Too many attempts. Please request a new code.","errorDefault":"Could not send login code. Please try again.","errorChallengeFailed":"The check was not accepted. It is running again – send the code once it is done.","errorUnexpected":"An unexpected error occurred. Please try again."},"childLogin":{"layoutTitle":"Kids' login","title":"Log in as a kid","description":"Type your username. One of your parents will get a notification to let you in.","usernameLabel":"Username","submit":"Ask my parents","submitting":"Sending...","waitingTitle":"Waiting for your parents...","waitingDescription":"We sent them a notification. As soon as one of them taps Approve, you'll be logged in here automatically.","approvedTitle":"Approved!","approvedDescription":"Hang on a second while we get everything ready.","deniedTitle":"Not this time","deniedDescription":"A parent said no to this login. If you think that's a mistake, ask them in person.","expiredTitle":"Login expired","expiredDescription":"The request expired after 15 minutes. Try again whenever you're ready.","tryAgain":"Try again","cancel":"Cancel and start over","backToAdultLogin":"Are you a grown-up? Log in here","errorRequired":"Please type your username.","errorGeneric":"Could not start the login. Please try again."},"claim":{"title":"Claim your Slaf account","description":"A parent set up this account for you. Pick a password to take ownership — you'll be a regular adult user after this.","passwordLabel":"New password","confirmPasswordLabel":"Confirm password","submit":"Claim my account","submitting":"Claiming…","successTitle":"All set!","successDescription":"Taking you to your dashboard…","backToLogin":"Already have a different account? Log in","errors":{"token_invalid":"This claim link is no longer valid. It may have expired or already been used.","email_collision":"The email this account was set up under is now in use elsewhere. Ask your parent to start the process again with a different email.","password_failed":"That password doesn't meet the requirements. Try something longer and with a mix of letters, numbers, and symbols.","password_mismatch":"Passwords do not match.","generic":"Couldn't claim the account. Please try again."}},"challenge":{"robotIdle":"<say>Beep-boop</say> Getting ready…","robotWorking":"<say>Beep-boop…</say> Computing","robotDone":"<say>Beep-boop!</say> You're not a robot.","robotError":"<say>Beep… boop?</say> That didn't work.","robotExpired":"<say>Beep-boop…</say> Time ran out.","robotBroken":"<say>Beep…</say> The robot didn't start. Reload the page.","fetchFailed":"The check could not be fetched.","retry":"Try again"}},"settings":{"title":"Settings","subtitle":"Manage your account preferences","nav":{"groupProfile":"Profile","groupAccount":"Account","groupPrivacy":"Privacy","profile":"Profile information","location":"Location","email":"Email","password":"Password","security":"Security","delete":"Delete account","privacy":"Privacy settings","notifications":"Notifications","connectedAccounts":"Connected accounts","import":"Import from social media","blockedUsers":"Blocked users"},"blockedUsers":{"title":"Blocked users","subtitle":"Manage who can no longer interact with you","hint":"Unblocking won't restore your previous friendship or follows — you'll need to send a new friend request if you want to reconnect.","empty":"You haven't blocked anyone.","loadError":"Failed to load blocked users.","blockedAt":"Blocked {time}","unblock":"Unblock","unblocking":"Unblocking…","unblockError":"Failed to unblock. Please try again."},"profile":{"title":"Profile information","subtitle":"Update your name, birthday, and how it appears on your profile","avatarHeading":"Profile picture","avatarHint":"JPG, PNG, WebP or GIF · max 5 MB","avatarUploading":"Uploading…","avatarSuccess":"Profile picture updated","avatarError":"Failed to upload profile picture","removeAvatar":"Remove picture","removing":"Removing…","firstName":"First name","lastName":"Last name","username":"Username","changeUsername":"Change username","usernameHint":"3–20 characters · letters, numbers, _ and -","usernameSuccess":"Username updated","usernameError":"Failed to change username","dateOfBirth":"Date of birth","gender":"Gender","genderMale":"Male","genderFemale":"Female","genderOther":"Other","birthdayDisplay":"Birthday display","birthdayPrompt":"Set a date of birth to choose how it appears on your profile.","save":"Save changes","saving":"Saving…","successMessage":"Profile updated successfully","errorDefault":"Failed to update profile","invalidDate":"Invalid date.","tooYoung":"You must be at least 16 years old.","tooOld":"Age must not exceed 115 years.","visibility":{"hidden":"Hidden","hiddenDesc":"Not shown on your profile","dateOnly":"Day & month","dateOnlyDesc":"e.g. \"January 15\"","full":"Full date","fullDesc":"e.g. \"January 15, 1990\""},"loadError":"Failed to load your profile.","errorRejected":"Couldn't save. First and last name can be at most 50 characters.","usernameRejected":"Couldn't change your username. It must be 3–20 characters: letters, numbers, _ and -.","usernameTaken":"That username is already taken.","usernameRateLimited":"You've changed your username several times in the last hour. Please try again later.","avatarRemoveError":"Failed to remove profile picture"},"email":{"title":"Email settings","subtitle":"Manage your primary email and recovery addresses","primarySection":"Primary email","primarySectionSubtitle":"Used for account login and notifications","primaryBadge":"Primary","secondarySection":"Secondary emails","secondarySectionSubtitle":"Additional addresses for recovery and notifications","noSecondary":"No secondary emails added yet.","currentEmail":"Current email","newEmail":"New email","newEmailAddress":"New email address","addSecondary":"Add email address","emailAddress":"Email address","changeEmail":"Change email","pendingVerification":"Verification pending","verificationSentBefore":"We sent a verification link to","verificationSentAfter":"Click it to confirm the change.","verificationHint":"We'll send a verification link to this address. Your email won't change until you click it.","resendOrDifferent":"Resend or use a different address","sendVerification":"Send verification","sending":"Sending…","addEmail":"Add email","cancel":"Cancel","save":"Save","saving":"Saving…","add":"Add","adding":"Adding…","remove":"Remove","removing":"Removing…","resend":"Resend","successMessage":"Email updated","invalidEmail":"Please enter a valid email address","alreadyPrimary":"This is already your primary email","alreadyAdded":"This email is already associated with your account","failedToSend":"Failed to send verification email","inUseElsewhere":"This address is already used by another account.","secondaryLimit":"You already have a secondary address. Remove it before adding another.","failedToAdd":"Failed to add email","errorDefault":"Failed to update email","failedToRemove":"Failed to remove email"},"location":{"title":"Locations","subtitle":"Places you have lived are shown on your profile","addLocation":"Add location","editLocation":"Edit location","city":"City","from":"From","to":"To","fromYear":"From year","toYear":"To year","optional":"Optional","current":"Current location","currentBadge":"Current","currentlyLiving":"Currently living here","disabledCurrentHint":"You already have a current location. Edit it first to change your current city.","save":"Save","saving":"Saving…","saveChanges":"Save changes","cancel":"Cancel","delete":"Delete","present":"present","untilYear":"until {year}","fromPresent":"{fromYear} – present","yearRange":"{fromYear} – {toYear}","noLocations":"No locations added yet.","editAriaLabel":"Edit location","deleteAriaLabel":"Delete location","cityRequired":"Please select a city.","toYearRequired":"Please set a \"To year\" — you already have a current location.","fromYearRangeError":"\"From\" year must be between {min} and {max}.","toYearRangeError":"\"To\" year must be between {min} and {max}.","yearOrderError":"\"From\" year cannot be after \"To\" year.","failedToAdd":"Failed to add location","failedToUpdate":"Failed to update location","successMessage":"Location saved","errorDefault":"Failed to save location","cityPlaceholder":"Search for city…","loadError":"Failed to load your places.","failedToDelete":"Failed to remove location"},"password":{"title":"Change password","subtitle":"Choose a strong password to keep your account secure","currentPassword":"Current password","newPassword":"New password","confirmPassword":"Confirm new password","passwordStrength":"Password strength:","passwordHint":"Use 10+ characters with upper/lowercase, numbers and symbols","passwordsMatch":"Passwords match","passwordsNoMatch":"Passwords do not match","save":"Update password","saving":"Updating…","successTitle":"Password updated","successMessage":"Your password has been changed. Please log in again.","redirecting":"Redirecting to login…","errorDefault":"Failed to update password","strength":{"tooWeak":"Too weak","weak":"Weak","fair":"Fair","good":"Good","strong":"Strong"},"tips":{"triggerLabel":"Tips for a strong password","modalTitle":"How to choose a strong password","close":"Close","rules":["Use at least 10 characters — longer is always stronger","Mix uppercase and lowercase letters (e.g. Slaf, not slaf)","Add numbers and special characters (!, @, #, $, %, &…)","Avoid personal info: name, birthday, username","Never use common patterns like 123456 or \"password\"","Don't reuse passwords from other sites","Consider a passphrase — three random words joined together"]},"errorRejected":"Your password couldn't be changed. The new one must differ from your current password and have at least 6 characters with upper- and lowercase letters, a digit and a symbol.","errorWrongCurrent":"Your current password is wrong.","errorRateLimited":"Too many attempts. Please wait a minute and try again."},"notifications":{"title":"Notifications","subtitle":"Choose the sound that plays when you receive a new chat message","soundLabel":"Chat sound","soundPreview":"Preview","sounds":{"01":"Sound 1 (default)","02":"Sound 2","03":"Sound 3","04":"Sound 4","05":"Sound 5"},"suggestionPrefsLabel":"Suggestion notifications","suggestionPrefsSubtitle":"Choose which notifications you receive when something happens to your suggestions","suggestionPromoted":"Your suggestion is added to the roadmap","suggestionTrashed":"Your suggestion is moved to the trash","suggestionMerged":"Your suggestion is merged into another","suggestionComment":"Someone comments on your suggestion or replies to your comment","saving":"Saving…","saved":"Saved","pushLabel":"Push notifications","pushSubtitle":"Get notified even when the app is closed or in the background","pushEnable":"Enable push notifications","pushEnabling":"Enabling…","pushGranted":"Push notifications are enabled","pushDenied":"Blocked — change in your browser settings","pushNotSupported":"Push notifications are not supported on this device","loadError":"Failed to load your notification settings.","saveError":"Couldn't save. Please try again."},"twoFactor":{"title":"Two-Factor Authentication (2FA)","subtitle":"Add an extra layer of security to your account","statusEnabled":"Enabled","statusDisabled":"Disabled","description":"Add an extra layer of security. Every time you log in you'll need a 6-digit code from your authenticator app (e.g. Google Authenticator, Authy, or Proton Pass).","enable":"Enable 2FA","disable":"Disable 2FA","regenerateCodes":"Generate new recovery codes","working":"Working…","setupTitle":"Enable two-factor authentication","setupStep1":"Step 1 of 2 — Scan the QR code","setupStep2":"Step 2 of 2 — Confirm with a code","setupInstruction":"Open your authenticator app and scan the QR code. Then tap Next.","showManualKey":"Can't scan? Enter the key manually","hideManualKey":"Hide manual key","next":"Next","cancel":"Cancel","back":"Back","done":"Done","enterCode":"Enter the code from your app","verifying":"Verifying…","verifyAndEnable":"Verify and enable","enabledTitle":"2FA is now enabled!","newRecoveryCodesTitle":"New recovery codes","recoveryCodesHint":"Store these codes somewhere safe","recoveryCodesWarning":"Warning: these codes are only shown once. Save them in a password manager or a safe place. Each code can only be used once if you lose access to your authenticator app.","disableTitle":"Disable two-factor authentication","disableSubtitle":"Confirm with your authenticator app","disableInstruction":"Enter a valid code from your authenticator app (or a recovery code) to confirm disabling 2FA. All active sessions will be signed out.","enterCodeOrRecovery":"6-digit code or recovery code","confirmDisable":"Disable 2FA","copyAll":"Copy all codes","copied":"✓ Copied","switchToRecovery":"Use a recovery code instead","switchToTotp":"← Use authenticator code instead","retry":"Retry","errorInvalidCode":"Invalid code. Check your app and try again.","errorDefault":"Something went wrong. Please try again.","qrCodeAlt":"QR code to scan with your authenticator app"},"passwordGate":{"heading":"Confirm your identity","subtext":"Enter your password to continue.","passwordLabel":"Password","submit":"Confirm","submitting":"Confirming…","errorWrongPassword":"Wrong password. Please try again.","errorTooManyAttempts":"Too many attempts. Please wait a few minutes and try again.","errorDefault":"Something went wrong. Please try again."},"security":{"title":"Active sessions","subtitle":"Devices logged in to your account. Sign out any device you don't recognise.","currentDevice":"This device","loggedInAt":"Logged in","lastActive":"Last active","ipAddress":"IP address","unknown":"Unknown","signOut":"Sign out","signingOut":"Signing out…","signOutAll":"Sign out all other devices","signingOutAll":"Signing out…","noOtherSessions":"No other active sessions.","revokeError":"Failed to sign out device","loading":"Loading sessions…","loadError":"Failed to load sessions","unknownBrowser":"Unknown browser","unknownOs":"Unknown OS"},"gaming":{"title":"Connected accounts","subtitle":"Connect third-party accounts to show your library on your profile","steamHeading":"Steam","steamDesc":"Connect your Steam account to display your game library on your collection page.","steamConnect":"Connect Steam Account","steamConnecting":"Redirecting…","steamConnected":"{count, plural, =0 {No games} one {# game} other {# games}} in library","steamConnectedAt":"Connected {date}","steamDisconnect":"Disconnect","steamDisconnecting":"Disconnecting…","steamSuccess":"Steam account connected successfully.","steamError":"Failed to connect Steam account. Please try again.","steamVisibilityNote":"Your Steam library must be set to Public for games to appear.","steamDisconnectConfirmTitle":"Disconnect Steam account?","steamDisconnectConfirmDesc":"Your Steam library and playtime data will be removed. You can reconnect at any time.","bnHeading":"Battle.net","bnDesc":"Connect your Battle.net account to show your BattleTag on your profile.","bnConnect":"Connect Battle.net Account","bnConnecting":"Redirecting…","bnConnected":"Battle.net account connected","bnConnectedFallback":"Battle.net Account","bnDisconnect":"Disconnect","bnDisconnecting":"Disconnecting…","bnSuccess":"Battle.net account connected successfully.","bnError":"Failed to connect Battle.net account. Please try again.","bnDisconnectConfirmTitle":"Disconnect Battle.net account?","bnDisconnectConfirmDesc":"Your Battle.net account will be unlinked from your profile. You can reconnect at any time.","loadError":"Failed to load this connection."},"delete":{"title":"Delete account","subtitle":"Permanently remove your account and personal data","noRequest":{"body":"If you choose to delete your account, you will have 14 days to change your mind. Logging in during that period will cancel the scheduled deletion. After 14 days, your personal data is permanently removed from Slaf in line with GDPR Article 17 (right to erasure).","continueButton":"Delete my account"},"confirm":{"title":"Confirm account deletion","subtitle":"Enter your password to schedule deletion. You can still log in to cancel any time before the deletion date.","passwordLabel":"Password","passwordPlaceholder":"Your current password","twoFactorLabel":"Two-factor code","twoFactorPrompt":"Your account has two-factor authentication enabled. Enter a code from your authenticator app or a recovery code.","switchToRecovery":"Use a recovery code instead","switchToTotp":"Use an authenticator code instead","submit":"Schedule deletion","submitting":"Scheduling…","cancel":"Cancel","errorInvalidPassword":"Incorrect password. Please try again.","errorInvalid2fa":"Invalid two-factor code. Please try again.","errorDefault":"Something went wrong. Please try again."},"scheduled":{"heading":"Account scheduled for deletion","scheduledFor":"Your account will be deleted on {date}","daysRemaining":"{count, plural, =0 {Less than a day remaining} one {1 day remaining} other {# days remaining}}","cancelHint":"Log in at any time before {date} to automatically cancel the deletion.","cancelButton":"Cancel deletion now","cancelling":"Cancelling…","cancelError":"Could not cancel the scheduled deletion. Please try again."}},"privacy":{"title":"Privacy","subtitle":"Control what others can see and do with your content.","tabFriendGroups":"Friend groups","tabCollection":"Collection","tabCommunity":"Community","tabMessaging":"Messages","tabPhotoTags":"Photo tags","tabDataExport":"Data Export","friendGroups":{"title":"Friend group privacy","subtitle":"Control what each group of friends can see on your profile.","canSeeBirthday":"Birthday","canSeeBirthdayDesc":"Allow this group to see your birthday.","canSeeLocation":"Location","canSeeLocationDesc":"Allow this group to see your current city.","canSeeOnlineStatus":"Online status","canSeeOnlineStatusDesc":"Allow this group to see when you are online.","canSeePrivateRecipes":"Private recipes","canSeePrivateRecipesDesc":"Allow this group to see your private recipes in your cookbook.","saved":"Saved","loadError":"The settings could not be loaded.","error":"Couldn't save. Please try again."},"collection":{"title":"Collection","subtitle":"Control comments and other settings for your game and console collection.","commentsSection":"Comments","disableAllLabel":"Disable comments globally","disableAllDesc":"When enabled, no one can comment on any of your collected games or consoles.","loadError":"The setting could not be loaded.","saving":"Saving…","saved":"Saved","error":"Couldn't save. Please try again."},"community":{"title":"Community","subtitle":"Choose whether you want to contribute to the Slaf community.","loginPhotoSection":"Login page photo","loginPhotoLabel":"Show my photo on the login page","loginPhotoDesc":"We randomly select users each week. Your participation is reviewed by an admin before your photo appears — and your photo is copied so it can't be changed after approval.","loginPhotoPending":"Your photo is awaiting review by an admin.","loginPhotoApproved":"Your photo is currently shown on the login page.","loadError":"The setting could not be loaded.","saving":"Saving…","saved":"Saved","error":"Couldn't save. Please try again."},"messaging":{"title":"Messages","subtitle":"Control who can send you direct messages.","nonFriendsSection":"Direct messages from non-friends","allowNonFriendsLabel":"Allow direct messages from non-friends","allowNonFriendsDesc":"When enabled, users who aren't your friends can send a message request. You decide whether to accept or reject each request.","loadError":"The setting could not be loaded.","saving":"Saving…","saved":"Saved","error":"Couldn't save. Please try again."},"photoTags":{"subtitle":"A tag puts your name on a photo. Until you approve it, only the person who tagged you can see it.","whoMayTagMe":"Who can tag me","friendsMayTag":"Friends can tag me","friendsMayTagDesc":"Turn it off and nobody can tag you. The tags you already have stay until you remove them under Tags of you.","loadError":"The setting could not be loaded.","saving":"Saving…","saved":"Saved","error":"Couldn't save. Please try again.","tagsOfMe":"Tags of you","tagsOfMeDesc":"Answer requests and remove tags, even in photos you can no longer see."}},"dataExport":{"title":"Data Export (GDPR)","subtitle":"For full transparency, download a copy of all your personal data.","estimateHeading":"Your data","estimateMedia":"{count, plural, =0 {No media files} one {# media file} other {# media files}} · {size}","categoriesHeading":"Select categories","catAccount":"Account & profile","catPosts":"Posts","catComments":"Comments","catLikes":"Likes","catMedia":"Media files (includes binaries, albums and your view history)","catMessages":"Messages","catFriends":"Friends","catNotifications":"Notifications","catAccessLogs":"Access logs","catGames":"Game collection & reviews","catRecipes":"Recipes & cookbooks","catMealPlanner":"Meal planner","catBrewing":"Brewing","catImportHistory":"Social media import history","catReports":"Content reports you've filed","catGroupMemberships":"Your group chat memberships","catGroupMetadata":"Metadata for groups you've been in","catBlocks":"Users you've blocked","catMessageRequestRejections":"Message requests you've rejected","catSnakeMatches":"Snake matches you've played and your lifetime stats","catHouseholds":"Households, family graph, child policies, and account-claim history","catPlaces":"Places you've added and your check-ins","catBadges":"Badges you've unlocked and the level you've reached","catPhotoTags":"Tags of you in others' photos, and the tags you've made in yours","dateRangeHeading":"Date range","dateFrom":"From","dateTo":"To","dateRangeAll":"All time","dateRangeLastWeek":"Last week","dateRangeLastMonth":"Last month","dateRangeLast3Months":"Last 3 months","dateRangeLast6Months":"Last 6 months","dateRangeLastYear":"Last year","dateRangeCustom":"Custom","selectAll":"Select all","deselectAll":"Deselect all","submitButton":"Request export","submitting":"Requesting export…","submitSuccess":"Your data export has been requested. You will receive a notification when it is ready.","submitError":"Failed to request export.","submitErrorInProgress":"An export is already being prepared. You can request a new one once it's ready.","submitErrorCooldown":"You can request a new export 24 hours after the previous one.","activeExportHeading":"Active export","statusPending":"Queued…","statusProcessing":"Processing…","statusReady":"Ready to download","statusExpired":"Expired","statusFailed":"Failed","statusDeleted":"Deleted","expiresAt":"Expires {date}","downloadButton":"Download ZIP","deleteButton":"Delete","deleting":"Deleting…","previousHeading":"Previous exports","noExports":"You have no previous exports.","downloadCount":"{count, plural, =0 {Never downloaded} one {Downloaded # time} other {Downloaded # times}}","fileSizeLabel":"File size","limitNote":"A new export can be requested 24 hours after the last completed export. Download links expire after 7 days.","loadError":"Failed to load exports.","deleteError":"Failed to delete export."},"import":{"title":"Import from social media","subtitle":"Import your posts and stories from an Instagram or Facebook data export","platformLabel":"Platform","platformInstagram":"Instagram","platformFacebook":"Facebook","fileLabel":"Archive file","fileHint":"Download your data as a ZIP from the social media platform, then upload it here.","fileButton":"Choose file","fileSelected":"{name}","noFile":"No file selected","submitButton":"Start import","submitting":"Uploading…","progressHeading":"Importing…","progressLabel":"{processed} of {total} posts","errorCount":"{count, plural, =0 {} one {1 error} other {# errors}}","doneHeading":"Import complete","errorHeading":"Import failed","doneSummary":"{processed, plural, one {1 post} other {# posts}} imported successfully.","doneErrors":"{count, plural, one {1 post} other {# posts}} could not be imported.","viewFeedLink":"View your feed","importAnotherButton":"Import another archive","activeImportWarning":"An import is already in progress. Please wait for it to finish.","errorUpload":"Failed to upload archive. Please try again.","errorProcessing":"The import failed while processing. Please try again.","errorLoad":"Failed to load import status.","historyHeading":"Previous imports","noHistory":"No imports yet.","historyStatusPending":"Queued","historyStatusRunning":"Running","historyStatusDone":"Completed","historyStatusFailed":"Failed","historyDoneSummary":"{processed, plural, one {1 post} other {# posts}}"},"navLabel":"Settings navigation","retry":"Try again"},"explore":{"title":"Explore","tabForYou":"For You","tabRandom":"Random","tagFeedTitle":"#{tag}","tagEmpty":"No posts with #{tag} yet","tagEmptySub":"Be the first to use this tag","forYouEmpty":"Nothing here yet","forYouEmptySub":"Add friends to see their posts here","randomEmpty":"No posts yet","filterAll":"All","filterImages":"Images","sectionBuilding":"This section is being built","sectionBuildingSub":"Check back soon — this is planned as a full feature page","sections":{"food":{"name":"Food & Recipes","description":"Share home-cooked recipes, restaurant finds, cooking tips and food photography"},"pictures":{"name":"Pictures","description":"Photo dumps, candid moments, travel shots and visual stories from the community"},"games":{"name":"Games","description":"Gaming sessions, clips, reviews, recommendations and everything in between"},"drinks":{"name":"Drinks","description":"Beer, cocktails, wine and spirits — tasting notes, bar finds and home mixing"},"brew":{"name":"Brewing","description":"Home brewing — create and share recipes, BJCP styles, BeerXML import and brew logs"},"places":{"name":"Places","description":"Cafés, parks, playgrounds and arenas where Slaf members have checked in"},"forum":{"name":"Forum","description":"General discussion, hot takes, questions and anything else on your mind"},"music":{"name":"Music","description":"Share playlists, concert experiences, new discoveries and favourite tracks"},"movies":{"name":"Movies & TV","description":"Film reviews, series recommendations, spoiler threads and watchlists"},"sports":{"name":"Sports","description":"Live match threads, results, transfer talk and sports banter"}},"loadError":"Couldn't load posts. Try again."},"social":{"title":"Social","tabs":{"chats":"Chats","friends":"Friends","online":"Online now","requests":"Requests","newest":"New"},"friends":{"since":"Friends since {date}","removeFriend":"Remove","removing":"Removing…","removeError":"Couldn't remove friend","cancel":"Cancel","confirmRemoveTitle":"Remove {name}?","confirmRemoveBody":"You'll need to send a new friend request to reconnect.","confirmRemove":"Remove","loadMore":"Load more friends","groupChangeError":"Couldn't update group","group":{"friend":"Friend","closefriend":"Close friend","drinkingbuddy":"Drinking buddy","family":"Family"},"groupPending":"pending","familyRelation":{"mom":"Mom","dad":"Dad","brother":"Brother","sister":"Sister","son":"Son","daughter":"Daughter","grandparent":"Grandparent","grandchild":"Grandchild","uncle":"Uncle","aunt":"Aunt","nephew":"Nephew","niece":"Niece","cousin":"Cousin","partner":"Partner","other":"Other"},"familyRelationPickerTitle":"What's your relation?","familyRelationPickerSkip":"Skip for now","loadError":"Couldn't load your friends. Please try again."},"online":{"noFriendsSub":"Add friends first to see who's online.","allOffline":"No one's online right now","allOfflineSub":"Your friends will appear here when they're active."},"requests":{"incoming":"Incoming","outgoing":"Sent","noIncoming":"No incoming requests","noIncomingBody":"Friend requests you receive will appear here.","noOutgoing":"No sent requests","noOutgoingBody":"Friend requests you've sent will appear here.","sentAt":"Sent {date}","accept":"Accept","decline":"Decline","cancel":"Cancel","accepting":"Accepting…","declining":"Declining…","canceling":"Canceling…","acceptError":"Couldn't accept request","declineError":"Couldn't decline request","cancelError":"Couldn't cancel request","loadError":"Couldn't load your requests. Please try again."},"empty":{"friends":{"heading":"No friends yet","body":"Send friend requests on people's profiles and they'll appear here."},"requests":{"heading":"{count, plural, =0 {No pending requests} one {{count} pending request} other {{count} pending requests}}","bodyWithRequests":"You have friend requests waiting.","bodyNone":"When someone sends you a friend request it will show up here."}},"newest":{"joined":"Joined {date}","empty":"No new members","emptySub":"No new users found.","loadError":"Couldn't load the newest members. Please try again."},"comingSoon":"Coming soon","chat":{"tabLabel":"Chats","noConversations":"No conversations yet","noConversationsSub":"Start a chat from a friend's profile.","selectConversation":"Select a conversation","you":"You","messagePlaceholder":"Message…","send":"Send","sending":"Sending…","loadOlder":"Load older messages","errorSend":"Couldn't send message","openInbox":"Open inbox","newChat":"New chat","searchFriends":"Search friends…","chatButton":"Chat","noFriendsFound":"No friends found","typing":"{name} is typing…","read":"Read","react":"React","imageMessage":"[Image]","viewInChat":"Go to message","imageOf":"{index} of {total}","attachImage":"Attach image","imagePreviewAlt":"Attached image","removeImage":"Remove image","close":"Close","backToInbox":"Back to inbox","openFullChat":"Open full chat","chatLabel":"Chat","loading":"Loading","back":"Back","createGroupTitle":"Create group","createGroupSubmit":"Create","groupNamePlaceholder":"Group name (optional)","selectMembersCount":"{count} / {cap} selected","systemCreated":"{actor} created the group","typingTwo":"{a} and {b} are typing…","typingMany":"{a}, {b}, and {count, plural, one {# other} other {# others}} are typing…","memberCount":"{count, plural, one {# member} other {# members}}","leftTheGroupBadge":"(left the group)","groupNameFallback":"Group","membersPanelTitle":"Group members","addMember":"Add member","addMemberSubmit":"Add","leaveGroupConfirmYes":"Yes, leave","leaveGroupConfirmCancel":"Cancel","errorLoadFriends":"Couldn't load friends","removeMember":"Remove","leaveGroup":"Leave group","leaveGroupConfirm":"Leave this group? You'll stop receiving messages.","creatorBadge":"Creator","departedBadge":"Departed","systemMemberAdded":"{actor} added {target} to the group","systemMemberRemoved":"{actor} removed {target}","systemMemberLeft":"{actor} left the group","errorAddMember":"Couldn't add members","errorRemoveMember":"Couldn't remove member","errorLeave":"Couldn't leave group","errorStartChat":"Couldn't start chat","errorCreateGroup":"Couldn't create group","errorNotFriends":"You can only add your friends to a group.","errorChildChatScope":"A child's chat settings don't allow one of these members in the group.","errorChildChatScopeDirect":"A child's chat settings don't allow a conversation with this member.","errorGroupFull":"The group can't have that many members.","errorTooFewMembers":"A group needs at least two members besides you.","errorGroupNameTooLong":"The group name is too long.","errorEmailUnconfirmed":"Confirm your email address before you create a group.","errorAccountTooNew":"You can create groups once your account is a week old.","errorRemoveCreatorOnly":"Only the person who created the group can remove members.","noMessagesYet":"No messages yet","noMessagesYetSub":"Say hi to get started!","groupSettings":"Group settings","groupNameLabel":"Group name","changeAvatar":"Change avatar","saveChanges":"Save","errorUpdateGroup":"Couldn't save changes","errorUploadAvatar":"Couldn't upload avatar","systemRenamed":"{actor} renamed the group to {name}","systemRenamedCleared":"{actor} cleared the group name","systemAvatarChanged":"{actor} changed the group avatar","readByPlural":"{count, plural, one {Read by # person} other {Read by # people}}","notReadYet":"Not read yet","nobodyHasReadYet":"Nobody has read this yet","showReaders":"Show readers","tabInbox":"Inbox","tabRequests":"Requests","noRequests":"No message requests","noRequestsSub":"Requests from people you don't follow will appear here.","requestBannerTitle":"Message request","requestBannerSubtitle":"Accept to start chatting. Reject to dismiss and block further requests from this user.","requestAccept":"Accept","requestReject":"Reject","requestRejectConfirm":"Yes, reject","requestActionFailed":"Couldn't complete that action. Please try again.","friendsSectionLabel":"Friends","allSlafSectionLabel":"All of Slaf","noSearchResults":"No matches","sendMessageRequestShort":"Send request","inboxClosedShort":"Not accepting","sent":"Sent","errorLoadMessages":"Couldn't load the messages. Please try again.","errorLoadConversations":"Couldn't load your conversations. Please try again."},"tabsLabel":"Social sections"},"dashboard":{"filters":{"new":"New","following":"Following","nearby":"Nearby","dev":"Dev","gaming":"Gaming"},"feedHeading":"Feed","trendingCommunities":"Trending communities","today":"today","onlineNow":"Online now","friends":"friends","onlineStatus":{"online":"Online","idle":"Idle","offline":"Offline"},"noOnlineFriends":"No friends online right now","comingSoon":"Coming soon","betaWelcomeTitle":"Welcome, BETA tester!","betaWelcomeBody":"You're here for a reason – you're one of the first to step inside Slaf.\nAnd just like always in true slaf spirit, there are no rules for how you're supposed to use this.\n\nClick around. Try everything. Break things. Build it back up.\nThink of it like an after-party where someone suddenly jumps up and dances on the table – we don't expect you to sit quietly in a corner.\n\nDon't be shy.\nSlaf is made by a slaf, for a slaf – and that means it should feel alive, a little chaotic, and above all fun.\n\nFound something weird? Perfect.\nGot ideas? Even better.\nAll feedback makes Slaf better.\n\nSo go. Explore. Push the limits.\nAnd most importantly – have fun.","betaTourIntro":"At launch we're putting together something currently going by the name:","betaTourName":"Older, not a bit wiser -26 TOUR","betaWelcomeCta":"Try everything","newSlafarsTitle":"New slafers","filterAll":"All","filterImages":"Images","emptyFeedTitle":"Your feed is empty","emptyFeedSub":"Follow people to see their posts here","feedLoadError":"Couldn't load your feed. Try again.","post":{"label":"Post by {name}","commentCount":"{count, plural, one {# comment} other {# comments}}"}},"create":{"post":"Post","album":"Album","postPlaceholder":"What's on your mind?","postTextLabel":"Write a post","albumTitle":"Album title…","albumTitleLabel":"Album title","albumCaption":"Add a caption… (optional)","albumCaptionLabel":"Album caption","addPhotos":"Add photos to your album","addMorePhotos":"Add more","addPhotosLabel":"Add photos","removePhotoLabel":"Remove photo {n}","photosLabel":"Photos","sectionLabel":"Tag a section","privacyPublic":"Public","privacyPublicDesc":"Anyone on Slaf can see this","privacyFriends":"Friends","privacyFriendsDesc":"Only your confirmed friends","privacyFamily":"Family","privacyFamilyDesc":"Only your approved family members","privacyPrivate":"Only me","privacyPrivateDesc":"Visible to you alone","privacyLabel":"Visibility: {level}","privacyShareWithChildren":"Visible to kids in family","privacyShareWithChildrenDesc":"Also let trust-set children see this","uploading":"Uploading…","uploadingN":"Uploading {done}/{total}…","posting":"Posting…","submit":"Post","submitAlbum":"Create album","uploadStateQueued":"Queued","uploadStateUploading":"Uploading {percent}%","uploadStateDone":"Uploaded","uploadStateFailed":"Failed — tap to retry","selectedCount":"{count} selected","uploaderAddPhotos":"Add photos","uploaderAddMore":"Add more","uploaderRetry":"Retry","uploaderRemoving":"Remove photo {n}","networkError":"Network error — please try again","discardUploadTitle":"Discard upload?","discardUploadBody":"Your upload progress will be lost and your post won't be saved.","discardUploadConfirm":"Discard","discardUploadKeep":"Keep editing","spiritMessages":["Brewing your post…","Charging up the slaf-spirit…","Finding the perfect angle…","Polishing the pixels…","Pushing photos through the tubes…","Having a word with the server…","Putting the kettle on while we upload…","Counting the megabytes…","Sprinkling a little extra slaf-magic…","Almost there — hold that thought…"],"uploadFailed":"The images could not be uploaded — the post was not saved. Try again.","postTypeLabel":"Post type","postFailed":"Couldn't publish your post. Try again.","albumFailed":"Couldn't create the album. Try again.","uploaderAddMedia":"Add photos & videos","uploaderRemoveFile":"Remove file {n}","uploaderCaptionLabel":"Caption for file {n}","uploaderDropHere":"Drop photos & videos here"},"profile":{"editProfile":"Edit profile","changeBanner":"Change banner","removeBanner":"Remove banner","bannerUploading":"Uploading…","bannerError":"Failed to upload banner","avatarError":"Failed to upload profile picture","addFriend":"Add friend","requestSent":"Request sent","requestDeclinedCooldown":"Request declined","friendsLabel":"Friends","acceptRequest":"Accept","declineRequest":"Decline","follow":"Follow","following":"Following","actionFailed":"Something went wrong","message":"Message","sendMessageRequest":"Send request","messageInboxClosed":"Not accepting messages","messageInboxClosedTooltip":"This user isn't accepting message requests right now.","messageChildChatScope":"Chat not allowed","messageChildChatScopeTooltip":"A child's chat settings don't allow a conversation with this member.","block":"Block","blockConfirmTitle":"Block {displayName}?","blockConfirmBody":"You'll stop seeing each other. Your friendship, follows in both directions, and any pending friend requests will be removed. You can unblock from Settings — but reconnecting will require a new friend request.","blockConfirm":"Block","blockError":"Couldn't block this user. Please try again.","postBlockTitle":"User blocked","postBlockBody":"You and {displayName} won't see each other anymore. If they violated our rules, you can also file a report.","postBlockSoftCapHint":"You've blocked over 1000 users. Visit Blocked users in Settings to review your list.","postBlockReport":"Report","postBlockDone":"Done","online":"Online","idle":"Away","offline":"Offline","tabsAriaLabel":"Profile sections","tabs":{"posts":"Posts","places":"Places","images":"Images","about":"About","games":"Games","badges":"Badges","friends":"Friends","communities":"Communities"},"posts":{"ownEmpty":"You haven't posted anything yet","ownEmptySub":"Share something with your community","otherEmpty":"@{username} hasn't posted yet","loadError":"Couldn't load posts"},"places":{"ownEmpty":"You haven't checked in anywhere yet","ownEmptySub":"Add a place to a post and it shows up here.","otherEmpty":"@{username} hasn't checked in anywhere yet","loadError":"Couldn't load check-ins"},"images":{"subTabImages":"Your images","subTabImagesOther":"Images","subTabAlbums":"Albums","subTabTagged":"Tagged","openImage":"Open image","imagesEmpty":"No images yet","imagesEmptySub":"Share posts with images to see them here","albumsEmpty":"No albums yet","albumsEmptySub":"Create your first album","loadError":"Couldn't load images","albumsLoadError":"Couldn't load albums"},"albums":{"sortImages":"Sort","sortDone":"Done sorting","sortSaving":"Saving order…","editImage":"Edit image","createAlbum":"Create album","titleLabel":"Title","titlePlaceholder":"Album title…","descLabel":"Description","descPlaceholder":"Optional description…","createSubmit":"Create","creating":"Creating…","createError":"Failed to create album","saveError":"Couldn't save the changes. Please try again.","noImages":"No images yet","addImages":"Upload images","removeImage":"Remove image","removeImageConfirm":"Remove this image from the album?","backToProfile":"Back to profile","backToAlbums":"Back to all albums","uploading":"Uploading {done}/{total}…","uploadError":"Some images failed to upload","viewPost":"View post","imageCount":"{count, plural, =0 {No images} one {1 image} other {{count} images}}","editAlbum":"Edit album","saveChanges":"Save","saving":"Saving…","deleteAlbum":"Delete album","deleteAlbumConfirm":"Delete this album? This cannot be undone.","deleting":"Deleting…","setCover":"Set as cover","currentCover":"Cover photo","notFound":"Album not found","loadError":"Couldn't load the album","sortHint":"Drag images to reorder"},"about":{"bioHeading":"Bio","editBio":"Edit","addBio":"Add bio","bioPlaceholder":"Write a short bio…","noBioHint":"No bio yet. Click 'Add bio' to write one.","birthdayHeading":"Birthday","age":"· age {age}","memberSince":"Member since","familyHeading":"Family","cancel":"Cancel","save":"Save","saving":"Saving…","failedToSave":"Failed to save"},"friends":{"ownEmpty":"No friends yet","ownEmptySub":"Search for people to connect with","otherEmpty":"@{username} hasn't added any friends yet","loadMore":"Load more","loadError":"Couldn't load friends"},"communities":{"empty":"No communities yet","emptySub":"Communities coming soon"},"notFound":{"heading":"User not found","body":"@{username} doesn't exist or has been removed."},"location":{"memberCount":"{count, plural, =0 {No members} one {# member} other {# members}} currently in {city}","emptyTitle":"No members here yet","emptyBody":"Be the first to list {city} as your current city.","unknownTitle":"Unknown city","unknownBody":"This link doesn't point to a city we recognise. Open it from a member's profile."},"bannerRemoveError":"Couldn't remove the cover image","addFriendError":"Couldn't send the request","cancelRequestError":"Couldn't withdraw the request","acceptRequestError":"Couldn't accept the request","declineRequestError":"Couldn't decline the request","loadError":"Couldn't load the profile. Try again."},"common":{"loading":"Loading","otpDigit":"Digit {n} of {total}","comingSoon":"Coming soon","close":"Close","changeAvatar":"Change avatar","rateStar":"Rate {value} out of 10","presenceOnline":"Online","presenceIdle":"Away","presenceOffline":"Offline","playGif":"Play GIF","cancel":"Cancel","save":"Save","add":"Add","cityPickerLabel":"City","cityPickerClearLabel":"Clear city","cityPickerPlaceholder":"Type a city name…","comments":"Comments","noCommentsTitle":"No comments yet","noCommentsSub":"Be the first to say something","commentPlaceholder":"Write a comment…","postComment":"Post comment","deleteComment":"Delete comment","deleteCommentConfirm":"Delete comment?","deleteCommentError":"Could not delete comment","delete":"Delete","edited":"edited","editPost":"Edit post","deletePost":"Delete post","deletePostConfirm":"Delete this post?","like":"Like","unlike":"Unlike","commentLabel":"Comment","commentOptions":"Comment options","postOptions":"Post options","mod":"mod","loadMoreComments":"Load more comments","loadingMore":"Loading…","postKindAvatarUpdate":"{name} updated their profile picture","postKindAlbumPost":"{name} shared an album","deleteAlbumPostConfirm":"What would you like to do?","deleteAlbumPostBoth":"Delete post and album","deleteAlbumPostOnly":"Delete post, keep album","albumKind":{"profilePictures":"Profile pictures","coverImages":"Cover photos"},"appTagline":"The Place","apply":"Apply","cropProfilePicture":"Crop profile picture","ratingPoor":"Poor","ratingMediocre":"Mediocre","ratingGood":"Good","ratingGreat":"Great","ratingPerfect":"Perfect","conditionPoor":"Poor","conditionFair":"Fair","conditionGood":"Good","conditionGoodPlus":"Good+","conditionVG":"VG","conditionVGPlus":"VG+","conditionNearMint":"Near Mint","conditionMint":"Mint","imageTooLarge":"Exceeds 10 MB","videoTooLarge":"Exceeds 200 MB","videoTooLong":"Exceeds 5 minutes","unsupportedFileType":"Unsupported file type","reply":"Reply","replyingTo":"Replying to @{username}","deletedComment":"[Deleted comment]","commentImageAlt":"Comment image","lightboxLabel":"Media viewer","previousImage":"Previous image","nextImage":"Next image","goToImage":"Go to image {index}","viewImage":"View image","viewImageCaption":"View image: {caption}","viewVideo":"View video","viewVideoCaption":"View video: {caption}","viewMoreImages":"{count, plural, one {View # more image} other {View # more images}}","imageLoadError":"The image couldn't be loaded","videoLoadError":"The video couldn't be loaded","addCaption":"Add caption","editCaption":"Edit caption","noCaption":"No caption","captionPlaceholder":"Add a caption…","continueThread":"Continue thread","continueThreadCount":"Continue thread ({count} replies)","viewReplies":"View {count} replies","hideReplies":"Hide replies","cancelReply":"Cancel reply","replyPlaceholder":"Write a reply…","reactionLabel0":"lmao","reactionLabel1":"what are you doing","reactionLabel2":"I'm dead","reactionLabel3":"big brain","reactionLabel4":"hmm…","reactionLabel5":"respect tho","reactionLabel6":"love","reactionLabel7":"yikes","reactionsTitle":"Reactions","reactionsAll":"All","reactionsNone":"No reactions yet","reactionsView":"View reactions","react":"React","emojiPickerButton":"Pick emoji","emojiPickerSearch":"Search emoji…","emojiPickerNoResults":"No results","emojiPickerRecentEmpty":"No recently used emoji","gifPickerButton":"Pick GIF","gifPickerSearch":"Search on Klipy…","gifPickerTrendingGifs":"Trending GIFs","gifPickerFavourites":"Favourites","gifPickerBack":"Back","gifPickerNoResults":"No results","gifPickerNoFavourites":"No favourites yet — heart a GIF!","gifPickerError":"Could not load GIFs","gifPickerLoadMore":"Load more","gifPickerAddFav":"Add to favourites","gifPickerRemoveFav":"Remove from favourites","gifRemove":"Remove GIF","gifAttribution":"Powered by Klipy","gifCatHappy":"Happy","gifCatSad":"Sad","gifCatExcited":"Excited","gifCatLove":"Love","gifCatLaugh":"Laugh","gifCatDance":"Dance","gifCatHug":"Hug","gifCatHello":"Hello","genericError":"Something went wrong. Please try again.","saveFailed":"Couldn't save. Please try again.","loadFailed":"Couldn't load. Please try again.","back":"Back","loadMore":"Load more","saving":"Saving…","edit":"Edit","confirm":"Confirm","removeImage":"Remove image","deletedAccount":"Deleted account","breadcrumb":"Breadcrumb","postNotFound":"Post not found","postNotFoundDescription":"It may have been deleted, or you no longer have access to it."},"search":{"placeholder":"Search…","noResults":"No results for \"{query}\"","people":"People","posts":"Posts","places":"Places","viewAll":"View all results","searchFor":"Search for \"{query}\"","loading":"Searching…","emptyPeople":"No people found","emptyPosts":"No posts found","emptyPlaces":"No places found","tabs":{"all":"All","people":"People","posts":"Posts","places":"Places"},"loadError":"The search failed. Please try again."},"games":{"heroTitle":"One place for your games, collection, and community","heroSub":"Browse your retro collection, discover new games, read community reviews, and follow what's happening right now.","browseGames":"Browse Games","myCollection":"My Collection","statGames":"Games","statPlatforms":"Platforms","statBarcodes":"Barcodes","statTranslations":"Translations","statTranslationsLabel":"Translation coverage","statVerified":"verified","statUnverified":"unverified","statBarcodesLabel":"Barcode coverage","statBarcodesMatched":"matched","statBarcodesUnmatched":"unmatched","reviewsLabel":"Reviews","reviewsTitle":"Latest game reviews","reviewsComingSoon":"Reviews coming soon","reviewsComingSoonSub":"Once reviews launch you'll see the latest user-written ratings and opinions on games here","forumLabel":"Forum","forumTitle":"Popular this week","forumComingSoon":"Forum coming soon","forumComingSoonSub":"The most active gaming forum threads this week will appear here once the forum launches","leaderboardTitle":"Top translators","leaderboardSub":"Community members who have contributed the most verified translations","leaderboardEmpty":"No translations yet — be the first!","leaderboardTranslateLink":"Help translate game descriptions","wishlistTitle":"Trending in wishlists","wishlistSub":"Games people are keeping an eye on","wishlistComingSoon":"Wishlist highlights coming soon","wishlistComingSoonSub":"Once collections launch, the most-wishlisted games appear here","sectionReviews":"Reviews","sectionReviewsSub":"User-written game reviews","sectionServers":"Server Status","sectionServersSub":"Live status for Slaf-hosted game servers","sectionCollection":"My Collection","sectionCollectionSub":"Track your physical and digital game library","comingSoon":"Coming soon","navSectionTitle":"Quick access","navBrowseSub":"Find any game in the database","navMarketplace":"Marketplace","navMarketplaceSub":"Browse games listed for sale","navForumSub":"Discuss games with the community","navTranslate":"Translate","navTranslateSub":"Help translate game descriptions into other languages","statsWidgetTitle":"Community stats","collectionViewMine":"View my collection","popularTitle":"Popular in collections","popularSub":"Games the community is collecting and loving","popularTabAllTime":"All time","popularTabWeek":"This week","popularTabTrending":"Trending","popularEmpty":"No games in collections yet","popularEmptySub":"Be the first to add a game to your collection","popularVotes":"{count} votes","popularCollectors":"{count} collectors","forSaleTitle":"For sale","forSaleSub":"Games listed for sale by the community","forSaleEmpty":"Nothing for sale right now","forSaleEmptySub":"When users list games for sale they'll appear here","forSaleBidding":"Open for bidding","forSaleNoPrice":"No price set","forSaleBy":"by","forSaleViewAll":"View collection","detailBackToGames":"Back to games","detailNotFound":"Game not found","detailNotFoundSub":"This game doesn't exist or hasn't been added to Slaf yet.","detailAddToCollection":"Add to my collection","detailWishlistButton":"Wishlist","detailWishlisted":"Wishlisted","detailUnwishlist":"Remove","detailPlayOnSteam":"Play on Steam","detailSteamStore":"Steam Store","detailAgeRatings":"Age ratings","detailAlternativeNames":"Also known as","detailWebsites":"Links","detailVideos":"Videos","detailWatchOnYouTube":"Watch on YouTube","detailVerified":"Verified translation","detailReleased":"Released","detailPlatforms":"Platforms","detailPublishers":"Publishers","detailFranchise":"Franchise","detailDevelopers":"Developers","detailGameModes":"Game Modes","detailThemes":"Themes","detailPlayerPerspectives":"Player Perspectives","detailSeries":"Series","detailGameEngines":"Game Engines","detailSpinOffOf":"Spin-off of","detailReadMore":"Read more","detailShowLess":"Show less","detailSimilarGames":"Similar games","detailCommunityStats":"Community","detailOwned":"{count} own this","detailWishlist":"On {count} wishlists","detailForSaleBadge":"{count} for sale","detailAvgRating":"Avg rating","detailNoRating":"No ratings yet","detailRatingsSection":"Ratings","detailRatingCriticsLabel":"Critics","detailRatingNoData":"No data","detailRatingVotes":"{count} votes","detailRatingReviews":"{count} reviews","detailInCollections":"In collections","detailCondition":"Condition","detailRegion":"Region","detailOpenToTrade":"Open to trade","detailViewEntry":"View","detailNoCollectors":"No public collectors yet","detailNoCollectorsSub":"Be the first to add this to your collection","detailWishlistedBySection":"Wishlisted by","detailNoWishlisters":"No public wishlisters yet","detailNoWishlistersSub":"Be the first to wishlist this game","detailForSaleSection":"For sale","detailNoForSale":"No active listings","detailNoForSaleSub":"No one is selling this game right now","detailBidding":"Open for bidding","detailNoPrice":"No price set","detailBy":"by","detailPlaythroughsSection":"Recent playthroughs","detailNoPlaythroughs":"No public playthroughs yet","detailNoPlaythroughsSub":"Log a playthrough on your collection entry to show up here","detail100Percent":"100%","detailNgPlus":"NG+","detailCompleted":"Completed","detailPlaytime":"{hours}h {minutes}m","detailPlaytimeHours":"{hours}h","detailPlaytimeMinutes":"{minutes}m","reviewWriteTitle":"Write a review","reviewEditTitle":"Edit your review","reviewEdit":"Edit","reviewDelete":"Delete review","reviewDeleteConfirm":"Delete review?","reviewDeleteConfirmSub":"This cannot be undone. The review and all its comments will be permanently deleted.","reviewEdited":"(edited)","reviewCancel":"Cancel","reviewSubmit":"Submit review","reviewSaveChanges":"Save changes","reviewEditButton":"Edit review","reviewUpdate":"Update review","reviewRatingLabel":"Rating (1–10)","reviewTitleLabel":"Review title","reviewTitlePlaceholder":"Give your review a short title","reviewBodyLabel":"Your review (optional)","reviewBodyHeader":"Review","reviewBodyPlaceholder":"Share your thoughts about this game…","reviewNoReviews":"No reviews yet","reviewNoReviewsSub":"Be the first to rate and review this game","reviewComments":"{count, plural, =0 {No comments} one {# comment} other {# comments}}","reviewCommentsLabel":"Comments","reviewNoComments":"No comments yet","reviewCommentPlaceholder":"Add a comment…","reviewCommentSend":"Send","reviewCommentDelete":"Delete","reviewLoadMore":"Load more reviews","reviewPlatformLabel":"Which platform did you play on?","reviewPlatformRequired":"Required","reviewScoreCore":"Core","reviewScoreCoreHint":"Rate all 4 to see overall","reviewScoreOverall":"Overall","reviewScoreGameplay":"Gameplay","reviewScoreGraphics":"Graphics","reviewScoreSound":"Sound","reviewScoreStory":"Story","reviewScoreFun":"Fun","reviewScoreFunHint":"optional — check to rate","reviewScoreAddictiveness":"Addictiveness","reviewScoreRageLevel":"Rage Level","reviewScoreFunWithFriends":"Fun with Friends","reviewScoreValueForMoney":"Value for Money","reviewScoreOptional":"Optional","reviewScoreOptionalHint":"check to rate","reviewScoreNostalgia":"Nostalgia","reviewScoreGrindLevel":"Grind Level","reviewTemplatePickerLabel":"Start from a template","reviewTemplateBlank":"or start blank","reviewTemplateChange":"↩ Change template","reviewHintCoreScores":"Rate all 4 core scores to continue","reviewHintTitle":"Add a review title to continue","reviewHintPlatform":"Select which platform you played on","reviewHintReady":"Ready to publish","reviewLanguageLabel":"Review language","reviewLanguageSv":"Swedish","reviewLanguageEn":"English","reviewLanguageOther":"Other","reviewAllowTranslation":"Allow translation","reviewAllowTranslationHint":"Let others translate this review to their language","reviewSortLabel":"Sort","reviewSortNewest":"Newest","reviewSortOldest":"Oldest","reviewSortTop":"Top rated","reviewSortMostViewed":"Most viewed","reviewSortMostComments":"Most commented","reviewFilterAll":"All languages","reviewFilterYours":"Your language","reviewViews":"{count, plural, =0 {0 views} one {# view} other {# views}}","reviewReaction1up":"1UP","reviewReactionGameOver":"GAME OVER","recentReviewsEmpty":"No reviews yet","recentReviewsEmptySub":"Be the first to review a game","recentCollectedTitle":"Recently collected","recentCollectedSub":"Latest additions to the community","recentWishlistTitle":"Recently wishlisted","recentWishlistSub":"Games people are hoping to find","recentByLabel":"by","recentEmpty":"No public entries yet","recentEmptySub":"Be the first to add a game to your collection","recentWishlistEmpty":"No public wishlists yet","recentWishlistEmptySub":"Add games to your wishlist and make it public to appear here","detailCommunityImages":"Community Photos","detailReviewsSection":"Reviews","detailReviewsComingSoon":"Reviews coming soon","detailReviewsComingSoonSub":"Once reviews launch you'll be able to rate and review this game here","reviewsBrowseTitle":"All Reviews","reviewsBrowseSub":"Community-written game reviews from across Slaf","reviewsViewAll":"View all","reviewsNoMore":"No more reviews","unknownAuthor":"Unknown","breadcrumbGames":"Games","breadcrumbBrowse":"Browse","breadcrumbReviews":"Reviews","reviewPickerPlaceholder":"Search for a game to review…","reviewPickerHint":"Type a game name to get started","reviewPickerNoResults":"No games found","reviewPickerNoResultsSub":"Check the spelling or try a different name","browseSortPopular":"Popular","browseSortRecent":"Recently added","browseSortAz":"A–Z","browseSortIgdb":"IGDB Rating","browseSortTotal":"Critics Score","browseSortSlaf":"Slaf Rating","browseNoResults":"No games found","browseNoResultsSub":"Try a different search or remove the filter","browseSearchPlaceholder":"Search games…","browseCollectors":"{count, plural, one {# collector} other {# collectors}}","browseCachedNotice":"Showing cached results — IGDB unavailable","browseIgdbResults":"Results from IGDB","browsePlatformAll":"All","browsePlatformLabel":"Platform","browsePlatformPopular":"Popular","browsePlatformSearch":"Find a platform…","browsePlatformNoResults":"No platforms found","browseLoadMore":"Load more","browseSortLabel":"Sort","browseTitle":"Browse Games","clearSearch":"Clear search","reviewColorSwatch":"Text colour {color}","browseSub":"Browsing {count} games in the database","browseSearching":"Searching IGDB for \"{query}\"…","browseDefaultTitle":"Popular games","browseTagFilter":"Filtered by: {value}","browseTagClear":"Clear filter","translateTabLabel":"Translate","translateTitle":"Community Translations","translateSub":"Help translate game descriptions. Earn reputation and influence the verified translation.","translateLocaleLabel":"Translate to","translateLocaleEn":"English","translateLocaleSv":"Swedish","translateSearchPlaceholder":"Search games…","translateNoGames":"No games found.","translateLoadMore":"Load more","translateLoading":"Loading…","translateFilterAll":"All","translateFilterAI":"AI Translated","translateFilterCommunity":"Community","translateFilterUntranslated":"Not Translated","translateFilterNoEnglish":"No English","translateFromLabel":"From","translateToLabel":"To","translateSortLabel":"Sort","translateSortLatest":"Latest","translateSortAz":"A–Z","translateSortProposals":"Most Proposals","translateSortScore":"Top Score","translatePlatformLabel":"Platform","translatePlatformAll":"All platforms","translateStatusVerified":"Verified","translateStatusAI":"AI translated","translateStatusCommunity":"Community","translateStatusNone":"Not translated","translateStatusPending":"{count, plural, one {# pending proposal} other {# pending proposals}}","translateColEnglish":"English","translateColTranslation":"Translation","translateColTitle":"Title","translateColDeck":"Summary","translateColDescription":"Description","translateProposalsTitle":"Proposals","translateProposalsEmpty":"No proposals yet. Be the first to suggest a translation!","translateVoteTooltipUp":"Upvote this proposal","translateVoteTooltipDown":"Downvote this proposal","translateScore":"Score: {score}","translateWeightTier":"Trust: {weight}x","translateAddButton":"Add translation","translateApproveButton":"Approve AI translation","translateSuggestButton":"Suggest edit","translateEditButton":"Edit my proposal","translateFormTitle":"Suggest a translation","translateFormDeckLabel":"Summary","translateFormDescriptionLabel":"Description","translateFormDeckPlaceholder":"Short summary in translated language","translateFormDescriptionPlaceholder":"Full description in translated language","translateFormSubmit":"Submit proposal","translateFormCancel":"Cancel","translateFormSubmitting":"Submitting…","translateFormSuccess":"Proposal submitted!","translateFormError":"Failed to submit. Please try again.","translateProposedBy":"by {username}","translatePromotedBadge":"Promoted","translateRejectedBadge":"Rejected","translateSupersededBadge":"Superseded","translatePendingBadge":"Pending","translateScoreHelp":"Proposals are auto-promoted at score ≥ 15 and auto-rejected at ≤ −10.","translateReputationHelp":"Your trust weight determines how much your vote counts. Earn reputation by having proposals promoted.","translateAdminNote":"As an admin, your vote instantly promotes a proposal.","translateOwnProposal":"You submitted this proposal","translateCannotVoteOwn":"You cannot vote on your own proposal","platformNotFound":"Platform not found","platformNotFoundSub":"This platform doesn't exist or hasn't been added to Slaf yet.","platformBackToGames":"Back to games","platformBrowseGames":"Browse games","platformGeneration":"Generation {n}","platformLibraryTotal":"{count} official releases","platformClosedYear":"Closed {year}","platformActiveLibrary":"Active platform","platformHardwareSpecs":"Hardware specs","platformCpu":"CPU","platformMemory":"Memory","platformStorage":"Storage","platformMedia":"Media","platformOs":"OS","platformConnectivity":"Connectivity","platformResolutions":"Resolutions","platformSound":"Sound","platformRegionReleases":"Regional release dates","platformNoSpecs":"No hardware specs available yet","platformNoRegions":"No regional release data available yet","tabAbout":"About","tabCommunity":"Community","tabMedia":"Media","tabRelated":"Related","tabReleases":"Releases","tabMediaNoVideos":"No videos available for this game yet","tabRelatedNone":"No related content found for this game","tabRelatedDlcs":"DLCs & Packs","tabRelatedExpansions":"Expansions","tabRelatedStandalone":"Standalone Expansions","tabRelatedBundles":"Bundles","tabRelatedRemakes":"Remakes","tabRelatedRemasters":"Remasters","tabRelatedExpandedGames":"Expanded Games","tabRelatedPorts":"Ports","tabRelatedForks":"Forks","tabRelatedUpdates":"Updates","tabRelatedPacks":"Packs","tabReleasesNoData":"No release date data available for this game","sidebarDetailedView":"Detailed view","sidebarViewOnIgdb":"View on IGDB","steamLaunchTitle":"Launch on Steam?","steamLaunchBody":"This will open the Steam client and start the game.","steamLaunchConfirm":"Launch","steamLaunchCancel":"Cancel","upcomingTitle":"Most Wishlisted Upcoming","steamPeakTitle":"Trending on Steam","editorBold":"Bold","editorItalic":"Italic","editorUnderline":"Underline","editorStrikethrough":"Strikethrough","editorHeading2":"Heading 2","editorHeading3":"Heading 3","editorTextColor":"Text color","editorRemoveColor":"Remove color","editorAlignLeft":"Align left","editorAlignCenter":"Align center","editorAlignRight":"Align right","editorBulletList":"Bullet list","editorOrderedList":"Ordered list","editorBlockquote":"Blockquote","editorHorizontalRule":"Horizontal rule","editorUploadImage":"Upload image","editorEmbedVideo":"Embed video (YouTube)","editorUndo":"Undo","editorRedo":"Redo","editorResize":"Drag to resize","editorVideoUrlPlaceholder":"Paste a video URL…","editorCancel":"Cancel","editorEmbed":"Embed","editorUploadFailed":"Upload failed","editorFloatLeft":"Float left","editorFloatFull":"Full width","editorFloatRight":"Float right","carouselScrollLeft":"Scroll left","carouselScrollRight":"Scroll right","editorEmbedVideoTitle":"Embed video","editorEmbedVideoSub":"Supports YouTube, Twitch, and Vimeo.","editorEmbedTipYoutube":"Use Share → Copy link on YouTube for the cleanest URL.","editorEmbedTipTwitch":"Share a VOD or clip link from Twitch — live streams can only be embedded while live.","editorEmbedTipVimeo":"Private Vimeo videos cannot be embedded — make sure the video is set to public.","editorLink":"Link","editorLinkTitle":"Add link","editorLinkEditTitle":"Edit link","editorLinkSub":"The link opens in a new tab.","editorLinkUrlPlaceholder":"Paste a URL…","editorLinkTextPlaceholder":"Text to show (optional)","editorLinkApply":"Add","editorLinkRemove":"Remove link","editorLinkRefused":"That address can't be used as a link.","editorCustomColor":"Custom…","editorUploadingImage":"Uploading image…","editorVideoDetected":"{platform} video detected","editorVideoUnknownPlatform":"Platform not recognised — check the URL format below","tplClassicLabel":"Classic Review","tplClassicDesc":"Structured sections for Gameplay, Graphics, Sound, Story and a final Verdict.","tplQuickLabel":"Quick Take","tplQuickDesc":"A punchy summary quote, then The Good and The Bad bullet lists.","tplDeepLabel":"Deep Dive","tplDeepDesc":"An in-depth look at mechanics, narrative, and how the game compares to its peers.","tplHeadingIntroduction":"Introduction","tplHeadingGameplay":"Gameplay","tplHeadingGraphicsSound":"Graphics & Sound","tplHeadingStory":"Story","tplHeadingVerdict":"Verdict","tplHeadingTheGood":"The Good","tplHeadingTheBad":"The Bad","tplHeadingBackground":"Background","tplHeadingMechanics":"Mechanics","tplHeadingNarrativeWorld":"Narrative & World","tplHeadingComparison":"Comparison","tplHeadingFinalThoughts":"Final Thoughts","heroBadgeHub":"Game Hub","heroBadgeTagline":"Social + Collecting","adminSteamAppIdTitle":"Admin — Steam App ID","adminSteamAppIdSet":"Set to {id}","adminSteamAppIdCleared":"Cleared","ageRatingCategory":"Category {category}","websiteOfficial":"Official website","websiteGeneric":"Website","editorEmbedFailed":"Could not embed: {url}","editorVideoTitle":"{platform} video","translateBasedOnAI":"Based on AI","translateBasedOnProposal":"Based on proposal","translateFormFieldRequired":"At least one field is required.","translateApproveFailed":"Couldn't approve the translation. Please try again.","translateVoteFailed":"Couldn't register your vote. Please try again.","reviewNotFound":"Review not found","reviewDeleteFailed":"Couldn't delete the review. Please try again.","reviewSaveFailed":"Couldn't save the review. Please try again.","reviewAlreadyWritten":"You have already reviewed this game. You can edit that review instead.","reviewCommentSendFailed":"Couldn't send the comment. Please try again.","unwishlistFailed":"Couldn't remove the game from your wishlist. Please try again."},"collection":{"title":"Game Collection","ownedCount":"<strong>{count}</strong> owned","wishlistCount":"<strong>{count}</strong> on wishlist","votesReceived":"{count} votes received","filterAll":"All","filterOwned":"Owned","filterWishlist":"Wishlist","filterForSale":"For Sale","addGame":"Add game","emptyOwn":"Your collection is empty","emptyOwnSub":"Start by adding your first game","emptyOther":"No games in collection yet","emptyOtherSub":"This user hasn't added any games yet","emptyNoMatch":"No games match your search or filters","statusLabel":"Status","statusOwned":"Owned","statusWishlist":"Wishlist","statusForSale":"For Sale","conditionCIB":"CIB","conditionBoxAndManual":"Box + Manual","conditionBoxOnly":"Box Only","conditionManualOnly":"Manual Only","conditionLoose":"Loose","conditionLabel":"Completeness","completenessLabel":"Completeness","completenessCIB":"CIB","completenessLoose":"Loose","completenessPartial":"Partially Complete","completenessSealed":"Sealed","authenticityLabel":"Authenticity","authenticityOriginal":"Original","authenticityRepro":"Reproduction","itemsLabel":"What's included","itemMedia":"Media","itemBox":"Box","itemManual":"Manual","itemInserts":"Inserts","itemInnerTray":"Inner tray","gradeOverallLabel":"Overall grade","gradeOverallCalc":"Calculated from item grades","regionLabel":"Region","priceLabel":"Purchase price","purchasedAtLabel":"Purchase date","purchasedFromLabel":"Purchased from","purchasedFromPlaceholder":"e.g. eBay, flea market, friend…","ratingLabel":"Personal rating","copyLabelLabel":"Copy label","copyLabelPlaceholder":"e.g. Sealed, Playing copy, Flea market find...","copiesTitle":"Other copies","tagsLabel":"Tags","tagsPlaceholder":"Type a tag and press Enter...","tagsHint":"Max 10 tags · Press Enter or comma to add","notesLabel":"Notes","notesPlaceholder":"Any thoughts on this game...","wishlistNotesLabel":"What I'm looking for","wishlistPrivate":"Private wishlist","wishlistNotesPlaceholder":"e.g. CIB copy, PAL version, any condition...","isPublicLabel":"Show on public profile","wishlistPublicLabel":"Show on public wishlist","openToTradeLabel":"Open to trade","addTitle":"Add to collection","editTitle":"Edit game","platformLabel":"Platform","platformAll":"All platforms","platformLoading":"Loading platforms...","platformSearchPlaceholder":"Type to search platforms...","platformError":"Failed to load platforms","searchLabel":"Search for a game","searchPlaceholder":"e.g. Zelda, Mario, Sonic...","searchEmpty":"No results found","searchLoading":"Searching...","searchFailed":"Search failed","backToSearch":"Back to search","saveButton":"Save","cancelButton":"Cancel","deleteConfirm":"Remove from collection?","deleteConfirmSub":"This will remove the game and all its data from your collection.","deleteButton":"Remove","voteButton":"Like","voted":"Liked","openToTradeTag":"Open to trade","editButton":"Edit","personalRatingLabel":"Your rating","detailBack":"Back to collection","detailAddedAt":"Added","detailCondition":"Condition","detailRegion":"Region","detailPrice":"Purchase price","detailRating":"Rating","detailNotes":"Notes","detailPublic":"Public","detailPrivate":"Private","detailOpenToTrade":"Open to trade","detailEdit":"Edit game","detailDelete":"Remove","detailCommentsTitle":"Comments","detailCommentsSoon":"Comments coming soon","commentPlaceholder":"Write a comment…","commentSend":"Send","commentDelete":"Delete","commentDeleteConfirm":"Delete this comment?","commentEmpty":"No comments yet","commentEmptySub":"Be the first to comment","commentCount":"{count, plural, =0 {No comments} one {# comment} other {# comments}}","commentDisable":"Disable comments","commentEnable":"Enable comments","commentDisabledNote":"Comments are disabled on this entry.","commentError":"Failed to post comment. Please try again.","detailImagesTitle":"Images","detailImagesSoon":"Image uploads coming soon","imagesSection":"Images","imagesAddPhoto":"Add photo","imagesUploading":"Uploading…","imagesCaptionLabel":"Caption","imagesCaptionPlaceholder":"Add a caption…","imagesPrivacyLabel":"Who can see this?","imagesUploadButton":"Upload","imagesCancelButton":"Cancel","imagesDeleteConfirm":"Delete this photo?","imagesDeleteButton":"Delete","imagesDeletePhoto":"Delete photo","imagesRemoveSelected":"Remove selected photo","imagesViewPhoto":"View photo","imagesEditImage":"Edit image","imagesEmpty":"No photos yet","imagesUploadError":"Couldn't add the photo. Please try again.","imagesDeleteError":"Couldn't delete the photo. Please try again.","imagesUpdateError":"Couldn't save the changes. Please try again.","imagesFileTooLarge":"File must be under 10 MB","imagesFileTypeInvalid":"Only JPEG, PNG, WebP, GIF, or HEIC allowed","imagesEditPhoto":"Edit photo","imagesPreviewAlt":"Preview","imagesSaveButton":"Save","viewCards":"Cards","viewList":"List","viewCompact":"Compact","sortLabel":"Sort","sortGroupDate":"Date","sortGroupTitle":"Title","sortGroupYear":"Year","sortGroupPlatform":"Platform","sortGroupCondition":"Condition","sortGroupRating":"Rating","sortGroupPrice":"Price","sortAddedDesc":"Recently added","sortAddedAsc":"Oldest added","sortTitleAsc":"A → Z","sortTitleDesc":"Z → A","sortYearDesc":"Year (new → old)","sortYearAsc":"Year (old → new)","sortPlatformAsc":"Platform A → Z","sortPlatformDesc":"Platform Z → A","sortConditionDesc":"Condition (best → worst)","sortConditionAsc":"Condition (worst → best)","sortRatingDesc":"Rating (high → low)","sortRatingAsc":"Rating (low → high)","sortPriceDesc":"Price (high → low)","sortPriceAsc":"Price (low → high)","sortGroupPlayStatus":"Play status","sortPlayStatusAsc":"Status (Want → Mastered)","sortPlayStatusDesc":"Status (Mastered → Want)","filterSection":"Filters","filterActive":"{count} active","filterClearAll":"Clear all","filterOnlyTrade":"Open to trade","filterOnlyRated":"Rated only","platformStatsTitle":"Platform collection","platformStatsOwned":"{owned} of {total} games owned","platformStatsWishlist":"{count} on wishlist","platformStatsClosed":"No new releases since {year}","badgeFirstSteps":"First Steps","badgeFirstStepsDesc":"First game on this platform","badgeGettingStarted":"Getting Started","badgeGettingStartedDesc":"Over 5% of the library","badgeCollector":"Collector","badgeCollectorDesc":"Over 10% of the library","badgeDedicated":"Dedicated","badgeDedicatedDesc":"Over 25% of the library","badgeConnoisseur":"Connoisseur","badgeConnoisseurDesc":"Over 50% of the library","badgeMaster":"Master","badgeMasterDesc":"Over 75% of the library","badgeAlmostComplete":"Almost Complete","badgeAlmostCompleteDesc":"Over 90% of the library","badgeCompleteSet":"Complete Set","badgeCompleteSetDesc":"100% of the library","badgeCibHunter":"CIB Hunter","badgeCibHunterDesc":"All copies complete in box","statusSold":"Sold","statusTraded":"Traded","tabCollection":"Collection","tabSoldTraded":"Sold & Traded","breadcrumbGames":"Games","entryLoadFailed":"Couldn't load the entry","entryLoadRetry":"Try again","entryNotFound":"Entry not found","collectionNotFound":"Collection not found","collectionNotFoundSub":"@{username} doesn't exist or has been removed.","collectionLoadFailed":"Couldn't load the collection","collectionLoadRetry":"Try again","sellTitle":"Mark as Sold / Traded","sellEditTitle":"Edit Transaction","sellType":"Type","sellSale":"Sale","sellTrade":"Trade","sellDate":"Date","sellSalePrice":"Sale price","sellCurrency":"Currency","sellWhatDidYouGet":"What did you get?","sellGame":"Game","sellConsole":"Console","sellOther":"Other","sellDescribeWhat":"Describe what you got…","sellCashExchanged":"Cash was also exchanged","sellIPaid":"I paid","sellIReceived":"I received","sellTradedWith":"Traded with","sellSoldTo":"Sold to","sellExternalName":"Or enter name (outside Slaf)","sellNotes":"Notes","sellNotesPlaceholder":"Any additional notes…","sellRevertToOwned":"Revert to Owned","sellSaving":"Saving…","sellSaveChanges":"Save changes","sellMarkAsSold":"Mark as Sold","sellMarkAsTraded":"Mark as Traded","sellSellTrade":"Sell / Trade","sellEditTransaction":"Edit transaction","txTradeDetails":"Trade details","txSaleDetails":"Sale details","txDate":"Date","txSalePrice":"Sale price","txGameReceived":"Game received","txConsoleReceived":"Console received","txReceived":"Received","txIAlsoPaid":"I also paid","txIAlsoReceived":"I also received","txTradedWith":"Traded with","txSoldTo":"Sold to","txNotes":"Notes","searchForGame":"Search for a game…","searchForConsole":"Search for a console…","searching":"Searching…","searchSlafUsers":"Search Slaf users…","soldEmptyTitle":"No sold or traded games yet","soldEmptySub":"Games you sell or trade will appear here","forSaleSection":"For Sale","forSaleAskingPrice":"Asking price","forSaleCurrency":"Currency","forSaleBidding":"Open for bidding","forSaleBiddingEnds":"Bidding ends","forSaleLinks":"External listings","forSaleLinkUrl":"URL","forSaleLinkLabel":"Label (optional)","forSaleAddLink":"Add link","forSaleRemoveLink":"Remove","forSalePrice":"Asking price","forSaleBiddingUntil":"Bidding open until {date}","forSaleExternalLinks":"Also listed on","forSaleNoDetails":"No price set","cancelListing":"Cancel listing","editSale":"Edit sale","editGame":"Edit game","ratingsSection":"Ratings","ratingGame":"Gameplay","playthroughsSection":"Playthroughs","playthroughAdd":"Log playthrough","playthroughEdit":"Edit playthrough","playthroughsEmpty":"No playthroughs logged yet","playthroughCompletedAt":"Completed","playthroughTime":"Play time","playthroughHighscore":"High score","playthroughDeaths":"Deaths","playthroughDifficulty":"Difficulty","playthrough100Percent":"100% / Full clear","playthroughNgPlus":"New Game+","playthroughHours":"h","playthroughMins":"min","playthroughRun":"Run {number}","ratingMedia":"Media","ratingBox":"Box","ratingManual":"Manual","ratingOverall":"Overall","tabGames":"Games","tabWishlist":"Wishlist","tabConsoles":"Consoles","wishlistEmptyOwn":"Your wishlist is empty","wishlistEmptyOwnSub":"Add games you want to a wishlist from any game page","wishlistEmptyOther":"No wishlist games yet","wishlistEmptyOtherSub":"This user hasn't wishlisted any games yet","addConsole":"Add console","consoleConditionMint":"Mint","consoleConditionExcellent":"Excellent","consoleConditionGood":"Good","consoleConditionFair":"Fair","consoleConditionPoor":"Poor","consoleConditionLabel":"Condition","consoleHasBox":"Original box","consoleHasManual":"Manual","consoleHasCables":"Cables","consoleControllerCount":"Controllers","consoleHasOriginalController":"Original controllers","consoleMods":"Modifications","consoleModsPlaceholder":"e.g. RGB mod, HDMI out, region-free","consoleRatingUnit":"Unit","consoleRatingBox":"Box","consoleRatingManual":"Manual","consoleRatingController":"Controller","consoleEmptyOwn":"No consoles in collection yet","consoleEmptyOwnSub":"Start by adding your first console","consoleEmptyOther":"No consoles in collection yet","consoleEmptyOtherSub":"This user hasn't added any consoles yet","consoleAddTitle":"Add console","consoleEditTitle":"Edit console","consoleOwnedCount":"{count} consoles","consoleWishlistCount":"{count} wishlisted","consoleWhatsIncluded":"What's included","consoleSelectFirst":"Search for a console to continue","consoleSearchPlaceholder":"e.g. NES, SNES, PlayStation...","consoleModsSection":"Modifications","consoleModsEmpty":"No modifications added yet","consoleModAdd":"Add modification","consoleModName":"Mod name","consoleModNamePlaceholder":"e.g. RGB mod, HDMI out, region-free BIOS","consoleModPrice":"Cost","consoleModCurrency":"Currency","consoleModInstalledAt":"Installed","consoleModNotes":"Notes","consoleModNotesPlaceholder":"Installer, source, caveats...","consoleModSave":"Save mod","consoleModCancel":"Cancel","consoleModDelete":"Remove","consoleModEdit":"Edit","consoleModPriceNote":"Price is only visible to you","scanTitle":"Scan barcode","scanSubtitle":"Point camera at a game barcode","scanLookingUp":"Looking up barcode…","scanStage0":"Analysing barcode…","scanStage1":"Matching barcode with game…","scanFound":"Game found!","scanNotFound":"No match found","scanNotFoundSub":"We couldn't identify this barcode. Search manually instead.","scanManualSearch":"Search manually","scanAddEntry":"Add to collection","scanSaving":"Saving…","scanCameraError":"Camera unavailable","scanLookupError":"Couldn't look up the barcode","scanPermissionDenied":"Camera access denied. Please allow camera access in your browser settings.","scanFlipCamera":"Flip camera","scanTryAgain":"Scan again","scanNoPlatform":"No platform found — try searching manually.","scanBarcodeLabel":"Detected barcode","scanAddManually":"Add game manually","scanConfirmTitle":"Is this the correct game?","scanConfirmSub":"We found a possible match for this barcode.","scanConfirmYes":"Yes, add to collection","scanConfirmNo":"Wrong game — add manually","scanConfirmRetry":"Scan again","scanSuggestSent":"Thanks! Your suggestion has been recorded.","barcodePageTitle":"Unverified barcodes","barcodePageSub":"Help us link barcodes to the correct games.","barcodeTabUnverified":"No match","barcodeTabSuggestions":"Needs votes","barcodeNoItems":"No barcodes to show right now.","barcodeVote":"Looks correct","barcodeVoted":"You voted","barcodeVoteCount":"{count, plural, =1 {1 vote} other {{count} votes}}","barcodeSuggestGame":"Suggest a game","barcodeSuggestTitle":"Which game is this?","barcodeSuggestSend":"Send suggestion","barcodeSuggestSending":"Sending…","barcodePromoted":"Verified","barcodeScannedAt":"Scanned: {time}","barcodeNoSuggestions":"No suggestions yet — be the first!","addPhotos":"Add photos","addPhotosHint":"Photos will be attached after saving","removePhoto":"Remove photo","photoUploadFailed":"Some photos could not be uploaded","digital":{"tab":"Digital","filterSteam":"Steam","filterPsn":"PSN","filterGog":"GOG","filterBattleNet":"Battle.net","filterXbox":"Xbox Live","filterPlayed":"Played","filterRated":"Rated","sortGroupName":"Name","sortNameAsc":"Name A→Z","sortGroupPlaytime":"Playtime","sortMostPlayed":"Most played","sortLeastPlayed":"Least played","sortGroupRating":"Rating","sortIgdbRating":"IGDB rating","sortOwnRating":"My rating","sortGroupYear":"Release year","sortYearNewest":"Newest first","sortYearOldest":"Oldest first","loadFailed":"Couldn't load the game library"},"steam":{"notConnectedOwn":"Connect your Steam account","notConnectedOwnSub":"Link your Steam account in settings to see your library here.","goToSettings":"Go to Gaming Settings","notConnectedOther":"@{username} hasn't connected a Steam account","privateLibrary":"Library appears to be empty or private","playtimeHours":"{hours}h played","playtimeLessThan1h":"Less than 1h played","playtimeNever":"Never played","playOnSteam":"Play on Steam","gamesCount":"{count, plural, =0 {No games} one {1 game} other {{count} games}}","syncPending":"Syncing your Steam library…","syncPendingSub":"This only takes a moment. Refresh the page in a little while."},"battlenet":{"notConnectedOwn":"Connect your Battle.net account","notConnectedOwnSub":"Link your Battle.net account in settings to show it here.","notConnectedOther":"@{username} hasn't connected a Battle.net account","connectedFallback":"Battle.net Account","noLibrary":"Battle.net game library coming soon.","noGames":"No games detected","noGamesSub":"Games are detected by checking your WoW, Diablo III and StarCraft II profiles. Try reconnecting your account if games are missing.","gamesCount":"{count, plural, =0 {No games detected} one {1 game detected} other {{count} games detected}}"},"playStatus":{"label":"Play status","noStatus":"Set status","remove":"Remove status","WantToPlay":"Want to Play","Active":"Playing","Paused":"Paused","Beaten":"Beaten","Abandoned":"Abandoned","Completed":"Completed","Mastered":"Mastered","loadFailed":"Couldn't load the status","saveFailed":"Couldn't save the status"},"commonGames":{"chip":"In Common","count":"{count, plural, one {# game in common} other {# games in common}}","chipCount":"In Common ({count})"},"spinner":{"title":"What should I play?","subtitle":"Let fate decide your next game","readyPrompt":"{count, plural, one {# game in the pool} other {# games in the pool}}","spinButton":"Spin","spinning":"Spinning…","youShouldPlay":"You should play","viewGame":"View game","playOnSteam":"Play on Steam","spinAgain":"Spin again","notEnoughGames":"Add at least 2 games to use the spinner","openSpinner":"Random pick","soundOn":"Sound on","soundOff":"Sound off"},"regionOther":"Other","addEntryFailed":"Couldn't add the game. Try again.","updateEntryFailed":"Couldn't save your changes. Try again.","deleteEntryFailed":"Couldn't remove the game. Try again.","sellSaveFailed":"Couldn't save the transaction. Try again.","sellRevertFailed":"Couldn't move the game back to Owned. Try again.","cancelListingFailed":"Couldn't end the listing. Try again.","forSaleSaveFailed":"Couldn't save the listing. Try again.","forSaleRemoveLinkLabel":"Remove link","playthroughSaveFailed":"Couldn't save the playthrough. Try again.","playthroughDeleteFailed":"Couldn't delete the playthrough. Try again.","playthroughDelete":"Delete playthrough","playthroughDifficultyCustom":"Custom…","difficultyEasy":"Easy","difficultyNormal":"Normal","difficultyHard":"Hard","difficultyVeryHard":"Very Hard","difficultyNightmare":"Nightmare","consoleSaveFailed":"Couldn't save the console. Try again.","consoleDeleteFailed":"Couldn't remove the console. Try again.","consoleSelectRequired":"Pick a console first","consoleModSaveFailed":"Couldn't save the modification. Try again.","consoleModDeleteFailed":"Couldn't remove the modification. Try again.","controllerFewer":"Fewer controllers","controllerMore":"More controllers","consoleControllersIncluded":"{count, plural, one {# controller} other {# controllers}}","consoleControllersIncludedOriginal":"{count, plural, one {# controller (original)} other {# controllers (original)}}","clearSelection":"Remove selection","clearPlatform":"Clear platform","removeTag":"Remove #{tag}","barcodeLoadFailed":"Couldn't load the barcodes","barcodeSuggestFailed":"Couldn't send the suggestion. Try again.","platformLoadFailed":"Couldn't load the platform","commentLoadFailed":"Couldn't load the comments","commentToggleFailed":"Couldn't change the comment setting. Try again."},"food":{"heroTitle":"Recipes, food photography and kitchen inspiration","heroSub":"Discover home-cooked recipes, restaurant finds, cooking tips and food stories from the community.","browseRecipes":"Browse Recipes","addRecipe":"Add Recipe","statRecipes":"Recipes","statContributors":"Contributors","statRatings":"Ratings","statCuisines":"Cuisines","categoriesTitle":"Browse by Category","categoriesSub":"Find the right recipe by type","popularTitle":"Popular in the community","popularSub":"Most saved and loved recipes","popularComingSoon":"Recipe hub coming soon","popularComingSoonSub":"Once recipes launch, the most popular community recipes will appear here","latestTitle":"Recently Added","latestSub":"Fresh recipes from the community","latestComingSoon":"Recipe feed coming soon","latestComingSoonSub":"Once recipes launch, newly added recipes will appear here","leaderboardTitle":"Top Cooks","leaderboardSub":"Most active recipe contributors this month","leaderboardComingSoon":"Cook leaderboard coming soon","leaderboardComingSoonSub":"Once recipes launch, the top contributors will appear here","comingSoon":"Coming soon","sectionRecipes":"Recipes","sectionRecipesSub":"Browse and discover community recipes","sectionMealPlanner":"Meal Planner","sectionMealPlannerSub":"Plan your weekly meals","sectionRestaurants":"Restaurant Finds","sectionRestaurantsSub":"Community restaurant recommendations","allCategories":"All categories","filterBy":"Filter by","noRecipes":"No recipes found","noRecipesInCategory":"No recipes in this category yet","loadMore":"Load more","loading":"Loading...","createRecipe":"Create Recipe","editRecipe":"Edit Recipe","deleteRecipe":"Delete Recipe","deleteRecipeConfirm":"Are you sure you want to delete this recipe?","recipeTitle":"Title","recipeTitlePlaceholder":"E.g. Swedish Meatballs with Mashed Potatoes","recipeDescription":"Description","recipeDescriptionPlaceholder":"Tell us about the dish, where it comes from and why you love it...","prepTime":"Prep time","cookTime":"Cook time","servings":"Servings","difficulty":"Difficulty","difficultyEasy":"Easy","difficultyMedium":"Medium","difficultyHard":"Hard","minutes":"min","portions":"{count, plural, =1 {serving} other {servings}}","ingredients":"Ingredients","addIngredient":"Add ingredient","removeIngredient":"Remove","ingredientName":"Ingredient","ingredientAmount":"Amount","ingredientUnit":"Unit","ingredientNotes":"Note (e.g. chopped, grated)","noUnit":"—","steps":"Instructions","addStep":"Add step","removeStep":"Remove step","stepNumber":"Step {number}","stepDescription":"Describe the step...","categories":"Categories","selectCategories":"Select categories","coverImage":"Cover image","uploadCoverImage":"Upload cover image","save":"Save","cancel":"Cancel","saving":"Saving...","likes":"{count, plural, =0 {Like} =1 {1 like} other {{count} likes}}","comments":"{count, plural, =0 {Comment} =1 {1 comment} other {{count} comments}}","addComment":"Write a comment...","postComment":"Post","deleteComment":"Delete comment","unitConversion":"Unit conversion","unitSwedish":"Swedish","unitImperial":"Imperial","prepLabel":"Prep","cookLabel":"Cook","totalLabel":"Total","readMore":"Read more","backToFood":"Back to food","by":"by","minutesShort":"min","createRecipePageTitle":"Create a new recipe","createRecipePageSub":"Share your dish with the Slaf community","sectionBasicInfo":"Basic info","sectionDetails":"Time & portions","ratingTitle":"Rate this recipe","ratingYours":"Your rating","ratingAverage":"Average rating","ratingCount":"{count, plural, =1 {1 rating} other {{count} ratings}}","ratingSaved":"Rating saved!","addCommentImage":"Add image","removeCommentImage":"Remove image","verified":"Verified","verifyRecipe":"Mark as verified","unverifyRecipe":"Remove verification","addStepImage":"Add image","removeStepImage":"Remove image","editImage":"Edit image","editRecipePageTitle":"Edit recipe","editRecipePageSub":"Update your recipe","editRecipeSave":"Save changes","editRecipeSaving":"Saving...","verificationWarning":"NOTE: This recipe is verified. If you save your changes or edit an image the verification will be removed and an admin will need to re-verify it.","errorCategoryRequired":"You must select at least one category.","errorTimesRequired":"Enter at least one time (prep or cook time).","errorServingsRequired":"Number of servings is required.","errorIngredientRequired":"Add at least one ingredient.","errorIngredientIncomplete":"Every ingredient must have a name, amount and unit.","errorStepRequired":"Add at least one step.","errorStepEmpty":"All steps must have content.","errorCoverImageUploadFailed":"The cover image could not be uploaded — the recipe was not saved. Try again or pick a different image.","errorStepImageUploadFailed":"The image for step {step} could not be uploaded — the recipe was not saved. Try again or pick a different image.","errorImageTooLarge":"That image is larger than {limitMb} MB. Pick a smaller one.","errorImageUnsupportedType":"That file type isn't supported. Use JPG, PNG, WebP, GIF or HEIC.","errorSaveFailed":"Something went wrong. Please try again.","addIngredientGroup":"Add ingredient group","removeGroup":"Remove group","groupTitlePlaceholder":"E.g. For the sauce, For the dough...","groupTitleLabel":"Name of group {number}","ungroupedIngredients":"Ingredients (no group)","errorGroupTitleRequired":"Every ingredient group must have a name.","quickAddTitle":"Quick add","ingredientNotesPlaceholder":"e.g. chopped","uploadClickLabel":"Click to upload","uploadFormats":"JPG, PNG, WebP, GIF or HEIC up to {limitMb} MB","changeCover":"Change image","removeCover":"Remove image","checklistTitle":"Checklist","checklistItemTitle":"Title","checklistItemCategories":"Categories","checklistItemTimes":"Times","checklistItemServings":"Servings","checklistItemIngredients":"Ingredients","checklistItemInstructions":"Instructions","checklistItemCover":"Cover image","previewTitle":"Preview","noTitleYet":"No title yet","previewIngredients":"{count, plural, one {# ingredient} other {# ingredients}}","previewSteps":"{count, plural, one {# step} other {# steps}}","recipeLanguage":"Recipe language","recipeLanguageSv":"Swedish","recipeLanguageEn":"English","recipePrivate":"Private recipe","recipePublic":"Public recipe","saveToBook":"Save to cookbook","savedToBook":"Saved to cookbook","cookbookTitle":"Cookbook","cookbookTabAll":"All","cookbookTabAuthored":"Own recipes","cookbookTabSaved":"Saved","cookbookStatRecipes":"{count, plural, one {recipe} other {recipes}}","cookbookStatSaved":"saved","cookbookStatAvgRating":"Avg rating","cookbookStatLikes":"{count, plural, one {like} other {likes}}","cookbookEmpty":"No recipes here yet","cookbookEmptySub":"Create your first recipe or save others.","cookbookMyCookbook":"My cookbook","sharedCookbooks":"Shared cookbooks","sharedCookbookNew":"New cookbook","sharedCookbookCreate":"Create cookbook","sharedCookbookNameLabel":"Name","sharedCookbookNamePlaceholder":"E.g. Friday dinners","sharedCookbookDescLabel":"Description (optional)","sharedCookbookPublic":"Public","sharedCookbookPrivate":"Private","sharedCookbookMembers":"Members","sharedCookbookAddMember":"Invite user","sharedCookbookUsernamePlaceholder":"Username","sharedCookbookInvite":"Invite","sharedCookbookLeave":"Leave","sharedCookbookDelete":"Delete cookbook","sharedCookbookDeleteConfirm":"Are you sure? This cannot be undone.","sharedCookbookEmpty":"No recipes yet","sharedCookbookEmptySub":"Add recipes from the feed.","sharedCookbookOwner":"Owner","sharedCookbookEditor":"Editor","sharedCookbookRemoveMember":"Remove member","addToCookbook":"Add to cookbook","addToCookbookTitle":"Choose cookbooks","addToCookbookSub":"Select which cookbooks to add this recipe to.","addToCookbookPersonal":"My personal cookbook","addToCookbookDone":"Done","addToCookbookNone":"You are not a member of any cookbook yet.","sharedCookbookManageBtn":"Manage","sharedCookbookManageTitle":"Manage cookbook","sharedCookbookSaveChanges":"Save changes","sharedCookbookNone":"No shared cookbooks yet.","sharedCookbookRecipeCount":"{count, plural, one {# recipe} other {# recipes}}","sharedCookbookMembersCount":"{count, plural, one {# member} other {# members}}","sharedCookbookPendingTitle":"Pending invites","sharedCookbookPendingStatus":"Invited","sharedCookbookCancelInvite":"Withdraw invite","sharedCookbookCancelInviteError":"Could not withdraw the invite","sharedCookbookInviteNotFound":"User not found","sharedCookbookInviteAlready":"That user is already a member or has been invited","sharedCookbookInviteSelf":"You already own this cookbook","sharedCookbookInviteError":"Could not send the invite","cookbookInvitesTitle":"Invites for you","cookbookInviteDesc":"{username} invited you to edit {name}.","cookbookInviteAccept":"Join","cookbookInviteDecline":"Decline","cookbookInviteGone":"This invite is no longer valid","cookbookInviteAnswerError":"Could not answer the invite","cookbookUnsave":"Remove from saved","unitSystem":"Unit system","unitSystemMetric":"Metric (ml, dl, g…)","unitSystemImperial":"Imperial (cup, oz, lb…)","tipsTitle":"Tips","tip0":"A clear, descriptive title draws more people to try the recipe.","tip1":"Choose 1–3 categories — it gives the best visibility in the feed.","tip2":"Specify amounts in your chosen unit system. Readers can convert themselves.","tip3":"Shorter steps (1–3 sentences) are easiest to follow at the stove.","tip4":"An appetizing cover photo greatly increases the chance the recipe gets noticed.","recipeLanguageAll":"All languages","feedLanguageLabel":"Language","householdTitle":"Household settings","householdMembers":"Members","householdOwner":"Owner","householdMember":"Member","householdSoloDesc":"You are the only member of your household. Invite someone to share the meal planner.","householdInviteLabel":"Invite by username","householdInvitePlaceholder":"Username","householdInviteBtn":"Invite","householdInviting":"Inviting...","householdRemove":"Remove","householdLeave":"Leave household","householdLeaveConfirm":"Are you sure you want to leave the household?","householdLeaving":"Leaving...","householdErrorNotFound":"User not found","householdErrorAlreadyMember":"User already belongs to a household","householdErrorSelf":"You cannot invite yourself","householdLoadError":"Failed to load household","householdErrorAlreadyInvited":"That user is already a member or has been invited","householdInviteError":"Could not send the invite","householdPendingTitle":"Pending invites","householdPendingStatus":"Invited","householdCancelInvite":"Withdraw invite","householdCancelInviteError":"Could not withdraw the invite","householdIncomingTitle":"Invites for you","householdIncomingDesc":"{username} invited you to their household.","householdAccept":"Join","householdDecline":"Decline","householdDiscardConfirm":"You have {count, plural, one {# planned week} other {# planned weeks}} in your own plan. It is deleted if you join.","householdDiscardConfirmBtn":"Join and delete my plan","householdInviteGone":"This invite is no longer valid","householdAcceptMemberElsewhere":"Leave your current household before joining another","householdAcceptOwnerWithMembers":"Remove the members of your household before joining another","householdAnswerError":"Could not answer the invite","plannerTitle":"Meal Planner","plannerWeek":"Week {week}, {year}","plannerPrevWeek":"Previous week","plannerNextWeek":"Next week","plannerHistoryBadge":"History","plannerHouseholdBtn":"Household","plannerTabPlan":"Meal Plan","plannerTabFavorites":"Household Favorites","plannerTabShopping":"Shopping List","plannerDayMon":"Mon","plannerDayTue":"Tue","plannerDayWed":"Wed","plannerDayThu":"Thu","plannerDayFri":"Fri","plannerDaySat":"Sat","plannerDaySun":"Sun","plannerMealFrukost":"Breakfast","plannerMealLunch":"Lunch","plannerMealMiddag":"Dinner","plannerMealMellanmal":"Snack","plannerAddRecipe":"Add","plannerRemoveEntry":"Remove","plannerServings":"{count, plural, =1 {1 serving} other {{count} servings}}","plannerEmptyWeek":"No recipes planned yet","plannerToday":"Today","plannerGoToThisWeek":"This week","plannerCopyLastWeek":"Copy last week","plannerCopying":"Copying...","plannerCopyNoEntries":"Last week has no planned recipes","plannerCopyError":"Failed to load previous week's plan","plannerLoadError":"Failed to load the meal plan","plannerMealsCount":"{count, plural, =1 {1 meal} other {# meals}}","plannerEditServings":"Edit servings","plannerSaveServings":"Save","plannerServingsDecrease":"Decrease servings","plannerServingsIncrease":"Increase servings","servingsScaleHint":"When you change the number of servings, cooking times and proportions may need adjusting.","dragToReorder":"Drag to reorder","cookingClearChecks":"Clear checks","madeThat":"I made this","madeThatCooked":"Cooked!","madeThatCount":"{count, plural, =1 {1 person made this} other {{count} people made this}}","cloneRecipe":"Clone recipe","cloneRecipeCloning":"Cloning...","cloneRecipeDesc":"Create your own editable copy of this recipe","sourceRecipeLabel":"Based on","cookbookTabCooked":"Cooked","cookedHistoryTitle":"Cooked","deleteCookedEntry":"Remove cook entry","shoppingCategoryMeat":"Meat & Fish","shoppingCategoryDairy":"Dairy & Eggs","shoppingCategoryProduce":"Fruit & Vegetables","shoppingCategoryBread":"Bread & Pasta","shoppingCategoryPantry":"Pantry","shoppingCategoryOther":"Other","pickerTitle":"Choose a recipe","pickerSourceOwn":"My recipes","pickerSourceVerified":"Verified","pickerSourcePublic":"All public","pickerSearch":"Search recipes...","pickerSearchLabel":"Search recipes","pickerNoResults":"No recipes found","pickerLoadMore":"Load more","shoppingListEmpty":"No ingredients to show. Add recipes with ingredients to your meal plan.","shoppingListLoading":"Loading shopping list...","shoppingListError":"Failed to load shopping list","shoppingListUncheckAll":"Uncheck all","shoppingListCopy":"Copy list","shoppingListCopied":"Copied!","voteNej":"No","voteKanske":"Maybe","voteJa":"Yes","favoritesLoading":"Loading favorites...","favoritesError":"Failed to load favorites","favoritesEmpty":"No favorites yet. Vote on recipes in the meal plan to see them here.","favoritesVotes":"{count, plural, =1 {1 vote} other {{count} votes}}","spinnerTitle":"What should we eat?","spinnerSourceOwn":"Mine","spinnerSourceVerified":"Verified","spinnerSourcePublic":"All","spinnerLoading":"Loading recipes...","spinnerError":"Failed to load recipes","spinnerNotEnough":"Not enough recipes. Try a different source.","spinnerReady":"{count, plural, =1 {1 recipe} other {{count} recipes}} ready","spinnerSpin":"Spin!","spinnerSpinning":"Choosing...","spinnerSpinAgain":"Spin again","spinnerViewRecipe":"View recipe","spinnerYouShouldMake":"Make this!","spinnerAddToPlan":"Add to plan","spinnerAdded":"Added!","spinnerAddError":"Failed to add to plan","soundOff":"Mute","soundOn":"Unmute","plannerDay":"Day","plannerMeal":"Meal type","stepTimerLabel":"Timer","stepTimerFor":"Timer for step {number} (min)","timerStart":"Start timer","timerPause":"Pause timer","timerReset":"Reset timer","timerDismiss":"Dismiss","timerDecrease":"Decrease time by 30 s","timerIncrease":"Increase time by 30 s","timerSoundBlocked":"Sound blocked by browser","keepAwake":"Keep screen on","moveToGroup":"Move to","moveToNoGroup":"No group","groupNumberFallback":"Group {number}","loginToRate":"Log in to rate","errorCommentImageUploadFailed":"The image could not be uploaded — your comment was not posted. Try again.","unit":{"ml":"ml","cl":"cl","dl":"dl","l":"l","tsp":"tsp","tbsp":"tbsp","pinch":"{count, plural, one {pinch} other {pinches}}","g":"g","kg":"kg","piece":"{count, plural, one {pc} other {pcs}}","toTaste":"to taste","cup":"{count, plural, one {cup} other {cups}}","flOz":"fl oz","oz":"oz","lb":"{count, plural, one {lb} other {lbs}}"},"hubBadge":"Food Hub","cookbookStatCooked":"cooked","cookbookLoadError":"Could not load the cookbook","cookbookNotFound":"This cookbook doesn't exist.","sharedCookbookNotFound":"This cookbook doesn't exist, or it isn't shared with you.","cookbooksLoadError":"Could not load your cookbooks","sharedCookbookCreateError":"Could not create the cookbook","sharedCookbookSaveError":"Could not save the cookbook","sharedCookbookDeleteError":"Could not delete the cookbook","sharedCookbookLeaveError":"Could not leave the cookbook","removeMemberError":"Could not remove the member","removeFromCookbook":"Remove from cookbook","plannerDeleteError":"Could not remove the meal","plannerCopyAddError":"Some meals could not be copied","plannerHistoryError":"Could not load past weeks","householdLeaveError":"Could not leave the household","recipesLoadError":"Could not load the recipes","recipeLoadError":"Could not load the recipe","recipeNotFound":"This recipe doesn't exist, or it isn't shared with you.","categoriesLoadError":"Could not load the categories. Reload the page.","commentsLoadError":"Could not load the comments","commentPostError":"Could not post the comment","ratingLabel":"Rating: {value} out of 10"},"drinks":{"heroTitle":"Cocktails, beer, wine and the home bar guide","heroSub":"Explore drink recipes, tasting notes, bar finds and mixology tips from the community.","browseRecipes":"Browse Drinks","addRecipe":"Add Drink","statRecipes":"Recipes","statMixologists":"Mixologists","statReviews":"Reviews","statIngredients":"Ingredients","categoriesTitle":"Browse by Type","categoriesSub":"Find your kind of drink","popularTitle":"Popular in the community","popularSub":"Most saved and loved drinks","popularComingSoon":"Drinks hub coming soon","popularComingSoonSub":"Once drinks launch, the most popular community drinks will appear here","cocktailOfWeekTitle":"Cocktail of the Week","cocktailOfWeekSub":"Community pick — curated weekly","cocktailOfWeekComingSoon":"Weekly pick coming soon","cocktailOfWeekComingSoonSub":"Once the drinks section launches, a community-voted cocktail will be featured here every week","leaderboardTitle":"Top Mixologists","leaderboardSub":"Most active drink contributors this month","leaderboardComingSoon":"Mixologist leaderboard coming soon","leaderboardComingSoonSub":"Once drinks launch, the top contributors will appear here","comingSoon":"Coming soon","sectionCocktails":"Cocktails","sectionCocktailsSub":"Classic and original cocktail recipes","sectionBeer":"Beer & Brewing","sectionBeerSub":"Craft beer reviews and home brewing tips","sectionWine":"Wine & Spirits","sectionWineSub":"Wine reviews and spirits tasting notes","hubBadge":"Drinks Hub","category":{"cocktails":"Cocktails","mocktails":"Mocktails","beer":"Beer & Cider","wine":"Wine","spirits":"Whisky & Spirits","coffee":"Coffee & Espresso","smoothies":"Smoothies","tea":"Tea & Matcha"}},"servers":{"pageTitle":"Game Servers","officialTitle":"Official Servers","officialBadge":"Official","communityTitle":"Community Servers","online":"Online","offline":"Offline","players":"{current} / {max} players","playersUnknown":"— / — players","connect":"Connect","copyAddress":"Copy address","copied":"Copied!","lastChecked":"Checked {time}","neverChecked":"Not yet checked","noServers":"No official servers right now","noCommunityServers":"No community servers yet","noCommunityServersSub":"Be the first to share your server!","hostedBy":"by {username}","addServer":"+ Add your server","editServer":"Edit","removeServer":"Remove","modalAddTitle":"Add Your Server","modalEditTitle":"Edit Server","fieldName":"Server name","fieldNamePlaceholder":"My Awesome Server","fieldGame":"Game","fieldGameRequired":"You must select a game","fieldNameRequired":"Server name is required","fieldAddress":"Connect address","fieldAddressRequired":"Connect address is required","fieldAddressPlaceholder":"example.com:27015","fieldConnectUrl":"Connect URL (optional)","fieldConnectUrlPlaceholder":"steam://connect/...","fieldDescription":"Description (optional)","fieldDescriptionPlaceholder":"Describe your server...","save":"Save","cancel":"Cancel","saving":"Saving...","startGame":"Start Game","clearGame":"Clear selected game","saveFailed":"Couldn't save the server. Please try again.","saveFailedGameNotFound":"That game isn't in Slaf's game catalogue. Pick another one.","saveFailedServerGone":"This server has been removed, so there's nothing to save.","removeConfirm":"Remove \"{name}\"?","removeFailed":"Couldn't remove the server. Please try again."},"about":{"headline":"Slaf is a social network created by a slaf –","headlineAccent":"for other slafs.","origin1":"It started with a simple feeling:","origin2":"that the internet has become too rigid, too polished and sometimes just plain boring. Everything needs to be optimised. Everything needs to be content. Everything needs to look perfect.","punchlinePrefix":"We thought: ","punchlineSuffix":"screw that.","listIntro":"Slaf exists to make room for what actually makes the internet fun:","items":["chat","community","humour","photos","everyday life","games","people who just want to hang out without playing a role"],"body1":"You don't need to be perfect here, build a brand or chase likes as if your life depended on it.","body2":"You should be able to log in, be yourself, share something fun, write something dumb, find people and feel like the internet is alive again.","closing":"Built by a slaf. For a slaf!","tagline":"Because life — and the internet — should be more fun.","backLink":"Back to login"},"privacy":{"pageTitle":"Privacy Policy for Slaf","shortTitle":"Short version first:","shortBody":"We collect as little as possible, we sell nothing, and we try not to be creepy.","whatSection":"What's the deal?","whatBody1":"Slaf is built by a slaf – for other slafs. That applies to how we treat your data too.","whatBody2":"We don't think a social network should feel like someone's standing behind you analysing everything you do. You should be able to hang out here without feeling watched.","collectSection":"What data we collect","collectIntro":"We only store what's needed for the service to work:","collectItems":["your email address (to log in)","what you choose to post yourself (posts, comments, images)","technical info needed for operation (e.g. IP address on login, logs)"],"collectOutro":"Nothing weird. Nothing hidden.","notSection":"What we DON'T do","notIntro":"We:","notItems":["don't sell your data","don't share your data with third parties for marketing purposes","don't build profiles to manipulate you","don't try to \"optimise your behaviour\""],"notOutro":"In short: we're not trying to be that kind of network.","useSection":"How we use your data","useIntro":"What we collect is used to:","useItems":["let you log in and use Slaf","show your content to others (if you share it)","keep the site secure and functioning"],"useOutro":"Nothing more than that.","imagesSection":"The images on the login page","imagesBody1":"The login page shows images of real Slaf users. That's not random — they have actively chosen to appear there.","imagesBody2":"We show no one without permission. Full stop.","requestSection":"If you ask for an invitation","requestIntro":"If you don't have an account, you can ask for an invitation on the start page. We then store:","requestItems":["your email address","the name or nickname you give","your message, if you write one"],"requestBody1":"Nothing else, not even your IP address. Only Slaf's administrators see the request, and we use it only to answer you (a step you asked for yourself before becoming a member, GDPR Art. 6(1)(b)). If we say yes, you get an invitation code by email, and the address is stored together with the code until you create an account with it, for at most 90 days. The code keeps working after that. If we say no, we don't get in touch.","requestBody2":"A request nobody has answered is deleted after 90 days, and an answered one 30 days after the answer. If you create an account with the code, the request is deleted at once. If we email you a code without you asking, the address is stored the same way, for at most 90 days. Want us to delete any of it sooner? Get in touch and we will.","cookiesSection":"Cookies and tracking","cookiesIntro":"We only use what's needed to:","cookiesItems":["keep you logged in","make the site work"],"cookiesOutro1":"No aggressive tracking.","cookiesOutro2":"No third-party trackers following you around the internet.","retentionSection":"How long we keep data","retentionItems":["Your account stays until you delete it","Logs are kept as long as needed for security and operation"],"retentionConsent":"One more thing: when you accept the terms we store which version you accepted, when it happened and your IP address. That's our receipt that the acceptance actually took place (legitimate interest under GDPR Art. 6(1)(f)). The receipt is kept for seven years and then pruned automatically.","retentionOutro":"Want to leave? That should be easy.","rightsSection":"Your rights","rightsIntro":"You always have the right to:","rightsItems":["know what data we have about you","have it changed","have it deleted"],"rightsOutro":"Contact us and we'll sort it out. No complicated processes.","securitySection":"Security","securityBody1":"We do our best to protect your data.","securityBody2":"No system is perfect, but we treat your information with respect.","changesSection":"Changes","changesBody1":"If we change anything here, we'll let you know.","changesBody2":"No sneaky changes.","contactSection":"Contact","contactBody1":"Have questions or thoughts?","contactBody2":"Reach out. For real.","closingSection":"Last but not least","closingBody1":"Slaf exists to make being online fun.","closingBody2":"That applies to how your data is handled too.","closingBody3":"We intend to keep it simple, honest and respectful.","backLink":"Back to login"},"terms":{"pageTitle":"Terms for Slaf","shortTitle":"Short version:","shortBody":"Be decent, use your head, and don't ruin it for others.","whatSection":"What is Slaf?","whatBody1":"Slaf is a social network built by a slaf – for other slafs. It's a place for chat, community and having fun online.","whatBody2":"But for it to work for everyone we need a few simple rules.","useSection":"Using Slaf","useIntro":"By using Slaf you agree to:","useDoNotItems":["not break any laws","not harass, threaten or harm others","not spread junk, spam or harmful content","not attempt to technically sabotage the service"],"useCanTitle":"You are free to:","useCanItems":["be yourself","have a sense of humour","say what you think (as long as you're not being an arsehat to others)"],"contentSection":"Your content","contentBody1":"What you post on Slaf is yours.","contentIntro":"But by posting you give us the right to:","contentItems":["display it within the service","store it for as long as your account exists"],"contentOutro":"You are responsible for what you post.","accountsSection":"Accounts","accountsBody":"You are responsible for your account.","accountsIntro":"That means:","accountsItems":["keep your credentials safe","don't share your account with others","contact us if something feels wrong"],"accountsOutro":"We may suspend accounts that break the rules.","moderationSection":"What we can do","moderationIntro":"We try to keep Slaf open and fun, but we may:","moderationItems":["remove content that breaks the rules","suspend or delete accounts","restrict features if necessary"],"moderationOutro":"Not to be difficult — but to protect the community.","availabilitySection":"Availability","availabilityIntro":"We do our best to keep Slaf running, but:","availabilityItems":["we can't promise it's always up","things can break","features may change"],"availabilityOutro":"It's a living service.","liabilitySection":"Liability","liabilityBody":"You use Slaf at your own risk.","liabilityIntro":"We are not responsible for:","liabilityItems":["what other users post","any issues that may arise"],"liabilityOutro":"But we always try to resolve things in a reasonable way.","changesSection":"Changes","changesBody1":"We may update these terms when needed.","changesBody2":"If it's something important we'll let you know.","deleteSection":"Deleting your account","deleteBody1":"If you want to leave Slaf it should be easy.","deleteBody2":"Delete your account and what you've posted will be removed (with certain technical exceptions like backups/logs).","contactSection":"Contact","contactBody1":"Have questions or issues?","contactBody2":"Reach out. We respond like humans, not robots.","closingSection":"Final words","closingBody":"Slaf exists to make the internet feel a little more alive again.","closingIntro":"So:","closingItems":["be decent","have fun","and don't ruin it for others"],"closingOutro":"That's pretty much it.","backLink":"Back to login","versionLabel":"Version {version}"},"cookies":{"pageTitle":"Cookies on Slaf","shortTitle":"Short version:","shortBody":"We only use what's required for you to log in. No tracking cookies. No ad cookies. Nothing creepy.","whatSection":"What are cookies?","whatBody":"Cookies are small text files stored in your browser when you visit a site. They can be used for everything from keeping you logged in to tracking you across the entire internet. We only do the first one.","ourCookiesSection":"Cookies we use","ourCookiesIntro":"Slaf only uses necessary cookies for the service to function:","ourCookiesItems":["auth-token — your login session (httpOnly, secure, disappears when you log out)","user-info — your profile data in the browser (used to show your name and picture without asking the server every time)"],"ourCookiesOutro":"Both are necessary for Slaf to work. Without them you can't log in.","notSection":"Cookies we DON'T use","notItems":["tracking cookies","advertising cookies","third-party analytics tools (Google Analytics and similar)","social plug-ins from Facebook, Twitter or similar","fingerprinting or other hidden tracking techniques"],"notOutro":"What we don't have, we can't leak.","gdprSection":"GDPR and ePrivacy","gdprBody1":"Under the EU ePrivacy Directive and GDPR, strictly necessary cookies do not require consent — they are technically required for the service to function.","gdprBody2":"Since we only use necessary cookies, no cookie banner is shown. That's not a loophole — that's how the rules actually work when you don't track people.","gdprBody3":"We process all data in accordance with GDPR. More about that is in our privacy policy.","controlSection":"Your rights and control","controlIntro":"You always have the right to:","controlItems":["see which cookies exist via your browser settings","delete cookies at any time — you will then be logged out of Slaf","block cookies in your browser — Slaf does require the necessary ones to function"],"controlOutro":"Want to delete everything? Delete your account and all cookies go with it.","storageSection":"Storage and expiry","storageItems":["auth-token: valid for 30 days, or until you log out","user-info: valid for 30 days, updated on login"],"changesSection":"Changes","changesBody1":"If we start using more cookies — which we don't plan to — we'll update this page and let you know.","changesBody2":"No hidden changes.","contactSection":"Questions?","contactBody1":"If you have questions about how we handle cookies or your data, get in touch.","contactBody2":"We respond for real.","closingSection":"Summary","closingBody":"We use cookies to keep you logged in. Not to take you apart and sell the pieces. That's pretty much the whole policy.","privacyLink":"Read our privacy policy","backLink":"Back to login"},"suggestions":{"pageTitle":"Slafgestions","pageSubtitle":"Suggest new features and vote on others' ideas.","createButton":"Suggest something","tabAll":"All suggestions","tabMine":"My suggestions","tabDone":"Completed","tabTrash":"Trash","emptyAll":"No suggestions yet","emptyAllSub":"Be the first to suggest a new feature!","emptyMine":"You haven't submitted any suggestions yet","emptyDone":"No completed suggestions yet","emptyTrash":"Trash is empty","privateBadge":"Private","mergedBadge":"Merged","hiddenBadge":"Hidden","mergedInto":"Merged into: {title}","viewTarget":"View","votes":"{count, plural, =0 {0 votes} one {# vote} other {# votes}}","comments":"{count, plural, =0 {0 comments} one {# comment} other {# comments}}","loadMore":"Load more","createModal":{"title":"Suggest a new feature","titleLabel":"Title","titlePlaceholder":"Give your suggestion a clear title","descriptionLabel":"Description","descriptionPlaceholder":"Describe your idea in more detail...","imageLabel":"Image (optional)","addImage":"Add image","removeImage":"Remove image","privateLabel":"Send privately to admins","privateHelp":"Private suggestions are only visible to you and admins.","submit":"Submit suggestion","submitting":"Submitting...","cancel":"Cancel","discardTitle":"Leave without saving?","discardBody":"You've started filling in a suggestion. If you close now, what you've written will be lost.","discardKeep":"Keep editing","discardConfirm":"Close anyway","uploadFailed":"The image could not be uploaded. Try again.","submitFailed":"Your suggestion couldn't be sent. Please try again."},"detail":{"backLink":"Back to suggestion box","notFound":"Suggestion not found","commentsTitle":"Comments","privateThread":"This comment thread is private.","commentPlaceholder":"Write a comment...","sendComment":"Send","noComments":"No comments yet. Be the first!","deleteComment":"Delete","close":"Close","storyTitle":"Developer log","storySubtitle":"Thoughts, obstacles and solutions from the team.","storyEmpty":"No updates yet.","storyAddPlaceholder":"Describe an obstacle, solution, or thought...","storyAdd":"Add","storyTypeObstacle":"Obstacle","storyTypeSolution":"Solution","storyTypeThought":"Thought","storyDelete":"Delete","testRoundsTitle":"Test rounds","testRound1":"Test round 1","testRound2":"Second attempt","testRound3":"Third time's a charm","testRound4Plus":"Impossible","testRoundActive":"Active","testRoundClosed":"Closed","testRoundApproved":"{count, plural, =0 {0 approved} one {# approved} other {# approved}}","testRoundRejected":"{count, plural, =0 {0 rejected} one {# rejected} other {# rejected}}","roadmapBanner":"On the roadmap","authorEdit":"Edit suggestion","authorDelete":"Delete suggestion","authorSave":"Save","authorSaving":"Saving...","loadFailed":"The suggestion couldn't be loaded. Please try again.","authorMenuLabel":"Manage your suggestion","commentFailed":"Your comment couldn't be sent. Please try again.","storyAddFailed":"The update couldn't be added. Please try again.","storyDeleteFailed":"The update couldn't be deleted. Please try again.","authorSaveFailed":"Your changes couldn't be saved. Please try again.","authorDeleteFailed":"The suggestion couldn't be deleted. Please try again."},"admin":{"promote":"Move to roadmap","promoteModalTitle":"Add feature tag","promoteModalDesc":"Choose a category and type to make the roadmap easier to filter.","categoryLabel":"Category","categoryNone":"No category","categoryGeneral":"General","categoryFood":"Food","categoryGames":"Games","categoryDrinks":"Drinks","categorySocial":"Social","categoryForum":"Forum","itemTypeLabel":"Type","itemTypeNone":"No type","itemTypeBug":"Bug","itemTypeImprovement":"Improvement","itemTypeNewFeature":"New feature","promoteConfirm":"Move to roadmap","promoteCancel":"Cancel","trash":"Move to trash","restore":"Restore","hide":"Hide (rule violation)","unhide":"Show again","merge":"Merge with…","mergeModalTitle":"Merge suggestion","mergeModalDesc":"Votes from this suggestion will be transferred to the selected one. Commenting will be disabled.","mergeSelectPlaceholder":"Choose a suggestion to merge into…","mergeConfirm":"Merge","mergeCancel":"Cancel","promoting":"Moving…","trashing":"Trashing…","restoring":"Restoring…","hiding":"Hiding…","merging":"Merging…","menuLabel":"Admin actions","actionFailed":"That didn't go through. Please try again.","mergeOptionsFailed":"The suggestions to merge with couldn't be loaded. Please try again."},"loadFailed":"The suggestions couldn't be loaded. Please try again.","retry":"Try again","voteFailed":"Your vote couldn't be saved. Please try again."},"roadmap":{"pageTitle":"Roadmap","pageSubtitle":"See what we're working on and vote for what comes next.","suggestionCallout":"Have an idea? Head to the suggestion box and add it","colGrubblar":"Considering","colGrubblarSub":"Ideas we're thinking about","colPlanned":"Planned","colPlannedSub":"Decided — not yet started","colInProgress":"In Progress","colInProgressSub":"Actively being worked on","colDone":"Done","colDoneSub":"Shipped","votes":"{count, plural, =0 {0 votes} one {# vote} other {# votes}}","fromSuggestion":"From suggestion box","addItem":"Add","emptyCol":"No cards here yet","categoryLabel":"Category","categoryNone":"No category","itemTypeLabel":"Type","itemTypeNone":"No type","categoryGeneral":"General","categoryFood":"Food","categoryGames":"Games","categoryDrinks":"Drinks","categorySocial":"Social","categoryForum":"Forum","itemTypeBug":"Bug","itemTypeImprovement":"Improvement","itemTypeNewFeature":"New feature","createModal":{"title":"New roadmap card","titleLabel":"Title","titlePlaceholder":"What is this about?","descriptionLabel":"Description","descriptionPlaceholder":"Describe what will be built...","statusLabel":"Column","imageLabel":"Image (optional)","addImage":"Add image","removeImage":"Remove image","submit":"Create","submitting":"Creating...","cancel":"Cancel"},"editModal":{"title":"Edit card","submit":"Save","submitting":"Saving...","cancel":"Cancel"},"colTest":"Testing","colTestSub":"Out to testers — vote if it's ready","testVoteApprove":"It works","testVoteReject":"Needs fixing","testVoteApproved":"Your vote: works","testVoteRejected":"Your vote: needs fixing","admin":{"edit":"Edit","delete":"Delete","deleteConfirm":"Delete this card?","moveTo":"Move to","colGrubblar":"Considering","colPlanned":"Planned","colInProgress":"In Progress","colTest":"Testing","colDone":"Done","cardActions":"Card actions","moveFailed":"The card couldn't be moved. Please try again.","deleteFailed":"The card couldn't be deleted. Please try again."},"uploadFailed":"The image could not be uploaded. Try again.","loadFailed":"The roadmap couldn't be loaded. Please try again.","retry":"Try again","voteFailed":"Your vote couldn't be saved. Please try again.","saveFailed":"The card couldn't be saved. Please try again."},"brew":{"equipment":{"title":"Brewing equipment","subtitle":"Manage your equipment profiles. The default profile is used as starting values when you create new recipes.","addNew":"Add profile","empty":"You don't have any equipment profiles yet. Add one to get started — the first profile you create automatically becomes your default.","default":"Default","setDefault":"Set as default","edit":"Edit","delete":"Delete","confirmDelete":"Delete \"{name}\"? Recipes referencing this profile keep their saved values but lose the equipment reference.","loadFailed":"Could not load your profiles.","deleteFailed":"Could not delete the profile.","setDefaultFailed":"Could not set default.","summary":{"batchLabel":"Batch","boilLabel":"Boil","mashEffLabel":"Mash","bhEffLabel":"Brewhouse"},"form":{"createTitle":"New equipment profile","editTitle":"Edit \"{name}\"","create":"Create profile","update":"Save changes","cancel":"Cancel","saving":"Saving…","setAsDefault":"Set as default profile","saveFailed":"Could not save the profile.","sections":{"basics":"Basics","volumes":"Volumes","efficiency":"Efficiency","losses":"Losses and absorption"},"fields":{"name":"Name","namePlaceholder":"E.g. \"My BIAB\" or \"3-vessel system\"","batchSize":"Batch size","batchSizeUnit":"litres of finished beer","boilSize":"Boil size","boilSizeUnit":"litres pre-boil","mashTunVolume":"Mash tun volume","mashTunVolumeOptional":"Optional — does not affect v1 calculations","boilEvap":"Evaporation rate","boilEvapUnit":"litres per hour during boil","mashTunDeadSpace":"Mash tun dead space","mashTunDeadSpaceOptional":"Litres left behind in the mash tun","lauterDeadSpace":"Lauter tun dead space","lauterDeadSpaceOptional":"Litres left behind in the lauter tun","mashEfficiency":"Mash efficiency","mashEfficiencyHelp":"Proportion of mash sugars that end up in the runnings (typ. 70–80%)","brewhouseEfficiency":"Brewhouse efficiency","brewhouseEfficiencyHelp":"Overall efficiency from grain to boiled wort (typ. 65–75%)","grainAbsorption":"Grain absorption","grainAbsorptionUnit":"litres per kg of grain (typically 0.8–1.2)"},"errors":{"nameRequired":"Name is required","batchSizeInvalid":"Batch size must be greater than 0","boilSizeInvalid":"Boil size must be greater than 0","efficiencyRange":"Efficiency must be between 0 and 100"}}},"styleGroups":{"0":"Lager","1":"Pale Ale","2":"IPA","3":"Stout & Porter","4":"Wheat & Belgian","5":"Sour & Wild","6":"Strong & Historic","7":"Specialty"},"recipeForm":{"rowCount":"{count}","createTitle":"Create new brewing recipe","editTitle":"Edit \"{name}\"","submitCreate":"Create recipe","submitUpdate":"Save changes","saving":"Saving…","cancel":"Cancel","sectionsComingSoon":"Edit-mode hydration lands in 5c-iv-γ-2.","submit":{"canSubmitHint":"Fill in title, batch size, at least one fermentable and at least one yeast before creating the recipe."},"feedback":{"successCreate":"Recipe created!","successUpdate":"Recipe updated!","errorBannerTitle":"Could not save the recipe.","generalErrorTitle":"Other errors","unknownError":"Unknown error — please try again shortly.","sectionErrorHint":"Something in this section isn't right. Check the values and try again.","fermentablesErrors":"Fermentables — errors","hopsErrors":"Hops — errors","yeastsErrors":"Yeasts — errors","mashStepsErrors":"Mash steps — errors","miscsErrors":"Other additions — errors","basicErrors":"Basics — errors"},"sections":{"basics":"Basics","fermentables":"Fermentables","hops":"Hop schedule","yeasts":"Yeast","mashSteps":"Mash profile","miscs":"Other additions"},"basics":{"title":"Title","titlePlaceholder":"E.g. \"German Pilsner\" or \"My IPA experiment v3\"","description":"Description","descriptionPlaceholder":"Optional — notes about the recipe idea","notes":"Notes","notesPlaceholder":"Brew log, process notes, tasting profile…","language":"Language","recipeType":"Recipe type","recipeTypeOptions":{"0":"Extract","1":"Partial mash","2":"All grain","3":"Grain-to-glass"},"style":"BJCP style","styleNone":"None selected","styleSearch":"Search style…","styleNoResults":"No styles match the search","styleClear":"Clear style","equipmentProfile":"Equipment profile","equipmentProfileNone":"None selected — no equipment overrides","equipmentProfileEmpty":"You have no equipment profiles. Create one under Settings → Brewing equipment.","batchSizeLiters":"Batch size (L)","boilSizeLiters":"Boil size (L)","boilSizeInherits":"Leave empty to inherit from equipment","boilTimeMinutes":"Boil time (min)","efficiencyPercent":"Brewhouse efficiency (%)","efficiencyInherits":"Leave empty to inherit from equipment","carbonationVolumes":"Carbonation (vol CO₂)","forcedCarbonation":"Forced carbonation (kegging)","isPrivate":"Private — only you can see the recipe","languageOptions":{"sv":"Swedish","en":"English"}},"fermentables":{"addRow":"Add malt or sugar","freeText":"Free-text","clearSelection":"Clear selection","amountGrams":"Amount (g)","use":"Use","removeRow":"Remove row","useOptions":{"0":"Mash","1":"Boil","2":"Steep","3":"First wort","4":"Late addition"},"advanced":"Advanced","yieldPercent":"Yield (%)","colorEbc":"Colour (EBC)","addAfterBoil":"Add after boil","notes":"Notes"},"hops":{"freeText":"Free-text","clearSelection":"Clear selection","amountGrams":"Amount (g)","alphaAcid":"α-acid (%)","timeMinutes":"Time (min)","use":"Use","removeRow":"Remove row","useOptions":{"0":"Boil","1":"Dry hop","2":"Whirlpool","3":"First wort","4":"Aroma"},"groupLabels":{"boil":"Boil & first wort","whirlpool":"Whirlpool & aroma","dryHop":"Dry hop"},"addRowGroup":{"boil":"Add boil hop","whirlpool":"Add whirlpool/aroma","dryHop":"Add dry hop"},"advanced":"Advanced","formSnapshot":"Form","formOptions":{"0":"Pellet","1":"Whole","2":"Cryo","3":"Plug","4":"Extract"},"temperatureC":"Temperature (°C)","year":"Harvest year","notes":"Notes"},"mashSteps":{"addRow":"Add mash step","name":"Step name","namePlaceholder":"E.g. \"Saccharification\" or \"Mash-out\"","stepType":"Step type","tempC":"Temp (°C)","timeMinutes":"Time (min)","removeRow":"Remove step","typeOptions":{"0":"Infusion","1":"Temperature"},"advanced":"Advanced","rampTimeMinutes":"Ramp time (min)","endTempC":"End temp (°C)","infuseAmountLiters":"Infuse amount (L)","notes":"Notes"},"miscs":{"addRow":"Add other addition","name":"Name","namePlaceholder":"E.g. \"Irish moss\", \"Gypsum\", \"Coriander\"","type":"Type","quantity":"Quantity","quantityUnit":"Unit","use":"Use","timeMinutes":"Time (min)","removeRow":"Remove row","typeOptions":{"0":"Spice","1":"Fining","2":"Water agent","3":"Herb","4":"Flavour","5":"Other"},"useOptions":{"0":"Mash","1":"Boil","2":"Primary","3":"Secondary","4":"Bottling"},"advanced":"Advanced","notes":"Notes","quantityUnitOptions":{"0":"g","1":"Pkt","2":"ml"}},"yeasts":{"addFirst":"Pick a yeast","addAnother":"Add another yeast","freeText":"Free-text","clearSelection":"Clear selection","quantity":"Quantity","quantityUnit":"Unit","removeRow":"Remove row","quantityUnitOptions":{"0":"g","1":"Pkt","2":"ml"},"advanced":"Advanced","attenuation":"Attenuation (%)","addToSecondary":"Add to secondary","notes":"Notes"}},"calculationsPreview":{"title":"Calculations","subtitle":"Live from brewMath","empty":"Fill in basics and a fermentable to see calculations.","toggleUnits":"Toggle units (metric / imperial)","matchTotal":"within style","noStyleHint":"Pick a BJCP style in the basics section to see style-match.","unitMetric":"Metric","unitImperial":"Imperial","labels":{"og":"OG","fg":"FG","abv":"ABV","ibu":"IBU","srm":"SRM","ebc":"EBC"},"errors":{"batchSizeRequired":"Enter a batch size to see calculations.","fermentableRequired":"Add at least one fermentable.","fermentableIncomplete":"Fill in fermentable details (amount + yield + colour) to see OG/SRM.","yeastRequired":"Pick at least one yeast.","yeastIncomplete":"Fill in yeast attenuation to see FG/ABV."}},"editPage":{"breadcrumb":"Editing recipe","loadFailed":"Could not load the recipe."},"import":{"title":"Import from BeerXML","description":"Drag and drop a .xml file from Brewfather, BeerSmith or another tool.","browseHint":"Or pick a file","uploading":"Importing…","dropToUpload":"Drop the file here","successPreview":"Import succeeded. The diff modal lands in Steg 9b-fe-β; from there you'll review the matches before the recipe is hydrated into the form.","warningsHeading":"Parser warnings","summary":{"fermentables":"Fermentables: {match} matches, {ambiguous} ambiguous, {unknown} unknown","hops":"Hops: {match} matches, {ambiguous} ambiguous, {unknown} unknown","yeasts":"Yeasts: {match} matches, {ambiguous} ambiguous, {unknown} unknown"},"preview":{"useDraft":"Use recipe","discard":"Cancel"},"previewNote":"The calculation preview updates after saving — for imported master ingredients, the server populates values when the recipe is saved.","kind":{"fermentable":"Fermentables","hop":"Hops","yeast":"Yeast","misc":"Miscellaneous"},"miscsTally":"{count, plural, one {1 addition} other {{count} additions}} imported as free-text","miscsSkip":"Skip this row","miscsRestore":"Keep this row","diff":{"tally":"{match} matches · {ambiguous} ambiguous · {unknown} unknown","actionLabel":"Action","useMaster":"Use \"{name}\"","useFreeText":"Use as free-text","skip":"Skip this row","ambiguousHint":"Several possible matches — pick one or use as free-text.","unknownHint":"No match found. Import as a free-text row or skip.","status":{"match":"Match","ambiguous":"Ambiguous","unknown":"Unknown"},"statusHint":{"match":"Matcher found a strongly matching master ingredient.","ambiguous":"Multiple similarly-named candidates — pick one or use as free-text.","unknown":"No match above threshold — import as free-text or skip."},"applyDisabled":"Make sure at least one fermentable and one yeast remain.","confirmCloseTitle":"Discard import?","confirmCloseDescription":"You've made changes in the diff modal. Close without applying?"},"errors":{"tooLarge":"File exceeds {limitMb} MB.","wrongType":"File must be a BeerXML (.xml).","uploadFailed":"Couldn't import the file. Please try again.","emptyFile":"The file is empty.","notBeerXml":"This isn't a BeerXML recipe the importer can read. Check that you exported the recipe as BeerXML.","multipleRecipes":"The file holds more than one recipe. Export one recipe at a time and import that."}},"comments":{"heading":"Comments","headingWithCount":"Comments ({count})","form":{"placeholder":"Write a comment…","replyPlaceholder":"Reply to @{username}…","submit":"Post","submitting":"Posting…","cancelReply":"Cancel","replyingTo":"Replying to @{username}"},"empty":"Be the first to comment.","loadMore":"Load more","loading":"Loading…","pagination":{"previous":"Previous","next":"Next","pageOf":"Page {current} of {total}"},"errors":{"loadFailed":"Could not load comments.","postFailed":"Could not post comment — try again.","deleteFailed":"Could not delete comment — try again.","reactFailed":"Could not react — try again.","depthExceeded":"You cannot reply to a reply."}},"social":{"like":"Like","liked":"Liked","save":"Save","saved":"Saved","rateLabel":"Rate","ratingSummary":"{average} of {count, plural, =1 {1 rating} other {# ratings}}","ratingNone":"No ratings yet","starAria":"Rate {score} of 10","clearRatingAria":"Clear my rating","saving":"Saving…","confirmedSaved":"Saved","cantRateOwn":"You can't rate your own recipe","errors":{"likeFailed":"Could not like the recipe — try again.","saveFailed":"Could not save the recipe — try again.","rateFailed":"Could not save rating — try again.","unrateFailed":"Could not clear rating — try again."},"card":{"likeCount":"{count, plural, =0 {0 likes} =1 {1 like} other {# likes}}","saveCount":"{count, plural, =0 {0 saves} =1 {1 save} other {# saves}}","ratingShort":"{average} ({count})"}},"hub":{"title":"Brewing","brandLabel":"Brewing Hub","subtitle":"Recipes from the community — create your own or browse others'.","createCta":"Create recipe","loadFailed":"Could not load the recipe list.","heroTitle":"Brew better beer, together.","heroSub":"Share recipes, discover new styles, and brew with the community.","underConstructionStamp":"Under construction","underConstructionWarning":"Feel free to test — all brewing data may be reset at any time without warning.","browseCta":"Browse recipes","sidebarTitle":"Features","viewMine":"My recipes","viewPublic":"Community","statRecipes":"Recipes","statBrewers":"Brewers","comingSoon":"Coming soon","sections":{"batches":"Brew Batches","batchesSub":"Log and track your brew sessions","inventory":"Inventory","inventorySub":"Manage hops, malt, yeast and more","profiles":"Profiles","profilesSub":"Equipment, mash, fermentation, water and custom styles","profilesEquipment":"Equipment","profilesEquipmentSub":"Kettle, volumes, efficiency","profilesMash":"Mash","profilesMashSub":"Temperatures and step profiles","profilesFermentation":"Fermentation","profilesFermentationSub":"Temperature schedules","profilesWater":"Water","profilesWaterSub":"Water chemistry profiles","profilesStyles":"Custom Styles","profilesStylesSub":"Your own BJCP-style definitions","tools":"Tools","toolsSub":"ABV calculator, water chemistry, and more"},"card":{"private":"Private","abv":"ABV","ibu":"IBU","color":"Color"},"filters":{"allGroups":"All styles","allLanguages":"All languages","languageSv":"Swedish","languageEn":"English"},"empty":{"filtered":"No recipes match your filters. Clear them or be the first to brew something in this category.","global":"No recipes yet. Create the first one.","clearFilters":"Clear filters","createCta":"Create recipe"},"pagination":{"previous":"Previous","next":"Next","pageOf":"Page {current} of {total}"}},"recipeDetail":{"breadcrumb":"Brewing recipe","byAuthor":"By {name}","createdAt":"Created {date}","updatedAt":"Updated {date}","verifiedBadge":"Verified","privateBadge":"Private","noStyle":"No style selected","noEquipment":"No equipment profile","equipment":"Equipment: {name}","recipeTypeLabels":{"0":"Extract","1":"Partial mash","2":"All grain","3":"Grain-to-glass"},"targets":{"title":"Calculated targets","og":"OG","fg":"FG","abv":"ABV","ibu":"IBU","color":"Color","batch":"Batch","boil":"Boil","boilTime":"Boil time","efficiency":"Efficiency"},"sections":{"fermentables":"Fermentables","hops":"Hop schedule","yeasts":"Yeast","mashSteps":"Mash profile","miscs":"Other additions","notes":"Notes","description":"Description"},"fermentables":{"empty":"No malt or sugar listed.","name":"Name","amount":"Amount","yieldPercent":"Yield","colorEbc":"Color","use":"Use","addAfterBoil":"Added after boil","supplier":"Supplier","total":"Total"},"hops":{"empty":"No hops listed.","amount":"Amount","alphaAcid":"α-acid","time":"Time","use":"Use","form":"Form","year":"Harvest year","temperature":"Temperature","origin":"Origin"},"yeasts":{"empty":"No yeast listed.","quantity":"Quantity","attenuation":"Attenuation","attenuationShort":"{percent}% atten.","secondary":"Added at secondary","producer":"Producer"},"mashSteps":{"empty":"No mash steps.","stepNumber":"Step","type":"Type","tempC":"Temperature","time":"Time","rampTime":"Ramp time","endTemp":"End temp","infuseAmount":"Infuse amount","typeLabels":{"0":"Infusion","1":"Temperature"}},"miscs":{"empty":"No other additions.","amount":"Amount","type":"Type","use":"Use","time":"Time","typeLabels":{"0":"Spice","1":"Fining","2":"Water agent","3":"Herb","4":"Flavor","5":"Other"},"useLabels":{"0":"Mash","1":"Boil","2":"Primary","3":"Secondary","4":"Bottling"}},"useOptions":{"fermentable":{"0":"Mash","1":"Boil","2":"Steep","3":"First wort","4":"Late addition"},"hop":{"0":"Boil","1":"Dry hop","2":"Whirlpool","3":"First wort","4":"Aroma"},"hopForm":{"0":"Pellet","1":"Whole","2":"Cryo","3":"Plug","4":"Extract"},"quantityUnit":{"0":"g","1":"Pkt","2":"ml"}},"actions":{"edit":"Edit","delete":"Delete","deleteConfirm":"Delete \"{name}\"? This cannot be undone.","deleting":"Deleting…","verify":"Verify","unverify":"Unverify","verifying":"Saving…","back":"Back to brewing","export":"Export","exportXml":"Export BeerXML","exportJson":"Export BeerJSON","exportXmlAria":"Download as BeerXML 1.0","exportJsonAria":"Download as BeerJSON","share":"Share link","shared":"Copied!","print":"Print","readMode":"Read mode","exitReadMode":"Exit read mode","duplicate":"Duplicate recipe","duplicating":"Duplicating…","makePrivate":"Make private","makePublic":"Make public","brew":"Start brewing","notYetImplemented":"not yet implemented"},"social":{"comingSoon":"Comments are coming in Steg 8b."},"readView":{"recipeBy":"Recipe by","equipment":"Equipment"},"versions":{"title":"Versions","currentVersion":"Current version","otherVersions":"Previous versions","createNew":"Create new version","createNewDesc":"Save current recipe as a new version","creating":"Saving version…","noVersions":"No saved versions yet","deleteConfirm":"Delete \"{label}\"? The snapshot will be permanently removed.","renameLabel":"Rename","viewVersion":"View version","current":"Current","currentRecipe":"Current recipe","loadFailed":"Could not load the versions.","snapshotLoadFailed":"Could not load the snapshot.","createFailed":"Could not save the version — try again.","renameFailed":"Could not rename the version — try again.","deleteFailed":"Could not delete the version — try again."},"print":{"byAuthor":"by <strong>{name}</strong>","late":"late","secondary":"secondary","measurements":"Brew Day Measurements","measuredOg":"Measured OG","measuredFg":"Measured FG","preBoilVolume":"Pre-boil volume","preBoilGravity":"Pre-boil gravity","actualAbv":"Actual ABV","pitchTemp":"Pitch temp","target":"(target {value})"},"loadFailed":"Could not load the recipe.","deleteFailed":"Could not delete the recipe.","verifyFailed":"Could not change verification status.","duplicateFailed":"Could not duplicate the recipe.","privacyFailed":"Could not change the recipe's visibility.","unitMetric":"Metric","unitImperial":"Imperial"},"ingredientPicker":{"placeholder":{"fermentable":"Search malt or sugar…","hop":"Search hops…","yeast":"Search yeast (name or product code, e.g. \"US-05\")…"},"loading":"Searching…","noResults":"No matches","searchFailed":"Search failed — try again.","createNew":"Use free-text: \"{name}\"","createNewHint":"Not in the catalog? Add as a free-text row — only used in this recipe.","labels":{"ebc":"EBC","alpha":"α","atten":"Atten."}}},"notifications":{"dismiss":"Dismiss","region":"Notifications"},"moderation":{"report":"Report","reportPost":"Report post","reportComment":"Report comment","reportUser":"Report user","modalTitle":"Report content","modalIntro":"Tell us why this content should be reviewed. Your report is anonymous to the poster.","modalUserTitle":"Report user","modalUserIntro":"Tell us why this user should be reviewed. Your report is anonymous to them.","modalPlaceTitle":"Report place","modalPlaceIntro":"Tell us why this place should be reviewed. The check-ins are not affected.","userTargetNotFoundError":"User not found","reasonLabel":"Why are you reporting?","reasonSpam":"Spam","reasonHarassment":"Harassment or hate","reasonIllegalContent":"Illegal content","reasonNsfw":"NSFW / offensive","reasonMisinformation":"Misinformation","reasonOther":"Other","noteLabel":"More details","noteLabelRequired":"More details (required)","notePlaceholder":"Briefly describe what's wrong…","noteCounter":"{count} / {max}","noteRequiredError":"Please describe what's wrong","noteTooLongError":"Note must not exceed {max} characters","submit":"Submit report","submitting":"Submitting…","submitError":"Couldn't submit your report","alreadyReportedError":"You've already reported this content","alreadyReportedUserError":"You've already reported this user","alreadyReportedPlaceError":"You've already reported this place","rateLimitedError":"Too many reports submitted in the last hour","selfReportError":"You can't report your own content","selfReportUserError":"You can't report yourself","targetNotFoundError":"Content not found","placeTargetNotFoundError":"That place is no longer there","submittedToast":"Thanks — your report has been submitted","hiddenByModerator":"Hidden by a moderator","hiddenByModeratorDescription":"This content is hidden from everyone except you.","queueTitle":"Reports","queueSubtitle":"{count} open reports — admin and reviewer","queueEmpty":"No reports match these filters.","filterStatus":"Status","filterTarget":"Type","filterReason":"Reason","filterAll":"All","statusOpen":"Open","statusResolved":"Resolved","statusDismissed":"Dismissed","targetTypePost":"Post","targetTypeComment":"Comment","targetTypeUser":"User","targetTypePlace":"Place","columnReporter":"Reported by","columnReason":"Reason","columnReports":"Reports","columnTarget":"Target","columnReceived":"Received","columnStatus":"Status","drawerTitle":"Review report","drawerReports":"{count, plural, one {# report} other {# reports}}","drawerReporters":"Reported by","drawerOldestNote":"Oldest open report","drawerNoNote":"No note","drawerTargetPostHeading":"Reported post","drawerTargetCommentHeading":"Reported comment","drawerTargetUserHeading":"Reported user","drawerTargetPlaceHeading":"Reported place","drawerTargetOpen":"Open in new tab","drawerTargetUserOpenProfile":"View profile","drawerTargetPlaceOpen":"View the place","drawerPlaceCreatedBy":"Created by @{username}","drawerPlaceNoCreator":"No creator","drawerTargetMissing":"Target no longer exists — it was deleted before review.","drawerTargetIsHidden":"Already hidden","drawerTargetIsDeleted":"Author deleted","filterSort":"Sort","sortAge":"Oldest first","sortRepeatOffenders":"Most reported","rowRepeatBadge":"{count} reports against this account","rowNoTextContent":"No text — image, GIF or user only","rowPlaceNoCreator":"No creator","paginationSummary":"Page {page} of {totalPages} · {count, plural, =1 {# report} other {# reports}}","paginationPrevious":"Previous","paginationNext":"Next","drawerTargetEditedSinceReport":"Edited since report","drawerTargetSnapshotNote":"Showing the content as it was when the report was filed.","drawerHideReasonLabel":"Internal note (not shown to the author)","actionHide":"Hide content","actionHidePlace":"Hide the place","actionDelete":"Delete","actionDismiss":"Dismiss all","actionUnhide":"Unhide","actionConfirm":"Confirm","actionHideSuccess":"Content hidden","actionDismissSuccess":"Report dismissed","actionResolveSuccess":"Report resolved","actionUnhideSuccess":"Content restored","actionError":"Action failed","actionAlreadyResolvedError":"Report already handled","newReportBanner":"{count, plural, =1 {1 new report has arrived} other {# new reports have arrived}}","newReportBannerRefresh":"Refresh"},"admin":{"places":{"title":"Places","subtitle":"{count, plural, =1 {# place} other {# places}} — verify the places that are what they claim to be.","filterState":"State","filterAll":"All","filterUnverified":"Unverified","filterVerified":"Verified","columnPlace":"Place","columnCategory":"Category","columnCity":"City","columnCheckIns":"Check-ins","columnCreator":"Created by","columnVerified":"Verified","columnActions":"Actions","noCity":"—","noCreator":"No creator","hidden":"Hidden","verifyLabel":"Verify {place}","actionFailed":"That did not go through — try again","duplicateHint":"Possible duplicate of:","edit":"Edit","editLabel":"Edit {place}","merge":"Merge","mergeLabel":"Merge {place}","hide":"Hide","hideLabel":"Hide {place}","unhide":"Unhide","unhideLabel":"Unhide {place}","editTitle":"Edit place","editNameLabel":"Name","editCategoryLabel":"Category","editLatitudeLabel":"Latitude","editLongitudeLabel":"Longitude","editCoordinatesInvalid":"Latitude must be between -90 and 90, longitude between -180 and 180.","editCityLabel":"City","editCityHint":"Clear the field to remove the city link.","editSave":"Save","editCancel":"Cancel","editFailed":"That did not go through — try again","mergeTitle":"Merge place","mergeIntro":"{place} is removed and {count, plural, =0 {no check-ins} =1 {# check-in} other {# check-ins}} move to the place you choose.","mergeTargetLabel":"Merging into","mergeClearTarget":"Choose another place","mergePickLabel":"The place to keep","mergePickPlaceholder":"Search Slaf’s places…","mergeWarning":"This cannot be undone.","mergeSubmit":"Merge","mergeCancel":"Cancel","mergeFailed":"The merge did not go through — try again","empty":"No places match the filter.","pageInfo":"Page {page} of {totalPages} · {count, plural, =1 {# place} other {# places}}","previous":"← Previous","next":"Next →"},"blocks":{"title":"Blocks overview","subtitle":"Patterns in the user-block graph for moderation review.","viewTopBlockers":"Most blocks created","viewMostBlocked":"Most blocked","viewTopBlockersHint":"Users sorted by how many blocks they have created.","viewMostBlockedHint":"Users sorted by how many other users have blocked them.","columnRank":"#","columnUser":"User","columnUserId":"User ID","columnBlockCount":"Blocks","empty":"No blocks recorded yet.","pageInfo":"Page {page} of {totalPages} · {count} users","previous":"← Previous","next":"Next →"},"auditLog":{"title":"Audit log","subtitle":"{count, plural, =1 {# entry} other {# entries}} — admin and reviewer actions","filterAction":"Action","filterTarget":"Target","filterAll":"All","columnWhen":"When","columnActor":"Actor","columnAction":"Action","columnTarget":"Target","columnDetails":"Details","empty":"No entries match these filters.","pageInfo":"Page {page} of {totalPages} · {count, plural, =1 {# entry} other {# entries}}","previous":"← Previous","next":"Next →","actions":{"userBanned":"User banned","userUnbanned":"User unbanned","userKicked":"User kicked","roleAdded":"Role added","roleRemoved":"Role removed","invitationCreated":"Invitation created","searchReindexed":"Search reindexed","searchIndexesDeleted":"Search indexes deleted","placeVerified":"Place verified","placeUnverified":"Verification removed","placeEdited":"Place edited","placeMerged":"Places merged","reportResolved":"Report resolved","reportDismissed":"Report dismissed","postHidden":"Post hidden","postUnhidden":"Post unhidden","commentHidden":"Comment hidden","commentUnhidden":"Comment unhidden","placeHidden":"Place hidden","placeUnhidden":"Place unhidden"},"targets":{"user":"User","post":"Post","comment":"Comment","report":"Report","invitation":"Invitation","searchIndex":"Search index","place":"Place"},"metadata":{"none":"—","banPermanent":"Permanent","banUntil":"Until {date}","banTemporary":"Temporary","role":"Role: {role}","invitationEmailedWithNote":"Emailed to {email} · {note}","invitationEmailed":"Emailed to {email}","invitationNoNote":"No note","reindexed":"{users} users, {posts} posts indexed","indexesDeleted":"{count} indexes deleted","place":"{place}","placeRenamed":"{previous} → {place}","placeMerged":"{place} → {into} · {count, plural, =0 {no check-ins} =1 {# check-in} other {# check-ins}}"}},"common":{"save":"Save","cancel":"Cancel","delete":"Delete","edit":"Edit","add":"Add","close":"Close","search":"Search","loading":"Loading…","saving":"Saving…","actions":"Actions","yes":"Yes","no":"No","none":"—","retry":"Try again","loadFailed":"Couldn't load. Try again.","saveFailed":"Couldn't save. Try again.","deleteFailed":"Couldn't delete. Try again.","actionFailed":"The action didn't go through. Try again.","rateLimited":"Too many attempts. Wait a moment and try again.","previous":"Previous","next":"Next","pageOf":"Page {page} of {total}","refresh":"Refresh","confirmDelete":"Delete {name}?","created":"Created","updated":"Updated","name":"Name","status":"Status","active":"Active","inactive":"Inactive","enabled":"On","disabled":"Off","all":"All","total":"Total"},"invitations":{"title":"Invitations","generateTitle":"Generate invitation code","generateIntro":"Generate a single-use invitation code. You can share it manually or email it directly to the recipient.","modeManual":"Share manually","modeEmail":"Send via email","recipientEmail":"Recipient email","noteLabel":"Note","optional":"(optional)","notePlaceholder":"e.g. For John, shared in Discord","generating":"Generating…","generateAndSend":"Generate & send email","generateCode":"Generate code","generateFailed":"Couldn't generate the code. Try again.","generateEmailFailed":"Couldn't generate and send the code. Check the address and try again.","emailNotConfigured":"Email isn't set up on this server. No code was created.","invalidEmail":"That doesn't look like an email address.","copied":"Copied!","copy":"Copy","clear":"Clear","emailSentTo":"Email sent to <strong>{email}</strong>","noteValue":"Note: {note}","statusDisabled":"Disabled","statusUsed":"Redeemed","statusAvailable":"Available","copyCode":"Copy code","hideCode":"Hide code","revealCode":"Reveal code","range":"{from}–{to} of {total}","sent":"Sent","resend":"Resend","disable":"Disable","enable":"Enable","deleteCode":"Delete code","cannotDeleteUsed":"A redeemed code can't be deleted","resendFailed":"Couldn't resend the email.","disableFailed":"Couldn't disable the code.","enableFailed":"Couldn't enable the code.","deleteFailed":"Couldn't delete the code.","codeGone":"This code no longer exists. Reload the list.","alreadyRedeemed":"This code has already been redeemed.","resendRefused":"This code was redeemed or disabled after the list loaded.","allCodes":"All codes ({count})","countAvailable":"{count} available","countUsed":"{count} redeemed","countTotal":"{count} total","columnCode":"Code","columnNoteSentTo":"Note / sent to","columnCreatedBy":"Created by","columnUsedBy":"Redeemed by","columnUsedAt":"Redeemed","empty":"No invitation codes yet. Generate one above.","requestsTitle":"Requests","requestsTitleCount":"Requests ({count} waiting)","requestsIntro":"Visitors without a code who asked for an invitation from the start page. A declined requester is told nothing. An unanswered request is deleted after 90 days, an answered one 30 days after the answer.","requestsPending":"Waiting","requestsDecided":"Answered","requestsEmpty":"No requests waiting.","requestsDecidedEmpty":"No answered requests in the last 30 days.","requestAsked":"Asked {when}","requestNoMessage":"No message","requestInvitedWhen":"Invited {when}","requestDeclinedWhen":"Declined {when}","requestInvite":"Send invitation","requestSendInvite":"Send code to {email}","requestNotePlaceholder":"e.g. Welcome, Johan!","requestDecline":"Decline","requestInviteFailed":"Couldn't send the invitation. Try again.","requestDeclineFailed":"Couldn't decline the request.","requestDeleteFailed":"Couldn't delete the request.","requestGone":"The request no longer exists. Reload the list.","requestAnswered":"Someone has already answered this request. Reload the list.","invalidNote":"The note can be at most 500 characters."},"users":{"title":"User management","membersTitle":"Members","role":{"Admin":"Admin","User":"User","Reviewer":"Reviewer"},"addRole":"Add role","removeRole":"Remove role","grantRoleConfirm":"Grant the <strong>{role}</strong> role to <strong>{user}</strong>?","revokeRoleConfirm":"Revoke the <strong>{role}</strong> role from <strong>{user}</strong>?","addRoleLabel":"Add {role} role","removeRoleLabel":"Remove {role} role","roleCannotBeRemoved":"The {role} role can't be removed","roleLockedForUser":"Can't remove {role} from {username}","ownRoleLocked":"Can't remove your own {role} role","banTitle":"Ban user","banning":"Banning <strong>{user}</strong>","banPermanent":"Permanent ban","banTemporary":"Temporary ban","banDaysInput":"Number of days","banDaysUnit":"{count, plural, one {day} other {days}}","ban":"Ban","unban":"Unban","range":"{from}–{to} of {total}","searchPlaceholder":"Search by username, email or name…","columnUser":"User","columnRoles":"Roles","columnJoined":"Joined","columnLastLogin":"Last login","emptySearch":"No users match your search.","empty":"No users found.","you":"(you)","statusBanned":"Banned","banIsPermanent":"permanent","banUntil":"until {date}","banFailed":"Couldn't ban the user.","banAdminRefused":"Admins can't be banned.","unbanFailed":"Couldn't lift the ban.","roleAddFailed":"Couldn't add the role.","roleRemoveFailed":"Couldn't remove the role.","userGone":"This member no longer exists. Reload the list.","roleAlreadyHeld":"They already have this role.","roleRemoveGone":"The member or the role is no longer there. Reload the list."},"dashboard":{"sectionOverview":"Overview","sectionTrends":"Trends — last 30 days","sectionGameData":"Game data","sectionSearch":"Search","totalMembers":"Total members","activeToday":"Active today","newThisWeek":"New this week","newThisMonth":"New this month","loginPhotos":"Login photos","photoAgeNone":"no photos","photoAgeToday":"approved today","photoAgeDays":"{days, plural, one {# day old} other {# days old}}","serviceHealth":"Service health","healthFrontend":"Frontend ({service})","healthApi":"API ({service})","healthEmail":"{service} (email)","health":{"healthy":"Healthy","degraded":"Degraded","unhealthy":"Unhealthy"},"emailToday":"Email today","emailYesterday":"Email yesterday","emailBounced":"Bounced (7d)","emailsSent":"emails sent","noEmailsSent":"no emails sent","deliveredRate":"{rate, number, percent} delivered","bounceFailures":"failures","chartsUnavailable":"Chart data unavailable.","chartRegistrations":"New registrations","chartMessages":"Chat messages","chartPosts":"Posts created","chartUploads":"Media uploads — MB per day","chartEngagement":"Engagement — posts · reactions · comments","reindexTitle":"Reindex search","reindexDescription":"Rebuild the {service} index from the database. Safe anytime — existing entries are overwritten, never duplicated.","reindexRun":"Run reindex","reindexRunning":"Indexing…","reindexDone":"Done — {users, plural, one {# user} other {# users}} · {posts, plural, one {# post} other {# posts}} indexed","reindexPartial":"Indexed {users, plural, one {# user} other {# users}} · {posts, plural, one {# post} other {# posts}} — {rejected, plural, one {# entry} other {# entries}} rejected by the search backend. Check the API log.","reindexFailed":"Reindex failed. Please try again.","deleteIndexesTitle":"Delete search indexes","deleteIndexesDescription":"Wipes every {service} index. All indexed data is lost until you reindex. Password-gated.","deleteIndexesRun":"Delete indexes","deleteIndexesRunning":"Deleting…","deleteIndexesPrompt":"Enter admin password to delete all {service} indexes.","passwordRequired":"Password required.","deleteIndexesDone":"Done — {count, plural, one {# index} other {# indexes}} deleted","deleteIndexesFailed":"Couldn't delete the indexes. Try again.","deleteIndexesWrongPassword":"Wrong password. No indexes were deleted.","seedTitle":"Seed platforms from {service}","seedDescription":"Pulls all platforms from {service}, adds missing ones to the database, and downloads any missing logos. Safe to run anytime.","seedRun":"Seed platforms","seedRunning":"Seeding…","seedUpToDate":"Already up to date","seedDone":"{platforms, plural, one {# platform added} other {# platforms added}} · {images, plural, one {# image downloaded} other {# images downloaded}}","seedFailed":"Seeding platforms failed. Please try again.","fetchImagesTitle":"Fetch platform images","fetchImagesDescription":"Downloads logos from {service} for any platform that is still missing a local image. Skips platforms that already have one.","fetchImagesRun":"Fetch images","fetchImagesRunning":"Fetching…","fetchImagesNone":"All platforms already have images","fetchImagesDone":"{count, plural, one {# image downloaded} other {# images downloaded}}","fetchImagesFailed":"Fetching platform images failed. Please try again.","translateTitle":"Translate games (AI)","translateDescription":"Uses {provider} to translate game titles, summaries and descriptions for games that are missing a translation in the selected locale.","translateRun":"Translate","translateRunning":"Translating…","translateStarted":"Translation started in the background.","translateFailed":"Couldn't start the translation. Please try again.","translateBatch":"Batch:","translateForce":"Force retranslate","language":{"sv":"Swedish","en":"English"},"aiConfirmTitle":"This will use {provider} tokens","aiConfirmDetail":"Will send up to {count, plural, one {# game} other {# games}} to the {provider} API ({model}) for translation to {language, select, sv {Swedish} other {English}}. Each game costs tokens — charges go to your {provider} account.","aiConfirmForce":"Force mode is on: already-translated games will be re-sent.","aiUsageLogged":"Token usage is logged in <b>{table}</b> so you can track costs over time.","aiConfirmRun":"Confirm & run"},"charts":{"storageTitle":"Storage","storageTotal":"total","storageImages":"images · {size}","storageVideos":"videos · {size}","seriesPosts":"Posts","seriesReactions":"Reactions","seriesComments":"Comments"},"barcodes":{"breadcrumb":"Barcodes","title":"Barcode suggestions","subtitle":"Community-submitted game matches waiting for admin review.","votes":"{count, plural, one {# vote} other {# votes}}","cardSummary":"{votes, plural, one {# vote} other {# votes}} · {suggestions, plural, one {# suggestion} other {# suggestions}}","pendingSummary":"pending · {votes, plural, one {# vote} other {# votes}}","topPick":"Top pick","approve":"Approve","reject":"Reject","legendVerify":"<b>Verify</b> — click a lookup link to confirm the barcode maps to the suggested game.","legendApprove":"<b>Approve</b> — promotes the suggestion to the live barcode database.","legendReject":"<b>Reject</b> — deletes the wrong suggestion permanently.","allClear":"All clear","empty":"No barcode suggestions waiting for review.","backToAdmin":"Back to Admin"},"brewIngredients":{"breadcrumb":"Brew ingredients","title":"Brew ingredient queue","subtitle":"Review community-submitted fermentables, hops, and yeasts before they appear in autocomplete.","kind":{"fermentables":"Malt & fermentables","hops":"Hops","yeasts":"Yeasts"},"filterPending":"Pending","filterApproved":"Approved","filterAll":"All","type":{"Grain":"Grain","Sugar":"Sugar","Extract":"Extract","DryExtract":"Dry extract","Adjunct":"Adjunct","Bittering":"Bittering","Aroma":"Aroma","Dual":"Dual purpose","Ale":"Ale","Lager":"Lager","Wild":"Wild","Mixed":"Mixed culture","Kveik":"Kveik"},"approvedBadge":"approved","usedIn":"used in {count, plural, one {# recipe} other {# recipes}}","createdBy":"by {username}","approve":"Approve","reject":"Reject","pending":"pending","emptyPending":{"fermentables":"No pending fermentables","hops":"No pending hops","yeasts":"No pending yeasts"},"emptyNone":{"fermentables":"No fermentables found","hops":"No hops found","yeasts":"No yeasts found"},"emptyPendingHint":"All submitted entries have been reviewed.","emptyFilterHint":"Try a different filter."},"brewStyles":{"title":"BJCP styles","intro":"Import the BJCP style guide JSON files from <link>{repo}</link> to populate prose descriptions, tags, and commercial examples.","currentCatalog":"Current catalog","stylesTotal":"{count, plural, one {style total} other {styles total}}","prosePopulated":"Prose data populated","guideCount":"{count, plural, one {# style} other {# styles}}","importTitle":"Import JSON file","importHelp":"Download one of the three JSON files from the GitHub repo above and upload it here. Existing styles are matched by BJCP code — prose fields and tags are updated in place. New styles (e.g., from a newer guide version) are inserted with auto-derived grouping.","chooseFile":"Choose JSON file…","importing":"Importing…","importComplete":"Import complete","importSummary":"Added <b>{added}</b> · Updated <b>{updated}</b> (of {total, plural, one {# style} other {# styles}} in file)","importSummaryWithSkipped":"Added <b>{added}</b> · Updated <b>{updated}</b> · Skipped <b>{skipped}</b> (of {total, plural, one {# style} other {# styles}} in file)","importFailed":"Import failed. Check that the file is one of the style guide JSON files and try again.","fileReference":"File reference","recommended":"Recommended","guideCurrent":"{name} — current guide (recommended)","guideOlder":"{name} — older guide, more categories"},"foodIngredients":{"breadcrumb":"Ingredients","title":"Ingredient queue","subtitle":"Review community-submitted ingredients before they appear in autocomplete.","filterPending":"Pending","filterApproved":"Approved","filterAll":"All","approvedBadge":"approved","usedIn":"used in {count, plural, one {# recipe} other {# recipes}}","createdBy":"by {username}","category":"Category","suggestedUnit":"Suggested unit","noUnit":"No unit","approve":"Approve","pending":"pending","emptyPending":"No pending ingredients","emptyNone":"No ingredients found","emptyPendingHint":"All submitted ingredients have been reviewed.","emptyFilterHint":"Try a different filter."},"games":{"title":"Games database","backToAdmin":"Admin","autoRefreshInterval":"Auto-refresh interval","autoRefresh":"Auto","autoRefreshToggle":"Refresh automatically","secondsShort":"{seconds}s","statsLoadFailed":"Couldn't load the stats.","statTotalGames":"Total games","statCovers":"Covers downloaded","statCoversMissing":"{count} missing","statAdded7":"Added (7 days)","statAdded30":"Added (30 days)","statPlatforms":"Platforms","statPlatformsWithGames":"{count} with games","statSvTranslations":"Swedish translations","statEnTranslations":"English translations","statVerified":"{count} verified","statNotTranslated":"Not translated","jobsTitle":"Worker jobs","jobsSummary":"{servers, plural, one {# server} other {# servers}} · {workers, plural, one {# worker} other {# workers}} · auto-refresh every {seconds}s","jobsIdle":"No jobs running or queued","jobRunning":"Running · started {time}","jobRunningOn":"Running · started {time} · {server}","jobQueued":"Queued · added {time}","jobState":{"Processing":"Processing","Enqueued":"Enqueued"},"never":"Never","workerTestTitle":"Worker pipeline test","workerTestDescription":"Enqueues a GameStatsJob via Hangfire. Check the result in the <code>hangfire.job</code> table.","workerTestButton":"Trigger test job","workerTestPending":"Enqueueing…","workerTestFailed":"Couldn't enqueue the test job.","workerTestEnqueued":"The test job is queued. Follow it in the jobs panel above.","errorLabel":"Error","enqueued":"Enqueued","jobIdBadge":"Job #{id}","seedByIdTitle":"Seed game by IGDB ID","seedByIdDescription":"Immediately fetches a single game from IGDB by numeric ID, in full detail: platforms, releases, related games, external sources, websites and age ratings. Pre-filled with {game} ({id}), a game with complete data.","seedByIdPlaceholder":"IGDB game ID","seedByIdButton":"Fetch from IGDB","seedByIdPending":"Fetching…","seedByIdFailed":"Couldn't fetch the game from IGDB.","seeded":"Seeded","igdbIdBadge":"IGDB #{id}","seededCount":{"platforms":"Platforms","releases":"Releases","related":"Related","external":"External","websites":"Websites","ageRatings":"Age ratings"},"platformGeneration":"Gen {generation}","platformClosed":"closed {year}","platformIgdbId":"IGDB ID {id}","platformOffset":"offset {offset}","detailGamesInDb":"Games in DB","detailLibraryTotal":"Library total","detailLastSeeded":"Last seeded","offsetLabel":"Seed offset","offsetHint":"IGDB pagination offset for the next seed run","offsetReset":"Reset","offsetResetTitle":"Reset to 0 — re-seed from the beginning next run","offsetInvalid":"Must be a non-negative integer","offsetSaved":"Saved","seedAllTitle":"Seed all platforms","seedAllDescription":"Fetches the top-rated games from IGDB for every platform and upserts them into the local DB. Runs in the background — check the jobs panel above for progress.","gamesPerPlatform":"Games per platform:","starting":"Starting…","seedAllStarted":"Seeding started in the background.","seedAllFailed":"Couldn't start seeding.","metadataProgress":"Extended metadata (category, videos, websites…)","backfillTitle":"Backfill IGDB data","backfillDescription":"Runs two passes in sequence: (1) re-fetches extended metadata (category, status, videos, websites, alternative names, age ratings) for all games where <code>Category IS NULL</code>; (2) queries <code>external_games</code> ({stores}, etc.) for all games where <code>ExternalGamesFetchedAt IS NULL</code>. Both steps batch IDs per IGDB call. Check the jobs panel for progress.","backfillStarted":"Backfill started in the background.","backfillFailed":"Couldn't start the backfill.","platformsTitle":"Platforms","filterPlaceholder":"Filter platforms…","column":{"platform":"Platform","games":"Games","library":"Library","coverage":"Coverage","lastSeeded":"Last seeded","seed":"Seed"},"platformsLoading":"Loading platforms…","platformsLoadFailed":"Couldn't load the platforms.","noMatch":"No platforms match “{query}”","highPriority":"High priority","seeding":"Seeding","seedLimitLabel":"Seed limit for {platform}","seedAlreadyRunning":"Already seeding — check the jobs panel","seedTitle":"Seed {limit} games","seedButton":"Seed","seedRunning":"Running","seedDone":"Done","seedFailed":"Seeding couldn't be started","showAll":"Show all {count, plural, one {# platform} other {# platforms}}"},"gameServers":{"breadcrumbAdmin":"Admin","breadcrumbGames":"Games","breadcrumbServers":"Servers","title":"Game servers","subtitle":"Manage hosted game servers and their status.","addServer":"Add server","editServer":"Edit server","emptyTitle":"No servers yet","emptyHint":"Add your first server above.","columnConnect":"Connect","columnPlayers":"Players","columnQuery":"Query","hiddenBadge":"hidden","online":"Online","offline":"Offline","poll":"Poll","polling":"Polling…","hide":"Hide","confirmHide":"Hide “{name}”?","hideFailed":"Couldn't hide the server. Try again.","pollFailed":"Couldn't poll the server. Try again.","linkedGame":"Linked game (optional)","removeGame":"Remove","gameSearchPlaceholder":"Search game in database…","searching":"Searching…","fieldName":"Display name","fieldSlug":"Game slug","fieldDescription":"Description (optional)","descriptionPlaceholder":"Our community survival server","fieldHost":"Query host","fieldQueryPort":"Query port (UDP)","fieldConnectAddress":"Connect address","fieldConnectUrl":"Connect URL (optional)","fieldDisplayOrder":"Display order","fieldActive":"Active (visible on {path})"},"shell":{"brandSubtitle":"Control panel","groupModeration":"Moderation","groupOverview":"Overview","groupPeople":"People","groupGaming":"Gaming","groupPlaces":"Places","groupFood":"Food","groupBrewing":"Brewing","groupCommunications":"Communications","groupSecurity":"Security","navReports":"Reports","navDashboard":"Dashboard","navUsers":"Users","navInvitations":"Invitations","navGames":"Games","navServers":"Servers","navBarcodes":"Barcodes","navPlacesVerification":"Verification","navFoodIngredients":"Ingredients","navBrewIngredients":"Ingredients","navBrewStyles":"BJCP Styles","navEmailStats":"Email Stats","navLoginPage":"Login Page","navAuditLog":"Audit log","navBlocks":"Blocks","backToApp":"Back to app","openMenu":"Open menu","closeMenu":"Close menu","locksIn":"Locks in {time}"},"emails":{"title":"Email Stats","subtitle":"{provider} delivery data — last 7 days","notConfigured":"{provider} is not configured or failed to respond.","periodSummaries":"Period summaries","periodToday":"Today","periodYesterday":"Yesterday","periodWeek":"This week","statRequests":"requests","statDelivered":"delivered","statBounces":"bounces","statOpens":"opens","deliveryRate":"Delivery rate","dailyTitle":"Daily breakdown — last 7 days","columnDate":"Date","columnRequests":"Requests","columnDelivered":"Delivered","columnBounces":"Bounces","columnOpens":"Opens","columnDeliveryRate":"Delivery %","noData":"No data available."},"loginPage":{"title":"Login Page Photos","ageNone":"No active photos","ageToday":"Approved today","ageDays":"{days, plural, one {# day old} other {# days old}}","activeCount":"{count} active","runSelection":"Run selection now","runEnqueuing":"Enqueuing…","runEnqueued":"Job enqueued — new candidates will appear shortly.","runFailed":"Failed to enqueue job. Try again.","emptyTitle":"No candidates yet","emptyHint":"The selection job runs every Sunday at 02:00 UTC.","pendingHeading":"Pending approval ({count})","activeHeading":"Active on login page ({count})","rowToday":"Today","rowDays":"{days}d","moveUp":"Move {name} up","moveDown":"Move {name} down","approve":"Approve","remove":"Remove","reject":"Reject"},"totp":{"title":"Admin verification required","promptCode":"Enter your authenticator code to access the admin panel.","promptRecovery":"Enter one of your recovery codes to continue.","verify":"Verify","verifying":"Verifying…","useRecoveryCode":"Use a recovery code instead","useAuthenticator":"Use authenticator code","invalidCode":"Invalid code. Please try again.","unreachable":"Something went wrong. Please try again."}},"snake":{"roomCodeLabel":"Room code","copyCode":"Copy code","copyCodeCopied":"Copied!","leave":"Leave room","back":"Back","playersTitle":"Players","spectatorsTitle":"Spectators","spectatorsCount":"{count, plural, =0 {No spectators} one {# spectator} other {# spectators}}","you":"You","host":"Host","disconnected":"Disconnected","kick":"Kick","ready":"Ready","notReady":"Not ready","readyToggle":"Mark me as ready","unreadyToggle":"I'm not ready","colorPickerTitle":"Pick your color","colorTaken":"Taken","colorSlot":"Color slot {slot}","colorPink":"Pink","colorCyan":"Cyan","colorGreen":"Green","colorYellow":"Yellow","hostControlsTitle":"Host controls","durationLabel":"Round length","duration3":"3 min","duration5":"5 min","duration7":"7 min","publicLabel":"Public room","publicHelp":"Listed in the public room browser","privateLabel":"Private room","privateHelp":"Joinable only with the code","settingsTitle":"Settings","volumeLabel":"Volume","soundLabel":"Sound","soundOn":"On","soundOff":"Off","colorBlindLabel":"Color-blind mode","colorBlindHelp":"Shows numbers and shapes on snake heads","colorBlindOn":"On","colorBlindOff":"Off","enableSoundOverlay":"Click to enable sound","canvasLabel":"Snake game board","inGameMenu":"In-game menu","statusWaitingForPlayers":"Waiting for players ({current}/{min} minimum)","statusWaitingForReady":"Waiting for everyone to ready up","statusSpectating":"You're spectating","statusSpectatorWillSeat":"You'll be seated next round if a slot is open","countdownGo":"Let's go!","endOfRoundTitle":"Round over","endReasonTimeOut":"Time's up","endReasonScoreCap":"Score cap reached","endReasonForfeit":"Forfeited","endReasonAborted":"Aborted","winnerLabel":"Winner","playTimeLabel":"Play time","scoreLabel":"Score","lengthLabel":"Length","foodLabel":"Food","deathsLabel":"Deaths","placement1":"1st","placement2":"2nd","placement3":"3rd","placement4":"4th","tieMedal":"Tied {placement}","continue":"Continue","nextRoundIn":"Next round in {seconds}s","nextRoundCancel":"Cancel","nextRoundCancelled":"Next round cancelled","hudRegion":"Game status","hudTimeLeft":"Time left","hudRespawnIn":"Respawning in {seconds}s","hudDead":"Dead","kickedToastBody":"The host removed you from the room","quit":"Quit","quitConfirmTitle":"Quit this round?","quitConfirmBody":"Quitting now ends the round for you and counts as a loss in your Snake stats. You can keep watching, or head back to the lobby.","quitConfirmYes":"Quit anyway","playerLeftToast":"{name} left the round","joiningRoom":"Joining room {code}…","errorJoinFailed":"Couldn't join the room","errorRoomFull":"Room is full","errorRoomNotFound":"Room not found","landingTitle":"Snake","landingSubtitle":"Play live multiplayer Snake with friends — or drop into a public room.","landingNavTitle":"Play","landingNavSubtitle":"Live multiplayer Snake","publicRoomsTitle":"Open rooms","publicRoomsSub":"Refreshes every 5 seconds","publicRoomsEmpty":"No open rooms — create one or join by code","publicRoomsLoading":"Loading rooms…","publicRoomsError":"Couldn't fetch the room list — try again","publicRoomsRetry":"Try again","publicRoomSlots":"{filled}/{total}","publicRoomDuration":"{minutes} min","publicRoomHostedBy":"By {name}","publicRoomJoin":"Join","createRoomTitle":"Create room","createRoomSub":"Spin up a new room as host. You pick the round length and visibility once you're in.","createRoomCta":"Create room","createRoomBusy":"Creating…","createRoomThrottled":"You're creating rooms too quickly — wait a moment","createRoomError":"Couldn't create a room","joinByCodeTitle":"Join by code","joinByCodeSub":"Type the code you were given, e.g. BLUE-FISH-42.","joinByCodePlaceholder":"WORD-WORD-NN","joinByCodeCta":"Join","joinByCodeBusy":"Joining…","joinByCodeInvalid":"Code should look like WORD-WORD-NN","joinByCodeUnauthenticated":"Please sign in again","leaderboardTitle":"Snake leaderboard","leaderboardSubtitle":"Top Snake players on Slaf — switch tabs to rank by total wins, this week's score, or longest snake ever.","leaderboardTabWins":"Wins","leaderboardTabWeekly":"Top score this week","leaderboardTabLongest":"Longest snake ever","leaderboardColumnRank":"Rank","leaderboardColumnPlayer":"Player","leaderboardColumnWins":"Wins","leaderboardColumnWinRate":"Win rate","leaderboardColumnMatches":"Matches","leaderboardColumnWeeklyScore":"This week","leaderboardColumnLongest":"Longest","leaderboardLoading":"Loading leaderboard…","leaderboardError":"Couldn't fetch the leaderboard — try again","leaderboardRetry":"Try again","leaderboardEmptyWins":"No-one has hit {min}+ matches yet — be the first to qualify","leaderboardEmptyWeekly":"No matches played in the last 7 days","leaderboardEmptyLongest":"No snakes recorded yet — play a round to set the bar","leaderboardPagePrev":"Previous","leaderboardPageNext":"Next","leaderboardPageInfo":"Page {page} of {total}","profileTileTitle":"Snake","profileTileLeaderboardLink":"Leaderboard","profileTileEmpty":"Hasn't played Snake yet","profileTileMatchesPlayed":"Matches","profileTileMatchesWon":"Wins","profileTileWinRate":"Win rate","profileTileLongestSnake":"Longest","profileTileLastPlayed":"Last played","profileTileError":"Couldn't load Snake stats","profileTileRetry":"Try again"},"family":{"title":"Family","intro":"Group your family under one trust boundary.","newHouseholdButton":"New household","actionAddChild":"Add child","actionInviteCoParent":"Invite co-parent","actionLinkFamily":"Link family","actionLinkChild":"Add existing child","modalClose":"Close","cancel":"Cancel","searchUserPlaceholder":"Search by username…","searchingLabel":"Searching…","createTitle":"Create a household","nameLabel":"Household name","namePlaceholder":"e.g. The Smith Family","createButton":"Create household","creating":"Creating…","emptyTitle":"No households yet","emptyBody":"Create your first household to get started.","membersTitle":"Members","roleParent":"Parent","roleChild":"Child","loadError":"Couldn't load your households. Please try again.","createError":"Couldn't create the household. Please try again.","addChildTitle":"Add a child","childFirstNameLabel":"First name","childFirstNamePlaceholder":"e.g. Lisa","childLastNameLabel":"Last name (optional)","childBirthdayLabel":"Birthday","childRelationLabel":"Relation (optional)","relationNone":"Not set","addChildButton":"Add child","addingChild":"Adding…","addChildError":"Couldn't add the child. Please try again.","childCreatedTitle":"Child account created","childCreatedBody":"Share this username with {name} so they can log in:","childCreatedHint":"This is {name}'s only way to log in — there's no email or password.","childCreatedFriends":"Connected with {count, plural, one {# family member} other {# family members}}.","childCreatedDismiss":"Got it","childFriendsLabel":"Add as friends (optional)","childFriendsSelectAll":"Select whole family","childFriendsClearAll":"Clear all","inviteCoParentTitle":"Invite a co-parent","inviteUsernameLabel":"Their username","inviteUsernamePlaceholder":"e.g. anna","inviteButton":"Send invite","inviting":"Sending…","inviteError":"Couldn't send the invite. Please try again.","inviteSent":"Invite sent — they'll get a notification to accept.","pendingInvitesTitle":"Co-parent invites","inviteFromBody":"{inviter} invited you to co-parent {household}.","acceptInvite":"Accept","declineInvite":"Decline","inviteActionError":"Something went wrong. Please try again.","linkHouseholdTitle":"Link with another family","linkUsernameLabel":"A parent's username","linkUsernamePlaceholder":"e.g. anna","linkButton":"Request link","linking":"Requesting…","linkError":"Couldn't send the link request. Please try again.","linkSent":"Link request sent — a parent of that household can approve it.","linkedTitle":"Linked families","unlinkButton":"Unlink","pendingLinkRequestsTitle":"Household link requests","linkRequestBody":"{requester} wants to link {fromHousehold} with {toHousehold}.","acceptLink":"Accept","declineLink":"Decline","linkActionError":"Something went wrong. Please try again.","linkChildTitle":"Add an existing child","childLinkUsernameLabel":"Child's username","childLinkUsernamePlaceholder":"e.g. lisa-1234","linkChildButton":"Request to add","linkingChild":"Requesting…","childLinkError":"Couldn't send the request. Please try again.","childLinkSent":"Request sent — a parent who already has this child can approve it.","pendingChildLinkRequestsTitle":"Child link requests","childLinkRequestBody":"{requester} wants to add {child} to {household}.","acceptChildLink":"Accept","declineChildLink":"Decline","childLinkActionError":"Something went wrong. Please try again.","policyManageLink":"Safety","policyTitle":"Safety settings","policyIntro":"Choose who {name} can reach. Each household sets its own rules — the most protective one always wins.","policyBack":"Back to family","policyLoadError":"Couldn't load the safety settings. Please try again.","policyNotFound":"These settings aren't available.","policySave":"Save","policySaving":"Saving…","policySaved":"Saved","policySaveError":"Couldn't save. Please try again.","policyHouseholdReadOnly":"Managed by the other parent — view only","surfaceChat":"Direct messages","surfacePosts":"Who can see posts","surfaceComments":"Who can comment","scopeFullTrustSet":"Everyone in the family","scopeChildrenOnly":"Children only","scopeCustom":"Specific people","customLabel":"Allowed people","customEmpty":"No one selected — this reaches no one.","conflictTitle":"Households disagree","conflictIntro":"Where households chose different rules for {name}, the most protective one applies. Talk it over with the other parent.","conflictHouseholdScope":"{household}: {scope}","devicesManageLink":"Devices","friendsManageLink":"Friends","friendsTitle":"Manage friends","friendsIntro":"Choose which family members {name} is friends with.","friendsPickLabel":"Family members","friendsEmpty":"No family members to connect with yet.","friendsSave":"Save changes","friendsSaving":"Saving…","friendsSaved":"Saved","friendsSkippedBlocked":"{count, plural, one {# person skipped (blocked)} other {# people skipped (blocked)}}","friendsLoadError":"Couldn't load friends. Please try again.","friendsSaveError":"Couldn't save. Please try again.","friendsNotFound":"Not found.","childLoginApproval":{"title":"Approve login for {username}","subtitle":"Coming from {household}","deviceLabel":"Device","ipLabel":"IP address","ipUnknown":"Unknown","requestedLabel":"Requested","expiresLabel":"Expires","approve":"Approve","deny":"Deny","working":"Working…","approved":"Approved","denied":"Denied","doneDescription":"Your child has been notified.","loading":"Loading…","expiredTitle":"Link expired","expiredDescription":"This approval link is no longer pending — it was already handled or has expired.","notFoundDescription":"We couldn't find this approval. The link may be invalid.","backToFamily":"Back to family","safetyHint":"Only approve if you recognise the device and the request. Approving lets the child log in for 30 days on that device without asking again.","respondError":"Couldn't record your response. Please try again.","inlineTitle":"{username} wants to log in","inlineUnavailable":"This request has expired or was already handled.","inlineLoadError":"Couldn't load this request.","inlineRetry":"Try again"},"devices":{"title":"Approved devices","subtitle":"Devices your child has been logged in on. Revoke any you don't recognise.","back":"Back","loading":"Loading…","empty":"No approved devices.","revoke":"Revoke","approvedAt":"Approved {when}","lastUsed":"Last used {when}","error":"Something went wrong. Please refresh and try again."},"moderationQueueLink":"Posts waiting for review","moderation":{"title":"Posts to review","subtitle":"Posts from your children waiting for you or another parent to approve before they reach others.","back":"Back","loading":"Loading…","empty":"Nothing to review right now.","approve":"Approve","reject":"Reject","working":"Working…","loadError":"Couldn't load the queue. Please refresh and try again.","actionError":"Couldn't save. Please try again.","moreImages":"+{count} more","queueBadge":"{count} to review"},"approvalBanner":{"pending":"Waiting for a parent to approve.","rejected":"A parent rejected this post."},"treeLink":"Family tree","tree":{"title":"Family tree","subtitle":"See your households and the families directly linked to yours. Click a member to open their mini-profile.","back":"Back","loading":"Loading…","loadError":"Couldn't load the family tree. Please refresh and try again.","empty":"Nothing to show — you don't belong to any household yet.","noHouseholds":"You don't belong to any household yet.","pickerLabel":"Pick a household to centre the tree on","ariaLabel":"Family tree diagram","miniProfileTitle":"Profile for {name}","role":"Role","roleParent":"Parent","roleChild":"Child","relation":"Relation","viewProfile":"View full profile","close":"Close"},"promoteToAdult":"Promote to adult","editRelationButton":"Edit my relation","setRelationButton":"Set my relation","editRelationLabel":"Your relation in this household","editRelationSave":"Save","editRelationSaving":"Saving…","editRelationCancel":"Cancel","editRelationError":"Couldn't save the relation. Please try again.","promoteDialog":{"title":"Promote {name} to an adult account","intro":"Your child will receive a one-time email link. They set their own password and take ownership of the account — it becomes a regular adult user. Existing memberships in your households convert to the Family group on the friends side.","emailLabel":"Email to send the link to","emailHint":"Pick an email your child can access. We reject the request if the email is already in use by another account.","submit":"Send claim email","sending":"Sending…","successTitle":"Email sent","successBody":"We sent the claim link to {email}. The link expires in 7 days.","errors":{"underage":"{name} isn't 18 yet — promotion requires the child to be at least 18 years old.","emailInUse":"That email is already in use by another account. Try a different one.","notParent":"We couldn't find this child in any of your households.","generic":"Couldn't send the claim email. Please try again."},"close":"Close"},"activityLink":"Activity & moderation","activity":{"title":"Family activity","subtitle":"Comments, reactions, and new conversations on your children's content. Hide anything you don't want them to see.","back":"Back","loading":"Loading…","empty":"Nothing new on your children's content.","loadError":"Couldn't load activity. Please refresh and try again.","actionError":"Couldn't save. Please try again.","viewPost":"View post","hide":"Hide","block":"Block","working":"Working…","alreadyHidden":"Hidden","onPost":"On post: {snippet}","headline":{"comment":"{actor} commented on {child}'s post","reaction":"{actor} reacted to {child}'s post","conversation":"{actor} is in a conversation with {child}"}},"unlinkError":"Couldn't remove the link. Please try again."},"error":{"crash":{"title":"Something broke","description":"An unexpected error crashed this page. It's not your fault — try again, or head home while we clean up.","digest":"// error code: {digest}","tryAgain":"Try again","goHome":"Take me home"},"notFound":{"title":"You just got 404'd","description":"Looks like a developer tripped on some wire and took this page down with them.","todo":"// TODO: put the page back","home":"Take me home","back":"Go back"}},"legal":{"reAcceptance":{"pageTitle":"The terms have been updated","intro":"Before you keep slafing, you need to accept the updated terms and privacy policy.","whatChanged":"What changed?","changelog":{"2026-04-18":["We haven't changed how Slaf works — just put it on paper so it's clear."]},"readFull":"Read the <terms>terms</terms> and the <privacy>privacy policy</privacy> in full.","accept":"Accept","accepting":"Accepting…","error":"Something went wrong — try again.","logout":"Not ready? Log out"}},"imageEditor":{"title":"Edit image","sectionTransform":"Transform","sectionAdjust":"Adjust","sectionFilters":"Filters","sectionDetails":"Details","flipH":"Flip horizontal","flipV":"Flip vertical","rotateLeft":"Rotate left","rotateRight":"Rotate right","straighten":"Straighten","crop":"Crop","cropActive":"Drag on the image to set crop area","clearCrop":"Clear crop","brightness":"Brightness","contrast":"Contrast","saturation":"Saturation","resetAdjustments":"Reset","filterNone":"None","filterVivid":"Vivid","filterWarm":"Warm","filterCool":"Cool","filterBw":"B&W","filterFade":"Fade","filterDramatic":"Dramatic","filterGolden":"Golden","filterNoir":"Noir","filterCinema":"Cinema","captionLabel":"Caption","captionPlaceholder":"Add a caption…","altLabel":"Alt text","altPlaceholder":"Describe the image for accessibility…","save":"Save","saving":"Saving…","cancel":"Cancel","close":"Close","saveError":"Failed to save"},"upload":{"errorNoFiles":"No file was selected.","errorTooManyFiles":"You can upload at most 10 files at a time.","errorUnsupportedType":"That file type isn't supported. Use JPEG, PNG, WebP, GIF, or HEIC.","errorTooLarge":"That file is too large. The limit is {limit}.","errorNotAnImage":"That file can't be read as an image. It may be corrupt.","errorDimensionsTooLarge":"That image has too many pixels. Scale it down and try again.","errorNotAuthenticated":"You're no longer signed in. Sign in and try again.","errorUploadFailed":"The upload failed. Please try again."},"places":{"pickerLabel":"Place","pickerPlaceholder":"Search for a place…","pickerButtonLabel":"Add place","pickerRemoveLabel":"Remove place","pickerNoResults":"No places found","pickerError":"Search failed — try again","verifiedLabel":"Verified place","atPlace":"at {place}","pickerCreateOption":"Create a new place","pickerFromOsm":"OSM","createTitle":"New place","createNameLabel":"Name","createCategoryLabel":"Category","createSubmit":"Create place","createCancelLabel":"Cancel new place","createNeedsPosition":"Slaf needs your position to pin the place. Allow location access in your browser and open the place picker again.","createWaitingForPosition":"Getting your position…","createFailed":"The place could not be created — try again","duplicatePrompt":"A place with that name already exists nearby. Did you mean one of these?","duplicateCreateAnyway":"Create anyway","pageCheckInCount":"{count, plural, =0 {No check-ins} one {# check-in} other {# check-ins}}","pageOpenInOsm":"Open in OpenStreetMap","pageEmpty":"Nobody has checked in here yet","pageEmptySub":"Add the place to a post and it shows up here.","pageNotFound":"Place not found","pageNotFoundSub":"The place may have been removed, or it does not exist.","pageBack":"Go back","pageReport":"Report this place","pageReported":"Reported","pageLoadFailed":"The place couldn't be loaded — try again","pageRetry":"Try again","exploreTitle":"Places","exploreSubtitle":"Discover places Slaf members have checked in to.","exploreVerifiedOnly":"Verified only","exploreNearbyTitle":"Near me","exploreNearbyAsk":"Show places near me","exploreNearbyLocating":"Getting your position…","exploreNearbyDenied":"Slaf didn't get your position, so the Near me section is off. Allow location access in your browser and reload the page.","exploreNearbyEmpty":"No places within a few kilometres of here yet.","exploreNearbyFailed":"The places near you couldn't be loaded — try again","explorePopularTitle":"Popular this month","explorePopularEmpty":"Nobody has checked in anywhere in the past month.","explorePopularFailed":"The popular places couldn't be loaded — try again","exploreRetry":"Try again","categoryCafe":"Café","categoryRestaurant":"Restaurant","categoryBar":"Bar","categoryBrewery":"Brewery","categoryPark":"Park","categoryPlayground":"Playground","categoryNature":"Nature","categorySport":"Sport","categoryCulture":"Culture","categoryShop":"Shop","categoryHome":"Home","categoryOther":"Other"},"badges":{"earnedToast":"New badge: {emoji} {name} · level {level}","shelfLabel":"Badges","emptyOwn":"No badges yet. Check in somewhere and the first one will follow.","emptyOther":"No badges yet.","loadError":"The badges could not be loaded.","retry":"Try again","secretTeaser":"{count, plural, one {# hidden badge left to discover} other {# hidden badges left to discover}}","levelOf":"Level {level} of {maxLevel}","secret":"Secret badge","earned":"Unlocked {when}","progressLabel":"To level {level}","topLevel":"Top level. There is nothing more to take here.","retired":"This badge is no longer awarded. The level you reached is yours."},"photoTags":{"tagButton":"Tag","tagButtonLabel":"Tag people in the photo","doneButton":"Done","tagModeHint":"Tap where the person is in the photo.","crosshairLabel":"Choose where the person is in the photo. Arrow keys move, Shift takes bigger steps and Enter picks the person.","crosshairPosition":"{x} % from the left, {y} % from the top","showTags":"{count, plural, one {Show # tag} other {Show # tags}}","hideTags":"Hide tags","markerLabel":"{username}","markerPendingLabel":"{username}, waiting for an answer","markerPending":"Waiting for an answer","markerProfileLink":"Go to profile","markerMenuLabel":"{username} in the photo","removeTag":"Remove","removeTagLabel":"Remove the tag of {username}","removing":"Removing…","withdrawNote":"You can't be tagged in this photo again.","removeFailed":"The tag could not be removed.","tagRemoved":"The tag of {username} was removed.","withLine":"with <first>{firstName}</first>{rest, plural, =0 {} =1 { and <second>{secondName}</second>} other { and <more># others</more>}}","pendingLine":"Waiting for {names} to answer","pickerLabel":"Who is this?","pickerPlaceholder":"Search your friends","pickerLoading":"Loading friends…","pickerNoResults":"No friend matches.","pickerEmpty":"There is no friend to tag in this photo.","pickerError":"Your friends could not be loaded.","pickerCancel":"Cancel","tagFailed":"The tag could not be added. Try again.","taggedInEmpty":"You're not tagged in any photos yet","taggedInEmptySub":"When a friend tags you and you approve, the photo shows up here.","taggedInEmptyOther":"@{username} isn't tagged in any photos yet","tagsOfMeTitle":"Tags of you","tagsOfMeSubtitle":"Photos a friend has tagged you in. Answer requests and remove tags you don't want to keep.","tagsOfMeHint":"Once you decline or remove a tag, the same person can't tag you in that photo again.","tagsOfMeCount":"{count, plural, one {# tag} other {# tags}}","tagsOfMePending":"<name>{username}</name> wants to tag you in a photo.","tagsOfMeApproved":"<name>{username}</name> tagged you in a photo.","tagsOfMeDarkPending":"<name>{username}</name> wants to tag you in a photo you can no longer see.","tagsOfMeDarkApproved":"<name>{username}</name> tagged you in a photo you can no longer see.","tagsOfMeOpenPhoto":"Open the photo from {username}","tagsOfMeApprove":"Approve","tagsOfMeApproveLabel":"Approve the tag from {username}","tagsOfMeDecline":"Decline","tagsOfMeDeclineLabel":"Decline the tag from {username}","tagsOfMeRemoveLabel":"Remove the tag from {username}","tagsOfMeAnswerFailed":"Your answer could not be saved. Try again.","tagsOfMeLoadError":"Your tags could not be loaded.","tagsOfMeEmpty":"Nobody has tagged you in a photo yet.","tagsOfMeLoadMore":"Show more","tagsOfMeBack":"Privacy","requestLine":"{owner} wants to tag you in this photo.","markerOwnPendingLabel":"{username} (you), waiting for your answer","requestLineUnnamed":"You've been tagged in this photo.","declineNote":"If you decline, you can't be tagged in this photo again."},"landing":{"headerNav":"Main menu","navAbout":"About Slaf","navLogin":"Log in","eyebrow":"Slaf – Stället!","headline":"A Swedish social network for chatting and","headlineAccent":"hanging out.","lead":"Slaf is a place for community, humour and everyday life, without chasing likes or building a brand. Share photos and thoughts, chat with friends, talk in the forum and find people who like the same things you do.","ctaRegister":"Create account","ctaLogin":"Log in","betaNote":"Slaf is in closed beta. You need an invitation code from someone who is already a member.","featuresTitle":"What you can do on Slaf","features":{"feed":{"title":"Feed and posts","body":"Share thoughts, photos and video. Comment, react and follow the people you like."},"chat":{"title":"Chat and friends","body":"Message friends one to one or in group chats, and see who is online right now."},"forum":{"title":"Forum","body":"General discussion, hot takes, questions and anything else on your mind."},"albums":{"title":"Photos and albums","body":"Gather your photos in albums and tag the friends who are in them."},"games":{"title":"Games","body":"Keep track of your game collection, write reviews and play against others right in the browser."},"food":{"title":"Food and drink","body":"Recipes, restaurant finds, beer and cocktails, and home brewing with your own brew recipes."},"places":{"title":"Places","body":"Check in at cafés, parks and arenas and see where other members have been."}},"privacyTitle":"What you share stays among members","privacy":{"loggedOut":"Nothing members post is visible to anyone who is not logged in, and that includes search engines.","audience":"For each post you choose whether all members, your friends, your family or only you can see it.","data":"We collect as little data as possible, sell nothing and use no tracking or advertising cookies."},"privacyLink":"Read the privacy policy","faqTitle":"Frequently asked questions","faq":{"what":{"q":"What is Slaf?","a":"A Swedish social network built by a slaf, for other slafs. The idea is to make the internet fun again: a place for chatting, community and humour, where nobody has to be perfect."},"join":{"q":"How do I join?","a":"Slaf is in closed beta right now. Ask someone who is already a member for an invitation code, then create your account. If you don't know anyone here, you can ask us for an invitation with the form above. You must be at least 16."},"cost":{"q":"Does it cost anything?","a":"No, being on Slaf is free."},"app":{"q":"Is there an app?","a":"Slaf works in the browser on both phone and computer, and you can add it to your home screen so it opens like an app."},"language":{"q":"Is Slaf available in English?","a":"Yes. Slaf starts out in Swedish, but you can switch to English whenever you like."}},"closingTitle":"Join us!","closingBody":"Got an invitation code? Create your account in a minute.","requestInvite":{"heroLink":"No code? Ask for an invitation","title":"Ask for an invitation","intro":"Don't know anyone who's already a member? Tell us who you are, and we'll send you an invitation code if there's room.","emailLabel":"Email","nameLabel":"Name or nickname","messageLabel":"Anything you'd like to tell us?","optional":"(optional)","messagePlaceholder":"For example who you know on Slaf or how you found us","ageLabel":"I am 16 or older","consent":"We keep what you write here only so that we can answer you. If you get no answer it is deleted after 90 days, and once we have answered it is deleted 30 days later. More in the <privacy>privacy policy</privacy>.","submit":"Send request","submitting":"Sending…","sentTitle":"Thanks! We've got your request.","sentBody":"If there's room, we'll send an invitation code to your email. If you don't hear from us, there's no room right now.","errorChallenge":"The robot check didn't go through. Wait until it's done and try again.","errorRateLimited":"A few too many tries in a short time. Wait a minute and try again.","errorInvalid":"Check the fields: we need a valid email address and a name.","errorUnavailable":"We can't take requests right now. Try again in a while.","errorDefault":"Something went wrong. Try again in a while."}}}