Files
habitica/website/common/locales/en/generic.json
T
Fiz 8faa5b0582 Updates & Fixes: Profile Modal Tab URLs, Chat Mention Case-Insensitive, G1G1 Updates, Challenge Participants, End Challenge Modal (#15493)
* Fix profile modal tab navigation URLs for both own and other users profiles

- Add routes for /user/profile, /user/stats, and /user/achievements
- Update selectPage() to properly update URLs when switching tabs
- Own profile uses /user/{tab} format
- Other users' profiles use /profile/{userId}#{tab} format
- Parse hash fragments when navigating to other users' profile tabs
- Ensure direct navigation to tab URLs opens correct tab

* Fix undefined userId

* Server now matches usernames case insensitively like client

- Preserves original capitalization in mention text
- Fixes profile links not working with wrong case mentions

* lint fixes

* g1g1 width auto sizing w/padding

* Challenge participants spacing & text sizing fix

* Fix inconsistent profile URL format between own and other users' profiles

- Update profile tab navigation to use consistent URL format for all users
- Redirect old /user/* routes to new format for backward compatibility
- Update all navigation points (dropdown menu, notifications) to use new URLs

* Update End Challenge modal

- Replace dropdown with searchable input (384x32px) for winner selection
- Add visual badge state with gems icons for challenge completion
- Update Delete Challenge flow with refund info and proper styling
- Add close button (X) with opacity hover effect
- Enhance Award Winner button with gem icon and dynamic prize display
- Apply conditional styling based on winner selection state
- Update text colors: Maroon/50 for delete warning, Gray/100 for "OR" text
- Add proper translations for gem/gems and refund description

* lint error fixes

* end challenge modal fixes

* lint fix

* Use existing closeX component, minor UI fixes to close challenge modal

* fix lint

* Delete icon color to match text on close challenge modal

use color field to set delete icon color

* Highlight username on close challenge modal color updates

- Background color on hover: purple-600
- Text color on hover: purple-300
- Changed transition from just background-color to all so both color changes animate smoothly

* Fix strings

* Refactor g1g1 notifications from database-driven to event-based system

Changed g1g1 (gift one get one) notifications to display automatically during event periods instead of requiring database storage. Notifications now appear based on event calendar dates and use sessionStorage for dismissal state.

- Display g1g1 notification when event is active in worldState
- Store dismissal state in sessionStorage with event-specific keys
- Remove dependency on user.notifications database array
- Maintain identical user experience and appearance

* Update prize card to match participants card on challenges

* End Challenge modal UI tweaks

* Prevent false mention highlights

Prevent false mention highlights when a user's display name matches another user's username. The purple mention indicator now only appears for actual @username mentions.

* lint fixes

* Remove mention highlight

* Mention highlighting to only highlight w/username mentions

* Update G1G1 Notification

- Updated text styling for title & description
- Updated button styling
- Updated close button

* lint fix

* Add updated G1G1 notification SVGs

* Don't highlight display name w/mention

* g1g1 UI updates

- Fix sizing of gift SVGs (96px tall)
- Update button to use button element and styles <button class="btn btn-secondary mx-auto">
- Fixed positioning, color, and hover state of close icon (default white 50% opacity, hover 75% opacity)

* Fix g1g1 close icon hover state

Fix hover state of close icon (default white 50% opacity, hover 75% opacity)

* g1g1 close hover state fix

* End challenge UI updates

- Fix modal title positioning
- Fix close icon positioning
- Fix spacing between title and gem graphic
- Fix spacing between label and input field
- Fix search icon position, change input hint to "@Username"
- Set search results text align start/left with 16px starting padding.
- Fix Award Button state

* remove trailing space

* Fix exit hover state on g1g1

* fix g1g1 close icon (directly render close icon)

* new line

* Update z-index of g1g1 close button

* add display name support for mention highlighting

mention highlights now trigger for both username and display name mentions.

* Override default close button color (gray -> white)

(Also revert the renderWithMentions change)

* Fix mention display name test (& fix lint)

* Revert display name mention, strictly only username

Mentions work w/username only (works w/case insensitive as well)

* Improved case-insensitive username matching

* add close-white.svg, replace close.svg on g1g1

* find mentions that match the current user's username (case-insensitive)

* fix lint errors

* end challenge modal UI updates

* Don't change gem color on update

* disabled state button match button.scss syling

* remove padding from g1g1 close

* Directly use button.scss on end challenge modal

* Update disabled state for button.scss

* explicitly set close challenge modal button disabled/enabled state

* fix trailing space

* Add font details (and fix text color) for button disabled state

* Update award winner button min-height & padding

* button.scss button disabled styling updates

* Remove redundant disabled override on award winner button

* lint

* Use single gifts svg, and apply transform to flip horizontally

Remove unneeded gifts_end.svg

* Replaced the hardcoded #1A1B1D color with the $black from colors.scss

* Removed the 0.5em padding w/p-2

* added v-once to the refund text element

* Converted the line-height values from pixel values to multipliers
2025-09-16 22:12:41 -05:00

247 lines
13 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"languageName": "English",
"stringNotFound": "String '<%= string %>' not found.",
"habitica": "Habitica",
"onward": "Onward!",
"done": "Done",
"finish": "Finish",
"gotIt": "Got it!",
"titleTimeTravelers": "Time Travelers",
"titleSeasonalShop": "Seasonal Shop",
"titleCustomizations": "Customizations",
"saveEdits": "Save Edits",
"showMore": "Show More",
"showLess": "Show Less",
"options": "Options",
"markdownHelpLink": "Markdown formatting help",
"bold": "**Bold**",
"markdownImageEx": "![mandatory alt text](https://habitica.com/cake.png \"optional mouseover title\")",
"code": "`code`",
"achievements": "Achievements",
"basicAchievs": "Basic Achievements",
"seasonalAchievs": "Seasonal Achievements",
"specialAchievs": "Special Achievements",
"onboardingAchievs": "Onboarding Achievements",
"modalAchievement": "Achievement!",
"special": "Special",
"site": "Site",
"general": "General",
"help": "Help",
"user": "User",
"market": "Market",
"newSubscriberItem": "You have new <span class=\"notification-bold-blue\">Mystery Items</span>",
"subscriberItemText": "Subscribers receive a new mystery gear set at the beginning of each month!",
"all": "All",
"none": "None",
"more": "<%= count %> more",
"and": "and",
"submit": "Submit",
"close": "Close",
"saveAndClose": "Save & Close",
"saveAndConfirm": "Save & Confirm",
"cancel": "Cancel",
"congratulations": "Congratulations!",
"ok": "OK",
"add": "Add",
"undo": "Undo",
"continue": "Continue",
"accept": "Accept",
"reject": "Reject",
"neverMind": "Nevermind",
"notEnoughGems": "Not enough Gems",
"alreadyHave": "Whoops! You already have this item. No need to buy it again!",
"delete": "Delete",
"gem": "Gem",
"gems": "Gems",
"needMoreGems": "Need More Gems?",
"needMoreGemsInfo": "Purchase Gems now, or become a subscriber to buy Gems with Gold, get monthly mystery items, enjoy increased drop caps and more!",
"veteran": "Veteran",
"veteranText": "Has weathered Habit The Grey (our pre Angular website), and has gained many battle-scars from its bugs.",
"originalUser": "Original User!",
"originalUserText": "One of the <em>very</em> original early adopters. Talk about alpha tester!",
"habitBirthday": "Habitica Birthday Bash",
"habitBirthdayText": "Celebrated the Habitica Birthday Bash!",
"habitBirthdayPluralText": "Celebrated <%= count %> Habitica Birthday Bashes!",
"habiticaDay": "Habitica Naming Day",
"habiticaDaySingularText": "Celebrated Habitica's Naming Day! Thanks for being a fantastic user.",
"habiticaDayPluralText": "Celebrated <%= count %> Naming Days! Thanks for being a fantastic user.",
"achievementDilatory": "Savior of Dilatory",
"achievementDilatoryText": "Helped defeat the Dread Drag'on of Dilatory during the 2014 Summer Splash Event!",
"costumeContest": "Costume Contestant",
"costumeContestText": "Participated in the Habitoween Costume Contest. See some of the awesome entries at blog.habitrpg.com!",
"costumeContestTextPlural": "Participated in <%= count %> Habitoween Costume Contests. See some of the awesome entries at blog.habitrpg.com!",
"newPassSent": "If we have your email on file, instructions for setting a new password have been sent to your email.",
"error": "Error",
"menu": "Menu",
"notifications": "Notifications",
"allNotifications": "All Notifications",
"noNotifications": "You're all caught up!",
"noNotificationsText": "The notification fairies give you a raucous round of applause! Well done!",
"clear": "Clear",
"demo": "Demo",
"audioTheme": "Audio Theme",
"audioTheme_off": "Off",
"audioTheme_danielTheBard": "Daniel The Bard",
"audioTheme_wattsTheme": "Watts' Theme",
"audioTheme_gokulTheme": "Gokul Theme",
"audioTheme_luneFoxTheme": "LuneFox's Theme",
"audioTheme_rosstavoTheme": "Rosstavo's Theme",
"audioTheme_dewinTheme": "Dewin's Theme",
"audioTheme_airuTheme": "Airu's Theme",
"audioTheme_beatscribeNesTheme": "Beatscribe's NES Theme",
"audioTheme_arashiTheme": "Arashi's Theme",
"audioTheme_triumphTheme": "Triumph Theme",
"audioTheme_lunasolTheme": "Lunasol Theme",
"audioTheme_spacePenguinTheme": "SpacePenguin's Theme",
"audioTheme_maflTheme": "MAFL Theme",
"audioTheme_pizildenTheme": "Pizilden's Theme",
"audioTheme_farvoidTheme": "Farvoid Theme",
"reportBug": "Report a Bug",
"reportBugHeaderDescribe": "Please describe the bug youre experiencing and our team will get back to you.",
"reportEmailText": "This will only be used to contact you regarding the bug report.",
"reportEmailPlaceholder": "Your email address",
"reportEmailError": "Please provide a valid email address",
"reportDescription": "Description",
"reportDescriptionText": "Include screenshots or Javascript console errors if helpful.",
"reportDescriptionPlaceholder": "Describe the bug in detail here",
"submitBugReport": "Submit Bug Report",
"reportSent": "Thank you for your submission!",
"reportSentDescription": "Well get back to you once our team has a chance to review.",
"overview": "Overview for New Users",
"dateFormat": "Date Format",
"achievementStressbeast": "Savior of Stoïkalm",
"achievementStressbeastText": "Helped defeat the Abominable Stressbeast during the 2014 Winter Wonderland Event!",
"achievementBurnout": "Savior of the Flourishing Fields",
"achievementBurnoutText": "Helped defeat Burnout and restore the Exhaust Spirits during the 2015 Fall Festival Event!",
"achievementBewilder": "Savior of Mistiflying",
"achievementBewilderText": "Helped defeat the Be-Wilder during the 2016 Spring Fling Event!",
"achievementDysheartener": "Savior of the Shattered",
"achievementDysheartenerText": "Helped defeat the Dysheartener during the 2018 Valentine's Event!",
"cards": "Cards",
"sentCardToUser": "You sent a card to <%= profileName %>",
"cardReceived": "You received a <span class=\"notification-bold-blue\"><%= card %></span>",
"greetingCard": "Greeting Card",
"greetingCardExplanation": "You both receive the Cheery Chum achievement!",
"greetingCardNotes": "Send a greeting card to a party member.",
"greeting0": "Hi there!",
"greeting1": "Just saying hello :)",
"greeting2": "`waves frantically`",
"greeting3": "Hey you!",
"greetingCardAchievementTitle": "Cheery Chum",
"greetingCardAchievementText": "Hey! Hi! Hello! Sent or received <%= count %> greeting cards.",
"thankyouCard": "Thank-You Card",
"thankyouCardExplanation": "You both receive the Greatly Grateful achievement!",
"thankyouCardNotes": "Send a Thank-You card to a party member.",
"thankyou0": "Thank you very much!",
"thankyou1": "Thank you, thank you, thank you!",
"thankyou2": "Sending you a thousand thanks.",
"thankyou3": "I'm very grateful - thank you!",
"thankyouCardAchievementTitle": "Greatly Grateful",
"thankyouCardAchievementText": "Thanks for being thankful! Sent or received <%= count %> Thank-You cards.",
"birthdayCard": "Birthday Card",
"birthdayCardExplanation": "You both receive the Birthday Bonanza achievement!",
"birthdayCardNotes": "Send a birthday card to a party member.",
"birthday0": "Happy birthday to you!",
"birthdayCardAchievementTitle": "Birthday Bonanza",
"birthdayCardAchievementText": "Many happy returns! Sent or received <%= count %> birthday cards.",
"congratsCard": "Congratulations Card",
"congratsCardExplanation": "You both receive the Congratulatory Companion achievement!",
"congratsCardNotes": "Send a Congratulations card to a party member.",
"congrats0": "Congratulations on your success!",
"congrats1": "I'm so proud of you!",
"congrats2": "Well done!",
"congrats3": "A round of applause for you!",
"congrats4": "Bask in your well-deserved success!",
"congratsCardAchievementTitle": "Congratulatory Companion",
"congratsCardAchievementText": "It's great to celebrate your friends' achievements! Sent or received <%= count %> congratulations cards.",
"getwellCard": "Get Well Card",
"getwellCardExplanation": "You both receive the Caring Confidant achievement!",
"getwellCardNotes": "Send a Get Well card to a party member.",
"getwell0": "Hope you feel better soon!",
"getwell1": "Take care! <3",
"getwell2": "You're in my thoughts!",
"getwell3": "Sorry you're not feeling your best!",
"getwellCardAchievementTitle": "Caring Confidant",
"getwellCardAchievementText": "Well-wishes are always appreciated. Sent or received <%= count %> get well cards.",
"goodluckCard": "Good Luck Card",
"goodluckCardExplanation": "You both receive the Lucky Letter achievement!",
"goodluckCardNotes": "Send a good luck card to a party member.",
"goodluck0": "May luck always follow you!",
"goodluck1": "Wishing you lots of luck!",
"goodluck2": "I hope luck is on your side today and always!!",
"goodluckCardAchievementTitle": "Lucky Letter",
"goodluckCardAchievementText": "Wishes for good luck are great encouragement! Sent or received <%= count %> good luck cards.",
"streakAchievement": "You earned a streak achievement!",
"firstStreakAchievement": "21-Day Streak",
"streakAchievementCount": "<%= streaks %> 21-Day Streaks",
"twentyOneDays": "You've completed your Daily for 21 days in a row!",
"dontBreakStreak": "Amazing job. Don't break the streak!",
"dontStop": "Don't Stop Now!",
"wonChallengeShare": "I won a challenge in Habitica!",
"orderBy": "Order By <%= item %>",
"you": "(you)",
"loading": "Loading...",
"userIdRequired": "User ID is required",
"resetFilters": "Clear all filters",
"applyFilters": "Apply Filters",
"wantToWorkOn": "I want to work on:",
"categories": "Categories",
"animals": "Animals",
"exercise": "Exercise",
"creativity": "Creativity",
"health_wellness": "Health & Wellness",
"self_care": "Self-Care",
"habitica_official": "Habitica Official",
"academics": "Academics",
"advocacy_causes": "Advocacy + Causes",
"entertainment": "Entertainment",
"finance": "Finance",
"health_fitness": "Health + Fitness",
"hobbies_occupations": "Hobbies + Occupations",
"location_based": "Location-based",
"mental_health": "Mental Health + Self-Care",
"getting_organized": "Getting Organized",
"self_improvement": "Self-Improvement",
"spirituality": "Spirituality",
"time_management": "Time-Management + Accountability",
"recovery_support_groups": "Recovery + Support Groups",
"dismissAll": "Dismiss All",
"messages": "Messages",
"emptyMessagesLine1": "You don't have any messages",
"emptyMessagesLine2": "Send a message to start a conversation with your Party members or another Habitica player",
"newMessage": "New Message",
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> sent you a message",
"letsgo": "Let's Go!",
"selected": "Selected",
"howManyToBuy": "How many would you like to purchase?",
"contactForm": "Contact the Moderation Team",
"loadEarlierMessages": "Load Earlier Messages",
"askQuestion": "Ask a Question",
"emptyReportBugMessage": "Report Bug Message missing",
"reportPlayer": "Report Player",
"blockPlayer": "Block Player",
"unblockPlayer": "Unblock Player",
"adminTools": "Admin Tools",
"viewAdminPanel": "View Admin Panel",
"shadowMute": "Shadow Mute",
"mutePlayer": "Mute",
"banPlayer": "Ban Player",
"unbanPlayer": "Unban Player",
"bannedPlayer": "This player is banned.",
"refreshList": "Refresh List",
"leaveHabitica": "You are about to leave Habitica.com",
"leaveHabiticaText": "Habitica is not responsible for the content of any linked website that is not owned or operated by HabitRPG.<br>Please note that these websites' practices may differ from Habiticas community guidelines.",
"skipExternalLinkModal": "Hold CTRL (Windows) or Command (Mac) when clicking a link to skip this modal.",
"askQuestionHeaderDescribe": "New to Habitica and don't know what you're doing? Veteran but just can't figure out how to use one of the features? Fill out this form and our team will get back to you.",
"questionEmailText": "This will only be used to contact you regarding your question.",
"question": "Question",
"questionDescriptionText": "It's okay to ask your questions in your primary language if you aren't comfortable speaking in English.",
"questionPlaceholder": "Ask your question here",
"submitQuestion": "Submit Question",
"whyReportingPlayer": "Why are you reporting this player?",
"whyReportingPlayerPlaceholder": "Reason for report",
"playerReportModalBody": "You should only report a player who violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Submitting a false report is a violation of Habiticas Community Guidelines.",
"targetUserNotExist": "Target User: '<%= userName %>' does not exist.",
"rememberToBeKind": "Please remember to be kind, respectful, and follow the <a href='/static/community-guidelines' target='_blank'>Community Guidelines</a>."
}