Merge branch 'develop' into increment-component

This commit is contained in:
CuriousMagpie 2023-02-06 14:30:34 -05:00
commit 9274fe9a10
125 changed files with 2890 additions and 572 deletions

@ -1 +1 @@
Subproject commit 351ca72bc4cecce515aa94a1951e4b7803f5d3f3
Subproject commit 7203f4633cc90ede5b2f6745393d54493c487ff6

View file

@ -0,0 +1,88 @@
/* eslint-disable no-console */
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const MIGRATION_NAME = '20230123_habit_birthday';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count += 1;
const inc = { 'balance': 5 };
const set = {};
const push = {};
set.migration = MIGRATION_NAME;
if (typeof user.items.gear.owned.armor_special_birthday2022 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2023'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2021 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2022'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2020 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2021'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2019 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2020'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2018 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2019'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2017 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2018'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2016 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2017'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday2015 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2016'] = true;
} else if (typeof user.items.gear.owned.armor_special_birthday !== 'undefined') {
set['items.gear.owned.armor_special_birthday2015'] = true;
} else {
set['items.gear.owned.armor_special_birthday'] = true;
}
push.notifications = {
type: 'ITEM_RECEIVED',
data: {
icon: 'notif_head_special_nye',
title: 'Birthday Bash Day 1!',
text: 'Enjoy your new Birthday Robe and 20 Gems on us!',
destination: 'equipment',
},
seen: false,
};
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set, $push: push}).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2022-12-23')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View file

@ -0,0 +1,69 @@
/* eslint-disable no-console */
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const MIGRATION_NAME = '20230127_habit_birthday_day5';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count += 1;
const set = {};
const push = {};
set.migration = MIGRATION_NAME;
set['items.gear.owned.back_special_anniversary'] = true;
set['items.gear.owned.body_special_anniversary'] = true;
set['items.gear.owned.eyewear_special_anniversary'] = true;
push.notifications = {
type: 'ITEM_RECEIVED',
data: {
icon: 'notif_head_special_nye',
title: 'Birthday Bash Day 5!',
text: 'Come celebrate by wearing your new Habitica Hero Cape, Collar, and Mask!',
destination: 'equipment',
},
seen: false,
};
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$set: set, $push: push}).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2022-12-23')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View file

@ -0,0 +1,79 @@
/* eslint-disable no-console */
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const MIGRATION_NAME = '20230201_habit_birthday_day10';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count += 1;
const set = {
migration: MIGRATION_NAME,
'purchased.background.birthday_bash': true,
};
const push = {
notifications: {
type: 'ITEM_RECEIVED',
data: {
icon: 'notif_head_special_nye',
title: 'Birthday Bash Day 10!',
text: 'Join in for the end of our birthday celebrations with 10th Birthday background, Cake, and achievement!',
destination: 'backgrounds',
},
seen: false,
},
};
const inc = {
'items.food.Cake_Skeleton': 1,
'items.food.Cake_Base': 1,
'items.food.Cake_CottonCandyBlue': 1,
'items.food.Cake_CottonCandyPink': 1,
'items.food.Cake_Shade': 1,
'items.food.Cake_White': 1,
'items.food.Cake_Golden': 1,
'items.food.Cake_Zombie': 1,
'items.food.Cake_Desert': 1,
'items.food.Cake_Red': 1,
'achievements.habitBirthdays': 1,
};
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$set: set, $push: push, $inc: inc }).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2022-12-23')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.255.2",
"version": "4.258.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View file

@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.255.2",
"version": "4.258.0",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.20.12",

View file

