mirror of
https://github.com/HabitRPG/habitica.git
synced 2026-05-21 11:50:06 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bda73c76c2 | |||
| 6b56a4689e | |||
| 966bfde06f | |||
| 9d23693a45 |
@@ -11,7 +11,7 @@
|
||||
{{ $t('tavernDiscontinued') }}
|
||||
</h1>
|
||||
<p>{{ $t('tavernDiscontinuedDetail') }}</p>
|
||||
<p v-html="$t('tavernDiscontinuedLinks')"></p>
|
||||
<p v-html="$t('tavernDiscontinuedLinks', tavernLinks)"></p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<h1>
|
||||
@@ -38,6 +38,15 @@
|
||||
import { mapState } from '@/libs/store';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
tavernLinks: {
|
||||
faqLink: '<a href="/static/faq/tavern-and-guilds">',
|
||||
homeLink: '<a href="/">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(['isUserLoggedIn']),
|
||||
retiredChatPage () {
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-markdown="$t('chooseClassLearnMarkdown')"
|
||||
v-markdown="$t('chooseClassLearnMarkdown', { classLink })"
|
||||
class="text-center"
|
||||
></div>
|
||||
<div class="modal-actions text-center">
|
||||
@@ -98,7 +98,7 @@
|
||||
<div
|
||||
v-once
|
||||
class="opt-out-description"
|
||||
v-html="$t('optOutOfClassesText')"
|
||||
v-html="$t('optOutOfClassesText', optOutLinks)"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -214,6 +214,11 @@ export default {
|
||||
wizard: wizardIcon,
|
||||
}),
|
||||
selectedClass: 'warrior',
|
||||
optOutLinks: {
|
||||
linkOpen: '<a href="/static/faq#what-classes" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
classLink: '/static/faq#what-classes',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
{{ $t('contribModal', {name: user.profile.name, level: user.contributor.level}) }}
|
||||
<br>
|
||||
<a
|
||||
:href="$t('conRewardsURL')"
|
||||
href="https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>{{ $t('contribLink') }}</a>
|
||||
<br>
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
</button>
|
||||
<h4
|
||||
class="text-center"
|
||||
v-html="$t('dyingOftenTips')"
|
||||
v-html="$t('dyingOftenTips', tipLinks)"
|
||||
></h4>
|
||||
</div>
|
||||
</div>
|
||||
@@ -86,6 +86,10 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
maxHealth,
|
||||
tipLinks: {
|
||||
linkOpen: '<a href="/static/faq#prevent-damage" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
&& user.achievements.ultimateGearSets.rogue
|
||||
&& user.achievements.ultimateGearSets.warrior"
|
||||
>
|
||||
<p v-html="$t('moreGearAchievements')"></p>
|
||||
<p v-html="$t('moreGearAchievements', gearAchievementLinks)"></p>
|
||||
<br>
|
||||
</div>
|
||||
<Sprite image-name="shop_armoire" />
|
||||
@@ -95,6 +95,14 @@ export default {
|
||||
achievementAvatar,
|
||||
Sprite,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
gearAchievementLinks: {
|
||||
linkOpen: '<a href="/user/settings/site" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
},
|
||||
|
||||
@@ -491,6 +491,7 @@
|
||||
v-if="hero.purchased.plan.paymentMethod === 'Google'"
|
||||
class="btn btn-primary btn-sm"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
:href="playOrdersUrl"
|
||||
>
|
||||
Play Console
|
||||
@@ -499,6 +500,7 @@
|
||||
v-else-if="hero.purchased.plan.paymentMethod === 'Paypal'"
|
||||
class="btn btn-primary btn-sm"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
:href="'https://www.paypal.com/billing/subscriptions/' + paymentDetails.customerId"
|
||||
>
|
||||
PayPal Dashboard
|
||||
@@ -507,6 +509,7 @@
|
||||
v-else-if="hero.purchased.plan.paymentMethod === 'Stripe'"
|
||||
class="btn btn-primary btn-sm"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
:href="'https://dashboard.stripe.com/customers/' + paymentDetails.customerId"
|
||||
>
|
||||
Stripe Dashboard
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<li>
|
||||
<a
|
||||
href="https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>{{ $t('mobileIOS') }}
|
||||
</a>
|
||||
@@ -18,6 +19,7 @@
|
||||
<li>
|
||||
<a
|
||||
href="https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>{{ $t('mobileAndroid') }}
|
||||
</a>
|
||||
@@ -52,6 +54,7 @@
|
||||
<a
|
||||
href="https://habitica.wordpress.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('companyBlog') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -71,6 +74,7 @@
|
||||
<li>
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/static/community-guidelines"
|
||||
>{{ $t('communityGuidelines') }}
|
||||
</a>
|
||||
@@ -84,6 +88,7 @@
|
||||
<a
|
||||
href="https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('companyContribute') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -91,6 +96,7 @@
|
||||
<a
|
||||
href="https://translate.habitica.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('translateHabitica') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -111,6 +117,7 @@
|
||||
<a
|
||||
href=""
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@click.prevent="openBugReportModal()"
|
||||
>
|
||||
{{ $t('reportBug') }}
|
||||
@@ -122,6 +129,7 @@
|
||||
<a
|
||||
href="mailto:admin@habitica.com?subject=Habitica Web Bug Report"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('reportBug') }}
|
||||
</a>
|
||||
@@ -130,6 +138,7 @@
|
||||
<a
|
||||
href="https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('requestFeature') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -143,6 +152,7 @@
|
||||
<a
|
||||
href="/apidoc"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('APIv3') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -150,6 +160,7 @@
|
||||
<a
|
||||
:href="getDataDisplayToolUrl"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('dataDisplayTool') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -157,6 +168,7 @@
|
||||
<a
|
||||
href="https://habitica.fandom.com/wiki/Guidance_for_Blacksmiths"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('guidanceForBlacksmiths') }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -172,6 +184,7 @@
|
||||
class="social-circle mr-2"
|
||||
href="https://www.instagram.com/habitica/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div
|
||||
class="social-icon svg-icon"
|
||||
@@ -181,6 +194,7 @@
|
||||
<a
|
||||
href="https://www.instagram.com/habitica/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('communityInstagram') }}
|
||||
</a>
|
||||
@@ -190,6 +204,7 @@
|
||||
class="social-circle mr-2"
|
||||
href="https://bsky.app/profile/habitica.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div
|
||||
class="social-icon svg-icon"
|
||||
@@ -199,6 +214,7 @@
|
||||
<a
|
||||
href="https://bsky.app/profile/habitica.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Bluesky
|
||||
</a>
|
||||
@@ -208,6 +224,7 @@
|
||||
class="social-circle mr-2"
|
||||
href="https://www.facebook.com/Habitica/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div
|
||||
class="social-icon svg-icon"
|
||||
@@ -217,6 +234,7 @@
|
||||
<a
|
||||
href="https://www.facebook.com/Habitica/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('communityFacebook') }}
|
||||
</a>
|
||||
@@ -226,6 +244,7 @@
|
||||
class="social-circle mr-2"
|
||||
href="http://blog.habitrpg.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div
|
||||
class="social-icon svg-icon"
|
||||
@@ -235,6 +254,7 @@
|
||||
<a
|
||||
href="http://blog.habitrpg.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('tumblr') }}
|
||||
</a>
|
||||
@@ -266,12 +286,14 @@
|
||||
<span class="privacy-policy">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/static/privacy"
|
||||
>{{ $t('privacy') }}</a>
|
||||
</span>
|
||||
<span class="terms">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/static/terms"
|
||||
>{{ $t('terms') }}</a>
|
||||
</span>
|
||||
@@ -287,12 +309,14 @@
|
||||
<div class="privacy-policy mx-auto mb-2">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/static/privacy"
|
||||
>{{ $t('privacy') }}</a>
|
||||
</div>
|
||||
<div class="mobile-terms mx-auto mb-2">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/static/terms"
|
||||
>{{ $t('terms') }}</a>
|
||||
</div>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
v-once
|
||||
class="custom-control-label purple-600"
|
||||
for="privacyTOS"
|
||||
v-html="$t('acceptPrivacyTOS')"
|
||||
v-html="$t('acceptPrivacyTOS', acceptLinks)"
|
||||
></label>
|
||||
</div>
|
||||
<button
|
||||
@@ -187,6 +187,11 @@ export default {
|
||||
privacyAccepted: false,
|
||||
usernameIssues: [],
|
||||
needsEmailField: false,
|
||||
acceptLinks: {
|
||||
termsLink: '<a href="/static/terms" target="_blank" rel="noreferrer noopener">',
|
||||
privacyLink: '<a href="/static/privacy" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
<p
|
||||
v-once
|
||||
class="w-50 mx-auto"
|
||||
v-html="$t('visitCustomizationsShop')"
|
||||
v-html="$t('visitCustomizationsShop', customizeLinks)"
|
||||
></p>
|
||||
</div>
|
||||
<customize-banner
|
||||
@@ -104,6 +104,10 @@ export default {
|
||||
headAccessory: ['bearEars', 'cactusEars', 'foxEars', 'lionEars', 'pandaEars', 'pigEars', 'tigerEars', 'wolfEars'],
|
||||
},
|
||||
chairKeys: ['none', 'black', 'blue', 'green', 'pink', 'red', 'yellow', 'handleless_black', 'handleless_blue', 'handleless_green', 'handleless_pink', 'handleless_red', 'handleless_yellow'],
|
||||
customizeLinks: {
|
||||
linkOpen: '<a href="/shops/customizations">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<p
|
||||
v-once
|
||||
class="w-50 mx-auto"
|
||||
v-html="$t('visitCustomizationsShop')"
|
||||
v-html="$t('visitCustomizationsShop', customizeLinks)"
|
||||
></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -95,6 +95,14 @@ export default {
|
||||
props: [
|
||||
'editing',
|
||||
],
|
||||
data () {
|
||||
return {
|
||||
customizeLinks: {
|
||||
linkOpen: '<a href="/shops/customizations">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
hairSubMenuItems () {
|
||||
const items = [
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<strong v-once>{{ $t('challengeDescription') }} *</strong>
|
||||
</label>
|
||||
<a
|
||||
v-markdown="$t('markdownFormattingHelp')"
|
||||
v-markdown="$t('markdownFormattingHelp', { markdownLink })"
|
||||
class="float-right"
|
||||
></a>
|
||||
<textarea
|
||||
@@ -364,6 +364,7 @@ export default {
|
||||
groups: [],
|
||||
textbox: null,
|
||||
activeField: 'name',
|
||||
markdownLink: 'https://github.com/HabitRPG/habitica/wiki/Markdown-in-Habitica',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -217,8 +217,8 @@ export default {
|
||||
mixins: [notifications, userStateMixin],
|
||||
data () {
|
||||
const abuseFlagModalBody = {
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank">',
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank" rel="noopener noreferrer">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank" rel="noopener noreferrer">',
|
||||
linkEnd: '</a>',
|
||||
};
|
||||
|
||||
|
||||
@@ -208,8 +208,8 @@ export default {
|
||||
mixins: [notifications, userStateMixin],
|
||||
data () {
|
||||
const abuseFlagModalBody = {
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank">',
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank" rel="noopener noreferrer">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank" rel="noopener noreferrer">',
|
||||
linkEnd: '</a>',
|
||||
};
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
</ul>
|
||||
<div
|
||||
class="mx-auto"
|
||||
v-html="$t('newGroupsVisitFAQ')"
|
||||
v-html="$t('newGroupsVisitFAQ', faqLinks)"
|
||||
></div>
|
||||
<div
|
||||
class="mx-auto"
|
||||
@@ -193,6 +193,10 @@ export default {
|
||||
close: closeIcon,
|
||||
sparkles,
|
||||
}),
|
||||
faqLinks: {
|
||||
linkOpen: '<a href="/static/faq#group-plans" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{{ label }}
|
||||
</h3>
|
||||
<div
|
||||
v-markdown="$t('markdownFormattingHelp')"
|
||||
v-markdown="$t('markdownFormattingHelp', { markdownLink })"
|
||||
class="float-right"
|
||||
></div>
|
||||
<div
|
||||
@@ -127,6 +127,7 @@ export default {
|
||||
},
|
||||
textbox: null,
|
||||
MAX_MESSAGE_LENGTH: MAX_MESSAGE_LENGTH.toString(),
|
||||
markdownLink: 'https://github.com/HabitRPG/habitica/wiki/Markdown-in-Habitica',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div
|
||||
v-once
|
||||
class="col col-sm-12 col-xl-8"
|
||||
v-html="$t('communityGuidelinesIntro')"
|
||||
v-html="$t('communityGuidelinesIntro', guidelineLinks)"
|
||||
></div>
|
||||
<div class="col-md-auto col-md-12 col-xl-4">
|
||||
<button
|
||||
@@ -60,6 +60,14 @@
|
||||
import { mapState } from '@/libs/store';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
guidelineLinks: {
|
||||
linkOpen: '<a href="/static/community-guidelines" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
communityGuidelinesAccepted () {
|
||||
|
||||
@@ -159,7 +159,7 @@ label.custom-control-label(v-once) {{ $t('allowGuildInvitationsFromNonMembers')
|
||||
<strong v-else>{{ $t('groupDescription') }} *</strong>
|
||||
</label>
|
||||
<a
|
||||
v-markdown="$t('markdownFormattingHelp')"
|
||||
v-markdown="$t('markdownFormattingHelp', { markdownLink })"
|
||||
class="float-right"
|
||||
></a>
|
||||
<textarea
|
||||
@@ -420,6 +420,7 @@ export default {
|
||||
type: '',
|
||||
},
|
||||
membersToInvite: [],
|
||||
markdownLink: 'https://github.com/HabitRPG/habitica/wiki/Markdown-in-Habitica',
|
||||
};
|
||||
|
||||
const hashedCategories = {};
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
class="no-quest-to-start"
|
||||
>
|
||||
<b>{{ $t('noQuestToStartTitle') }}</b> <br>
|
||||
<span v-html="$t('noQuestToStart', { questShop: '/shops/quests' })"></span>
|
||||
<span v-html="$t('noQuestToStart', questLinks)"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -369,6 +369,10 @@ export default {
|
||||
shareUserIdShown: false,
|
||||
quests,
|
||||
sortBy: 'AZ',
|
||||
questLinks: {
|
||||
linkOpen: '<a href="/shops/quests">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -1,889 +0,0 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<world-boss-info-modal />
|
||||
<world-boss-rage-modal />
|
||||
<div class="col-12 col-sm-8 clearfix standard-page">
|
||||
<div class="row">
|
||||
<div class="col-6 title-details">
|
||||
<h1 v-once>
|
||||
{{ $t('welcomeToTavern') }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<chat
|
||||
:label="$t('tavernChat')"
|
||||
:group="group"
|
||||
:placeholder="$t('tavernCommunityGuidelinesPlaceholder')"
|
||||
@fetchRecentMessages="fetchRecentMessages()"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 sidebar">
|
||||
<div class="section">
|
||||
<div
|
||||
class="grassy-meadow-backdrop"
|
||||
:style="{'background-image': imageURLs.background}"
|
||||
>
|
||||
<div
|
||||
class="daniel_front"
|
||||
:style="{'background-image': imageURLs.npc}"
|
||||
></div>
|
||||
</div>
|
||||
<div class="boss-section">
|
||||
<div
|
||||
v-if="group && group.quest && group.quest.active"
|
||||
class="world-boss"
|
||||
:style="{
|
||||
background: questData.colors.dark,
|
||||
'border-color': questData.colors.extralight,
|
||||
'outline-color': questData.colors.light}"
|
||||
>
|
||||
<div
|
||||
class="corner-decoration"
|
||||
:style="{top: '-2px', right: '-2px'}"
|
||||
></div>
|
||||
<div
|
||||
class="corner-decoration"
|
||||
:style="{top: '-2px', left: '-2px'}"
|
||||
></div>
|
||||
<div
|
||||
class="corner-decoration"
|
||||
:style="{bottom: '-2px', right: '-2px'}"
|
||||
></div>
|
||||
<div
|
||||
class="corner-decoration"
|
||||
:style="{bottom: '-2px', left: '-2px'}"
|
||||
></div>
|
||||
<div class="text-center float-bar d-flex align-items-center">
|
||||
<span class="diamond"></span>
|
||||
<span
|
||||
class="strong reduce"
|
||||
:style="{background: questData.colors.dark}"
|
||||
>{{ $t('worldBossEvent') }}</span>
|
||||
<span class="diamond"></span>
|
||||
</div>
|
||||
<div class="boss-gradient pb-3 pt-3">
|
||||
<p
|
||||
class="text-center reduce"
|
||||
:style="{color: questData.colors.extralight}"
|
||||
>
|
||||
{{ $t(`${questData.key}ArtCredit`) }}
|
||||
</p>
|
||||
<div
|
||||
class="quest-boss"
|
||||
:class="'background_' + questData.key"
|
||||
>
|
||||
<div
|
||||
class="quest-boss"
|
||||
:class="'quest_' + questData.key"
|
||||
></div>
|
||||
<div
|
||||
class="quest-boss"
|
||||
:class="'phobia_' + questData.key"
|
||||
:style="{display: 'none'}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-3">
|
||||
<div class="row d-flex align-items-center mb-2">
|
||||
<div class="col-sm-6">
|
||||
<strong class="float-left">{{ questData.boss.name() }}</strong>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<span class="d-flex float-right">
|
||||
<div
|
||||
class="svg-icon boss-icon"
|
||||
v-html="icons.swordIcon"
|
||||
></div>
|
||||
<span
|
||||
class="ml-1 reduce"
|
||||
:style="{color: questData.colors.extralight}"
|
||||
>{{ $t('pendingDamage', {damage: pendingDamage()}) }}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grey-progress-bar mb-1">
|
||||
<div
|
||||
class="boss-health-bar"
|
||||
:style="{width: (group.quest.progress.hp / questData.boss.hp) * 100 + '%'}"
|
||||
></div>
|
||||
</div>
|
||||
<span class="d-flex align-items-center">
|
||||
<div
|
||||
class="svg-icon boss-icon"
|
||||
v-html="icons.healthIcon"
|
||||
></div>
|
||||
<span
|
||||
class="reduce ml-1 pt-1"
|
||||
>{{ $t('bossHealth', {
|
||||
currentHealth: bossCurrentHealth(),
|
||||
maxHealth: questData.boss.hp.toLocaleString()}) }}</span>
|
||||
</span>
|
||||
<div class="mt-3 mb-2">
|
||||
<strong class="mr-1">{{ $t('rageAttack') }}</strong>
|
||||
<span>{{ questData.boss.rage.title() }}</span>
|
||||
</div>
|
||||
<div class="grey-progress-bar mb-1">
|
||||
<div
|
||||
class="boss-health-bar rage-bar"
|
||||
:style="{
|
||||
width: (group.quest.progress.rage / questData.boss.rage.value) * 100 + '%'}"
|
||||
></div>
|
||||
</div>
|
||||
<span class="d-flex align-items-center">
|
||||
<div
|
||||
class="svg-icon boss-icon"
|
||||
v-html="icons.rageIcon"
|
||||
></div>
|
||||
<span
|
||||
class="reduce ml-1 pt-1"
|
||||
>{{ $t('bossRage', {
|
||||
currentRage: bossCurrentRage(),
|
||||
maxRage: questData.boss.rage.value.toLocaleString()}) }}</span>
|
||||
</span>
|
||||
<div class="row d-flex align-items-center mb-2 mt-2">
|
||||
<div class="col-sm-4 d-flex">
|
||||
<strong class="mr-2">{{ $t('rageStrikes') }}</strong>
|
||||
<div
|
||||
v-b-tooltip.hover.top="questData.boss.rage.description()"
|
||||
class="svg-icon boss-icon information-icon m-auto"
|
||||
v-html="icons.informationIcon"
|
||||
></div>
|
||||
</div>
|
||||
<div class="col-sm-8 d-flex align-items-center justify-content-center">
|
||||
<div
|
||||
class="m-auto"
|
||||
@click="showWorldBossRage('seasonalShop')"
|
||||
>
|
||||
<img
|
||||
v-if="!group.quest.extra.worldDmg.seasonalShop"
|
||||
class="rage-strike"
|
||||
src="@/assets/images/world-boss/rage_strike@2x.png"
|
||||
>
|
||||
<img
|
||||
v-if="group.quest.extra.worldDmg.seasonalShop"
|
||||
class="rage-strike-active"
|
||||
src="@/assets/images/world-boss/rage_strike-seasonalShop@2x.png"
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="m-auto"
|
||||
@click="showWorldBossRage('market')"
|
||||
>
|
||||
<img
|
||||
v-if="!group.quest.extra.worldDmg.market"
|
||||
class="rage-strike"
|
||||
src="@/assets/images/world-boss/rage_strike@2x.png"
|
||||
>
|
||||
<img
|
||||
v-if="group.quest.extra.worldDmg.market"
|
||||
class="rage-strike-active"
|
||||
src="@/assets/images/world-boss/rage_strike-market@2x.png"
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="m-auto"
|
||||
@click="showWorldBossRage('quests')"
|
||||
>
|
||||
<img
|
||||
v-if="!group.quest.extra.worldDmg.quests"
|
||||
class="rage-strike"
|
||||
src="@/assets/images/world-boss/rage_strike@2x.png"
|
||||
>
|
||||
<img
|
||||
v-if="group.quest.extra.worldDmg.quests"
|
||||
class="rage-strike-active"
|
||||
src="@/assets/images/world-boss/rage_strike-quests@2x.png"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="boss-description p-3"
|
||||
:style="{'border-color': questData.colors.extralight}"
|
||||
@click="sections.worldBoss = !sections.worldBoss"
|
||||
>
|
||||
<strong class="float-left">{{ $t('worldBossDescription') }}</strong>
|
||||
<div class="float-right">
|
||||
<div
|
||||
v-if="!sections.worldBoss"
|
||||
class="toggle-down"
|
||||
>
|
||||
<div
|
||||
class="svg-icon boss-icon"
|
||||
v-html="icons.chevronIcon"
|
||||
></div>
|
||||
</div>
|
||||
<div
|
||||
v-if="sections.worldBoss"
|
||||
class="toggle-up"
|
||||
>
|
||||
<div
|
||||
class="svg-icon boss-icon reverse"
|
||||
v-html="icons.chevronIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="sections.worldBoss"
|
||||
class="mt-3"
|
||||
v-html="questData.notes()"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- .text-center.mt-4.world-boss
|
||||
-info-button(@click="showWorldBossInfo()") {{$t('whatIsWorldBoss') }}
|
||||
-->
|
||||
</div>
|
||||
<div class="sleep px-4 py-3">
|
||||
<strong v-once>{{ $t('sleepDescription') }}</strong>
|
||||
<ul>
|
||||
<li v-once>
|
||||
{{ $t('sleepBullet1') }}
|
||||
</li>
|
||||
<li v-once>
|
||||
{{ $t('sleepBullet2') }}
|
||||
</li>
|
||||
<li v-once>
|
||||
{{ $t('sleepBullet3') }}
|
||||
</li>
|
||||
</ul>
|
||||
<button
|
||||
v-if="!user.preferences.sleep"
|
||||
v-once
|
||||
class="btn btn-secondary pause-button"
|
||||
@click="toggleSleep()"
|
||||
>
|
||||
{{ $t('pauseDailies') }}
|
||||
</button>
|
||||
<button
|
||||
v-if="user.preferences.sleep"
|
||||
v-once
|
||||
class="btn btn-secondary pause-button"
|
||||
@click="toggleSleep()"
|
||||
>
|
||||
{{ $t('unpauseDailies') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-4">
|
||||
<sidebar-section :title="$t('staff')">
|
||||
<div class="row">
|
||||
<div
|
||||
v-for="user in staff"
|
||||
:key="user.uuid"
|
||||
class="col-6 staff"
|
||||
:class="{
|
||||
staff: user.type === 'Staff',
|
||||
moderator: user.type === 'Moderator'}"
|
||||
>
|
||||
<div>
|
||||
<router-link
|
||||
class="title"
|
||||
:to="{'name': 'userProfile', 'params': {'userId': user.uuid}}"
|
||||
>
|
||||
{{ user.name }}
|
||||
</router-link>
|
||||
<div
|
||||
v-if="user.type === 'Staff'"
|
||||
class="svg-icon staff-icon"
|
||||
v-html="icons.tierStaff"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</sidebar-section>
|
||||
<sidebar-section :title="$t('helpfulLinks')">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="mailto:admin@habitica.com">
|
||||
{{ $t('reportCommunityIssues') }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<router-link
|
||||
v-once
|
||||
to="/static/community-guidelines"
|
||||
>
|
||||
{{ $t('communityGuidelines') }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li>
|
||||
<router-link
|
||||
to="/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601"
|
||||
>
|
||||
{{ $t('lookingForGroup') }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li>
|
||||
<router-link
|
||||
v-once
|
||||
to="/static/faq"
|
||||
>
|
||||
{{ $t('faq') }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href
|
||||
:style="glossary-link"
|
||||
v-html="$t('glossary')"
|
||||
></a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
v-once
|
||||
href="https://habitica.fandom.com/wiki/Habitica_Wiki"
|
||||
target="_blank"
|
||||
>{{ $t('wiki') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
v-once
|
||||
href="https://tools.habitica.com/"
|
||||
target="_blank"
|
||||
>{{ $t('dataDisplayTool') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href=""
|
||||
target="_blank"
|
||||
@click.prevent="openBugReportModal()"
|
||||
>
|
||||
{{ $t('reportBug') }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
v-once
|
||||
href="https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link"
|
||||
target="_blank"
|
||||
>{{ $t('requestFeature') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<router-link
|
||||
to="/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a"
|
||||
>
|
||||
{{ $t('askQuestionGuild') }}
|
||||
</router-link>
|
||||
</li>
|
||||
</ul>
|
||||
</sidebar-section>
|
||||
<sidebar-section :title="$t('playerTiers')">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p v-once>
|
||||
{{ $t('playerTiersDesc') }}
|
||||
</p>
|
||||
<ul class="tier-list">
|
||||
<li
|
||||
v-once
|
||||
class="tier1"
|
||||
>
|
||||
{{ $t('tier1') }}
|
||||
<div
|
||||
class="svg-icon tier1-icon"
|
||||
v-html="icons.tier1"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier2"
|
||||
>
|
||||
{{ $t('tier2') }}
|
||||
<div
|
||||
class="svg-icon tier2-icon"
|
||||
v-html="icons.tier2"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier3"
|
||||
>
|
||||
{{ $t('tier3') }}
|
||||
<div
|
||||
class="svg-icon tier3-icon"
|
||||
v-html="icons.tier3"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier4"
|
||||
>
|
||||
{{ $t('tier4') }}
|
||||
<div
|
||||
class="svg-icon tier4-icon"
|
||||
v-html="icons.tier4"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier5"
|
||||
>
|
||||
{{ $t('tier5') }}
|
||||
<div
|
||||
class="svg-icon tier5-icon"
|
||||
v-html="icons.tier5"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier6"
|
||||
>
|
||||
{{ $t('tier6') }}
|
||||
<div
|
||||
class="svg-icon tier6-icon"
|
||||
v-html="icons.tier6"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="tier7"
|
||||
>
|
||||
{{ $t('tier7') }}
|
||||
<div
|
||||
class="svg-icon tier7-icon"
|
||||
v-html="icons.tier7"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="moderator"
|
||||
>
|
||||
{{ $t('tierModerator') }}
|
||||
<div
|
||||
class="svg-icon mod-icon"
|
||||
v-html="icons.tierMod"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="staff"
|
||||
>
|
||||
{{ $t('tierStaff') }}
|
||||
<div
|
||||
class="svg-icon staff-icon"
|
||||
v-html="icons.tierStaff"
|
||||
></div>
|
||||
</li>
|
||||
<li
|
||||
v-once
|
||||
class="npc"
|
||||
>
|
||||
{{ $t('tierNPC') }}
|
||||
<div
|
||||
class="svg-icon npc-icon"
|
||||
v-html="icons.tierNPC"
|
||||
></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</sidebar-section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
@import '@/assets/scss/colors.scss';
|
||||
|
||||
h1 {
|
||||
color: $purple-200;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
background-color: $gray-600;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
.pause-button {
|
||||
background-color: #ffb445 !important;
|
||||
color: $white;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.grassy-meadow-backdrop {
|
||||
background-repeat: repeat-x;
|
||||
width: 100%;
|
||||
height: 246px;
|
||||
}
|
||||
|
||||
.daniel_front {
|
||||
height: 246px;
|
||||
width: 471px;
|
||||
background-repeat: no-repeat;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
width: 10px;
|
||||
display: inline-block;
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
.tier1-icon, .tier2-icon {
|
||||
width: 11px;
|
||||
}
|
||||
|
||||
.tier5-icon, .tier6-icon {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.tier7-icon {
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
.mod-icon {
|
||||
width: 13px;
|
||||
}
|
||||
|
||||
.npc-icon {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.boss-icon {
|
||||
width: 16px;
|
||||
margin-top: .1em;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.boss-icon-large {
|
||||
width: 48px;
|
||||
}
|
||||
|
||||
.staff {
|
||||
margin-bottom: 1em;
|
||||
|
||||
.staff-icon {
|
||||
width: 11px;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #6133b4;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.tier-list {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
width: 98%;
|
||||
|
||||
li {
|
||||
border-radius: 2px;
|
||||
background-color: #edecee;
|
||||
border: solid 1px #c3c0c7;
|
||||
text-align: center;
|
||||
padding: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tier1 {
|
||||
color: #c42870;
|
||||
}
|
||||
|
||||
.tier2 {
|
||||
color: #b01515;
|
||||
}
|
||||
|
||||
.tier3 {
|
||||
color: #d70e14;
|
||||
}
|
||||
|
||||
.tier4 {
|
||||
color: #c24d00;
|
||||
}
|
||||
|
||||
.tier5 {
|
||||
color: #9e650f;
|
||||
}
|
||||
|
||||
.tier6 {
|
||||
color: #2b8363;
|
||||
}
|
||||
|
||||
.tier7 {
|
||||
color: #167e87;
|
||||
}
|
||||
|
||||
.tier8, .moderator {
|
||||
color: #277eab;
|
||||
}
|
||||
|
||||
.tier9, .staff {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
.npc {
|
||||
color: $black;
|
||||
}
|
||||
}
|
||||
|
||||
.staff .title {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
.moderator .title {
|
||||
color: #277eab;
|
||||
}
|
||||
|
||||
.bailey .title {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
.boss-section {
|
||||
padding: 1.75em;
|
||||
}
|
||||
|
||||
.world-boss {
|
||||
color: $white;
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
outline-style: solid;
|
||||
outline-width: 2px;
|
||||
margin: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quest-boss {
|
||||
margin: 1em auto;
|
||||
}
|
||||
|
||||
.grey-progress-bar {
|
||||
width: 100%;
|
||||
height: 15px;
|
||||
background-color: rgba(255, 255, 255, 0.24);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.boss-health-bar {
|
||||
width: 80%;
|
||||
height: 15px;
|
||||
margin-bottom: .5em;
|
||||
border-top-left-radius: 2px;
|
||||
border-bottom-left-radius: 2px;
|
||||
background-color: #f74e52;
|
||||
}
|
||||
|
||||
.boss-health-bar.rage-bar {
|
||||
background-color: #ff944c;
|
||||
}
|
||||
|
||||
.boss-gradient {
|
||||
background-image: linear-gradient(to bottom, #401f2a, #931f4d);
|
||||
margin-top: -1.4em;
|
||||
}
|
||||
|
||||
.boss-description {
|
||||
border-top: 1px solid;
|
||||
margin-left: -16px;
|
||||
margin-right: -16px;
|
||||
padding: .25em 0 0 .25em;
|
||||
}
|
||||
|
||||
.float-bar {
|
||||
position: relative;
|
||||
top: -16px;
|
||||
width: 162px;
|
||||
height: 28px;
|
||||
border-radius: 2px;
|
||||
background-color: inherit;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.corner-decoration {
|
||||
position: absolute;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background-color: inherit;
|
||||
border: inherit;
|
||||
outline: inherit;
|
||||
}
|
||||
|
||||
.reverse {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.diamond {
|
||||
margin: auto;
|
||||
display: inline-block;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
-webkit-transform: rotate(-45deg);
|
||||
transform: rotate(-45deg);
|
||||
background-color: #dc4069;
|
||||
border: solid 2px #931f4d;
|
||||
}
|
||||
|
||||
.reduce {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.rage-strike {
|
||||
max-width: 50px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.rage-strike-active {
|
||||
max-width: 75px;
|
||||
height: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.world-boss-info-button {
|
||||
width: 100%;
|
||||
background-color: $gray-500;
|
||||
border-radius: 2px;
|
||||
font-size: 14px;
|
||||
color: $blue-10;
|
||||
padding: 1em;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import find from 'lodash/find';
|
||||
import { TAVERN_ID } from '@/../../common/script/constants';
|
||||
import * as quests from '@/../../common/script/content/quests';
|
||||
import { mapState } from '@/libs/store';
|
||||
import { goToModForm } from '@/libs/modform';
|
||||
|
||||
import worldBossInfoModal from '../world-boss/worldBossInfoModal';
|
||||
import worldBossRageModal from '../world-boss/worldBossRageModal';
|
||||
import sidebarSection from '../sidebarSection';
|
||||
import chat from './chat';
|
||||
|
||||
import challengeIcon from '@/assets/svg/challenge.svg?raw';
|
||||
import chevronIcon from '@/assets/svg/chevron-red.svg?raw';
|
||||
import gemIcon from '@/assets/svg/gem.svg?raw';
|
||||
import healthIcon from '@/assets/svg/health.svg?raw';
|
||||
import informationIconRed from '@/assets/svg/information-red.svg?raw';
|
||||
import questBackground from '@/assets/svg/quest-background-border.svg?raw';
|
||||
import rageIcon from '@/assets/svg/rage.svg?raw';
|
||||
import swordIcon from '@/assets/svg/sword.svg?raw';
|
||||
|
||||
import tier1 from '@/assets/svg/tier-1.svg?raw';
|
||||
import tier2 from '@/assets/svg/tier-2.svg?raw';
|
||||
import tier3 from '@/assets/svg/tier-3.svg?raw';
|
||||
import tier4 from '@/assets/svg/tier-4.svg?raw';
|
||||
import tier5 from '@/assets/svg/tier-5.svg?raw';
|
||||
import tier6 from '@/assets/svg/tier-6.svg?raw';
|
||||
import tier7 from '@/assets/svg/tier-7.svg?raw';
|
||||
import tierMod from '@/assets/svg/tier-mod.svg?raw';
|
||||
import tierNPC from '@/assets/svg/tier-npc.svg?raw';
|
||||
import tierStaff from '@/assets/svg/tier-staff.svg?raw';
|
||||
|
||||
import staffList from '../../libs/staffList';
|
||||
import reportBug from '@/mixins/reportBug.js';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
worldBossInfoModal,
|
||||
worldBossRageModal,
|
||||
sidebarSection,
|
||||
chat,
|
||||
},
|
||||
mixins: [reportBug],
|
||||
data () {
|
||||
return {
|
||||
groupId: TAVERN_ID,
|
||||
icons: Object.freeze({
|
||||
challengeIcon,
|
||||
chevronIcon,
|
||||
gem: gemIcon,
|
||||
healthIcon,
|
||||
informationIcon: informationIconRed,
|
||||
questBackground,
|
||||
rageIcon,
|
||||
swordIcon,
|
||||
tier1,
|
||||
tier2,
|
||||
tier3,
|
||||
tier4,
|
||||
tier5,
|
||||
tier6,
|
||||
tier7,
|
||||
tierMod,
|
||||
tierNPC,
|
||||
tierStaff,
|
||||
}),
|
||||
group: {
|
||||
chat: [],
|
||||
},
|
||||
sections: {
|
||||
worldBoss: true,
|
||||
},
|
||||
staff: staffList,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
user: 'user.data',
|
||||
currentEventList: 'worldState.data.currentEventList',
|
||||
}),
|
||||
questData () {
|
||||
if (!this.group.quest) return {};
|
||||
return quests.quests[this.group.quest.key];
|
||||
},
|
||||
imageURLs () {
|
||||
const currentEvent = find(this.currentEventList, event => Boolean(event.season));
|
||||
if (!currentEvent) {
|
||||
return {
|
||||
background: 'url(/static/npc/normal/tavern_background.png)',
|
||||
npc: 'url(/static/npc/normal/tavern_npc.png)',
|
||||
};
|
||||
}
|
||||
return {
|
||||
background: `url(/static/npc/${currentEvent.season}/tavern_background.png)`,
|
||||
npc: `url(/static/npc/${currentEvent.season}/tavern_npc.png)`,
|
||||
};
|
||||
},
|
||||
},
|
||||
async mounted () {
|
||||
this.$store.dispatch('common:setTitle', {
|
||||
subSection: this.$t('tavern'),
|
||||
section: this.$t('guilds'),
|
||||
});
|
||||
this.group = await this.$store.dispatch('guilds:getGroup', { groupId: TAVERN_ID });
|
||||
},
|
||||
methods: {
|
||||
modForm () {
|
||||
goToModForm(this.user);
|
||||
},
|
||||
toggleSleep () {
|
||||
this.$store.dispatch('user:sleep');
|
||||
},
|
||||
|
||||
pendingDamage () {
|
||||
if (!this.user.party.quest.progress.up) return 0;
|
||||
return this.$options.filters.floor(this.user.party.quest.progress.up, 10);
|
||||
// keep user's pending damage consistent with how it's displayed on the party page
|
||||
},
|
||||
bossCurrentHealth () {
|
||||
if (!this.group.quest.progress.hp) return 0;
|
||||
|
||||
return Math.ceil(parseFloat(this.group.quest.progress.hp)).toLocaleString();
|
||||
},
|
||||
bossCurrentRage () {
|
||||
if (!this.group.quest.progress.hp) return 0;
|
||||
|
||||
return Math.floor(parseFloat(this.group.quest.progress.rage)).toLocaleString();
|
||||
},
|
||||
showWorldBossInfo () {
|
||||
this.$root.$emit('bv::show::modal', 'world-boss-info');
|
||||
},
|
||||
showWorldBossRage (npc) {
|
||||
if (this.group.quest.extra.worldDmg[npc]) {
|
||||
this.$store.state.rageModalOptions.npc = npc;
|
||||
this.$root.$emit('bv::show::modal', 'world-boss-rage');
|
||||
}
|
||||
},
|
||||
async fetchRecentMessages () {
|
||||
this.group = await this.$store.dispatch('guilds:getGroup', { groupId: TAVERN_ID });
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="row standard-page">
|
||||
<small
|
||||
class="muted"
|
||||
v-html="$t('blurbHallContributors')"
|
||||
v-html="$t('blurbHallContributors', hallLinks)"
|
||||
></small>
|
||||
</div>
|
||||
<div class="row standard-page">
|
||||
@@ -68,6 +68,7 @@
|
||||
<a
|
||||
href="https://habitica.fandom.com/wiki/Contributor_Rewards"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>More details</a>
|
||||
</small>
|
||||
</div>
|
||||
@@ -296,6 +297,7 @@
|
||||
<div
|
||||
v-markdown="hero.contributor.contributions"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
></div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -360,6 +362,12 @@ export default {
|
||||
expandItems: false,
|
||||
expandAuth: false,
|
||||
expandTransactions: false,
|
||||
hallLinks: {
|
||||
linkRewards: '<a href="https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards" target="_blank" rel="noreferrer noopener">',
|
||||
linkTiers: '<a href="https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tiers" target="_blank" rel="noreferrer noopener">',
|
||||
linkContributing: '<a href="https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
async mounted () {
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
<template>
|
||||
<base-banner
|
||||
v-if="showChatWarning"
|
||||
banner-id="chat-warning"
|
||||
banner-class="chat-banner"
|
||||
class="chat-banner"
|
||||
height="3rem"
|
||||
:class="{faq: faqPage}"
|
||||
>
|
||||
<div
|
||||
slot="content"
|
||||
class="w-100 text-center"
|
||||
v-html="$t('chatSunsetWarning')"
|
||||
>
|
||||
</div>
|
||||
</base-banner>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
@import '@/assets/scss/colors.scss';
|
||||
|
||||
.chat-banner {
|
||||
width: 100%;
|
||||
min-height: 48px;
|
||||
padding: 8px;
|
||||
color: $orange-1;
|
||||
background-color: $orange-100;
|
||||
line-height: 1.71;
|
||||
|
||||
a {
|
||||
color: $orange-1;
|
||||
text-decoration: underline;
|
||||
|
||||
&:hover {
|
||||
color: $orange-1;
|
||||
}
|
||||
}
|
||||
|
||||
&.faq {
|
||||
position: fixed;
|
||||
top: 3.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import BaseBanner from './base';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BaseBanner,
|
||||
},
|
||||
computed: {
|
||||
faqPage () {
|
||||
return (this.$route.fullPath.indexOf('/faq')) !== -1;
|
||||
},
|
||||
showChatWarning () {
|
||||
return false;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
</script>
|
||||
@@ -6,7 +6,7 @@
|
||||
>
|
||||
<p
|
||||
class="mr-3 mb-0"
|
||||
v-html="$t('privacyOverview') + ' ' + $t('learnMorePrivacy')"
|
||||
v-html="$t('privacyOverview') + ' ' + $t('learnMorePrivacy', learnLinks)"
|
||||
>
|
||||
</p>
|
||||
<div
|
||||
@@ -89,6 +89,10 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
hidden: false,
|
||||
learnLinks: {
|
||||
linkOpen: '<a href="/static/privacy" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
|
||||
@@ -310,6 +310,7 @@
|
||||
<a
|
||||
class="topbar-dropdown-item dropdown-item"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@click.prevent="openBugReportModal()"
|
||||
>
|
||||
{{ $t('reportBug') }}
|
||||
@@ -317,6 +318,7 @@
|
||||
<a
|
||||
class="topbar-dropdown-item dropdown-item"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@click.prevent="openBugReportModal(true)"
|
||||
>
|
||||
{{ $t('askQuestion') }}
|
||||
@@ -325,6 +327,7 @@
|
||||
class="topbar-dropdown-item dropdown-item"
|
||||
href="https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('requestFeature') }}</a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -377,6 +380,7 @@
|
||||
v-if="hasPermission(user, 'news')"
|
||||
class="topbar-dropdown-item dropdown-item"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://panel.habitica.com"
|
||||
>
|
||||
{{ $t('newsroom') }}
|
||||
|
||||
@@ -6,11 +6,7 @@
|
||||
>
|
||||
<div slot="content">
|
||||
<div
|
||||
v-html="$t('invitedToPartyBy', {
|
||||
userId: notification.data.inviter,
|
||||
userName: invitingUser.auth ? invitingUser.auth.local.username : null,
|
||||
party: notification.data.name,
|
||||
})"
|
||||
v-html="$t('invitedToPartyBy', invitationInfo)"
|
||||
>
|
||||
</div>
|
||||
<div class="notifications-buttons">
|
||||
@@ -60,6 +56,10 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
invitationInfo: {
|
||||
usernameLink: `<a href="/profile/${this.notification.data.inviter}" target="_blank" rel="noreferrer noopener">@${this.invitingUser.auth ? this.invitingUser.auth.local.username : null}</a>`,
|
||||
partyName: `<span class="notification-bold">${this.notification.data.name}</span>`,
|
||||
},
|
||||
},
|
||||
async mounted () {
|
||||
this.invitingUser = await this.$store.dispatch('members:fetchMember', {
|
||||
|
||||
@@ -139,8 +139,8 @@ export default {
|
||||
mixins: [notifications, userStateMixin],
|
||||
data () {
|
||||
const abuseFlagModalBody = {
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank">',
|
||||
firstLinkStart: '<a href="/static/community-guidelines" target="_blank" rel="noopener noreferrer">',
|
||||
secondLinkStart: '<a href="/static/terms" target="_blank" rel="noopener noreferrer">',
|
||||
linkEnd: '</a>',
|
||||
};
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ export default {
|
||||
},
|
||||
amazonPayments: {},
|
||||
assistanceEmailObject: {
|
||||
hrefTechAssistanceEmail: `<a href="mailto:${TECH_ASSISTANCE_EMAIL}">${TECH_ASSISTANCE_EMAIL}</a>`,
|
||||
techAssistanceEmail: `<a href="mailto:${TECH_ASSISTANCE_EMAIL}">${TECH_ASSISTANCE_EMAIL}</a>`,
|
||||
},
|
||||
sendingInProgress: false,
|
||||
userReceivingGems: null,
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
<a
|
||||
href="/static/privacy"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('habiticaPrivacyPolicy') }}
|
||||
</a>
|
||||
|
||||
@@ -399,7 +399,7 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="!hasGroupPlan && !canCancelSubscription"
|
||||
v-html="$t(`cancelSubInfo${user.purchased.plan.paymentMethod}`)"
|
||||
v-html="$t(`cancelSubInfo${user.purchased.plan.paymentMethod}`, cancelLinks)"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1022,6 +1022,17 @@ export default {
|
||||
|
||||
return nextHourglassMonth;
|
||||
},
|
||||
cancelLinks () {
|
||||
const links = {
|
||||
linkClose: '</a>',
|
||||
};
|
||||
if (this.user.purchased.plan.paymentMethod === this.paymentMethods.GOOGLE) {
|
||||
links.linkOpen = '<a href="https://play.google.com/store/account/subscriptions" target="_blank" rel="noopener noreferrer">';
|
||||
} else if (this.user.purchased.plan.paymentMethod === this.paymentMethods.APPLE) {
|
||||
links.linkOpen = '<a href="https://support.apple.com/en-us/HT202039" target="_blank" rel="noopener noreferrer">';
|
||||
}
|
||||
return links;
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$store.dispatch('common:setTitle', {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</h2>
|
||||
<p
|
||||
class="text-center"
|
||||
v-html="$t('usernameInfo')"
|
||||
v-html="$t('usernameInfo', usernameLinks)"
|
||||
></p>
|
||||
<username-form />
|
||||
<div class="scene_veteran_pets center-block"></div>
|
||||
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
<div
|
||||
class="small text-center tos-footer"
|
||||
v-html="$t('usernameTOSRequirements')"
|
||||
v-html="$t('usernameTOSRequirements', requirementsLinks)"
|
||||
></div>
|
||||
</b-modal>
|
||||
</template>
|
||||
@@ -94,6 +94,15 @@ export default {
|
||||
icons: Object.freeze({
|
||||
helloNametag,
|
||||
}),
|
||||
usernameLinks: {
|
||||
linkOpen: '<a href="https://habitica.fandom.com/wiki/Player_Names" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
requirementsLinks: {
|
||||
termsLink: '<a href="/static/terms" target="_blank" rel="noreferrer noopener">',
|
||||
guidelinesLink: '<a href="/static/community-guidelines" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
<div
|
||||
class="contact mx-auto"
|
||||
>
|
||||
<p v-html="$t('contactAdmin')"></p>
|
||||
<p v-html="$t('contactAdmin', { adminEmail })"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -368,6 +368,7 @@ export default {
|
||||
pixel_border: 'url(/static/npc/normal/pixel_border.png)',
|
||||
},
|
||||
staff: staffList,
|
||||
adminEmail: '<a href="mailto:admin@habitica.com" target="_blank" rel="noreferrer noopener">admin@habitica.com</a>',
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -33,8 +33,9 @@
|
||||
class="drawer-help-text"
|
||||
href="/static/faq#pet-foods"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<span>{{ $t('petLikeToEat') }}</span>
|
||||
<span>{{ $t('petLikeToEat', eatLinks) }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</drawer-header-tabs>
|
||||
@@ -114,6 +115,10 @@ export default {
|
||||
},
|
||||
],
|
||||
selectedDrawerTab: this.defaultSelectedTab,
|
||||
eatLinks: {
|
||||
linkOpen: '<a href="/static/faq#pet-foods" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -162,6 +162,10 @@ export default {
|
||||
searchTextThrottled: null,
|
||||
unfilteredCategories: [],
|
||||
viewOptions: {},
|
||||
customizeLinks: {
|
||||
linkOpen: '<a href="">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -264,21 +268,21 @@ export default {
|
||||
const { $t } = this;
|
||||
switch (identifier) {
|
||||
case 'animalEars':
|
||||
return $t('allCustomizationsOwned');
|
||||
return $t('allCustomizationsOwned', this.customizeLinks);
|
||||
case 'animalTails':
|
||||
return $t('allCustomizationsOwned');
|
||||
return $t('allCustomizationsOwned', this.customizeLinks);
|
||||
case 'backgrounds':
|
||||
return `${$t('allCustomizationsOwned')} ${$t('checkNextMonth')}`;
|
||||
return `${$t('allCustomizationsOwned', this.customizeLinks)} ${$t('checkNextMonth')}`;
|
||||
case 'facialHair':
|
||||
return $t('allCustomizationsOwned');
|
||||
return $t('allCustomizationsOwned', this.customizeLinks);
|
||||
case 'color':
|
||||
return `${$t('allCustomizationsOwned')} ${$t('checkNextSeason')}`;
|
||||
return `${$t('allCustomizationsOwned', this.customizeLinks)} ${$t('checkNextSeason')}`;
|
||||
case 'base':
|
||||
return $t('allCustomizationsOwned');
|
||||
return $t('allCustomizationsOwned', this.customizeLinks);
|
||||
case 'shirt':
|
||||
return $t('allCustomizationsOwned');
|
||||
return $t('allCustomizationsOwned', this.customizeLinks);
|
||||
case 'skin':
|
||||
return `${$t('allCustomizationsOwned')} ${$t('checkNextSeason')}`;
|
||||
return `${$t('allCustomizationsOwned', this.customizeLinks)} ${$t('checkNextSeason')}`;
|
||||
default:
|
||||
return `Unknown identifier ${identifier}`;
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
:item-margin="24"
|
||||
:type="category.identifier"
|
||||
:fold-button="false"
|
||||
:no-items-label="$t('allEquipmentOwned')"
|
||||
:no-items-label="$t('allEquipmentOwned', equipmentLinks)"
|
||||
:click-handler="false"
|
||||
>
|
||||
<template
|
||||
@@ -229,29 +229,25 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
viewOptions: {},
|
||||
|
||||
searchText: null,
|
||||
searchTextThrottled: null,
|
||||
|
||||
icons: Object.freeze({
|
||||
hourglass: svgHourglass,
|
||||
}),
|
||||
|
||||
sortItemsBy: ['AZ', 'sortByNumber'],
|
||||
selectedSortItemsBy: 'AZ',
|
||||
|
||||
selectedItemToBuy: null,
|
||||
|
||||
hidePinned: false,
|
||||
|
||||
backgroundUpdate: new Date(),
|
||||
|
||||
currentEvent: null,
|
||||
|
||||
imageURLs: {
|
||||
background: '',
|
||||
npc: '',
|
||||
},
|
||||
equipmentLinks: {
|
||||
linkOpen: '<a href="/inventory/equipment">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
<div class="body-text">
|
||||
<p v-html="$t('sunsetFaqPara12')"></p>
|
||||
<p v-html="$t('sunsetFaqPara13')"></p>
|
||||
<p v-html="$t('sunsetFaqPara14')"></p>
|
||||
<p v-html="$t('sunsetFaqPara14', translationLinks)"></p>
|
||||
<p v-html="$t('sunsetFaqPara15')"></p>
|
||||
<p v-html="$t('sunsetFaqPara16')"></p>
|
||||
<p v-html="$t('sunsetFaqPara17')"></p>
|
||||
@@ -138,9 +138,9 @@
|
||||
</div>
|
||||
<div class="body-text">
|
||||
<ul>
|
||||
<li v-html="$t('sunsetFaqList8')"></li>
|
||||
<li v-html="$t('sunsetFaqList9')"></li>
|
||||
<li v-html="$t('sunsetFaqList10')"></li>
|
||||
<li v-html="$t('sunsetFaqList8', faqLinks)"></li>
|
||||
<li v-html="$t('sunsetFaqList9', beginnerLinks)"></li>
|
||||
<li v-html="$t('sunsetFaqList10', { adminEmail })"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -169,6 +169,23 @@ export default {
|
||||
components: {
|
||||
FaqSidebar,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
adminEmail: '<a href="mailto:admin@habitica.com" target="_blank" rel="noreferrer noopener">admin@habitica.com</a>',
|
||||
translationLinks: {
|
||||
linkOpen: '<a href="https://translate.habitica.com/projects/habitica/#information">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
faqLinks: {
|
||||
linkOpen: '<a href="https://habitica.com/static/faq">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
beginnerLinks: {
|
||||
linkOpen: '<a href="https://habitica.wordpress.com/beginning-adventurers-guide/">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.$store.dispatch('common:setTitle', {
|
||||
section: this.$t('sunsetFaqTitle'),
|
||||
|
||||
@@ -33,11 +33,11 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
localStorageTryFirst: {
|
||||
linkStart: '<a href="/user/settings/site" target="_blank">',
|
||||
linkStart: '<a href="/user/settings/site" target="_blank" rel="noopener noreferrer">',
|
||||
linkEnd: '</a>',
|
||||
},
|
||||
localStorageTryNext: {
|
||||
linkStart: '<a href="https://github.com/HabitRPG/habitica/issues/2760" target="_blank">',
|
||||
linkStart: '<a href="https://github.com/HabitRPG/habitica/issues/2760" target="_blank" rel="noopener noreferrer">',
|
||||
linkEnd: '</a>',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
<ul>
|
||||
<li><strong>{{ $t('commGuideList01A') }}</strong></li>
|
||||
<li v-html="$t('commGuideList02C')"></li>
|
||||
<li v-html="$t('commGuideList02N')"></li>
|
||||
<li v-html="$t('commGuideList02N', { adminEmail })"></li>
|
||||
<li v-html="$t('commGuideList02H')"></li>
|
||||
<li v-html="$t('commGuideList02A')"></li>
|
||||
<li v-html="$t('commGuideList02I')"></li>
|
||||
<li v-html="$t('commGuideList02G')"></li>
|
||||
<li v-html="$t('commGuideList02G', { adminEmail })"></li>
|
||||
<li v-html="$t('commGuideList02D')"></li>
|
||||
<li v-html="$t('commGuideList02E')"></li>
|
||||
<li v-html="$t('commGuideList02O')"></li>
|
||||
@@ -36,7 +36,7 @@
|
||||
<li v-html="$t('commGuideList02P')"></li>
|
||||
<li v-html="$t('commGuideList02Q')"></li>
|
||||
<li v-html="$t('commGuideList02M')"></li>
|
||||
<li v-html="$t('commGuideList02L')"></li>
|
||||
<li v-html="$t('commGuideList02L', { adminEmail })"></li>
|
||||
<li v-html="$t('commGuideList02J')"></li>
|
||||
<li v-html="$t('commGuideList02K')"></li>
|
||||
</ul>
|
||||
@@ -69,7 +69,7 @@
|
||||
<p v-html="$t('commGuidePara054')"></p>
|
||||
<p v-html="$t('commGuidePara055')"></p>
|
||||
<ul>
|
||||
<li v-html="$t('commGuideList06A')"></li>
|
||||
<li v-html="$t('commGuideList06A', { adminEmail })"></li>
|
||||
<li v-html="$t('commGuideList06C')"></li>
|
||||
<li v-html="$t('commGuideList06E')"></li>
|
||||
</ul>
|
||||
@@ -108,7 +108,7 @@
|
||||
class="mb-3"
|
||||
>
|
||||
<p v-html="$t('commGuidePara061')"></p>
|
||||
<p v-html="$t('commGuidePara063')"></p>
|
||||
<p v-html="$t('commGuidePara063', { adminEmail })"></p>
|
||||
<h2 id="meet-the-mods">
|
||||
{{ $t('commGuideHeadingMeet') }}
|
||||
</h2>
|
||||
@@ -162,15 +162,15 @@
|
||||
<h2 id="final">
|
||||
{{ $t('commGuideHeadingFinal') }}
|
||||
</h2>
|
||||
<p v-html="$t('commGuidePara067')"></p>
|
||||
<p v-html="$t('commGuidePara067', { adminEmail })"></p>
|
||||
<p v-html="$t('commGuidePara068')"></p>
|
||||
<h2 id="links">
|
||||
{{ $t('commGuideHeadingLinks') }}
|
||||
</h2>
|
||||
<ul>
|
||||
<li><a href="/static/faq">{{ $t('faq') }}</a></li>
|
||||
<li v-html="$t('commGuideLink03')"></li>
|
||||
<li v-html="$t('commGuideLink04')"></li>
|
||||
<li v-html="$t('commGuideLink03', gitHubLinks)"></li>
|
||||
<li v-html="$t('commGuideLink04', feedbackLinks)"></li>
|
||||
</ul>
|
||||
<p v-html="$t('commGuidePara069')"></p>
|
||||
<ul>
|
||||
@@ -187,3 +187,23 @@
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
adminEmail: '<a href="mailto:admin@habitica.com" target="_blank" rel="noreferrer noopener">admin@habitica.com</a>',
|
||||
gitHubLinks: {
|
||||
linkOpen: '<a href="https://github.com/HabitRPG/habitica" target="_blank">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
feedbackLinks: {
|
||||
linkOpen: '<a href="https://habitica.fandom.com/wiki/Habitica_Wiki" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<br>
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@click.prevent="openBugReportModal()"
|
||||
>
|
||||
{{ $t('reportBug') }}
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
</div>
|
||||
<div class="col-md-6 mb-5 mb-md-0">
|
||||
<img :src="makeUrl('features_opensource.png')">
|
||||
<h2>{{ $t('marketing3Lead2Title') }}</h2>
|
||||
<h2>{{ $t('marketing3Lead2Title', { githubLink }) }}</h2>
|
||||
<p
|
||||
v-markdown="$t('marketing3Lead2')"
|
||||
class="description"
|
||||
@@ -180,6 +180,11 @@ export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
githubLink: 'https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica',
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.$store.dispatch('common:setTitle', {
|
||||
section: this.$t('features'),
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
</h2>
|
||||
<p
|
||||
class="purple-600"
|
||||
v-html="$t('checkGroupPlanFAQ')"
|
||||
v-html="$t('checkGroupPlanFAQ', faqLinks)"
|
||||
></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -329,6 +329,10 @@ export default {
|
||||
modalOption: '',
|
||||
modalPage: 'account',
|
||||
modalTitle: this.$t('register'),
|
||||
faqLinks: {
|
||||
linkOpen: '<a href="/static/faq#what-is-group-plan">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
class="nav-link"
|
||||
href="https://habitica.wordpress.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('companyBlog') }}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
@@ -54,6 +55,7 @@
|
||||
class="nav-link"
|
||||
href="https://blog.habitrpg.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('tumblr') }}</a>
|
||||
</li>
|
||||
<router-link
|
||||
|
||||
@@ -6,7 +6,11 @@
|
||||
<noscript class="banner">
|
||||
{{ $t('jsDisabledHeadingFull') }}
|
||||
<br />
|
||||
<a href="https://www.enable-javascript.com/" target="_blank">{{ $t('jsDisabledLink') }}</a>
|
||||
<a
|
||||
href="https://www.enable-javascript.com/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('jsDisabledLink') }}</a>
|
||||
</noscript>
|
||||
<privacy-banner
|
||||
class="privacy-banner"
|
||||
@@ -254,12 +258,14 @@
|
||||
class="app svg-icon"
|
||||
href="https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
v-html="icons.googlePlay"
|
||||
></a>
|
||||
<a
|
||||
class="app svg-icon"
|
||||
href="https://itunes.apple.com/us/app/habitica-gamified-task-manager/id994882113?mt=8"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
v-html="icons.iosAppStore"
|
||||
></a>
|
||||
</div>
|
||||
|
||||
@@ -13,9 +13,10 @@
|
||||
<hr>
|
||||
</div>
|
||||
<p>
|
||||
<span v-html="$t('overviewQuestionsRevised')"></span>
|
||||
<span v-html="$t('overviewQuestionsRevised', overviewLinks)"></span>
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@click.prevent="openBugReportModal(true)"
|
||||
>
|
||||
{{ $t('askQuestion') }}
|
||||
@@ -57,6 +58,10 @@ export default {
|
||||
shopUrl: '/shops/market',
|
||||
},
|
||||
},
|
||||
overviewLinks: {
|
||||
linkOpen: '<a href="/static/faq">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -100,9 +100,11 @@
|
||||
We use Google Analytics, a service which uses cookies to collect and analyze data about the use of the Services and report on activities and trends. This service may also collect data about the use of other websites, apps, and online services. You can <a
|
||||
href="https://policies.google.com/technologies/partner-sites"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>learn about</a> Google's practices, and opt out of them, by downloading the <a
|
||||
href="https://tools.google.com/dlpage/gaoptout"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>Google Analytics opt-out browser add-on</a>.
|
||||
</p>
|
||||
<h4>Controlling Cookies</h4>
|
||||
@@ -687,6 +689,7 @@
|
||||
<em>Opt - Out of the “ Sale” of Personal Information or Use of Such Information for “Targeted Advertising” or “Profiling”</em>. We engage in common marketing and advertising practices to provide more relevant content and ads to users of our Site and Services. Certain of these practices may involve the “selling” of personal information, or the use of such information for “targeted advertising” or “profiling,” as those terms are defined in the Texas Data Privacy and Security Act (“TDPSA”) and the Nebraska Data Privacy Act. We do not sell personal information under the more commonly understood meaning of that word—i.e., providing personal information to third parties in exchange for money. Nor do we have actual knowledge of selling personal information of minors under the age of 16. To opt-out of the selling of your personal information, or use of that information for targeted advertising or profiling, please submit a request to <a href="mailto:privacy@habitica.com">privacy@habitica.com</a>. Note: We also treat Global Privacy Control browser signals as opt-out of sale/disclosure for targeted advertising or profiling requests. To opt-out via the Global Privacy Control, please follow the instructions available <a
|
||||
href="https://globalprivacycontrol.org/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>here</a>.
|
||||
</p>
|
||||
<p>
|
||||
@@ -730,12 +733,15 @@
|
||||
<strong>Right to lodge a complaint:</strong> Users that reside in the UK, EEA, or Switzerland have the right to seek information and assistance or lodge a complaint about our data collection and processing actions with the supervisory authority where they reside. Contact details for data protection authorities are available here. UK: <a
|
||||
href="https://ico.org.uk/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>https://ico.org.uk/</a> EEA: <a
|
||||
href="https://edpb.europa.eu/about-edpb/board/members_en"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>https://edpb.europa.eu/about-edpb/board/members_en</a> Switzerland: <a
|
||||
href="https//www.edoeb.admin.ch/edoeb/en/home/deredoeb/kontakt.html"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>https//www.edoeb.admin.ch/edoeb/en/home/deredoeb/kontakt.html</a>.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -244,13 +244,11 @@
|
||||
|
||||
<script>
|
||||
import AppFooter from '@/components/appFooter';
|
||||
import ChatBanner from '@/components/header/banners/chatBanner';
|
||||
import StaticHeader from './header.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
AppFooter,
|
||||
ChatBanner,
|
||||
StaticHeader,
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
Our Service is provided by HabitRPG, Inc. ("HabitRPG"). By accepting these Terms of Service and our Privacy Policy located at: <a
|
||||
href="https://habitica.com/static/privacy"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>https://habitica.com/static/privacy</a> (collectively, the "Agreement"), using our website, Habitica.com, or our other features or services (collectively, “the Services”), or otherwise manifesting your assent to the Agreement, you acknowledge that you have read, understood, and agree to be legally bound by the Agreement. If you do not agree to (or cannot comply with) the Agreement, you are not permitted to access or use the Service. By accepting or agreeing to this Agreement on behalf of a company or other legal entity, you represent and warrant that you have the authority to bind that company or other legal entity to the Agreement and, in such event, "you" and "your" will refer and apply to that company or other legal entity. You further represent and warrant that your assent to this Agreement constitutes an electronic signature as defined by the Electronic Signatures in Global and National Commerce Act (“E-Sign”) and the Uniform Electronic Transactions Act (“UETA”) and that you have formed, executed, entered into, and accepted the terms of and otherwise authenticated the Agreement and acknowledged and agreed that the Agreement is an electronic record for purposes of E- Sign, UETA, and the Uniform Computer Information Transactions Act and, as such, is completely valid, has legal effect, is enforceable, and is binding on, and non- refutable by, you and/or any entity on whose behalf you are acting.
|
||||
</p>
|
||||
<p class="strong">
|
||||
@@ -164,6 +165,7 @@
|
||||
FOR ANY CUSTOMER WHO PURCHASED PREMIUM IN APPLE INC.'s APP STORE ("APP STORE"), PLEASE CONTACT APPLE INC.'s SUPPORT TEAM: <a
|
||||
href="https://reportaproblem.apple.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>https://reportaproblem.apple.com</a>. APPLE'S APP STORE DOES NOT ALLOW DEVELOPERS TO ISSUE REFUNDS FOR APP STORE PURCHASES MADE BY CUSTOMERS.
|
||||
</p>
|
||||
|
||||
@@ -204,6 +206,7 @@
|
||||
All disputes will be resolved before a neutral arbitrator selected jointly by the parties, whose decision will be final, except for a limited right of appeal under the FAA. The arbitration shall be commenced and conducted by JAMS pursuant to its then current Comprehensive Arbitration Rules and Procedures and in accordance with the Expedited Procedures in those rules, or, where appropriate, pursuant to JAMS' Streamlined Arbitration Rules and Procedures. All applicable JAMS rules and procedures are available at the JAMS website <a
|
||||
href="https://www.jamsadr.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>www.jamsadr.com</a>. Each party will be responsible for paying any JAMS filing, administrative, and arbitrator fees in accordance with JAMS rules. Judgment on the arbitrator's award may be entered in any court having jurisdiction. This clause shall not preclude parties from seeking provisional remedies in aid of arbitration from a court of appropriate jurisdiction. The arbitration may be conducted in person, through the submission of documents, by phone, or online. If conducted in person, the arbitration shall take place in the United States county where you reside. The parties may litigate in court to compel arbitration, to stay a proceeding pending arbitration, or to confirm, modify, vacate, or enter judgment on the award entered by the arbitrator. The parties shall cooperate in good faith in the voluntary and informal exchange of all non-privileged documents and other information (including electronically stored information) relevant to the Dispute immediately after commencement of the arbitration. As set forth below, nothing in this Agreement will prevent us from seeking injunctive relief in any court of competent jurisdiction as necessary to protect our proprietary interests.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -1353,8 +1353,8 @@ export default {
|
||||
],
|
||||
calendarHighlights: { dates: [new Date()] },
|
||||
spiLinkData: {
|
||||
firstLink: '<a href="/static/privacy#section_1" target="_blank">',
|
||||
secondLink: '<a href="/static/privacy" target="_blank">',
|
||||
firstLink: '<a href="/static/privacy#section_1" target="_blank" rel="noopener noreferrer">',
|
||||
secondLink: '<a href="/static/privacy" target="_blank" rel="noopener noreferrer">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
<div class="">
|
||||
<div
|
||||
class="alert alert-info alert-sm"
|
||||
v-html="$t('communityGuidelinesWarning', managerEmail)"
|
||||
v-html="$t('communityGuidelinesWarning', communityGuidelineLinks)"
|
||||
></div>
|
||||
<!-- TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak-->
|
||||
<div class="form-group">
|
||||
@@ -1060,8 +1060,10 @@ export default {
|
||||
blurb: '',
|
||||
},
|
||||
hero: {},
|
||||
managerEmail: {
|
||||
hrefBlankCommunityManagerEmail: `<a href="mailto:${COMMUNITY_MANAGER_EMAIL}">${COMMUNITY_MANAGER_EMAIL}</a>`,
|
||||
communityGuidelineLinks: {
|
||||
linkOpen: '<a href="https://habitica.com/static/community-guidelines" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
adminEmail: `<a href="mailto:${COMMUNITY_MANAGER_EMAIL}" target="_blank" rel="noopener noreferrer">${COMMUNITY_MANAGER_EMAIL}</a>`,
|
||||
},
|
||||
selectedPage: 'profile',
|
||||
achievements: {},
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
v-if="userLevel100Plus"
|
||||
v-once
|
||||
class="level-100-message"
|
||||
v-html="$t('noMoreAllocate')"
|
||||
v-html="$t('noMoreAllocate', allocateLinks)"
|
||||
></div>
|
||||
</div>
|
||||
<div class="row allocation-boxes-row">
|
||||
@@ -395,14 +395,12 @@ export default {
|
||||
_skip: 'skip',
|
||||
shield: this.$t('offHandCapitalized'),
|
||||
},
|
||||
|
||||
allocateStatsList: {
|
||||
str: { title: 'allocateStr', popover: 'strengthText', allocatepop: 'allocateStrPop' },
|
||||
int: { title: 'allocateInt', popover: 'intText', allocatepop: 'allocateIntPop' },
|
||||
con: { title: 'allocateCon', popover: 'conText', allocatepop: 'allocateConPop' },
|
||||
per: { title: 'allocatePer', popover: 'perText', allocatepop: 'allocatePerPop' },
|
||||
},
|
||||
|
||||
stats: {
|
||||
str: {
|
||||
title: 'strength',
|
||||
@@ -422,6 +420,10 @@ export default {
|
||||
},
|
||||
},
|
||||
content: Content,
|
||||
allocateLinks: {
|
||||
linkOpen: '<a href="/shops/market">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
v-if="userLevel100Plus"
|
||||
v-once
|
||||
>
|
||||
{{ $t('noMoreAllocate') }}
|
||||
{{ $t('noMoreAllocate', allocateLinks) }}
|
||||
</p>
|
||||
<p
|
||||
v-if="user.stats.points || userLevel100Plus"
|
||||
@@ -480,6 +480,10 @@ export default {
|
||||
con: { title: 'allocateCon', popover: 'conText', allocatepop: 'allocateConPop' },
|
||||
per: { title: 'allocatePer', popover: 'perText', allocatepop: 'allocatePerPop' },
|
||||
},
|
||||
allocateLinks: {
|
||||
linkOpen: '<a href="/shops/market">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
class="footer-link"
|
||||
href="https://habitica.fandom.com/wiki/World_Bosses"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{{ $t('worldBossLink') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,6 +10,10 @@ export default {
|
||||
tour: {},
|
||||
chapters: {},
|
||||
loaded: false,
|
||||
partyLinks: {
|
||||
linkOpen: '<a href="/static/faq#parties">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@@ -56,7 +60,7 @@ export default {
|
||||
party: [[
|
||||
{
|
||||
orphan: true,
|
||||
intro: this.$t('tourPartyPage'),
|
||||
intro: this.$t('tourPartyPage', this.partyLinks),
|
||||
final: true,
|
||||
proceed: this.$t('tourSplendid'),
|
||||
hideNavigation: true,
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
<div
|
||||
v-once
|
||||
class="guidelines flex-fill"
|
||||
v-html="$t('communityGuidelinesIntro')"
|
||||
v-html="$t('communityGuidelinesIntro', guidelineLinks)"
|
||||
></div>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
@@ -774,6 +774,10 @@ export default defineComponent({
|
||||
messages: [],
|
||||
messagesLoading: false,
|
||||
MAX_MESSAGE_LENGTH: MAX_MESSAGE_LENGTH.toString(),
|
||||
guidelineLinks: {
|
||||
linkOpen: '<a href="/static/community-guidelines" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
<div
|
||||
class="kind-text"
|
||||
v-html="$t('rememberToBeKind')"
|
||||
v-html="$t('rememberToBeKind', kindLinks)"
|
||||
></div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -62,6 +62,14 @@ import Avatar from '@/components/avatar.vue';
|
||||
|
||||
export default {
|
||||
components: { Avatar },
|
||||
data () {
|
||||
return {
|
||||
kindLinks: {
|
||||
linkOpen: '<a href="/static/community-guidelines" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
props: {
|
||||
memberObj: null,
|
||||
},
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<router-link
|
||||
to="/forgot-password"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{{ $t('forgotPassword') }}
|
||||
</router-link>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
class="dialog-disclaimer"
|
||||
>
|
||||
<span>{{ $t("americanEnglishGovern") }} </span>
|
||||
<span v-html="$t('helpWithTranslation')"></span>
|
||||
<span v-html="$t('helpWithTranslation', translateLinks)"></span>
|
||||
</div>
|
||||
<div class="input-area">
|
||||
<div class="settings-label">
|
||||
@@ -97,6 +97,10 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
selectedLanguage: '',
|
||||
translateLinks: {
|
||||
linkOpen: '<a href="https://translate.habitica.com" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -166,6 +166,10 @@ export default {
|
||||
icons: Object.freeze({
|
||||
alert,
|
||||
}),
|
||||
gpcLinks: {
|
||||
linkOpen: '<a href="https://globalprivacycontrol.org/" target="_blank" rel="noreferrer noopener">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -176,11 +180,10 @@ export default {
|
||||
return navigator.globalPrivacyControl;
|
||||
},
|
||||
gpcInfo () {
|
||||
const gpcUrl = 'https://globalprivacycontrol.org/';
|
||||
if (this.user.preferences.analyticsConsent) {
|
||||
return this.$t('gpcPlusAnalytics', { url: gpcUrl });
|
||||
return this.$t('gpcPlusAnalytics', this.gpcLinks);
|
||||
}
|
||||
return this.$t('gpcWarning', { url: gpcUrl });
|
||||
return this.$t('gpcWarning', this.gpcLinks);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div
|
||||
v-once
|
||||
class="webhooks-info mb-3"
|
||||
v-html="$t('webhooksInfo')"
|
||||
v-html="$t('webhooksInfo', hookLinks)"
|
||||
>
|
||||
</div>
|
||||
|
||||
@@ -233,6 +233,10 @@ export default {
|
||||
}),
|
||||
webhooks: [], // view copy of state
|
||||
unsaved: [],
|
||||
hookLinks: {
|
||||
linkOpen: '<a target="_blank" rel="noreferrer noopener" href="https://habitica.com/apidoc/#api-Webhook-AddWebhook">',
|
||||
linkClose: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
|
||||
@@ -123,7 +123,6 @@ import birthdayModal from '@/components/news/birthdayModal';
|
||||
import AppMenu from '@/components/header/menu';
|
||||
import AppHeader from '@/components/header/index';
|
||||
import BirthdayBanner from '@/components/header/banners/birthdayBanner';
|
||||
import ChatBanner from '@/components/header/banners/chatBanner';
|
||||
import DamagePausedBanner from '@/components/header/banners/damagePaused';
|
||||
import GemsPromoBanner from '@/components/header/banners/gemsPromo';
|
||||
import GiftPromoBanner from '@/components/header/banners/giftPromo';
|
||||
@@ -160,7 +159,6 @@ export default {
|
||||
AppHeader,
|
||||
AppFooter,
|
||||
birthdayModal,
|
||||
ChatBanner,
|
||||
DamagePausedBanner,
|
||||
GemsPromoBanner,
|
||||
GiftPromoBanner,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"communityGuidelinesWarning": "Please keep in mind that your Display Name, profile photo, and blurb must comply with the <a href='https://habitica.com/static/community-guidelines' target='_blank'>Community Guidelines</a> (e.g. no profanity, no adult topics, no insults, etc). If you have any questions about whether or not something is appropriate, feel free to email <%= hrefBlankCommunityManagerEmail %>!",
|
||||
"communityGuidelinesWarning": "Please keep in mind that your Display Name, profile photo, and blurb must comply with the <%= linkOpen %>Community Guidelines<%= linkClose %> (e.g. no profanity, no adult topics, no insults, etc). If you have any questions about whether or not something is appropriate, feel free to email <%= adminEmail %>!",
|
||||
"profile": "Profile",
|
||||
"avatar": "Customize Avatar",
|
||||
"editAvatar": "Customize Avatar",
|
||||
@@ -65,7 +65,7 @@
|
||||
"costumeDisabled": "You have disabled your costume.",
|
||||
"gearAchievement": "You have earned the \"Ultimate Gear\" Achievement for upgrading to the maximum gear set for a class! You have attained the following complete sets:",
|
||||
"gearAchievementNotification": "You have earned the \"Ultimate Gear\" Achievement for upgrading to the maximum gear set for a class!",
|
||||
"moreGearAchievements": "To attain more Ultimate Gear badges, change classes on <a href='/user/settings/site' target='_blank'>the Settings > Site page</a> and buy your new class's gear!",
|
||||
"moreGearAchievements": "To attain more Ultimate Gear badges, change classes on <%= linkOpen %>the Settings > Site page<%= linkClose %> and buy your new class's gear!",
|
||||
"armoireUnlocked": "For more equipment, check out the <strong>Enchanted Armoire!</strong> Click on the Enchanted Armoire Reward for a random chance at special Equipment! It may also give you random XP or food items.",
|
||||
"ultimGearName": "Ultimate Gear - <%= ultClass %>",
|
||||
"ultimGearText": "Has upgraded to the maximum weapon and armor set for the <%= ultClass %> class.",
|
||||
@@ -87,7 +87,7 @@
|
||||
"allocatePerPop": "Add a Point to Perception",
|
||||
"allocateInt": "Points allocated to Intelligence:",
|
||||
"allocateIntPop": "Add a Point to Intelligence",
|
||||
"noMoreAllocate": "Now that you've hit level 100, you won't gain any more Stat Points. You can continue leveling up, or start a new adventure at level 1 by using the <a href='/shops/market'>Orb of Rebirth</a>.",
|
||||
"noMoreAllocate": "Now that you've hit level 100, you won't gain any more Stat Points. You can continue leveling up, or start a new adventure at level 1 by using the <%= linkOpen %>Orb of Rebirth<%= linkClose %>.",
|
||||
"stats": "Stats",
|
||||
"strength": "Strength",
|
||||
"strText": "Strength increases the chance of random \"critical hits\" and the Gold, Experience, and drop chance boost from them. It also helps deal damage to boss monsters.",
|
||||
@@ -138,8 +138,8 @@
|
||||
"healerText": "Healers stand impervious against harm, and extend that protection to others. Missed Dailies and bad Habits don't faze them much, and they have ways to recover Health from failure. Play a Healer if you enjoy assisting others in your Party, or if the idea of cheating Death through hard work inspires you!",
|
||||
"optOutOfClasses": "Opt Out",
|
||||
"chooseClass": "Choose your Class",
|
||||
"chooseClassLearnMarkdown": "[Learn more about Habitica's class system](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Not ready to choose? There's no rush! If you opt out, you can read about each Class in <a href='/static/faq#what-classes' target='_blank'>our FAQ</a> and visit Settings to enable the Class System when you're ready.",
|
||||
"chooseClassLearnMarkdown": "[Learn more about Habitica's class system](<%= classLink %>)",
|
||||
"optOutOfClassesText": "Not ready to choose? There's no rush! If you opt out, you can read about each Class in <%= linkOpen %>our FAQ<%= linkClose %> and visit Settings to enable the Class System when you're ready.",
|
||||
"selectClass": "Select <%= heroClass %>",
|
||||
"select": "Select",
|
||||
"stealth": "Stealth",
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
|
||||
"commGuideList01A": "Our Guidelines and Terms of Service apply in Challenges, Parties, player profiles, and private messages.",
|
||||
"commGuideList02C": "<strong>Do not post images or text that are violent, threatening, or sexually explicit/suggestive, or that promote discrimination, bigotry, racism, sexism, hatred, harassment or harm against any individual or group</strong>. Not even as a joke or meme. This includes slurs as well as statements. Not everyone has the same sense of humor, and so something that you consider a joke may be hurtful to another.",
|
||||
"commGuideList02N": "<strong>Report anything you see that breaks these Guidelines or our Terms of Service</strong>. You can report a message directly or notify staff via <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> for violations in profiles or Challenges. We will handle them as quickly as possible. You may contact us in your native language if that is easier for you: we may have to use Google Translate, but we want you to feel comfortable about contacting us if you have a problem.",
|
||||
"commGuideList02N": "<strong>Report anything you see that breaks these Guidelines or our Terms of Service</strong>. You can report a message directly or notify staff via <%= adminEmail %> for violations in profiles or Challenges. We will handle them as quickly as possible. You may contact us in your native language if that is easier for you: we may have to use Google Translate, but we want you to feel comfortable about contacting us if you have a problem.",
|
||||
"commGuideList02H": "<strong>All Display Names and @usernames must comply with the Terms of Service</strong>. To change your Display Name and/or @username: on mobile go to Menu > Settings > Account. On web, go to Settings from the user icon in the top navigation.",
|
||||
"commGuideList02A": "<strong>Respect each other</strong>. Be courteous, kind, friendly, and helpful. Remember: Habiticans come from all backgrounds and have had wildly divergent experiences.",
|
||||
"commGuideList02I": "<strong>Challenge names should be appropriate for all spaces, as they will appear in the winner's public profile</strong>. Keep this in mind when creating Challenges as we may be forced to edit the record on their profile if there is a report.",
|
||||
"commGuideList02G": "<strong>Comply immediately with any Staff request.</strong> This could include, but is not limited to, requesting you limit your posts in a particular space, editing your profile to remove unsuitable content, etc. Do not argue with Staff. If you have concerns or comments about Staff actions, email <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> to contact our community manager.",
|
||||
"commGuideList02G": "<strong>Comply immediately with any Staff request.</strong> This could include, but is not limited to, requesting you limit your posts in a particular space, editing your profile to remove unsuitable content, etc. Do not argue with Staff. If you have concerns or comments about Staff actions, email <%= adminEmail %> to contact our community manager.",
|
||||
"commGuideList02D": "<strong>Be mindful that Habiticans are of all ages and backgrounds</strong>. Challenges and player profiles should not mention adult topics, use profanity, or promote contention or conflict.",
|
||||
"commGuideList02E": "<strong>If a staff member tells you that a term is disallowed on Habitica, even if it is a term that you did not realize was problematic, that decision is final.</strong> Additionally, slurs will be dealt with very severely, as they are also a violation of the Terms of Service.",
|
||||
"commGuideList02O": "<strong>Parties may create their own chat rules for members’ comfort and preferences</strong>. However, the admins cannot enforce chat rules in these private spaces unless there is a breach of the Terms of Service, including harassment. If someone in your Party is causing issues, we encourage the Party leader to remove them.",
|
||||
@@ -24,7 +24,7 @@
|
||||
"commGuideList02P": "<strong>We discourage the sending of unsolicited private messages</strong>. If you receive an unwanted message that makes you uncomfortable or that breaks these Guidelines or the Terms of Service, please block the sender and report it to bring it to Staff attention.",
|
||||
"commGuideList02Q": "<strong>Do not try to get around a block</strong>. If someone has blocked you from sending them private messages, do not contact them elsewhere to ask them to unblock you.",
|
||||
"commGuideList02M": "<strong>Do not ask or beg for Gems, subscriptions, or membership in Group Plans</strong>. If you see or receive unwanted messages asking for paid items, please report them. Repeated Gem or subscription begging, especially after a warning, may result in an account ban.",
|
||||
"commGuideList02L": "<strong>We highly discourage the exchange of personal information--particularly information that can be used to identify you</strong>. Identifying information can include but is not limited to: your address, your email, and your password or API token. If you are asked for personal information in a Party chat or private message, we highly recommend that you do not respond, and alert the Staff by either reporting the message or contacting <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> with screenshots of the messages if more context is needed.",
|
||||
"commGuideList02L": "<strong>We highly discourage the exchange of personal information--particularly information that can be used to identify you</strong>. Identifying information can include but is not limited to: your address, your email, and your password or API token. If you are asked for personal information in a Party chat or private message, we highly recommend that you do not respond, and alert the Staff by either reporting the message or contacting <%= adminEmail %> with screenshots of the messages if more context is needed.",
|
||||
"commGuideList02J": "<strong>Do not spam</strong>. Spamming may include, but is not limited to: sending multiple unsolicited private messages, sending nonsensical messages, sending multiple promotional messages about a Party or Challenge, or creating multiple similar or low quality Challenges in a row. Staff has discretion to determine what messages are considered spamming.",
|
||||
"commGuideList02K": "<strong>Do not send links without explanation or context</strong>. If players clicking on a link will result in any benefit to you, you need to disclose that. This applies in messages as well as Challenges.",
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"commGuideHeadingModerateInfractions": "Moderate Infractions",
|
||||
"commGuidePara054": "These infractions will have moderate consequences. When in conjunction with multiple infractions, the consequences may grow more severe.",
|
||||
"commGuidePara055": "The following are some examples of Moderate Infractions. This is not a comprehensive list.",
|
||||
"commGuideList06A": "Ignoring, disrespecting or arguing with Staff. If you are concerned about one of the rules or the behavior of the staff, please contact us at <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList06A": "Ignoring, disrespecting or arguing with Staff. If you are concerned about one of the rules or the behavior of the staff, please contact us at <%= adminEmail %>.",
|
||||
"commGuideList06C": "Intentionally flagging innocent Challenges, profiles, or messages.",
|
||||
"commGuideList06E": "Repeatedly Committing Minor Infractions",
|
||||
|
||||
@@ -79,8 +79,7 @@
|
||||
|
||||
"commGuideHeadingRestoration": "Restoration",
|
||||
"commGuidePara061": "Habitica is devoted to self-improvement, and we believe in second chances. <strong>If you commit an infraction and receive a consequence, view it as a chance to evaluate your actions and strive to be a better member of the community</strong>.",
|
||||
"commGuidePara062": "<strong>If you wish to ask questions about your infraction or consequences, apologize, or make a plea for reinstatement, please contact us at <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> with your User ID or @username</strong>. It is <strong>your</strong> responsibility to reach out.",
|
||||
"commGuidePara063": "If you do not understand your consequences or the nature of your infraction, or if you have other questions related to the matter, you can contact the staff to discuss it at <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>. Cooperate with any restrictions which have been imposed, and endeavor to meet the requirements to have any penalties lifted.",
|
||||
"commGuidePara063": "If you do not understand your consequences or the nature of your infraction, or if you have other questions related to the matter, you can contact the staff to discuss it at <%= adminEmail %>. Cooperate with any restrictions which have been imposed, and endeavor to meet the requirements to have any penalties lifted.",
|
||||
|
||||
"commGuideHeadingMeet": "Meet the Staff",
|
||||
"commGuidePara007": "The Habitica Staff keep the app and sites running and can act as chat moderators. They have purple tags marked with crowns. Their title is \"Heroic\".",
|
||||
@@ -94,13 +93,12 @@
|
||||
"commGuidePara014": "Staff and Moderators Emeritus:",
|
||||
|
||||
"commGuideHeadingFinal": "The Final Section",
|
||||
"commGuidePara067": "So there you have it, brave Habitican -- the Community Guidelines! Wipe that sweat off of your brow and give yourself some EXP for reading it all. If you have any questions or concerns about these Community Guidelines, please reach out to us via <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> and we will be happy to help clarify things.",
|
||||
"commGuidePara067": "So there you have it, brave Habitican -- the Community Guidelines! Wipe that sweat off of your brow and give yourself some EXP for reading it all. If you have any questions or concerns about these Community Guidelines, please reach out to us via <%= adminEmail %> and we will be happy to help clarify things.",
|
||||
"commGuidePara068": "Now go forth, brave adventurer, and slay some Dailies!",
|
||||
|
||||
"commGuideHeadingLinks": "Useful Links",
|
||||
"commGuideLink02": "<a href='https://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>The Wiki</a>: the biggest collection of information about Habitica. Note that this space is unofficial, being hosted by Fandom and maintained by players.",
|
||||
"commGuideLink03": "<a href='https://github.com/HabitRPG/habitica' target='_blank'>GitHub</a>: for helping with code!",
|
||||
"commGuideLink04": "<a href='https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link' target='_blank'>The Feedback Form</a>: for site and app feature requests.",
|
||||
"commGuideLink03": "<%= linkOpen %>GitHub<%= linkClose %>: for helping with code!",
|
||||
"commGuideLink04": "<%= linkOpen %>The Feedback Form<%= linkClose %>: for site and app feature requests.",
|
||||
|
||||
"commGuidePara069": "The following talented artists contributed to these illustrations:"
|
||||
}
|
||||
|
||||
@@ -41,9 +41,8 @@
|
||||
"backerTier": "Backer Tier",
|
||||
"playerTiers": "Player Tiers",
|
||||
"tier": "Tier",
|
||||
"conRewardsURL": "https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards",
|
||||
"surveysSingle": "Helped Habitica grow, either by filling out a survey or helping with a major testing effort. Thank you!",
|
||||
"surveysMultiple": "Helped Habitica grow on <%= count %> occasions, either by filling out a survey or helping with a major testing effort. Thank you!",
|
||||
"blurbHallPatrons": "This is the Hall of Patrons, where we honor the noble adventurers who backed Habitica's original Kickstarter. We thank them for helping us bring Habitica to life!",
|
||||
"blurbHallContributors": "This is the Hall of Contributors, where open-source contributors to Habitica are honored. Whether through code, art, music, writing, or even just helpfulness, they have earned <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards' target='_blank'>Gems, exclusive Equipment</a>, and <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tiers' target='_blank'>prestigious titles</a>. You can contribute to Habitica, too! <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica' target='_blank'>Find out more here.</a>"
|
||||
"blurbHallContributors": "This is the Hall of Contributors, where open-source contributors to Habitica are honored. Whether through code, art, music, writing, or even just helpfulness, they have earned <%= linkRewards %>Gems, exclusive Equipment<%= linkClose %>, and <%= linkTiers %>prestigious titles<%= linkClose %>. You can contribute to Habitica, too! <%= linkContributing %>Find out more here<%= linkClose %>."
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"800ed0": "Purple",
|
||||
"915533": "Skin Tone 1",
|
||||
"98461a": "Skin Tone 6",
|
||||
"allCustomizationsOwned": "You own all of these items. You can try them on by <a href=''>customizing your avatar</a>.",
|
||||
"allEquipmentOwned": "You own all of these items. You can find them in your <a href='/inventory/equipment'>Equipment</a>. Be sure to check back later for next month's options!",
|
||||
"allCustomizationsOwned": "You own all of these items. You can try them on by <%= linkOpen %>customizing your avatar<%= linkClose %>.",
|
||||
"allEquipmentOwned": "You own all of these items. You can find them in your <%= linkOpen %>Equipment<%= linkClose %>. Be sure to check back later for next month's options!",
|
||||
"aurora": "Aurora",
|
||||
"bear": "Bear",
|
||||
"black": "Black",
|
||||
@@ -154,7 +154,7 @@
|
||||
"tropicalwater": "Tropical Water",
|
||||
"TRUred": "Crimson",
|
||||
"updo": "Updo",
|
||||
"visitCustomizationsShop": "Head over to the <a href='/shops/customizations'>Customizations Shop</a> to browse the many ways you can customize your avatar!",
|
||||
"visitCustomizationsShop": "Head over to the <%= linkOpen %>Customizations Shop<%= linkClose %> to browse the many ways you can customize your avatar!",
|
||||
"wavyLong": "Wavy Long",
|
||||
"wavyShort": "Wavy Short",
|
||||
"white": "White",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"dontDespair": "Don't despair!",
|
||||
"deathPenaltyDetails": "You lost a Level, your Gold, and a piece of Equipment, but you can get them all back with hard work! Good luck--you'll do great.",
|
||||
"refillHealthTryAgain": "Refill Health & Try Again",
|
||||
"dyingOftenTips": "Is this happening often? <a href='/static/faq#prevent-damage' target='_blank'>Here are some tips!</a>",
|
||||
"dyingOftenTips": "Is this happening often? <%= linkOpen %>Here are some tips!<%= linkClose %>",
|
||||
"losingHealthWarning": "Careful - You're Losing Health!",
|
||||
"losingHealthWarning2": "Don't let your Health drop to zero! If you do, you'll lose a level, your Gold, and a piece of equipment.",
|
||||
"toRegainHealth": "To regain Health:",
|
||||
|
||||
@@ -147,10 +147,6 @@
|
||||
"faqQuestion71": "How does Automatic Allocation work?",
|
||||
"webFaqAnswer71": "The Automatic Allocation feature automatically assigns stat points according to one of the following distribution methods:\n\n* Distribute evenly - Assigns the same number of points to each attribute\n* Distribute based on class - Assigns more points to the attributes important to your class\n* Distribute based on task activity - Assigns points based on Strength, Intelligence, Constitution, and Perception categories associated with the tasks you complete\n\nIf you choose not to use Automatic Allocation, you can manually assign your stat points from the Stats section.",
|
||||
|
||||
"iosFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), use the Ask a Question form [LINK NEEDED]! We're happy to help.",
|
||||
"androidFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), use the Ask a Question form [LINK NEEDED]! We're happy to help.",
|
||||
"webFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ), use the Ask a Question form [LINK NEEDED]! We're happy to help.",
|
||||
|
||||
"sunsetFaqTitle": "Habitica Tavern and Guild Service Discontinuation FAQ",
|
||||
|
||||
"sunsetFaqPara1": "Due to a number of factors, including changes in how our player base interacts with Habitica and new content regulations, we are making the difficult decision to discontinue Tavern and Guild services on <strong>August 8, 2023</strong>.",
|
||||
@@ -185,7 +181,7 @@
|
||||
"sunsetFaqHeader8": "How does this affect Habitica contributors?",
|
||||
"sunsetFaqPara12": "As an open-source project, we welcome and encourage many types of contributions. To show our appreciation we will be sending the Heroic gear set to everyone that has a contributor tier as of <strong>August 1, 2023</strong>. When Tavern and Guild services end, there will be some changes to contributions as well. You can read more about the plan for each type below.",
|
||||
"sunsetFaqPara13": "<strong>Blacksmiths</strong><br />We still welcome open-source help through our GitHub and will continue awarding tiers for qualifying contributions. Blacksmith collaboration and discussion has largely taken place over GitHub and that will continue.",
|
||||
"sunsetFaqPara14": "<strong>Linguists</strong><br />We continue to welcome help with translating the apps and website and will still be awarding contributor tiers for qualifying contributions. However, the method with which we accept translations will be changing. We’d like to focus our resources on supporting a set selection of languages across all platforms. To do this, we will be reducing the amount of languages available for translation. Previously unfinished languages will be archived in Github. We hope this change will make the cross platform Habitica experience more consistent. You can read our most up to date translation procedure guidelines on our <a href='https://translate.habitica.com/projects/habitica/#information'>translation website</a>.",
|
||||
"sunsetFaqPara14": "<strong>Linguists</strong><br />We continue to welcome help with translating the apps and website and will still be awarding contributor tiers for qualifying contributions. However, the method with which we accept translations will be changing. We’d like to focus our resources on supporting a set selection of languages across all platforms. To do this, we will be reducing the amount of languages available for translation. Previously unfinished languages will be archived in Github. We hope this change will make the cross platform Habitica experience more consistent. You can read our most up to date translation procedure guidelines on our <%= linkOpen %>translation website<%= linkClose %>.",
|
||||
"sunsetFaqPara15": "<strong>Challengers</strong><br />The team encourages you to continue creating high quality Challenges. We would like to explore new ways of promoting Challenge discoverability in and outside of the app.",
|
||||
"sunsetFaqPara16": "<strong>Socialites</strong><br />This type of contribution will be ending with the Tavern and Guild discontinuation. We are extremely grateful for the work that our friendly and helpful players have done answering questions in our chat spaces.",
|
||||
"sunsetFaqPara17": "<strong>Comrades</strong><br />Scripts and add-ons are helpful to a shrinking section of our user base as the mobile apps increasingly become the only way that most users access Habitica. Contributors wishing to create 3rd party tools to customize their Habitica experience can continue doing so, but we will no longer be awarding Comrade tiers as we focus on contributions that enhance Habitica in a way that is accessible to our player base as a whole.",
|
||||
@@ -199,9 +195,9 @@
|
||||
"sunsetFaqList7": "Currently many Challenges have tasks that require posts in Habitica’s public chat spaces. Creators of those Challenges can adapt their tasks or move the chat requirement to posting on an outside service.",
|
||||
|
||||
"sunsetFaqHeader10": "Where will players go when they have questions about how to use Habitica?",
|
||||
"sunsetFaqList8": "Our existing <a href='https://habitica.com/static/faq'>FAQ</a> is a great resource and can be found from the Help menu, or Support on mobile. We are in the process of creating a more comprehensive and improved FAQ to help guide players moving forward.",
|
||||
"sunsetFaqList9": "This <a href='https://habitica.wordpress.com/beginning-adventurers-guide/'>blog post</a> also provides a handy guide for new players.",
|
||||
"sunsetFaqList10": "Players are also encouraged to email <a href='mailto:admin@habitica.com'>admin@habitica.com</a> with any questions for which they cannot find answers in the above links.",
|
||||
"sunsetFaqList8": "Our existing <%= linkOpen %>FAQ<%= linkClose %> is a great resource and can be found from the Help menu, or Support on mobile. We are in the process of creating a more comprehensive and improved FAQ to help guide players moving forward.",
|
||||
"sunsetFaqList9": "This <%= linkOpen %>blog post<%= linkClose %> also provides a handy guide for new players.",
|
||||
"sunsetFaqList10": "Players are also encouraged to email <%= adminEmail %> with any questions for which they cannot find answers in the above links.",
|
||||
|
||||
"sunsetFaqHeader11": "How does this affect Habitica’s Community Guidelines and Terms of Service?",
|
||||
"sunsetFaqPara20": "Habitica’s Community Guidelines will be updated at the time Tavern and Guild service is discontinued. They will reflect that community rules for conduct are now in relation to player profiles, Challenges, and messages in private spaces. Our Terms of Service have always applied to both public and private spaces and do not require an immediate update in regard to this change.",
|
||||
@@ -210,7 +206,7 @@
|
||||
"sunsetFaqPara21": "Gems in the Guild Bank will be refunded to the leader of the Guild on August 8th when Guild Services end.",
|
||||
|
||||
"anotherQuestion": "Have another question?",
|
||||
"contactAdmin": "Contact <a href='mailto:admin@habitica.com'>admin@habitica.com</a>",
|
||||
"contactAdmin": "Contact <%= adminEmail %>",
|
||||
|
||||
"contentReleaseChanges": "Content Release Changes",
|
||||
"contentFaqTitle": "Habitica Content Release Change FAQ",
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"marketing3Lead1Title": "Android & iOS apps",
|
||||
"marketing3Lead1": "You can get Habitica on your Android or iOS device to check off tasks anywhere. Check out our award winning apps for a fresh approach to getting things done.",
|
||||
"marketing3Lead2Title": "Open-Source community",
|
||||
"marketing3Lead2": "We're proud to be an open-source project that welcomes contributions from our dedicated community. Make Habitica fit your own needs or contribute to improve the experience of all players around the world. Visit us on [GitHub](https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica) to learn more!",
|
||||
"marketing3Lead2": "We're proud to be an open-source project that welcomes contributions from our dedicated community. Make Habitica fit your own needs or contribute to improve the experience of all players around the world. Visit us on [GitHub](<%= githubLink %>) to learn more!",
|
||||
"marketing4Header": "Beyond household chores",
|
||||
"marketing4Lead1": "Education is one of the best places for a little gamification! Break through the monotony of everyday classwork by adding some game play into the mix. Habitica can be a fun way to track homework, make classroom Challenges, and let your students show off their accomplishments.",
|
||||
"marketing4Lead1Title": "Gamification in education",
|
||||
@@ -76,8 +76,6 @@
|
||||
"pkAnswer6": "Lots of different people use Habitica! More than half of our users are ages 18 to 34, but we have grandparents using the site with their young grandkids and every age in-between. Often families will join a party and battle monsters together. <br /> Many of our users have a background in games, but surprisingly, when we ran a survey a while back, 40% of our users identified as non-gamers! So it looks like our method can be effective for anyone who wants productivity and wellness to feel more fun.",
|
||||
"pkQuestion7": "Why does Habitica use pixel art?",
|
||||
"pkAnswer7": "Habitica uses pixel art for several reasons. In addition to the fun nostalgia factor, pixel art is very approachable to our volunteer artists who want to chip in. It's much easier to keep our pixel art consistent even when lots of different artists contribute, and it lets us quickly generate a ton of new content!",
|
||||
"pkQuestion8": "How has Habitica affected people's real lives?",
|
||||
"pkAnswer8": "You can find lots of testimonials for how Habitica has helped people here: https://habitversary.tumblr.com",
|
||||
"pkMoreQuestions": "Do you have a question that’s not on this list? Send an email to admin@habitica.com!",
|
||||
"pkPromo": "Promos",
|
||||
"pkLogo": "Logos",
|
||||
@@ -123,8 +121,8 @@
|
||||
"emailTaken": "Email address is already used in an account.",
|
||||
"newEmailRequired": "Missing new email address.",
|
||||
"usernameTime": "It's time to set your username!",
|
||||
"usernameInfo": "Login names are now unique usernames that will be visible beside your display name and used for invitations, chat @mentions, and messaging.<br><br>If you'd like to learn more about this change, <a href='https://habitica.fandom.com/wiki/Player_Names' target='_blank'>visit our wiki</a>.",
|
||||
"usernameTOSRequirements": "Usernames must conform to our <a href='/static/terms' target='_blank'>Terms of Service</a> and <a href='/static/community-guidelines' target='_blank'>Community Guidelines</a>. If you didn’t previously set a login name, your username was auto-generated.",
|
||||
"usernameInfo": "Login names are now unique usernames that will be visible beside your display name and used for invitations, chat @mentions, and messaging.<br><br>If you'd like to learn more about this change, <%= linkOpen %>visit our wiki<%= linkClose %>.",
|
||||
"usernameTOSRequirements": "Usernames must conform to our <%= termsLink %>Terms of Service<%= linkClose %> and <%= guidelinesLink %>Community Guidelines<%= linkClose %>. If you didn’t previously set a login name, your username was auto-generated.",
|
||||
"usernameTaken": "Username already taken.",
|
||||
"passwordConfirmationMatch": "Password confirmation doesn't match password.",
|
||||
"minPasswordLength": "Password must be 8 characters or more.",
|
||||
@@ -187,7 +185,7 @@
|
||||
"learnMore": "Learn More",
|
||||
"translateHabitica": "Translate Habitica",
|
||||
"whatToCallYou": "What should we call you?",
|
||||
"acceptPrivacyTOS": "You confirm that you are at least 18 years old, and that you have read and agree to our <a href='/static/terms' target='_blank'>Terms of Service</a> and <a href='/static/privacy' target='_blank'>Privacy Policy</a>",
|
||||
"acceptPrivacyTOS": "You confirm that you are at least 18 years old, and that you have read and agree to our <%= termsLink %>Terms of Service<%= linkClose %> and <%= privacyLink %>Privacy Policy<%= linkClose %>",
|
||||
"emailAddress": "Email address",
|
||||
"emailRequiredForSupport": "We require an email address for user support. Please enter an email address to continue creating your account."
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"options": "Options",
|
||||
"markdownHelpLink": "Markdown formatting help",
|
||||
"bold": "**Bold**",
|
||||
"markdownImageEx": "",
|
||||
"code": "`code`",
|
||||
"achievements": "Achievements",
|
||||
"basicAchievs": "Basic Achievements",
|
||||
@@ -242,7 +241,7 @@
|
||||
"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 Habitica’s 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>.",
|
||||
"rememberToBeKind": "Please remember to be kind, respectful, and follow the <%= linkOpen %>Community Guidelines<%= linkClose %>.",
|
||||
"confirmPurchase": "Confirm Purchase",
|
||||
"avoidSPI": "Avoid SPI",
|
||||
"avoidSPIDetails": "For your privacy, avoid including <%= firstLink %>sensitive personal information<%= linkClose %> (SPI) when using Habitica. Your account data, including tasks, is stored on our servers so you can access it from any device.<br><br>To learn more, review our <%= secondLink %>Privacy Policy<%= linkClose %>."
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"contributing": "Contributing",
|
||||
"faq": "FAQ",
|
||||
"tutorial": "Tutorial",
|
||||
"glossary": "<a target='_blank' href='https://habitica.fandom.com/wiki/Glossary'>Glossary</a>",
|
||||
"wiki": "Wiki",
|
||||
"resources": "Resources",
|
||||
"communityGuidelines": "Community Guidelines",
|
||||
@@ -28,7 +27,7 @@
|
||||
"invite": "Invite",
|
||||
"leave": "Leave",
|
||||
"invitedToParty": "You were invited to join the Party <span class=\"notification-bold\"><%= party %></span>",
|
||||
"invitedToPartyBy": "<a href=\"/profile/<%= userId %>\" target=\"_blank\">@<%= userName %></a> has invited you to join the Party <span class=\"notification-bold\"><%= party %></span>",
|
||||
"invitedToPartyBy": "<%= usernameLink %> has invited you to join the Party <%= partyName %>",
|
||||
"invitedToPrivateGuild": "You were invited to join the private Group <span class=\"notification-bold\"><%= guild %></span>",
|
||||
"invitedToPublicGuild": "You were invited to join the Group <span class=\"notification-bold-blue\"><%= guild %></span>",
|
||||
"invitationAcceptedHeader": "Your Invitation has been Accepted",
|
||||
@@ -138,7 +137,7 @@
|
||||
"sendGiftLabel": "Would you like to send a gift message?",
|
||||
"sendGiftMessagePlaceholder": "Add a gift message",
|
||||
"sendGiftSubscription": "<%= months %> Month(s): $<%= price %> USD",
|
||||
"gemGiftsAreOptional": "Please note that Habitica will never require you to gift gems to other players. Begging people for gems is a <strong>violation of the Community Guidelines</strong>, and all such instances should be reported to <%= hrefTechAssistanceEmail %>.",
|
||||
"gemGiftsAreOptional": "Please note that Habitica will never require you to gift gems to other players. Begging people for gems is a <strong>violation of the Community Guidelines</strong>, and all such instances should be reported to <%= techAssistanceEmail %>.",
|
||||
"giftMessageTooLong": "The maximum length for gift messages is <%= maxGiftMessageLength %>.",
|
||||
"battleWithFriends": "Play Habitica with Others",
|
||||
"questWithOthers": "Take on Quests with Others",
|
||||
@@ -286,7 +285,7 @@
|
||||
"guildSummaryPlaceholder": "Write a short explanation of your Group. What is the main purpose of the Group and what will its members do?",
|
||||
"groupDescription": "Description",
|
||||
"guildDescriptionPlaceholder": "Use this section to go into more detail about everything that members should know about your Group. Useful tips, helpful links, and encouraging statements all go here!",
|
||||
"markdownFormattingHelp": "[Markdown formatting help](https://github.com/HabitRPG/habitica/wiki/Markdown-in-Habitica)",
|
||||
"markdownFormattingHelp": "[Markdown formatting help](<%= markdownLink %>)",
|
||||
"partyDescriptionPlaceholder": "This is our Party's description. It describes what we do in this Party. If you want to learn more about what we do in this Party, read the description. Party on.",
|
||||
"guildGemCostInfo": "A Gem cost promotes high quality Guilds and is transferred into your Guild's bank.",
|
||||
"noGuildsTitle": "You aren't a member of any Guilds.",
|
||||
@@ -304,7 +303,6 @@
|
||||
"playInPartyTitle": "Play Habitica in a Party!",
|
||||
"playInPartyDescription": "Take on amazing Quests with friends or on your own. Battle monsters, create Challenges, and help yourself stay accountable through Parties.",
|
||||
"wantToJoinPartyTitle": "Looking for a Party?",
|
||||
"wantToJoinPartyDescription": "Give your username to a friend who already has a Party, or head to the <a href='/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>Party Wanted Guild</a> to meet potential comrades!",
|
||||
"lookForParty": "Look for a Party",
|
||||
"currentlyLookingForParty": "You’re looking for a Party!",
|
||||
"partyFinderDescription": "Want to join a Party with others but don’t know any other players? Let Party leaders know you’re looking for an invite!",
|
||||
@@ -411,7 +409,7 @@
|
||||
"newGroupsBullet10a": "<strong>Leave a task unassigned</strong> if any member can complete it",
|
||||
"newGroupsBullet10b": "<strong>Assign a task to one member</strong> so only they can complete it",
|
||||
"newGroupsBullet10c": "<strong>Assign a task to multiple members</strong> if they all need to complete it",
|
||||
"newGroupsVisitFAQ": "Visit the <a href='/static/faq#group-plans' target='_blank'>FAQ</a> from the Help dropdown for more guidance.",
|
||||
"newGroupsVisitFAQ": "Visit the <%= linkOpen %>FAQ<%= linkClose %> from the Help dropdown for more guidance.",
|
||||
"newGroupsEnjoy": "We hope you enjoy the new Group Plans experience!",
|
||||
"checkinsLabel": "Check-ins:",
|
||||
"classLabel": "Class:",
|
||||
@@ -423,10 +421,9 @@
|
||||
"noOneLooking": "There’s no one looking for a Party right now.<br>You can check back later!",
|
||||
"tavernDiscontinued": "The Tavern and Guilds have been discontinued",
|
||||
"tavernDiscontinuedDetail": "Due to a number of factors, including changes in how our player base interacts with Habitica, the resources necessary to maintain these spaces became disproportionate to the number of people participating in them and unsustainable over the long term.",
|
||||
"tavernDiscontinuedLinks": "Read more about the <a href='/static/faq/tavern-and-guilds'>Tavern and Guild Service Discontinuation</a> or head back to the <a href='/'>homepage</a>.",
|
||||
"chatSunsetWarning": "⚠️ <strong>Habitica Guilds and Tavern chat will be discontinued on 8/8/2023.</strong> <a href='/static/faq/tavern-and-guilds'>Click here</a> to read more about this change.",
|
||||
"tavernDiscontinuedLinks": "Read more about the <%= faqLink %>Tavern and Guild Service Discontinuation<%= linkClose %> or head back to the <%= homeLink %>homepage<%= linkClose %>.",
|
||||
"interestedLearningMore": "Interested in Learning More?",
|
||||
"checkGroupPlanFAQ": "Check out the <a href='/static/faq#what-is-group-plan'>Group Plans FAQ</a> to learn how to get the most out of your shared task experience.",
|
||||
"checkGroupPlanFAQ": "Check out the <%= linkOpen %>Group Plans FAQ<%= linkClose %> to learn how to get the most out of your shared task experience.",
|
||||
"groupPlanBillingFYI": "Group Plan subscriptions automatically renew unless you cancel at least 24 hours before the end of your current period. You can cancel from the Group Billing tab of your Group Plan. You will be charged within 24 hours before your subscription renews, based on the number of members in your Group Plan at that time. If you add members between payment periods, you'll see an additional prorated charge for their benefits at your next billing cycle.",
|
||||
"groupPlanBillingFYIShort": "Group Plan subscriptions automatically renew unless you cancel at least 24 hours before the end of your current period. You will be charged within 24 hours before your subscription renews, based on the number of members in your Group Plan at that time. If you add members between payment periods, you'll see an additional prorated charge for their benefits at your next billing cycle.",
|
||||
"chooseAnOption": "Choose an Option",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"pauseDailies": "Pause Damage",
|
||||
"unpauseDailies": "Unpause Damage",
|
||||
"staffAndModerators": "Staff and Moderators",
|
||||
"communityGuidelinesIntro": "Habitica tries to create a welcoming environment for users of all ages and backgrounds, especially in spaces like Groups and Parties. If you have any questions, please consult our <a href='/static/community-guidelines' target='_blank'>Community Guidelines</a>.",
|
||||
"communityGuidelinesIntro": "Habitica tries to create a welcoming environment for users of all ages and backgrounds, especially in spaces like Groups and Parties. If you have any questions, please consult our <%= linkOpen %>Community Guidelines<%= linkClose %>.",
|
||||
"acceptCommunityGuidelines": "I agree to follow the Community Guidelines",
|
||||
"worldBossEvent": "World Boss Event",
|
||||
"worldBossDescription": "World Boss Description",
|
||||
@@ -109,7 +109,7 @@
|
||||
"toDo": "To Do",
|
||||
"tourStatsPage": "This is your Stats page! Earn achievements by completing the listed tasks.",
|
||||
"tourTavernPage": "Welcome to the Tavern, an all-ages chat room! You can keep your Dailies from hurting you in case of illness or travel by clicking \"Pause Damage\". Come say hi!",
|
||||
"tourPartyPage": "Welcome to your new Party! You can invite other players to your Party by username, email, or from a list of players looking for a Party to earn the exclusive Basi-List Quest Scroll.<br/><br/>Select <a href='/static/faq#parties'>FAQ</a> from the Help dropdown to learn more about how Parties work.",
|
||||
"tourPartyPage": "Welcome to your new Party! You can invite other players to your Party by username, email, or from a list of players looking for a Party to earn the exclusive Basi-List Quest Scroll.<br/><br/>Select <%= linkOpen %>FAQ<%= linkClose %> from the Help dropdown to learn more about how Parties work.",
|
||||
"tourChallengesPage": "Challenges are themed task lists created by users! Joining a Challenge will add its tasks to your account. Compete against other users to win Gem prizes!",
|
||||
"tourMarketPage": "Every time you complete a task, you'll have a random chance at receiving an Egg, a Hatching Potion, or a piece of Pet Food. You can also buy these items here.",
|
||||
"tourHallPage": "Welcome to the Hall of Heroes, where open-source contributors to Habitica are honored. Whether through code, art, music, writing, or even just helpfulness, they have earned Gems, exclusive Equipment, and prestigious titles. You can contribute to Habitica, too!",
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
"needTips": "Need some tips on how to begin? Here's a straightforward guide!",
|
||||
|
||||
"step1": "Step 1: Enter Tasks",
|
||||
"webStep1Text": "Habitica is nothing without real-world goals, so enter a few tasks. You can add more later as you think of them! All tasks can be added by clicking the green \"Create\" button.\n* **Set up [To Do's](https://habitica.fandom.com/wiki/To_Do%27s):** Enter tasks you do once or rarely in the To Do's column, one at a time. You can click on the tasks to edit them and add checklists, due dates, and more!\n* **Set up [Dailies](https://habitica.fandom.com/wiki/Dailies):** Enter activities you need to do daily or on a particular day of the week, month, or year in the Dailies column. Click task to edit when it will be due and/or set a start date. You can also make it due on a repeating basis, for example, every 3 days.\n* **Set up [Habits](https://habitica.fandom.com/wiki/Habits):** Enter habits you want to establish in the Habits column. You can edit the Habit to change it to just a good habit :heavy_plus_sign: or a bad habit :heavy_minus_sign:\n* **Set up [Rewards](https://habitica.fandom.com/wiki/Rewards):** In addition to the in-game Rewards offered, add activities or treats which you want to use as a motivation to the Rewards column. It's important to give yourself a break or allow some indulgence in moderation!\n* If you need inspiration for which tasks to add, you can look at the wiki's pages on [Sample Habits](https://habitica.fandom.com/wiki/Sample_Habits), [Sample Dailies](https://habitica.fandom.com/wiki/Sample_Dailies), [Sample To Do's](https://habitica.fandom.com/wiki/Sample_To_Do%27s), and [Sample Rewards](https://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
|
||||
"webStep1Text": "Habitica is nothing without real-world goals, so enter a few tasks. You can add more later as you think of them! All tasks can be added by clicking the green \"Create\" button.\n* **Set up To Do's:** Enter tasks you do once or rarely in the To Do's column, one at a time. You can click on the tasks to edit them and add checklists, due dates, and more!\n* **Set up Dailies:** Enter activities you need to do daily or on a particular day of the week, month, or year in the Dailies column. Click task to edit when it will be due and/or set a start date. You can also make it due on a repeating basis, for example, every 3 days.\n* **Set up Habits:** Enter habits you want to establish in the Habits column. You can edit the Habit to change it to just a good habit :heavy_plus_sign: or a bad habit :heavy_minus_sign:\n* **Set up Rewards:** In addition to the in-game Rewards offered, add activities or treats which you want to use as a motivation to the Rewards column. It's important to give yourself a break or allow some indulgence in moderation!\n*",
|
||||
|
||||
"step2": "Step 2: Gain Points by Doing Things in Real Life",
|
||||
"webStep2Text": "Now, start tackling your goals from the list! As you complete tasks and check them off in Habitica, you will gain [Experience](https://habitica.fandom.com/wiki/Experience_Points), which helps you level up, and [Gold](https://habitica.fandom.com/wiki/Gold_Points), which allows you to purchase Rewards. If you fall into bad habits or miss your Dailies, you will lose [Health](https://habitica.fandom.com/wiki/Health_Points). In that way, the Habitica Experience and Health bars serve as a fun indicator of your progress toward your goals. You'll start seeing your real life improve as your character advances in the game.",
|
||||
"webStep2Text": "Now, start tackling your goals from the list! As you complete tasks and check them off in Habitica, you will gain Experience, which helps you level up, and Gold, which allows you to purchase Rewards. If you fall into bad habits or miss your Dailies, you will lose Health. In that way, the Habitica Experience and Health bars serve as a fun indicator of your progress toward your goals. You'll start seeing your real life improve as your character advances in the game.",
|
||||
|
||||
"step3": "Step 3: Customize and Explore Habitica",
|
||||
"webStep3Text": "Once you're familiar with the basics, you can get even more out of Habitica with these nifty features:\n * Organize your Tasks with [tags](https://habitica.fandom.com/wiki/Tags) (edit a Task to add them).\n * Customize your [Avatar](https://habitica.fandom.com/wiki/Avatar) by clicking the user icon in the upper-right corner.\n * Buy your [Equipment](https://habitica.fandom.com/wiki/Equipment) under Rewards or from the [Shops](<%= shopUrl %>), and change it under [Inventory > Equipment](<%= equipUrl %>).\n * Connect with other users via the [Looking for Party tool](https://habitica.com/looking-for-party).\n * Hatch [Pets](https://habitica.fandom.com/wiki/Pets) by collecting [Eggs](https://habitica.fandom.com/wiki/Eggs) and [Hatching Potions](https://habitica.fandom.com/wiki/Hatching_Potions). [Feed](https://habitica.fandom.com/wiki/Food) them to create [Mounts](https://habitica.fandom.com/wiki/Mounts).\n * At level 10: Choose a particular [Class](https://habitica.fandom.com/wiki/Class_System) and then use Class-specific [skills](https://habitica.fandom.com/wiki/Skills) (levels 11 to 14).\n * Form a Party with your friends (by clicking [Party](<%= partyUrl %>) in the navigation bar) to stay accountable and earn a Quest scroll.\n * Defeat monsters and collect objects on [Quests](https://habitica.fandom.com/wiki/Quests) (you will be given a quest at level 15).",
|
||||
"webStep3Text": "Once you're familiar with the basics, you can get even more out of Habitica with these nifty features:\n * Organize your Tasks with tags (edit a Task to add them).\n * Customize your Avatar by clicking the user icon in the upper-right corner.\n * Buy your Equipment under Rewards or from the Shops, and change it under Inventory > Equipment.\n * Connect with other users via the Looking for Party tool.\n * Hatch Pets by collecting Eggs and Hatching Potions. Feed them to create Mounts.\n * At level 10: Choose a particular Class and then use Class-specific skills (levels 11 to 14).\n * Form a Party with your friends (by clicking Party in the navigation bar) to stay accountable and earn a Quest scroll.\n * Defeat monsters and collect objects on Quests (you will be given a quest at level 15).",
|
||||
|
||||
"overviewQuestionsRevised": "Have questions? Check out the <a href='/static/faq'>FAQ</a>! If your question isn't mentioned there, you can ask for further help using this form: "
|
||||
"overviewQuestionsRevised": "Have questions? Check out the <%= linkOpen %>FAQ<%= linkClose %>! If your question isn't mentioned there, you can ask for further help using this form: "
|
||||
}
|
||||
|
||||
@@ -47,8 +47,6 @@
|
||||
"food": "Pet Food and Saddles",
|
||||
"noFoodAvailable": "You don't have any Pet Food.",
|
||||
"noSaddlesAvailable": "You don't have any Saddles.",
|
||||
"dropsExplanation": "Get these items faster with Gems if you don't want to wait for them to drop when completing a task. <a href=\"https://habitica.fandom.com/wiki/Drops\">Learn more about the drop system.</a>",
|
||||
"dropsExplanationEggs": "Spend Gems to get eggs more quickly, if you don't want to wait for standard eggs to drop, or to repeat Quests to earn Quest eggs. <a href=\"https://habitica.fandom.com/wiki/Drops\">Learn more about the drop system.</a>",
|
||||
"premiumPotionNoDropExplanation": "Magic Hatching Potions cannot be used on eggs received from Quests. The only way to get Magic Hatching Potions is by buying them below, not from random drops.",
|
||||
"beastMasterProgress": "Beast Master Progress",
|
||||
"beastAchievement": "You have earned the \"Beast Master\" Achievement for collecting all the pets!",
|
||||
@@ -91,7 +89,7 @@
|
||||
"welcomeStable": "Welcome to your Pets and Mounts!",
|
||||
"welcomeStableText": "Welcome to the stable! I’m Matt, the beastmaster. Every time you complete a task, you'll have a random chance at receiving an Egg or a Hatching Potion to hatch Pets. When you hatch a Pet, it will appear here! Click a Pet's image to add it to your Avatar. Feed them with the Pet Food you find and they'll grow into hardy Mounts.",
|
||||
"petLikeToEat": "What does my Pet like to eat?",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one Pet Food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"/static/faq#pet-foods\" target=\"_blank\">https://habitica.com/static/faq#pet-foods</a>",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one Pet Food that they like best. Experiment to find out the pattern, or <%= linkOpen %>see the answers here<%= linkClose %>.",
|
||||
"filterByStandard": "Standard",
|
||||
"filterByMagicPotion": "Magic Potion",
|
||||
"filterByQuest": "Quest",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
"loginReward": "<%= count %> Check-ins",
|
||||
"questBundles": "Discounted Quest Bundles",
|
||||
"noQuestToStartTitle": "Can’t find a Quest to start?",
|
||||
"noQuestToStart": "Try checking out the <a href=\"<%= questShop %>\">Quest Shop</a> for new releases!",
|
||||
"noQuestToStart": "Try checking out the <%= linkOpen %>Quest Shop<%= linkClose %> for new releases!",
|
||||
"pendingDamage": "<%= damage %> pending damage",
|
||||
"pendingDamageLabel": "pending damage",
|
||||
"bossHealth": "<%= currentHealth %> / <%= maxHealth %> Health",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"language": "Language",
|
||||
"siteLanguage": "Site Language",
|
||||
"americanEnglishGovern": "In the event of a discrepancy in the translations, the American English version governs.",
|
||||
"helpWithTranslation": "Are you interested in helping with the translation of Habitica? Great! Then visit <a href=\"https://translate.habitica.com\">Habitica's Weblate site</a>!",
|
||||
"helpWithTranslation": "Are you interested in helping with the translation of Habitica? Great! Then visit <%= linkOpen %>Habitica's Weblate site<%= linkClose %>!",
|
||||
"stickyHeader": "Sticky header",
|
||||
"newTaskEdit": "Open new tasks in edit mode",
|
||||
"reverseChatOrder": "Show chat messages in reverse order",
|
||||
@@ -93,8 +93,6 @@
|
||||
"APIToken": "API Token (this is a password - see warning above!)",
|
||||
"showAPIToken": "Show API Token",
|
||||
"hideAPIToken": "Hide API Token",
|
||||
"thirdPartyApps": "Third Party Apps",
|
||||
"thirdPartyTools": "Find third party apps, extensions, and all kinds of other tools you can use with your account on the <a href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Habitica wiki</a>.",
|
||||
"resetDo": "Do it, reset my account!",
|
||||
"resetComplete": "Reset complete!",
|
||||
"fixValues": "Fix Values",
|
||||
@@ -140,7 +138,7 @@
|
||||
"kickedGroup": "Removed from group",
|
||||
"remindersToLogin": "Reminders to check in to Habitica",
|
||||
"unsubscribedSuccessfully": "Unsubscribed successfully!",
|
||||
"unsubscribedTextUsers": "You have successfully unsubscribed from all Habitica emails. You can enable only the emails you want to receive from <a href=\"/user/settings/notifications\">Settings > > Notifications</a> (requires login).",
|
||||
"unsubscribedTextUsers": "You have successfully unsubscribed from all Habitica emails. You can enable only the emails you want to receive from <%= linkOpen %>Settings > Notifications<%= linkClose %> (requires login).",
|
||||
"unsubscribedTextOthers": "You won't receive any other email from Habitica.",
|
||||
"unsubscribeAllEmails": "Unsubscribe from Emails",
|
||||
"unsubscribeAllEmailsText": "Habitica will be unable to notify you via email about important changes to the site or your account.",
|
||||
@@ -163,7 +161,7 @@
|
||||
"generate": "Generate",
|
||||
"getCodes": "Get Codes",
|
||||
"webhooks": "Webhooks",
|
||||
"webhooksInfo": "Webhooks provide a way for developers to receive notifications when a particular action is performed, such as scoring or updating a Task, or sending a message in a Group. By creating a webhook, you will be able to listen to changes in Habitica and build apps that respond to these changes.<br><br>For additional information and examples on webhooks, please visit our <a target=\"_blank\" href=\"https://habitica.com/apidoc/#api-Webhook-AddWebhook\">API Docs</a>.",
|
||||
"webhooksInfo": "Webhooks provide a way for developers to receive notifications when a particular action is performed, such as scoring or updating a Task, or sending a message in a Group. By creating a webhook, you will be able to listen to changes in Habitica and build apps that respond to these changes.<br><br>For additional information and examples on webhooks, please visit our <%= linkOpen %>API Docs<%= linkClose %>.",
|
||||
"enabled": "Enabled",
|
||||
"webhookURL": "Webhook URL",
|
||||
"addWebhook": "Add Webhook",
|
||||
@@ -264,7 +262,7 @@
|
||||
"managePrivacyPreferences": "Manage Your Privacy Preferences",
|
||||
"yourPrivacyPreferences": "Your Privacy Preferences",
|
||||
"privacySettingsOverview": "Habitica uses cookies to analyze performance, handle support requests, and provide you with the best possible gamified experience. To do that, we need to request the following permissions. You can change these at any time from your account settings.",
|
||||
"learnMorePrivacy": "To learn more, review our <a href='/static/privacy' target='_blank'>Privacy Policy</a>.",
|
||||
"learnMorePrivacy": "To learn more, review our <%= linkOpen %>Privacy Policy<%= linkClose %>.",
|
||||
"strictlyNecessary": "Strictly Necessary",
|
||||
"alwaysActive": "Always Active",
|
||||
"requiredToRun": "These are required by our website and apps to run at their best.",
|
||||
@@ -272,6 +270,6 @@
|
||||
"usedForSupport": "These are used to improve the user experience, performance, and services of our website and apps. This data is used by our support team when handling requests and bug reports.",
|
||||
"savePreferences": "Save Preferences",
|
||||
"habiticaPrivacyPolicy": "Habitica's Privacy Policy",
|
||||
"gpcWarning": "<a href='<%= url %>' target='_blank'>GPC</a> is on. Turning on tracking below will override this and send data to our analytics partners.",
|
||||
"gpcPlusAnalytics": "<a href='<%= url %>' target='_blank'>GPC</a> is on. You have opted in to tracking and sending data to our analytics partners."
|
||||
"gpcWarning": "<%= linkOpen %>GPC<%= linkClose %> is on. Turning on tracking below will override this and send data to our analytics partners.",
|
||||
"gpcPlusAnalytics": "<%= linkOpen %>GPC<%= linkClose %> is on. You have opted in to tracking and sending data to our analytics partners."
|
||||
}
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
"groupPlans": "Group Plans",
|
||||
"nowSubscribed": "You are now subscribed to Habitica!",
|
||||
"cancelSub": "Cancel Subscription",
|
||||
"cancelSubInfoGoogle": "To cancel your subscription or to view your subscription's termination date, please use the <a href='https://play.google.com/store/account/subscriptions'>Google Play Store</a>. Any leftover months of subscription credit will be added to your end date after cancellation.",
|
||||
"cancelSubInfoApple": "Please follow <a href=\"https://support.apple.com/en-us/HT202039\">Apple's official instructions</a> to cancel your subscription or to see your subscription's termination date if you have already cancelled it. This screen is not able to show you whether your subscription has been cancelled.",
|
||||
"cancelSubInfoGoogle": "To cancel your subscription or to view your subscription's termination date, please use the <%= linkOpen %>Google Play Store<%= linkClose %>. Any leftover months of subscription credit will be added to your end date after cancellation.",
|
||||
"cancelSubInfoApple": "Please follow <%= linkOpen %>Apple's official instructions<%= linkClose %> to cancel your subscription or to see your subscription's termination date if you have already cancelled it. This screen is not able to show you whether your subscription has been cancelled.",
|
||||
"cancelSubInfoGroupPlan": "Because you have a free subscription from a Group Plan, you cannot cancel it. It will end when you are no longer a member of the Group Plan. If you are the Group leader and want to cancel the Group Plan, you can do that from the Group Plan’s “Group Billing” tab.",
|
||||
"cancelingSubscription": "Canceling the subscription",
|
||||
"contactUs": "Contact Us",
|
||||
@@ -254,7 +254,6 @@
|
||||
"readyToResubscribe": "Are you ready to resubscribe?",
|
||||
"resubscribeToPickUp": "Resubscribe to pick up where you left off!",
|
||||
"cancelYourSubscription": "Need to cancel your subscription?",
|
||||
"cancelSubAlternatives": "If you're having technical problems or Habitica doesn't seem to be working out for you, please consider <a href='mailto:admin@habitica.com'>contacting us</a>. We want to help you get the most from Habitica.",
|
||||
"sendAGift": "Send Gift",
|
||||
"haveNonRecurringSub": "You have a non-recurring gift subscription.",
|
||||
"switchToRecurring": "Switch to a recurring subscription?",
|
||||
|
||||
@@ -26,7 +26,10 @@ async function emailUnsubscribe (req, res) {
|
||||
|
||||
if (userUpdated.modifiedCount !== 1) throw new NotFound(res.t('userNotFound'));
|
||||
|
||||
res.send(`<h1>${res.t('unsubscribedSuccessfully')}</h1> ${res.t('unsubscribedTextUsers')}`);
|
||||
res.send(`<h1>${res.t('unsubscribedSuccessfully')}</h1> ${res.t('unsubscribedTextUsers', {
|
||||
linkOpen: '<a href="/user/settings/notifications">',
|
||||
linkClose: '</a>',
|
||||
})}`);
|
||||
} else {
|
||||
const unsubscribedEmail = await EmailUnsubscription
|
||||
.findOne({ email: data.email.toLowerCase() }).exec();
|
||||
|
||||
Reference in New Issue
Block a user