{
  "common": {
    "or": "or",
    "save": "Save",
    "back": "Back",
    "cancel": "Cancel",
    "close": "Close",
    "continue": "Continue",
    "loading": "Loading…",
    "email": "Email",
    "password": "Password"
  },
  "menu": {
    "vibesMenu": "Main Menu",
    "userMenu": "User Menu",
    "main": "Main",
    "home": "Home",
    "discovery": "Discovery",
    "search": "Search",
    "vault": "Vault",
    "myProfile": "My Profile",
    "changeAvatar": "Change Avatar",
    "userSettings": "User Settings",
    "logOut": "Log Out",
    "deleteAccount": "Delete account",
    "submit": "Publish Work",
    "scheduled": "Scheduled",
    "deviantArtImport": "DeviantArt Import",
    "settings": "Settings",
    "language": "Language",
    "dev": "Dev",
    "devUpdates": "Updates",
    "previewSync": "Preview sync",
    "tagAdmin": "Manage tags"
  },
  "auth": {
    "login": "Login",
    "register": "Register",
    "restorePassword": "Restore Password",
    "forgotPassword": "Forgot Password",
    "sendResetEmail": "Send reset email",
    "resetPasswordHint": "Enter your email and we will send you a link to reset your password.",
    "setNewPasswordHint": "Choose a new password for your account.",
    "updatePassword": "Update password",
    "backToLogin": "Back to login",
    "noUserYet": "Don't have an account yet?",
    "hasUserAlready": "You already have a user?",
    "invalidEmailFormat": "Invalid email format",
    "invalidPasswordFormat": "Invalid password format",
    "passwordNotMatch": "The password does not match",
    "repeatPassword": "Repeat password",
    "passwordRequiresLowercase": "Requires a lowercase letter",
    "passwordRequiresUppercase": "Requires an uppercase letter",
    "passwordRequiresDigit": "Requires one digit",
    "passwordRequiresSpecial": "Add a special character",
    "passwordRequiresMinLength": "At least 8 characters",
    "passwordRequirementsTitle": "Your password must include:",
    "registrationBlocked": "Registration could not be completed. Please try again.",
    "signInWithGoogle": "Sign in with Google",
    "signInWithDiscord": "Sign in with Discord",
    "signInWithX": "Sign in with X"
  },
  "eula": {
    "title": "End User License Agreement (EULA)",
    "viewLink": "EULA",
    "acceptInModal": "Accept",
    "acceptCheckbox": "I accept the EULA",
    "acceptPrefix": "I accept the ",
    "mustAcceptHint": "Please accept the EULA to continue.",
    "sections": {
      "acceptance": {
        "title": "1. Acceptance of this agreement",
        "body": "This End User License Agreement (the \"Agreement\") is a binding contract between you and TFVibe (the \"Platform\"). By creating an account, signing in, or otherwise using the Platform, you confirm that you have read, understood, and agree to be bound by this Agreement. If you do not agree, do not use the Platform."
      },
      "eligibility": {
        "title": "2. Eligibility",
        "body": "You may use the Platform only if you have reached the age of majority in your country of residence and can lawfully enter into a binding contract. Areas of the Platform marked as adult content are restricted to users aged 18 or over. You are responsible for ensuring that your use of the Platform is lawful where you live."
      },
      "license": {
        "title": "3. License to use the Platform",
        "body": "We grant you a limited, personal, non-exclusive, non-transferable, and revocable license to access and use the Platform for its intended purpose. You may not copy, modify, distribute, sell, or reverse engineer any part of the Platform except where the law expressly permits it or we have agreed in writing."
      },
      "account": {
        "title": "4. Your account",
        "body": "You are responsible for keeping your credentials confidential and for everything that happens under your account. Provide accurate information when you register and keep it up to date. If you suspect unauthorized access to your account, change your password and contact us without delay."
      },
      "userContent": {
        "title": "5. Your content",
        "body": "You keep ownership of the content you create and share. By posting it, you grant TFVibe a worldwide, non-exclusive, royalty-free license to host, store, reproduce, display, and distribute that content solely to operate, promote, and improve the Platform. You confirm that you hold all rights necessary to share everything you post."
      },
      "prohibitedContent": {
        "title": "6. Prohibited content and conduct",
        "body": "You must not publish, share, or link to content that is illegal; sexualizes or endangers minors; depicts a person without their consent; promotes terrorism, violence, or self-harm; constitutes hate speech or targeted harassment; contains malware, spam, or deceptive schemes; impersonates another person; or infringes intellectual property, privacy, or other rights. You must also not disrupt, probe, or overload the Platform or interfere with other users' enjoyment of it."
      },
      "moderation": {
        "title": "7. Moderation, suspension, and termination",
        "body": "We may review, restrict, or remove content and suspend or terminate accounts that violate this Agreement or applicable law, with or without prior notice depending on the severity of the violation. You may stop using the Platform and delete your account at any time. Provisions that by their nature should survive termination — such as content licenses, liability limits, and governing law — remain in effect."
      },
      "limitationOfLiability": {
        "title": "8. Disclaimers and limitation of liability",
        "body": "The Platform is provided \"as is\" and \"as available\", without warranties of any kind, whether express or implied. To the fullest extent permitted by applicable law, TFVibe and its operators are not liable for user-generated content or for indirect, incidental, or consequential damages arising from your use of the Platform. Nothing in this Agreement limits liability that cannot be limited under mandatory law."
      },
      "changes": {
        "title": "9. Changes to this agreement",
        "body": "We may update this Agreement from time to time, for example when we launch new features or when legal requirements change. If a change is material, we will notify you through the Platform before it takes effect. By continuing to use the Platform after the updated Agreement takes effect, you accept the new terms."
      },
      "governingLaw": {
        "title": "10. Governing law",
        "body": "This Agreement is governed by the substantive laws of Switzerland, excluding its conflict-of-law rules. If you are a consumer in the European Union or Switzerland, you keep the mandatory rights and protections of the law of your habitual residence wherever they cannot be waived by contract."
      },
      "contact": {
        "title": "11. Contact",
        "body": "If you have questions about this Agreement or need to raise a legal matter, write to us at legal@tfvibe.com. We review every inquiry and respond as quickly as we can."
      }
    }
  },
  "a11y": {
    "showPassword": "Show password",
    "hidePassword": "Hide password",
    "dismissContinuation": "Dismiss continuation",
    "openMainMenu": "Open main menu",
    "closeMenu": "Close menu",
    "openNotifications": "Open notifications",
    "openChats": "Open chats",
    "openUserMenu": "Open user menu",
    "userAvatar": "{{name}} avatar",
    "croppedImagePreview": "Image preview",
    "authHeroImage": "TFVibe branding",
    "openSearch": "Open search",
    "viewViberProfile": "View {{name}}'s viber page",
    "enableDesktopNotifications": "Enable desktop notifications",
    "disableDesktopNotifications": "Disable desktop notifications"
  },
  "authHint": {
    "message": "Hey bud, register or login first, then you can use all of these features",
    "sonicAlt": "Sonic the Hedgehog waving"
  },
  "settings": {
    "title": "Your profile",
    "subtitle": "Update your account details.",
    "userTag": "User tag",
    "userTagTaken": "{{tag}} is already taken",
    "userTagAvailable": "user tag available",
    "userTagCooldown": "You can change your user tag again on {{date}}.",
    "userTagChangePolicy": "*The user tag can be changed once every month.",
    "userTagCooldownTimer": "Available again in {{time}}.",
    "userTagHint": "*Your username should be between 3–35 characters and be fully lowercase and it can have numbers",
    "userTagUrlInvalid": "*Your username should be between 3–35 characters and be fully lowercase and it can have numbers",
    "userTagUrlPreview": "{{url}}",
    "userTagInvalidFormat": "*Your username should be between 3–35 characters and be fully lowercase and it can have numbers",
    "username": "Username",
    "usernameHint": "2–50 characters",
    "usernameInvalidLength": "Must be between 2 and 50 characters",
    "usernameTaken": "{{name}} is already taken",
    "birthday": "Birthday",
    "birthdayHint": "Your date of birth",
    "birthdayPlaceholder": "Select date",
    "gender": "Gender",
    "male": "Male",
    "female": "Female",
    "other": "Other",
    "custom": "Other",
    "adultContent": "I want to be able to see adult content",
    "adultContentNote": "*You must be over 18 to choose this option",
    "blockAiContent": "Hide AI-generated publications",
    "blockAiContentNote": "When enabled, AI-labeled works are hidden from your discovery gallery.",
    "audioAutoplay": "Auto-play work audio",
    "audioAutoplayNote": "When on, works with audio start playing automatically. You can stop playback anytime.",
    "audioAutoplayPromptTitle": "Play audio automatically?",
    "audioAutoplayPromptBody": "Some works include sound. Would you like audio to start playing automatically when you open them? You can change this anytime in settings.",
    "audioAutoplayEnable": "Enable autoplay",
    "audioAutoplayKeepOff": "Keep it off",
    "audioPlayerLabel": "Audio",
    "audioPlay": "Play audio",
    "audioStop": "Stop audio",
    "audioUnsupported": "This audio format isn't supported by your browser.",
    "interestTags": "Your interest tags",
    "interestTagsHint": "Select the tags you don't want — we'll use the rest to explore what you might like."
  },
  "profile": {
    "gender": "Gender",
    "birthday": "Birthday"
  },
  "tags": {
    "searchPlaceholder": "Search tags…",
    "searchHint": "Type to search the live tag catalog — matches name, slug, and category.",
    "browse": "All tags",
    "browseCategoryHint": "Tap a tag to add or remove it. Use search to filter the list.",
    "selected": "Selected",
    "suggestions": "Matches",
    "addTag": "Add {{tag}}",
    "removeTag": "Remove {{tag}}",
    "noMatches": "No tags match your search.",
    "want": "Want",
    "dislike": "Don't want",
    "default": "Not selected",
    "noneSelected": "No selected",
    "addWantTag": "Mark {{tag}} as want",
    "addDislikeTag": "Mark {{tag}} as don't want",
    "removeWantTag": "Remove {{tag}} from want",
    "removeDislikeTag": "Remove {{tag}} from don't want"
  },
  "scheduled": {
    "title": "Scheduled publications",
    "subtitle": "Upcoming and recently published scheduled work.",
    "empty": "Nothing scheduled yet. Use Schedule when publishing to plan a go-live time.",
    "emptyFilter": "No entries in this time range. Widen the from/to dates to see more.",
    "filterFrom": "From",
    "filterTo": "To",
    "filterHint": "Showing entries by publish time within the selected range.",
    "filterRangeInvalid": "“From” must be on or before “To”.",
    "pending": "Scheduled",
    "overdue": "Overdue — not published",
    "published": "Published",
    "viewPost": "View work",
    "allDone": "All scheduled works published"
  },
  "deviantartImport": {
    "title": "Import captions",
    "subtitle": "Export a DeviantArt gallery with the Chrome extension, then import the ZIP here. Only import content you own or may re-host.",
    "tabLocal": "Import ZIP",
    "tabExtension": "Export extension",
    "tagsHeading": "Tags & consent",
    "tagsHint": "Pick at least one tag for imported captions.",
    "consent": "I confirm I own these works and consent to re-host images on TFVibe for my imports.",
    "alreadyImported": "Already imported",
    "bulkResult": "Imported {{imported}}, skipped {{skipped}}, failed {{failed}}",
    "errors": {
      "tagsRequired": "Select at least one tag",
      "generic": "Import failed — try again"
    },
    "local": {
      "heading": "Import export bundle",
      "hint": "Select the ZIP file exported from DeviantArt with the TFVibe Chrome extension. Images and metadata are loaded from the bundle.",
      "pickExportBundle": "Import export bundle (ZIP)",
      "pickExportFolder": "Import from folder",
      "pickExportFolderFiles": "Select export folder",
      "bundleLoaded": "Export bundle loaded",
      "bundleInvalid": "Could not read export bundle",
      "imageCount": "{{count}} images",
      "importAll": "Publish all ({{count}})",
      "clear": "Clear list",
      "removeItem": "Remove from list",
      "progress": "Publishing {{done}} / {{total}}",
      "chooseFolder": "Choose destination folder",
      "changeFolder": "Change destination folder",
      "chooseFolderHint": "Pick the folder where imported works will be saved before publishing.",
      "destinationFolder": "Saving to: {{folder}}",
      "noFolders": "Create a folder in your vault first, then choose it here."
    },
    "session": {
      "heading": "DeviantArt browser extension",
      "hint": "Use the TFVibe extension to export your DeviantArt gallery to a Downloads folder, then import that folder with \"Select export folder\" on the Local tab.",
      "getHeading": "Get the TFVibe extension",
      "installStep1": "Download the ZIP above and unzip it to a folder you'll keep.",
      "installStep2": "Open brave://extensions or chrome://extensions in your browser.",
      "installStep3": "Turn on Developer mode (top-right toggle).",
      "installStep4": "Click \"Load unpacked\" and select the unzipped folder.",
      "installStep5": "Pin the extension, open your DeviantArt gallery, and use the TFVibe export button.",
      "installHint": "Install the TFVibe DeviantArt Importer extension for Chrome, then click Check again.",
      "installExtension": "Install Chrome extension",
      "downloadExtension": "Download extension (ZIP)",
      "devInstallHint": "For sideloading: download the ZIP below, unzip it, then chrome://extensions → Developer mode → Load unpacked → select the unzipped folder.",
      "checkExtension": "Check extension",
      "extensionReady": "Extension ready. Export your gallery to a Downloads folder, then import it with \"Select export folder\" on the Local tab.",
      "openDeviantArt": "Open DeviantArt",
      "step1": "Install the extension above and click Check extension.",
      "step2": "Open DeviantArt and log in to your account.",
      "step3": "On your gallery, use the TFVibe export button to save your works to a Downloads folder, confirming the ownership warning.",
      "ownershipWarning": "If you export someone else's gallery and import it on TFVibe, your account may be removed or transferred to the correct owner if they request it.",
      "step4": "Switch to Import ZIP → Import export bundle → select the ZIP → publish."
    },
    "cleanup": {
      "heading": "Recent DeviantArt imports",
      "summary": "{{count}} imports in the last 24 hours ({{broken}} missing images)",
      "empty": "No DeviantArt imports in the last 24 hours.",
      "title": "Delete recent imports?",
      "confirmAll": "Delete all {{count}} DeviantArt imports from the last 24 hours? This cannot be undone.",
      "confirmMixed": "Delete {{count}} recent imports ({{broken}} are missing images)? This cannot be undone.",
      "delete": "Delete",
      "deleteRecent": "Delete recent imports ({{count}})",
      "deleted": "Deleted {{count}} imported works"
    }
  },
  "publish": {
    "subtitle": "Choose a type, then fill in the details for your work.",
    "continuingFrom": "Continuing from {{title}}",
    "enterFullscreen": "Expand to full screen",
    "exitFullscreen": "Exit full screen",
    "stepType": "Publication type",
    "coverImage": "Cover image",
    "coverImageHint": "Optional: this image represents your work in feeds instead of the first gallery image.",
    "stepTypeHint": "Pick the format that matches what you are publishing.",
    "stepProgress": "Publication progress",
    "sectionTitle": "Base info",
    "comingSoon": "Coming soon",
    "title": "Title",
    "titlePlaceholder": "Give your work a title",
    "description": "Description",
    "descriptionPlaceholder": "Describe your work…",
    "usesAi": "This work uses AI",
    "usesAiHint": "Label your publication if AI helped create the text or images.",
    "isMature": "Mature content",
    "isMatureHint": "Mark this work as mature if it contains adult themes or nudity.",
    "body": "Body",
    "bodyPlaceholder": "Write the main content in markdown…",
    "pagesSection": "Pages",
    "pagesHint": "Add one or more pages for your literature work.",
    "page": "Page {{number}}",
    "pageBody": "Page content",
    "addPage": "Add page",
    "pagesPager": "Literature pages",
    "removePage": "Remove page",
    "images": "Images",
    "imagesHint": "Add images for your art or caption publication. Captions are always treated as SFW. If only an NSFW image is provided, viewers without mature content enabled will still see the image, but caption text must remain SFW.",
    "imageLabel": "Image Description",
    "imageLabelPlaceholder": "Describe this image (optional)",
    "addDescription": "Add image description",
    "imageVariantSfw": "SFW",
    "imageVariantNsfw": "NSFW",
    "addSfwVariant": "Add SFW variant",
    "addNsfwVariant": "Add NSFW variant",
    "toggleSfwNsfw": "Swap SFW / NSFW",
    "turnSfw": "Mark as SFW",
    "turnNsfw": "Mark as NSFW",
    "reupload": "Reupload",
    "viewingSfw": "Viewing SFW",
    "viewingNsfw": "Viewing NSFW",
    "removeImage": "Remove image",
    "moveImageLeft": "Move image left",
    "moveImageRight": "Move image right",
    "tags": "Tags",
    "submit": "Publish",
    "failed": "Could not publish your work",
    "poll": {
      "enable": "Add a poll to this work",
      "enableHint": "Optional. Viewers can vote once and change their vote later.",
      "question": "Poll question",
      "questionPlaceholder": "What do you want to ask?",
      "options": "Options",
      "optionPlaceholder": "Option label",
      "addOption": "Add option",
      "removeOption": "Remove option",
      "removeImage": "Remove image",
      "optionsHint": "Each option needs a label and/or an image (2–10 options).",
      "invalid": "Complete the poll question and at least two options before publishing"
    },
    "giveaway": {
      "section": "Giveaway",
      "enable": "Add a giveaway to this work",
      "enableHint": "Optional. Viewers enter with one click; winners are drawn automatically when it ends.",
      "endsAt": "Giveaway ends",
      "endsAtPast": "Giveaway end time must be in the future",
      "endsAtBeforePublish": "Giveaway must end after the scheduled publish time",
      "winnerCount": "Number of winners",
      "prizes": "Prizes",
      "prize": "Prize {{number}}",
      "prizePlaceholder": "Describe this prize (markdown supported)",
      "addPrize": "Add prize",
      "hint": "You need at least as many prizes as winners.",
      "invalid": "Complete the giveaway prizes and end time before publishing"
    },
    "schedule": {
      "section": "Schedule",
      "enable": "Schedule publication",
      "publishAt": "Publish at",
      "hint": "If the time is in the future, the work stays hidden until then.",
      "past": "Choose a publish time in the future"
    }
  },
  "builder": {
    "section": "Build your work",
    "sectionHint": "Drag a component from the top onto the canvas (or tap to add it), then configure it. Reorder anything with the handle.",
    "paletteLabel": "Content components",
    "paletteHint": "Drag or tap a component to add it",
    "emptyTitle": "Start building",
    "emptyHint": "Drag a component here, or tap one above to add it.",
    "dragHandle": "Drag to reorder",
    "moveUp": "Move up",
    "moveDown": "Move down",
    "collapseBlock": "Collapse component",
    "expandBlock": "Expand component",
    "removeBlock": "Remove component",
    "headingLevel": "Heading size",
    "headingLarge": "Large heading",
    "headingSmall": "Small heading",
    "headingPlaceholder": "Heading text…",
    "textPlaceholder": "Write something…",
    "headerPlaceholder": "Write a header for all your works…",
    "footerPlaceholder": "Write a footer for all your works…",
    "profileChromeHint": "Shared between your works — every work you add this block to shows the same content, and editing it here updates them all.",
    "quotePlaceholder": "Quote text…",
    "quoteCitePlaceholder": "Attribution (optional)",
    "calloutToneLabel": "Callout tone",
    "calloutPlaceholder": "Callout text…",
    "calloutTone": {
      "info": "Info",
      "warning": "Warning",
      "success": "Success"
    },
    "imageDropHint": "Drop an image here or tap to choose",
    "replaceImage": "Replace",
    "galleryCurrent": "Current images",
    "galleryDropHint": "Drop images here or tap to choose (add several for a gallery)",
    "galleryDropVariantSfw": "Drop to add the SFW version of this image",
    "galleryDropVariantNsfw": "Drop to add the NSFW version of this image",
    "galleryDropVariantReplace": "Drop to replace the current version",
    "pollLocked": "This poll is live and can't be edited — you can only move it.",
    "giveawayLocked": "This giveaway is live and can't be edited — you can only move it.",
    "block": {
      "heading": "Heading",
      "headingHint": "Section heading",
      "text": "Text",
      "textHint": "Rich text paragraph",
      "image": "Image",
      "imageHint": "Inline image",
      "gallery": "Gallery",
      "galleryHint": "Multiple images with SFW/NSFW",
      "pages": "Pages",
      "pagesHint": "Multi-page text",
      "quote": "Quote",
      "quoteHint": "Blockquote",
      "callout": "Callout",
      "calloutHint": "Highlighted note",
      "divider": "Divider",
      "dividerHint": "Horizontal rule",
      "poll": "Poll",
      "pollHint": "Let viewers vote",
      "giveaway": "Giveaway",
      "giveawayHint": "Run a prize draw",
      "audio": "Audio",
      "audioHint": "Sound player at the top",
      "header": "Header",
      "headerHint": "Shown above every work on your profile",
      "footer": "Footer",
      "footerHint": "Shown below every work on your profile",
      "cyoa": "CYOA",
      "cyoaHint": "Next-part options at the end",
      "partnav": "Part navigation",
      "partnavHint": "Previous/next part links",
      "input": "Input",
      "inputHint": "Ask the reader a question and save the answer",
      "meter": "Stat bar",
      "meterHint": "Show a saved variable as a progress bar",
      "collab": "Collaboration",
      "collabHint": "Credit co-authors and link related works"
    },
    "cyoa": {
      "isEnding": "This part is an ending",
      "isEndingHint": "Endings offer the reader a way to jump back and try another path.",
      "options": "Next-part options",
      "optionsNeedSave": "Save the work first to link branching options to other parts.",
      "loading": "Loading options…",
      "untitledOption": "Untitled option",
      "gated": "Gated",
      "pending": "Pending proposals from others",
      "acceptedFan": "Accepted fan branches",
      "addOption": "Add an option",
      "searchPost": "Search for a work to link…",
      "pickTarget": "Choose a work to link",
      "changeTarget": "Change linked work",
      "optionLabel": "Option label (what the reader sees)",
      "condName": "Variable",
      "condValue": "Value",
      "addCondition": "Add availability condition",
      "removeCondition": "Remove condition",
      "linkOption": "Link this option",
      "op": {
        "eq": "equals",
        "ne": "not equals",
        "gt": "greater than",
        "lt": "less than",
        "gte": "at least",
        "lte": "at most",
        "exists": "is set",
        "missing": "is not set",
        "contains": "contains"
      }
    },
    "audio": {
      "loading": "Loading sounds…",
      "wholePost": "Whole-work player",
      "addSound": "Choose a sound",
      "none": "No sound",
      "previewError": "Couldn't play \"{{title}}\". Your browser may not support this audio format.",
      "preview": "Preview",
      "stop": "Stop",
      "autoplay": "Autoplay on open",
      "loop": "Loop",
      "category": {
        "effect": "Effect",
        "music": "Music",
        "ambient": "Ambient"
      }
    },
    "input": {
      "key": "Variable name (e.g. gender)",
      "keyHint": "Saved under this name; reuse it as {key} in text and CYOA requirements.",
      "type": "Answer type",
      "typeText": "Text",
      "typeRadio": "One choice",
      "typeCheckbox": "Multiple choices",
      "typeFixed": "Preset value",
      "scope": "Saved for",
      "scopeCyoa": "Whole CYOA",
      "scopePost": "This part only",
      "question": "Question to ask the reader",
      "fixedValue": "Value to set (e.g. true)",
      "options": "Choices",
      "optionLabel": "Choice",
      "addOption": "Add choice",
      "removeOption": "Remove choice",
      "response": "Response after answering (optional)",
      "responseHint": "Shown once answered. Use {key} to weave in saved values.",
      "typeRandom": "Random roll",
      "min": "Minimum",
      "max": "Maximum",
      "randomHint": "Rolls a number between min and max once, saved under the variable. Gate paths with it (e.g. roll ≥ 50).",
      "optionResponse": "Response when picked (optional)"
    },
    "meter": {
      "name": "Variable name",
      "nameHint": "The variable to display — set by an Input or random roll.",
      "label": "Label (optional)",
      "min": "Empty at",
      "max": "Full at",
      "color": "Colour",
      "colorName": {
        "primary": "Primary",
        "secondary": "Secondary",
        "tertiary": "Tertiary",
        "success": "Green",
        "warning": "Amber",
        "danger": "Red"
      }
    },
    "collab": {
      "authors": "Co-authors",
      "works": "Linked works",
      "addAuthors": "Add co-authors",
      "editAuthors": "Edit co-authors",
      "addWorks": "Add works",
      "editWorks": "Edit works",
      "removeAuthor": "Remove co-author",
      "removeWork": "Remove work",
      "untitledWork": "Untitled work",
      "pickAuthors": "Choose co-authors",
      "pickWorks": "Choose works"
    }
  },
  "publicationType": {
    "literature": "Literature",
    "post": "Post",
    "art": "Art",
    "caption": "Caption",
    "comic": "Comic",
    "photo": "Photo",
    "cyoa": "CYOA",
    "visual_novel": "Visual novel",
    "update": "Update"
  },
  "search": {
    "placeholder": "Search works…",
    "suggestions": "Work suggestions",
    "loadingSuggestions": "Searching…",
    "filters": "Search filters",
    "results": "Search results",
    "type": "Type",
    "anyType": "Any type",
    "hideAi": "Hide AI",
    "matureContent": "Mature",
    "clearFilters": "Clear filters",
    "applyFilters": "Apply",
    "filtersSaved": "Search filters saved to your profile.",
    "tagFilter": "Tag filter",
    "filterSearchPlaceholder": "Search categories and tags…",
    "tagFilters": "Tag filters",
    "tagColumn": "Tag",
    "categoryColumn": "Category",
    "includeTag": "Include {{tag}}",
    "excludeTag": "Exclude {{tag}}",
    "resetTagDefault": "Reset {{tag}} to default",
    "showWantedTags": "Wanted",
    "showUnwantedTags": "Unwanted",
    "includeCategory": "Include category {{category}}",
    "excludeCategory": "Exclude category {{category}}",
    "resetCategoryDefault": "Reset category {{category}} to default",
    "expandCategory": "Expand {{category}}",
    "collapseCategory": "Collapse {{category}}",
    "profileTagBadge": "In your profile",
    "mature": {
      "any": "All",
      "hide": "SFW",
      "only": "NSFW"
    },
    "empty": "No works match your search.",
    "emptyCollections": "No public collections match your search.",
    "showVaults": "Show Vaults",
    "searchAllPosts": "Search for \"{{query}}\"",
    "filterByType": "Search {{type}}",
    "sortBy": "Sort by",
    "sort": {
      "newest": "Newest first",
      "oldest": "Oldest first",
      "popular": "Most popular",
      "trending": "Trending",
      "top_week": "Best this week",
      "top_month": "Best this month"
    }
  },
  "postLabel": {
    "news": "News",
    "important": "Important",
    "announcement": "Announcement",
    "update": "Update",
    "pinned": "Pinned"
  },
  "cyoa": {
    "bulkMakeCyoa": "Make CYOA",
    "builderTitle": "Build your adventure",
    "builderSubtitle": "Pick the starting work, then choose where each path branches from. A work can offer several paths.",
    "builderRootLabel": "Start",
    "builderBranchFrom": "Branches from",
    "builderConfirm": "Create adventure",
    "builderInvalid": "Every work must branch from a path that leads back to the start.",
    "bulkCreated": "Adventure created — paths are live.",
    "bulkCreateFailed": "Could not create the adventure.",
    "adventuresStripLabel": "Interactive adventures",
    "openAdventureAria": "Open the adventure {{title}}",
    "manageAdventureAria": "Edit {{title}} adventure",
    "coverTitle": "Adventure cover",
    "coverSubtitle": "Choose which work's image shows on the adventure card.",
    "coverUpdated": "Adventure cover updated.",
    "theEnd": "The End",
    "whatNext": "What happens next?",
    "fullPicture": "View the full picture",
    "continue": "Continue",
    "locked": "Locked",
    "fanBranches": "Unofficial paths",
    "officialBranches": "Official paths",
    "proposeTitle": "Add your continuation",
    "proposePlaceholder": "Search for a work…",
    "proposeHint": "Your pick joins the fan paths until the author makes it official.",
    "proposed": "Continuation proposed.",
    "proposeFailed": "Could not propose that continuation.",
    "noOptions": "No further parts yet.",
    "restart": "Restart",
    "back": "Back",
    "makeOfficial": "Make official",
    "madeOfficial": "Marked as official.",
    "makeOfficialFailed": "Could not update that path.",
    "removeOption": "Remove",
    "removed": "Continuation removed.",
    "removeFailed": "Could not remove that continuation.",
    "confirmRemoveTitle": "Remove this path?",
    "confirmRemoveBody": "The linked work and its branches detach into their own adventure. This can't be undone.",
    "addedBy": "Added by",
    "rename": "Edit",
    "renamed": "Path updated.",
    "renameFailed": "Could not update the path."
  },
  "previewSync": {
    "title": "Censored previews",
    "subtitle": "Works whose previews don't match their maturity yet. Run the sync to re-render them now.",
    "remaining": "{{count}} works waiting",
    "run": "Run sync",
    "running": "Processed {{done}} — {{remaining}} left…",
    "done": "All previews are in sync.",
    "failed": "Sync failed — check the function logs.",
    "stop": "Stop"
  },
  "tagAdmin": {
    "title": "Manage tags",
    "subtitle": "Add, rename, or delete catalog tags. Deleting a tag removes it everywhere it is used.",
    "addTitle": "Add tag",
    "editTitle": "Edit tag",
    "editCategoryTitle": "Rename category",
    "searchPlaceholder": "Search tags",
    "noMatches": "No tags match your search.",
    "addTag": "Add tag",
    "createTag": "Create tag",
    "saveChanges": "Save changes",
    "nameLabel": "Tag name",
    "namesLabel": "Tag names (separate with commas)",
    "namePlaceholder": "e.g. Gender swap, Body swap",
    "categoryLabel": "Category",
    "categoryNameLabel": "Category name",
    "slugLocked": "URL name stays {{slug}}",
    "existsHint": "Dimmed tags already exist and will be skipped.",
    "created": "Tag created",
    "bulkAdded": "{{added}} tags added",
    "bulkSkipped": "{{added}} added, {{skipped}} already existed",
    "allExist": "These tags already exist",
    "saved": "Tag updated",
    "categorySaved": "Category renamed",
    "categoryDeleted": "Category and its tags deleted everywhere",
    "deleted": "Tag deleted everywhere",
    "deleteTitle": "Delete tag?",
    "deleteCategoryTitle": "Delete category?",
    "deleteMessage": "\"{{tag}}\" is used by {{posts}} published work(s). Deleting removes it everywhere it is used. This cannot be undone.",
    "deleteCategoryMessage": "\"{{category}}\" and its {{tags}} tag(s) will be deleted everywhere they are used. This cannot be undone.",
    "deleteConfirm": "Delete",
    "invalidName": "Enter a valid tag name",
    "duplicate": "A tag with this name already exists",
    "saveFailed": "Could not save the tag",
    "editTagAria": "Edit tag {{tag}}",
    "editCategoryAria": "Rename category {{category}}",
    "toggleCategoryAria": "Toggle category {{category}}",
    "deleteCategoryAria": "Delete category {{category}}",
    "deleteTagAria": "Delete tag {{tag}}"
  },
  "workPicker": {
    "title": "Find a work",
    "searchPlaceholder": "Search by title…",
    "hint": "Type at least 2 characters to search by title.",
    "noResults": "No works match that title.",
    "selected": "Selected",
    "removeItem": "Remove {{title}}",
    "add": "Add ({{count}})",
    "pickPrevTitle": "Choose the previous part",
    "pickNextTitle": "Choose the next part"
  },
  "peoplePicker": {
    "title": "Find a person",
    "searchPlaceholder": "Search by name or @handle…",
    "hint": "Type at least 2 characters to search people.",
    "noResults": "No people match that search.",
    "selected": "Selected",
    "removeItem": "Remove {{name}}",
    "add": "Add ({{count}})"
  },
  "postCollab": {
    "title": "Collaboration"
  },
  "partLinks": {
    "hint": "Link this work to a previous and next part to form a reading sequence.",
    "loading": "Loading links…",
    "previous": "Previous part",
    "next": "Next part",
    "search": "Search for a work…",
    "navLabel": "Part navigation",
    "allParts": "All parts",
    "allPartsTitle": "All parts",
    "allPartsSubtitle": "Every part of this story in reading order.",
    "allPartsLoading": "Loading parts…",
    "allPartsEmpty": "No parts found.",
    "allPartsAria": "View all parts in chronological order",
    "untitledPart": "Untitled part",
    "pendingHint": "Your picks are saved with the work and linked once it is published.",
    "clearLink": "Remove linked part",
    "linkFailed": "Could not link that work. Choose a published work you own as the starting point.",
    "bulkLinkParts": "Link parts",
    "autoLinked": "Parts linked in reading order.",
    "autoLinkSkipped": "Could not link parts. Select at least two published works.",
    "autoLinkFailed": "Failed to link parts.",
    "reorderTitle": "Set reading order",
    "reorderSubtitle": "Drag the parts into the right sequence, then link them.",
    "reorderConfirm": "Link in this order",
    "relinkConfirmTitle": "Change existing links?",
    "relinkConfirmMessage": "Some selected works are already part of a link. Continuing will rewire their sequence.",
    "relinkConfirmAction": "Re-link"
  },
  "series": {
    "name": "Series name",
    "namePlaceholder": "Name this series…",
    "useAsCover": "Use as library cover",
    "nameRequiredHint": "Enter a series name to link parts. The series appears above your works and lets readers filter by it.",
    "chooseCover": "Choose cover",
    "coverAlt": "Series cover preview",
    "saveFailed": "Could not save the series. Please try again.",
    "allPosts": "All works",
    "partCount": "{{count}} parts",
    "filterBySeries": "Filter by series {{title}}",
    "stripLabel": "Filter works by series",
    "partOf": "Part of",
    "manage": "Manage series",
    "addWorks": "Add works",
    "searchWorks": "Search your works",
    "noAddable": "No unassigned works found.",
    "addWorkAria": "Add {{title}} to the series",
    "removeWorkAria": "Remove {{title}} from the series",
    "dissolve": "Dissolve series",
    "dissolveTitle": "Dissolve series?",
    "dissolveMessage": "\"{{title}}\" will be dissolved: its {{count}} work(s) stay published but leave the series. This cannot be undone.",
    "dissolveConfirm": "Dissolve",
    "dissolved": "Series dissolved",
    "manageSeriesAria": "Manage series {{title}}",
    "updated": "Series updated"
  },
  "cyoaTree": {
    "title": "Story map",
    "subtitle": "Every branch of this story at a glance.",
    "loading": "Loading map…",
    "empty": "No branches yet.",
    "untitled": "Untitled part",
    "repeated": "(already shown)",
    "showBranches": "Show {{count}} continuations",
    "hideBranches": "Hide continuations",
    "youAreHere": "You are here"
  },
  "matureGate": {
    "title": "Adult content",
    "body": "This content may include mature themes or nudity. Confirm that you are at least 18 years old to view unblurred images. Your confirmation is remembered on this device.",
    "confirm": "I am 18 or older",
    "cancel": "Go back"
  },
  "post": {
    "actions": "Work actions",
    "engagementStats": "Views and likes",
    "by": "by",
    "subscribe": "Subscribe",
    "saveToVault": "Save to vault",
    "savedToVault": "Saved to vault",
    "like": "Like",
    "likeWithCount": "Like ({{count}})",
    "unlike": "Unlike",
    "likeComment": "Like comment",
    "commentLikeCount": "{{count}} likes on your comment",
    "likes": "likes",
    "views": "views",
    "aiGenerated": "AI",
    "matureLabel": "Mature",
    "postLabels": "Work labels",
    "contentTags": "Tags",
    "matureReveal": "Tap to reveal mature content",
    "viewFullImage": "View full image",
    "imageViewModeLabel": "Image view mode",
    "imageViewPaged": "Pages",
    "imageViewColumn": "Column",
    "imagePrev": "Previous image",
    "imageNext": "Next image",
    "imageCounter": "Image {{current}} of {{total}}",
    "pageViewModeLabel": "Page view mode",
    "pageViewPaged": "Single",
    "pageViewColumn": "All",
    "pagePrev": "Previous page",
    "pageNext": "Next page",
    "pageCounter": "Page {{current}} of {{total}}",
    "imageVariantSfw": "SFW",
    "imageVariantNsfw": "NSFW",
    "notFound": "Work not found",
    "edit": "Edit",
    "editTitle": "Edit work",
    "editSave": "Save changes",
    "editSaved": "Changes saved",
    "editFailed": "Could not save changes",
    "editForbidden": "You can only edit your own works",
    "deleteWork": "Delete work",
    "deleteWorksConfirmTitle": "Delete works?",
    "deleteWorksConfirmMessage": "Delete {{count}} works permanently? This cannot be undone.",
    "worksDeleted": "Works deleted",
    "deleteWorksFailed": "Could not delete works",
    "bulkAddTags": "Add tags",
    "bulkAddTagsTitle": "Add tags",
    "bulkAddTagsSubtitle": "Apply tags to {{count}} selected works",
    "bulkAddTagsApply": "Apply tags",
    "bulkMakeMature": "Make mature",
    "bulkMakeSfw": "Make SFW",
    "bulkSetAi": "Set AI",
    "bulkTagsAdded": "Tags added to {{count}} works",
    "bulkTagsAddFailed": "Could not add tags",
    "bulkMatureUpdated": "Marked {{count}} works as mature",
    "bulkSfwUpdated": "Marked {{count}} works as SFW",
    "bulkAiUpdated": "Marked {{count}} works as AI-generated",
    "bulkUpdateFailed": "Could not update works",
    "comments": "Comments",
    "commentsEmptyTitle": "No comments yet",
    "commentsEmptyHint": "Be the first to share your thoughts",
    "commentPlaceholder": "Write a comment…",
    "commentSubmit": "Comment",
    "commentAdvanced": "Advanced",
    "commentFormatLink": "Link",
    "commentFormatStrike": "Strikethrough",
    "commentFormatQuote": "Blockquote",
    "commentFormatList": "Bullet list",
    "commentFormatOrderedList": "Numbered list",
    "commentFormatClear": "Clear formatting",
    "commentFormatEmoji": "More emojis",
    "commentEmojiPicker": "Emoji picker",
    "emojiCategorySmileys": "Smileys and emotions",
    "emojiCategoryPeople": "People and gestures",
    "emojiCategoryNature": "Animals and nature",
    "emojiCategoryFood": "Food and drink",
    "emojiCategoryActivities": "Activities and sports",
    "emojiCategoryObjects": "Objects and symbols",
    "commentFailed": "Could not save comment",
    "editComment": "Edit",
    "deleteComment": "Delete",
    "reply": "Reply",
    "replyTo": "Replying to {{name}}",
    "replyPlaceholder": "Write a reply…",
    "replySubmit": "Post reply",
    "showFullConversation": "Show full conversation ({{count}})",
    "conversationModalTitle": "Conversation · {{title}}",
    "recommended": "Recommended",
    "featuredInCollections": "Featured in collections",
    "moreFromAuthor": "More from author",
    "poll": {
      "totalVotes": "{{count}} votes",
      "vote": "Vote",
      "changeVote": "Change vote",
      "loginToVote": "Sign in to vote",
      "voteFailed": "Could not record your vote",
      "openImage": "View image",
      "closeLightbox": "Close image viewer",
      "zoomLevel": "Zoom level",
      "zoomIn": "Zoom in",
      "zoomOut": "Zoom out"
    },
    "giveaway": {
      "title": "Giveaway",
      "endsAt": "Ends {{date}}",
      "entryCount": "{{count}} entries",
      "enter": "Enter giveaway",
      "entered": "You're in the giveaway",
      "loginToEnter": "Sign in to enter",
      "enterFailed": "Could not save your entry",
      "closed": "Giveaway closed",
      "ended": "Winners drawn",
      "prizesTitle": "Prizes",
      "winnersTitle": "Winners",
      "matureGateTitle": "Mature content",
      "matureGateBody": "This giveaway is marked mature. Confirm you are 18 or older to view and enter.",
      "matureGateAction": "Verify you are 18"
    },
    "vaultSaves": "in vaults",
    "viewSavers": "View who saved this",
    "engagementPeopleTitle": "Engagement",
    "likedBy": "Liked ({{count}})",
    "savedBy": "Saved ({{count}})",
    "searchPeople": "Search people",
    "noLikers": "No likes yet",
    "noSavers": "No public saves yet",
    "savedInFolders": "Saved in"
  },
  "vault": {
    "title": "Vault",
    "loading": "Loading vault…",
    "loginRequired": "Log in to manage your vault",
    "empty": "Your vault is empty. Like works or add folders to organize saved work.",
    "addToVault": "Add to vault",
    "addFolder": "New folder",
    "createFolderTitle": "New folder",
    "editFolderTitle": "Edit folder",
    "deleteFolder": "Delete folder",
    "deleteFolderConfirmTitle": "Delete folder?",
    "deleteFolderConfirmMessage": "Delete “{{name}}” and everything inside it? This cannot be undone.",
    "parentFolder": "Parent folder",
    "publicFolder": "Public folder",
    "publicFolderHint": "Show this folder in Vault Heist and search",
    "createFolderSubtitle": "Name your folder, choose where it lives, and set visibility.",
    "editFolderSubtitle": "Update the folder name, location, tags, or visibility.",
    "pickFolderSubtitle": "Choose a folder for this work.",
    "folderName": "Folder name",
    "coverImage": "Cover image",
    "coverImageHint": "Upload a custom cover for this folder. Leave empty to use a preview from its works.",
    "created": "Vault updated",
    "createFailed": "Could not update vault",
    "rootFolder": "Vault root",
    "pickFolder": "Choose a folder",
    "noFoldersForSave": "Create a folder in your vault first",
    "saveToVaultsTitle": "Save to vault",
    "saveToVaultsSubtitle": "Pick the folders where this work should live.",
    "done": "Done",
    "savedUpdated": "Vault updated",
    "collection": "Collection",
    "collectionNotFound": "Collection not found or not visible.",
    "collectionEmpty": "This collection has no visible works yet.",
    "likeCollection": "Like collection",
    "unlikeCollection": "Unlike collection",
    "likeFailed": "Could not update collection like",
    "postCount": "{{count}} works",
    "folderCount": "{{count}} folders",
    "postsWord": "works",
    "foldersWord": "folders",
    "setAsCover": "Set as cover",
    "dragToReorder": "Drag to reorder",
    "folderTags": "Folder tags",
    "myFolders": "My folders",
    "myVault": "My vault",
    "ownerVault": "@{{tag}}'s",
    "postActions": "Work actions",
    "removeFromVault": "Remove from vault",
    "postRemoved": "Removed from vault",
    "galleryViewMode": "Gallery layout",
    "galleryView": {
      "rows-ltr": "Rows — left to right",
      "rows-rtl": "Rows — right to left",
      "columns-ltr": "Columns — top to bottom (left)",
      "columns-rtl": "Columns — top to bottom (right)",
      "list": "List — top to bottom"
    },
    "makeFolderPublic": "Make folder public",
    "makeFolderPrivate": "Make folder private",
    "bulkActions": "Bulk actions",
    "bulkDelete": "Delete",
    "bulkPublic": "Public",
    "bulkPrivate": "Private",
    "bulkRemove": "Remove",
    "selectItems": "Select items",
    "doneSelecting": "Done selecting",
    "selectAll": "Select all",
    "deselectAll": "Deselect all",
    "selectedCount": "{{count}} selected",
    "bulkDeleteFoldersConfirmTitle": "Delete folders?",
    "bulkDeleteFoldersConfirmMessage": "Delete {{count}} folders and everything inside them? This cannot be undone.",
    "bulkRemovePostsConfirmTitle": "Remove works?",
    "bulkRemovePostsConfirmMessage": "Remove {{count}} works from this collection?",
    "searchOrCreateFolders": "Search or type a new folder name…",
    "noFolderMatches": "No folders match",
    "createFolderNamed": "Create \"{{name}}\""
  },
  "liked": {
    "title": "Liked",
    "posts": "Works",
    "captions": "Captions",
    "loginRequired": "Log in to see what you liked",
    "emptyPosts": "No liked works yet",
    "emptyCaptions": "No liked captions yet"
  },
  "avatar": {
    "selectFile": "Select File",
    "dropZoneHint": "Drag & drop an image here",
    "compressionNote": "*All Files over 8 MB will be compressed",
    "autoApplyHint": "Your crop is applied automatically. Use Back to cancel."
  },
  "profileSetup": {
    "title": "Almost finished",
    "subtitle": "Finish your profile and start using TFVibe!",
    "stepPhoto": "Photo",
    "stepIdentity": "Identity",
    "stepTags": "Tags",
    "stepPreferences": "Preferences",
    "stepVerification": "Verification",
    "changeAvatar": "Change avatar",
    "avatarSection": "Photo",
    "tagsHint": "Select the tags you don't want — we'll use the rest to explore what you might like.",
    "useDefaultAvatar": "Use default photo",
    "currentAvatar": "Current photo",
    "genderCustom": "Specify your gender",
    "genderCustomPlaceholder": "Enter your gender",
    "verifyEmailHint": "Your email is not verified yet. Check your inbox for the welcome message from TF-Vibe.",
    "emailVerified": "Your email is verified.",
    "resendVerificationEmail": "Resend verification email",
    "completeSetup": "Complete setup",
    "completeAvatarFirst": "Finish choosing a photo or cancel the change before saving.",
    "identitySection": "Your identity",
    "preferencesSection": "Preferences"
  },
  "chat": {
    "title": "Chats",
    "searchPlaceholder": "Search or start with @tags",
    "groupSearchPlaceholder": "Search people to add…",
    "directChat": "Direct",
    "groupChat": "Group",
    "startMode": "Chat type",
    "addToGroup": "Add",
    "removeMember": "Remove @{{tag}}",
    "groupNeedsTwo": "Add at least two people for a group chat",
    "startChat": "Start chat",
    "startGroup": "Create group",
    "existingChat": "Open",
    "groupCreated": "Group chat created",
    "invalidTags": "Enter valid @tags (2+ for a group)",
    "listEmpty": "No conversations yet.",
    "noMessagesYet": "No messages yet",
    "startFailed": "Could not start chat",
    "userNotFound": "User tag not found",
    "cannotChatSelf": "You cannot chat with yourself",
    "messagePlaceholder": "Write a message…",
    "send": "Send message",
    "sendFailed": "Message could not be sent",
    "threadEmpty": "Say hello — your messages stay here.",
    "secretMessagePreview": "Secret message",
    "secretMessageLocked": "Secret message — enter safeword to read",
    "safewordRequired": "Set a safeword to send secret messages",
    "safewordWrong": "Could not decrypt — check your safeword",
    "setSafeword": "Set safeword",
    "changeSafeword": "Change safeword",
    "changeSafewordShort": "Safeword",
    "safewordHint": "Share this safeword with the other person. It never leaves your device and encrypts messages before they reach the server.",
    "safewordPlaceholder": "Safeword",
    "safewordConfirmPlaceholder": "Confirm safeword",
    "safewordTooShort": "Safeword must be at least 4 characters",
    "safewordMismatch": "Safewords do not match",
    "secretModeActive": "Secret mode on — messages are encrypted on your device before sending.",
    "secretOn": "Secret chat on",
    "secretOff": "Enable secret chat",
    "dateToday": "Today",
    "dateYesterday": "Yesterday",
    "replyToMessage": "Reply to message",
    "replyingTo": "Replying to",
    "editMessage": "Edit message",
    "editingMessage": "Editing message",
    "editPlaceholder": "Edit your message…",
    "saveEdit": "Save changes",
    "messageEdited": "Edited",
    "editFailed": "Message could not be updated",
    "messageActions": "Message options",
    "deletedAccountName": "This user deleted their account",
    "deletedAccountPreview": "Account deleted — nothing to see here",
    "deletedAccountThread": "This user deleted their account. There's nothing to see here."
  },
  "notification": {
    "title": "Notifications",
    "markAllRead": "Mark all read",
    "filterCategories": "Filter by category",
    "empty": "No Notifications",
    "categories": {
      "all": "All",
      "follow": "Followers",
      "like": "Likes",
      "comment": "Comments",
      "mention": "Mentions",
      "cyoa": "CYOA messages",
      "vault_caption": "Vault",
      "giveaway_won": "Giveaways"
    },
    "messages": {
      "follow": "{{name}} started following you",
      "like": "{{name}} liked your work",
      "likeComment": "{{name}} liked your comment",
      "likeCommentOnPost": "{{name}} liked your comment on {{postType}} «{{postTitle}}»",
      "comment": "{{name}} commented on your work",
      "commentOnPost": "{{name}} commented on your {{postType}} «{{postTitle}}»",
      "commentReply": "{{name}} replied to your comment",
      "commentReplyOnPost": "{{name}} replied to your comment on {{postType}} «{{postTitle}}»",
      "mention": "{{name}} mentioned you",
      "cyoa": "{{name}} proposed a CYOA continuation",
      "cyoaOnPost": "{{name}} proposed a continuation for your {{postType}} «{{postTitle}}»",
      "cyoaWithLabel": "{{name}} proposed a CYOA continuation: «{{cyoaLabel}}»",
      "cyoaOnPostWithLabel": "{{name}} proposed «{{cyoaLabel}}» for your {{postType}} «{{postTitle}}»",
      "vault_caption": "{{name}} added a caption to their vault",
      "giveaway_won": "You won a prize on «{{postTitle}}»: {{prizeTitleSnippet}}",
      "likeOnPost": "{{name}} liked your {{postType}} «{{postTitle}}»",
      "followPeople": "{{count}} people started following you",
      "likePeople": "{{count}} people liked your work",
      "likeOnPostPeople": "{{count}} people liked your {{postType}} «{{postTitle}}»",
      "likeCommentPeople": "{{count}} people liked your comments",
      "likeCommentOnPostPeople": "{{count}} people liked your comments on {{postType}} «{{postTitle}}»",
      "commentPeople": "{{count}} people commented on your work",
      "commentOnPostPeople": "{{count}} people commented on your {{postType}} «{{postTitle}}»",
      "commentReplyPeople": "{{count}} people replied to your comment",
      "commentReplyOnPostPeople": "{{count}} people replied to your comment on {{postType}} «{{postTitle}}»",
      "cyoaPeople": "{{count}} people proposed CYOA continuations",
      "cyoaOnPostPeople": "{{count}} people proposed continuations for your {{postType}} «{{postTitle}}»",
      "mentionInChat": "{{name}} mentioned you in a chat",
      "vault_captionWithTitle": "{{name}} added a caption to vault «{{vaultTitle}}»"
    },
    "meta": {
      "likeCount": "{{count}} likes",
      "commentCount": "{{count}} comments",
      "followCount": "{{count}} follows",
      "cyoaCount": "{{count}} continuations",
      "captionCount": "{{count}} captions"
    },
    "time": {
      "justNow": "Just now",
      "minutesAgo": "{{count}}m ago",
      "hoursAgo": "{{count}}h ago",
      "daysAgo": "{{count}}d ago"
    },
    "desktop": {
      "newMessageFrom": "New message from {{name}}",
      "newMessage": "New message",
      "privateMessageBody": "Sent you a message"
    }
  },
  "viber": {
    "bio": "Bio",
    "location": "Country",
    "fetishes": "Fetishes",
    "fetishesHint": "Select tags that describe your interests and content.",
    "links": "Links",
    "linksHint": "Add a URL and pick an icon for each link.",
    "addLink": "Add link",
    "removeLink": "Remove",
    "pickLinkIcon": "Pick icon",
    "linkUrl": "URL",
    "linksUrlPlaceholder": "https://example.com",
    "openLink": "Open link {{url}}",
    "faq": "FAQ",
    "question": "Question",
    "answer": "Answer",
    "addFaq": "Add FAQ item",
    "removeFaq": "Remove",
    "editProfile": "Edit profile identity",
    "saved": "Viber page saved",
    "saveFailed": "Could not save viber page",
    "topBackground": "Top",
    "bottomBackground": "Bottom",
    "replaceBackground": "Replace image",
    "removeBackground": "Remove image",
    "followers": "Followers",
    "following": "Following",
    "followersList": "Followers",
    "followingListCount": "Following ({{count}})",
    "searchFollowList": "Search by name or tag",
    "followListEmpty": "No users found",
    "openFollowersList": "View followers",
    "openFollowingList": "View following",
    "openWorksTab": "View works",
    "openBio": "View bio",
    "editBio": "Edit bio",
    "editBioHint": "Update your story, location, interests, and links. Save to publish.",
    "editBioBaseInfo": "Base info",
    "bioEditPlaceholder": "Tell visitors about yourself — what you create, your style, and what to expect on your page.",
    "locationPlaceholder": "No Country Selected",
    "locationNone": "No country",
    "works": "Works",
    "follow": "Follow",
    "unfollow": "Unfollow",
    "chat": "Chat",
    "customize": "Customize",
    "customizeTheme": "Customize theme",
    "customizeThemeHint": "Your page updates behind this panel as you edit. Save to publish.",
    "previewPage": "Preview on page",
    "backToCustomize": "Back to customize",
    "chooseThemeColor": "Profile color",
    "themeColorNames": {
      "red": "Red",
      "green": "Green",
      "yellow": "Yellow",
      "blue": "Blue",
      "purple": "Purple",
      "gray": "Gray"
    },
    "vault": "Vault",
    "community": "Community",
    "customColor": "Custom",
    "backgroundRepeat": "Repeat",
    "backgroundSize": "Size",
    "bgRepeat": {
      "no-repeat": "No repeat",
      "repeat": "Repeat",
      "repeat-x": "Repeat horizontally",
      "space": "Space",
      "round": "Round"
    },
    "bgSize": {
      "cover": "Fill (cover)",
      "contain": "Fit (contain)",
      "auto": "Original size"
    },
    "cropHint": "Drag the image and resize the crop box to choose the area you want.",
    "topBackgroundHint": "Shown behind your profile header and tabs at the top of the page.",
    "bottomBackgroundHint": "Crop a tall image for the gallery area below the tabs. Original size keeps the full cropped image at page width.",
    "backgroundRepeatHint": "Controls whether the image tiles or appears once.",
    "backgroundSizeHint": "Controls how the image fills the area: cover fills it, contain fits inside, auto keeps original size.",
    "backgroundScrim": "Soft overlay",
    "backgroundScrimHint": "Adds a gentle tint over the background so profile text stays readable. Turn off to show the raw image.",
    "overlayColor": "Overlay color",
    "overlayIntensity": "Overlay Opacity",
    "overlaySidesLabel": "Overlay sides",
    "overlayColorHint": "Tint color applied on top of your background image.",
    "overlayIntensityHint": "Controls how opaque the overlay appears. Higher values make the overlay more solid.",
    "overlaySidesHint": "Background tints the whole image. Top, Bottom, Left, and Right add edge fades only — not together with Background.",
    "overlaySides": {
      "top": "Top",
      "bottom": "Bottom",
      "left": "Left",
      "right": "Right",
      "middle": "Background"
    },
    "bioEmptyIntro": "Welcome to {{name}}'s viber page (@{{tag}}).",
    "bioEmptyOwnerHint": "Tap Edit bio to add your story, location, interests, and links.",
    "noWorksYet": "Nothing to see here",
    "noCommunityPosts": "This creator has no community posts yet",
    "communityExpand": "Show details",
    "communityCollapse": "Hide details",
    "communityViewPost": "View post",
    "communityOpenPost": "Open post: {{title}}",
    "vaultPrivate": "This vault is private",
    "manageVault": "Manage vault",
    "vaultEmpty": "Nothing in this vault yet",
    "noPublicVault": "No public collections to browse yet",
    "devBadge": "DEV",
    "firstColor": "First color",
    "secondColor": "Second color (gradient)",
    "secondColorNone": "None",
    "secondColorHint": "Pick a second color to turn your accent into a gradient."
  },
  "devUpdates": {
    "title": "Updates",
    "subtitle": "News and announcements from the TFVibe dev team.",
    "empty": "There are no new updates yet — check back soon.",
    "composeTitle": "Post an update"
  },
  "home": {
    "postsSection": "Works from subscriptions",
    "postsPager": "Works pages",
    "postsPrevious": "Previous works page",
    "postsNext": "Next works page",
    "postsPage": "Page {{current}} of {{total}}",
    "subscriptionsSection": "Followed creators",
    "empty": "You are not following anyone yet.",
    "emptyHint": "Explore Discovery to find creators, or publish your own work.",
    "noPostsFromSubscriptions": "No works from your followed creators yet."
  },
  "discover": {
    "discoverVibersPosts": "Discover Vibers Works",
    "discoverVibersPostsEmpty": "No viber works to discover yet",
    "postsPager": "Works pages",
    "postsPrevious": "Previous works page",
    "postsNext": "Next works page",
    "postsPage": "Page {{current}} of {{total}}",
    "vaultHeistSection": "Vault Heist",
    "vaultHeistEmpty": "No public folders to explore yet",
    "vibersToCheckOutSection": "Vibers to Check Out",
    "vibersToCheckOutEmpty": "No vibers to check out yet",
    "trendingWorksSection": "Trending Works",
    "trendingWorksEmpty": "No trending works to show yet",
    "tagsExploreSection": "Tags to Explore",
    "tagsExploreEmpty": "No tags available to explore yet",
    "exploreTag": "Search works tagged {{tag}}",
    "communityHighlightsSection": "Community Highlights",
    "communityHighlightsEmpty": "No community posts to highlight yet",
    "communityCreatorsPager": "Community creator pages",
    "communityCreatorsPrevious": "Previous community creators page",
    "communityCreatorsNext": "Next community creators page",
    "communityCreatorsPage": "Page {{current}} of {{total}}"
  },
  "pages": {
    "home": "Home",
    "search": "Search",
    "post": "Work",
    "viber": "Viber",
    "creator": "Creator",
    "updateProfile": "Update Profile",
    "pageNotFound": "Page Not Found",
    "devUpdates": "Dev Updates"
  },
  "pageNotFound": {
    "title": "Nothing lives here",
    "goToDiscovery": "Go to Discovery"
  },
  "toast": {
    "wrongCredentials": "Wrong credentials",
    "loginSuccessful": "Login successful",
    "loginVerificationEmailSent": "A verification email has been sent. Check your inbox to verify your account.",
    "verificationEmailSent": "Welcome to TF-Vibe! Check your inbox to verify your email.",
    "verificationEmailResent": "Verification email sent again — check your inbox.",
    "writeEmailInField": "Write your email in the corresponding field",
    "couldNotSendResetEmail": "Could not send reset email",
    "passwordResetEmailSent": "Password reset email sent, check your inbox",
    "passwordUpdated": "Password updated successfully",
    "invalidLanguage": "Invalid language",
    "settingsSaved": "Settings saved",
    "couldNotSaveSettings": "Could not save settings",
    "profileSetupComplete": "Profile setup complete — welcome to TF-Vibe!",
    "userTagChangeBlocked": "Your user tag can only be changed once every 30 days.",
    "usernameTaken": "That username is already taken. Please choose another.",
    "imageUploaded": "Image was uploaded",
    "imageNotUploaded": "Image was not uploaded try again",
    "imageChangeCooldown": "Please wait a little before changing your image again.",
    "unsupportedFileFormat": "Not supported File format",
    "followed": "You are now following this viber",
    "unfollowed": "You unfollowed this viber",
    "followFailed": "Could not update follow status",
    "cannotFollowSelf": "You cannot follow yourself",
    "loginToFollow": "Log in to follow and watch viber accounts",
    "loginToLike": "Log in to like works",
    "loginRequired": "Log in to save search filters",
    "loginToLikeComment": "Log in to like comments",
    "loginToComment": "Log in to comment",
    "deleteAccountFailed": "Could not delete your account. Please try again.",
    "desktopNotificationsEnabled": "Desktop notifications enabled",
    "desktopNotificationsBlocked": "Notifications are blocked in your browser settings",
    "desktopNotificationsDismissed": "Desktop notifications were not enabled — allow them in your browser to turn this on"
  },
  "deleteAccount": {
    "title": "Delete account?",
    "message": "This permanently deletes your account — all your activity will be gone. If you sign up again, you'll be starting fresh.",
    "confirm": "Yes, I am sure",
    "cancel": "No"
  },
  "lang": {
    "switchTo": "Switch to {{language}}",
    "names": {
      "en": "English",
      "ru": "Russian",
      "es": "Spanish",
      "it": "Italian",
      "de": "German",
      "fr": "French"
    }
  },
  "postInput": {
    "submit": "Save",
    "change": "Change answer",
    "yourAnswer": "Your answer"
  }
}