@ -17,7 +17,7 @@ describe('Amazon Payments - Checkout', () => {
let closeOrderReferenceSpy;
let paymentBuyGemsStub;
let paymentCreateSubscritionStub;
let paymentCreateSubscriptionStub;
let amount = gemsBlock.price / 100;
function expectOrderReferenceSpy () {
@ -85,8 +85,8 @@ describe('Amazon Payments - Checkout', () => {
paymentBuyGemsStub = sinon.stub(payments, 'buyGems');
paymentBuyGemsStub.resolves({});
paymentCreateSubscritionStub = sinon.stub(payments, 'createSubscription');
paymentCreateSubscritionStub.resolves({});
paymentCreateSubscriptionStub = sinon.stub(payments, 'createSubscription');
paymentCreateSubscriptionStub.resolves({});
sinon.stub(common, 'uuid').returns('uuid-generated');
sandbox.stub(gems, 'validateGiftMessage');
@ -109,6 +109,7 @@ describe('Amazon Payments - Checkout', () => {
user,
paymentMethod,
headers,
sku: undefined,
};
if (gift) {
expectedArgs.gift = gift;
@ -215,13 +216,14 @@ describe('Amazon Payments - Checkout', () => {
});
gift.member = receivingUser;
expect(paymentCreateSubscritionStub).to.be.calledOnce;
expect(paymentCreateSubscritionStub).to.be.calledWith({
expect(paymentCreateSubscriptionStub).to.be.calledOnce;
expect(paymentCreateSubscriptionStub).to.be.calledWith({
user,
paymentMethod: amzLib.constants.PAYMENT_METHOD_GIFT,
headers,
gift,
gemsBlock: undefined,
sku: undefined,
});
expectAmazonStubs();
});

View file

@ -12,10 +12,10 @@ const { i18n } = common;
describe('Apple Payments', () => {
const subKey = 'basic_3mo';
describe('verifyGemPurchase', () => {
describe('verifyPurchase', () => {
let sku; let user; let token; let receipt; let
headers;
let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let paymentBuyGemsStub; let
let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let paymentBuySkuStub; let
iapGetPurchaseDataStub; let validateGiftMessageStub;
beforeEach(() => {
@ -36,7 +36,7 @@ describe('Apple Payments', () => {
productId: 'com.habitrpg.ios.Habitica.21gems',
transactionId: token,
}]);
paymentBuyGemsStub = sinon.stub(payments, 'buyGems').resolves({});
paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({});
validateGiftMessageStub = sinon.stub(gems, 'validateGiftMessage');
});
@ -45,7 +45,7 @@ describe('Apple Payments', () => {
iap.validate.restore();
iap.isValidated.restore();
iap.getPurchaseData.restore();
payments.buyGems.restore();
payments.buySkuItem.restore();
gems.validateGiftMessage.restore();
});
@ -54,7 +54,7 @@ describe('Apple Payments', () => {
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
.returns(false);
await expect(applePayments.verifyGemPurchase({ user, receipt, headers }))
await expect(applePayments.verifyPurchase({ user, receipt, headers }))
.to.eventually.be.rejected.and.to.eql({
httpCode: 401,
name: 'NotAuthorized',
@ -66,7 +66,7 @@ describe('Apple Payments', () => {
iapGetPurchaseDataStub.restore();
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData').returns([]);
await expect(applePayments.verifyGemPurchase({ user, receipt, headers }))
await expect(applePayments.verifyPurchase({ user, receipt, headers }))
.to.eventually.be.rejected.and.to.eql({
httpCode: 401,
name: 'NotAuthorized',
@ -76,7 +76,7 @@ describe('Apple Payments', () => {
it('errors if the user cannot purchase gems', async () => {
sinon.stub(user, 'canGetGems').resolves(false);
await expect(applePayments.verifyGemPurchase({ user, receipt, headers }))
await expect(applePayments.verifyPurchase({ user, receipt, headers }))
.to.eventually.be.rejected.and.to.eql({
httpCode: 401,
name: 'NotAuthorized',
@ -94,14 +94,16 @@ describe('Apple Payments', () => {
productId: 'badProduct',
transactionId: token,
}]);
paymentBuySkuStub.restore();
await expect(applePayments.verifyGemPurchase({ user, receipt, headers }))
await expect(applePayments.verifyPurchase({ user, receipt, headers }))
.to.eventually.be.rejected.and.to.eql({
httpCode: 401,
name: 'NotAuthorized',
httpCode: 400,
name: 'BadRequest',
message: applePayments.constants.RESPONSE_INVALID_ITEM,
});
paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({});
user.canGetGems.restore();
});
@ -138,7 +140,7 @@ describe('Apple Payments', () => {
}]);
sinon.stub(user, 'canGetGems').resolves(true);
await applePayments.verifyGemPurchase({ user, receipt, headers });
await applePayments.verifyPurchase({ user, receipt, headers });
expect(iapSetupStub).to.be.calledOnce;
expect(iapValidateStub).to.be.calledOnce;
@ -148,13 +150,13 @@ describe('Apple Payments', () => {
expect(iapGetPurchaseDataStub).to.be.calledOnce;
expect(validateGiftMessageStub).to.not.be.called;
expect(paymentBuyGemsStub).to.be.calledOnce;
expect(paymentBuyGemsStub).to.be.calledWith({
expect(paymentBuySkuStub).to.be.calledOnce;
expect(paymentBuySkuStub).to.be.calledWith({
user,
paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE,
gemsBlock: common.content.gems[gemTest.gemsBlock],
headers,
gift: undefined,
paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE,
sku: gemTest.productId,
headers,
});
expect(user.canGetGems).to.be.calledOnce;
user.canGetGems.restore();
@ -173,7 +175,7 @@ describe('Apple Payments', () => {
}]);
const gift = { uuid: receivingUser._id };
await applePayments.verifyGemPurchase({
await applePayments.verifyPurchase({
user, gift, receipt, headers,
});
@ -187,18 +189,16 @@ describe('Apple Payments', () => {
expect(validateGiftMessageStub).to.be.calledOnce;
expect(validateGiftMessageStub).to.be.calledWith(gift, user);
expect(paymentBuyGemsStub).to.be.calledOnce;
expect(paymentBuyGemsStub).to.be.calledWith({
expect(paymentBuySkuStub).to.be.calledOnce;
expect(paymentBuySkuStub).to.be.calledWith({
user,
paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE,
headers,
gift: {
type: 'gems',
gems: { amount: 4 },
member: sinon.match({ _id: receivingUser._id }),
uuid: receivingUser._id,
member: sinon.match({ _id: receivingUser._id }),
},
gemsBlock: common.content.gems['4gems'],
paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE,
sku: 'com.habitrpg.ios.Habitica.4gems',
headers,
});
});
});

View file

@ -12,11 +12,11 @@ const { i18n } = common;
describe('Google Payments', () => {
const subKey = 'basic_3mo';
describe('verifyGemPurchase', () => {
describe('verifyPurchase', () => {
let sku; let user; let token; let receipt; let signature; let
headers; const gemsBlock = common.content.gems['21gems'];
headers;
let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let
paymentBuyGemsStub; let validateGiftMessageStub;
paymentBuySkuStub; let validateGiftMessageStub;
beforeEach(() => {
sku = 'com.habitrpg.android.habitica.iap.21gems';
@ -27,11 +27,10 @@ describe('Google Payments', () => {
iapSetupStub = sinon.stub(iap, 'setup')
.resolves();
iapValidateStub = sinon.stub(iap, 'validate')
.resolves({});
iapValidateStub = sinon.stub(iap, 'validate').resolves({ productId: sku });
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
.returns(true);
paymentBuyGemsStub = sinon.stub(payments, 'buyGems').resolves({});
paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({});
validateGiftMessageStub = sinon.stub(gems, 'validateGiftMessage');
});
@ -39,7 +38,7 @@ describe('Google Payments', () => {
iap.setup.restore();
iap.validate.restore();
iap.isValidated.restore();
payments.buyGems.restore();
payments.buySkuItem.restore();
gems.validateGiftMessage.restore();
});
@ -48,7 +47,7 @@ describe('Google Payments', () => {
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
.returns(false);
await expect(googlePayments.verifyGemPurchase({
await expect(googlePayments.verifyPurchase({
user, receipt, signature, headers,
}))
.to.eventually.be.rejected.and.to.eql({
@ -60,21 +59,25 @@ describe('Google Payments', () => {
it('should throw an error if productId is invalid', async () => {
receipt = `{"token": "${token}", "productId": "invalid"}`;
iapValidateStub.restore();
iapValidateStub = sinon.stub(iap, 'validate').resolves({});
await expect(googlePayments.verifyGemPurchase({
paymentBuySkuStub.restore();
await expect(googlePayments.verifyPurchase({
user, receipt, signature, headers,
}))
.to.eventually.be.rejected.and.to.eql({
httpCode: 401,
name: 'NotAuthorized',
httpCode: 400,
name: 'BadRequest',
message: googlePayments.constants.RESPONSE_INVALID_ITEM,
});
paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({});
});
it('should throw an error if user cannot purchase gems', async () => {
sinon.stub(user, 'canGetGems').resolves(false);
await expect(googlePayments.verifyGemPurchase({
await expect(googlePayments.verifyPurchase({
user, receipt, signature, headers,
}))
.to.eventually.be.rejected.and.to.eql({
@ -88,7 +91,7 @@ describe('Google Payments', () => {
it('purchases gems', async () => {
sinon.stub(user, 'canGetGems').resolves(true);
await googlePayments.verifyGemPurchase({
await googlePayments.verifyPurchase({
user, receipt, signature, headers,
});
@ -101,15 +104,17 @@ describe('Google Payments', () => {
signature,
});
expect(iapIsValidatedStub).to.be.calledOnce;
expect(iapIsValidatedStub).to.be.calledWith({});
expect(iapIsValidatedStub).to.be.calledWith(
{ productId: sku },
);
expect(paymentBuyGemsStub).to.be.calledOnce;
expect(paymentBuyGemsStub).to.be.calledWith({
expect(paymentBuySkuStub).to.be.calledOnce;
expect(paymentBuySkuStub).to.be.calledWith({
user,
paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE,
gemsBlock,
headers,
gift: undefined,
paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE,
sku,
headers,
});
expect(user.canGetGems).to.be.calledOnce;
user.canGetGems.restore();
@ -120,7 +125,7 @@ describe('Google Payments', () => {
await receivingUser.save();
const gift = { uuid: receivingUser._id };
await googlePayments.verifyGemPurchase({
await googlePayments.verifyPurchase({
user, gift, receipt, signature, headers,
});
@ -134,20 +139,20 @@ describe('Google Payments', () => {
signature,
});
expect(iapIsValidatedStub).to.be.calledOnce;
expect(iapIsValidatedStub).to.be.calledWith({});
expect(iapIsValidatedStub).to.be.calledWith(
{ productId: sku },
);
expect(paymentBuyGemsStub).to.be.calledOnce;
expect(paymentBuyGemsStub).to.be.calledWith({
expect(paymentBuySkuStub).to.be.calledOnce;
expect(paymentBuySkuStub).to.be.calledWith({
user,
paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE,
gemsBlock,
headers,
gift: {
type: 'gems',
gems: { amount: 21 },
member: sinon.match({ _id: receivingUser._id }),
uuid: receivingUser._id,
member: sinon.match({ _id: receivingUser._id }),
},
paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE,
sku,
headers,
});
});
});

View file

@ -0,0 +1,40 @@
import {
canBuySkuItem,
} from '../../../../../website/server/libs/payments/skuItem';
import { model as User } from '../../../../../website/server/models/user';
describe('payments/skuItems', () => {
let user;
let clock;
beforeEach(() => {
user = new User();
clock = null;
});
afterEach(() => {
if (clock !== null) clock.restore();
});
describe('#canBuySkuItem', () => {
it('returns true for random sku', () => {
expect(canBuySkuItem('something', user)).to.be.true;
});
describe('#gryphatrice', () => {
const sku = 'Pet-Gryphatrice-Jubilant';
it('returns true during birthday week', () => {
clock = sinon.useFakeTimers(new Date('2023-01-29'));
expect(canBuySkuItem(sku, user)).to.be.true;
});
it('returns false outside of birthday week', () => {
clock = sinon.useFakeTimers(new Date('2023-01-20'));
expect(canBuySkuItem(sku, user)).to.be.false;
});
it('returns false if user already owns it', () => {
clock = sinon.useFakeTimers(new Date('2023-02-01'));
user.items.pets['Gryphatrice-Jubilant'] = 5;
expect(canBuySkuItem(sku, user)).to.be.false;
});
});
});
});

View file

@ -21,11 +21,11 @@ describe('payments : apple #verify', () => {
let verifyStub;
beforeEach(async () => {
verifyStub = sinon.stub(applePayments, 'verifyGemPurchase').resolves({});
verifyStub = sinon.stub(applePayments, 'verifyPurchase').resolves({});
});
afterEach(() => {
applePayments.verifyGemPurchase.restore();
applePayments.verifyPurchase.restore();
});
it('makes a purchase', async () => {

View file

@ -21,11 +21,11 @@ describe('payments : google #verify', () => {
let verifyStub;
beforeEach(async () => {
verifyStub = sinon.stub(googlePayments, 'verifyGemPurchase').resolves({});
verifyStub = sinon.stub(googlePayments, 'verifyPurchase').resolves({});
});
afterEach(() => {
googlePayments.verifyGemPurchase.restore();
googlePayments.verifyPurchase.restore();
});
it('makes a purchase', async () => {

View file

@ -35,6 +35,7 @@
<sub-canceled-modal v-if="isUserLoaded" />
<bug-report-modal v-if="isUserLoaded" />
<bug-report-success-modal v-if="isUserLoaded" />
<birthday-modal />
<snackbars />
<router-view v-if="!isUserLoggedIn || isStaticPage" />
<template v-else>
@ -42,6 +43,7 @@
<damage-paused-banner />
<gems-promo-banner />
<gift-promo-banner />
<birthday-banner />
<notifications-display />
<app-menu />
<div
@ -153,11 +155,13 @@
import axios from 'axios';
import { loadProgressBar } from 'axios-progress-bar';
import birthdayModal from '@/components/news/birthdayModal';
import AppMenu from './components/header/menu';
import AppHeader from './components/header/index';
import DamagePausedBanner from './components/header/banners/damagePaused';
import GemsPromoBanner from './components/header/banners/gemsPromo';
import GiftPromoBanner from './components/header/banners/giftPromo';
import BirthdayBanner from './components/header/banners/birthdayBanner';
import AppFooter from './components/appFooter';
import notificationsDisplay from './components/notifications';
import snackbars from './components/snackbars/notifications';
@ -191,9 +195,11 @@ export default {
AppMenu,
AppHeader,
AppFooter,
birthdayModal,
DamagePausedBanner,
GemsPromoBanner,
GiftPromoBanner,
BirthdayBanner,
notificationsDisplay,
snackbars,
BuyModal,

View file

@ -156,6 +156,12 @@
height: 99px;
}
.Pet-Gryphatrice-Jubilant {
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Gryphatrice-Jubilant.gif") no-repeat;
width: 81px;
height: 96px;
}
.Mount_Head_Gryphon-Gryphatrice, .Mount_Body_Gryphon-Gryphatrice {
width: 135px;
height: 135px;

View file

@ -665,6 +665,11 @@
width: 141px;
height: 147px;
}
.background_birthday_bash {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_birthday_bash.png');
width: 141px;
height: 147px;
}
.background_birthday_party {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_birthday_party.png');
width: 141px;
@ -2296,6 +2301,11 @@
width: 68px;
height: 68px;
}
.icon_background_birthday_bash {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_birthday_bash.png');
width: 68px;
height: 68px;
}
.icon_background_birthday_party {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_birthday_party.png');
width: 68px;
@ -2835,11 +2845,6 @@
width: 68px;
height: 68px;
}
.icon_background_habitversary_bash {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_habitversary_bash.png');
width: 68px;
height: 68px;
}
.icon_background_halflings_house {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_halflings_house.png');
width: 68px;
@ -22830,6 +22835,16 @@
width: 68px;
height: 68px;
}
.back_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_special_anniversary.png');
width: 114px;
height: 90px;
}
.body_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/body_special_anniversary.png');
width: 114px;
height: 90px;
}
.broad_armor_special_birthday {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_birthday.png');
width: 90px;
@ -22875,6 +22890,16 @@
width: 114px;
height: 90px;
}
.broad_armor_special_birthday2023 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_birthday2023.png');
width: 114px;
height: 90px;
}
.eyewear_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/eyewear_special_anniversary.png');
width: 90px;
height: 90px;
}
.shop_armor_special_birthday {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_birthday.png');
width: 68px;
@ -22920,6 +22945,26 @@
width: 68px;
height: 68px;
}
.shop_armor_special_birthday2023 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_birthday2023.png');
width: 68px;
height: 68px;
}
.shop_back_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_back_special_anniversary.png');
width: 68px;
height: 68px;
}
.shop_body_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_body_special_anniversary.png');
width: 68px;
height: 68px;
}
.shop_eyewear_special_anniversary {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_eyewear_special_anniversary.png');
width: 68px;
height: 68px;
}
.slim_armor_special_birthday {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_birthday.png');
width: 90px;
@ -22965,6 +23010,11 @@
width: 114px;
height: 90px;
}
.slim_armor_special_birthday2023 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_birthday2023.png');
width: 114px;
height: 90px;
}
.broad_armor_special_fall2015Healer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fall2015Healer.png');
width: 93px;
@ -27610,6 +27660,31 @@
width: 68px;
height: 68px;
}
.back_mystery_202302 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202302.png');
width: 114px;
height: 90px;
}
.headAccessory_mystery_202302 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_mystery_202302.png');
width: 114px;
height: 90px;
}
.shop_back_mystery_202302 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_back_mystery_202302.png');
width: 68px;
height: 68px;
}
.shop_headAccessory_mystery_202302 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_mystery_202302.png');
width: 68px;
height: 68px;
}
.shop_set_mystery_202302 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_set_mystery_202302.png');
width: 68px;
height: 68px;
}
.broad_armor_mystery_301404 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
width: 90px;
@ -32380,11 +32455,6 @@
width: 68px;
height: 68px;
}
.shop_weapon_special_Winter2023Rogue {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_Winter2023Rogue.png');
width: 68px;
height: 68px;
}
.shop_weapon_special_candycane {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_candycane.png');
width: 68px;
@ -32570,6 +32640,11 @@
width: 68px;
height: 68px;
}
.shop_weapon_special_winter2023Rogue {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Rogue.png');
width: 68px;
height: 68px;
}
.shop_weapon_special_winter2023Warrior {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Warrior.png');
width: 68px;
@ -34823,6 +34898,11 @@
width: 40px;
height: 40px;
}
.notif_head_special_nye {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/notif_head_special_nye.png');
width: 28px;
height: 28px;
}
.notif_inventory_present_01 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/notif_inventory_present_01.png');
width: 28px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,61 @@
<svg width="199" height="24" viewBox="0 0 199 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#c19w6aye5a)" fill="#fff">
<path d="M56.47 18.83V6.003L56 3.662l.47-1.405h8.942c1.773 0 3.193.344 4.26 1.03 1.066.687 1.6 1.733 1.6 3.137 0 .765-.142 1.397-.424 1.896a4.175 4.175 0 0 1-1.035 1.24 4.14 4.14 0 0 1 1.505.703c.471.327.855.772 1.154 1.334.297.546.447 1.225.447 2.036 0 1.639-.487 2.918-1.46 3.839-.956.905-2.502 1.358-4.635 1.358H56.471zm5.177-10.136h2.777c.533 0 .918-.078 1.153-.234.235-.171.353-.429.353-.772 0-.359-.173-.609-.518-.75-.345-.155-.753-.233-1.223-.233h-2.542v1.99zm0 5.688h4c.628 0 1.067-.093 1.318-.28a.974.974 0 0 0 .377-.796c0-.75-.486-1.124-1.46-1.124h-4.235v2.2zM75.515 18.83V6.003l-.236-2.341.236-1.405h5.2V18.83h-5.2zM84 18.83V6.026l-.471-2.364.47-1.405h8.472c1.27 0 2.36.203 3.27.61.91.405 1.608 1.06 2.095 1.965.486.89.73 2.068.73 3.535 0 1.357-.228 2.473-.683 3.347a4.552 4.552 0 0 1-2 1.99l.4.327 1.623 2.2 1.341 1.194v1.405h-6.235l-2.588-4.284h-1.248v.515l.236 2.34-.236 1.429H84zm5.176-8.66h1.365c.55 0 1.02-.024 1.412-.071.408-.047.722-.187.941-.421.22-.25.33-.648.33-1.194 0-.578-.118-.991-.353-1.24-.236-.25-.565-.399-.989-.446a9.614 9.614 0 0 0-1.435-.093h-1.506l.235 3.464zM104.666 18.83V6.728l-4.706.234V2.257h14.707v4.705l-4.824-.234v8.357l.259 2.34-.259 1.405h-5.177zM116.785 18.83V6.026l-.235-2.34.235-1.429h5.177v6.344h4.918V2.257h5.177v8.802l.235 1.615v6.156h-5.412v-5.946h-4.918v1.639l.235 4.307h-5.412zM135.588 18.83V6.026l-.471-2.34.471-1.429h7.977c1.114 0 2.188.11 3.223.328 1.051.203 1.985.593 2.801 1.17.831.578 1.49 1.405 1.976 2.482.486 1.076.73 2.473.73 4.19 0 1.716-.251 3.128-.753 4.236-.487 1.092-1.146 1.943-1.977 2.552a7.477 7.477 0 0 1-2.8 1.264 14.463 14.463 0 0 1-3.2.35h-7.977zm5.224-4.448h1.788c.926 0 1.702-.101 2.33-.304a2.498 2.498 0 0 0 1.458-1.147c.33-.577.495-1.412.495-2.504 0-1.108-.173-1.92-.518-2.435-.33-.53-.816-.874-1.459-1.03-.628-.171-1.396-.257-2.306-.257h-1.788v7.677zM153.013 18.83l1.13-3.956V11.9l1.741-.702 3.294-8.918h7.083l4.024 10.486 1.812 3.324v2.739h-5.106l-1.177-3.488h-6.377l-1.012 3.488h-5.412zm7.977-7.584h3.53l-1.553-4.658h-.494l-1.483 4.658zM176.04 18.83v-6.788l-5.835-8.38V2.257h5.906l2.353 4.822h.47l2.33-4.822h5.883v1.405l-6.001 8.52.141 2.364v4.284h-5.247zM191.923 12.72l-2.07-8.847L192.676 2l2.8 1.896-2.141 8.824h-1.412zm.518 7.28-3.059-3.043 3.059-3.043 3.059 3.043L192.441 20z"/>
</g>
<g filter="url(#s1alkvv8kb)">
<path d="M5.87 18.825V7.601H3V3.17l8.228-.937.239 1.406-.24 2.344v12.841H5.87z" fill="url(#xidihnl5xc)"/>
<path d="M21.258 19.06a9.043 9.043 0 0 1-2.87-.446 6.484 6.484 0 0 1-2.369-1.453c-.67-.671-1.195-1.546-1.578-2.624-.383-1.094-.574-2.43-.574-4.007 0-1.562.191-2.883.574-3.96.382-1.094.909-1.977 1.578-2.648a6.092 6.092 0 0 1 2.368-1.453A8.63 8.63 0 0 1 21.257 2c1.356 0 2.584.281 3.684.844 1.116.562 2.001 1.468 2.655 2.718.67 1.234 1.004 2.89 1.004 4.968s-.335 3.741-1.004 4.991c-.654 1.25-1.539 2.156-2.655 2.718-1.1.547-2.328.82-3.683.82zm0-5.039c.701 0 1.187-.25 1.459-.75.27-.5.406-1.413.406-2.741 0-1.313-.136-2.219-.407-2.719-.27-.515-.757-.773-1.459-.773-.685 0-1.18.258-1.483.773-.287.516-.43 1.422-.43 2.719 0 1.312.143 2.226.43 2.742.303.5.798.75 1.483.75z" fill="url(#9hqzmmkygd)"/>
<path d="M32.721 12.014V4.745l-2.87.14V2.06h8.97v2.826l-2.943-.141v5.02l.158 1.405-.158.844h-3.157z" fill="url(#bzq8gpt5ve)"/>
<path d="M40.543 12.014v-7.69l-.144-1.407.144-.857H43.7v3.81h3V2.06h3.156v5.286l.144.97v3.698h-3.3V8.443h-3v.984l.143 2.587h-3.3z" fill="url(#4t6arxwa4f)"/>
</g>
<defs>
<linearGradient id="xidihnl5xc" x1="3" y1="2" x2="29.822" y2="35.308" gradientUnits="userSpaceOnUse">
<stop stop-color="#6133B4"/>
<stop offset="1" stop-color="#4F2A93"/>
</linearGradient>
<linearGradient id="9hqzmmkygd" x1="3" y1="2" x2="29.822" y2="35.308" gradientUnits="userSpaceOnUse">
<stop stop-color="#6133B4"/>
<stop offset="1" stop-color="#4F2A93"/>
</linearGradient>
<linearGradient id="bzq8gpt5ve" x1="3" y1="2" x2="29.822" y2="35.308" gradientUnits="userSpaceOnUse">
<stop stop-color="#6133B4"/>
<stop offset="1" stop-color="#4F2A93"/>
</linearGradient>
<linearGradient id="4t6arxwa4f" x1="3" y1="2" x2="29.822" y2="35.308" gradientUnits="userSpaceOnUse">
<stop stop-color="#6133B4"/>
<stop offset="1" stop-color="#4F2A93"/>
</linearGradient>
<filter id="c19w6aye5a" x="53" y="0" width="145.5" height="24" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix values="0 0 0 0 0.101961 0 0 0 0 0.0941176 0 0 0 0 0.113725 0 0 0 0.12 0"/>
<feBlend in2="BackgroundImageFix" result="effect1_dropShadow_45_799"/>
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix values="0 0 0 0 0.101961 0 0 0 0 0.0941176 0 0 0 0 0.113725 0 0 0 0.24 0"/>
<feBlend in2="effect1_dropShadow_45_799" result="effect2_dropShadow_45_799"/>
<feBlend in="SourceGraphic" in2="effect2_dropShadow_45_799" result="shape"/>
</filter>
<filter id="s1alkvv8kb" x="0" y="0" width="53" height="23.059" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix values="0 0 0 0 0.101961 0 0 0 0 0.0941176 0 0 0 0 0.113725 0 0 0 0.12 0"/>
<feBlend in2="BackgroundImageFix" result="effect1_dropShadow_45_799"/>
<feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix values="0 0 0 0 0.101961 0 0 0 0 0.0941176 0 0 0 0 0.113725 0 0 0 0.24 0"/>
<feBlend in2="effect1_dropShadow_45_799" result="effect2_dropShadow_45_799"/>
<feBlend in="SourceGraphic" in2="effect2_dropShadow_45_799" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -0,0 +1,22 @@
<svg width="58" height="48" viewBox="0 0 58 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="m16.853 4.36 7.959-1.453-2.71 7.556-2.708 7.557-5.25-6.103-5.25-6.103 7.959-1.453z" fill="#5DDEAB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.771 1.454 40.731 0l-2.71 7.556-2.709 7.556-5.25-6.102-5.25-6.103 7.96-1.453z" fill="#5DDEAB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m43.272 13.659-7.96 1.453 2.71-7.556L40.73 0l5.25 6.103 5.25 6.102-7.96 1.454z" fill="#38C38D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m27.353 16.566-7.96 1.453 2.71-7.556 2.709-7.556 5.25 6.103 5.25 6.102-7.96 1.454zM11.434 19.473l-7.959 1.453 2.71-7.556 2.708-7.556 5.25 6.103 5.25 6.102-7.959 1.454z" fill="#B0F1D7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m3.475 20.926 28.05 18.662L19.394 18.02 3.475 20.926z" fill="#38C38D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M51.249 12.202 31.525 39.588l3.805-24.48 15.919-2.906z" fill="#B0F1D7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m19.394 18.02 12.131 21.568 3.787-24.476-15.918 2.907z" fill="#5DDEAB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m51.904 26.44-3.832-.897 1.132 3.736 1.132 3.737 2.7-2.84 2.7-2.84-3.832-.896zM44.24 24.647l-3.832-.897 1.132 3.736 1.132 3.736 2.7-2.84 2.7-2.839-3.832-.896z" fill="#87E3E1"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m38.84 30.326 3.832.896-1.132-3.736-1.132-3.736-2.7 2.84-2.7 2.839 3.832.897zM46.504 32.12l3.832.896-1.132-3.736-1.132-3.737-2.7 2.84-2.7 2.84 3.832.896z" fill="#C0FBFA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.168 33.912 58 34.81l-1.132-3.736-1.133-3.736-2.7 2.84-2.7 2.839 3.833.896z" fill="#5EC5C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m58 34.81-14.084 8.395 6.42-10.19L58 34.81z" fill="#C0FBFA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m35 29.427 8.916 13.779-1.252-11.986L35 29.427z" fill="#5EC5C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m50.336 33.016-6.42 10.19-1.244-11.984 7.664 1.794z" fill="#87E3E1"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m16.877 22.666-5.078 1.971 4.262 3.372 4.262 3.37.816-5.341.816-5.343-5.078 1.971zM6.721 26.609l-5.078 1.97 4.262 3.372 4.262 3.371.816-5.342.816-5.343-5.078 1.972z" fill="#7BE3CF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m5.09 37.294 5.077-1.972-4.262-3.371-4.261-3.371-.817 5.342-.816 5.343 5.078-1.971z" fill="#C5F3EA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m15.245 33.351 5.078-1.971-4.262-3.371-4.262-3.371-.816 5.342-.816 5.342 5.078-1.97z" fill="#C5F3EA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m25.4 29.41 5.078-1.972-4.262-3.371-4.261-3.372-.816 5.343-.816 5.342 5.078-1.97z" fill="#41C7AF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.478 27.438 21.117 48l-.794-16.62 10.155-3.942z" fill="#C5F3EA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m0 39.269 21.117 8.73-10.961-12.672L0 39.269z" fill="#41C7AF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.323 31.38 21.117 48l-10.95-12.678 10.156-3.942z" fill="#7BE3CF"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,22 @@
<svg width="518" height="152" viewBox="0 0 518 152" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M144.48 65.487v5.042h-1.772v-5.042h1.772zm1.621 6.671h5.013v1.782h-5.013v-1.782zm-10.027 0h5.013v1.782h-5.013v-1.782zm8.406 3.412v5.041h-1.772V75.57h1.772z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".5"/>
<path opacity=".92" fill-rule="evenodd" clip-rule="evenodd" d="m9.504 29.894 2.707-4.715 1.658.962-2.707 4.715-1.658-.962zm2.066-7.12-4.689-2.722.958-1.667 4.688 2.723-.957 1.667zm9.378 5.445-4.689-2.722.957-1.667 4.69 2.722-.958 1.667zm-6.03-7.755 2.707-4.715 1.658.962-2.707 4.715-1.658-.962z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m60.85 11.508.708-3.662 1.288.251-.708 3.662-1.288-.252zm-.24-5.076-3.642-.712.25-1.295 3.642.712-.25 1.295zm7.283 1.423-3.642-.711.25-1.295 3.642.712-.25 1.294zm-5.627-3.671.708-3.662 1.287.251-.708 3.662-1.287-.251z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".81"/>
<path opacity=".76" fill-rule="evenodd" clip-rule="evenodd" d="m107.034 22.162.493 5.675-1.995.175-.494-5.674 1.996-.176zm2.477 7.349 5.643-.497.175 2.007-5.644.496-.174-2.006zm-11.287.993 5.644-.497.174 2.007-5.643.496-.175-2.006zm9.797 3.008.494 5.675-1.996.175-.493-5.675 1.995-.175z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m16.191 92.492-5.006 1.636-.575-1.78 5.006-1.636.575 1.78zm-6.098 3.792 1.626 5.034-1.77.578-1.626-5.034 1.77-.578zM6.839 86.215l1.627 5.035-1.77.578-1.627-5.034 1.77-.579zm-.66 9.549-5.006 1.635-.576-1.78 5.007-1.635.575 1.78z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".91"/>
<path opacity=".92" fill-rule="evenodd" clip-rule="evenodd" d="m35.176 59.176 5.102-1.97.692 1.814-5.101 1.97-.693-1.814zm6.118-4.264-1.958-5.13 1.803-.696 1.958 5.13-1.803.696zm3.916 10.26-1.958-5.13 1.804-.696 1.958 5.13-1.804.696zm.17-9.935 5.1-1.969.693 1.814-5.101 1.969-.693-1.814z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m95.733 86.583-4.383 2.649-.931-1.559 4.383-2.648.93 1.558zm-4.949 4.93 2.634 4.407-1.55.936-2.633-4.407 1.55-.937zm-5.267-8.816 2.633 4.408-1.55.936-2.633-4.408 1.55-.936zm1.45 9.183-4.384 2.648-.93-1.558 4.382-2.648.931 1.558z" fill="#36205D" style="mix-blend-mode:multiply"/>
<path opacity=".98" fill-rule="evenodd" clip-rule="evenodd" d="m24.804 132.406-2.1-3.015 1.06-.746 2.1 3.014-1.06.747zm-3.747-3.307-2.998 2.111-.742-1.066 2.998-2.111.742 1.066zm5.996-4.222-2.998 2.111-.742-1.066 2.998-2.11.742 1.065zm-6.447 1.5-2.1-3.015 1.06-.746 2.1 3.014-1.06.747z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m60.65 142.295-1.594 3.144-1.105-.567 1.593-3.144 1.105.567zm-1.098 4.678 3.126 1.602-.563 1.112-3.127-1.602.564-1.112zm-6.254-3.204 3.127 1.602-.563 1.112-3.127-1.603.563-1.111zm4.165 4.814-1.593 3.144-1.106-.566 1.593-3.144 1.106.566z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".82"/>
<path opacity=".71" fill-rule="evenodd" clip-rule="evenodd" d="m110.507 140.233 2.321-4.582 1.611.826-2.321 4.581-1.611-.825zm1.599-6.817-4.556-2.335.821-1.62 4.556 2.335-.821 1.62zm9.112 4.669-4.556-2.335.821-1.62 4.556 2.335-.821 1.62zm-6.068-7.015 2.321-4.582 1.611.825-2.321 4.582-1.611-.825z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M373.52 65.487v5.042h1.772v-5.042h-1.772zm-1.621 6.671h-5.013v1.782h5.013v-1.782zm10.027 0h-5.013v1.782h5.013v-1.782zm-8.406 3.412v5.041h1.772V75.57h-1.772z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".5"/>
<path opacity=".92" fill-rule="evenodd" clip-rule="evenodd" d="m508.496 29.894-2.707-4.715-1.658.962 2.707 4.715 1.658-.962zm-2.066-7.12 4.689-2.722-.958-1.667-4.689 2.723.958 1.667zm-9.378 5.445 4.689-2.722-.957-1.667-4.689 2.722.957 1.667zm6.03-7.755-2.707-4.715-1.658.962 2.707 4.715 1.658-.962z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m457.15 11.508-.708-3.662-1.287.251.707 3.662 1.288-.252zm.24-5.076 3.642-.712-.25-1.295-3.642.712.25 1.295zm-7.283 1.423 3.642-.711-.251-1.295-3.641.712.25 1.294zm5.627-3.671-.708-3.662-1.287.251.708 3.662 1.287-.251z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".81"/>
<path opacity=".76" fill-rule="evenodd" clip-rule="evenodd" d="m410.966 22.162-.493 5.675 1.995.175.494-5.674-1.996-.176zm-2.477 7.349-5.643-.497-.175 2.007 5.644.496.174-2.006zm11.287.993-5.644-.497-.174 2.007 5.643.496.175-2.006zm-9.797 3.008-.494 5.675 1.996.175.493-5.675-1.995-.175z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m501.809 92.492 5.006 1.636.575-1.78-5.006-1.636-.575 1.78zm6.098 3.792-1.626 5.034 1.77.578 1.626-5.034-1.77-.578zm3.254-10.069-1.627 5.035 1.77.578 1.627-5.034-1.77-.579zm.66 9.549 5.006 1.635.576-1.78-5.007-1.635-.575 1.78z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".91"/>
<path opacity=".92" fill-rule="evenodd" clip-rule="evenodd" d="m482.824 59.176-5.102-1.97-.692 1.814 5.101 1.97.693-1.814zm-6.118-4.264 1.958-5.13-1.803-.696-1.958 5.13 1.803.696zm-3.916 10.26 1.958-5.13-1.804-.696-1.958 5.13 1.804.696zm-.169-9.935-5.102-1.969-.692 1.814 5.101 1.969.693-1.814z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m422.267 86.583 4.383 2.649.932-1.559-4.384-2.648-.931 1.558zm4.949 4.93-2.634 4.407 1.55.936 2.634-4.407-1.55-.937zm5.267-8.816-2.633 4.408 1.549.936 2.634-4.408-1.55-.936zm-1.449 9.183 4.383 2.648.931-1.558-4.383-2.648-.931 1.558z" fill="#36205D" style="mix-blend-mode:multiply"/>
<path opacity=".98" fill-rule="evenodd" clip-rule="evenodd" d="m493.196 132.406 2.099-3.015-1.06-.746-2.099 3.014 1.06.747zm3.747-3.307 2.998 2.111.742-1.066-2.998-2.111-.742 1.066zm-5.996-4.222 2.998 2.111.742-1.066-2.998-2.11-.742 1.065zm6.447 1.5 2.1-3.015-1.06-.746-2.099 3.014 1.059.747z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m457.351 142.295 1.593 3.144 1.105-.567-1.593-3.144-1.105.567zm1.097 4.678-3.126 1.602.563 1.112 3.127-1.602-.564-1.112zm6.254-3.204-3.127 1.602.563 1.112 3.127-1.603-.563-1.111zm-4.165 4.814 1.593 3.144 1.106-.566-1.593-3.144-1.106.566z" fill="#36205D" style="mix-blend-mode:multiply" opacity=".82"/>
<path opacity=".71" fill-rule="evenodd" clip-rule="evenodd" d="m407.493 140.233-2.321-4.582-1.611.826 2.321 4.581 1.611-.825zm-1.599-6.817 4.556-2.335-.821-1.62-4.556 2.335.821 1.62zm-9.112 4.669 4.556-2.335-.821-1.62-4.556 2.335.821 1.62zm6.068-7.015-2.321-4.582-1.611.825 2.321 4.582 1.611-.825z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,3 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.26512 0L4.84341 3.57829L3.57829 4.84341L0 1.26512L1.26512 0ZM7.15659 3.57829L10.7349 5.33207e-08L12 1.26512L8.42171 4.84341L7.15659 3.57829ZM5.33207e-08 10.7349L3.57829 7.15659L4.84341 8.42171L1.26512 12L5.33207e-08 10.7349ZM8.42171 7.15659L12 10.7349L10.7349 12L7.15659 8.42171L8.42171 7.15659Z" fill="#FFB445"/>
</svg>

After

Width:  |  Height:  |  Size: 469 B

View file

@ -0,0 +1,4 @@
<svg width="138" height="12" viewBox="0 0 138 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="m127.265 0 3.578 3.578-1.265 1.265L126 1.265 127.265 0zm5.892 3.578L136.735 0 138 1.265l-3.578 3.578-1.265-1.265zM126 10.735l3.578-3.578 1.265 1.265L127.265 12 126 10.735zm8.422-3.578L138 10.735 136.735 12l-3.578-3.578 1.265-1.265z" fill="#FFB445"/>
<path d="M114.445 4.555 112.5 1l-1.945 3.555L107.914 6h-3.828l-1.349-.737L101.5 3l-1.237 2.263L98.914 6H0v1h98.914l1.349.737L101.5 10l1.237-2.263L104.086 7h3.828l2.641 1.445L112.5 12l1.945-3.555L118 6.5l-3.555-1.945z" fill="#36205D"/>
</svg>

After

Width:  |  Height:  |  Size: 647 B

View file

@ -0,0 +1,37 @@
<svg width="85" height="32" viewBox="0 0 85 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="m4.93 12.255 2.466-.63-1.983-1.597-.63-2.468-1.595 1.986-2.465.63 1.983 1.597.63 2.468 1.595-1.986zM80.034 7.698l2.465-.63-1.983-1.597-.63-2.468-1.594 1.985-2.466.631 1.983 1.596.63 2.469 1.595-1.986zM42.27 7.427l2.929.487-1.368-2.638.487-2.932-2.635 1.37-2.928-.488 1.367 2.638-.486 2.932 2.634-1.37zM78.215 26.355l2.694 2.064.033-3.396 2.063-2.697-3.393-.034-2.694-2.065-.033 3.397-2.062 2.697 3.392.034zM38.321 28.092l2.092.348-.977-1.885.347-2.094-1.881.978-2.092-.348.977 1.884-.348 2.095 1.882-.978zM12.17 30.035l.916 1.915.981-1.882 1.913-.916-1.88-.982-.915-1.916-.981 1.882-1.913.917 1.88.982z" fill="#fff" fill-opacity=".5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m24.878 12.01 6.73-1.805 2.524 9.433-6.73 1.806-2.524-9.433z" fill="#F9F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m18.148 13.816 6.73-1.805 2.524 9.433-6.73 1.805-2.524-9.433z" fill="#E1E0E3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m23.532 12.372 1.346-.361 2.524 9.433-1.346.36-2.524-9.432z" fill="#6133B4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m24.878 12.01 1.346-.36 2.524 9.433-1.346.36-2.524-9.432z" fill="#9A62FF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m25.696 20.457 1.345-.36.361 1.347-1.346.36-.36-1.347zM23.532 12.372l1.346-.361.36 1.347-1.346.361-.36-1.347z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m18.148 13.816 5.384-1.444.36 1.348-5.383 1.444-.36-1.348zM20.312 21.902l5.384-1.445.36 1.348-5.383 1.444-.36-1.347zM26.224 11.65l5.383-1.445.36 1.348-5.383 1.444-.36-1.347zM28.387 19.735l5.384-1.444.36 1.347-5.383 1.445-.36-1.348z" fill="#BDA8FF" fill-opacity=".3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m27.041 20.096 1.346-.36.361 1.347-1.346.36-.36-1.347zM24.878 12.01l1.346-.36.36 1.347-1.346.361-.36-1.347z" fill="#6133B4"/>
<path clip-rule="evenodd" d="M24.735 4.954c-.335-1.183-1.148-2.301-2.285-2.51-1.138-.21-1.923.616-1.7 1.476.221.86 1 1.122 3.498 2.183.71.302.823.034.487-1.149z" stroke="#6133B4" stroke-width="1.5"/>
<path clip-rule="evenodd" d="M27.66 5.365c.648-1.044 1.737-1.895 2.888-1.782 1.151.112 1.678 1.123 1.228 1.889-.45.765-1.27.802-3.964 1.133-.765.094-.8-.195-.152-1.24z" stroke="#9A62FF" stroke-width="1.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.319 4.294c-2.24-.315-1.259 2.44-.36 2.566.898.126 2.6-2.25.36-2.566z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m26.016 6.454 8.279 1.165-.582 4.145-8.279-1.165.582-4.145z" fill="#F9F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m17.737 5.29 8.279 1.164-.582 4.145-8.279-1.165.582-4.145z" fill="#E1E0E3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m23.256 6.066 5.52.777-.582 4.144-5.52-.776.582-4.145z" fill="#9A62FF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m23.256 6.066 2.76.388-.582 4.145-2.76-.388.582-4.145z" fill="#6133B4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m26.016 6.454 2.76.389-.195 1.381-2.76-.388.195-1.382z" fill="#6133B4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m23.256 6.066 2.76.388-.194 1.382-2.76-.388.194-1.382z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m17.349 8.053 5.52.776-.195 1.382-5.519-.777.194-1.381zM28.388 9.606l5.519.776-.194 1.382-5.52-.777.195-1.381z" fill="#BDA8FF" fill-opacity=".3"/>
<path clip-rule="evenodd" d="M56.55 9.16c-.624-1.413-1.83-2.662-3.282-2.724-1.452-.062-2.285 1.104-1.858 2.135.426 1.031 1.441 1.22 4.734 2.104.935.25 1.03-.102.406-1.515z" stroke="#6133B4" stroke-width="1.5"/>
<path clip-rule="evenodd" d="M60.26 9.16c.624-1.413 1.83-2.662 3.283-2.724 1.451-.062 2.284 1.104 1.857 2.135-.426 1.031-1.44 1.22-4.734 2.104-.935.25-1.03-.102-.406-1.515z" stroke="#9A62FF" stroke-width="1.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.405 8.061c-2.842 0-1.14 3.256 0 3.256s2.842-3.256 0-3.256z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.405 10.802H68.91v5.259H58.405v-5.259z" fill="#F9F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.901 10.802h10.504v5.259H47.901v-5.259z" fill="#E1E0E3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.904 10.802h7.002v5.259h-7.002v-5.259z" fill="#9A62FF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.904 10.802h3.501v5.259h-3.501v-5.259zM58.405 10.802h3.501v1.753h-3.5v-1.753z" fill="#6133B4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.904 10.802h3.501v1.753h-3.501v-1.753z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.405 16.06h8.753v12.27h-8.753V16.06z" fill="#F9F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.652 16.06h8.753v12.27h-8.753V16.06z" fill="#E1E0E3"/>
<path fill="#6133B4" d="M56.654 16.061h1.751v12.27h-1.751z"/>
<path fill="#9A62FF" d="M58.405 16.061h1.751v12.27h-1.751z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.654 26.578h1.751v1.753h-1.75v-1.753zM56.654 16.06h1.751v1.754h-1.75V16.06z" fill="#4F2A93"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.652 16.06h7.002v1.754h-7.002V16.06z" fill="#BDA8FF" fill-opacity=".3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.901 14.308h7.003v1.753H47.9v-1.753zM49.652 26.578h7.002v1.753h-7.002v-1.753zM60.156 16.06h7.002v1.754h-7.002V16.06z" fill="#BDA8FF" fill-opacity=".3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M61.906 14.308h7.003v1.753h-7.003v-1.753zM60.156 26.578h7.002v1.753h-7.002v-1.753z" fill="#BDA8FF" fill-opacity=".3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.405 26.578h1.75v1.753h-1.75v-1.753zM58.405 16.06h1.75v1.754h-1.75V16.06z" fill="#6133B4"/>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -0,0 +1,9 @@
<svg width="68" height="68" viewBox="0 0 68 68" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path fill="url(#sxizdfpdya)" d="M0 0h68v68H0z"/>
<defs>
<pattern id="sxizdfpdya" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#pomapjzcdb" transform="scale(.0147)"/>
</pattern>
<image id="pomapjzcdb" width="68" height="68" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABECAYAAAA4E5OyAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5gwJFx8lKwafmAAABjRJREFUeNrtm39MVWUYx78IV5BfF3Qg8kNppNIoyhKWZmUBlpRNpC3Uac7EUUGrscxM+AOHia1foKmDHOHItkbhLGnpzGVBimtlozmVTeByCRDhwgXll/THc17de3zvuedernDd3uefc895f5/zuc/3ed57DyBNmjRpzpuH+sLvR8fGAODR0nS+YmAgAMCQNQMAMJKwkys//+tUAMDQDTrPzNgIACj58iAAoLH5LADgx/Kzwols/zyba3+jny9n7WNmJ3LXffzoONUHTrVPyvDg7sEUyQRvXrYKrvX2AgCmK2RUxL9OT35oDzWs38bVf3XlNe78sfindE3gam/TpCw87fwPwuuSEL2EXMg6DgBY/HW6+E4OdQAA4lZ4CYnotVgBAEvShuiIRwAAXxV/y9Xbve+jSSHj2SfIl1RLQpwkRO1LmDEimJV+Qyqy+709wvZx/3wBAFhk3QQAONlYqKoxpGuijLDfvnduodmnTwIAUrM2ataThDhKSEp9FH2o38/5iopCuuO1/drqceAy+YiSAPI5m+rE9UvLcjTnweKfJWk7nVtppb5qkhB7hLAI01Y8wdSjyzLM9aCOJ9qrI+jDZTqkNlwBAByLixZOpMtk4uIeZrVrqkgVhtYL4x9m830iXXJDJCH2CGGqwXKB4gKxevw9eBgA0HDwIgAg94UdAICZL1JSkd5H5w2VVB4ZHg8A6IkkEoKMREKPhVTM/AHFPdNLxHFP6TnKdTIX8vOp7a8AABxWcpnVwZ9pLvjSlRYAwNzoKEmIS1TGlnqc2H1aWO5n8qSIFGsAAKdazVx53pR5pDog1SkMuF8z7rnD1yi+a4bRICy39vUBAPwDAhSVe5uy3Scp283+iUjE8ymSEJcQolaPVxZkkldPJRKiYmZqtl+3iy9vaWwk1agcJTUKJ18S9TI5gSu59ASjP07R9F0PW1YLV1BlzSMfhh1SZSaEkHe25ZMK1LQBANpa2wEAyTELxjUw64dZFOYJs21bxkjxcdAL1qzdCgBYXrlLEuJSlWFPdGlmuOIL6Lz/L4pITeZmIicnnH/SVV5cOfM9rJ9TpUyF5rl0YZXtebpISTr6viTEpXHIgy9NAwD4+voCAA4da+YIamn05OqbzKNc+bqMhwAAAwMDCiHudUMkIc4Swr7zakvf7698omNoaKiKqA6uXG+/kpB7jRCmBsEhscoVyikWrpoFAPAYJZ8wcqvjQQBAeKgRADDmST7n3HdXlRoGpV+KXFcVxWiO391F+zCY7dxC9baXhOglxPIL/UhqNlOEunKfNwAgInKYU5kLJ9Sbqjds9Ej15iYZOJVhVlfM9k3oERqf8ZE+xK0JYZElix96/iQ1iFRtXcYm+3E+5OaUafwdv3md8yEWi0WoMrcjVjKjiyNXSYirCWE5hzqrPVPA5ybZR4xc+d6VlzlfkKbakj20voMrj00f4fZNWI4k4xB3J4R9p5dmQjM3OX7AU3Of4+cy7XI/Ve7Dxk3eEiMJuSciVZbd3jZSjfkgdVi2KUyzvb1ydf+Tnf1KQvQSYisLTcyYodlh8ub7uPjDXnt1xGpr3M7OrnEtVG97SYg9QrYVPQcAWDywXZXdQslF9HXMIlZbpDBrrTOofAhlv7W+bwjr118sI082SL/wfZpfJ33IhBJiDAxWvtx0iFg0zMcR9bwqtGFM1cOAQ0NGLBLXvzUPdRbe2y1Vxi1UpiFsr/LpE+76rIQR7jzI3yD0Hepsl1mPdVilMrbGhSY51zt7JSFuEameKZjOZbfrKnxdOoGqLCuX/U62SUIcJaS8ZQN3fmItX74hqpwj6M1q/h9BJataOQLKW14TD9Sib8JMZT7MrZOEuAUhDhO0AuMiwJb919k0LjIu/UH7MMuXSUIcsjveuYt7IH7MHSdq7FkOAAgJpm3/t/Lpf6v23rlj/7Pt7DYJ28t37hwlJDHh8TEA6LcOCJ8QM3an7e5DKE/mDrUIquHO/fzF8Y2X6WnhdTb+lqJsISHs/R1b47P2R/7NkYQ4pDJhIXPoCXp3c/sOIR7OvW1gi6QRPyJimnegMLtlqhI+JwgAYG7qEZL37uatuubB+rltVqkyExKH3G1TkzHefhixhkBJiDRp0qTddfsfGCIUXNZsU4gAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><rect width="16" height="16" fill="none"/><g id="b"><g id="c"><g id="d"><polygon id="e" points="12.2 2 14 3.8 9.8 8 14 12.2 12.2 14 8 9.8 3.8 14 2 12.2 6.2 8 2 3.8 3.8 2 8 6.2 12.2 2"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 308 B

View file

@ -0,0 +1,5 @@
<svg width="48" height="20" viewBox="0 0 48 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 10.334c0-3.418-1.653-6.115-4.813-6.115-3.174 0-5.094 2.697-5.094 6.088 0 4.019 2.267 6.048 5.52 6.048 1.587 0 2.787-.36 3.694-.868v-2.67c-.907.454-1.947.735-3.267.735-1.293 0-2.44-.454-2.587-2.03h6.52c0-.173.027-.868.027-1.188zm-6.587-1.268c0-1.51.92-2.137 1.76-2.137.813 0 1.68.628 1.68 2.136h-3.44zM32.947 4.22c-1.307 0-2.147.613-2.614 1.04l-.173-.827h-2.933V20l3.333-.707.013-3.779c.48.347 1.187.841 2.36.841 2.387 0 4.56-1.922 4.56-6.155-.013-3.871-2.213-5.98-4.546-5.98zm-.8 9.198c-.787 0-1.254-.28-1.574-.627l-.013-4.954c.347-.387.827-.654 1.587-.654 1.213 0 2.053 1.362 2.053 3.11 0 1.79-.827 3.125-2.053 3.125zM22.64 3.431l3.346-.72V0L22.64.708V3.43z" fill="#635BFF"/>
<path fill="#635BFF" d="M22.64 4.446h3.347v11.682H22.64z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m19.053 5.434-.213-.988h-2.88v11.682h3.333V8.211c.787-1.028 2.12-.841 2.534-.694V4.446c-.427-.16-1.987-.454-2.774.988zM12.387 1.549l-3.254.694-.013 10.694c0 1.976 1.48 3.431 3.453 3.431 1.094 0 1.894-.2 2.334-.44v-2.71c-.427.173-2.534.787-2.534-1.189V7.29h2.534V4.447h-2.534l.014-2.897zM3.373 7.837c0-.52.427-.72 1.134-.72 1.013 0 2.293.306 3.306.854V4.833a8.783 8.783 0 0 0-3.306-.614C1.8 4.22 0 5.634 0 7.997c0 3.685 5.067 3.098 5.067 4.687 0 .614-.534.814-1.28.814-1.107 0-2.52-.454-3.64-1.068v3.178a9.233 9.233 0 0 0 3.64.76c2.773 0 4.68-1.375 4.68-3.764-.014-3.98-5.094-3.271-5.094-4.767z" fill="#635BFF"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -43,42 +43,55 @@
</label>
</div>
<div>
Months until renewal:
Perk offset months:
<strong>{{ hero.purchased.plan.consecutive.offset }}</strong>
</div>
<div>
Next Mystic Hourglass:
<strong>{{ nextHourglassDate }}</strong>
</div>
<div class="form-inline">
<label>
Mystic Hourglasses:
<input
v-model="hero.purchased.plan.consecutive.trinkets"
class="form-control"
type="number"
min="0"
step="1"
>
</label>
</div>
<div>
Gem cap:
<strong>{{ hero.purchased.plan.consecutive.gemCapExtra + 25 }}</strong>
</div>
<div class="form-inline">
<label>
Gems bought this month:
<input
v-model="hero.purchased.plan.gemsBought"
class="form-control"
type="number"
min="0"
:max="hero.purchased.plan.consecutive.gemCapExtra + 25"
step="1"
>
</label>
</div>
<div>
Next Mystic Hourglass:
<strong>{{ nextHourglassDate }}</strong>
</div>
<div class="form-inline">
<label>
Mystic Hourglasses:
<input
v-model="hero.purchased.plan.consecutive.trinkets"
class="form-control"
type="number"
min="0"
step="1"
>
</label>
</div>
<div class="form-inline">
<label>
Gem cap increase:
<input
v-model="hero.purchased.plan.consecutive.gemCapExtra"
class="form-control"
type="number"
min="0"
max="25"
step="5"
>
</label>
</div>
<div>
Total Gem cap:
<strong>{{ Number(hero.purchased.plan.consecutive.gemCapExtra) + 25 }}</strong>
</div>
<div class="form-inline">
<label>
Gems bought this month:
<input
v-model="hero.purchased.plan.gemsBought"
class="form-control"
type="number"
min="0"
:max="hero.purchased.plan.consecutive.gemCapExtra + 25"
step="1"
>
</label>
</div>
<div
v-if="hero.purchased.plan.extraMonths > 0"
>
@ -139,13 +152,6 @@ export default {
return currentPlanContext.nextHourglassDate.format('MMMM');
},
},
watch: {
'hero.purchased.plan.consecutive.count' () { // eslint-disable-line object-shorthand
this.hero.purchased.plan.consecutive.gemCapExtra = Math.min(
Math.floor(this.hero.purchased.plan.consecutive.count / 3) * 5, 25,
);
},
},
methods: {
dateFormat (date) {
return moment(date).format('YYYY/MM/DD');

View file

@ -224,7 +224,7 @@
></div>
</a><a
class="social-circle"
href="https://www.tumblr.com/Habitica"
href="http://blog.habitrpg.com/"
target="_blank"
>
<div
@ -578,6 +578,7 @@ h3 {
.text{
display: inline-block;
vertical-align: bottom;
text-overflow: hidden;
}
}

View file

@ -198,52 +198,79 @@
</div>
</div>
<div
v-if="!filterBackgrounds"
class="row text-center title-row"
>
<strong>{{ backgroundShopSets[1].text }}</strong>
</div>
<div
v-if="!filterBackgrounds"
class="row title-row"
v-if="!filterBackgrounds && user.purchased.background.birthday_bash"
>
<div
v-for="bg in backgroundShopSets[1].items"
:key="bg.key"
class="col-4 text-center customize-option background-button"
:popover-title="bg.text"
:popover="bg.notes"
popover-trigger="mouseenter"
@click="!user.purchased.background[bg.key]
? backgroundSelected(bg) : unlock('background.' + bg.key)"
class="row text-center title-row"
>
<strong>{{ backgroundShopSets[2].text }}</strong>
</div>
<div
class="row title-row"
>
<div
class="background"
:class="[`background_${bg.key}`, backgroundLockedStatus(bg.key)]"
></div>
<i
v-if="!user.purchased.background[bg.key]"
class="glyphicon glyphicon-lock"
></i>
<div
v-if="!user.purchased.background[bg.key]"
class="purchase-background single d-flex align-items-center justify-content-center"
v-for="bg in backgroundShopSets[2].items"
:key="bg.key"
class="col-4 text-center customize-option background-button"
:popover-title="bg.text"
:popover="bg.notes"
popover-trigger="mouseenter"
@click="unlock('background.' + bg.key)"
>
<div
class="svg-icon hourglass"
v-html="icons.hourglass"
class="background"
:class="`background_${bg.key}`"
></div>
<span class="price">1</span>
</div>
<span
v-if="!user.purchased.background[bg.key]"
class="badge-top"
@click.stop.prevent="togglePinned(bg)"
</div>
</div>
<div v-if="!filterBackgrounds">
<div
class="row text-center title-row"
>
<strong>{{ backgroundShopSets[1].text }}</strong>
</div>
<div
class="row title-row"
>
<div
v-for="bg in backgroundShopSets[1].items"
:key="bg.key"
class="col-4 text-center customize-option background-button"
:popover-title="bg.text"
:popover="bg.notes"
popover-trigger="mouseenter"
@click="!user.purchased.background[bg.key]
? backgroundSelected(bg) : unlock('background.' + bg.key)"
>
<pin-badge
:pinned="isBackgroundPinned(bg)"
/>
</span>
<div
class="background"
:class="[`background_${bg.key}`, backgroundLockedStatus(bg.key)]"
></div>
<i
v-if="!user.purchased.background[bg.key]"
class="glyphicon glyphicon-lock"
></i>
<div
v-if="!user.purchased.background[bg.key]"
class="purchase-background single d-flex align-items-center justify-content-center"
>
<div
class="svg-icon hourglass"
v-html="icons.hourglass"
></div>
<span class="price">1</span>
</div>
<span
v-if="!user.purchased.background[bg.key]"
class="badge-top"
@click.stop.prevent="togglePinned(bg)"
>
<pin-badge
:pinned="isBackgroundPinned(bg)"
/>
</span>
</div>
</div>
</div>
<sub-menu

View file

@ -0,0 +1,119 @@
<template>
<base-banner
banner-id="birthday-banner"
class="birthday-banner"
:show="showBirthdayBanner"
height="3rem"
:can-close="false"
>
<div
slot="content"
:aria-label="$t('celebrateBirthday')"
class="content d-flex justify-content-around align-items-center ml-auto mr-auto"
@click="showBirthdayModal"
>
<div
v-once
class="svg-icon svg-gifts left-gift"
v-html="icons.giftsBirthday"
>
</div>
<div
v-once
class="svg-icon svg-ten-birthday"
v-html="icons.tenBirthday"
>
</div>
<div
v-once
class="announce-text"
v-html="$t('celebrateBirthday')"
>
</div>
<div
v-once
class="svg-icon svg-gifts right-gift"
v-html="icons.giftsBirthday"
>
</div>
</div>
</base-banner>
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
.announce-text {
color: $purple-50;
}
.birthday-banner {
width: 100%;
min-height: 48px;
padding: 8px;
background-image: linear-gradient(90deg,
rgba(255,190,93,0) 0%,
rgba(255,190,93,1) 25%,
rgba(255,190,93,1) 75%,
rgba(255,190,93,0) 100%),
url('~@/assets/images/glitter.png');
cursor: pointer;
}
.left-gift {
margin: auto;
}
.right-gift {
margin: auto auto auto 8px;
filter: flipH;
transform: scaleX(-1);
}
.svg-gifts {
width: 85px;
}
.svg-ten-birthday {
width: 192.5px;
margin-left: 8px;
margin-right: 8.5px;
}
</style>
<script>
import find from 'lodash/find';
import { mapState } from '@/libs/store';
import BaseBanner from './base';
import giftsBirthday from '@/assets/svg/gifts-birthday.svg';
import tenBirthday from '@/assets/svg/10th-birthday-linear.svg';
export default {
components: {
BaseBanner,
},
data () {
return {
icons: Object.freeze({
giftsBirthday,
tenBirthday,
}),
};
},
computed: {
...mapState({
currentEventList: 'worldState.data.currentEventList',
}),
showBirthdayBanner () {
return Boolean(find(this.currentEventList, event => Boolean(event.event === 'birthday10')));
},
},
methods: {
showBirthdayModal () {
this.$root.$emit('bv::show::modal', 'birthday-modal');
},
},
};
</script>

View file

@ -0,0 +1,58 @@
<template>
<base-notification
:can-remove="canRemove"
:has-icon="true"
:notification="notification"
:read-after-click="true"
@click="action"
>
<div
slot="content"
>
<strong> {{ notification.data.title }} </strong>
<span> {{ notification.data.text }} </span>
</div>
<div
slot="icon"
class="mt-3"
:class="notification.data.icon"
></div>
</base-notification>
</template>
<script>
import BaseNotification from './base';
export default {
components: {
BaseNotification,
},
props: {
notification: {
type: Object,
default (data) {
return data;
},
},
canRemove: {
type: Boolean,
default: true,
},
},
methods: {
action () {
if (!this.notification || !this.notification.data) {
return;
}
if (this.notification.data.destination === 'backgrounds') {
this.$store.state.avatarEditorOptions.editingUser = true;
this.$store.state.avatarEditorOptions.startingPage = 'backgrounds';
this.$store.state.avatarEditorOptions.subpage = '2023';
this.$root.$emit('bv::show::modal', 'avatar-modal');
} else {
this.$router.push({ name: this.notification.data.destination || 'items' });
}
},
},
};
</script>

View file

@ -123,23 +123,24 @@ import successImage from '@/assets/svg/success.svg';
import starBadge from '@/assets/svg/star-badge.svg';
// Notifications
import NEW_STUFF from './notifications/newStuff';
import GROUP_TASK_NEEDS_WORK from './notifications/groupTaskNeedsWork';
import GUILD_INVITATION from './notifications/guildInvitation';
import PARTY_INVITATION from './notifications/partyInvitation';
import CARD_RECEIVED from './notifications/cardReceived';
import CHALLENGE_INVITATION from './notifications/challengeInvitation';
import QUEST_INVITATION from './notifications/questInvitation';
import GIFT_ONE_GET_ONE from './notifications/g1g1';
import GROUP_TASK_ASSIGNED from './notifications/groupTaskAssigned';
import GROUP_TASK_CLAIMED from './notifications/groupTaskClaimed';
import UNALLOCATED_STATS_POINTS from './notifications/unallocatedStatsPoints';
import NEW_MYSTERY_ITEMS from './notifications/newMysteryItems';
import CARD_RECEIVED from './notifications/cardReceived';
import NEW_INBOX_MESSAGE from './notifications/newPrivateMessage';
import GROUP_TASK_NEEDS_WORK from './notifications/groupTaskNeedsWork';
import GUILD_INVITATION from './notifications/guildInvitation';
import ITEM_RECEIVED from './notifications/itemReceived';
import NEW_CHAT_MESSAGE from './notifications/newChatMessage';
import WORLD_BOSS from './notifications/worldBoss';
import VERIFY_USERNAME from './notifications/verifyUsername';
import NEW_INBOX_MESSAGE from './notifications/newPrivateMessage';
import NEW_MYSTERY_ITEMS from './notifications/newMysteryItems';
import NEW_STUFF from './notifications/newStuff';
import ONBOARDING_COMPLETE from './notifications/onboardingComplete';
import GIFT_ONE_GET_ONE from './notifications/g1g1';
import PARTY_INVITATION from './notifications/partyInvitation';
import QUEST_INVITATION from './notifications/questInvitation';
import UNALLOCATED_STATS_POINTS from './notifications/unallocatedStatsPoints';
import VERIFY_USERNAME from './notifications/verifyUsername';
import WORLD_BOSS from './notifications/worldBoss';
import OnboardingGuide from './onboardingGuide';
export default {
@ -147,24 +148,25 @@ export default {
MenuDropdown,
MessageCount,
// One component for each type
NEW_STUFF,
GROUP_TASK_NEEDS_WORK,
GUILD_INVITATION,
PARTY_INVITATION,
CARD_RECEIVED,
CHALLENGE_INVITATION,
QUEST_INVITATION,
GIFT_ONE_GET_ONE,
GROUP_TASK_ASSIGNED,
GROUP_TASK_CLAIMED,
UNALLOCATED_STATS_POINTS,
NEW_MYSTERY_ITEMS,
CARD_RECEIVED,
NEW_INBOX_MESSAGE,
GROUP_TASK_NEEDS_WORK,
GUILD_INVITATION,
ITEM_RECEIVED,
NEW_CHAT_MESSAGE,
WorldBoss: WORLD_BOSS,
VERIFY_USERNAME,
OnboardingGuide,
NEW_INBOX_MESSAGE,
NEW_MYSTERY_ITEMS,
NEW_STUFF,
ONBOARDING_COMPLETE,
GIFT_ONE_GET_ONE,
PARTY_INVITATION,
QUEST_INVITATION,
UNALLOCATED_STATS_POINTS,
VERIFY_USERNAME,
WorldBoss: WORLD_BOSS,
OnboardingGuide,
},
data () {
return {
@ -185,6 +187,7 @@ export default {
// NOTE: Those not listed here won't be shown in the notification panel!
handledNotifications: [
'NEW_STUFF',
'ITEM_RECEIVED',
'GIFT_ONE_GET_ONE',
'GROUP_TASK_NEEDS_WORK',
'GUILD_INVITATION',

View file

@ -0,0 +1,877 @@
<template>
<b-modal
id="birthday-modal"
:hide-header="true"
:hide-footer="true"
>
<div class="modal-content">
<div
class="modal-close"
@click="close()"
>
<div
class="svg-icon svg-close"
v-html="icons.close"
>
</div>
</div>
<div
class="svg-confetti svg-icon"
v-html="icons.confetti"
>
</div>
<div>
<img
src="~@/assets/images/10-birthday.png"
class="ten-birthday"
>
</div>
<div class="limited-wrapper">
<div
class="svg-gifts svg-icon"
v-html="icons.gifts"
>
</div>
<div class="limited-event">
{{ $t('limitedEvent') }}
</div>
<div class="dates">
{{ $t('anniversaryLimitedDates') }}
</div>
<div
class="svg-gifts-flip svg-icon"
v-html="icons.gifts"
>
</div>
</div>
<div class="celebrate d-flex justify-content-center">
{{ $t('celebrateAnniversary') }}
</div>
<h2 class="d-flex justify-content-center">
<span
class="left-divider"
v-html="icons.divider"
></span>
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
{{ $t('jubilantGryphatricePromo') }}
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
<span
class="right-divider"
></span>
</h2>
<!-- gryphatrice info -->
<div class="d-flex">
<div class="jubilant-gryphatrice d-flex mr-auto">
<img
src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Gryphatrice-Jubilant-Large.gif"
width="156px"
height="144px"
alt="a pink, purple, and green gryphatrice pet winks at you adorably"
>
</div>
<div class="align-items-center">
<div class="limited-edition mr-auto">
{{ $t('limitedEdition') }}
</div>
<div class="gryphatrice-text">
{{ $t('anniversaryGryphatriceText') }}
</div>
<div
class="gryphatrice-price"
v-html="$t('anniversaryGryphatricePrice')"
>
</div>
</div>
</div>
<!-- beginning of payments -->
<!-- buy with money OR gems -->
<div
v-if="!ownGryphatrice && !gryphBought"
>
<div
v-if="selectedPage !== 'payment-buttons'"
id="initial-buttons"
class="d-flex justify-content-center"
>
<button
class="btn btn-secondary buy-now-left"
:class="{active: selectedPage === 'payment-buttons'}"
@click="selectedPage = 'payment-buttons'"
>
{{ $t('buyNowMoneyButton') }}
</button>
<button
class="btn btn-secondary buy-now-right"
@click="buyGryphatriceGems()"
>
{{ $t('buyNowGemsButton') }}
</button>
</div>
<!-- buy with money -->
<div
v-else-if="selectedPage === 'payment-buttons'"
id="payment-buttons"
class="d-flex flex-column"
>
<button
class="btn btn-secondary d-flex stripe"
@click="redirectToStripe({ sku: 'price_0MPZ6iZCD0RifGXlLah2furv' })"
>
<span
class="svg-stripe"
v-html="icons.stripe"
>
</span>
</button>
<button
class="btn btn-secondary d-flex paypal"
@click="openPaypal({
url: paypalCheckoutLink, type: 'sku', sku: 'Pet-Gryphatrice-Jubilant'
})"
>
<span
class="svg-paypal"
v-html="icons.paypal"
>
</span>
</button>
<amazon-button
:disabled="disabled"
:amazon-data="amazonData"
class="btn btn-secondary d-flex amazon"
v-html="icons.amazon"
/>
<div
class="pay-with-gems"
@click="selectedPage = 'initial-buttons'"
>
{{ $t('wantToPayWithGemsText') }}
</div>
</div>
</div>
<!-- Own the gryphatrice -->
<div
v-else
class="d-flex"
>
<button
class="own-gryphatrice-button"
@click="closeAndRedirect('/inventory/stable')"
v-html="$t('ownJubilantGryphatrice')"
>
</button>
</div>
<!-- end of payments -->
<h2 class="d-flex justify-content-center">
<span
class="left-divider"
v-html="icons.divider"
></span>
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
{{ $t('plentyOfPotions') }}
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
<span
class="right-divider"
></span>
</h2>
<div class="plenty-of-potions d-flex">
{{ $t('plentyOfPotionsText') }}
</div>
<div class="potions">
<div class="pot-1">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Porcelain.png">
</div>
<div class="pot-2">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Vampire.png">
</div>
<div class="pot-3">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Aquatic.png">
</div>
<div class="pot-4">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_StainedGlass.png">
</div>
<div class="pot-5">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Celestial.png">
</div>
<div class="pot-6">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Glow.png">
</div>
<div class="pot-7">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_AutumnLeaf.png">
</div>
<div class="pot-8">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_SandSculpture.png">
</div>
<div class="pot-9">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Peppermint.png">
</div>
<div class="pot-10">
<img src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Shimmer.png">
</div>
</div>
<button
class="btn btn-secondary d-flex justify-content-center visit-the-market"
@click="closeAndRedirect('/shops/market')"
>
{{ $t('visitTheMarketButton') }}
</button>
<h2 class="d-flex justify-content-center">
<span
class="left-divider"
v-html="icons.divider"
></span>
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
{{ $t('fourForFree') }}
<span
class="svg-cross"
v-html="icons.cross"
>
</span>
<span
class="right-divider"
></span>
</h2>
<div class="four-for-free">
{{ $t('fourForFreeText') }}
</div>
<div class="four-grid d-flex justify-content-center">
<div class="day-one-a">
<div class="day-text">
{{ $t('dayOne') }}
</div>
<div class="gift d-flex justify-content-center align-items-middle">
<img
src="~@/assets/images/robes.webp"
class="m-auto"
width="40px"
height="66px"
>
</div>
<div class="description">
{{ $t('partyRobes') }}
</div>
</div>
<div class="day-one-b">
<div class="day-text">
{{ $t('dayOne') }}
</div>
<div class="gift d-flex justify-content-center align-items-middle">
<div
class="svg-gem svg-icon m-auto"
v-html="icons.birthdayGems"
>
</div>
</div>
<div class="description">
{{ $t('twentyGems') }}
</div>
</div>
<div class="day-five">
<div class="day-text">
{{ $t('dayFive') }}
</div>
<div class="gift d-flex justify-content-center align-items-middle">
<img
src="~@/assets/images/habitica-hero-goober.webp"
class="m-auto"
><!-- Birthday Set -->
</div>
<div class="description">
{{ $t('birthdaySet') }}
</div>
</div>
<div class="day-ten">
<div class="day-text">
{{ $t('dayTen') }}
</div>
<div class="gift d-flex justify-content-center align-items-middle">
<div
class="svg-background svg-icon m-auto"
v-html="icons.birthdayBackground"
>
</div>
</div>
<div class="description">
{{ $t('background') }}
</div>
</div>
</div>
</div>
<div class="modal-bottom">
<div class="limitations d-flex justify-content-center">
{{ $t('limitations') }}
</div>
<div class="fine-print">
{{ $t('anniversaryLimitations') }}
</div>
</div>
</b-modal>
</template>
<style lang="scss">
#birthday-modal {
.modal-body {
padding: 0px;
border: 0px;
}
.modal-content {
border-radius: 14px;
border: 0px;
}
.modal-footer {
border-radius: 14px;
border: 0px;
}
.amazon {
margin-bottom: 16px;
svg {
width: 84px;
position: absolute;
}
.amazonpay-button-inner-image {
opacity: 0;
width: 100%;
}
}
}
</style>
<style scoped lang="scss">
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/mixins.scss';
#birthday-modal {
h2 {
font-size: 1.25rem;
font-weight: bold;
line-height: 1.4;
color: $white;
column-gap: 0.5rem;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
align-content: center;
}
.modal-body{
box-shadow: 0 14px 28px 0 rgba(26, 24, 29, 0.24), 0 10px 10px 0 rgba(26, 24, 29, 0.28);
}
.modal-content {
width: 566px;
padding: 32px 24px 24px;
background: linear-gradient(158deg,#6133b4,#4f2a93);
border-top-left-radius: 12px;
border-top-right-radius: 12px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.modal-bottom {
width: 566px;
background-color: $purple-50;
color: $purple-500;
line-height: 1.33;
border-top: 0px;
padding: 16px 40px 28px 40px;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
}
.limitations {
color: $white;
font-weight: bold;
line-height: 1.71;
margin-top: 8px;
justify-content: center;
}
.fine-print {
font-size: 0.75rem;
color: $purple-500;
line-height: 1.33;
margin-top: 8px;
text-align: center;
}
.ten-birthday {
position: relative;
width: 268px;
height: 244px;
margin: 0 125px 16px;
}
.limited-event {
font-size: 0.75rem;
font-weight: bold;
text-transform: uppercase;
text-align: center;
justify-content: center;
letter-spacing: 2.4px;
margin-top: -8px;
color: $yellow-50;
}
.dates {
font-size: 0.875rem;
font-weight: bold;
line-height: 1.71;
text-align: center;
justify-content: center;
color: $white;
}
.celebrate {
font-size: 1.25rem;
font-weight: bold;
line-height: 1.4;
margin: 16px 16px 24px 16px;
text-align: center;
color: $yellow-50;
}
.jubilant-gryphatrice {
height: 176px;
width: 204px;
border-radius: 12px;
background-color: $purple-50;
align-items: center;
justify-content: center;
margin-right: 24px;
margin-left: 4px;
color: $white;
}
.limited-wrapper {
margin-top: -36px;
margin-bottom: -36px;
}
.limited-edition, .gryphatrice-text, .gryphatrice-price {
max-width: 274px;
}
.limited-edition {
font-size: 0.75rem;
font-weight: bold;
text-transform: uppercase;
line-height:1.33;
letter-spacing:2.4px;
padding-top: 18px;
margin-left: 24px;
margin-bottom: 8px;
color: $yellow-50;
}
.gryphatrice-text, .gryphatrice-price {
font-size: 0.875rem;
line-height: 1.71;
margin-left: 24px;
margin-right: 4px;
color: $white;
}
.gryphatrice-price {
padding-top: 16px;
margin-left: 24px;
}
.buy-now-left {
width: 243px;
margin: 24px 8px 24px 0px;
border-radius: 4px;
box-shadow: 0 1px 3px 0 rgba(26, 24, 29, 0.12), 0 1px 2px 0 rgba(26, 24, 29, 0.24);
}
.buy-now-right {
width: 243px;
margin: 24px 0px 24px 8px;
border-radius: 4px;
box-shadow: 0 1px 3px 0 rgba(26, 24, 29, 0.12), 0 1px 2px 0 rgba(26, 24, 29, 0.24);
}
.stripe {
margin-top: 24px;
margin-bottom: 8px;
padding-bottom: 10px;
}
.paypal {
margin-bottom: 8px;
padding-bottom: 10px;
}
.stripe, .paypal, .amazon {
width: 506px;
height: 32px;
margin-left: 4px;
margin-right: 4px;
border-radius: 4px;
flex-direction: row;
justify-content: center;
align-items: center;
cursor: pointer;
}
.pay-with-gems {
color: $white;
text-align: center;
margin-bottom: 24px;
cursor: pointer;
}
.pay-with-gems:hover {
text-decoration: underline;
cursor: pointer;
}
.own-gryphatrice-button {
width: 506px;
height: 32px;
margin: 24px 4px;
border-radius: 4px;
justify-content: center;
align-items: center;
border: $green-100;
background-color: $green-100;
color: $green-1;
cursor: pointer;
}
.plenty-of-potions {
font-size: 0.875rem;
line-height: 1.71;
margin: 0 8px 24px;
text-align: center;
color: $white;
}
.potions {
display: grid;
grid-template-columns: 5;
grid-template-rows: 2;
gap: 24px 24px;
justify-content: center;
.pot-1, .pot-2, .pot-3, .pot-4, .pot-5,
.pot-6, .pot-7, .pot-8, .pot-9, .pot-10 {
height: 68px;
width: 68px;
border-radius: 8px;
background-color: $purple-50;
}
.pot-1 {
grid-column: 1 / 1;
grid-row: 1 / 2;
}
.pot-2 {
grid-column: 2 / 2;
grid-row: 1 / 2;
}
.pot-3 {
grid-column: 3 / 3;
grid-row: 1 / 2;
}
.pot-4 {
grid-column: 4 / 4;
grid-row: 1 / 2;
}
.pot-5 {
grid-column: 5 / 5;
grid-row: 1 / 2;
}
.pot-6 {
grid-column: 1 / 5;
grid-row: 2 / 2;
}
.pot-7 {
grid-column: 2 / 5;
grid-row: 2 / 2;
}
.pot-8 {
grid-column: 3 / 5;
grid-row: 2 / 2;
}
.pot-9 {
grid-column: 4 / 5;
grid-row: 2 / 2;
}
.pot-10 {
grid-column: 5 / 5;
grid-row: 2 / 2;
}
}
.visit-the-market {
height: 32px;
margin: 24px 4px;
border-radius: 4px;
box-shadow: 0 1px 3px 0 rgba(26, 24, 29, 0.12), 0 1px 2px 0 rgba(26, 24, 29, 0.24);
cursor: pointer;
}
.four-for-free {
font-size: 0.875rem;
line-height: 1.71;
margin: 0 36px 24px;
text-align: center;
color: $white;
}
.four-grid {
display: grid;
grid-template-columns: 4;
grid-template-rows: 1;
gap: 24px;
}
.day-one-a, .day-one-b, .day-five, .day-ten {
height: 140px;
width: 100px;
border-radius: 8px;
background-color: $purple-50;
}
.day-one-a {
grid-column: 1 / 1;
grid-row: 1 / 1;
}
.day-one-b {
grid-column: 2 / 2;
grid-row: 1 / 1;
}
.day-five {
grid-column: 3 / 3;
grid-row: 1 / 1;
}
.day-ten {
grid-column: 4 / 4;
grid-row: 1 / 1;
}
.day-text {
font-size: 0.75rem;
font-weight: bold;
line-height: 1.33;
letter-spacing: 2.4px;
text-align: center;
text-transform: uppercase;
padding: 4px 0px;
color: $yellow-50;
}
.gift {
height: 80px;
width: 84px;
margin: 0 8px 32px;
background-color: $purple-100;
}
.description {
font-size: 0.75rem;
line-height: 1.33;
text-align: center;
padding: 8px 0px;
margin-top: -32px;
color: $white;
}
// SVG CSS
.modal-close {
position: absolute;
right: 16px;
top: 16px;
cursor: pointer;
.svg-close {
width: 18px;
height: 18px;
vertical-align: middle;
fill: $purple-50;
& svg path {
fill: $purple-50 !important;;
}
& :hover {
fill: $purple-50;
}
}
}
.svg-confetti {
position: absolute;
height: 152px;
width: 518px;
margin-top: 24px;
}
.svg-gifts, .svg-gifts-flip {
position: relative;
height: 32px;
width: 85px;
}
.svg-gifts {
margin-left: 70px;
top: 30px;
}
.svg-gifts-flip {
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
left: 366px;
bottom: 34px;
}
.left-divider, .right-divider {
background-image: url('~@/assets/images/fancy-divider.png');
background-position: right center;
background-repeat: no-repeat;
display: inline-flex;
flex-grow: 2;
min-height: 1.25rem;
}
.right-divider {
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
}
.svg-cross {
height: 12px;
width: 12px;
color: $yellow-50;
}
.svg-gem {
height: 48px;
width: 58px;
}
.svg-background {
height: 68px;
width: 68px;
}
.svg-stripe {
height: 20px;
width: 48px;
}
.svg-paypal {
height: 16px;
width: 60px;
}
}
</style>
<script>
// to check if user owns JG or not
import { mapState } from '@/libs/store';
// Purchase functionality
import buy from '@/mixins/buy';
import notifications from '@/mixins/notifications';
import payments from '@/mixins/payments';
import content from '@/../../common/script/content/index';
import amazonButton from '@/components/payments/buttons/amazon';
// import images
import close from '@/assets/svg/new-close.svg';
import confetti from '@/assets/svg/confetti.svg';
import gifts from '@/assets/svg/gifts-birthday.svg';
import cross from '@/assets/svg/cross.svg';
import stripe from '@/assets/svg/stripe.svg';
import paypal from '@/assets/svg/paypal-logo.svg';
import amazon from '@/assets/svg/amazonpay.svg';
import birthdayGems from '@/assets/svg/birthday-gems.svg';
import birthdayBackground from '@/assets/svg/icon-background-birthday.svg';
export default {
components: {
amazonButton,
},
mixins: [buy, notifications, payments],
data () {
return {
amazonData: {
type: 'single',
sku: 'Pet-Gryphatrice-Jubilant',
},
icons: Object.freeze({
close,
confetti,
gifts,
cross,
stripe,
paypal,
amazon,
birthdayGems,
birthdayBackground,
}),
selectedPage: 'initial-buttons',
gryphBought: false,
};
},
computed: {
...mapState({
user: 'user.data',
}),
ownGryphatrice () {
return Boolean(this.user && this.user.items.pets['Gryphatrice-Jubilant']);
},
},
methods: {
hide () {
this.$root.$emit('bv::hide::modal', 'birthday-modal');
},
buyGryphatriceGems () {
const gryphatrice = content.petInfo['Gryphatrice-Jubilant'];
if (this.user.balance * 4 < gryphatrice.value) {
this.$root.$emit('bv::show::modal', 'buy-gems');
return this.hide();
}
if (!this.confirmPurchase(gryphatrice.currency, gryphatrice.value)) {
return null;
}
this.makeGenericPurchase(gryphatrice);
this.gryphBought = true;
return this.purchased(gryphatrice.text());
},
closeAndRedirect (route) {
const routeTerminator = route.split('/')[route.split('/').length - 1];
if (this.$router.history.current.name !== routeTerminator) {
this.$router.push(route);
}
this.hide();
},
close () {
this.$root.$emit('bv::hide::modal', 'birthday-modal');
},
},
};
</script>

View file

@ -78,6 +78,7 @@ export default {
orderReferenceId: null,
subscription: null,
coupon: null,
sku: null,
},
isAmazonSetup: false,
amazonButtonEnabled: false,
@ -174,7 +175,10 @@ export default {
storePaymentStatusAndReload (url) {
let paymentType;
if (this.amazonPayments.type === 'single' && !this.amazonPayments.gift) paymentType = 'gems';
if (this.amazonPayments.type === 'single') {
if (this.amazonPayments.sku) paymentType = 'sku';
else if (!this.amazonPayments.gift) paymentType = 'gems';
}
if (this.amazonPayments.type === 'subscription') paymentType = 'subscription';
if (this.amazonPayments.groupId || this.amazonPayments.groupToCreate) paymentType = 'groupPlan';
if (this.amazonPayments.type === 'single' && this.amazonPayments.gift && this.amazonPayments.giftReceiver) {
@ -223,6 +227,7 @@ export default {
const data = {
orderReferenceId: this.amazonPayments.orderReferenceId,
gift: this.amazonPayments.gift,
sku: this.amazonPayments.sku,
};
if (this.amazonPayments.gemsBlock) {

View file

@ -1,8 +1,8 @@
<template>
<b-modal
id="payments-success-modal"
:hide-footer="isNewGroup || isGems || isSubscription"
:modal-class="isNewGroup || isGems || isSubscription
:hide-footer="isNewGroup || isGems || isSubscription || ownsJubilantGryphatrice"
:modal-class="isNewGroup || isGems || isSubscription || ownsJubilantGryphatrice
? ['modal-hidden-footer'] : []"
>
<!-- HEADER -->
@ -20,7 +20,7 @@
<div class="check-container d-flex align-items-center justify-content-center">
<div
v-once
class="svg-icon check"
class="svg-icon svg-check"
v-html="icons.check"
></div>
</div>
@ -107,6 +107,35 @@
class="small-text auto-renew"
>{{ $t('paymentAutoRenew') }}</span>
</template>
<!-- if you buy the Jubilant Gryphatrice during 10th birthday -->
<template
v-if="ownsJubilantGryphatrice"
>
<div class="words">
<p class="jub-success">
<span
v-once
v-html="$t('jubilantSuccess')"
>
</span>
</p>
<p class="jub-success">
<span
v-once
v-html="$t('stableVisit')"
>
</span>
</p>
</div>
<div class="gryph-bg">
<img
src="https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Gryphatrice-Jubilant-Large.gif"
alt="a pink, purple, and green gryphatrice pet winks at you adorably"
width="78px"
height="72px"
>
</div>
</template>
<!-- buttons for subscriptions / new Group / buy Gems for self -->
<button
v-if="isNewGroup || isGems || isSubscription"
@ -116,6 +145,14 @@
>
{{ $t('onwards') }}
</button>
<!-- buttons for Jubilant Gryphatrice purchase during 10th birthday -->
<button
v-if="ownsJubilantGryphatrice"
class="btn btn-primary mx-auto btn-jub"
@click="closeAndRedirect()"
>
{{ $t('takeMeToStable') }}
</button>
</div>
</div>
<!-- FOOTER -->
@ -232,9 +269,8 @@
margin-bottom: 16px;
}
.check {
width: 35.1px;
height: 28px;
.svg-check {
width: 45px;
color: $white;
}
}
@ -293,6 +329,34 @@
.group-billing-date {
width: 269px;
}
.words {
margin-bottom: 16px;
justify-content: center;
font-size: 0.875rem;
color: $gray-50;
line-height: 1.71;
}
.jub-success {
margin-top: 0px;
margin-bottom: 0px;
}
.gryph-bg {
width: 110px;
height: 104px;
align-items: center;
justify-content: center;
padding: 16px;
border-radius: 4px;
background-color: $gray-700;
}
.btn-jub {
margin-bottom: 8px;
margin-top: 24px;
}
}
.modal-footer {
background: $gray-700;
@ -430,6 +494,9 @@ export default {
isNewGroup () {
return this.paymentData.paymentType === 'groupPlan' && this.paymentData.newGroup;
},
ownsJubilantGryphatrice () {
return this.paymentData.paymentType === 'sku'; // will need to be revised when there are other discrete skus in system
},
},
mounted () {
this.$root.$on('habitica:payment-success', data => {
@ -458,6 +525,12 @@ export default {
this.sendingInProgress = false;
this.$root.$emit('bv::hide::modal', 'payments-success-modal');
},
closeAndRedirect () {
if (this.$router.history.current.name !== 'stable') {
this.$router.push('/inventory/stable');
}
this.close();
},
submit () {
if (this.paymentData.group && !this.paymentData.newGroup) {
Analytics.track({

View file

@ -26,6 +26,7 @@ export default {
'Fox-Veteran',
'JackOLantern-Glow',
'Gryphon-Gryphatrice',
'Gryphatrice-Jubilant',
'JackOLantern-RoyalPurple',
];
const BASE_PETS = [

View file

@ -9,7 +9,6 @@ import { CONSTANTS, setLocalSetting } from '@/libs/userlocalManager';
const { STRIPE_PUB_KEY } = process.env;
// const habiticaUrl = `${window.location.protocol}//${window.location.host}`;
let stripeInstance = null;
export default {
@ -70,6 +69,7 @@ export default {
type,
giftData,
gemsBlock,
sku,
} = data;
let { url } = data;
@ -93,6 +93,11 @@ export default {
url += `?gemsBlock=${gemsBlock.key}`;
}
if (type === 'sku') {
appState.sku = sku;
url += `?sku=${sku}`;
}
setLocalSetting(CONSTANTS.savedAppStateValues.SAVED_APP_STATE, JSON.stringify(appState));
window.open(url, '_blank');
@ -129,6 +134,7 @@ export default {
if (data.group || data.groupToCreate) paymentType = 'groupPlan';
if (data.gift && data.gift.type === 'gems') paymentType = 'gift-gems';
if (data.gift && data.gift.type === 'subscription') paymentType = 'gift-subscription';
if (data.sku) paymentType = 'sku';
let url = '/stripe/checkout-session';
const postData = {};
@ -148,6 +154,7 @@ export default {
if (data.coupon) postData.coupon = data.coupon;
if (data.groupId) postData.groupId = data.groupId;
if (data.demographics) postData.demographics = data.demographics;
if (data.sku) postData.sku = data.sku;
const response = await axios.post(url, postData);
@ -250,6 +257,7 @@ export default {
if (data.type === 'single') {
this.amazonPayments.gemsBlock = data.gemsBlock;
this.amazonPayments.sku = data.sku;
}
if (data.gift) {

View file

@ -127,16 +127,22 @@
"achievementReptacularRumbleModalText": "لقد جمعت كل الزواحف الأليفة!",
"achievementReptacularRumbleText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الزواحف: التمساح، الزاحف المجنح، الأفعى، ترايسيراتوبس، السلحفاة، التيرانوصور ريكس وفيلوسيرابتور!",
"achievementBirdsOfAFeather": "أصدقاء الطيران",
"achievementZodiacZookeeper": "حارس حديقة الحيوانات الفلكية",
"achievementShadyCustomerText": "جمع كل حيوانات الظل الأليفة.",
"achievementShadyCustomerModalText": "لقد جمعت كل حيوانات الظل الأليفة!",
"achievementZodiacZookeeperModalText": "لقد جمعت كل الحيوانات الأليفة الفلكية!",
"achievementZodiacZookeeper": "حارس البروج",
"achievementShadyCustomerText": "جمعت كل الحيوانات الأليفة السوداء.",
"achievementShadyCustomerModalText": "لقد جمعت كل الحيوانات الأليفة السوداء!",
"achievementZodiacZookeeperModalText": "لقد جمعت كل حيوانات البروج الأليفة!",
"achievementBirdsOfAFeatherText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الطائرة: الخنزير الطائر، البومة، الببغاء، الزاحف المجنح، الجرايفون، فالكون، الطاووس والديك!",
"achievementShadeOfItAllModalText": "قمت بترويض كل الحيوانات السوداء",
"achievementShadyCustomer": "عميل الظل",
"achievementShadeOfItAll": "الظل فوق كل شيء",
"achievementShadeOfItAllText": "روض كل حيوانات الظل السوداء.",
"achievementShadeOfItAllModalText": "لقد قمت بترويض كل الركوبات السوداء!",
"achievementShadyCustomer": "عميل مشبوه",
"achievementShadeOfItAll": "كل شيء في الظلام",
"achievementShadeOfItAllText": "قام بترويض كل الركوبات السوداء.",
"achievementWoodlandWizard": "ساحر الغابة",
"achievementWoodlandWizardText": "لقد فقس جميع الألوان القياسية لمخلوقات الغابة: الغرير، الدب، الغزال، الثعلب، الضفدع، القنفذ، البومة، الأفعى، السنجاب والشجيرة!",
"achievementWoodlandWizardModalText": "لقد جمعت كل حيوانات الغابة الأليفة!"
"achievementWoodlandWizardModalText": "لقد جمعت كل حيوانات الغابة الأليفة!",
"achievementPolarPro": "المحترف القطبي",
"achievementPolarProText": "فقست جميع الحيوانات الأليفة القطبية: الدب ، الثعلب ، البطريق ، الحوت ، والذئب!",
"achievementPolarProModalText": "لقد جمعت كل الحيوانات الأليفة القطبية!",
"achievementBoneToPick": "جامع العظام",
"achievementBoneToPickText": "فقست جميع الحيوانات الأليفة الهيكلية المغامرة والكلاسيكية!",
"achievementBoneToPickModalText": "لقد جمعت كل الحيوانات الأليفة الهيكلية المغامرة والكلاسيكية!"
}

View file

@ -422,5 +422,31 @@
"backgroundDuckPondNotes": "أطعم الطيور المائية في بركة البط.",
"backgroundValentinesDayFeastingHallNotes": "اشعر بالحب في قاعة احتفالات عيد الحب.",
"hideLockedBackgrounds": "إخفاء الخلفيات المقفلة",
"backgrounds032019": "SET 58: تم إصداره في مارس 2019"
"backgrounds032019": "SET 58: تم إصداره في مارس 2019",
"backgroundFieldWithColoredEggsNotes": "ابحث عن كنز الربيع في حقل به بيض ملون.",
"backgroundFlowerMarketNotes": "اعثر على الزهور المثالية لباقة أو حديقة في سوق الزهور.",
"backgrounds052019": "المجموعة 60: صدرت في مايو 2019",
"backgroundHalflingsHouseNotes": "قم بزيارة منزل هافلينج الساحر.",
"backgroundBirchForestText": "غابة البتولا",
"backgroundBlossomingDesertNotes": "شاهد إزهارًا هائلًا نادرًا في الصحراء المزهرة.",
"backgroundDojoText": "دوجو",
"backgroundBlossomingDesertText": "الصحراء المزهرة",
"backgroundHalflingsHouseText": "منزل هافلينج",
"backgroundFlowerMarketText": "سوق الزهور",
"backgroundBirchForestNotes": "اقضِ بعض الوقت في غابة البتولا الهادئة.",
"backgroundFieldWithColoredEggsText": "حقل به بيض ملون",
"backgrounds042019": "المجموعة 59: صدرت في أبريل 2019",
"backgroundRainbowMeadowNotes": "ابحث عن وعاء الذهب حيث ينتهي قوس قزح في مرج.",
"backgrounds062019": "المجموعة 61: صدرت في يونيو 2019",
"backgroundUnderwaterVentsNotes": "غص في الأعماق حيث تكمن الفتحات المائية الحرارية.",
"backgroundRainbowMeadowText": "مرج قوس قزح",
"backgroundSeasideCliffsNotes": "قف على الشاطئ وسط جمال المنحدرات الساحلية المحيطة.",
"backgroundSchoolOfFishNotes": "اسبح بين سرب من الأسماك.",
"backgroundUnderwaterVentsText": "الفتحات الحرارية المائية",
"backgroundSeasideCliffsText": "المنحدرات الساحلية",
"backgroundParkWithStatueText": "حديقة بها تمثال",
"backgroundDojoNotes": "تعلم حركات جديدة في دوجو.",
"backgroundSchoolOfFishText": "سرب من الأسماك",
"backgrounds072019": "المجموعة 62: صدرت في يوليو 2019",
"backgroundParkWithStatueNotes": "اتبع مسارًا تصطف على جانبيه الأزهار عبر حديقة بها تمثال."
}

View file

@ -91,7 +91,7 @@
"weaponSpecialTakeThisText": "Take This Sword",
"weaponSpecialTakeThisNotes": "This sword was earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all Stats by <%= attrs %>.",
"weaponSpecialTridentOfCrashingTidesText": "ترايدنت الأمواج المتضاربة",
"weaponSpecialTridentOfCrashingTidesNotes": "يمنحك القدرة على التحكم بالأسماك، وكذلك القدرة على تقديم بعض الطعنات القوية لمهماتك. يزيد الذكاء بقدر <%= int %>.",
"weaponSpecialTridentOfCrashingTidesNotes": "يمنحك القدرة على التحكم بالأسماك، وكذلك القدرة على توجيه بعض الطعنات القوية لمهماتك. يزيد الذكاء بقدر <%= int %>.",
"weaponSpecialTaskwoodsLanternText": "Taskwoods Lantern",
"weaponSpecialTaskwoodsLanternNotes": "Given at the dawn of time to the guardian ghost of the Taskwood Orchards, this lantern can illuminate the deepest darkness and weave powerful spells. Increases Perception and Intelligence by <%= attrs %> each.",
"weaponSpecialBardInstrumentText": "Bardic Lute",
@ -117,7 +117,7 @@
"weaponSpecialYetiText": "رمح مروض اليتي",
"weaponSpecialYetiNotes": "هذا الرمح يسمح لمستخدمه الصيطرة على أي يتي. يزيد القوة بقدر <%= str %>. معدات الطبعة المحدودة لشتاء 2013-2014.",
"weaponSpecialSkiText": "عمود المتزلج القاتل",
"weaponSpecialSkiNotes": "سلاح قادر على تدمير المجموعات الكبيرة من الأعداء. وأيضاً يساعد مستخدمه على الانعطافات المتوازية. يزيد القوة بقدر <%= str %>. معدات الطبعة المحدودة لشتاء 2013-2014.",
"weaponSpecialSkiNotes": "سلاح قادر على تدمير المجموعات الكبيرة من الأعداء. وأيضاً يساعد مستخدمه على الانعطافات المتوازية. يزيد القوة بقدر <%= str %>. معدات الطبعة المحدودة لشتاء 2013-2014.",
"weaponSpecialCandycaneText": "قضيب حلوى القصب",
"weaponSpecialCandycaneNotes": "A powerful mage's staff. Powerfully DELICIOUS, we mean! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2013-2014 Winter Gear.",
"weaponSpecialSnowflakeText": "العصا السحرية ذات ندفة الثلج",

View file

@ -11,7 +11,7 @@
"messageLikesFood": "<%= egg %> يحب <%= foodText %> كثيراً!",
"messageDontEnjoyFood": "<%= egg %> يأكل <%= foodText %> ولكنه لا يبدو مستمتعاً.",
"messageBought": "لقد اشتريت <%= itemText %>",
"messageUnEquipped": "<%= itemText %> unequipped.",
"messageUnEquipped": "<%= itemText %> غير مجهز/ة.",
"messageMissingEggPotion": "تفتقد أيًا من تلك البيضة أو جرعة الفقس.",
"messageInvalidEggPotionCombo": "لا يمكنك فقس بيض حيوانات التنقيب مع جرع فقس سحرية! جرب بيضة أخرى.",
"messageAlreadyPet": "لديك ذلك الحيوان الأليف. حاول فقس تركيبة مختلفة!",
@ -50,5 +50,7 @@
"unallocatedStatsPoints": "You have <span class=\"notification-bold-blue\"><%= points %> unallocated Stat Points</span>",
"beginningOfConversation": "هذه هي بداية محادثتك مع <%= userName %>. تذكر أن تكون لطيفاً محترماً، واتبع إرشادات المنتدى!",
"messageDeletedUser": "عذراً، لقد حذف هذا المستخدم حسابه.",
"messageMissingDisplayName": "Missing display name."
"messageMissingDisplayName": "Missing display name.",
"messageBattleGearUnEquipped": "المعدات القتالية غير مجهزة.",
"messageCostumeUnEquipped": "الزي غير مجهز."
}

View file

@ -1,8 +1,8 @@
{
"achievement": "Постижение",
"onwards": "Напред!",
"levelup": "Изпълнявайки целите си в истинския живот, Вие качихте ниво и здравето Ви беше запълнено!",
"reachedLevel": "Достигнахте ниво <%= level %>",
"levelup": "Изпълнявайки целите си в истинския живот, Вие се качихте ниво и здравето Ви беше запълнено!",
"reachedLevel": "Достигнахте Ниво <%= level %>",
"achievementLostMasterclasser": "Изпълнител на Мисии: Серия на Класовите Повелители",
"achievementLostMasterclasserText": "Завършихте шестнадесетте мисии от Серията на Класовите Повелители и разрешихте загадката на Изгубената Класова Повелителка!",
"achievementUndeadUndertaker": "Нежив Погребален Директор",
@ -59,13 +59,13 @@
"foundNewItemsExplanation": "Завършека на задачи ви дава шанс да намерите предмети като Яйца, Излюпващи Отвари и Животинска Храна.",
"foundNewItems": "Намерихте нови предмети!",
"hideAchievements": "Скрий <%= category %>",
"showAllAchievements": "Покажи Всички",
"onboardingCompleteDescSmall": "Ако желаете още повече, отидете в Постижения и започнете събирането!",
"showAllAchievements": "Покажи Всички <%=category %>",
"onboardingCompleteDescSmall": "Ако желаете още повече, отидете в Постижения и започнете колекционирането!",
"onboardingCompleteDesc": "Получихте <strong>5 Постижения</strong> и <strong class=\"gold-amount\">100 Злато</strong> за завършения списък.",
"onboardingComplete": "Завършихте задачите си!",
"onboardingComplete": "Завършихте уводните си задачи!",
"earnedAchievement": "Получихте постижение!",
"yourProgress": "Вашият Напредък",
"gettingStartedDesc": "Изпълнете задачите и ще получите <strong>5 Постижения </strong> и <strong class=\"gold-amount\">100 Злато </strong>при завършване!",
"gettingStartedDesc": "Изпълнете тези уводни задачи и ще получите <strong>5 Постижения </strong> и <strong class=\"gold-amount\">100 Злато </strong>при завършване!",
"achievementPrimedForPaintingModalText": "Събрахте всички Бели Животни!",
"achievementPearlyProModalText": "Опитомихте всички Бели Оседлани Зверове!",
"achievementPearlyProText": "Опетомили са всички Оседлани Зверове.",
@ -75,13 +75,13 @@
"achievementFedPet": "Нахрани Животно",
"achievementHatchedPetModalText": "Отиди в инвентара си и смеси излюпваща отвара с Яйце",
"achievementHatchedPet": "Излюпи Животно",
"viewAchievements": остижения",
"viewAchievements": регледай Постижения",
"letsGetStarted": "Нека да започнем!",
"onboardingProgress": "<%= percentage %>% напредък",
"achievementBareNecessitiesModalText": "Завършихте мисиите за Маймуна, Ленивец и Фиданка!",
"achievementBareNecessitiesText": "Завършили са всички мисии за Маймуна, Ленивец и Фиданка.",
"achievementBareNecessities": "От първа необходимост",
"achievementBoneCollectorText": "Събрали сте всички Скелети домашни любимци.",
"achievementBoneCollectorText": "Събрали са всички Скелетни Любимци.",
"achievementBoneCollector": "Колекционер на кости",
"achievementAllThatGlittersModalText": "Събрахте всички оседлани Златни животни!",
"achievementAllThatGlittersText": "Събрали сте всички оседлани Златни животни.",
@ -92,5 +92,6 @@
"achievementFreshwaterFriendsModalText": "Завършихте мисиите за аксолотъла, жабата и хипопотама!",
"achievementFreshwaterFriendsText": "Завършили сте мисиите за домашни любимци за аксолотъла, жабата и хипопотама.",
"achievementFreshwaterFriends": "Сладководни приятели",
"yourRewards": "Вашите възнаграждения"
"yourRewards": "Вашите Награди",
"achievementBoneCollectorModalText": "Събрали сте всичките Скелетни Любимци!"
}

View file

@ -143,6 +143,6 @@
"achievementBoneToPickText": "Has hatched all the Classic and Quest Skeleton Pets!",
"achievementBoneToPickModalText": "You collected all the Classic and Quest Skeleton Pets!",
"achievementPolarPro": "Polar Pro",
"achievementPolarProText": "Has hatched all Polar pets: Bear, Fox, Penguin, Whale, and Wolf!",
"achievementPolarProText": "Has hatched all standard colors of Polar pets: Bear, Fox, Penguin, Whale, and Wolf!",
"achievementPolarProModalText": "You collected all the Polar Pets!"
}

View file

@ -857,5 +857,9 @@
"backgroundSteamworksText": "Steamworks",
"backgroundSteamworksNotes": "Build mighty contraptions of vapor and steel in a Steamworks.",
"backgroundClocktowerText": "Clock Tower",
"backgroundClocktowerNotes": "Situate your secret lair behind the face of a Clock Tower."
"backgroundClocktowerNotes": "Situate your secret lair behind the face of a Clock Tower.",
"eventBackgrounds": "Event Backgrounds",
"backgroundBirthdayBashText": "Birthday Bash",
"backgroundBirthdayBashNotes": "Habitica's having a birthday party, and everyone's invited!"
}

View file

@ -438,8 +438,8 @@
"headSpecialNye2021Text": "Preposterous Party Hat",
"headSpecialNye2021Notes": "You've received a Preposterous Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
"headSpecialNye2022Text": "Fantastic Party Hat",
"headSpecialNye2022Notes": "You've received a Fantastic Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
"headSpecialNye2022Text": "Fabulous Party Hat",
"headSpecialNye2022Notes": "You've received a Fabulous Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
"weaponSpecialSpring2022RogueText": "Giant Earring Stud",
"weaponSpecialSpring2022RogueNotes": "A shiny! Its so shiny and gleaming and pretty and nice and all yours! Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.",
@ -801,7 +801,8 @@
"armorSpecialBirthday2021Notes": "Happy Birthday, Habitica! Wear these Extravagant Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2022Text": "Preposterous Party Robes",
"armorSpecialBirthday2022Notes": "Happy Birthday, Habitica! Wear these Proposterous Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2023Text": "Fabulous Party Robes",
"armorSpecialBirthday2023Notes": "Happy Birthday, Habitica! Wear these Fabulous Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialGaymerxText": "Rainbow Warrior Armor",
"armorSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special armor is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
@ -2662,7 +2663,9 @@
"backMystery202206Text": "Sea Sprite Wings",
"backMystery202206Notes": "Whimsical wings made of water and waves! Confers no benefit. June 2022 Subscriber Item.",
"backMystery202301Text": "Five Tails of Valor",
"backMystery202301Notes": "These fluffy tails contain ethereal power and also a high level of charm! Confers no benefit. January 2023 Subscriber Item.",
"backMystery202301Notes": "These fluffy tails contain ethereal power and also a high level of charm! Confers no benefit. January 2023 Subscriber Item.",
"backMystery202302Text": "Trickster Tabby Tail",
"backMystery202302Notes": "Anytime you wear this tail it's sure to be a frabjous day! Callooh! Callay! Confers no benefit. February 2023 Subscriber Item.",
"backSpecialWonderconRedText": "Mighty Cape",
"backSpecialWonderconRedNotes": "Swishes with strength and beauty. Confers no benefit. Special Edition Convention Item.",
@ -2680,6 +2683,9 @@
"backSpecialTurkeyTailGildedNotes": "Plumage fit for a parade! Confers no benefit.",
"backSpecialNamingDay2020Text": "Royal Purple Gryphon Tail",
"backSpecialNamingDay2020Notes": "Happy Naming Day! Swish this fiery, pixely tail about as you celebrate Habitica. Confers no benefit.",
"backSpecialAnniversaryText": "Habitica Hero Cape",
"backSpecialAnniversaryNotes": "Let this proud cape fly in the wind and tell everyone that you're a Habitica Hero. Confers no benefit. Special Edition 10th Birthday Bash Item.",
"backBearTailText": "Bear Tail",
"backBearTailNotes": "This tail makes you look like a brave bear! Confers no benefit.",
"backCactusTailText": "Cactus Tail",
@ -2711,6 +2717,8 @@
"bodySpecialTakeThisNotes": "These pauldrons were earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all Stats by <%= attrs %>.",
"bodySpecialAetherAmuletText": "Aether Amulet",
"bodySpecialAetherAmuletNotes": "This amulet has a mysterious history. Increases Constitution and Strength by <%= attrs %> each.",
"bodySpecialAnniversaryText": "Habitica Hero Collar",
"bodySpecialAnniversaryNotes": "Perfectly complement your royal purple ensemble! Confers no benefit. Special Edition 10th Birthday Bash Item.",
"bodySpecialSummerMageText": "Shining Capelet",
"bodySpecialSummerMageNotes": "Neither salt water nor fresh water can tarnish this metallic capelet. Confers no benefit. Limited Edition 2014 Summer Gear.",
@ -2867,6 +2875,8 @@
"headAccessoryMystery202205Notes": "These dazzling horns are as bright as a desert sunset. Confers no benefit. May 2022 Subscriber Item.",
"headAccessoryMystery202212Text": "Glacial Tiara",
"headAccessoryMystery202212Notes": "Magnify your warmth and friendship to new heights with this ornate golden tiara. Confers no benefit. December 2022 Subscriber Item.",
"headAccessoryMystery202302Text": "Trickster Tabby Ears",
"headAccessoryMystery202302Notes": "The purr-fect accessory to set off your enchanting grin. Confers no benefit. February 2023 Subscriber Item.",
"headAccessoryMystery301405Text": "Headwear Goggles",
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
@ -2913,6 +2923,8 @@
"eyewearSpecialAetherMaskNotes": "This mask has a mysterious history. Increases Intelligence by <%= int %>.",
"eyewearSpecialKS2019Text": "Mythic Gryphon Visor",
"eyewearSpecialKS2019Notes": "Bold as a gryphon's... hmm, gryphons don't have visors. It reminds you to... oh, who are we kidding, it just looks cool! Confers no benefit.",
"eyewearSpecialAnniversaryText": "Habitica Hero Mask",
"eyewearSpecialAnniversaryNotes": "Look through the eyes of a Habitica Hero - you! Confers no benefit. Special Edition 10th Birthday Bash Item.",
"eyewearSpecialSummerRogueText": "Roguish Eyepatch",
"eyewearSpecialSummerRogueNotes": "It doesn't take a scallywag to see how stylish this is! Confers no benefit. Limited Edition 2014 Summer Gear.",

View file

@ -209,6 +209,7 @@
"dateEndOctober": "October 31",
"dateEndNovember": "November 30",
"dateEndDecember": "December 31",
"dateStartFebruary": "February 8",
"januaryYYYY": "January <%= year %>",
"februaryYYYY": "February <%= year %>",
"marchYYYY": "March <%= year %>",
@ -236,5 +237,33 @@
"g1g1Limitations": "This is a limited time event that starts on December 15th at 8:00 AM ET (13:00 UTC) and will end January 8th at 11:59 PM ET (January 9th 04:59 UTC). This promotion only applies when you gift to another Habitican. If you or your gift recipient already have a subscription, the gifted subscription will add months of credit that will only be used after the current subscription is canceled or expires.",
"noLongerAvailable": "This item is no longer available.",
"gemSaleHow": "Between <%= eventStartMonth %> <%= eventStartOrdinal %> and <%= eventEndOrdinal %>, simply purchase any Gem bundle like usual and your account will be credited with the promotional amount of Gems. More Gems to spend, share, or save for any future releases!",
"gemSaleLimitations": "This promotion only applies during the limited time event. This event starts on <%= eventStartMonth %> <%= eventStartOrdinal %> at 8:00 AM EDT (12:00 UTC) and will end <%= eventStartMonth %> <%= eventEndOrdinal %> at 8:00 PM EDT (00:00 UTC). The promo offer is only available when buying Gems for yourself."
}
"gemSaleLimitations": "This promotion only applies during the limited time event. This event starts on <%= eventStartMonth %> <%= eventStartOrdinal %> at 8:00 AM EDT (12:00 UTC) and will end <%= eventStartMonth %> <%= eventEndOrdinal %> at 8:00 PM EDT (00:00 UTC). The promo offer is only available when buying Gems for yourself.",
"anniversaryLimitations": "This is a limited time event that starts on January 30th at 8:00 AM ET (13:00 UTC) and will end February 8th at 11:59 PM ET (04:59 UTC). The Limited Edition Jubilant Gryphatrice and ten Magic Hatching Potions will be available to buy during this time. The other Gifts listed in the Four for Free section will be automatically delivered to all accounts that were active in the 30 days prior to day the gift is sent. Accounts created after the gifts are sent will not be able to claim them.",
"anniversaryLimitedDates": "January 30th to February 8th",
"limitedEvent": "Limited Event",
"celebrateAnniversary": "Celebrate Habitica's 10th Birthday with gifts and exclusive items below!",
"celebrateBirthday": "Celebrate Habitica's 10th Birthday with gifts and exclusive items!",
"jubilantGryphatricePromo": "Animated Jubilant Gryphatrice Pet",
"limitedEdition": "Limited Edition",
"anniversaryGryphatriceText": "The rare Jubilant Gryphatrice joins the birthday celebrations! Don't miss your chance to own this exclusive animated Pet.",
"anniversaryGryphatricePrice": "Own it today for <strong>$9.99</strong> or <strong>60 gems</strong>",
"buyNowMoneyButton": "Buy Now for $9.99",
"buyNowGemsButton": "Buy Now for 60 Gems",
"wantToPayWithGemsText": "Want to pay with Gems?",
"wantToPayWithMoneyText": "Want to pay with Stripe, Paypal, or Amazon?",
"ownJubilantGryphatrice": "<strong>You own the Jubilant Gryphatrice!</strong> Visit the Stable to equip!",
"jubilantSuccess": "You've successfully purchased the <strong>Jubilant Gryphatrice!</strong>",
"stableVisit": "Visit the Stable to equip!",
"takeMeToStable": "Take me to the Stable",
"plentyOfPotions": "Plenty of Potions",
"plentyOfPotionsText": "We're bringing back 10 of the community's favorite Magic Hatching potions. Head over to The Market to fill out your collection!",
"visitTheMarketButton": "Visit the Market",
"fourForFree": "Four for Free",
"fourForFreeText": "To keep the party going, we'll be giving away Party Robes, 20 Gems, and a limited edition birthday Background and item set that includes a Cape, Pauldrons, and an Eyemask.",
"dayOne": "Day 1",
"dayFive": "Day 5",
"dayTen": "Day 10",
"partyRobes": "Party Robes",
"twentyGems": "20 Gems",
"birthdaySet": "Birthday Set"
}

View file

@ -32,6 +32,7 @@
"royalPurpleJackalope": "Royal Purple Jackalope",
"invisibleAether": "Invisible Aether",
"gryphatrice": "Gryphatrice",
"jubilantGryphatrice": "Jubilant Gryphatrice",
"potion": "<%= potionType %> Potion",
"egg": "<%= eggType %> Egg",
"eggs": "Eggs",

View file

@ -365,7 +365,7 @@
"questSnailUnlockText": "Unlocks Snail Eggs for purchase in the Market",
"questBewilderText": "The Be-Wilder",
"questBewilderNotes": "The party begins like any other.<br><br>The appetizers are excellent, the music is swinging, and even the dancing elephants have become routine. Habiticans laugh and frolic amid the overflowing floral centerpieces, happy to have a distraction from their least-favorite tasks, and the April Fool whirls among them, eagerly providing an amusing trick here and a witty twist there.<br><br>As the Mistiflying clock tower strikes midnight, the April Fool leaps onto the stage to give a speech.<br><br>“Friends! Enemies! Tolerant acquaintances! Lend me your ears.” The crowd chuckles as animal ears sprout from their heads, and they pose with their new accessories.<br><br>“As you know,” the Fool continues, “my confusing illusions usually only last a single day. But Im pleased to announce that Ive discovered a shortcut that will guarantee us non-stop fun, without having to deal with the pesky weight of our responsibilities. Charming Habiticans, meet my magical new friend... the Be-Wilder!”<br><br>Lemoness pales suddenly, dropping her hors d'oeuvres. “Wait! Dont trust--”<br><br>But suddenly mists are pouring into the room, glittering and thick, and they swirl around the April Fool, coalescing into cloudy feathers and a stretching neck. The crowd is speechless as an monstrous bird unfolds before them, its wings shimmering with illusions. It lets out a horrible screeching laugh.<br><br>“Oh, it has been ages since a Habitican has been foolish enough to summon me! How wonderful it feels, to have a tangible form at last.”<br><br>Buzzing in terror, the magic bees of Mistiflying flee the floating city, which sags from the sky. One by one, the brilliant spring flowers wither up and wisp away.<br><br>“My dearest friends, why so alarmed?” crows the Be-Wilder, beating its wings. “Theres no need to toil for your rewards any more. Ill just give you all the things that you desire!”<br><br>A rain of coins pours from the sky, hammering into the ground with brutal force, and the crowd screams and flees for cover. “Is this a joke?” Baconsaur shouts, as the gold smashes through windows and shatters roof shingles.<br><br>PainterProphet ducks as lightning bolts crackle overhead, and fog blots out the sun. “No! This time, I dont think it is!”<br><br>Quickly, Habiticans, dont let this World Boss distract us from our goals! Stay focused on the tasks that you need to complete so we can rescue Mistiflying -- and hopefully, ourselves.",
"questBewilderNotes": "The party begins like any other.<br><br>The appetizers are excellent, the music is swinging, and even the dancing elephants have become routine. Habiticans laugh and frolic amid the overflowing floral centerpieces, happy to have a distraction from their least-favorite tasks, and the April Fool whirls among them, eagerly providing an amusing trick here and a witty twist there.<br><br>As the Mistiflying clock tower strikes midnight, the April Fool leaps onto the stage to give a speech.<br><br>“Friends! Enemies! Tolerant acquaintances! Lend me your ears.” The crowd chuckles as animal ears sprout from their heads, and they pose with their new accessories.<br><br>“As you know,” the Fool continues, “my confusing illusions usually only last a single day. But Im pleased to announce that Ive discovered a shortcut that will guarantee us non-stop fun, without having to deal with the pesky weight of our responsibilities. Charming Habiticans, meet my magical new friend... the Be-Wilder!”<br><br>Lemoness pales suddenly, dropping her hors d'oeuvres. “Wait! Dont trust--”<br><br>But suddenly mists are pouring into the room, glittering and thick, and they swirl around the April Fool, coalescing into cloudy feathers and a stretching neck. The crowd is speechless as a monstrous bird unfolds before them, its wings shimmering with illusions. It lets out a horrible screeching laugh.<br><br>“Oh, it has been ages since a Habitican has been foolish enough to summon me! How wonderful it feels, to have a tangible form at last.”<br><br>Buzzing in terror, the magic bees of Mistiflying flee the floating city, which sags from the sky. One by one, the brilliant spring flowers wither up and wisp away.<br><br>“My dearest friends, why so alarmed?” crows the Be-Wilder, beating its wings. “Theres no need to toil for your rewards any more. Ill just give you all the things that you desire!”<br><br>A rain of coins pours from the sky, hammering into the ground with brutal force, and the crowd screams and flees for cover. “Is this a joke?” Baconsaur shouts, as the gold smashes through windows and shatters roof shingles.<br><br>PainterProphet ducks as lightning bolts crackle overhead, and fog blots out the sun. “No! This time, I dont think it is!”<br><br>Quickly, Habiticans, dont let this World Boss distract us from our goals! Stay focused on the tasks that you need to complete so we can rescue Mistiflying -- and hopefully, ourselves.",
"questBewilderCompletion": "<strong>The Be-Wilder is DEFEATED!</strong><br><br>We've done it! The Be-Wilder lets out a ululating cry as it twists in the air, shedding feathers like falling rain. Slowly, gradually, it coils into a cloud of sparkling mist. As the newly-revealed sun pierces the fog, it burns away, revealing the coughing, mercifully human forms of Bailey, Matt, Alex.... and the April Fool himself.<br><br><strong>Mistiflying is saved!</strong><br><br>The April Fool has enough shame to look a bit sheepish. “Oh, hm,” he says. “Perhaps I got a little…. carried away.”<br><br>The crowd mutters. Sodden flowers wash up on sidewalks. Somewhere in the distance, a roof collapses with a spectacular splash.<br><br>“Er, yes,” the April Fool says. “That is. What I meant to say was, Im dreadfully sorry.” He heaves a sigh. “I suppose it cant all be fun and games, after all. It might not hurt to focus occasionally. Maybe Ill get a head start on next years pranking.”<br><br>Redphoenix coughs meaningfully.<br><br>“I mean, get a head start on this years spring cleaning!” the April Fool says. “Nothing to fear, Ill have Habit City in spit-shape soon. Luckily nobody is better than I at dual-wielding mops.”<br><br>Encouraged, the marching band starts up.<br><br>It isnt long before all is back to normal in Habit City. Plus, now that the Be-Wilder has evaporated, the magical bees of Mistiflying bustle back to work, and soon the flowers are blooming and the city is floating once more.<br><br>As Habiticans cuddle the magical fuzzy bees, the April Fools eyes light up. “Oho, Ive had a thought! Why dont you all keep some of these fuzzy Bee Pets and Mounts? Its a gift that perfectly symbolizes the balance between hard work and sweet rewards, if Im going to get all boring and allegorical on you.” He winks. “Besides, they dont have stingers! Fools honor.”",
"questBewilderCompletionChat": "`The Be-Wilder is DEFEATED!`\n\nWe've done it! The Be-Wilder lets out a ululating cry as it twists in the air, shedding feathers like falling rain. Slowly, gradually, it coils into a cloud of sparkling mist. As the newly-revealed sun pierces the fog, it burns away, revealing the coughing, mercifully human forms of Bailey, Matt, Alex.... and the April Fool himself.\n\n`Mistiflying is saved!`\n\nThe April Fool has enough shame to look a bit sheepish. “Oh, hm,” he says. “Perhaps I got a little…. carried away.”\n\nThe crowd mutters. Sodden flowers wash up on sidewalks. Somewhere in the distance, a roof collapses with a spectacular splash.\n\n“Er, yes,” the April Fool says. “That is. What I meant to say was, Im dreadfully sorry.” He heaves a sigh. “I suppose it cant all be fun and games, after all. It might not hurt to focus occasionally. Maybe Ill get a head start on next years pranking.”\n\nRedphoenix coughs meaningfully.\n\n“I mean, get a head start on this years spring cleaning!” the April Fool says. “Nothing to fear, Ill have Habit City in spit-shape soon. Luckily nobody is better than I at dual-wielding mops.”\n\nEncouraged, the marching band starts up.\n\nIt isnt long before all is back to normal in Habit City. Plus, now that the Be-Wilder has evaporated, the magical bees of Mistiflying bustle back to work, and soon the flowers are blooming and the city is floating once more.\n\nAs Habiticans cuddle the magical fuzzy bees, the April Fools eyes light up. “Oho, Ive had a thought! Why dont you all keep some of these fuzzy Bee Pets and Mounts? Its a gift that perfectly symbolizes the balance between hard work and sweet rewards, if Im going to get all boring and allegorical on you.” He winks. “Besides, they dont have stingers! Fools honor.”",
"questBewilderBossRageTitle": "Beguilement Strike",

View file

@ -146,6 +146,7 @@
"mysterySet202211": "Electromancer Set",
"mysterySet202212": "Glacial Guardian Set",
"mysterySet202301": "Valiant Vulpine Set",
"mysterySet202302": "Trickster Tabby Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
"mysterySet301703": "Peacock Steampunk Set",

View file

@ -303,9 +303,9 @@
"foodCandyRed": "Cinnamon Candy",
"foodCandyRedThe": "the Cinnamon Candy",
"foodCandyRedA": "Cinnamon Candy",
"foodSaddleText": "Siya",
"foodSaddleNotes": "Agád na pinapalakí ang isa sa iyong mga alaga.",
"foodSaddleSellWarningNote": "Uy! Medyo kapaki-pakinabang! Pamilyar ka ba kung papaano gumamit ng Siya sa iyong mga Alagà?",
"foodSaddleText": "Upuán",
"foodSaddleNotes": "Agád na pinalálakí ang isa sa iyóng mga alaga.",
"foodSaddleSellWarningNote": "Uy! Kapakípakinabang! May alám ka ba sa paggamit ng mga Upuán sa mga Alagà?",
"foodNotes": "Feed this to a pet and it may grow into a sturdy steed.",
"foodPieRedA": "isang hiwa ng Pulang Cherry Pie",
"foodPieRedThe": "ang Pulang Cherry Pie",

View file

@ -1,5 +1,5 @@
{
"FAQ": "FAQ",
"FAQ": "MKN (Mga Kadalasang Naitátanong)",
"marketing1Lead1Title": "Buhay Mo, ang Role Playing Game",
"marketing1Header": "Pabutihin ang Iyong mga Gawi sa pamamagitan ng Paglalaro",
"logout": "Log Out",
@ -23,10 +23,10 @@
"companyAbout": "Paano Gumagana",
"communityInstagram": "Instagram",
"communityFacebook": "Facebook",
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Add-ons & Extensions</a>",
"clearBrowserData": "Alisin ang Browser Data",
"communityExtensions": "Mga Pandagdág-Gamit at Pámpalawig-Gamit",
"clearBrowserData": "Burahín ang Alaala ng Tagahanap",
"chores": "Mga Gawaing-Bahay",
"termsAndAgreement": "Sa pagpindot ng button sa ibaba, ipinapahiwatig mong nabasa at sumasang-ayon ka sa <a href='/static/terms'>Terms of Service</a> at <a href='/static/privacy'>Privacy Policy</a>.",
"termsAndAgreement": "Sa pagpindót sa ibabà, ipinápahiwatig n'yo na nabasa at sumasang-ayon kayó sa <a href='/static/terms'>Mga Alituntúnin sa Paglílingkód</a> at <a href='/static/privacy'>Pátakarán sa Paglilihim</a>.",
"marketing3Lead1": "Ang **iPhone & Android** apps ay nakatutulong sa'yo upang makatapos ng gawain kahit saan. Napagtanto namin na ang pag-login gamit ang website ay nakakapagod.",
"marketing3Header": "Apps at Extensions",
"marketing2Lead3": "Isang uri ng pakikipagkumpitensya sa iyong mga kaibigan at sa mga hindi kakilala ang mga Hamon. Kung sino ang pinakamagaling sa pagtapos ng bawat hamon ay makatatanggap ng mga espesyal na premyo.",

View file

@ -15,8 +15,8 @@
"oneOfAllHatchingPotions": "tig-íisá ng bawat pangkaraniwang Mahiwagang Langís na Pampápapisâ",
"threeOfEachFood": "tigtátatló ng bawat pángkaraniwang Pagkaing Pang-alagà",
"fourOfEachFood": "tíg-aapat ng bawat pángkaraniwang Pagkaing Pang-alagà",
"twoSaddles": "two Saddles",
"threeSaddles": "three Saddles",
"twoSaddles": "dalawáng Upuán",
"threeSaddles": "tatlóng Upuán",
"incentiveAchievement": "ang Kakaibang Kalakihan sa Katapatan na tagumpáy",
"royallyLoyal": "Kakaibang Kalakihan sa Katapatan",
"royallyLoyalText": "Limandaáng ulit ng nakapuntá ang tagagamit na itó dito, at napagkaloobán na ng bawat Gantimpalà ng maaaring matanggáp ukol sa dalás ng pagpuntá rito!",

View file

@ -2782,5 +2782,7 @@
"headSpecialWinter2023HealerNotes": "Ce heaume cardinal est parfait pour siffler et chanter pour annoncer la nouvelle saison. Augmente l'intelligence de <%= int %>. Équipement en édition limitée de l'hiver 2022-2023.",
"shieldSpecialWinter2023WarriorText": "Bouclier huitre",
"shieldSpecialWinter2023HealerText": "Chansonnette fraiche",
"shieldSpecialWinter2023HealerNotes": "Votre chanson de givre et de neige apaisera les esprits de ceux qui l'entendent. Augmente la constitution de <%= con %>. Équipement en édition limitée de l'hiver 2022-2023."
"shieldSpecialWinter2023HealerNotes": "Votre chanson de givre et de neige apaisera les esprits de ceux qui l'entendent. Augmente la constitution de <%= con %>. Équipement en édition limitée de l'hiver 2022-2023.",
"headSpecialNye2022Text": "Chapeau de fête fantastique",
"headSpecialNye2022Notes": "Vous avez reçu un chapeau de soirée fantastique ! Portez-le avec fierté en levant votre verre à cette nouvelle année ! Ne confère aucun bonus."
}

View file

@ -239,5 +239,6 @@
"winter2023WalrusWarriorSet": "Morse (Guerrier)",
"winter2023FairyLightsMageSet": "Lumières féeriques (Mage)",
"winter2023CardinalHealerSet": "Cardinal (Guérisseur)",
"spring2023RibbonRogueSet": "Ruban (Voleur)"
"spring2023RibbonRogueSet": "Ruban (Voleur)",
"winter2023RibbonRogueSet": "Ruban (Voleur)"
}

View file

@ -95,5 +95,9 @@
"achievementGoodAsGold": "זהב טהור",
"achievementBugBonanzaModalText": "השלמת את ההרפתקאות של חיות המחמד של החיפושית, הפרפר, החילזון והעכביש!",
"achievementBareNecessities": "רק את הטוב",
"achievementBoneCollector": "אספן עצמות"
"achievementBoneCollector": "אספן עצמות",
"achievementSkeletonCrew": "צוות השלדים",
"achievementBareNecessitiesModalText": "השלמת את המסעות של הקוף, העצלן והעצים הצעירים!",
"achievementBugBonanza": "שיגעון החרקים",
"achievementFreshwaterFriends": "חברים ממים מתוקים"
}

View file

@ -3,28 +3,28 @@
"quest": "הרפתקה",
"petQuests": "הרפתקאות של חיות מחמד וחיות רכיבה",
"unlockableQuests": "הרפתקאות שאינן ניתנות לפתיחה",
"goldQuests": "",
"goldQuests": "הרפתקאות מסדרת הרב-אמן",
"questDetails": "פרטי הרפתקה",
"questDetailsTitle": "פרטי ההרפתקה",
"questDescription": "",
"questDescription": "הרפתקאות מאפשרות לשחקנים להתרכז במטרות ארוכות טווח בתוך המשחק עם חברי החבורה שלהם.",
"invitations": "הזמנות",
"completed": "הושלם!",
"rewardsAllParticipants": "",
"rewardsQuestOwner": "",
"rewardsAllParticipants": "מזכה את כל המשתתפים של ההרפתקה",
"rewardsQuestOwner": "פרסים נוספים לבעל ההרפתקה",
"inviteParty": "הזמינו את החבורה להרפתקה",
"questInvitation": "הזמנה להרפתקה:",
"questInvitationInfo": "הזמנה להרפתקה <%= quest %> ",
"invitedToQuest": "",
"invitedToQuest": "הוזמנת להרפתקה <span class=\"notification-bold-blue\"><%= quest %></span>",
"askLater": "שאלו אחר כך",
"buyQuest": "קנו הרפתקה",
"accepted": "מוסכם",
"declined": "",
"declined": "סירבו",
"rejected": "נדחה",
"pending": "ממתין לתשובה",
"questCollection": "",
"questCollection": "+ <%= val %> חפצ(ים) של ההרפתקה נמצאו",
"questDamage": "+ <%= val %> damage to boss",
"begin": "התחל",
"bossHP": "",
"bossHP": "נק\"פ של הבוס",
"bossStrength": "עוצמת האויב",
"rage": "זעם",
"collect": "לאסוף",
@ -34,8 +34,8 @@
"sureLeave": "לעזוב את ההרפתקה? כל ההתקדמות תרד לטמיון.",
"mustComplete": "קודם עליך להשלים את <%= quest %>",
"mustLvlQuest": "עליכם להיות בדרגה <%= level %> כדי לקנות את ההרפתקה הזו!",
"unlockByQuesting": "",
"questConfirm": "Are you sure? Only <%= questmembers %> of your <%= totalmembers %> party members have joined this quest! Quests start automatically when all players have joined or rejected the invitation.",
"unlockByQuesting": "כדי לפתוח את ההרפתקה, תשלימו את <%= title %>.",
"questConfirm": "בטוחים שאתם רוצים להתחיל את ההרפתקה? לא כל חברי החבורה אישרו את ההזמנה. הרפתקאות מתחילות באופן אוטומטי אחרי שכל חברי החבורה השיבו להזמנה.",
"sureCancel": "האם אתם בטוחים שברצונכם לבטל את ההרפתקה? ביטול ההרפתקה תבטל את כל ההזמנות שנשלחו, גם עבור אלה שהסכימו כבר להשתתף, והמגילה תחזור לרשותכם.",
"sureAbort": "האם אתם בטוחים שברצונכם לבטל את ההרפתקה הזו? כל ההתקדמות שלכם תאבד. המגילה תשוב לידי בעליה.",
"doubleSureAbort": "האם אתם באמת באמת בטוחים? כל החבורה שלכם עלולה לשנוא אתכם לנצח!",
@ -93,5 +93,10 @@
"selectQuestModal": "נא לבחור הרפתקה",
"questAlreadyStartedFriendly": "ההרפתקה כבר החלה, אבל תמיד ניתן להצטרף לבאה אחריה!",
"membersParticipating": "<%= accepted %> / <%= invited %> חברים משתתפים",
"chatQuestAborted": "<%= username %> הפסיק את ההרפתקה <%= questName %>."
"chatQuestAborted": "<%= username %> הפסיק את ההרפתקה <%= questName %>.",
"bossDamage": "פגעת בבוס!",
"questInvitationNotificationInfo": "הוזמנת להצטרף להרפתקה",
"questItemsPending": "<%= amount %> חפצים ממתינים",
"hatchingPotionQuests": "הרפתקאות של שיקויי הבקיעה הקסומים",
"sureLeaveInactive": "בטוחים שאתם רוצים לעזוב את ההרפתה? אתם לא תוכלו להשתתף."
}

View file

@ -348,28 +348,28 @@
"backgroundFlyingOverAncientForestNotes": "Terbang di atas pepohonan Hutan Kuno.",
"backgrounds052018": "SET 48: Dirilis Mei 2018",
"backgroundTerracedRiceFieldText": "Sawah Padi Berteras",
"backgroundTerracedRiceFieldNotes": "Enjoy a Terraced Rice Field in the growing season.",
"backgroundTerracedRiceFieldNotes": "Nikmati Sengkedan Sawah di musim tanam.",
"backgroundFantasticalShoeStoreText": "Toko Sepatu Fantastis",
"backgroundFantasticalShoeStoreNotes": "Look for fun new footwear in the Fantastical Shoe Store.",
"backgroundFantasticalShoeStoreNotes": "Cari alas kaki lucu di Toko Sepatu Fantastik.",
"backgroundChampionsColosseumText": "Koloseum Jawara",
"backgroundChampionsColosseumNotes": "Berjemur di bawah cahaya kejayaan Koloseum Jawara.",
"backgrounds062018": "SET 49: Dirilis Juni 2018",
"backgroundDocksText": "Dermaga",
"backgroundDocksNotes": "Memancing dari atas Dermaga.",
"backgroundRowboatText": "Rowboat",
"backgroundRowboatNotes": "Sing rounds in a Rowboat.",
"backgroundRowboatText": "Perahu Dayung",
"backgroundRowboatNotes": "Bernyanyi di Perahu Dayung.",
"backgroundPirateFlagText": "Bendera Bajak Laut",
"backgroundPirateFlagNotes": "Kibarkan Bendera Bajak Laut yang menakutkan.",
"backgrounds072018": "SET 50: Dirilis Juli 2018",
"backgroundDarkDeepText": "Dark Deep",
"backgroundDarkDeepNotes": "Swim in the Dark Deep among bioluminescent critters.",
"backgroundDarkDeepText": "Gelap Dalam",
"backgroundDarkDeepNotes": "Berenang di Gelap Dalam bersama makhluk-makhluk bercahaya.",
"backgroundDilatoryCityText": "Kota Dilatory",
"backgroundDilatoryCityNotes": "Meander through the undersea City of Dilatory.",
"backgroundTidePoolText": "Tide Pool",
"backgroundTidePoolNotes": "Observe the ocean life near a Tide Pool.",
"backgroundDilatoryCityNotes": "Berkelana di kedalaman Kota bawah laut Dilatory.",
"backgroundTidePoolText": "Kolam Ombak",
"backgroundTidePoolNotes": "Mengamati kehidupan laut dari dekat Kolam Ombak.",
"backgrounds082018": "SET 51: Dirilis Agustus 2018",
"backgroundTrainingGroundsText": "Training Grounds",
"backgroundTrainingGroundsNotes": "Spar on the Training Grounds.",
"backgroundTrainingGroundsText": "Lapangan Latih",
"backgroundTrainingGroundsNotes": "Bertanding di Lapangan Latih.",
"backgroundFlyingOverRockyCanyonText": "Ngarai Berbatu",
"backgroundFlyingOverRockyCanyonNotes": "Lihat pemandangan menakjubkan di bawahmu selagi kamu terbang di atas Ngarai Berbatu.",
"backgroundBridgeText": "Jembatan",
@ -382,16 +382,16 @@
"backgroundCozyBarnText": "Lumbung Nyaman",
"backgroundCozyBarnNotes": "Bersantai bersama peliharaan dan tungganganmu di Lumbung Nyaman mereka.",
"backgrounds102018": "SET 53: Dirilis Oktober 2018",
"backgroundBayouText": "Bayou",
"backgroundBayouNotes": "Bask in the fireflies' glow on the misty Bayou.",
"backgroundBayouText": "Rawa",
"backgroundBayouNotes": "Disinari cahaya kunang-kunang di Rawa berkabut.",
"backgroundCreepyCastleText": "Kastil Menyeramkan",
"backgroundCreepyCastleNotes": "Berani mendekati Kastil Menyeramkan.",
"backgroundDungeonText": "Penjara Bawah Tanah",
"backgroundDungeonNotes": "Selamatkan para tahanan dari Penjara Bawah Tanah yang menyeramkan.",
"backgrounds112018": "SET 54: Dirilis November 2018",
"backgroundBackAlleyText": "Back Alley",
"backgroundBackAlleyNotes": "Look shady loitering in a Back Alley.",
"backgroundGlowingMushroomCaveText": "Glowing Mushroom Cave",
"backgroundBackAlleyText": "Gang Belakang",
"backgroundBackAlleyNotes": "Terlihat mencurigakan berkeliaran di Gang Belakang.",
"backgroundGlowingMushroomCaveText": "Goa Jamur Bercahaya",
"backgroundGlowingMushroomCaveNotes": "Stare in awe at a Glowing Mushroom Cave.",
"backgroundCozyBedroomText": "Kamar Tidur Nyaman",
"backgroundCozyBedroomNotes": "Curl up in a Cozy Bedroom.",
@ -620,7 +620,7 @@
"backgroundClotheslineNotes": "Bersantai sambil mengeringkan pakaian di Jemuran.",
"backgroundClotheslineText": "Jemuran",
"backgrounds062021": "SET 85: Dirilis Juni 2021",
"backgroundWindmillsNotes": ".Pasang pelana dan berjalan di Kincir Angin.",
"backgroundWindmillsNotes": "Pasang pelana dan berjalan di Kincir Angin.",
"backgroundWindmillsText": "Kincir Angin",
"backgroundDragonsLairNotes": "Mencoba untuk tidak mengusik Sarang Naga.",
"backgroundDragonsLairText": "Sarang Naga",
@ -639,5 +639,17 @@
"backgroundVineyardNotes": "Telusuri Kebun Anggur yang berlimpah ruah.",
"backgroundAutumnLakeshoreText": "Tepi Danau Musim Gugur",
"backgrounds092021": "SET 88: Dirilis September 2021",
"backgroundVineyardText": "Kebun Anggur"
"backgroundVineyardText": "Kebun Anggur",
"backgroundWinterWaterfallText": "Air Terjun Musim Dingin",
"backgroundWinterWaterfallNotes": "Mengagumi Air Terjun Musim Dingin.",
"backgroundOrangeGroveText": "Belukar Jingga",
"backgroundOrangeGroveNotes": "Mengembara ke wangi Belukar Jingga.",
"backgrounds102021": "SET 89: Dirilis Oktober 2021",
"hideLockedBackgrounds": "Sembunyikan latar belakang yang masih terkunci",
"backgroundCrypticCandlesNotes": "Panggil pasukan sihir rahasia di antara Lilin-Lilin Gaib.",
"backgroundHauntedPhotoText": "Foto Berhantu",
"backgroundHauntedPhotoNotes": "Temukan dirimu terperangkap di dunia monokromik dalam Foto Berhantu.",
"backgroundUndeadHandsText": "Tangan Mayat Hidup",
"backgroundUndeadHandsNotes": "Mencoba kabur dari genggaman Tangan Mayat Hidup.",
"backgroundCrypticCandlesText": "Lilin Gaib"
}

View file

@ -1,5 +1,5 @@
{
"communityGuidelinesWarning": "Ingatlah bahwa Nama Tampilan, foto profil, dan celotehmu harus mengikuti <a href='https://habitica.com/static/community-guidelines' target='_blank'>Pedoman Komunitas</a> (misalnya, tidak menggunakan bahasa senonoh, topik dewasa, penghinaan, dsb). Jika kamu mempunyai pertanyaan apapun mengenai pantasnya sesuatu hal, silahkan email <%= hrefBlankCommunityManagerEmail %>!",
"communityGuidelinesWarning": "Ingatlah bahwa Nama Tampilan, foto profil, dan celotehmu harus mengikuti <a href='https://habitica.com/static/community-guidelines' target='_blank'>Pedoman Komunitas</a> (misalnya, tidak menggunakan bahasa tidak senonoh, topik dewasa, penghinaan, dsb). Jika kamu mempunyai pertanyaan apapun mengenai pantasnya sesuatu hal, silahkan email <%= hrefBlankCommunityManagerEmail %>!",
"profile": "Profil",
"avatar": "Ubah Tampilan Avatar",
"editAvatar": "Sunting Avatar",
@ -15,7 +15,7 @@
"imageUrl": "URL Gambar",
"inventory": "Inventori",
"social": "Sosial",
"lvl": "Lvl",
"lvl": "Level",
"buffed": "Mendapat Buff",
"bodyBody": "Tubuh",
"size": "Ukuran",
@ -37,7 +37,7 @@
"mustache": "Kumis",
"flower": "Bunga",
"accent": "Aksen",
"headband": "Headband",
"headband": "Ikat kepala",
"wheelchair": "Kursi Roda",
"extra": "Ekstra",
"rainbowSkins": "Kulit Warna-Warni",
@ -62,10 +62,10 @@
"autoEquipPopoverText": "Pilih ini jika kamu ingin langsung memakai perlengkapan setelah membelinya.",
"costumeDisabled": "Kamu telah menonaktifkan kostummu.",
"gearAchievement": "Kamu mendapat lencana \"Ultimate Gear\" karena sudah mendapat semua perlengkapan sesuai dengan pekerjaanmu! Kamu sudah melengkapi perlengkapan berikut:",
"gearAchievementNotification": "You have earned the \"Ultimate Gear\" Achievement for upgrading to the maximum gear set for a class!",
"gearAchievementNotification": "Kamu telah memperoleh Pencapaian \"Perlengkapan Terakhir\" karena telah meng-upgrade semua perlengkapan sampai maksimal untuk suatu pekerjaan!",
"moreGearAchievements": "Untuk mendapatkan lebih banyak lencana Ultimate Gear, ubah pekerjaanmu di <a href='/user/settings/site' target='_blank'>Pengaturan &gt; Laman Situs</a> dan beli perlengkapan untuk pekerjaan barumu!",
"armoireUnlocked": "Kalau ingin lebih banyak perlengkapan, coba cek <strong>Peti Ajaib!</strong> Klik Hadiah Peti Ajaib untuk kesempatan mendapatkan Perlengkapan spesial! Kamu juga bisa mendapatkan pengalaman atau makanan.",
"ultimGearName": "Ultimate Gear - <%= ultClass %>",
"ultimGearName": "Perlengkapan Terakhir - <%= ultClass %>",
"ultimGearText": "Telah meng-upgrade set senjata dan pakaian sampai maksimal untuk pekerjaan <%= ultClass %>.",
"level": "Level",
"levelUp": "Naik Level!",
@ -85,7 +85,7 @@
"allocatePerPop": "Tambahkan satu poin kepada Persepsi",
"allocateInt": "Poin yang diberikan untuk Kecerdasan:",
"allocateIntPop": "Tambahkan satu poin kepada Kecerdasan",
"noMoreAllocate": "Sekarang kamu sudah mencapai level 100, kamu tidak akan mendapat poin atribut lagi. Kamu bisa terus menaikkan level, atau mulai petualangan baru dari level 1 dengan menggunakan <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a>!",
"noMoreAllocate": "Sekarang kamu sudah mencapai level 100, kamu tidak akan mendapat poin atribut lagi. Kamu bisa terus menaikkan level, atau mulai petualangan baru dari level 1 dengan menggunakan <a href='https://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a>!",
"stats": "Atribut",
"achievs": "Pencapaian",
"strength": "Kekuatan",
@ -164,7 +164,7 @@
"per": "PER",
"int": "KEC",
"notEnoughAttrPoints": "Kamu tidak memiliki cukup Poin Atribut.",
"classNotSelected": "You must select Class before you can assign Stat Points.",
"classNotSelected": "Kamu harus memilih Pekerjaan sebelum bisa menempatkan Poin Status.",
"style": "Gaya",
"facialhair": "Wajah",
"photo": "Foto",
@ -174,7 +174,7 @@
"latestCheckin": "Check In Terakhir",
"editProfile": "Edit Profil",
"challengesWon": "Tantangan yang Dimenangi",
"questsCompleted": "Misi yang Diselesaikan",
"questsCompleted": "Misi yang diselesaikan",
"headAccess": "Hiasan Kepala.",
"backAccess": "Hiasan Punggung.",
"bodyAccess": "Hiasan Tubuh.",

View file

@ -8,13 +8,13 @@
"commGuideHeadingInteractions": "Interactions in Habitica",
"commGuidePara015": "Habitica mempunyai dua jenis ruang sosial: umum, dan pribadi. Ruang umum meliputi Kedai Minuman, Guild Umum, GitHub, Trello, dan Wiki. Sedangkan ruang pribadi meliputi Guild Pribadi, obrolan Party, dan Pesan Pribadi. Semua Nama Tampilan dan @namapengguna harus menyesuaikan dengan pedoman ruang publik. Untuk mengganti Nama Tampilanmu dan/atau @namapengguna, pada app mobile pergi ke Menu > Pengaturan > Profil. Pada situs, pergi ke Pengguna > Pengaturan.",
"commGuidePara016": "Ketika menjelajahi ruang publik di Habitica, terdapat beberapa peraturan umum untuk memastikan semua orang tetap bahagia dan nyaman.",
"commGuideList02A": "<strong>Hormati satu sama lain</strong>. Bersikaplah sopan, baik, ramah, dan suka membantu. Ingat: Para Habitican datang dari segala latar belakang dan punya pengalaman yang berbeda satu dengan yang lain. Inilah yang membuat Habitica sangat digemari! Membangun komunitas yang berarti saling menghormati dan merayakan segala perbedaan dan kesamaan kita semua.",
"commGuideList02A": "<strong>Hormati satu sama lain</strong>. Bersikaplah sopan, baik, ramah, dan suka membantu. Ingat: Para Habitican datang dari segala latar belakang dan punya pengalaman yang berbeda satu dengan yang lain. Inilah yang membuat Habitica sangat digemari! Membangun komunitas yang berarti saling menghormati dan merayakan segala perbedaan dan kesamaan kita semua.",
"commGuideList02B": "<strong>Patuhi semua<a href='/static/terms' target='_blank'>Syarat dan Ketentuan</a></strong> baik di ruang publik maupun pribadi.",
"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. 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. Attack your Dailies, not each other.",
"commGuideList02D": "<strong>Keep discussions appropriate for all ages</strong>. We have many young Habiticans who use the site! Let's not tarnish any innocents or hinder any Habiticans in their goals.",
"commGuideList02E": "<strong>Avoid profanity. This includes milder, religious-based oaths that may be acceptable elsewhere</strong>. We have people from all religious and cultural backgrounds, and we want to make sure that all of them feel comfortable in public spaces. <strong>If a moderator or 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.",
"commGuideList02F": "<strong>Avoid extended discussions of divisive topics in the Tavern and where it would be off-topic</strong>. If you feel that someone has said something rude or hurtful, do not engage them. If someone mentions something that is allowed by the guidelines but which is hurtful to you, its okay to politely let someone know that. If it is against the guidelines or the Terms of Service, you should flag it and let a mod respond. When in doubt, flag the post.",
"commGuideList02G": "<strong>Patuhi segera segala permintaan Moderator.</strong> Ini juga termasuk, tetapi tidak terbatas pada, memintamu untuk membatasi jumlah postinganmu di ruang tertentu, menghapus konten yang tidak sesuai dari profil, memindahkan diskusimu ke tempat yang lebih sesuai, dll. Jangan berdebat dengan moderator. Jika kamu mempunyai masalah atau pendapat terkait cara bersikap, kirimkan email pada <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>untuk ditindaklanjuti oleh manager komunitas kami.",
"commGuideList02G": "<strong>Patuhi segera segala permintaan Moderator.</strong> Ini juga termasuk, tetapi tidak terbatas pada, memintamu untuk membatasi jumlah postinganmu di ruang tertentu, menghapus konten yang tidak sesuai dari profil, memindahkan diskusimu ke tempat yang lebih sesuai, dll. Jangan berdebat dengan moderator. Jika kamu mempunyai masalah atau pendapat terkait cara bersikap, kirimkan email pada <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>untuk ditindaklanjuti oleh manager komunitas kami.",
"commGuideList02J": "<strong>Do not spam</strong>. Spamming may include, but is not limited to: posting the same comment or query in multiple places, posting links without explanation or context, posting nonsensical messages, posting multiple promotional messages about a Guild, Party or Challenge, or posting many messages in a row. Asking for gems or a subscription in any of the chat spaces or via Private Message is also considered spamming. If people clicking on a link will result in any benefit to you, you need to disclose that in the text of your message or that will also be considered spam.<br/><br/>It is up to the mods to decide if something constitutes spam or might lead to spam, even if you dont feel that you have been spamming. For example, advertising a Guild is acceptable once or twice, but multiple posts in one day would probably constitute spam, no matter how useful the Guild is!",
"commGuideList02K": "<strong>Avoid posting large header text in the public chat spaces, particularly the Tavern</strong>. Much like ALL CAPS, it reads as if you were yelling, and interferes with the comfortable atmosphere.",
"commGuideList02L": "<strong>Kami sangat tidak menyarankan pertukaran informasi pribadi -- khususnya informasi yang dapat digunakan untuk mengidentifikasimu -- di ruang obrolan umum</strong>. Informasi mengidentifikasi dapat termasuk, namun tidak terbatas pada: alamat kamu, alamat email kamu, dan token API/passwordmu. Ini untuk keamananmu! Staf ataupun moderator bisa menghapus postingan sesuai kebijakan mereka. Jika kamu diminta untuk memberi informasi pribadi di dalam sebuah Guild tertutup (?), Party, atau PM, kami sangat menyarankan kamu menolak dengan sopan kemudian menyiagakan staf dan moderator dengan 1) menandakan pesan jika di dalam sebuah Party atau Guild tertutup, atau 2) mengisi <a href='https://contact.habitica.com/' target='_blank'>Kontak Form Moderator</a> dengan tangkapan layar.",
@ -109,7 +109,7 @@
"commGuidePara013": "In a community as big as Habitica, users come and go, and sometimes a staff member or moderator needs to lay down their noble mantle and relax. The following are Staff and Moderators Emeritus. They no longer act with the power of a Staff member or Moderator, but we would still like to honor their work!",
"commGuidePara014": "Staff and Moderators Emeritus:",
"commGuideHeadingFinal": "Bagian Terakhir",
"commGuidePara067": "Maka terimalah ini, wahai Habitican pemberani -- Pedoman Komunitas! Hapus penat keringat di keningmu dan hadiahkan dirimu XP karna telah membaca ini semua. jika kamu masih memiliki pertanyaan mengenai Pedoman Komunitas ini, mohon beritahu kami melalui <a href='https://contact.habitica.com/' target='_blank'>Formulir Kontak Moderator</a>dan kami akan dengan senang hati membantumu.",
"commGuidePara067": "Maka terimalah ini, wahai Habitican pemberani -- Pedoman Komunitas! Hapus penat keringat di keningmu dan hadiahkan dirimu XP karna telah membaca ini semua. jika kamu masih memiliki pertanyaan mengenai Pedoman Komunitas ini, mohon beritahu kami melalui <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> dan kami akan dengan senang hati membantumu.",
"commGuidePara068": "Sekarang majulah, pengembara yang berani, dan kalahkan tugas-tugas itu!",
"commGuideHeadingLinks": "Link yang Berguna",
"commGuideLink01": "<a href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank'>Habitica Help: Ask a Question</a>: a Guild for users to ask questions!",

View file

@ -49,9 +49,10 @@
"balance": "Saldo",
"playerTiers": "Tingkatan Pemain",
"tier": "Tingkat",
"conRewardsURL": "http://habitica.fandom.com/wiki/Contributor_Rewards",
"conRewardsURL": "https://habitica.fandom.com/wiki/Contributor_Rewards",
"surveysSingle": "Membantu Habitica berkembang, baik dengan mengisi survey atau membantu dalam pengujian utama. Terima kasih!",
"surveysMultiple": "Membantu Habitica berkembang sebanyak <%= count %> kali, baik dengan mengisi survey atau membantu dalam pengujian utama. Terima kasih!",
"blurbHallPatrons": "Ini adalah Aula Patron, di mana kami memberi penghormatan kepada para petualang pemberani yang telah membantu Kickstarter asli Habitica. Kami berterima kasih kepada mereka yang membantu kami mewujudkan Habitica menjadi kenyataan!",
"blurbHallContributors": "Ini adalah Aula para Kontributor, di mana kontributor open-source Habitica dicantumkan. Baik melalui kode, seni, musik, tulisan, atau bahkan hanya pertolongan kecil, mereka mendapatkan <a href='http://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'>permata, perlengkapan eksklusif </a>, dan <a href='http://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>titel kebanggaan </a>. Kamu juga bisa berkontribusi untuk Habitica! <a href='http://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Lihat Selengkapnya. </a>"
"blurbHallContributors": "Ini adalah Aula para Kontributor, di mana kontributor open-source Habitica dicantumkan. Baik melalui kode, seni, musik, tulisan, atau bahkan hanya pertolongan kecil, mereka mendapatkan <a href='https://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'>permata, perlengkapan eksklusif </a>, dan <a href='https://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>titel kebanggaan </a>. Kamu juga bisa berkontribusi untuk Habitica! <a href='https://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Lihat Selengkapnya. </a>",
"noPrivAccess": "Kamu tidak memiliki hak yang diperlukan."
}

View file

@ -42,7 +42,7 @@
"sureChangeCustomDayStartTime": "Kamu yakin ingin mengatur waktu Awal Harimu? Keseharianmu akan diulang setiap kamu masuk Habitica pertama kali setelah jam <%= time %>. Pastikan kamu menyelesaikan Keseharian sebelum waktu tersebut!",
"customDayStartHasChanged": "Awal harimu telah diubah.",
"nextCron": "Tugas harian kamu akan diatur ulang saat pertama kalinya kamu menggunakan Habitica setelah <%= time %>. Pastikan kamu sudah menyelesaikan tugas harian kamu sebelum waktu tersebut!",
"customDayStartInfo1": "Habitica memeriksa dan mengatur ulang tugas harian kamu di tengah malam di zona waktumu setiap hari. Kamu bisa mengganti waktu tersebut disini.",
"customDayStartInfo1": "Habitica memeriksa dan mengatur ulang tugas harian kamu di tengah malam pada zona waktumu setiap hari. Kamu bisa menyesuaikan kalau itu terjadi melewati waktu default sini.",
"misc": "Lain-lain",
"showHeader": "Perlihatkan Header",
"changePass": "Ubah Kata Sandi",
@ -55,7 +55,7 @@
"newUsername": "Nama Pengguna Baru",
"dangerZone": "Zona Berbahaya",
"resetText1": "PERINGATAN! Ini me-reset banyak hal dari akunmu. Hal ini sangat tidak disarankan, tetapi bagi beberapa orang ini berguna di awal setelah mencoba bermain di situs ini dalam waktu yang singkat.",
"resetText2": "Kamu akan kehilangan semua level, Koin Emasmu, dan poin Pengalamanmu. Semua tugasmu (kecuali tugas dari tantangan) akan dihapus selamanya dan kamu akan kehilangan data riwayat mereka. Kamu akan kehilangan semua perlengkapanmu tapi kamu masih bisa membelinya lagi, termasuk semua perlengkapan edisi terbatas atau item pelanggan Misteri yang sudah kamu miliki (kamu harus mengambil pekerjaan yang sesuai untuk membeli ulang perlengkapan khusus pekerjaan). Kamu akan tetap memiliki pekerjaanmu yang sekarang serta peliharaan dan tungganganmu. Kamu mungkin lebih memilih untuk menggunakan Batu Kelahiran, yang merupakan pilihan lebih aman yang akan mempertahankan tugas-tugas dan perlengkapanmu.",
"resetText2": "Kamu akan kehilangan semua level, Koin Emas, dan poin Pengalamanmu. Semua tugas (kecuali tugas dari tantangan) akan dihapus selamanya dan kamu akan kehilangan data riwayat mereka. Kamu akan kehilangan semua perlengkapanmu, kecuali Item Misteri Berlangganan dan item perayaan yang diberikan gratisan. Kamu masih bisa membeli item-item yang terhapus itu lagi, termasuk semua perlengkapan edisi terbatas atau item pelanggan Misteri yang sudah kamu miliki (kamu harus mengambil pekerjaan yang sesuai untuk membeli ulang perlengkapan khusus pekerjaan). Kamu akan tetap memiliki pekerjaanmu yang sekarang, pencapaianmu, peliharaan, serta tungganganmu. Kamu mungkin lebih memilih untuk menggunakan Batu Kelahiran, yang merupakan pilihan lebih aman yang akan mempertahankan tugas-tugas dan perlengkapanmu.",
"deleteLocalAccountText": "Apakah kamu yakin? Pilihan ini akan menghapus akun selamanya, dan tidak akan dapat dikembalikan! Kamu harus mendaftar menggunakan akun yang baru untuk dapat kembali menggunakan Habitica. Permata yang telah dibeli atau telah disimpan tidak akan dikembalikan. Jika kamu benar-benar yakin, ketikkan kata sandi pada kotak teks di bawah ini.",
"deleteSocialAccountText": "Apakah kamu yakin? Ini akan menghapus akunmu untuk selamanya, dan tidak akan bisa dikembalikan! Kamu perlu mendaftar akun baru untuk menggunakan Habitica lagi. Permata yang disimpan di Bank atau telah digunakan tidak akan dikembalikan. Jika kamu betul-betul yakin, ketik \"<%= magicWord %>\" ke dalam kotak teks di bawah.",
"API": "API",
@ -71,7 +71,7 @@
"beeminderDesc": "Mengizinkan Beeminder memonitor To Do Habitica kamu secara otomatis. Kamu dapat memutuskan untuk mengatur jumlah target To Do yang selesai per hari atau per minggu, atau kamu dapat memutuskan untuk mengurangi secara berkala jumlah sisa To-Do yang belum selesai. (Arti \"memutuskan\" dalam Beeminder yakni dorongan untuk membayar sejumlah uang sungguhan! Tetapi mungkin saja kamu juga menyukai grafik Beeminder yang menarik.)",
"chromeChatExtension": "Ekstensi Obrolan Chrome",
"chromeChatExtensionDesc": "Ekstensi Obrolan Chrome untuk Habitica menambah kotak obrolan intuitif ke semua laman habitica.com. Ekstensi membuat pengguna dapat melakukan obrolan di Kedai Minum, party mereka, dan guild yang mereka ikuti.",
"otherExtensions": "<a target='blank' href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations'>Ekstensi Lainnya</a>",
"otherExtensions": "<a target='blank' href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations'>Ekstensi Lainnya</a>",
"otherDesc": "Temukan aplikasi, ekstensi, dan peralatan lainnya dalam Habitica wiki.",
"resetDo": "Lakukan, reset akun!",
"resetComplete": "Reset selesai!",
@ -180,7 +180,7 @@
"subscriptionReminders": "Pengingat Berlangganan",
"giftedSubscriptionWinterPromo": "Halo <%= username %>, kamu mendapatkan<%= monthCount %> bulan berlangganan sebagai hadiah dari promosi holiday gift-giving kami!",
"newPMNotificationTitle": "Pesan Baru dari <%= name %>",
"chatExtensionDesc": "Chat Extension for Habitica menambahkan kotak percakapan intuitif di seluruh habitica.com. Dengan ini, pengguna dapat melakukan chat di Kedai Minum, party, dan di guild manapun mereka bergabung.",
"chatExtensionDesc": "<i>Chat Extension for Habitica</i> menambahkan kotak percakapan intuitif di seluruh habitica.com. Dengan ini, pengguna dapat melakukan chat di Kedai Minum, party, dan di guild manapun mereka bergabung.",
"chatExtension": "<a target='blank' href='https://chrome.google.com/webstore/detail/habitrpg-chat-client/hidkdfgonpoaiannijofifhjidbnilbb'>Ekstensi Obrolan Chrome</a> and <a target='blank' href='https://addons.mozilla.org/en-US/firefox/addon/habitica-chat-client-2/'>Ekstensi Obrolan Firefox</a>",
"resetAccount": "Reset Akun",
"bannedSlurUsedInProfile": "Kata pada Nama Penggunamu atau Tentang Diri mengandung bahasa kasar, dan hakmu untuk mengobrol telah dicabut.",
@ -213,5 +213,17 @@
"transaction_buy_money": "<b>Dibeli</b> dengan uang",
"transaction_buy_gold": "<b>Dibeli</b> dengan koin emas",
"transaction_gift_receive": "<b>Diterima</b> dari",
"transaction_admin_update_balance": "<b>Admin</b> diberikan"
"transaction_admin_update_balance": "<b>Admin</b> diberikan",
"passwordIssueLength": "Sandi harus terdiri dari 8 sampai 64 karakter.",
"timestamp": "Cap waktu",
"nextHourglassDescription": "Pelanggan menerima Jam Pasir Mistik pada\ntiga hari pertama dalam satu bulan.",
"transaction_change_class": "Perubahan <b>Pekerjaan</b>",
"transaction_create_challenge": "<b>Telah membuat</b> tantangan",
"transaction_create_bank_challenge": "Telah membuat bank tantangan",
"transaction_create_guild": "<b>Telah membuat</b> guild",
"transaction_rebirth": "Telah menggunakan Batu Kelahiran",
"transaction_release_pets": "Telah melepaskan peliharaan",
"transaction_release_mounts": "Telah melepaskan tunggangan",
"transaction_reroll": "Telah menggunakan Ramuan Penguat",
"transaction_subscription_perks": "Keuntungan <b>berlangganan</b>"
}

View file

@ -2782,5 +2782,7 @@
"headSpecialWinter2023HealerText": "Elmo del Cardinale Rosso",
"headSpecialWinter2023HealerNotes": "Questo elmo da cardinale rosso è perfetto per fischiettare e cantare annunciando la stagione invernale. Aumenta l'Intelligenza di <%= int %>. Equipaggiamento in Edizione Limitata, Inverno 2022-2023.",
"shieldSpecialWinter2023HealerText": "Fresche Composizioni Musicali",
"shieldSpecialWinter2023HealerNotes": "Il tuo canto di gelo e neve calmerà gli animi di tutti coloro che lo ascolteranno. Aumenta la Costituzione di <%= con %>. Equipaggiamento in Edizione Limitata, Inverno 2022-2023."
"shieldSpecialWinter2023HealerNotes": "Il tuo canto di gelo e neve calmerà gli animi di tutti coloro che lo ascolteranno. Aumenta la Costituzione di <%= con %>. Equipaggiamento in Edizione Limitata, Inverno 2022-2023.",
"headSpecialNye2022Notes": "Hai ricevuto un Cappello da Festa Fantastico! Indossalo con orgoglio mentre inauguri il Nuovo Anno! Non conferisce alcun bonus.",
"headSpecialNye2022Text": "Cappello da Festa Fantastico"
}

View file

@ -238,5 +238,6 @@
"winter2023WalrusWarriorSet": "Tricheco (Guerriero)",
"winter2023FairyLightsMageSet": "Luci Fatate (Mago)",
"winter2023CardinalHealerSet": "Cardinale Rosso (Guaritore)",
"spring2023RibbonRogueSet": "Fiocco (Ladro)"
"spring2023RibbonRogueSet": "Fiocco (Ladro)",
"winter2023RibbonRogueSet": "Fiocco (Ladro)"
}

View file

@ -186,7 +186,7 @@
"dropCapReached": "Hai trovato tutti gli oggetti per oggi!",
"mysterySet202011": "Set del Mago Foglioso",
"mysterySet202012": "Set Fenice del Fuoco Ghiacciato",
"mysterySet202101": "Set sciccoso Leopardo delle Nevi",
"mysterySet202101": "Set del Leopardo delle Nevi Sciccoso",
"mysterySet202102": "Set del campione ammaliante",
"mysterySet202103": "Set dell'osservatore di fiori",
"mysterySet202104": "Set del Guardiano cardo",

View file

@ -140,6 +140,9 @@
"achievementWoodlandWizardModalText": "森のペットを全部集めました!",
"achievementWoodlandWizardText": "森の生き物――アナグマ、クマ、鹿、狐、カエル、ハリネズミ、フクロウ、カタツムリ、リス、木人を、すべての基本色で孵化させました!",
"achievementBoneToPick": "骨の髄まで",
"achievementBoneToPickText": "全ての基本のペットとクエストのペットを、骨の薬で孵化させました!",
"achievementBoneToPickModalText": "骨の薬で孵化した全ての基本のペットとクエストのペットを集めました!"
"achievementBoneToPickText": "全ての骨の基本のペットとクエストのペットを孵化させました!",
"achievementBoneToPickModalText": "全ての骨の基本のペットとクエストのペットを集めました!",
"achievementPolarPro": "極地のプロ",
"achievementPolarProText": "全ての極地のペットを孵化させました:くま・狐・ペンギン・クジラ・狼!",
"achievementPolarProModalText": "極地のペットをすべて集めました!"
}

View file

@ -742,5 +742,12 @@
"backgroundAmongGiantMushroomsNotes": "巨大なマッシュルームに驚きましょう。",
"backgroundMistyAutumnForestText": "霧深い秋の森",
"backgroundAutumnBridgeText": "秋の橋",
"backgroundAutumnBridgeNotes": "秋の橋の美しさに感服しましょう。"
"backgroundAutumnBridgeNotes": "秋の橋の美しさに感服しましょう。",
"backgrounds122022": "セット1032022年12月リリース",
"backgroundBranchesOfAHolidayTreeText": "クリスマスツリーの枝",
"backgroundBranchesOfAHolidayTreeNotes": "クリスマスツリーの枝の上で跳んだり跳ねたりしましょう。",
"backgroundInsideACrystalText": "クリスタルのなか",
"backgroundInsideACrystalNotes": "クリスタルのなかから、外の景色を見てみましょう。",
"backgroundSnowyVillageText": "雪の村",
"backgroundSnowyVillageNotes": "雪の村を眺めましょう。"
}

View file

@ -2740,5 +2740,49 @@
"weaponArmoireMagicSpatulaNotes": "食べ物が空中で飛んだりひっくり返ったりするのをご覧あれ。魔法で食べ物が3 回ひっくり返ってからあなたのへらに戻ってきたら、その日はラッキー。知覚が<%= per %>上がります。ラッキー宝箱台所用品セット2個中1つ目のアイテム。",
"weaponArmoireMagicSpatulaText": "魔法のへら",
"shieldArmoireBubblingCauldronText": "ぶくぶくの大釜",
"shieldArmoireBubblingCauldronNotes": "生産性の秘薬を煮詰めたり、辛いスープを作ったりするのにピッタリの釜です。じつは両者にはあまり違いがなかったりして!体質が<%= con %>上がります。ラッキー宝箱台所用品セット2個中1つ目のアイテム。"
"shieldArmoireBubblingCauldronNotes": "生産性の秘薬を煮詰めたり、辛いスープを作ったりするのにピッタリの釜です。じつは両者にはあまり違いがなかったりして!体質が<%= con %>上がります。ラッキー宝箱台所用品セット2個中1つ目のアイテム。",
"headSpecialNye2022Text": "すてきでたわけたパーティーハット",
"headSpecialNye2022Notes": "すてきでたわけたパーティハットをもらいました! 新年を告げる鐘を聞きながら、誇りをもってかぶりましょう! 効果なし。",
"weaponSpecialWinter2023RogueText": "緑色のサテンのサッシュ",
"weaponSpecialWinter2023RogueNotes": "盗賊には罠を張って敵の武器を奪い、そのアイテムをかわいくして返す習性があるという伝説があります。力が<%= str %>上がります。2022年-2023年冬の限定装備。",
"weaponSpecialWinter2023WarriorText": "牙の槍",
"weaponSpecialWinter2023WarriorNotes": "この槍についた2つのとんがりは形がセイウチの牙に似ていますが、二倍はパワフルです。疑いやお馬鹿な詩が逃げ出すまで突きつけましょう。力が<%= str %>上がります。2022年-2023年冬の限定装備。",
"weaponMystery202212Text": "氷のワンド",
"weaponMystery202212Notes": "このワンドについているまばゆい雪の結晶は極寒の冬の夜でも心を温める力を秘めています。効果なし。2022年12月の有料会員アイテム。",
"weaponSpecialWinter2023MageText": "狐火",
"weaponSpecialWinter2023MageNotes": "狐でも炎でもありません。でもとってもおめでたい!知能が<%= int %>、知覚が<%= per %>上がります。2022年-2023年冬の限定装備。",
"weaponSpecialWinter2023HealerText": "投げリース",
"weaponSpecialWinter2023HealerNotes": "このおめでたいのとげのあるリースが敵や障害物に向かって空中を回転し、次の一投のためにブーメランのように戻ってくるのを見届けましょう。知能が<%= int %>上がります。2022年-2023年冬の限定装備。",
"weaponArmoireFinelyCutGemText": "繊細なカットがほどこされた宝石",
"weaponArmoireFinelyCutGemNotes": "よく見つけ出しましたね!この見事で精密なカットの宝石は自慢のコレクションとなるでしょう。そして、あなたが待ち望んだ特別な魔法がかかっているかも。体質が<%= con %>上がります。2022年-2023年冬の限定装備。",
"armorSpecialWinter2023RogueNotes": "アイテムを入手。それをきれいな紙に包む。そして地元の盗賊に贈りましょう!知覚が<%= per %>上がります。2022年-2023年冬の限定装備。",
"armorSpecialWinter2023WarriorNotes": "このタフなセイウチのスーツは、真夜中のビーチを散歩するのにぴったりです。体質が<%= con %>上がります。2022年-2023年冬の限定装備。",
"armorSpecialWinter2023RogueText": "リボンラッピング",
"armorSpecialWinter2023WarriorText": "セイウチスーツ",
"armorMystery202212Notes": "宇宙は寒くても、このすてきなドレスがあれば、空を飛ぶときも心地よく過ごせます。効果なし。2022年12月の有料会員アイテム。",
"armorArmoireJewelersApronNotes": "この汚れたエプロンは創作意欲が湧いたときにおあつらえ向きです。なによりも、必要なものはすべて入れておける何ダースもの小さなポケットがついています。知能が<%= int %>上がります。ラッキー宝箱宝石細工師4個中1つ目のアイテム。",
"armorSpecialWinter2023MageText": "フェアリーライトガウン",
"armorSpecialWinter2023MageNotes": "イルミネーションがついているからと言って、ツリーになれるわけではありません!……いつかはなれるかも。知能が<%= int %>上がります。2022年-2023年冬の限定装備。",
"armorSpecialWinter2023HealerText": "ショウジョウコウカンチョウのスーツ",
"armorSpecialWinter2023HealerNotes": "まばゆい深紅のスーツはあなたが抱える問題の上空を飛ぶのにピッタリです。体質が<%= con %>上がります。2022年-2023年冬の限定装備。",
"armorArmoireJewelersApronText": "宝石細工師のエプロン",
"armorMystery202212Text": "氷河のドレス",
"headSpecialWinter2023MageNotes": "私の瞳の星の輝きは、あなたが星降る夜の薬でたまごをかえしたからでしょうか?知覚が<%= per %>上がります。2022年-2023年冬の限定装備。",
"headSpecialWinter2023RogueText": "ギフト用ちょう結び",
"headSpecialWinter2023RogueNotes": "人々のあなたの髪の「包みを解き」たくなる誘惑はあなたの避けたりかわしたりの練習のチャンスになります。知覚が<%= per %>上がります。2022年-2023年冬の限定装備。",
"headSpecialWinter2023WarriorText": "セイウチヘルメット",
"headSpecialWinter2023WarriorNotes": "このセイウチヘルメットは友達とおしゃべりしたりおしゃれな食事を一緒に食べるのに最適です。力が<%= str %>上がります。2022年-2023年冬の限定装備。",
"headSpecialWinter2023MageText": "フェアリーライトティアラ",
"headSpecialWinter2023HealerText": "ショウジョウコウカンチョウヘルメット",
"headSpecialWinter2023HealerNotes": "このショウジョウコウカンチョウのヘルメットは、冬の季節を告げるためにさえずったり歌ったりするのにぴったりです。知能が<%= int %>上がります。2022年-2023年冬の限定装備。",
"shieldSpecialWinter2023WarriorText": "オイスターシールド",
"shieldSpecialWinter2023HealerNotes": "あなたの氷と雪の歌は聴く人の魂を癒やすでしょう。体質が<%= con %>上がります。2022年-2023年冬の限定装備。",
"shieldSpecialWinter2023WarriorNotes": "セイウチいわく『さあいろんなことを話し合うときがついにやってきた。オイスターシールドだの――誰かが歌っていた冬のベルの歌だの――あるいはこの盾の真珠の行方の謎――または新年がもたらすもの!』体質が<%= con %>上がります。2022年-2023年冬の限定装備。",
"shieldSpecialWinter2023HealerText": "魂をゆさぶる歌",
"shieldArmoireJewelersPliersNotes": "切って、ねじって、はさんで、それから…。この道具ならあなたがイメージできるものならどんなものでも作成可能です。力が<%= str %>上がります。ラッキー宝箱宝石細工師4個中3つ目のアイテム。",
"shieldArmoireJewelersPliersText": "宝石細工師のペンチ",
"headAccessoryMystery202212Text": "氷のティアラ",
"eyewearArmoireJewelersEyeLoupeNotes": "このルーペは作業中のものを拡大し、細部まで完全に見ることができます。ラッキー宝箱宝石細工師4個中2つ目のアイテム。",
"eyewearArmoireJewelersEyeLoupeText": "宝石鑑定用ルーペ",
"headAccessoryMystery202212Notes": "この金細工のティアラであなたの優しさと思いやりの心を新記録まで高めましょう。効果なし。2022年12月の有料会員アイテム。"
}

View file

@ -314,7 +314,7 @@
"groupManagementControls": "グループのマネジメント・コントロール",
"groupManagementControlsDesc": "タスクが本当に完了されたかを確認するためにタスク承認機能を使いましょう。グループメンバーへ任務を共有するためのグループマネージャーを追加し、全てのチームメンバーのためのプライベートなグループチャットを楽しみましょう。",
"inGameBenefits": "ゲーム中のメリット",
"inGameBenefitsDesc": "グループメンバーは、限定のツノウサギの乗騎だけでなく、毎月の特別な装備セットや、ゴールドでジェムを買う機能など、有料プランの特典を全て受けられます。",
"inGameBenefitsDesc": "グループメンバーは、限定のジャッカロープの乗騎だけでなく、毎月の特別な装備セットや、ゴールドでジェムを買う機能など、有料プランの特典を全て受けられます。",
"inspireYourParty": "パーティーで刺激し合い、一緒に人生をゲーム化しましょう。",
"letsMakeAccount": "まずはアカウントを作成しましょう",
"nameYourGroup": "次に、あなたのグループの名前をつけましょう",
@ -324,7 +324,7 @@
"gettingStarted": "はじめよう",
"congratsOnGroupPlan": "おめでとうございます! あなたの新しいグループが設立されました。こちらにいくつかのよくある質問と答えがあります。",
"whatsIncludedGroup": "有料プランに含まれるもの",
"whatsIncludedGroupDesc": "グループのメンバー全員が有料プランの特典をすべて受けられます。毎月の有料会員アイテム、ゴールドでジェムを買う機能、そしてグループプランメンバーシップのユーザー限定のロイヤルパープルのツノウサギの乗騎などです。",
"whatsIncludedGroupDesc": "グループのメンバー全員が有料プランの特典をすべて受けられます。毎月の有料会員アイテム、ゴールドでジェムを買う機能、そしてグループプランメンバーシップのユーザー限定のロイヤルパープルのジャッカロープの乗騎などです。",
"howDoesBillingWork": "どのように課金しますか?",
"howDoesBillingWorkDesc": "グループリーダーは、月ごとの基準でグループメンバー数に基づいた請求をされます。この料金には、グループリーダーのための $9 (USD) がふくまれ、 さらに各グループメンバーごとに $3 USD が加算されます。 例えば、4人のユーザーのグループは、1人のグループリーダーと3人のグループメンバーで構成されるため、月ごとに $18 USD の費用がかかります。",
"howToAssignTask": "どのようにタスクを割り当てますか?",

View file

@ -188,7 +188,7 @@
"fall2020WraithWarriorSet": "レイス(戦士)",
"royalPurpleJackolantern": "ロイヤルパープルのジャック・オ・ランタン",
"novemberYYYY": "<%= year %>年11月",
"g1g1Limitations": "このイベントは日本時間で12月16日の22:00時から1月6日10:00時までの期間限定です。プロモーションは他のプレイヤーにギフトを贈った際にのみ適用されます。もしギフトを受け取った人がすでに有料会員の場合、有料会員期間が延長されます。この延長は、現在の有料会員期間を満了もしくはキャンセルした後にのみ適用されます。",
"g1g1Limitations": "このイベントは日本時間で12月15日の22:00から1月9日13:59までの期間限定です。プロモーションは他のプレイヤーにギフトを贈った際にのみ適用されます。もしギフトを受け取った人がすでに有料会員の場合、有料会員期間が延長されます。この延長は、現在の有料会員期間を満了もしくはキャンセルした後にのみ適用されます。",
"limitations": "制限事項",
"g1g1HowItWorks": "「有料プランをプレゼントする」をタップして、贈る相手のユーザーネームを入力し、プレゼントする有料プランの期間を選択してください。自動的にあなたのアカウントにもプレゼントした分と同じ期間のプランが無料で適用されます。",
"howItWorks": "機能説明",
@ -235,5 +235,9 @@
"fall2022KappaRogueSet": "カッパ(盗賊)",
"fall2022OrcWarriorSet": "オーク(戦士)",
"gemSaleHow": "<%= eventStartMonth %> <%= eventStartOrdinal %> から<%= eventEndOrdinal %>の間、通常どおりジェムを購入するだけで、あなたのアカウントはプロモーション分のジェムを受け取れます。買い物したり、分け合ったり、将来のため貯めておけるジェムが増えました!",
"gemSaleLimitations": "このプロモーションは期間限定のイベント中にのみ適用されます。イベントは米国東部標準時 <%= eventStartMonth %> <%= eventStartOrdinal %> の午前 8:00(12:00 UTC) に開始し、米国東部標準時 <%= eventStartMonth %> <%= eventEndOrdinal %> の午後 8:00 ( 00:00 UTC)に終了します。 割引はジェムを自分で購入する場合にのみ利用できます。"
"gemSaleLimitations": "このプロモーションは期間限定のイベント中にのみ適用されます。イベントは米国東部標準時 <%= eventStartMonth %> <%= eventStartOrdinal %> の午前 8:00(12:00 UTC) に開始し、米国東部標準時 <%= eventStartMonth %> <%= eventEndOrdinal %> の午後 8:00 ( 00:00 UTC)に終了します。 割引はジェムを自分で購入する場合にのみ利用できます。",
"winter2023WalrusWarriorSet": "セイウチ(戦士)",
"winter2023FairyLightsMageSet": "フェアリーライト(魔道士)",
"winter2023CardinalHealerSet": "ショウジョウコウカンチョウ(治療師)",
"winter2023RibbonRogueSet": "リボン(盗賊)"
}

View file

@ -28,7 +28,7 @@
"magicalBee": "不思議なハチ",
"hopefulHippogriffPet": "希望に満ちたヒッポグリフ",
"hopefulHippogriffMount": "希望に満ちたヒッポグリフ",
"royalPurpleJackalope": "ロイヤルパープルのツノウサギ",
"royalPurpleJackalope": "ロイヤルパープルのジャッカロープ",
"invisibleAether": "不可視のエーテル獣",
"potion": "<%= potionType %> 薬",
"egg": "<%= eggType %>のたまご",

View file

@ -129,7 +129,7 @@
"subscriptionBenefit1": "商人のAlexanderは、市場でジェムを1つにつき20ゴールドですぐ売ってくれます",
"subscriptionBenefit3": "毎日の落とし物上限を2倍にして、Habiticaでより多くのアイテムを見つけましょう。",
"subscriptionBenefit4": "毎月、あなたのアバターを着飾るためのユニークでおしゃれなアイテムです。",
"subscriptionBenefit5": "初めて有料会員になったときは、ロイヤルパープルのツノウサギのペットを受け取れます。",
"subscriptionBenefit5": "初めて有料会員になったときは、ロイヤルパープルのジャッカロープのペットを受け取れます。",
"subscriptionBenefit6": "タイムトラベラーの店でアイテムを買うために神秘の砂時計を手に入れましょう!",
"purchaseAll": "セットを購入する",
"gemsRemaining": "残りのジェム",
@ -213,5 +213,6 @@
"mysterySet202208": "はつらつポニーテールセット",
"mysterySet202209": "魔法学者セット",
"mysterySet202210": "くちなわセット",
"mysterySet202211": "エレクトロマンサーセット"
"mysterySet202211": "エレクトロマンサーセット",
"mysterySet202212": "氷のガーディアンセット"
}

View file

@ -1,10 +1,10 @@
{
"achievement": "Pencapaian",
"onwards": "Onwards!",
"levelup": "By accomplishing your real life goals, you leveled up and are now fully healed!",
"reachedLevel": "Anda Telah Mencapai Tahap <%= level %>",
"achievementLostMasterclasser": "Quest Completionist: Masterclasser Series",
"achievementLostMasterclasserText": "Completed all sixteen quests in the Masterclasser Quest Series and solved the mystery of the Lost Masterclasser!",
"onwards": "Seterusnya!",
"levelup": "Dengan mencapai matlamat hidup sebenar anda, kamu meratakan dan kini sembuh sepenuhnya!",
"reachedLevel": "Anda Telah Mencapai Tahap <%= tahap %>",
"achievementLostMasterclasser": "Pencari Penyelesaian: Siri Masterclasser",
"achievementLostMasterclasserText": "Menyelesaikan kesemua enam belas pencarian dalam Siri Pencarian Masterclasser dan menyelesaikan misteri Masterclasser yang Hilang!",
"achievementBackToBasics": "Kembali kepada Asas",
"viewAchievements": "Lihat Pencapaian",
"letsGetStarted": "Mari kita mulakan!",
@ -16,23 +16,131 @@
"achievementBackToBasicsModalText": "Anda sudah mengumpul semua Haiwan Peliharaan Asas!",
"hideAchievements": "Menyembui <%= category %>",
"showAllAchievements": "Tunjukkan Semua<%= category %>",
"onboardingCompleteDesc": "Anda telah memperoleh <strong>5 pencapaian</strong>dan<strong class=\"gold-amount\">100</strong>emas sebagai ganjaran untuk melengkapi senarai ini.",
"onboardingCompleteDesc": "Kamu telah mendapat <strong>5 Pencapaian</strong> dan <strong class=\"gold-amount\">100 Mata emas</strong> kerana melengkapkan senarai.",
"earnedAchievement": "Anda telah memperoleh pencapaian!",
"gettingStartedDesc": "Mari kita mencipta tugas, menyelesaikannya, dan kemudian memeriksa ganjaran anda. Anda akan mendapat <strong>5 pencapaian</strong>dan<strong class=\"gold-amount\">100 emas</strong>setelah anda selesai dengan tugas anda!",
"achievementPurchasedEquipmentText": "Sudah membeli peralatan pertama mereka.",
"achievementPurchasedEquipment": "Membeli Peralatan",
"achievementPurchasedEquipment": "Pembelian peralatan",
"achievementFedPetText": "Sudah memberi makanan kepada Haiwan Peliharaan pertama mereka.",
"achievementFedPet": "Memberi makanan kepada satu Haiwan Peliharaan",
"achievementHatchedPetModalText": "Pergi ke inventori anda dan cuba menggabungkan Potion Penetasan dengan satu telur",
"achievementHatchedPetModalText": "Pergi ke inventori anda dan cuba gabungkan Ramuan menetas dan Telur",
"achievementHatchedPetText": "Sudah menetaskan Haiwan Peliharaan pertama mereka.",
"achievementHatchedPet": "Menetaskan satu Haiwan Peliharaan",
"achievementCompletedTaskModalText": "Semakkan mana-mana tugasan anda untuk mendapat ganjaran",
"achievementCompletedTaskText": "Sudah menyelesaikan tugas pertama mereka.",
"achievementCompletedTask": "Selesaikan Satu Tugas",
"achievementCompletedTask": "Selesaikan tugasan",
"achievementCreatedTaskModalText": "Tambahkan tugas untuk sesuatu yang anda ingin mencapai dalam minggu ini",
"achievementCreatedTaskText": "Sudah mencipta tugas pertama mereka.",
"achievementCreatedTask": "Mencipta satu Tugas",
"achievementCreatedTask": "Buat tugas pertama anda",
"achievementMonsterMagusModalText": "Anda sudah mengumpul semua Haiwan Peliharaan Zombie!",
"achievementMonsterMagusText": "Sudah mengumpul semua Haiwan Peliharaan Zombie.",
"achievementPartyOn": "Kumpulan anda berkembang menjadi 4 orang ahli!"
"achievementPartyOn": "Kumpulan anda berkembang menjadi 4 orang ahli!",
"onboardingProgress": "<%= Peratusan %>% Kemajuan",
"yourRewards": "Ganjaran anda",
"achievementJustAddWaterModalText": "Telah selesai pencarian haiwan peliharaan seperti Sotong, Kuda Laut, Sotong Katak, Ikan Paus, Penyu, Siput Laut, Ular Laut dan Ikan Lumba-Lumba!",
"achievementJustAddWater": "Hanya Tambah Air",
"achievementMindOverMatterModalText": "Anda telah menyelesaikan pencarian haiwan peliharaan Batu, Lendir dan Benang!",
"foundNewItems": "Anda menemui item baharu!",
"achievementMindOverMatter": "Fikiran Daripada Perkara",
"yourProgress": "Kemajuan Anda",
"foundNewItemsCTA": "Pergi ke Inventori anda dan cuba gabungkan ramuan penetasan dan telur baharu anda!",
"achievementVioletsAreBlueModalText": "Anda mengumpul semua Haiwan Peliharaan Haiwan peliharaan gula-gula kapas biru!",
"achievementMindOverMatterText": "Telah menyelesaikan pencarian haiwan peliharaan Batu, Lendir dan Benang.",
"achievementLostMasterclasserModalText": "Anda menyelesaikan kesemua enam belas pencarian dalam Siri Pencarian Masterclasser dan menyelesaikan misteri Masterclasser yang Hilang!",
"onboardingComplete": "Anda telah menyelesaikan tugasan anda!",
"achievementJustAddWaterText": "Telah selesai pencarian haiwan peliharaan seperti Sotong, Kuda Laut, Sotong Katak, Ikan Paus, Penyu, Siput Laut, Ular Laut dan Ikan Lumba-Lumba.",
"achievementDomesticatedModalText": "Anda mengumpul semua haiwan peliharaan yang dijinakkan!",
"onboardingCompleteDescSmall": "Jika anda mahukan lebih banyak lagi, lihat Pencapaian dan mula mengumpul!",
"foundNewItemsExplanation": "Menyelesaikan tugas memberi anda peluang untuk mencari barang, seperti Telur, Ramuan Penetasan dan Makanan Haiwan.",
"achievementZodiacZookeeper": "Zodiak Penjaga Zoo",
"achievementShadyCustomer": "Pelanggan Rendang",
"achievementShadyCustomerText": "Telah mengumpul semua Haiwan Peliharaan Terendak.",
"achievementShadyCustomerModalText": "Anda mengumpul semua Haiwan Peliharaan Terendak!",
"achievementShadeOfItAll": "Terendak Semuanya",
"achievementShadeOfItAllText": "Telah menjinakkan semua Gunung Naungan.",
"achievementShadeOfItAllModalText": "Anda menjinakkan semua Gunung Naungan!",
"achievementAllYourBaseText": "Telah menjinakkan semua Lekapan Asas.",
"achievementKickstarter2019": "Pin Penyokong Kickstarter",
"achievementAridAuthority": "Kuasa gersang",
"achievementAridAuthorityModalText": "Anda menjinakkan semua Gunung Gurun!",
"achievementAllYourBaseModalText": "Anda menjinakkan semua Pelekap Pangkalan!",
"achievementUndeadUndertakerText": "Telah menjinakkan semua Zombi Mounts.",
"achievementBackToBasicsText": "Telah mengumpul semua Haiwan Peliharaan Asas.",
"achievementAridAuthorityText": "Telah menjinakkan semua Gunung Gurun.",
"achievementUndeadUndertakerModalText": "Anda menjinakkan semua Zombi Mounts!",
"achievementMonsterMagus": "Raksasa Magus",
"achievementKickstarter2019Text": "Pin Menyokong Projek Kickstarter 2019",
"achievementTickledPinkText": "Telah mengumpulkan seluruh permen kapas peliharaan Merah Jambu.",
"achievementPurchasedEquipmentModalText": "Peralatan adalah cara untuk mempersonalisasikan avatarmu dan meningkatkan sats",
"achievementPearlyProText": "Telah menjinakkan jumlah semua putih.",
"achievementRosyOutlookText": "Telah menjinakkan semua permen kapas jumlah Merah Jambu.",
"achievementBugBonanzaModalText": "Anda selesai pencarian dan bela kumbang, kupu-kupu, siput, dan laba-laba!",
"achievementRosyOutlook": "Pandangan Kemerahan",
"achievementTickledPink": "Kegelian Merah Jambu",
"achievementPearlyProModalText": "Anda menjinakkan semua jumlah putih!",
"achievementPrimedForPainting": "Siap untuk lukisan",
"achievementBugBonanza": "Tambang Serangga",
"achievementPearlyPro": "Mutiara pro",
"achievementBugBonanzaText": "Telah selesai pencarian dan bela kumbang, kupu, siput, dan laba-laba.",
"achievementPrimedForPaintingModalText": "Anda mengoleksi semua Peliharaan Putih!",
"achievementRosyOutlookModalText": "anda menjinakkan semua permen kapas jumlah Merah Jambu!",
"achievementFedPetModalText": "Ada berbagai jenis makanan, tapi peliharaan bisa memilih",
"achievementPrimedForPaintingText": "telah mengumpulkan seluruh Peliharaan Putih.",
"achievementTickledPinkModalText": "Anda mengoleksi semua permen kapas peliharaan Merah Jambu!",
"achievementUndeadUndertaker": "Makam Mayat Hidup",
"achievementGoodAsGoldText": "telah mengumpulkan seluruh Peliharaan Emas.",
"achievementGoodAsGoldModalText": "Anda mengoleksi semua peliharaan emas!",
"achievementFreshwaterFriendsModalText": "Anda menyelesaikan bela dan pencarian axolotl, katak, dan badak sungai!",
"achievementGoodAsGold": "Baik Sebagai Emas",
"achievementAllThatGlitters": "Semua Itu Bergemerlapan",
"achievementBareNecessitiesModalText": "Anda selesai bela dan pencarian monyet, kungkang, dan pokok pet quests!",
"achievementFreshwaterFriends": "Teman Air Tawar",
"achievementBareNecessities": "Kebutuhan yang Kosong",
"achievementBoneCollectorModalText": "Anda mengoleksi semua kerangka peliharaan!",
"achievementSkeletonCrewModalText": "Anda menjinakkan semua jumlah kerangka!",
"achievementSeeingRedModalText": "Anda mengoleksi semua peliharaan merah!",
"achievementRedLetterDayText": "Telah menjinakkan jumlah semua merah.",
"achievementRedLetterDayModalText": "Anda menjinakkan semua jumlah merah!",
"achievementSeeingRed": "Melihat merah",
"achievementSkeletonCrewText": "Jumlah kerangka semua telah dijinakkan.",
"achievementSkeletonCrew": "Kakitangan Kerangka",
"achievementSeeingRedText": "Telah mengumpulkan semua peliharaan merah.",
"achievementBoneCollectorText": "Telah mengumpulkan seluruh kerangka peliharaan.",
"achievementRedLetterDay": "Hari Huruf Merah",
"achievementAllThatGlittersModalText": "Anda menjinakkan semua jumlah emas!",
"achievementAllThatGlittersText": "Semua jumlah emas telah dijinakkan.",
"achievementSeasonalSpecialistText": "Telah menyelesaikan pencarian sepanjang musim semi dan musim dingin: Perburuan Telur, Trapper Santa dan Menemukan Anak Beruang Kutub!",
"achievementWildBlueYonderModalText": "Anda menjinakkan semua jumlah permen kapas biru!",
"achievementVioletsAreBlueText": "Telah mengumpulkan seluruh permen kapas peliharaan biru.",
"achievementDomesticated": "E-I-E-I-O",
"achievementWildBlueYonderText": "Telah menjinakkan semua jumlah permen kapas biru.",
"achievementVioletsAreBlue": "Bunga violet berwarna biru",
"achievementWildBlueYonder": "Liar biru gelap",
"achievementSeasonalSpecialistModalText": "Anda telah menyelesaikan semua pencarian musiman!",
"achievementSeasonalSpecialist": "Spesialis Musiman",
"achievementLegendaryBestiary": "Legendaris Bestiary",
"achievementZodiacZookeeperText": "Menetas semua warna standar haiwan zodiak: Tikus, lembu, arnab, ular, kuda, biri-biri, monyet, ayam jantan, serigala, harimau, babi terbang dan naga!",
"achievementZodiacZookeeperModalText": "Telah mengumpul semua Haiwan Zodiak!",
"achievementBirdsOfAFeather": "Burung Sejenis",
"achievementBirdsOfAFeatherText": "Menetas semua warna standar haiwan peliharaan terbang: Babi terbang, burung hantu, burung kakak tua, pterodactyl, elang, helang, burung merak dan ayam jantan!",
"achievementReptacularRumble": "Reptilia Berkeroncong",
"achievementBirdsOfAFeatherModalText": "Mengumpul semua haiwan peliharaan terbang!",
"achievementReptacularRumbleText": "Menetas semua warna reptilia standard: Buaya, Pterodactyl, Ular, Triceratops, Kura-kura, Tyrannosaurus Rex dan Velociraptor!",
"achievementReptacularRumbleModalText": "Mengumpul semua haiwan peliharaan reptilia!",
"achievementGroupsBeta2022": "Penguji beta interaktif",
"achievementGroupsBeta2022Text": "Anda dan pasukan anda memberikan maklum balas yang tidak ternilai untuk membantu menguji Habitica.",
"achievementGroupsBeta2022ModalText": "Anda dan pasukan anda membantu Habitica dengan menguji dan memberi maklum balas!",
"achievementWoodlandWizard": "Hutan Sihir",
"achievementWoodlandWizardText": "Anda telah menetas semua warna makhluk hutan standard: Badger, beruang, rusa, musang, katak, landak, burung hantu, siput, tupai dan kerdil!",
"achievementWoodlandWizardModalText": "Mengumpul semua haiwan peliharaan hutan!",
"achievementBoneToPick": "Tulang untuk memilih",
"achievementBoneToPickText": "Anda telah menetas semua Haiwan Kesayangan Klasik dan Haiwan Kerangka Quest!",
"achievementBoneToPickModalText": "Anda Mengumpul semua Haiwan Kesayangan Klasik dan Haiwan Kerangka!",
"achievementPolarPro": "kutub profesional",
"achievementPolarProText": "Menetas semua haiwan peliharaan Artik: Beruang, musang, penguin, ikan paus dan serigala!",
"achievementPolarProModalText": "Anda telah mengumpul semua haiwan peliharaan kutub!",
"achievementBareNecessitiesText": "Selesai pencarian haiwan peliharaan monyet, kemalasan dan kerdil.",
"achievementFreshwaterFriendsText": "Selesai pencarian haiwan peliharaan untuk Axolotl, Katak dan Badak Sungai.",
"achievementLegendaryBestiaryText": "Menetas semua warna haiwan peliharaan Mythic lalai: Naga, babi terbang, griffin, ular laut dan unicorn!",
"achievementBoneCollector": "Pengumpul Tulang"
}

View file

@ -5,5 +5,7 @@
"communityInstagram": "Instagram",
"clearBrowserData": "Hapuskan Data Pelayar Web",
"termsAndAgreement": "Dengan klik butang di bawah, anda diandaikan telah membaca serta setuju dengan <a href='/static/terms'>Syarat Perkhidmatan</a> dan <a href='/static/privacy'>Dasar Privasi</a>.",
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Alat & Sambungan Tambahan</a>"
"communityExtensions": "Alat tambah dan sambungan",
"companyAbout": "bagaimana ia berfungsi",
"companyBlog": "Blog"
}

View file

@ -1,13 +1,13 @@
{
"subscription": "Langganan",
"subscriptions": "Langganan-langganan",
"sendGems": "Send Gems",
"buyGemsGold": "Beli permata dengan syiling emas",
"sendGems": "Hantar Permata",
"buyGemsGold": "Beli Permata dengan Mata Emas",
"mustSubscribeToPurchaseGems": "Mesti melanggan untuk membeli permata dengan GP",
"reachedGoldToGemCap": "You've reached the Gold=>Gem conversion cap <%= convCap %> for this month. We have this to prevent abuse / farming. The cap resets within the first three days of each month.",
"reachedGoldToGemCapQuantity": "Your requested amount <%= quantity %> exceeds the Gold=>Gem conversion cap <%= convCap %> for this month. We have this to prevent abuse / farming. The cap resets within the first three days of each month.",
"mysteryItem": "Barang bulanan eksklusif",
"mysteryItemText": "Each month you will receive a unique cosmetic item for your avatar! Plus, for every three months of consecutive subscription, the Mysterious Time Travelers will grant you access to historic (and futuristic!) cosmetic items.",
"mysteryItemText": "Setiap bulan anda akan menerima item kosmetik yang unik untuk avatar anda! Selain itu, untuk setiap tiga bulan langganan berturut-turut, Pengembara Masa Misterius akan memberikan anda akses kepada barangan kosmetik bersejarah (dan futuristik!).",
"exclusiveJackalopePet": "Exclusive pet",
"giftSubscription": "Want to gift a subscription to someone?",
"giftSubscriptionText4": "Thanks for supporting Habitica!",
@ -120,7 +120,7 @@
"choosePaymentMethod": "Choose your payment method",
"buyGemsSupportsDevs": "Purchasing Gems supports the developers and helps keep Habitica running",
"support": "SUPPORT",
"gemBenefitLeadin": "Gems allow you to buy fun extras for your account, including:",
"gemBenefitLeadin": "Apa yang anda boleh beli dengan Permata?",
"gemBenefit1": "Unique and fashionable costumes for your avatar.",
"gemBenefit2": "Backgrounds to immerse your avatar in the world of Habitica!",
"gemBenefit3": "Exciting Quest chains that drop pet eggs.",

View file

@ -125,7 +125,7 @@
"birthdayCardNotes": "Envie um cartão de aniversário para um membro da equipa.",
"birthday0": "Parabéns pra você!",
"birthdayCardAchievementTitle": "Aniversário Próspero",
"birthdayCardAchievementText": "Muitas respostas felizes! Enviou ou recebeu <%= cards %> cartões de aniversário.",
"birthdayCardAchievementText": "Muitas respostas felizes! Enviou ou recebeu <%= count %> cartões de aniversário.",
"congratsCard": "Cartão de Parabéns",
"congratsCardExplanation": "Ambos recebem a conquista de Companheiro Congrulatório!",
"congratsCardNotes": "Envia um cartão de Parabéns a um membro da equipa.",

View file

@ -132,7 +132,7 @@
"achievementBirdsOfAFeatherModalText": "Você coletou todos os mascotes voadores!",
"achievementGroupsBeta2022Text": "Você e seu grupo deram um feedback inestimável para ajudar a testar o Habitica.",
"achievementGroupsBeta2022ModalText": "Você e seu grupo ajudaram o Habitica, testando e dando o seu feedback!",
"achievementReptacularRumbleModalText": "Você coletou todos os mascotes do tipo réptil!",
"achievementReptacularRumbleModalText": "Você coletou todos os mascotes répteis!",
"achievementReptacularRumble": "Répteis Reptumbantes",
"achievementReptacularRumbleText": "Coletou todos os mascotes comuns do tipo réptil: Cobra, Jacaré, Pterodáctilo, Tartaruga, Tiranossauro, Tricerátops e Velociraptor!",
"achievementGroupsBeta2022": "Testador Beta Interativo",

View file

@ -1,6 +1,6 @@
{
"FAQ": "FAQ",
"termsAndAgreement": "Ao clicar no botão abaixo, você afirma que leu e aceitou os <a href='/static/terms'>Termos de Serviço</a> e <a href='/static/privacy'>Política de Privacidade</a>.",
"termsAndAgreement": "Ao clicar no botão abaixo, você afirma que leu e aceita os <a href='/static/terms'>Termos de Serviço</a> e <a href='/static/privacy'>Política de Privacidade</a>.",
"accept1Terms": "Ao clicar no botão abaixo, eu concordo com os",
"accept2Terms": "e com a",
"chores": "Afazeres",

View file

@ -2782,5 +2782,7 @@
"shieldSpecialWinter2023WarriorText": "Escudo de Ostra",
"shieldSpecialWinter2023WarriorNotes": "A hora chegou, a Morsa diz, de dizer muitas coisas: sobre conchas de ostras—e sinos do inverno—sobre canções que alguém canta—e sobre onde está a pérola deste escudo—ou o que mais o novo ano trouxer! Aumenta Constituição em <%= con %>. Edição Limitada do Equipamento de Inverno de 2022-2023.",
"shieldSpecialWinter2023HealerText": "Geléias Legais",
"shieldSpecialWinter2023HealerNotes": "Sua canção de geada e neve acalmará os espíritos de todos que ouvirem. Aumenta Constituição em <%= con %>. Edição Limitada do Equipamento de Inverno de 2022-2023."
"shieldSpecialWinter2023HealerNotes": "Sua canção de geada e neve acalmará os espíritos de todos que ouvirem. Aumenta Constituição em <%= con %>. Edição Limitada do Equipamento de Inverno de 2022-2023.",
"headSpecialNye2022Text": "Chapéu de Festa Fantástico",
"headSpecialNye2022Notes": "Você recebeu um Chapéu de Festa Fantástico! Use com orgulho enquanto curte o Ano Novo! Não confere benefícios."
}

View file

@ -239,5 +239,6 @@
"winter2023FairyLightsMageSet": "Luzes de Natal (Mago)",
"winter2023CardinalHealerSet": "Cardeal (Curandeiro)",
"spring2023RibbonRogueSet": "Fita (Gatuno)",
"winter2023WalrusWarriorSet": "Morsa (Guerreiro)"
"winter2023WalrusWarriorSet": "Morsa (Guerreiro)",
"winter2023RibbonRogueSet": "Fita (Gatuno)"
}

View file

@ -748,5 +748,6 @@
"backgroundInsideACrystalText": "Внутри кристалла",
"backgroundBranchesOfAHolidayTreeNotes": "Порезвитесь на ветвях праздничной елки.",
"backgroundSnowyVillageText": "Снежная деревня",
"backgroundSnowyVillageNotes": "Полюбуйтесь заснеженной деревней."
"backgroundSnowyVillageNotes": "Полюбуйтесь заснеженной деревней.",
"backgroundInsideACrystalNotes": "Наблюдайте за внешним миром из кристалла."
}

View file

@ -2742,5 +2742,33 @@
"weaponSpecialWinter2023RogueText": "Зеленый атласный пояс",
"weaponSpecialWinter2023WarriorNotes": "Два зубца этого копья по своей форме напоминают бивни моржа, но в два раза мощнее. Подкалывайте сомнения до тех пор пока они не отступят! Увеличивает силу на <%= str %>. Ограниченный выпуск зимы 2022-2023.",
"weaponSpecialWinter2023RogueNotes": "Легенды рассказывают, как разбойники заманивают своих противников в западню, обезоруживают их, а затем возвращают им их же оружие, просто чтобы быть милыми. Увеличивает Силу на <%= str %>. Ограниченный выпуск зимы 2022-2023.",
"weaponSpecialWinter2023WarriorText": "Бивневое копье"
"weaponSpecialWinter2023WarriorText": "Бивневое копье",
"headSpecialNye2022Text": "Фантастический праздничный колпак",
"headSpecialNye2022Notes": "Вы получили фантастический праздничный колпак! Носите его с гордостью, встречая Новый год! Бонусов не дает.",
"armorSpecialWinter2023HealerText": "Костюм кардинала",
"armorSpecialWinter2023HealerNotes": "Этот яркий костюм кардинала идеально подходит для того, чтобы летать высоко над своими проблемами. Увеличивает телосложение на <%= con %>. Ограниченный выпуск зимы 2022-2023.",
"armorSpecialWinter2023WarriorText": "Костюм моржа",
"armorSpecialWinter2023WarriorNotes": "Этот прочный костюм моржа идеально подходит для прогулки по пляжу посреди ночи. Увеличивает телосложение на <%= con %>. Ограниченный выпуск зимы 2022-2023.",
"armorMystery202212Text": "Ледяное платье",
"weaponMystery202212Notes": "Светящаяся снежинка в этом жезле способна согреть сердце даже в самую холодную зимнюю ночь! Бонусов не дает. Подарок подписчикам декабря 2022.",
"weaponArmoireFinelyCutGemText": "Идеальный драгоценный камень",
"armorArmoireJewelersApronText": "Фартук ювелира",
"shieldArmoireJewelersPliersText": "Ювелирные плоскогубцы",
"headAccessoryMystery202212Text": "Ледяная тиара",
"headSpecialWinter2023WarriorText": "Шлем моржа",
"headSpecialWinter2023HealerText": "Шлем кардинала",
"eyewearArmoireJewelersEyeLoupeText": "Глазная лупа ювелира",
"weaponSpecialWinter2023HealerText": "Метательный венок",
"weaponSpecialWinter2023MageText": "Лисий огонь, ложный огонь",
"weaponSpecialWinter2023HealerNotes": "Смотрите, как этот праздничный, колючий венок движется по воздуху прямо по направлению к вашему противнику или препятствиям на вашем пути, а затем возвращается к вам обратно, как бумеранг, ожидая нового броска. Увеличивает интеллект на <%= int %>. Ограниченный выпуск зимы 2022 - 2023.",
"weaponArmoireFinelyCutGemNotes": "Какая находка! Теперь этот потрясающий драгоценный камень будет украшать вашу коллекцию. Возможно, в нем заключена особая магия, которая только и ждет, чтобы вы ею воспользовались. Увеличивает телосложение на <%= con %>. Зачарованный сундук: Набор Ювелира (предмет 4 из 4 ).",
"weaponSpecialWinter2023MageNotes": "Ни лисы, ни огня, но очень празднично! Увеличивает интеллект на <%= int %> и восприятие на <%= per %>. Ограниченный выпуск зимы 2022 - 2023.",
"armorSpecialWinter2023RogueText": "Подарочная лента",
"armorSpecialWinter2023RogueNotes": "Приобретите предметы. Упакуйте их в красивую бумагу. И подарите их местному разбойнику! В этот сезон - это необходимость. Увеличивает восприятие на <%= per %>. Ограниченный выпуск зимы 2022 - 2023.",
"armorSpecialWinter2023MageText": "Платье волшебных огней",
"armorSpecialWinter2023MageNotes": "То, что на вас светятся огни, не делает вас елкой! ...может быть в следующем году. Увеличивает интеллект на <%= int %>. Ограниченный выпуск зимы 2022 - 2023.",
"armorMystery202212Notes": "Вселенная может быть холодна, но в этом очаровательном платье вам будет тепло и уютно во время полета. Бонусов не дает. Подарок подписчикам декабря 2022.",
"armorArmoireJewelersApronNotes": "Этот тяжелый фартук - то, что вам нужно, когда вы чувствуете себя творческим человеком. Самое главное, что в нём есть десятки маленьких карманов, для хранения всего того, что вам необходимо. Увеличивает интеллект на <%= int %>. Зачарованный сундук (предмет 1 из 4).",
"headSpecialWinter2023RogueText": "Подарочный бант",
"headSpecialWinter2023RogueNotes": "Соблазн людей \"погладить\" ваши волосы, дает вам возможность потренировать навыки уклонения и уворотов. Увеличивает восприятие на <%= per %>. Ограниченный выпуск зимы 2022 - 2023."
}

View file

@ -197,7 +197,7 @@
"winter2021IceFishingWarriorSet": "Рыбак на льду (Воин)",
"g1g1Returning": "В честь праздничного сезона мы запускаем специальное предложение. Если вы подарите подписку своему другу, то получите точно такую же бесплатно!",
"septemberYYYY": "Сентябрь <%= year %>",
"g1g1Limitations": "Это предложение начнет действовать 16 декабря в 8:00 (13:00 UTC) и завершится 6 января в 20:00 (1:00 UTC). Акция будет действовать только в том случае, если вы дарите подписку другому пользователю Habitica. Если у вас или у получателя подарка уже есть подписка, то подаренная подписка добавится к текущей и будет использоваться только после того, как текущая подписка будет отменена, или истечет ее срок действия.",
"g1g1Limitations": "Это предложение начнет действовать 15 декабря в 8:00 (13:00 UTC) и завершится 8 января в 23:59 ( 9 января 4:59 UTC). Акция будет действовать только в том случае, если вы дарите подписку другому пользователю Habitica. Если у вас или у получателя подарка уже есть подписка, то подаренная подписка добавится к текущей и будет использоваться только после того, как текущая подписка будет отменена, или истечет ее срок действия.",
"g1g1HowItWorks": "Введите имя пользователя, которому вы хотите сделать подарок. Далее выберите подписку, которую вы хотите подарить, и оплатите заказ. Вы получите автоматически точно такую же подписку, которую вы только что подарили.",
"spring2021TwinFlowerRogueSet": "Сдвоенный цветок (Разбойник)",
"spring2021WillowHealerSet": "Ива (Целитель)",
@ -239,5 +239,6 @@
"winter2023FairyLightsMageSet": "Волшебные огни (Маг)",
"winter2023CardinalHealerSet": "Кардинал (Целитель)",
"winter2023WalrusWarriorSet": "Морж (Воин)",
"spring2023RibbonRogueSet": "Лента (Разбойник)"
"spring2023RibbonRogueSet": "Лента (Разбойник)",
"winter2023RibbonRogueSet": "Лента (Разбойник)"
}

View file

@ -141,5 +141,8 @@
"achievementWoodlandWizardText": "Зібрали усіх лісових істот стандартних кольорів: борсука, ведмедя, оленя, лисицю, жабу, їжака, сову, равлика, білку та деревце!",
"achievementBoneToPickModalText": "Ви зібрали всіх класичних та квестових кістяних улюбленців!",
"achievementBoneToPickText": "Зібрали всіх класичних та квестових кістяних улюбленців!",
"achievementBoneToPick": "Могильник"
"achievementBoneToPick": "Могильник",
"achievementPolarPro": "Полярник",
"achievementPolarProText": "Зібрали всіх полярних улюбленців: ведмедя, лиса, пінгвіна, кита та вовка!",
"achievementPolarProModalText": "Ви зібрали всіх полярних тваринок!"
}

File diff suppressed because one or more lines are too long

View file

@ -149,32 +149,32 @@
"weaponSpecialWinter2015RogueText": "Крижаний шип",
"weaponSpecialWinter2015RogueNotes": "Ви дійсно, точно, абсолютно щойно підняли це з землі. Збільшує силу на <%= str %>. Обмежене видання зимового спорядження 2014-2015.",
"weaponSpecialWinter2015WarriorText": "Гумко-Меч",
"weaponSpecialWinter2015WarriorNotes": "Можливо, цей чудовий меч приваблює монстрів... але ви готові прийняти цей виклик! Збільшує силу на <%= str %>. Лімітована серія зимового спорядження 2014-2015.",
"weaponSpecialWinter2015WarriorNotes": "Можливо, цей чудовий меч приваблює монстрів... але ви готові прийняти цей виклик! Збільшує силу на <%= str %>. Лімітована серія зимового спорядження 2014-2015.",
"weaponSpecialWinter2015MageText": "Жезл зимового сяйва",
"weaponSpecialWinter2015MageNotes": "Світло цього кришталевого жезла наповнює серця бадьорістю. Збільшує інтелект на <%= int %> і сприйняття на <%= per %>. Лімітована серія зимового спорядження 2014-2015.",
"weaponSpecialWinter2015HealerText": "Заспокійливий скіпетр",
"weaponSpecialWinter2015HealerNotes": "Цей скіпетр зігріває хворі м’язи та знімає стрес. Збільшує інтелект на <%= int %>. Лімітована серія зимового спорядження 2014-2015.",
"weaponSpecialSpring2015RogueText": "Вибуховий писк",
"weaponSpecialSpring2015RogueNotes": "Нехай звук не вводить вас в оману ця вибухівка справді потужна. Збільшує силу на <%= str %>. Обмежене видання весняного спорядження 2015.",
"weaponSpecialSpring2015WarriorText": "",
"weaponSpecialSpring2015WarriorText": "Кістяна бита",
"weaponSpecialSpring2015WarriorNotes": "",
"weaponSpecialSpring2015MageText": "",
"weaponSpecialSpring2015MageText": "Чарівна паличка",
"weaponSpecialSpring2015MageNotes": "",
"weaponSpecialSpring2015HealerText": "",
"weaponSpecialSpring2015HealerText": "Котяча брязкальце",
"weaponSpecialSpring2015HealerNotes": "",
"weaponSpecialSummer2015RogueText": "",
"weaponSpecialSummer2015RogueText": "Корал-випалювач",
"weaponSpecialSummer2015RogueNotes": "",
"weaponSpecialSummer2015WarriorText": "",
"weaponSpecialSummer2015WarriorText": "Сонячна риба-меч",
"weaponSpecialSummer2015WarriorNotes": "",
"weaponSpecialSummer2015MageText": "",
"weaponSpecialSummer2015MageText": "Посох віщуна",
"weaponSpecialSummer2015MageNotes": "",
"weaponSpecialSummer2015HealerText": "",
"weaponSpecialSummer2015HealerText": "Паличка хвиль",
"weaponSpecialSummer2015HealerNotes": "",
"weaponSpecialFall2015RogueText": "",
"weaponSpecialFall2015RogueText": "Кажаняча сокира",
"weaponSpecialFall2015RogueNotes": "Боягузливі завдання тремтять при виді цієї сокири!. Збільшує силу на <%= str %>. Лімітований випуск осені 2015.",
"weaponSpecialFall2015WarriorText": "",
"weaponSpecialFall2015WarriorText": "Дерев'яна дошка",
"weaponSpecialFall2015WarriorNotes": "",
"weaponSpecialFall2015MageText": "",
"weaponSpecialFall2015MageText": "Зачарована нитка",
"weaponSpecialFall2015MageNotes": "",
"weaponSpecialFall2015HealerText": "",
"weaponSpecialFall2015HealerNotes": "",

View file

@ -95,7 +95,7 @@
"achievementStressbeastText": "Допоміг перемогти огидного Стресозвіра під час події Winter Wonderland в 2014 році!",
"achievementBurnout": "Рятівник Квітучих полів",
"achievementBurnoutText": "Допоміг перемогти Вигорання та відновити Духів Виснаження під час Осіннього фестивалю 2015 року!",
"achievementBewilder": "Рятівник Містіфлаїнга",
"achievementBewilder": "Рятівник Хмарополя",
"achievementBewilderText": "Допомігли перемогти Забудівника під час Весняного Летючого Івенту 2016!",
"achievementDysheartener": "Рятівник розбитих серцем",
"achievementDysheartenerText": "Допомогли перемогти Серцеїда під час подій до Дня святого Валентина у 2018 році!",

View file

@ -148,7 +148,7 @@
"discountBundle": "комплект",
"g1g1Announcement": "Акція <strong>\"Подаруй підписку - отримай підписку\"</strong> діє прямо зараз!",
"g1g1Details": "Подаруйте підписку другу, і Ви отримаєте таку ж підписку безкоштовно!",
"g1g1Limitations": "Це обмежена подія, яка розпочнеться 6 грудня о 8:00 за європейським часом (13:00 UTC) і завершиться 6 січня о 20:00 за європейським часом (1:00 UTC). Ця акція застосовується лише тоді, коли Ви даруєте іншому жителю Habitica. Якщо Ви або Ваш одержувач подарунка вже маєте підписку, подарована підписка додасть місяці кредиту, який буде використаний лише після скасування або закінчення терміну дії поточної підписки.",
"g1g1Limitations": "Це обмежена подія, яка розпочнеться 5 грудня о 8:00 за європейським часом (13:00 UTC) і завершиться 8 січня о 23:59 за європейським часом (9 січня 04:59 UTC). Ця акція застосовується лише тоді, коли ви даруєте іншому жителю Habitica. Якщо ви або ваш одержувач подарунка вже маєте підписку, подарована підписка додасть місяці кредиту, який буде використаний лише після скасування або закінчення терміну дії поточної підписки.",
"limitations": "Обмеження",
"g1g1HowItWorks": "Введіть ім’я користувача облікового запису, якому ви хочете подарувати. Звідти виберіть додаткову довжину, яку ви хочете подарувати, і відмітьте. Ваш рахунок автоматично буде винагороджений тим самим рівнем передплати, який ви щойно подарували.",
"howItWorks": "Як це робиться",
@ -232,5 +232,9 @@
"fall2022WatcherHealerSet": "Підглядач (цілитель)",
"fall2022KappaRogueSet": "Каппа (розбійник)",
"gemSaleHow": "У період від <%= eventStartOrdinal %> <%= eventStartMonth %> до <%= eventEndOrdinal %> просто придбайте будь-який набір самоцвітів, як зазвичай, і на ваш рахунок буде також зараховано їх акційну кількість. Більше дорогоцінних каменів, які можна витратити, поділитися чи зберегти для будь-яких майбутніх покупок!",
"gemSaleLimitations": "Ця акція діє лише протягом обмеженого часу. Ця подія починається <%= eventStartOrdinal %> <%= eventStartMonth %> о 15:00 за Києвом (12:00 UTC) і закінчиться <%= eventEndOrdinal %> <%= eventStartMonth %> о 03:00 за Києвом ( 00:00 UTC). Промо-акція діє тільки при покупці самоцвітів для себе."
"gemSaleLimitations": "Ця акція діє лише протягом обмеженого часу. Ця подія починається <%= eventStartOrdinal %> <%= eventStartMonth %> о 15:00 за Києвом (12:00 UTC) і закінчиться <%= eventEndOrdinal %> <%= eventStartMonth %> о 03:00 за Києвом ( 00:00 UTC). Промо-акція діє тільки при покупці самоцвітів для себе.",
"winter2023WalrusWarriorSet": "Морж (воїн)",
"winter2023FairyLightsMageSet": "Казкові вогні (маг)",
"winter2023CardinalHealerSet": "Кардинал (маг)",
"winter2023RibbonRogueSet": "Стрічка (розбійник)"
}

View file

@ -1,7 +1,7 @@
{
"questEvilSantaText": "Санта-Мисливець",
"questEvilSantaNotes": "Ви чуєте агонізований рев глибоко в крижаних полях. Ви слідуєте за гарчанням, перерваним гудінням, - до галявини в лісі, де ви бачите повністю дорослого білого ведмедя. Він перебуває в клітках і в кайданах, бореться за своє життя. Танцює на верхній частині клітини злісний маленький чорт, одягнений у порваний костюм. Переможіть Санта-звіролова та рятуйте звіра! <br><br> <strong> Примітка </strong>: „Санта-звіролов” нагороджує досягнення, яке можна скласти, але дає рідкісне кріплення, яке можна додати до вашої стайні лише один раз.",
"questEvilSantaCompletion": "Санта-звіролов сердито кричить і тікає в ніч. Вдячна ведмедиця крізь рев і гарчання намагається вам щось сказати. Ви повертаєте її до стайні, де Матвей, доглядач тварин, слухає її розповідь, зітхнувши від жаху. У неї є дитинча! Воно втекло на крижані поля, коли маму-ведмедицю схопили.",
"questEvilSantaNotes": "Ви чуєте агонізований рев глибоко в крижаних полях. Ви слідуєте за гарчанням, перерваним гудінням, - до галявини в лісі, де ви бачите повністю дорослого білого ведмедя. Він перебуває в клітках і в кайданах, бореться за своє життя. Танцює на верхній частині клітини злісний маленький чорт, одягнений у порваний костюм. Переможіть Санту-звіролова та врятуйте звіра! <br><br> <strong> Примітка </strong>: „Санта-звіролов” нагороджує досягнення, яке можна скласти, але дає рідкісне кріплення, яке можна додати до вашої стайні лише один раз.",
"questEvilSantaCompletion": "Санта-звіролов сердито кричить і тікає в ніч. Вдячна ведмедиця крізь рев і гарчання намагається вам щось сказати. Ви повертаєте її до хліву, де Матвей, доглядач тварин, слухає її розповідь, зітхнувши від жаху. У неї є дитинча! Воно втекло на крижані поля, коли маму-ведмедицю схопили.",
"questEvilSantaBoss": "Санта Звіролов",
"questEvilSantaDropBearCubPolarMount": "Білий ведмідь (скакун)",
"questEvilSanta2Text": "Знайти дитинча",
@ -117,23 +117,23 @@
"questBasilistCompletion": "Спискозмій розсипався на папірці всіх кольорів веселки. \"Вау!\" каже @Arcosine. — Добре, що ви були тут!\" Відчуваючи себе більш досвідченим, ніж раніше, ви знаходите трохи золота серед паперів.",
"questBasilistBoss": "Спискозмій",
"questEggHuntText": "Яйцелови",
"questEggHuntNotes": "За ніч дивні яйця з’явилися скрізь: у стайні у Матвея, за прилавком у таверні і навіть серед яєць домашніх тварин на Ринку! Яка неприємність! \"Ніхто не знає, звідки вони з'явилися і що з них може вилупитися, - каже Меган, - але ми не можемо просто залишити їх валятися ось так! Наполегливо працюйте і шукайте, щоб допомогти мені зібрати ці таємничі яйця. Можливо, якщо Ви зберете достатньо, то щось знайдеться і для Вас...\"",
"questEggHuntNotes": "За ніч дивні яйця з’явилися скрізь: в хліву у Матвея, за прилавком у таверні і навіть серед яєць домашніх тварин на Ринку! Яка неприємність! \"Ніхто не знає, звідки вони з'явилися і що з них може вилупитися, - каже Меган, - але ми не можемо просто залишити їх валятися ось так! Наполегливо працюйте і шукайте, щоб допомогти мені зібрати ці таємничі яйця. Можливо, якщо Ви зберете достатньо, то щось знайдеться і для Вас...\"",
"questEggHuntCompletion": "Ви зробили це! На знак подяки <strong>Меган</strong> дарує вам десять яєць. «Б’юся об заклад, що зілля вилуплення пофарбує їх у прекрасні кольори! І мені цікаво, що станеться, коли вони перетворяться на верхових тварин…»",
"questEggHuntCollectPlainEgg": "Прості яйця",
"questEggHuntDropPlainEgg": "Просте яйце",
"questDilatoryText": "Жахливий Драк'он Некваптиди",
"questDilatoryNotes": "",
"questDilatoryNotes": "Нам слід було прислухатися до попереджень.<br><br>Темні блискучі очі. Древня луска. Масивні щелепи та блискучі зуби. Ми пробудили щось жахливе з тріщини: <strong>Жахливий Драк'он Некваптиди!</strong> Габітиканці з криком розбіглися навсібіч, коли він вирвався з моря, його жахливо довга шия висунулася на сотні метрів з води, розбиваючи шибки на вікнах одним тільки риком.<br><br>\"Мабуть, це те, що затягнуло Некваптиду!\" - кричить Lemoness. «Це не вага занедбаних завдань — червоні щоденки просто привернули його увагу!»<br><br>«Він сповнений магічної енергії!» @Baconsaur плаче. «Щоб прожити стільки часу, воно повинно мати можливість самовідновитися! Як ми можемо його перемогти?»<br><br>Так само, як ми перемагаємо всіх звірів — продуктивністю! Швидше, Габітико, об’єднуйся та виконуй свої завдання, і ми всі разом битимемося з цим монстром. (Немає потреби відмовлятися від попередніх квестів — ми віримо у вашу здатність завдавати подвійних ударів!) Він не атакуватиме нас окремо, але чим більше щоденок ми пропускаємо, тим ближче ми наближаємось до того, щоб спрацьовував його Удар Занехаяння — і мені анітрохи не подобається, як він дивиться на нашу Таверну....",
"questDilatoryBoss": "Жахливий Драк'он Некваптиди",
"questDilatoryBossRageTitle": "Удар Занехаяння",
"questDilatoryBossRageDescription": "Коли ця смужка заповниться, Жахливий Драк'он Некваптиди розпочне в Габітиці великі руйнування",
"questDilatoryDropMantisShrimpPet": "Рак-богомол (улюбленець)",
"questDilatoryDropMantisShrimpMount": "Рак-богомол (скакун)",
"questDilatoryBossRageTavern": "\"Жахливий Драк'он застосовує УДАР ЗАНЕХАЯННЯ!\"\n\nОй-ой! Незважаючи на всі наші зусилля, ми проґавили деякі щоденні справи і їхній темно-червоний колір накликав лють Драк'она! Своїм страшним Ударом Занехаяння він знищив Таверну! На щастя, у місті неподалік ми поставили Господу і завжди можна потеревенити на узбережжі... але бідолашний Бармен Даніель на власні очі побачив, як його улюблений будинок розвалився!\n\nСподіваюся, що звірюка не нападе знову!",
"questDilatoryBossRageStables": "\"Жахливий Драк'он застосовує УДАР ЗАНЕХАЯННЯ!\"\n\nОй, лишенько! Знову ми недоробили багато завдань. Драк'он спрямував свій УДАР ЗАНЕХАЯННЯ на Митька та його стайні! Тваринки-вихованці порозбігалися навсебіч. На щастя, усі ваші улюбленці, здається, у порядку!\n\nБідолашна Габітика! Сподіваюсь, такого більше не станеться. Покваптеся та виконайте усі свої завдання!",
"questDilatoryBossRageStables": "\"Жахливий Драк'он застосовує УДАР ЗАНЕХАЯННЯ!\"\n\nОй, лишенько! Знову ми недоробили багато завдань. Драк'он спрямував свій УДАР ЗАНЕХАЯННЯ на хліви Матвея! Тваринки-вихованці порозбігалися навсебіч. На щастя, з усіма вашими улюбленцями, здається, все гаразд!\n\nБідолашна Габітика! Сподіваюсь, такого більше не станеться. Покваптеся та виконайте усі свої завдання!",
"questDilatoryBossRageMarket": "`Жахливий Драк'он застосовує УДАР ЗАНЕХАЯННЯ!`\n\nОоой!! Щойно Драк'он Ударом Занехаяння вщент розбив крамницю Торговця Алекса! Та, здається, ми добряче знесилили цю тварюку. Гадаю, він не має більше сил на ще один удар.\n\nТож не відступай, Габітико! Проженімо цього звіра геть з наших берегів!",
"questDilatoryCompletion": "\"Подолання Жахливого Драк'она Некваптиди\"\n\nНам вдалося! Заревівши востаннє, Жахливий Драк'он падає та пливе ген далеко-далеко. На березі вишикувалися натовпи втішених габітиканців! Ми допомогли Митькові, Даніелю та Алексу відбудувати їхні будинки. Але що це?\n\n\"Мешканці повертаються!\"\n\nТепер, коли Драк'он утік, море замерехтіло кольорами. Це різнобарвний рій раків-богомолів... а серед них — сотні морських істот!\n\n\"Ми — забуті жителі Некваптиди!\", — пояснює їхній ватажок Манта. \"Коли Некваптида затонула, раки-богомоли, які жили у цих водах, з допомогою чарів перетворили нас на водяників, щоб ми змогли вижити. Але лютий Жахливий Драк'он усіх нас запроторив до темної ущелини. Ми сотні років сиділи у тому полоні, та тепер нарешті можемо відбудувати своє місто!\"\n\n\"Як подяку,\" — каже його друг @Ottl, — \"Прийміть, будь ласка, цього рака-богомола та рака-богомола скакуна, а також досвід, золото та нашу безмежну вдячність.\"\n\n\"Нагороди\"\n * Рак-богомол улюбленець\n * Рак-богомол скакун\n * Шоколад, блакитна цукрова вата, рожева цукрова вата, риба, мед, м'ясо, молоко, картопля, тухле м'ясо, полуниця",
"questSeahorseText": "Перегони у Некваптиді",
"questSeahorseNotes": "Сьогодні - День перегонів. До Некваптиди прибули габітиканці з усього континенту, щоб влаштувати перегони на своїх морських кониках! Зненацька на біговій доріжці зчиняється шум та гамір і ви чуєте, як власниця морських коників @Kiwibot перекрикує рев хвиль. \"Зібрання морських коників привернуло увагу шаленого Морського жеребця!\" — гукає вона. \"Він поривається через стайні і нищить старовинну дорогу для бігу! Чи може хтось його вгамувати?\"",
"questSeahorseNotes": "Сьогодні - День перегонів. До Некваптиди прибули габітиканці з усього континенту, щоб влаштувати перегони на своїх морських кониках! Зненацька на біговій доріжці зчиняється шум та гамір і ви чуєте, як власниця морських коників @Kiwibot перекрикує рев хвиль. \"Зібрання морських коників привернуло увагу шаленого Морського жеребця!\" — гукає вона. \"Він поривається через хліви і нищить старовинну дорогу для бігу! Чи може хтось його вгамувати?\"",
"questSeahorseCompletion": "Приборканий морський жеребець покірно підпливає до вас. \"Поглянь!\" — каже Kiwibot. \"Він хоче, щоб ми подбали про його діток.\" Він дає вам три яйця. \"Виростіть їх як слід,\" — каже Kiwibot. \"Приходьте на перегони коли забажаєте!\"",
"questSeahorseBoss": "Морський жеребець",
"questSeahorseDropSeahorseEgg": "Яйце морського коника",
@ -276,11 +276,11 @@
"questBurnoutBossRageQuests": "",
"questBurnoutBossRageSeasonalShop": "",
"questBurnoutBossRageTavern": "",
"questFrogText": "",
"questFrogText": "Болото Жабок Безладу",
"questFrogNotes": "",
"questFrogCompletion": "",
"questFrogBoss": "",
"questFrogDropFrogEgg": "",
"questFrogBoss": "Жабка Безладу",
"questFrogDropFrogEgg": "Яйце з жабеням",
"questFrogUnlockText": "Розблоковує жаб’ячі яйця для придбання на ринку",
"questSnakeText": "Змія зволікання",
"questSnakeNotes": "",
@ -306,11 +306,11 @@
"questMonkeyBoss": "Жахливий мандрил",
"questMonkeyDropMonkeyEgg": "Яйце мавпи",
"questMonkeyUnlockText": "Розблоковує мавпячі яйця для придбання на ринку",
"questSnailText": "",
"questSnailText": "Равлик важкої роботи",
"questSnailNotes": "",
"questSnailCompletion": "",
"questSnailBoss": "",
"questSnailDropSnailEgg": "",
"questSnailBoss": "Равлик важкої роботи",
"questSnailDropSnailEgg": "Яйце з равликом",
"questSnailUnlockText": "Відкриває яйця равликів для придбання на ринку",
"questBewilderText": "",
"questBewilderNotes": "",
@ -323,12 +323,12 @@
"questBewilderBossRageMarket": "",
"questBewilderBossRageStables": "",
"questBewilderBossRageBailey": "",
"questFalconText": "",
"questFalconNotes": "Гора Габітика затьмарюється нависаючою горою справ. Раніше це було місце для пікніка та насолоди почуттям досягнутого, поки занедбані завдання не вийшли з-під контролю. Зараз тут мешкають страшні Птахи Прокрастинації, нечисті істоти, які заважають жителям Габітану виконувати свої завдання! <br><br> \"Це занадто важко!\" вони переймаються @JonArinbjorn та @Onheiron. \"Це займе занадто багато часу зараз! Це не зробить ніякої різниці, якщо ви почекаєте до завтра! Чому б вам не зробити щось цікаве замість цього?\" <br><br> Більше, обітницю. Ви підніметеся на свою особисту гору завдань і переможете Птахів Прокрастинації!",
"questFalconCompletion": "",
"questFalconBoss": "",
"questFalconDropFalconEgg": "Яйце сокола",
"questFalconUnlockText": "Розблоковує купівлю сокола в яйці на ринку",
"questFalconText": "Птахи прокрастинації",
"questFalconNotes": "Гора Габітика затьмарюється нависаючою горою справ. Раніше це було місце для пікніка та насолоди почуттям досягнутого, поки занедбані завдання не вийшли з-під контролю. Зараз тут мешкають страшні Птахи Прокрастинації, нечисті істоти, які заважають жителям Габітики виконувати свої завдання! <br><br> \"Це занадто важко!\" вони переймаються @JonArinbjorn та @Onheiron. \"Це займе занадто багато часу зараз! Це не зробить ніякої різниці, якщо ви почекаєте до завтра! Чому б вам не зробити щось цікаве замість цього?\" <br><br> Більше, обітницю. Ви підніметеся на свою особисту гору завдань і переможете Птахів Прокрастинації!",
"questFalconCompletion": "Перемігши нарешті хижих птахів, ви сідаєте, щоб насолодитися краєвидом і заслуженим відпочинком.<br><br>\"Вау!\" каже @Trogdorina. «Ви виграли!»<br><br>@Squish додає: «Візьми в нагороду ці яйця, які я знайшов».",
"questFalconBoss": "Птахи прокрастинації",
"questFalconDropFalconEgg": "Яйце з соколом",
"questFalconUnlockText": "Розблоковує купівлю на ринку яєць з соколом",
"questTreelingText": "Заплутане дерево",
"questTreelingNotes": "",
"questTreelingCompletion": "",
@ -424,10 +424,10 @@
"questSlothBoss": "Заколисливий лінивець",
"questSlothDropSlothEgg": "Яйце з лінивцем",
"questSlothUnlockText": "Розблоковує купівлю яєць з лінивцем на ринку",
"questTriceratopsText": "",
"questTriceratopsText": "Топчучий трицератопс",
"questTriceratopsNotes": "",
"questTriceratopsCompletion": "",
"questTriceratopsBoss": "",
"questTriceratopsBoss": "Топчучий трицератопс",
"questTriceratopsDropTriceratopsEgg": "Яйце з трицератопсом",
"questTriceratopsUnlockText": "Розблоковує купівлю на ринку яєць з трицератопсом",
"questGroupStoikalmCalamity": "Лихо Залишспокою",
@ -454,16 +454,16 @@
"questStoikalmCalamity3DropShield": "",
"questStoikalmCalamity3DropWeapon": "",
"questGuineaPigText": "Банда морських свинок",
"questGuineaPigNotes": "",
"questGuineaPigCompletion": "",
"questGuineaPigNotes": "Ви бродите знаменитим ринком Габіт-сіті, як раптом @Pandah махає вам рукою. \"Гей, заціни-но це!\" Він вказує на коричнево-бежеве яйце, якого ви ніколи раніше не бачили.<br><br>Купець Alexander хмуриться на нього. «Я не пам’ятаю, щоб викладав таке тут. Цікаво, звідки воно взялося...» Маленька лапа перервала його роздуми.<br><br>«Жени все твоє золото, купець!» — пищить тоненький голосок, наповнений злом.<br><br>\"О ні, яйце було приманкою!\" — вигукує @mewrose. «Це жорстока і жадібна банда морських свинок! Вони ніколи не виконують щоденок, тому постійно крадуть золото, щоб купити лікувальні зілля».<br><br>«Пограбування ринку?» каже @emmavig. — Тільки не в мою зміну! Без додаткових підказок ви стрибаєте на допомогу купцю Alexander.",
"questGuineaPigCompletion": "«Ми здаємось!» Бос банди морських свинок підіймає лапки, а пухнаста голова опускається від сорому. З-під його капелюха випадає список, і @snazzyorange швидко підбирає його для доказів. «Почекай хвилинку», — кажете ви. «Це не дивно, що вам так важко розвиватись! У вас забагато щоденок. Вам не потрібні зілля для здоров’я — вам потрібна лише допомога в організації».<br><br>«Справді?» — пищить бос банди морських свинок. «Ми пограбували стільки людей через це! Будь ласка, прийміть наші яйця як вибачення за наші лихі справи».",
"questGuineaPigBoss": "Банда морських свинок",
"questGuineaPigDropGuineaPigEgg": "Яйце морської свинки",
"questGuineaPigDropGuineaPigEgg": "Яйце з морською свинкою",
"questGuineaPigUnlockText": "Розблоковує купівлю морської свинки в яйці на ринку",
"questPeacockText": "",
"questPeacockText": "Павич Тягни-Штовхай",
"questPeacockNotes": "",
"questPeacockCompletion": "",
"questPeacockBoss": "",
"questPeacockDropPeacockEgg": "",
"questPeacockBoss": "Павич Тягни-Штовхай",
"questPeacockDropPeacockEgg": "Яйце з павичем",
"questPeacockUnlockText": "Розблоковує купівлю павича в яйці на ринку",
"questButterflyText": "Бувай-бувай, метелику",
"questButterflyNotes": "Ваша подруга-садівник @Megan надсилає вам запрошення: «Ці теплі дні — ідеальний час, щоб відвідати Сад метеликів Габітики в селищі Завданяївка. Приходьте подивитися на міграцію метеликів!» Коли ви приїжджаєте, то бачите, що сад у руїнах — зосталась тільки випалена трава та висохлі бур’яни. Було так спекотно, що габітиканці не вийшли полити квіти, а темно-червоні щоденки перетворили його на сухе, напечене сонцем і пожежонебезпечне місце. Там літає лише один метелик, і щось у ньому дивне...<br><br>«О ні! Це ідеальне місце для вилуплення Палаючого метелика», — кричить @Leephon.<br><br>«Якщо ми не спіймаємо його, він знищить усе!» задихається @Eevachu.<br><br>Час сказати \"Бувай\" цьому метелику!",
@ -471,31 +471,31 @@
"questButterflyBoss": "Палаючий метелик",
"questButterflyDropButterflyEgg": "Яйце з гусінню",
"questButterflyUnlockText": "Розблоковує купівлю яєць з гусінню на ринку",
"questGroupMayhemMistiflying": "",
"questMayhemMistiflying1Text": "",
"questGroupMayhemMistiflying": "Хаос у Хмарополі",
"questMayhemMistiflying1Text": "Хаос у Хмарополі (частина 1): В якій Хмаропіль переживає страшенні турботи",
"questMayhemMistiflying1Notes": "",
"questMayhemMistiflying1Completion": "",
"questMayhemMistiflying1Boss": "Рій повітряних черепів",
"questMayhemMistiflying1RageTitle": "Відродження рою",
"questMayhemMistiflying1RageDescription": "Відродження рою: ця шкала росте, коли ви не завершуєте свої щоденні завдання. Коли вона заповнюється, рій повітряних черепів відновить 30% здоров’я до того, що залишилося!",
"questMayhemMistiflying1RageEffect": "`Рій повітряних черепів використовує ВІДРОДЖЕННЯ РОЮ!`\n\nПідбадьорені своїми перемогами, ще більше черепів вилітає з хмар!",
"questMayhemMistiflying1DropSkeletonPotion": "",
"questMayhemMistiflying1DropWhitePotion": "",
"questMayhemMistiflying1DropArmor": "",
"questMayhemMistiflying2Text": "",
"questMayhemMistiflying1DropSkeletonPotion": "Кістяний еліксир вилуплення",
"questMayhemMistiflying1DropWhitePotion": "Білий еліксир вилуплення",
"questMayhemMistiflying1DropArmor": "Пустотливий веселковий халат посланця (броня)",
"questMayhemMistiflying2Text": "Хаос у Хмарополі (частина 2): В якій вітер посилюється",
"questMayhemMistiflying2Notes": "",
"questMayhemMistiflying2Completion": "",
"questMayhemMistiflying2CollectRedMistiflies": "",
"questMayhemMistiflying2CollectBlueMistiflies": "",
"questMayhemMistiflying2CollectGreenMistiflies": "",
"questMayhemMistiflying2DropHeadgear": "",
"questMayhemMistiflying3Text": "",
"questMayhemMistiflying2DropHeadgear": "Пустотливий веселковий капюшон посланця (головний убір)",
"questMayhemMistiflying3Text": "Хаос у Хмарополі (частина 3): У якій листоноша надзвичайно грубий",
"questMayhemMistiflying3Notes": "",
"questMayhemMistiflying3Completion": "",
"questMayhemMistiflying3Boss": "",
"questMayhemMistiflying3DropPinkCottonCandy": "Рожева цукрова кулька(Food)",
"questMayhemMistiflying3DropShield": "",
"questMayhemMistiflying3DropWeapon": "",
"questMayhemMistiflying3DropShield": "Веселковий конверт (ліва рука)",
"questMayhemMistiflying3DropWeapon": "Веселковий конверт (права рука)",
"featheredFriendsText": "Набір квестів \"Пернаті друзі\"",
"featheredFriendsNotes": "",
"questNudibranchText": "Зараження мотиваційними морськими молюсками",
@ -517,7 +517,7 @@
"witchyFamiliarsText": "Набір квестів \"Відьмині друзі\"",
"witchyFamiliarsNotes": "",
"questGroupLostMasterclasser": "",
"questUnlockLostMasterclasser": "",
"questUnlockLostMasterclasser": "Щоб розблокувати даний квест, виконайте останні квести із серій квестів: \"Біда у Некваптиді\", \"Хаос у Хмарополі\", \"Лихо Залишспокою\" та \"Жах у Завданялісі\".",
"questLostMasterclasser1Text": "",
"questLostMasterclasser1Notes": "",
"questLostMasterclasser1Completion": "",
@ -552,24 +552,24 @@
"questLostMasterclasser4DropBackAccessory": "",
"questLostMasterclasser4DropWeapon": "",
"questLostMasterclasser4DropMount": "",
"questYarnText": "",
"questYarnText": "Заплутаний клубок",
"questYarnNotes": "",
"questYarnCompletion": "",
"questYarnBoss": "",
"questYarnDropYarnEgg": "",
"questYarnBoss": "Страшний Клубостр",
"questYarnDropYarnEgg": "Яйце з пряжею",
"questYarnUnlockText": "Розблоковує купівлю пряжі в яйці на ринку",
"winterQuestsText": "Зимовий набір квестів",
"winterQuestsNotes": "",
"questPterodactylText": "",
"questPterodactylText": "П-терор-дактиль",
"questPterodactylNotes": "",
"questPterodactylCompletion": "",
"questPterodactylBoss": "",
"questPterodactylDropPterodactylEgg": "",
"questPterodactylBoss": "П-терор-дактиль",
"questPterodactylDropPterodactylEgg": "Яйце з птеродактилем",
"questPterodactylUnlockText": "Розблоковує купівлю птеродактиля в яйці на ринку",
"questBadgerText": "Не борси мені!",
"questBadgerNotes": "",
"questBadgerCompletion": "Ви нарешті відганяєте Борсука-Набриду й поспішаєте до його нори. У кінці тунелю ви знаходите його скарбницю феїних «сонливих» справ. Лігво виглядає покинуте, за винятком трьох яєць, які, здається, готові вилупитися.",
"questBadgerBoss": "",
"questBadgerBoss": "Борсук-набрида",
"questBadgerDropBadgerEgg": "Яйце борсука",
"questBadgerUnlockText": "Розблоковує купівлю борсука в яйці на ринку",
"questDysheartenerText": "",
@ -595,11 +595,11 @@
"dysheartenerArtCredit": "Графічна робота @AnnDeLune",
"hugabugText": "Набір квестів \"Обійми жука\"",
"hugabugNotes": "",
"questSquirrelText": "",
"questSquirrelText": "Підступна білка",
"questSquirrelNotes": "",
"questSquirrelCompletion": "",
"questSquirrelBoss": "",
"questSquirrelDropSquirrelEgg": "",
"questSquirrelBoss": "Підступна білка",
"questSquirrelDropSquirrelEgg": "Яйце з білкою",
"questSquirrelUnlockText": "Розблоковує купівлю білки в яйці на ринку",
"cuddleBuddiesText": "Набір квестів \"Пухнасті друзі\"",
"cuddleBuddiesNotes": "Містить «Кролик-вбивця», «Нечестивий тхір» і «Банда морських свинок». Доступний до 31 березня.",
@ -635,7 +635,7 @@
"questVelociraptorBoss": "Велоци-репер",
"questVelociraptorDropVelociraptorEgg": "Яйце велоцираптора",
"questVelociraptorUnlockText": "Розблоковує купівлю велоцераптора в яйці на ринку",
"evilSantaAddlNotes": "Зверніть увагу, що \"Санта-звіролов\" та «Знайди дитинча» мають досягнуті квестові досягнення, але дають рідкісного домашнього улюбленця та кріплення, який можна додати до вашої стайні лише один раз.",
"evilSantaAddlNotes": "Зверніть увагу, що \"Санта-звіролов\" та \"Знайди дитинча\" мають накопичувальні досягнення, але також дають рідкісного домашнього улюбленця та верхову тварину, яких можна додати до вашої стайні лише раз.",
"questWindupDropWindupPotion": "Заводний інкубаційний еліксир",
"questSolarSystemUnlockText": "Відкриває інкубаційні геліосистемні зілля для купівлі на ринку",
"questSolarSystemText": "Подорож космічної концентрації",
@ -660,5 +660,15 @@
"jungleBuddiesNotes": "Містить \"Жахливий мандрил і пустотливі мавпи\", \"Заколисливий лінивець\" та \"Заплутане дерево\". Доступний до <%= date %>.",
"questRobotCollectBolts": "Болти",
"questRobotCollectSprings": "Пружини",
"questRobotCollectGears": "Шестерні"
"questRobotCollectGears": "Шестерні",
"questFluoriteText": "Яскравий флюоритовий страх",
"questFluoriteBoss": "Флюоритовий дух-стихійник",
"questFluoriteUnlockText": "Відкриває флюоритові зілля вилуплення для придбання на ринку",
"questStoneCollectCapricornRunes": "рун Козерога",
"questStoneDropMossyStonePotion": "Мохокам'яний інкубаційний еліксир",
"questStoneUnlockText": "Розблоковує придбання мохокам'яного інкубаційного еліксиру на ринку",
"questStoneCollectMarsRunes": "рун Марсу",
"questStoneText": "Моховий лабіринт",
"questStoneCollectMossyStones": "мохових каменів",
"questFluoriteDropFluoritePotion": "Флюоритовий інкубаційний еліксир"
}

View file

@ -58,7 +58,7 @@
"hideAchievements": "隐藏<%= category %>",
"showAllAchievements": "列出所有<%= category %>",
"onboardingCompleteDesc": "完成任务后,你获得了<strong>5个成就</strong>和<strong class=\"gold-amount\">100枚金币</strong>。",
"earnedAchievement": "你得到了一个成就!",
"earnedAchievement": "你解锁了一个成就!",
"viewAchievements": "查看成就",
"letsGetStarted": "我们开始吧!",
"onboardingProgress": "达成 <%= percentage %>%",
@ -69,21 +69,21 @@
"achievementTickledPinkModalText": "你集齐了所有粉色棉花糖宠物!",
"achievementTickledPinkText": "已集齐所有粉色棉花糖宠物。",
"achievementTickledPink": "羞脸粉生红",
"foundNewItemsCTA": "前往物品栏,尝试用新的孵化药水来孵化蛋!",
"foundNewItemsExplanation": "完成任务使你有机会找到物品,例如蛋、孵化药水和食物。",
"foundNewItemsCTA": "前往物品栏,尝试用新的孵化药水来孵化宠物蛋!",
"foundNewItemsExplanation": "完成任务使你有机会获得掉落物,例如蛋、孵化药水和食物。",
"foundNewItems": "你找到了新物品!",
"achievementBugBonanzaModalText": "你完成了甲虫、蝴蝶、蜗牛及蜘蛛宠物副本!",
"achievementBugBonanzaText": "已完成甲虫、蝴蝶、蜗牛及蜘蛛宠物副本。",
"achievementBugBonanza": "虫子富矿带",
"onboardingCompleteDescSmall": "如果你想获得更多勋章,查查你的成就列表开始收集吧!",
"onboardingComplete": "你完成了新手任务!",
"yourProgress": "你的成就",
"yourProgress": "你的进度",
"achievementBareNecessitiesModalText": "你完成了猴子、树懒和小树宠物副本!",
"achievementBareNecessitiesText": "已完成猴子、树懒和小树宠物副本。",
"achievementBareNecessities": "森林王子",
"achievementFreshwaterFriendsModalText": "你完成了蝾螈、青蛙和河马宠物副本!",
"achievementFreshwaterFriendsText": "已完成蝾螈、青蛙和河马宠物副本。",
"achievementFreshwaterFriends": "淡水朋友",
"achievementFreshwaterFriends": "淡水伙伴",
"achievementAllThatGlittersModalText": "你驯服了所有金色坐骑!",
"achievementAllThatGlittersText": "已驯服所有金色坐骑。",
"achievementAllThatGlitters": "闪闪发光",
@ -126,14 +126,14 @@
"achievementShadyCustomerText": "已集齐所有暗影宠物。",
"achievementZodiacZookeeper": "十二生肖饲养员",
"achievementZodiacZookeeperModalText": "你集齐了所有十二生肖宠物!",
"achievementZodiacZookeeperText": "已孵化所有基础颜色的十二生肖宠物。鼠、牛、兔、蛇、马、羊、猴、鸡、狼、虎、飞猪和龙",
"achievementZodiacZookeeperText": "已孵化所有基础颜色的十二生肖宠物。鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狼和飞猪",
"achievementBirdsOfAFeather": "展翅高飞",
"achievementBirdsOfAFeatherText": "已孵化所有基础颜色的飞行宠物:飞猪、猫头鹰、鹦鹉、翼龙、狮鹫和猎鹰!",
"achievementBirdsOfAFeatherModalText": "你集齐了所有飞行宠物!",
"achievementReptacularRumbleModalText": "你集齐了所有爬行宠物!",
"achievementGroupsBeta2022": "交互测试者",
"achievementGroupsBeta2022ModalText": "你和团队通过测试和反馈来帮助Habitica发展壮大",
"achievementGroupsBeta2022Text": "你和团队为Habitica测试提供了宝贵的反馈意见。",
"achievementGroupsBeta2022ModalText": "你和你的团队通过测试和反馈来帮助Habitica发展壮大",
"achievementGroupsBeta2022Text": "你和你的团队为Habitica测试提供了宝贵的反馈意见。",
"achievementReptacularRumble": "爬宠街斗",
"achievementReptacularRumbleText": "已孵化所有基础颜色的爬虫宠物:鳄鱼、翼龙、蛇、三角龙、海龟、霸王龙和迅猛龙!",
"achievementWoodlandWizard": "林地巫师",

View file

@ -10,35 +10,35 @@
"backgroundFairyRingText": "蘑菇圈",
"backgroundFairyRingNotes": "在蘑菇圈里和小仙子舞蹈。",
"backgroundForestText": "森林",
"backgroundForestNotes": "在夏季的森林漫步。",
"backgroundForestNotes": "漫步在夏季的森林。",
"backgrounds072014": "第2组2014年7月推出",
"backgroundCoralReefText": "珊瑚礁",
"backgroundCoralReefNotes": "在珊瑚礁轻松地游泳。",
"backgroundCoralReefNotes": "惬意地在珊瑚礁附近游泳。",
"backgroundOpenWatersText": "海洋",
"backgroundOpenWatersNotes": "享受茫茫大海。",
"backgroundSeafarerShipText": "船舶",
"backgroundSeafarerShipNotes": "搭乘一艘船舶。",
"backgrounds082014": "第3组2014年8月推出",
"backgroundCloudsText": "云端",
"backgroundCloudsNotes": "在云端飞翔。",
"backgroundCloudsNotes": "在云端飞翔。",
"backgroundDustyCanyonsText": "尘封的峡谷",
"backgroundDustyCanyonsNotes": "在尘封的峡谷漫游。",
"backgroundVolcanoText": "火山",
"backgroundVolcanoNotes": "在熔岩泡一泡。",
"backgroundVolcanoNotes": "在熔岩泡一泡。",
"backgrounds092014": "第4组2014年9月推出",
"backgroundThunderstormText": "雷暴",
"backgroundThunderstormNotes": "在暴风骤雨中被雷劈。",
"backgroundThunderstormNotes": "在暴风骤雨中享受雷霆。",
"backgroundAutumnForestText": "秋季森林",
"backgroundAutumnForestNotes": "在秋季的森林漫步。",
"backgroundAutumnForestNotes": "漫步在秋季的森林。",
"backgroundHarvestFieldsText": "田地",
"backgroundHarvestFieldsNotes": "努力耕。",
"backgroundHarvestFieldsNotes": "努力耕。",
"backgrounds102014": "第5组2014年10月推出",
"backgroundGraveyardText": "墓地",
"backgroundGraveyardNotes": "探访一个毛骨悚然的墓地。",
"backgroundHauntedHouseText": "鬼屋",
"backgroundHauntedHouseNotes": "潜行通过一间鬼屋。",
"backgroundHauntedHouseNotes": "悄悄穿过一间鬼屋。",
"backgroundPumpkinPatchText": "南瓜田",
"backgroundPumpkinPatchNotes": "在南瓜田雕刻杰克南瓜灯。",
"backgroundPumpkinPatchNotes": "在南瓜田雕刻杰克南瓜灯。",
"backgrounds112014": "第6组2014年11月推出",
"backgroundHarvestFeastText": "大丰收",
"backgroundHarvestFeastNotes": "享受着一场大丰收。",
@ -49,17 +49,17 @@
"backgrounds122014": "第7组2014年12月推出",
"backgroundIcebergText": "冰山",
"backgroundIcebergNotes": "在冰山上滑雪。",
"backgroundTwinklyLightsText": "冬天一闪一闪的光",
"backgroundTwinklyLightsText": "冬日闪光",
"backgroundTwinklyLightsNotes": "漫步在满是节日灯光的树林中。",
"backgroundSouthPoleText": "南极",
"backgroundSouthPoleNotes": "造访冰雪纷飞的南极。",
"backgrounds012015": "第8组2015年1月推出",
"backgroundIceCaveText": "冰穴",
"backgroundIceCaveNotes": "掉进冰穴。",
"backgroundIceCaveNotes": "落入冰穴。",
"backgroundFrigidPeakText": "寒冰山顶",
"backgroundFrigidPeakNotes": "登上寒冰山顶。",
"backgroundSnowyPinesText": "落雪的松林",
"backgroundSnowyPinesNotes": "躲落雪的松林中。",
"backgroundSnowyPinesNotes": "躲落雪的松林中。",
"backgrounds022015": "第9组2015年2月推出",
"backgroundBlacksmithyText": "铁匠坊",
"backgroundBlacksmithyNotes": "铁匠坊里的工人。",
@ -69,7 +69,7 @@
"backgroundDistantCastleNotes": "守卫远方的城堡。",
"backgrounds032015": "第10组2015年3月推出",
"backgroundSpringRainText": "春雨",
"backgroundSpringRainNotes": "在春天的细雨中舞。",
"backgroundSpringRainNotes": "在春天的细雨中。",
"backgroundStainedGlassText": "花窗玻璃",
"backgroundStainedGlassNotes": "欣赏绚丽的彩色玻璃花窗。",
"backgroundRollingHillsText": "起伏的山丘",
@ -108,7 +108,7 @@
"backgroundSunsetSavannahText": "日落的大草原",
"backgroundSunsetSavannahNotes": "悄悄穿过日落的大草原。",
"backgroundTwinklyPartyLightsText": "闪耀的派对灯光",
"backgroundTwinklyPartyLightsNotes": "在闪耀的派对灯光下舞!",
"backgroundTwinklyPartyLightsNotes": "在闪耀的派对灯光下",
"backgrounds092015": "第16组2015年9月推出",
"backgroundMarketText": "Habitica市场",
"backgroundMarketNotes": "在Habitica市场里购物。",
@ -129,7 +129,7 @@
"backgroundNightDunesText": "夜幕沙丘",
"backgroundNightDunesNotes": "在夜幕沙丘中静静穿行。",
"backgroundSunsetOasisText": "日落绿洲",
"backgroundSunsetOasisNotes": "沐浴在日落绿洲中。",
"backgroundSunsetOasisNotes": "在日落绿洲里沐浴。",
"backgrounds122015": "第19组2015年12月推出",
"backgroundAlpineSlopesText": "滑雪山坡",
"backgroundAlpineSlopesNotes": "在山坡上滑雪。",
@ -155,20 +155,20 @@
"backgroundDeepMineText": "深矿",
"backgroundDeepMineNotes": "在深矿中发现稀有金属。",
"backgroundRainforestText": "热带雨林",
"backgroundRainforestNotes": "到雨林中冒险。",
"backgroundRainforestNotes": "冒险进入雨林。",
"backgroundStoneCircleText": "巨石阵",
"backgroundStoneCircleNotes": "在巨石阵释放魔法。",
"backgroundStoneCircleNotes": "在巨石阵释放魔法。",
"backgrounds042016": "第23组2016年4月推出",
"backgroundArcheryRangeText": "射箭场",
"backgroundArcheryRangeNotes": "箭射红心师资准。",
"backgroundGiantFlowersText": "巨大的花",
"backgroundArcheryRangeNotes": "在射箭场练习。",
"backgroundGiantFlowersText": "巨人之花",
"backgroundGiantFlowersNotes": "在巨大的花顶嬉戏。",
"backgroundRainbowsEndText": "彩虹尽头",
"backgroundRainbowsEndNotes": "我欲穿花寻路,直入白云深处。",
"backgrounds052016": "第24组2016年5月推出",
"backgroundBeehiveText": "蜂窝",
"backgroundBeehiveNotes": "作蜜不忙采蜜忙,蜜成又带百花香。",
"backgroundGazeboText": "",
"backgroundGazeboText": "观景亭",
"backgroundGazeboNotes": "寒食寻芳游不足,溪亭还醉绿杨烟。",
"backgroundTreeRootsText": "树根",
"backgroundTreeRootsNotes": "探索茂密的树根。",
@ -181,14 +181,14 @@
"backgroundWaterfallRockNotes": "飞流直下三千尺,疑似银河落九天。",
"backgrounds072016": "第26组2016年7月推出",
"backgroundAquariumText": "水族箱",
"backgroundAquariumNotes": "在水族箱上下浮动。",
"backgroundAquariumNotes": "在水族箱上下浮动。",
"backgroundDeepSeaText": "深海",
"backgroundDeepSeaNotes": "深海潜水。",
"backgroundDeepSeaNotes": "深海潜水。",
"backgroundDilatoryCastleText": "拖延城堡",
"backgroundDilatoryCastleNotes": "游过拖延城堡。",
"backgrounds082016": "第27组2016年8月推出",
"backgroundIdyllicCabinText": "田园小屋",
"backgroundIdyllicCabinNotes": "在田园小屋里隐居。",
"backgroundIdyllicCabinNotes": "隐居在田园小屋。",
"backgroundMountainPyramidText": "高山金字塔",
"backgroundMountainPyramidNotes": "攀登高山金字塔。",
"backgroundStormyShipText": "风暴船",
@ -197,9 +197,9 @@
"backgroundCornfieldsText": "玉米地",
"backgroundCornfieldsNotes": "在玉米地里享受外出的美好时光。",
"backgroundFarmhouseText": "农舍",
"backgroundFarmhouseNotes": "对在你去农舍路上遇到的动物们说你好。",
"backgroundFarmhouseNotes": "对去农舍路上遇到的动物们打招呼。",
"backgroundOrchardText": "果林",
"backgroundOrchardNotes": "丰收。",
"backgroundOrchardNotes": "在果园里采摘成熟的水果。",
"backgrounds102016": "第29组2016年10月推出",
"backgroundSpiderWebText": "蜘蛛网",
"backgroundSpiderWebNotes": "被蜘蛛网缠住。",
@ -215,8 +215,8 @@
"backgroundWindyAutumnText": "刮风的秋天",
"backgroundWindyAutumnNotes": "在刮风的秋天中追赶落叶。",
"incentiveBackgrounds": "简约背景套装",
"backgroundVioletText": "紫罗兰色的",
"backgroundVioletNotes": "一个充满生气的紫罗兰背景。",
"backgroundVioletText": "紫罗兰",
"backgroundVioletNotes": "充满生气的紫罗兰境。",
"backgroundBlueText": "蓝色",
"backgroundBlueNotes": "基础蓝色背景。",
"backgroundGreenText": "绿色",

View file

@ -56,5 +56,7 @@
"androidFaqStillNeedHelp": "如果[Wiki FAQ](https://habitica.fandom.com/zh/wiki/FAQ)不能解决你的问题,请在酒馆聊天中咨询。进入方式:菜单 > 酒馆!我们很乐意为你提供帮助。",
"webFaqStillNeedHelp": "如果问题列表和[Wiki FAQ](https://habitica.fandom.com/zh/wiki/FAQ)不能解决你的问题,请在[Habitica 帮助公会](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)中咨询。我们很乐意为你提供帮助。",
"faqQuestion13": "什么是团队计划?",
"webFaqAnswer13": "## 团队计划是如何运作的?\n\n[团队计划](/group-plans)让您的队伍或公会可以访问类似于您的个人任务板的共享任务板! 这是一种共享的 Habitica 体验,团队中的任何成员都可以创建和检查任务。\n\n还增加一些新功能如成员角色状态视图和任务分配为您提供更加可控的体验。想了解团队计划的更多信息请[访问我们的wiki](https://habitica.fandom.com/wiki/Group_Plans) \n\n## 哪些人可以从团队计划中受益?\n\n团队计划最适合那些想要进行协作的小团队。我们建议保持在2-5名成员。\n\n对于家庭来说不管是父母、孩子还是你和伴侣都能从团队计划中受益。共同的目标、家务或责任很适合在一块任务板上记录下来。\n\n团队计划对于那些拥有共同目标的工作团队或希望向员工介绍游戏化的管理者也很有帮助。\n\n## 快速入门团队计划\n\n以下是一些使用技巧可以帮助您的新团队快速起步。同时我们将在下一部分提供更多详细信息\n\n* 让团队成员成为管理者,使他们能够创建和编辑任务\n* 如果任务是一次性且可完成的,则保留未分配的任务\n* 为确保其他成员不会误领任务,请将任务指派给一位成员\n* 如果多位成员都需要完成同一任务,请将任务进行分配\n* 在个人任务板上开启显示共享任务这一功能,避免错过任何内容\n* 即使是多人任务,在任务完成后你也能获得奖励\n* 任务完成奖励并不会在团队成员之间共享或平分\n* 您可以通过任务颜色在团队任务板上来判断平均完成率\n* 定期查看团队任务板上的任务,以确保它们是否需要保留\n* 错过一个每日任务不会对你或你的团队造成伤害,但任务颜色会下降\n\n## 团队中的其他成员如何创建任务?\n\n只有团队队长和管理者可以创建任务。如果您希望成员也能进行创建那么您需要打开团队信息选项卡、查看成员列表并单击其名称旁的圆点图标将他们提升为管理者。\n\n## 任务分配该如何进行?\n\n团队计划赋予您将任务分配给团队其他成员的独特能力。任务分配功能非常适合委派。如果您已将任务分配给某位成员那么其他成员将无法完成它。\n\n如果一个任务需要多位成员完成那么您也可以将其分配给多人。例如如果每个人都必须刷牙请创建一个任务并将其分配给每位成员。这让他们都能勾选完成并获得个人奖励。当每个人勾选完成时团队主任务才会显示为完成。\n\n## 未分配的任务如何处理?\n\n团队里的任何成员都可以完成未分配的任务因此请保留那些未分配的任务以便任何成员都能完成它。例如倒垃圾。无论谁倒了垃圾都可以将其勾选并提示每个人任务已完成。\n\n## 在同步日如何重置工作?\n\n共享任务会同一时间重置方便大家同步任务共享板。同步时间由团队队长设置后展示在任务共享板上。由于共享任务自动重置第二天早上签到时将没有机会勾选昨天未完成的每日共享任务。\n\n错过每日共享任务不会造成伤害但是它们会降低颜色方便团队成员直观地了解进度。我们不希望任务共享给您带来负面的体验\n\n## 如何在APP上使用团队\n\n虽然APP尚未完全支持团队计划的所有功能但通过将任务复制到个人任务板您仍然可以在iOS和安卓的APP上完成共享任务。您可以从APP里的“设置”或浏览器版本里的团队任务板打开该选项。这将会使所有打开和分配的共享任务跨平台显示在您的个人任务板上。\n\n## 团队的共同任务与挑战有何区别?\n\n团队计划的共享任务板比挑战更具动态性因为它可以不断更新交互。如果您有一组任务想要发给许多人这一操作在挑战上执行会非常繁琐但在团队计划里可以快速实现。\n\n其中团队计划是付费功能而挑战对每个人都是免费的。\n\n你无法在挑战中分配特定的任务挑战也没有共享日重置。总的来说挑战提供的控制功能和直接交互功能较少。"
"webFaqAnswer13": "## 团队计划是如何运作的?\n\n[团队计划](/group-plans)让您的队伍或公会可以访问类似于您的个人任务板的共享任务板! 这是一种共享的 Habitica 体验,团队中的任何成员都可以创建和检查任务。\n\n还增加一些新功能如成员角色状态视图和任务分配为您提供更加可控的体验。想了解团队计划的更多信息请[访问我们的wiki](https://habitica.fandom.com/wiki/Group_Plans) \n\n## 哪些人可以从团队计划中受益?\n\n团队计划最适合那些想要进行协作的小团队。我们建议保持在2-5名成员。\n\n对于家庭来说不管是父母、孩子还是你和伴侣都能从团队计划中受益。共同的目标、家务或责任很适合在一块任务板上记录下来。\n\n团队计划对于那些拥有共同目标的工作团队或希望向员工介绍游戏化的管理者也很有帮助。\n\n## 快速入门团队计划\n\n以下是一些使用技巧可以帮助您的新团队快速起步。同时我们将在下文提供更多信息\n\n* 让团队成员成为管理者,使他们能够创建和编辑任务\n* 如果任务是一次性且可完成的,则保留未分配的任务\n* 为确保其他成员不会误领任务,请将任务指派给一位成员\n* 如果多位成员都需要完成同一任务,请将任务进行分配\n* 在个人任务板上开启显示共享任务这一功能,避免错过任何内容\n* 即使是多人任务,在任务完成后你也能获得奖励\n* 任务完成奖励并不会在团队成员之间共享或平分\n* 您可以通过任务颜色在团队任务板上来判断平均完成率\n* 定期查看团队任务板上的任务,以确保它们是否需要保留\n* 错过一个每日任务不会对你或你的团队造成伤害,但任务颜色会下降\n\n## 团队中的其他成员如何创建任务?\n\n只有团队队长和管理者可以创建任务。如果您希望成员也能进行创建那么您需要打开团队信息选项卡、查看成员列表并单击其名称旁的圆点图标将他们提升为管理者。\n\n## 任务分配该如何进行?\n\n团队计划赋予您将任务分配给团队其他成员的独特能力。任务分配功能非常适合委派。如果您已将任务分配给某位成员那么其他成员将无法完成它。\n\n如果一个任务需要多位成员完成那么您也可以将其分配给多人。例如如果每个人都必须刷牙请创建一个任务并将其分配给每位成员。这让他们都能勾选完成并获得个人奖励。当每个人勾选完成时团队主任务才会显示为完成。\n\n## 未分配的任务如何处理?\n\n团队里的任何成员都可以完成未分配的任务因此请保留那些未分配的任务以便任何成员都能完成它。例如倒垃圾。无论谁倒了垃圾都可以将其勾选并提示每个人任务已完成。\n\n## 在同步日如何重置工作?\n\n共享任务会同一时间重置方便大家同步共享任务板。同步时间由团队队长设置后展示在共享任务板上。由于共享任务自动重置第二天早上签到时将没有机会勾选昨天未完成的每日共享任务。\n\n错过每日共享任务不会造成伤害但是它们会降低颜色方便团队成员直观地了解进度。我们不希望任务共享给您带来负面的体验\n\n## 如何在APP上使用团队\n\n虽然APP尚未完全支持团队计划的所有功能但通过将任务复制到个人任务板您仍然可以在iOS和安卓的APP上完成共享任务。您可以从APP里的“设置”或浏览器版本里的团队任务板打开该选项。这将会使所有打开和分配的共享任务跨平台显示在您的个人任务板上。\n\n## 团队的共同任务与挑战有何区别?\n\n团队计划的共享任务板比挑战更具动态性因为它可以不断更新交互。如果您有一组任务想要发给许多人这一操作在挑战上执行会非常繁琐但在团队计划里可以快速实现。\n\n其中团队计划是付费功能而挑战对每个人都是免费的。\n\n你无法在挑战中分配特定的任务挑战也没有共享日重置。总的来说挑战提供的控制功能和直接交互功能较少。",
"iosFaqAnswer13": "## 团队计划是如何运作的?\n\n[团队计划](/group-plans)让您的队伍或公会可以访问类似于您的个人任务板的共享任务板! 这是一种共享的 Habitica 体验,团队中的任何成员都可以创建和检查任务。\n\n还增加一些新功能如成员角色状态视图和任务分配为您提供更加可控的体验。想了解团队计划的更多信息请[访问我们的wiki](https://habitica.fandom.com/wiki/Group_Plans) \n\n## 哪些人可以从团队计划中受益?\n\n团队计划最适合那些想要进行协作的小团队。我们建议保持在2-5名成员。\n\n对于家庭来说不管是父母、孩子还是你和伴侣都能从团队计划中受益。共同的目标、家务或责任很适合在一块任务板上记录下来。\n\n团队计划对于那些拥有共同目标的工作团队或希望向员工介绍游戏化的管理者也很有帮助。\n\n## 快速入门团队计划\n\n以下是一些使用技巧可以帮助您的新团队快速起步。同时我们将在下文提供更多信息\n\n* 让团队成员成为管理者,使他们能够创建和编辑任务\n* 如果任务是一次性且可完成的,则保留未分配的任务\n* 为确保其他成员不会误领任务,请将任务指派给一位成员\n* 如果多位成员都需要完成同一任务,请将任务进行分配\n* 在个人任务板上开启显示共享任务这一功能,避免错过任何内容\n* 即使是多人任务,在任务完成后你也能获得奖励\n* 任务完成奖励并不会在团队成员之间共享或平分\n* 您可以通过任务颜色在团队任务板上来判断平均完成率\n* 定期查看团队任务板上的任务,以确保它们是否需要保留\n* 错过一个每日任务不会对你或你的团队造成伤害,但任务颜色会下降\n\n## 团队中的其他成员如何创建任务?\n\n只有团队队长和管理者可以创建任务。如果您希望成员也能进行创建那么您需要打开团队信息选项卡、查看成员列表并单击其名称旁的圆点图标将他们提升为管理者。\n\n## 任务分配该如何进行?\n\n团队计划赋予您将任务分配给团队其他成员的独特能力。任务分配功能非常适合委派。如果您已将任务分配给某位成员那么其他成员将无法完成它。\n\n如果一个任务需要多位成员完成那么您也可以将其分配给多人。例如如果每个人都必须刷牙请创建一个任务并将其分配给每位成员。这让他们都能勾选完成并获得个人奖励。当每个人勾选完成时团队主任务才会显示为完成。\n\n## 未分配的任务如何处理?\n\n团队里的任何成员都可以完成未分配的任务因此请保留那些未分配的任务以便任何成员都能完成它。例如倒垃圾。无论谁倒了垃圾都可以将其勾选并提示每个人任务已完成。\n\n## 在同步日如何重置工作?\n\n共享任务会同一时间重置方便大家同步共享任务板。同步时间由团队队长设置后展示在共享任务板上。由于共享任务自动重置第二天早上签到时将没有机会勾选昨天未完成的每日共享任务。\n\n错过每日共享任务不会造成伤害但是它们会降低颜色方便团队成员直观地了解进度。我们不希望任务共享给您带来负面的体验\n\n## 如何在APP上使用团队\n\n虽然APP尚未完全支持团队计划的所有功能但通过将任务复制到个人任务板您仍然可以在iOS和安卓的APP上完成共享任务。您可以从APP里的“设置”或浏览器版本里的团队任务板打开该选项。这将会使所有打开和分配的共享任务跨平台显示在您的个人任务板上。\n\n## 团队的共同任务与挑战有何区别?\n\n团队计划的共享任务板比挑战更具动态性因为它可以不断更新交互。如果您有一组任务想要发给许多人这一操作在挑战上执行会非常繁琐但在团队计划里可以快速实现。\n\n其中团队计划是付费功能而挑战对每个人都是免费的。\n\n你无法在挑战中分配特定的任务挑战也没有共享日重置。总的来说挑战提供的控制功能和直接交互功能较少。",
"androidFaqAnswer13": "## 团队计划是如何运作的?\n\n[团队计划](/group-plans)让您的队伍或公会可以访问类似于您的个人任务板的共享任务板! 这是一种共享的 Habitica 体验,团队中的任何成员都可以创建和检查任务。\n\n还增加一些新功能如成员角色状态视图和任务分配为您提供更加可控的体验。想了解团队计划的更多信息请[访问我们的wiki](https://habitica.fandom.com/wiki/Group_Plans) \n\n## 哪些人可以从团队计划中受益?\n\n团队计划最适合那些想要进行协作的小团队。我们建议保持在2-5名成员。\n\n对于家庭来说不管是父母、孩子还是你和伴侣都能从团队计划中受益。共同的目标、家务或责任很适合在一块任务板上记录下来。\n\n团队计划对于那些拥有共同目标的工作团队或希望向员工介绍游戏化的管理者也很有帮助。\n\n## 快速入门团队计划\n\n以下是一些使用技巧可以帮助您的新团队快速起步。同时我们将在下文提供更多信息\n\n* 让团队成员成为管理者,使他们能够创建和编辑任务\n* 如果任务是一次性且可完成的,则保留未分配的任务\n* 为确保其他成员不会误领任务,请将任务指派给一位成员\n* 如果多位成员都需要完成同一任务,请将任务进行分配\n* 在个人任务板上开启显示共享任务这一功能,避免错过任何内容\n* 即使是多人任务,在任务完成后你也能获得奖励\n* 任务完成奖励并不会在团队成员之间共享或平分\n* 您可以通过任务颜色在团队任务板上来判断平均完成率\n* 定期查看团队任务板上的任务,以确保它们是否需要保留\n* 错过一个每日任务不会对你或你的团队造成伤害,但任务颜色会下降\n\n## 团队中的其他成员如何创建任务?\n\n只有团队队长和管理者可以创建任务。如果您希望成员也能进行创建那么您需要打开团队信息选项卡、查看成员列表并单击其名称旁的圆点图标将他们提升为管理者。\n\n## 任务分配该如何进行?\n\n团队计划赋予您将任务分配给团队其他成员的独特能力。任务分配功能非常适合委派。如果您已将任务分配给某位成员那么其他成员将无法完成它。\n\n如果一个任务需要多位成员完成那么您也可以将其分配给多人。例如如果每个人都必须刷牙请创建一个任务并将其分配给每位成员。这让他们都能勾选完成并获得个人奖励。当每个人勾选完成时团队主任务才会显示为完成。\n\n## 未分配的任务如何处理?\n\n团队里的任何成员都可以完成未分配的任务因此请保留那些未分配的任务以便任何成员都能完成它。例如倒垃圾。无论谁倒了垃圾都可以将其勾选并提示每个人任务已完成。\n\n## 在同步日如何重置工作?\n\n共享任务会同一时间重置方便大家同步共享任务板。同步时间由团队队长设置后展示在共享任务板上。由于共享任务自动重置第二天早上签到时将没有机会勾选昨天未完成的每日共享任务。\n\n错过每日共享任务不会造成伤害但是它们会降低颜色方便团队成员直观地了解进度。我们不希望任务共享给您带来负面的体验\n\n## 如何在APP上使用团队\n\n虽然APP尚未完全支持团队计划的所有功能但通过将任务复制到个人任务板您仍然可以在iOS和安卓的APP上完成共享任务。您可以从APP里的“设置”或浏览器版本里的团队任务板打开该选项。这将会使所有打开和分配的共享任务跨平台显示在您的个人任务板上。\n\n## 团队的共同任务与挑战有何区别?\n\n团队计划的共享任务板比挑战更具动态性因为它可以不断更新交互。如果您有一组任务想要发给许多人这一操作在挑战上执行会非常繁琐但在团队计划里可以快速实现。\n\n其中团队计划是付费功能而挑战对每个人都是免费的。\n\n你无法在挑战中分配特定的任务挑战也没有共享日重置。总的来说挑战提供的控制功能和直接交互功能较少。"
}

View file

@ -2676,7 +2676,7 @@
"shieldArmoireSoftVioletPillowNotes": "一个聪明的战士任何征战会装枕头。保护你自己免受迟滞诱发的恐慌…… 即使就在睡觉。增加<%= int %>点智力。魔法衣橱紫家居服套装3/3。",
"shieldArmoireGardenersSpadeText": "园丁铲",
"shieldArmoireGardenersSpadeNotes": "如果你在园里开掘、找地下宝藏、还是修暗道,这个可信任的铲总在你的旁边。增加<%= str %>点力量。魔法衣橱园丁套装3/4。",
"shieldArmoireSpanishGuitarNotes": "叮咚!叮咚!叮叮咚咚!将弹这把吉他集会你的队伍去一个音乐会还是典礼。增加<%= per %>点感知和<%= int %>点智力。魔法衣橱乐器套装1 2/3",
"shieldArmoireSpanishGuitarNotes": "叮咚!叮咚!叮叮咚咚!通过弹奏吉他召集你的队伍去参加音乐会或庆祝活动。增加<%= per %>点感知和<%= int %>点智力。魔法衣橱乐器套装12/3",
"shieldArmoireSnareDrumText": "小鼓",
"shieldArmoireSnareDrumNotes": "嗒嗒嗒!将打这面鼓集会你的队伍去游行还是行军打仗。增加<%= con %>点体质和<%= int %>点智力。魔法衣橱乐器套装1 3/3",
"shieldArmoireSpanishGuitarText": "西班牙吉他",
@ -2769,5 +2769,20 @@
"armorSpecialWinter2023RogueText": "打包带",
"armorSpecialWinter2023WarriorNotes": "这款结实的海象套装非常适合半夜穿上后去海边散步。增加<%=con%>点体质。2022-2023年冬季限定版装备。",
"armorSpecialWinter2023MageNotes": "仅仅是有灯亮着,并不能让你成为一棵树……也许明年还有机会。增加<%=int%>点智力。2022-2023年冬季限定版装备。",
"armorSpecialWinter2023HealerText": "红衣主教套装"
"armorSpecialWinter2023HealerText": "红衣主教套装",
"armorSpecialWinter2023HealerNotes": "这套明亮的红衣非常适合你,穿上它解决你的难题。增加<%= con %>点体质。2022-2023年冬季限定版装备。",
"headSpecialWinter2023RogueText": "礼品蝴蝶结",
"headSpecialNye2022Text": "梦幻派对帽",
"headSpecialNye2022Notes": "你收到了一顶梦幻派对帽!新年钟声响起时,请自豪地戴上它!没有属性加成。",
"headSpecialWinter2023HealerNotes": "这顶主教头盔非常适合你戴着吹口哨和唱歌来预示冬天的到来。增加<%= int %>点智力。2022-2023年冬季限定版装备。",
"shieldSpecialWinter2023WarriorNotes": "海象说,现在是时候谈论这些事情了:牡蛎的外壳、冬天的钟声、远方的歌者,盾里的珍珠无处寻觅,新的一年带来惊喜!增加<%= con %>点体质。2022-2023年冬季限定版装备。",
"headSpecialWinter2023RogueNotes": "人们“解开”你头发的诱惑会给你练习闪避的机会。增加<%= per %>点感知。2022-2023年冬季限定版装备。",
"headSpecialWinter2023WarriorText": "海象头盔",
"headSpecialWinter2023WarriorNotes": "这顶海象头盔非常适合你戴着与朋友聊天或去参加晚宴。增加<%= str %>点力量。2022-2023年冬季限定版装备。",
"headSpecialWinter2023MageText": "童话之冠",
"headSpecialWinter2023MageNotes": "你是用星夜药水孵化出来的吗?因为你我的眼睛里满是星星。增加<%= per %>点感知。2022-2023年冬季限定版装备。",
"headSpecialWinter2023HealerText": "主教头盔",
"shieldSpecialWinter2023WarriorText": "牡蛎护盾",
"shieldSpecialWinter2023HealerText": "清爽果酱",
"shieldSpecialWinter2023HealerNotes": "你的霜雪之歌将抚慰所有听众的心灵。增加<%= con %>点体质。2022-2023年冬季限定版装备。"
}

View file

@ -196,7 +196,7 @@
"winter2021ArcticExplorerHealerSet": "极地探索者(医者)",
"winter2021WinterMoonMageSet": "冬月(法师)",
"winter2021IceFishingWarriorSet": "冰钓(战士)",
"g1g1Limitations": "该限时活动从美国东部时间12月16日上午8:00(13:00 UTC)开始于美国东部时间1月6日下午8:00(1:00 UTC)结束。该促销活动只允许您将订阅赠送给另一位Habitica居民。如果您或您的礼物接受者当前的订阅尚未到期或取消赠送所获得的订阅将进行顺延。",
"g1g1Limitations": "该限时活动从美国东部时间12月15日上午8:00(UTC 13:00)开始于美国东部时间1月8日下午11:59(UTC 1月9日 04:59)结束。该促销活动只允许您将订阅赠送给另一位Habitica居民。如果您或您的礼物接受者当前的订阅尚未到期或取消赠送所获得的订阅将进行顺延。",
"limitations": "限制因素",
"g1g1HowItWorks": "输入你想赠送订阅的账号的用户名。选择你想赠送订阅的时长。你的账号将免费获得一份相同的订阅。",
"spring2021TwinFlowerRogueSet": "林奈花(盗贼)",
@ -235,5 +235,9 @@
"fall2022KappaRogueSet": "河童(盗贼)",
"fall2022OrcWarriorSet": "兽人(战士)",
"fall2022HarpyMageSet": "鹰身女妖(法师)",
"fall2022WatcherHealerSet": "眼魔(医者)"
"fall2022WatcherHealerSet": "眼魔(医者)",
"winter2023WalrusWarriorSet": "海象(战士)",
"winter2023FairyLightsMageSet": "仙灯(法师)",
"winter2023CardinalHealerSet": "红衣主教(医者)",
"winter2023RibbonRogueSet": "缎带(盗贼)"
}

View file

@ -540,6 +540,11 @@ const backgrounds = {
snowy_temple: { },
winter_lake_with_swans: { },
},
eventBackgrounds: {
birthday_bash: {
price: 0,
},
},
timeTravelBackgrounds: {
airship: {
price: 1,
@ -583,7 +588,9 @@ forOwn(backgrounds, (backgroundsInSet, set) => {
forOwn(backgroundsInSet, (background, bgKey) => {
background.key = bgKey;
background.set = set;
background.price = background.price || 7;
if (background.price !== 0) {
background.price = background.price || 7;
}
background.text = background.text || t(`background${upperFirst(camelCase(bgKey))}Text`);
background.notes = background.notes || t(`background${upperFirst(camelCase(bgKey))}Notes`);

View file

@ -10,11 +10,17 @@ const gemsPromo = {
export const EVENTS = {
noEvent: {
start: '2023-01-31T20:00-05:00',
start: '2023-02-08T23:59-05:00',
end: '2023-02-14T08:00-05:00',
season: 'normal',
npcImageSuffix: '',
},
birthday10: {
start: '2023-01-30T08:00-05:00',
end: '2023-02-08T23:59-05:00',
season: 'birthday',
npcImageSuffix: '_birthday',
},
winter2023: {
start: '2022-12-20T08:00-05:00',
end: '2023-01-31T23:59-05:00',

View file

@ -97,6 +97,7 @@ const back = {
202205: { },
202206: { },
202301: { },
202302: { },
};
const body = {
@ -227,6 +228,7 @@ const headAccessory = {
202203: { },
202212: { },
202205: { },
202302: { },
301405: { },
};

Some files were not shown because too many files have changed in this diff Show more