mirror of
https://github.com/HabitRPG/habitica.git
synced 2026-05-24 02:52:20 -05:00
Compare commits
88 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 484bae40cd | |||
| c0b6353ded | |||
| 8da36bf27c | |||
| 1800fabaaa | |||
| cda5c6fbb0 | |||
| 495d01f386 | |||
| 24e1bfdfba | |||
| f757e645b7 | |||
| bf492933cc | |||
| cc7dac47c4 | |||
| c8189360d6 | |||
| 88183149c5 | |||
| a8f397c674 | |||
| c5aeab652d | |||
| cc04761c24 | |||
| 29dccdd148 | |||
| 186b929e59 | |||
| 551abf292c | |||
| 1e1c058d82 | |||
| 2ea9070a9b | |||
| 168a3a6e89 | |||
| 67bd2d9130 | |||
| cb0280ca8b | |||
| 259b15877b | |||
| dd31f559c7 | |||
| 6c29ea8c4c | |||
| dc316ad1c8 | |||
| a5b37fcc02 | |||
| 16f1c7286b | |||
| d5b3e4ec9f | |||
| 47eb9bf3ff | |||
| 2977346ccb | |||
| a545cc72d0 | |||
| 82548f69e5 | |||
| 5aacae3ead | |||
| 9f8162b82c | |||
| 98a749b239 | |||
| 0cef9eff87 | |||
| 3189a944d7 | |||
| 79066165e2 | |||
| c6f6df3f14 | |||
| 7bfd6ceca1 | |||
| 400f4dfb01 | |||
| 57a9fb5241 | |||
| 08c63f94fc | |||
| 9c6c90a2e9 | |||
| 39765895ee | |||
| 2a8fc7aea2 | |||
| 0a86d04a15 | |||
| 3afa7e6da5 | |||
| 0ac0723be5 | |||
| 0f2d2ddad6 | |||
| 9d16ab7dba | |||
| 776e9834f3 | |||
| 1d98929453 | |||
| 80664b6c5f | |||
| 01123367b1 | |||
| f6a80d18b6 | |||
| 9ac7840940 | |||
| 100275f460 | |||
| 489b9c4019 | |||
| cbc6e7aa0c | |||
| b6eab67e6a | |||
| f920a441a5 | |||
| 12a9eec540 | |||
| f83d86b7f3 | |||
| 0410c97001 | |||
| 4482b734a5 | |||
| 0131cc07bf | |||
| 70a9f66dcd | |||
| 3057fdbd4a | |||
| cc48479c66 | |||
| f4e573f684 | |||
| a2e59d0920 | |||
| 39fe86c688 | |||
| 78ceb427a3 | |||
| 7c17a32bbb | |||
| 9a34c16fa2 | |||
| 38c24763fa | |||
| 776f3d288b | |||
| e4661c3763 | |||
| 156d15c540 | |||
| 7d9b8a5ceb | |||
| 95c9dbaa73 | |||
| d9f7772453 | |||
| 8efed37241 | |||
| 66422d4235 | |||
| eb4e382ecf |
@@ -37,6 +37,7 @@ yarn.lock
|
||||
.elasticbeanstalk/*
|
||||
!.elasticbeanstalk/*.cfg.yml
|
||||
!.elasticbeanstalk/*.global.yml
|
||||
/.vscode
|
||||
|
||||
# webstorm fake webpack for path intellisense
|
||||
webpack.webstorm.config
|
||||
|
||||
@@ -9,3 +9,4 @@ test/**
|
||||
*.swp
|
||||
*.swx
|
||||
website/raw_sprites/**
|
||||
content_cache/**
|
||||
|
||||
@@ -75,5 +75,9 @@
|
||||
"WEB_CONCURRENCY": 1,
|
||||
"SKIP_SSL_CHECK_KEY": "key",
|
||||
"ENABLE_STACKDRIVER_TRACING": "false",
|
||||
"APPLE_AUTH_PRIVATE_KEY": "",
|
||||
"APPLE_TEAM_ID": "",
|
||||
"APPLE_AUTH_CLIENT_ID": "",
|
||||
"APPLE_AUTH_KEY_ID": "",
|
||||
"BLOCKED_IPS": ""
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ gulp.task('content:cache', done => {
|
||||
// Requiring at runtime because these files access `common`
|
||||
// code which in production works only if transpiled so after
|
||||
// gulp build:babel:common has run
|
||||
const { CONTENT_CACHE_PATH, getLocalizedContent } = require('../website/server/libs/content'); // eslint-disable-line global-require
|
||||
const { CONTENT_CACHE_PATH, getLocalizedContentResponse } = require('../website/server/libs/content'); // eslint-disable-line global-require
|
||||
const { langCodes } = require('../website/server/libs/i18n'); // eslint-disable-line global-require
|
||||
|
||||
try {
|
||||
@@ -23,7 +23,7 @@ gulp.task('content:cache', done => {
|
||||
langCodes.forEach(langCode => {
|
||||
fs.writeFileSync(
|
||||
`${CONTENT_CACHE_PATH}${langCode}.json`,
|
||||
getLocalizedContent(langCode),
|
||||
getLocalizedContentResponse(langCode),
|
||||
'utf8',
|
||||
);
|
||||
});
|
||||
|
||||
Generated
+572
-255
File diff suppressed because it is too large
Load Diff
+8
-5
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "4.140.1",
|
||||
"version": "4.140.6",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.9.0",
|
||||
"@babel/preset-env": "^7.9.0",
|
||||
"@babel/preset-env": "^7.9.5",
|
||||
"@babel/register": "^7.9.0",
|
||||
"@google-cloud/trace-agent": "^4.2.5",
|
||||
"@slack/client": "^4.12.0",
|
||||
@@ -14,7 +14,7 @@
|
||||
"amplitude": "^3.5.0",
|
||||
"apidoc": "^0.17.5",
|
||||
"apn": "^2.2.0",
|
||||
"aws-sdk": "^2.648.0",
|
||||
"apple-auth": "^1.0.5",
|
||||
"bcrypt": "^3.0.8",
|
||||
"body-parser": "^1.18.3",
|
||||
"compression": "^1.7.4",
|
||||
@@ -41,15 +41,18 @@
|
||||
"image-size": "^0.8.3",
|
||||
"in-app-purchase": "^1.11.3",
|
||||
"js2xmlparser": "^4.0.1",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"jwks-rsa": "^1.7.0",
|
||||
"lodash": "^4.17.15",
|
||||
"merge-stream": "^2.0.0",
|
||||
"method-override": "^3.0.0",
|
||||
"moment": "^2.24.0",
|
||||
"moment-recur": "^1.0.7",
|
||||
"mongoose": "^5.9.6",
|
||||
"mongoose": "^5.9.7",
|
||||
"morgan": "^1.10.0",
|
||||
"nconf": "^0.10.0",
|
||||
"node-gcm": "^1.0.2",
|
||||
"on-headers": "^1.0.2",
|
||||
"passport": "^0.4.1",
|
||||
"passport-facebook": "^3.0.0",
|
||||
"passport-google-oauth2": "^0.2.0",
|
||||
@@ -69,7 +72,7 @@
|
||||
"validator": "^11.0.0",
|
||||
"vinyl-buffer": "^1.0.1",
|
||||
"winston": "^3.2.1",
|
||||
"winston-loggly-bulk": "^3.0.1",
|
||||
"winston-loggly-bulk": "^3.1.0",
|
||||
"xml2js": "^0.4.23"
|
||||
},
|
||||
"private": true,
|
||||
|
||||
@@ -8,9 +8,9 @@ describe('contentLib', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('getLocalizedContent', () => {
|
||||
describe('getLocalizedContentResponse', () => {
|
||||
it('clones, not modify, the original content data', () => {
|
||||
contentLib.getLocalizedContent();
|
||||
contentLib.getLocalizedContentResponse();
|
||||
expect(typeof content.backgrounds.backgrounds062014.beach.text).to.equal('function');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -18,6 +18,16 @@ function getUser () {
|
||||
value: 'email@facebook',
|
||||
}],
|
||||
},
|
||||
google: {
|
||||
emails: [{
|
||||
value: 'email@google',
|
||||
}],
|
||||
},
|
||||
apple: {
|
||||
emails: [{
|
||||
value: 'email@apple',
|
||||
}],
|
||||
},
|
||||
},
|
||||
profile: {
|
||||
name: 'profile name',
|
||||
@@ -58,6 +68,8 @@ describe('emails', () => {
|
||||
const user = getUser();
|
||||
delete user.profile.name;
|
||||
delete user.auth.local.email;
|
||||
delete user.auth.google.emails;
|
||||
delete user.auth.apple.emails;
|
||||
|
||||
const data = getUserInfo(user, ['name', 'email', '_id', 'canSend']);
|
||||
|
||||
@@ -67,12 +79,48 @@ describe('emails', () => {
|
||||
expect(data).to.have.property('canSend', true);
|
||||
});
|
||||
|
||||
it('returns correct user data [google users]', () => {
|
||||
const attachEmail = requireAgain(pathToEmailLib);
|
||||
const { getUserInfo } = attachEmail;
|
||||
const user = getUser();
|
||||
delete user.profile.name;
|
||||
delete user.auth.local.email;
|
||||
delete user.auth.facebook.emails;
|
||||
delete user.auth.apple.emails;
|
||||
|
||||
const data = getUserInfo(user, ['name', 'email', '_id', 'canSend']);
|
||||
|
||||
expect(data).to.have.property('name', user.auth.local.username);
|
||||
expect(data).to.have.property('email', user.auth.google.emails[0].value);
|
||||
expect(data).to.have.property('_id', user._id);
|
||||
expect(data).to.have.property('canSend', true);
|
||||
});
|
||||
|
||||
it('returns correct user data [apple users]', () => {
|
||||
const attachEmail = requireAgain(pathToEmailLib);
|
||||
const { getUserInfo } = attachEmail;
|
||||
const user = getUser();
|
||||
delete user.profile.name;
|
||||
delete user.auth.local.email;
|
||||
delete user.auth.google.emails;
|
||||
delete user.auth.facebook.emails;
|
||||
|
||||
const data = getUserInfo(user, ['name', 'email', '_id', 'canSend']);
|
||||
|
||||
expect(data).to.have.property('name', user.auth.local.username);
|
||||
expect(data).to.have.property('email', user.auth.apple.emails[0].value);
|
||||
expect(data).to.have.property('_id', user._id);
|
||||
expect(data).to.have.property('canSend', true);
|
||||
});
|
||||
|
||||
it('has fallbacks for missing data', () => {
|
||||
const attachEmail = requireAgain(pathToEmailLib);
|
||||
const { getUserInfo } = attachEmail;
|
||||
const user = getUser();
|
||||
delete user.auth.local.email;
|
||||
delete user.auth.facebook;
|
||||
delete user.auth.google;
|
||||
delete user.auth.apple;
|
||||
|
||||
const data = getUserInfo(user, ['name', 'email', '_id', 'canSend']);
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import faq from '../../../../website/common/script/content/faq';
|
||||
import common from '../../../../website/common';
|
||||
import { localizeContentData } from '../../../../website/server/libs/content';
|
||||
|
||||
const { i18n } = common;
|
||||
|
||||
describe('localizeContentData', () => {
|
||||
it('Should take a an object with localization identifiers and '
|
||||
+ 'return an object with actual translations in English', () => {
|
||||
const faqInEnglish = localizeContentData(faq, 'en');
|
||||
|
||||
expect(faqInEnglish).to.have.property('stillNeedHelp');
|
||||
expect(faqInEnglish.stillNeedHelp.ios).to.equal(i18n.t('iosFaqStillNeedHelp', 'en'));
|
||||
});
|
||||
it('Should take an object with localization identifiers and '
|
||||
+ 'return an object with actual translations in German', () => {
|
||||
const faqInEnglish = localizeContentData(faq, 'de');
|
||||
|
||||
expect(faqInEnglish).to.have.property('stillNeedHelp');
|
||||
expect(faqInEnglish.stillNeedHelp.ios).to.equal(i18n.t('iosFaqStillNeedHelp', 'de'));
|
||||
});
|
||||
});
|
||||
@@ -1,13 +1,15 @@
|
||||
import requireAgain from 'require-again';
|
||||
import apn from 'apn/mock';
|
||||
import _ from 'lodash';
|
||||
import nconf from 'nconf';
|
||||
import gcmLib from 'node-gcm'; // works with FCM notifications too
|
||||
import { model as User } from '../../../../website/server/models/user';
|
||||
import {
|
||||
sendNotification as sendPushNotification,
|
||||
MAX_MESSAGE_LENGTH,
|
||||
} from '../../../../website/server/libs/pushNotifications';
|
||||
|
||||
describe('pushNotifications', () => {
|
||||
let user;
|
||||
let sendPushNotification;
|
||||
const pathToPushNotifications = '../../../../website/server/libs/pushNotifications';
|
||||
let fcmSendSpy;
|
||||
let apnSendSpy;
|
||||
|
||||
@@ -28,8 +30,6 @@ describe('pushNotifications', () => {
|
||||
on: () => null,
|
||||
send: apnSendSpy,
|
||||
});
|
||||
|
||||
sendPushNotification = requireAgain(pathToPushNotifications).sendNotification;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -86,6 +86,67 @@ describe('pushNotifications', () => {
|
||||
expect(apnSendSpy).to.not.have.been.called;
|
||||
});
|
||||
|
||||
it('cuts the message to 300 chars', () => {
|
||||
const longMessage = `12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345`;
|
||||
|
||||
expect(longMessage.length > MAX_MESSAGE_LENGTH).to.equal(true);
|
||||
|
||||
const details = {
|
||||
identifier,
|
||||
title,
|
||||
message: longMessage,
|
||||
payload: {
|
||||
message: longMessage,
|
||||
},
|
||||
};
|
||||
|
||||
sendPushNotification(user, details);
|
||||
|
||||
expect(details.message).to.equal(_.truncate(longMessage, { length: MAX_MESSAGE_LENGTH }));
|
||||
expect(details.payload.message)
|
||||
.to.equal(_.truncate(longMessage, { length: MAX_MESSAGE_LENGTH }));
|
||||
|
||||
expect(details.message.length).to.equal(MAX_MESSAGE_LENGTH);
|
||||
expect(details.payload.message.length).to.equal(MAX_MESSAGE_LENGTH);
|
||||
});
|
||||
|
||||
it('cuts the message to 300 chars (no payload)', () => {
|
||||
const longMessage = `12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
|
||||
12345 12345 12345 12345 12345 12345 12345 12345 12345 12345`;
|
||||
|
||||
expect(longMessage.length > MAX_MESSAGE_LENGTH).to.equal(true);
|
||||
|
||||
const details = {
|
||||
identifier,
|
||||
title,
|
||||
message: longMessage,
|
||||
};
|
||||
|
||||
sendPushNotification(user, details);
|
||||
|
||||
expect(details.message).to.equal(_.truncate(longMessage, { length: MAX_MESSAGE_LENGTH }));
|
||||
expect(details.message.length).to.equal(MAX_MESSAGE_LENGTH);
|
||||
});
|
||||
|
||||
// TODO disabled because APN relies on a Promise
|
||||
xit('uses APN for iOS devices', () => {
|
||||
user.pushDevices.push({
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
defer,
|
||||
sleep,
|
||||
} from '../../../helpers/api-unit.helper';
|
||||
|
||||
import logger from '../../../../website/server/libs/logger';
|
||||
|
||||
describe('webhooks', () => {
|
||||
let webhooks; let
|
||||
@@ -356,6 +356,7 @@ describe('webhooks', () => {
|
||||
});
|
||||
|
||||
it('records failures', async () => {
|
||||
sinon.stub(logger, 'error');
|
||||
const body = {};
|
||||
sendWebhook.send(user, body);
|
||||
|
||||
@@ -369,6 +370,9 @@ describe('webhooks', () => {
|
||||
|
||||
expect(user.webhooks[0].failures).to.equal(1);
|
||||
expect((Date.now() - user.webhooks[0].lastFailureAt.getTime()) < 10000).to.be.true;
|
||||
|
||||
expect(logger.error).to.be.calledOnce;
|
||||
logger.error.restore();
|
||||
});
|
||||
|
||||
it('disables a webhook after 10 failures', async () => {
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import {
|
||||
generateRes,
|
||||
generateReq,
|
||||
generateNext,
|
||||
} from '../../../helpers/api-unit.helper';
|
||||
import {
|
||||
disableCache,
|
||||
} from '../../../../website/server/middlewares/cache';
|
||||
|
||||
describe('cache middlewares', () => {
|
||||
let res; let req; let
|
||||
next;
|
||||
|
||||
beforeEach(() => {
|
||||
req = generateReq();
|
||||
res = generateRes();
|
||||
next = generateNext();
|
||||
});
|
||||
|
||||
describe('disableCache', () => {
|
||||
it('sets the correct headers', () => {
|
||||
disableCache(req, res, next);
|
||||
expect(res.set).to.have.been.calledWith('Cache-Control', 'no-store');
|
||||
expect(next).to.have.been.calledOnce;
|
||||
});
|
||||
|
||||
xit('removes the etag header', () => {
|
||||
// @TODO how to stub onHeaders
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -346,4 +346,23 @@ describe('DELETE /user', () => {
|
||||
await expect(checkExistence('users', user._id)).to.eventually.eql(false);
|
||||
});
|
||||
});
|
||||
|
||||
context('user with Apple auth', async () => {
|
||||
beforeEach(async () => {
|
||||
user = await generateUser({
|
||||
auth: {
|
||||
apple: {
|
||||
id: 'apple-id',
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('deletes a Apple user', async () => {
|
||||
await user.del('/user', {
|
||||
password: DELETE_CONFIRMATION,
|
||||
});
|
||||
await expect(checkExistence('users', user._id)).to.eventually.eql(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -95,4 +95,42 @@ describe('DELETE social registration', () => {
|
||||
expect(user.auth.goodl).to.be.undefined;
|
||||
});
|
||||
});
|
||||
|
||||
context('Apple', () => {
|
||||
it('fails if user does not have an alternative registration method', async () => {
|
||||
await user.update({
|
||||
'auth.apple.id': 'some-apple-id',
|
||||
'auth.local': { ok: true },
|
||||
});
|
||||
await expect(user.del('/user/auth/social/apple')).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('cantDetachSocial'),
|
||||
});
|
||||
});
|
||||
|
||||
it('succeeds if user has a local registration', async () => {
|
||||
await user.update({
|
||||
'auth.apple.id': 'some-apple-id',
|
||||
});
|
||||
|
||||
const response = await user.del('/user/auth/social/apple');
|
||||
expect(response).to.eql({});
|
||||
await user.sync();
|
||||
expect(user.auth.apple).to.be.undefined;
|
||||
});
|
||||
|
||||
it('succeeds if user has a facebook registration', async () => {
|
||||
await user.update({
|
||||
'auth.apple.id': 'some-apple-id',
|
||||
'auth.facebook.id': 'some-facebook-id',
|
||||
'auth.local': { ok: true },
|
||||
});
|
||||
|
||||
const response = await user.del('/user/auth/social/apple');
|
||||
expect(response).to.eql({});
|
||||
await user.sync();
|
||||
expect(user.auth.goodl).to.be.undefined;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import {
|
||||
generateUser,
|
||||
requester,
|
||||
getProperty,
|
||||
} from '../../../../../helpers/api-integration/v3';
|
||||
import * as appleAuth from '../../../../../../website/server/libs/auth/apple';
|
||||
|
||||
describe('GET /user/auth/apple', () => {
|
||||
let api;
|
||||
let user;
|
||||
const appleEndpoint = '/user/auth/apple';
|
||||
|
||||
before(async () => {
|
||||
const expectedResult = { id: 'appleId', name: 'an apple user' };
|
||||
sandbox.stub(appleAuth, 'appleProfile').returns(Promise.resolve(expectedResult));
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
api = requester();
|
||||
user = await generateUser();
|
||||
});
|
||||
|
||||
it('registers a new user', async () => {
|
||||
const response = await api.get(appleEndpoint);
|
||||
|
||||
expect(response.apiToken).to.exist;
|
||||
expect(response.id).to.exist;
|
||||
expect(response.newUser).to.be.true;
|
||||
await expect(getProperty('users', response.id, 'auth.apple.id')).to.eventually.equal('appleId');
|
||||
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('an apple user');
|
||||
});
|
||||
|
||||
it('logs an existing user in', async () => {
|
||||
const registerResponse = await api.get(appleEndpoint);
|
||||
|
||||
const response = await api.get(appleEndpoint);
|
||||
|
||||
expect(response.apiToken).to.eql(registerResponse.apiToken);
|
||||
expect(response.id).to.eql(registerResponse.id);
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('add social auth to an existing user', async () => {
|
||||
const response = await user.get(appleEndpoint);
|
||||
|
||||
expect(response.apiToken).to.exist;
|
||||
expect(response.id).to.exist;
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
});
|
||||
@@ -492,6 +492,74 @@ describe('POST /user/auth/local/register', () => {
|
||||
});
|
||||
});
|
||||
|
||||
context('attach to google user', () => {
|
||||
let user;
|
||||
const email = 'some@email-google.net';
|
||||
const username = 'some-username-google';
|
||||
const password = 'some-password';
|
||||
beforeEach(async () => {
|
||||
user = await generateUser();
|
||||
});
|
||||
it('checks onlySocialAttachLocal', async () => {
|
||||
await expect(user.post('/user/auth/local/register', {
|
||||
email,
|
||||
username,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('onlySocialAttachLocal'),
|
||||
});
|
||||
});
|
||||
it('succeeds', async () => {
|
||||
await user.update({ 'auth.google.id': 'some-google-id', 'auth.local': { ok: true } });
|
||||
await user.post('/user/auth/local/register', {
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
});
|
||||
await user.sync();
|
||||
expect(user.auth.local.username).to.eql(username);
|
||||
expect(user.auth.local.email).to.eql(email);
|
||||
});
|
||||
});
|
||||
|
||||
context('attach to apple user', () => {
|
||||
let user;
|
||||
const email = 'some@email-apple.net';
|
||||
const username = 'some-username-apple';
|
||||
const password = 'some-password';
|
||||
beforeEach(async () => {
|
||||
user = await generateUser();
|
||||
});
|
||||
it('checks onlySocialAttachLocal', async () => {
|
||||
await expect(user.post('/user/auth/local/register', {
|
||||
email,
|
||||
username,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('onlySocialAttachLocal'),
|
||||
});
|
||||
});
|
||||
it('succeeds', async () => {
|
||||
await user.update({ 'auth.apple.id': 'some-apple-id', 'auth.local': { ok: true } });
|
||||
await user.post('/user/auth/local/register', {
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
});
|
||||
await user.sync();
|
||||
expect(user.auth.local.username).to.eql(username);
|
||||
expect(user.auth.local.email).to.eql(email);
|
||||
});
|
||||
});
|
||||
|
||||
context('login is already taken', () => {
|
||||
let username; let email; let
|
||||
api;
|
||||
|
||||
@@ -51,6 +51,7 @@ describe('POST /user/auth/social', () => {
|
||||
|
||||
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('a facebook user');
|
||||
await expect(getProperty('users', response.id, 'auth.local.lowerCaseUsername')).to.exist;
|
||||
await expect(getProperty('users', response.id, 'auth.facebook.id')).to.eventually.equal(facebookId);
|
||||
});
|
||||
|
||||
it('logs an existing user in', async () => {
|
||||
@@ -106,6 +107,7 @@ describe('POST /user/auth/social', () => {
|
||||
expect(response.apiToken).to.exist;
|
||||
expect(response.id).to.exist;
|
||||
expect(response.newUser).to.be.true;
|
||||
await expect(getProperty('users', response.id, 'auth.google.id')).to.eventually.equal(googleId);
|
||||
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('a google user');
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
import {
|
||||
requester,
|
||||
translate,
|
||||
} from '../../../helpers/api-integration/v4';
|
||||
import i18n from '../../../../website/common/script/i18n';
|
||||
|
||||
describe('GET /faq', () => {
|
||||
describe('language parameter', () => {
|
||||
it('returns faq (and does not require authentication)', async () => {
|
||||
const res = await requester().get('/faq');
|
||||
|
||||
expect(res).to.have.property('stillNeedHelp');
|
||||
expect(res.stillNeedHelp.ios).to.equal(translate('iosFaqStillNeedHelp'));
|
||||
expect(res).to.have.property('questions');
|
||||
expect(res.questions[0].question).to.equal(translate('faqQuestion0'));
|
||||
});
|
||||
|
||||
it('returns faq not in English', async () => {
|
||||
const res = await requester().get('/faq?language=de');
|
||||
expect(res).to.have.nested.property('stillNeedHelp.ios');
|
||||
expect(res.stillNeedHelp.ios).to.equal(i18n.t('iosFaqStillNeedHelp', 'de'));
|
||||
});
|
||||
|
||||
it('falls back to English if the desired language is not found', async () => {
|
||||
const res = await requester().get('/faq?language=wrong');
|
||||
expect(res).to.have.nested.property('stillNeedHelp.ios');
|
||||
expect(res.stillNeedHelp.ios).to.equal(translate('iosFaqStillNeedHelp'));
|
||||
});
|
||||
});
|
||||
|
||||
describe('platform parameter', () => {
|
||||
it('returns faq with answers for ios platform only', async () => {
|
||||
const res = await requester().get('/faq?platform=ios');
|
||||
|
||||
expect(res).to.have.property('stillNeedHelp');
|
||||
expect(res.stillNeedHelp).to.eql({ ios: translate('iosFaqStillNeedHelp') });
|
||||
|
||||
expect(res).to.have.property('questions');
|
||||
expect(res.questions[0]).to.eql({
|
||||
question: translate('faqQuestion0'),
|
||||
ios: translate('iosFaqAnswer0'),
|
||||
});
|
||||
});
|
||||
it('returns an error when invalid platform parameter is specified', async () => {
|
||||
const request = requester().get('/faq?platform=wrong');
|
||||
await expect(request)
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: i18n.t('invalidReqParams'),
|
||||
});
|
||||
});
|
||||
it('falls back to "web" description if there is no description for specified platform', async () => {
|
||||
const res = await requester().get('/faq?platform=android');
|
||||
expect(res).to.have.property('stillNeedHelp');
|
||||
expect(res.stillNeedHelp).to.eql({ web: translate('webFaqStillNeedHelp') });
|
||||
|
||||
expect(res).to.have.property('questions');
|
||||
expect(res.questions[0]).to.eql({
|
||||
question: translate('faqQuestion0'),
|
||||
android: translate('androidFaqAnswer0'),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -457,6 +457,74 @@ describe('POST /user/auth/local/register', () => {
|
||||
});
|
||||
});
|
||||
|
||||
context('attach to google user', () => {
|
||||
let user;
|
||||
const email = 'some-google@email.net';
|
||||
const username = 'some-username-google';
|
||||
const password = 'some-password';
|
||||
beforeEach(async () => {
|
||||
user = await generateUser();
|
||||
});
|
||||
it('checks onlySocialAttachLocal', async () => {
|
||||
await expect(user.post('/user/auth/local/register', {
|
||||
email,
|
||||
username,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('onlySocialAttachLocal'),
|
||||
});
|
||||
});
|
||||
it('succeeds', async () => {
|
||||
await user.update({ 'auth.google.id': 'some-google-id', 'auth.local': { ok: true } });
|
||||
await user.post('/user/auth/local/register', {
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
});
|
||||
await user.sync();
|
||||
expect(user.auth.local.username).to.eql(username);
|
||||
expect(user.auth.local.email).to.eql(email);
|
||||
});
|
||||
});
|
||||
|
||||
context('attach to apple user', () => {
|
||||
let user;
|
||||
const email = 'some-apple@email.net';
|
||||
const username = 'some-username-apple';
|
||||
const password = 'some-password';
|
||||
beforeEach(async () => {
|
||||
user = await generateUser();
|
||||
});
|
||||
it('checks onlySocialAttachLocal', async () => {
|
||||
await expect(user.post('/user/auth/local/register', {
|
||||
email,
|
||||
username,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('onlySocialAttachLocal'),
|
||||
});
|
||||
});
|
||||
it('succeeds', async () => {
|
||||
await user.update({ 'auth.apple.id': 'some-apple-id', 'auth.local': { ok: true } });
|
||||
await user.post('/user/auth/local/register', {
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
confirmPassword: password,
|
||||
});
|
||||
await user.sync();
|
||||
expect(user.auth.local.username).to.eql(username);
|
||||
expect(user.auth.local.email).to.eql(email);
|
||||
});
|
||||
});
|
||||
|
||||
context('login is already taken', () => {
|
||||
let username; let email; let
|
||||
api;
|
||||
|
||||
Generated
+2103
-1143
File diff suppressed because it is too large
Load Diff
+14
-14
@@ -13,25 +13,25 @@
|
||||
"test:unit": "vue-cli-service test:unit --require ./tests/unit/helpers.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.2.3",
|
||||
"@vue/cli-plugin-eslint": "^4.2.3",
|
||||
"@vue/cli-plugin-router": "^4.2.3",
|
||||
"@vue/cli-plugin-unit-mocha": "^4.2.3",
|
||||
"@vue/cli-service": "^4.2.3",
|
||||
"@storybook/addon-actions": "^5.3.17",
|
||||
"@storybook/addon-knobs": "^5.3.17",
|
||||
"@storybook/addon-links": "^5.3.17",
|
||||
"@storybook/addon-notes": "^5.3.17",
|
||||
"@storybook/vue": "^5.3.17",
|
||||
"@vue/cli-plugin-babel": "^4.3.1",
|
||||
"@vue/cli-plugin-eslint": "^4.3.1",
|
||||
"@vue/cli-plugin-router": "^4.3.1",
|
||||
"@vue/cli-plugin-unit-mocha": "^4.3.1",
|
||||
"@vue/cli-service": "^4.3.1",
|
||||
"@storybook/addon-actions": "^5.3.18",
|
||||
"@storybook/addon-knobs": "^5.3.18",
|
||||
"@storybook/addon-links": "^5.3.18",
|
||||
"@storybook/addon-notes": "^5.3.18",
|
||||
"@storybook/vue": "^5.3.18",
|
||||
"@vue/test-utils": "1.0.0-beta.29",
|
||||
"amplitude-js": "^5.10.0",
|
||||
"amplitude-js": "^5.11.0",
|
||||
"axios": "^0.19.2",
|
||||
"axios-progress-bar": "^1.2.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"bootstrap": "^4.4.1",
|
||||
"bootstrap-vue": "^2.9.0",
|
||||
"bootstrap-vue": "^2.11.0",
|
||||
"chai": "^4.1.2",
|
||||
"core-js": "^3.6.4",
|
||||
"core-js": "^3.6.5",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-habitrpg": "^6.2.0",
|
||||
"eslint-plugin-mocha": "^5.3.0",
|
||||
@@ -40,7 +40,7 @@
|
||||
"hellojs": "^1.18.4",
|
||||
"inspectpack": "^4.4.0",
|
||||
"intro.js": "^2.9.3",
|
||||
"jquery": "^3.4.1",
|
||||
"jquery": "^3.5.0",
|
||||
"lodash": "^4.17.15",
|
||||
"moment": "^2.24.0",
|
||||
"nconf": "^0.10.0",
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
The files in the following subfolders:
|
||||
|
||||
- audio
|
||||
- emails
|
||||
- icons
|
||||
- merch
|
||||
- presskit
|
||||
|
||||
are not processed by Webpack so their filenames don't get hashed, but given that they almost never change, they're still cached for 1 week.
|
||||
|
||||
In case one of the files needs to be updated the filename should be changed if possible.
|
||||
|
||||
For more information see `website/server/middlewares/static.js`.
|
||||
@@ -20,10 +20,6 @@
|
||||
</svg>
|
||||
<!-- eslint-enable max-len -->
|
||||
</div>
|
||||
<div class="col-12 text-center">
|
||||
<h2>{{ $t('tipTitle', {tipNumber: currentTipNumber}) }}</h2>
|
||||
<p>{{ currentTip }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
@@ -297,7 +293,6 @@ export default {
|
||||
audioSuffix: null,
|
||||
|
||||
loading: true,
|
||||
currentTipNumber: 0,
|
||||
bannerHidden: false,
|
||||
};
|
||||
},
|
||||
@@ -310,15 +305,6 @@ export default {
|
||||
castingSpell () {
|
||||
return this.$store.state.spellOptions.castingSpell;
|
||||
},
|
||||
currentTip () {
|
||||
const numberOfTips = 35 + 1;
|
||||
const min = 1;
|
||||
const randomNumber = Math.random() * (numberOfTips - min) + min;
|
||||
const tipNumber = Math.floor(randomNumber);
|
||||
this.currentTipNumber = tipNumber; // eslint-disable-line vue/no-side-effects-in-computed-properties, max-len
|
||||
|
||||
return this.$t(`tip${tipNumber}`);
|
||||
},
|
||||
showRestingBanner () {
|
||||
return !this.bannerHidden && this.user && this.user.preferences.sleep;
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.promo_april_fools_2020 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -433px -337px;
|
||||
background-position: -445px -184px;
|
||||
width: 423px;
|
||||
height: 147px;
|
||||
}
|
||||
@@ -12,19 +12,31 @@
|
||||
}
|
||||
.promo_egg_quest {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: 0px -648px;
|
||||
background-position: -355px -648px;
|
||||
width: 354px;
|
||||
height: 147px;
|
||||
}
|
||||
.promo_mystery_202004 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -355px -648px;
|
||||
background-position: -875px 0px;
|
||||
width: 282px;
|
||||
height: 147px;
|
||||
}
|
||||
.promo_pastel_skin_hair {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: 0px -648px;
|
||||
width: 354px;
|
||||
height: 147px;
|
||||
}
|
||||
.customize-option.promo_pastel_skin_hair {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -25px -663px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.promo_seasonal_shop_spring {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -638px -648px;
|
||||
background-position: -875px -299px;
|
||||
width: 162px;
|
||||
height: 138px;
|
||||
}
|
||||
@@ -48,13 +60,13 @@
|
||||
}
|
||||
.promo_spring_potions_2020 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -445px -184px;
|
||||
background-position: -433px -337px;
|
||||
width: 423px;
|
||||
height: 147px;
|
||||
}
|
||||
.promo_take_this {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -875px -151px;
|
||||
background-position: -1026px -148px;
|
||||
width: 96px;
|
||||
height: 69px;
|
||||
}
|
||||
@@ -66,7 +78,7 @@
|
||||
}
|
||||
.scene_meditation {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||
background-position: -875px 0px;
|
||||
background-position: -875px -148px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 96 KiB |
@@ -53,8 +53,8 @@
|
||||
|
||||
.close-icon {
|
||||
position: absolute;
|
||||
top: 24px;
|
||||
right: 24px;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
cursor: pointer;
|
||||
|
||||
& svg path {
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="170px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 170 170" version="1.1" height="170px">
|
||||
<path d="m150.37 130.25c-2.45 5.66-5.35 10.87-8.71 15.66-4.58 6.53-8.33 11.05-11.22 13.56-4.48 4.12-9.28 6.23-14.42 6.35-3.69 0-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58 0-9.492 1.05-14.746 3.17-5.262 2.13-9.501 3.24-12.742 3.35-4.929 0.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.032-7.08-9.169-15.29-12.41-24.65-3.471-10.11-5.211-19.9-5.211-29.378 0-10.857 2.346-20.221 7.045-28.068 3.693-6.303 8.606-11.275 14.755-14.925s12.793-5.51 19.948-5.629c3.915 0 9.049 1.211 15.429 3.591 6.362 2.388 10.447 3.599 12.238 3.599 1.339 0 5.877-1.416 13.57-4.239 7.275-2.618 13.415-3.702 18.445-3.275 13.63 1.1 23.87 6.473 30.68 16.153-12.19 7.386-18.22 17.731-18.1 31.002 0.11 10.337 3.86 18.939 11.23 25.769 3.34 3.17 7.07 5.62 11.22 7.36-0.9 2.61-1.85 5.11-2.86 7.51zm-31.26-123.01c0 8.1021-2.96 15.667-8.86 22.669-7.12 8.324-15.732 13.134-25.071 12.375-0.119-0.972-0.188-1.995-0.188-3.07 0-7.778 3.386-16.102 9.399-22.908 3.002-3.446 6.82-6.3113 11.45-8.597 4.62-2.2516 8.99-3.4968 13.1-3.71 0.12 1.0831 0.17 2.1663 0.17 3.2409z" fill="#FFF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1000"
|
||||
viewBox="0 0 1000 1187.198"
|
||||
version="1.1"
|
||||
height="1187.198"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="Apple_1998.svg">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="705"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.1767767"
|
||||
inkscape:cx="-1066.5045"
|
||||
inkscape:cy="964.94669"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="m 979.04184,925.18785 c -17.95397,41.47737 -39.20563,79.65705 -63.82824,114.75895 -33.56298,47.8528 -61.04356,80.9761 -82.22194,99.3698 -32.83013,30.192 -68.00529,45.6544 -105.67203,46.5338 -27.04089,0 -59.6512,-7.6946 -97.61105,-23.3035 -38.08442,-15.5358 -73.08371,-23.2303 -105.08578,-23.2303 -33.56296,0 -69.55888,7.6945 -108.06101,23.2303 -38.5608,15.6089 -69.62484,23.7432 -93.37541,24.5493 -36.12049,1.5389 -72.1237,-14.3632 -108.06101,-47.7796 -22.93711,-20.0059 -51.62684,-54.3017 -85.99592,-102.8874 C 92.254176,984.54592 61.937588,924.38175 38.187028,855.7902 12.750995,781.70252 0,709.95986 0,640.50361 0,560.94181 17.191859,492.32094 51.626869,434.81688 78.689754,388.62753 114.69299,352.19192 159.75381,325.44413 c 45.06086,-26.74775 93.74914,-40.37812 146.18212,-41.25019 28.68971,0 66.3125,8.8744 113.06613,26.31542 46.62174,17.49964 76.55727,26.37404 89.68198,26.37404 9.8124,0 43.06758,-10.37669 99.4431,-31.06405 53.31237,-19.18512 98.30724,-27.12887 135.16787,-23.99975 99.8828,8.06098 174.92313,47.43518 224.82789,118.37174 -89.33023,54.12578 -133.51903,129.93556 -132.63966,227.18753 0.8061,75.75115 28.28668,138.78795 82.2952,188.8393 24.47603,23.23022 51.81008,41.18421 82.22186,53.93522 -6.59525,19.12648 -13.557,37.44688 -20.95846,55.03446 z M 749.96366,23.751237 c 0,59.37343 -21.69138,114.810233 -64.92748,166.121963 -52.17652,60.99961 -115.28658,96.24803 -183.72426,90.68597 -0.87204,-7.12298 -1.37769,-14.61967 -1.37769,-22.49743 0,-56.99843 24.81315,-117.99801 68.87738,-167.873453 21.99909,-25.25281 49.978,-46.25018 83.90738,-63.00018 C 686.57507,10.688027 718.59913,1.5631274 748.71783,5.2734376e-4 749.59727,7.9378274 749.96366,15.875627 749.96366,23.750467 Z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
@@ -7,20 +7,31 @@
|
||||
>
|
||||
<div class="content text-center">
|
||||
<span
|
||||
v-once
|
||||
class="close-icon svg-icon inline icon-10"
|
||||
@click="close()"
|
||||
v-html="icons.close"
|
||||
></span>
|
||||
<h2>{{ $t('congratulations') }}</h2>
|
||||
<h2 v-once>
|
||||
{{ $t('onboardingComplete') }}
|
||||
</h2>
|
||||
<img
|
||||
class="onboarding-complete-banner d-block"
|
||||
src="~@/assets/images/onboarding-complete-banner@2x.png"
|
||||
>
|
||||
<p
|
||||
v-once
|
||||
class="onboarding-complete-text"
|
||||
v-html="$t('onboardingCompleteDesc')"
|
||||
></p>
|
||||
<p
|
||||
v-once
|
||||
class="onboarding-complete-text-small"
|
||||
>
|
||||
{{ $t('onboardingCompleteDescSmall') }}
|
||||
</p>
|
||||
<button
|
||||
v-once
|
||||
class="btn btn-primary"
|
||||
@click="closeWithAction()"
|
||||
>
|
||||
@@ -37,7 +48,7 @@
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding-top: 1em;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@@ -58,7 +69,7 @@ h2 {
|
||||
|
||||
.content {
|
||||
padding: 0 8px;
|
||||
margin-top: 18px;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.onboarding-complete-banner {
|
||||
@@ -68,13 +79,21 @@ h2 {
|
||||
}
|
||||
|
||||
.onboarding-complete-text {
|
||||
margin-bottom: 24px;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.onboarding-complete-text ::v-deep .gold-amount {
|
||||
color: $yellow-5;
|
||||
}
|
||||
|
||||
.onboarding-complete-text-small {
|
||||
margin-bottom: 1.5rem;
|
||||
color: $gray-100;
|
||||
font-style: normal;
|
||||
font-size: 12px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
button {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="form">
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('facebook')"
|
||||
@@ -15,7 +15,9 @@
|
||||
: $t('loginWithSocial', {social: 'Facebook'}) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('google')"
|
||||
@@ -30,6 +32,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('apple')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon apple-icon"
|
||||
v-html="icons.appleIcon"
|
||||
></div>
|
||||
<span>{{ registering
|
||||
? $t('signUpWithSocial', {social: 'Apple'})
|
||||
: $t('loginWithSocial', {social: 'Apple'}) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="registering"
|
||||
class="form-group"
|
||||
@@ -199,7 +217,11 @@
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: .2em;
|
||||
margin-top: .1em;
|
||||
}
|
||||
|
||||
.apple-icon {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
small.form-text {
|
||||
@@ -219,10 +241,11 @@
|
||||
import hello from 'hellojs';
|
||||
import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/lib/isEmail';
|
||||
import { setUpAxios } from '@/libs/auth';
|
||||
import { setUpAxios, buildAppleAuthUrl } from '@/libs/auth';
|
||||
import { MINIMUM_PASSWORD_LENGTH } from '@/../../common/script/constants';
|
||||
import facebookSquareIcon from '@/assets/svg/facebook-square.svg';
|
||||
import googleIcon from '@/assets/svg/google.svg';
|
||||
import appleIcon from '@/assets/svg/apple_black.svg';
|
||||
|
||||
export default {
|
||||
name: 'AuthForm',
|
||||
@@ -239,6 +262,7 @@ export default {
|
||||
data.icons = Object.freeze({
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
appleIcon,
|
||||
});
|
||||
|
||||
return data;
|
||||
@@ -307,27 +331,31 @@ export default {
|
||||
}, 500),
|
||||
// @TODO: Abstract hello in to action or lib
|
||||
async socialAuth (network) {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
if (network === 'apple') {
|
||||
window.location.href = buildAppleAuthUrl();
|
||||
} else {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
|
||||
try {
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
try {
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
await this.finishAuth();
|
||||
} catch (err) {
|
||||
console.error(err); // eslint-disable-line no-console
|
||||
// logout the user
|
||||
await hello(network).logout();
|
||||
this.socialAuth(network); // login again
|
||||
await this.finishAuth();
|
||||
} catch (err) {
|
||||
console.error(err); // eslint-disable-line no-console
|
||||
// logout the user
|
||||
await hello(network).logout();
|
||||
this.socialAuth(network); // login again
|
||||
}
|
||||
}
|
||||
},
|
||||
async register () {
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="col-12 col-md-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('facebook')"
|
||||
@@ -54,7 +54,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12 col-md-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('google')"
|
||||
@@ -73,6 +75,29 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12 col-md-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('apple')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.appleIcon"
|
||||
></div>
|
||||
<div
|
||||
class="text"
|
||||
>
|
||||
{{ registering
|
||||
? $t('signUpWithSocial', {social: 'Apple'})
|
||||
: $t('loginWithSocial', {social: 'Apple'}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="strike">
|
||||
<span>{{ $t('or') }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="registering"
|
||||
class="form-group"
|
||||
@@ -496,12 +521,13 @@
|
||||
}
|
||||
|
||||
.social-icon {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: .2em;
|
||||
margin-top: .1em;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -581,6 +607,42 @@
|
||||
.exclamation {
|
||||
width: 2px;
|
||||
}
|
||||
|
||||
.strike {
|
||||
display: block;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.strike > span {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
line-height: 1.14;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.strike > span:before,
|
||||
.strike > span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 9999px;
|
||||
height: 1px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.strike > span:before {
|
||||
right: 100%;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.strike > span:after {
|
||||
left: 100%;
|
||||
margin-left: 15px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
@@ -589,6 +651,7 @@ import hello from 'hellojs';
|
||||
import moment from 'moment';
|
||||
import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/lib/isEmail';
|
||||
import { buildAppleAuthUrl } from '../../libs/auth';
|
||||
|
||||
import { MINIMUM_PASSWORD_LENGTH } from '@/../../common/script/constants';
|
||||
import exclamation from '@/assets/svg/exclamation.svg';
|
||||
@@ -596,6 +659,7 @@ import gryphon from '@/assets/svg/gryphon.svg';
|
||||
import habiticaIcon from '@/assets/svg/habitica-logo.svg';
|
||||
import facebookSquareIcon from '@/assets/svg/facebook-square.svg';
|
||||
import googleIcon from '@/assets/svg/google.svg';
|
||||
import appleIcon from '@/assets/svg/apple_black.svg';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
@@ -618,6 +682,7 @@ export default {
|
||||
habiticaIcon,
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
appleIcon,
|
||||
});
|
||||
|
||||
return data;
|
||||
@@ -799,35 +864,39 @@ export default {
|
||||
},
|
||||
// @TODO: Abstract hello in to action or lib
|
||||
async socialAuth (network) {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
// explicitly pass the redirect url or it might redirect to /home
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
let redirectTo;
|
||||
|
||||
if (this.$route.query.redirectTo) {
|
||||
redirectTo = this.$route.query.redirectTo;
|
||||
if (network === 'apple') {
|
||||
window.location.href = buildAppleAuthUrl();
|
||||
} else {
|
||||
redirectTo = '/';
|
||||
}
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
|
||||
// @TODO do not reload entire page
|
||||
// problem is that app.vue created hook should be called again
|
||||
// after user is logged in / just signed up
|
||||
// ALSO it's the only way to make sure language data
|
||||
// is reloaded and correct for the logged in user
|
||||
window.location.href = redirectTo;
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
// explicitly pass the redirect url or it might redirect to /home
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
let redirectTo;
|
||||
|
||||
if (this.$route.query.redirectTo) {
|
||||
redirectTo = this.$route.query.redirectTo;
|
||||
} else {
|
||||
redirectTo = '/';
|
||||
}
|
||||
|
||||
// @TODO do not reload entire page
|
||||
// problem is that app.vue created hook should be called again
|
||||
// after user is logged in / just signed up
|
||||
// ALSO it's the only way to make sure language data
|
||||
// is reloaded and correct for the logged in user
|
||||
window.location.href = redirectTo;
|
||||
}
|
||||
},
|
||||
handleSubmit () {
|
||||
if (this.registering) {
|
||||
|
||||
@@ -15,13 +15,17 @@
|
||||
class="onboarding-complete-banner d-block"
|
||||
src="~@/assets/images/onboarding-complete-banner@2x.png"
|
||||
>
|
||||
<h3>{{ $t('congratulations') }}</h3>
|
||||
<h3 v-once>
|
||||
{{ $t('onboardingComplete') }}
|
||||
</h3>
|
||||
<p
|
||||
v-once
|
||||
class="onboarding-complete-text"
|
||||
v-html="$t('onboardingCompleteDesc')"
|
||||
></p>
|
||||
<div class="notifications-buttons">
|
||||
<div
|
||||
v-once
|
||||
class="btn btn-small btn-primary btn-block"
|
||||
>
|
||||
{{ $t('viewAchievements') }}
|
||||
|
||||
@@ -10,20 +10,25 @@
|
||||
v-html="icons.down"
|
||||
></div>
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon onboarding-guide-banner"
|
||||
v-html="icons.onboardingGuideBanner"
|
||||
></div>
|
||||
<h3 class="getting-started">
|
||||
<h3
|
||||
v-once
|
||||
class="getting-started"
|
||||
>
|
||||
{{ $t('gettingStarted') }}
|
||||
</h3>
|
||||
<span
|
||||
v-once
|
||||
class="getting-started-desc"
|
||||
v-html="$t('gettingStartedDesc')"
|
||||
></span>
|
||||
<div
|
||||
class="onboarding-progress-box d-flex flex-row justify-content-between small-text mb-2"
|
||||
>
|
||||
<strong>Your Progress</strong>
|
||||
<strong v-once>{{ $t('yourProgress') }}</strong>
|
||||
<span :class="{'has-progress': progress > 0}">{{ progressText }}</span>
|
||||
</div>
|
||||
<div class="onboarding-progress-bar mb-3">
|
||||
@@ -48,8 +53,14 @@
|
||||
<div :class="`achievement-icon ${getAchievementIcon(achievement)}`"></div>
|
||||
</div>
|
||||
<div class="achievement-info d-flex flex-column">
|
||||
<strong class="achievement-title">{{ achievement.title }}</strong>
|
||||
<span class="small-text achievement-desc">{{ getAchievementText(key) }}</span>
|
||||
<strong
|
||||
v-once
|
||||
class="achievement-title"
|
||||
>{{ achievement.title }}</strong>
|
||||
<span
|
||||
v-once
|
||||
class="small-text achievement-desc"
|
||||
>{{ getAchievementText(key) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</b-collapse>
|
||||
|
||||
@@ -561,6 +561,8 @@ import { SUPPORTED_SOCIAL_NETWORKS } from '@/../../common/script/constants';
|
||||
import changeClass from '@/../../common/script/ops/changeClass';
|
||||
import notificationsMixin from '../../mixins/notifications';
|
||||
import sounds from '../../libs/sounds';
|
||||
import { buildAppleAuthUrl } from '../../libs/auth';
|
||||
|
||||
// @TODO: this needs our window.env fix
|
||||
// import { availableLanguages } from '../../../server/libs/i18n';
|
||||
|
||||
@@ -837,13 +839,17 @@ export default {
|
||||
this.text(this.$t('detachedSocial', { network: network.name }));
|
||||
},
|
||||
async socialAuth (network) {
|
||||
const auth = await hello(network).login({ scope: 'email' });
|
||||
if (network === 'apple') {
|
||||
window.location.href = buildAppleAuthUrl();
|
||||
} else {
|
||||
const auth = await hello(network).login({ scope: 'email' });
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
window.location.href = '/';
|
||||
window.location.href = '/';
|
||||
}
|
||||
},
|
||||
async changeClassForUser (confirmationNeeded) {
|
||||
if (confirmationNeeded && !window.confirm(this.$t('changeClassConfirmCost'))) return;
|
||||
|
||||
@@ -11,6 +11,12 @@
|
||||
<span slot="popoverContent">
|
||||
<strong v-if="item.key === 'gem' && gemsLeft === 0">{{ $t('maxBuyGems') }}</strong>
|
||||
<h4 class="popover-content-title">{{ item.text }}</h4>
|
||||
<div
|
||||
v-if="item.event"
|
||||
class="mt-2"
|
||||
>
|
||||
{{ limitedString }}
|
||||
</div>
|
||||
</span>
|
||||
<template
|
||||
slot="itemBadge"
|
||||
@@ -26,14 +32,15 @@
|
||||
import _filter from 'lodash/filter';
|
||||
import _sortBy from 'lodash/sortBy';
|
||||
import _map from 'lodash/map';
|
||||
import moment from 'moment';
|
||||
import { mapState } from '@/libs/store';
|
||||
import pinUtils from '@/mixins/pinUtils';
|
||||
import planGemLimits from '@/../../common/script/libs/planGemLimits';
|
||||
import seasonalShopConfig from '@/../../common/script/libs/shops-seasonal.config';
|
||||
|
||||
import ShopItem from '../shopItem';
|
||||
import CategoryItem from './categoryItem';
|
||||
|
||||
|
||||
export default {
|
||||
components: {
|
||||
CategoryItem,
|
||||
@@ -53,6 +60,9 @@ export default {
|
||||
return planGemLimits.convCap
|
||||
+ this.user.purchased.plan.consecutive.gemCapExtra - this.user.purchased.plan.gemsBought;
|
||||
},
|
||||
limitedString () {
|
||||
return this.$t('limitedOffer', { date: moment(seasonalShopConfig.dateRange.end).format('LL') });
|
||||
},
|
||||
sortedMarketItems () {
|
||||
let result = _map(this.category.items, e => ({
|
||||
...e,
|
||||
|
||||
@@ -82,6 +82,16 @@
|
||||
>
|
||||
<questDialogDrops :item="item" />
|
||||
</div>
|
||||
<div
|
||||
v-if="item.event"
|
||||
class="limitedTime"
|
||||
>
|
||||
<span
|
||||
class="svg-icon inline icon-16 clock-icon"
|
||||
v-html="icons.clock"
|
||||
></span>
|
||||
<span class="limitedString">{{ limitedString }}</span>
|
||||
</div>
|
||||
<div
|
||||
slot="modal-footer"
|
||||
class="clearfix"
|
||||
@@ -121,6 +131,9 @@
|
||||
margin: 33px auto auto;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.questInfo {
|
||||
width: 70%;
|
||||
@@ -208,6 +221,27 @@
|
||||
}
|
||||
}
|
||||
|
||||
.limitedTime {
|
||||
height: 32px;
|
||||
background-color: $purple-300;
|
||||
width: calc(100% + 30px);
|
||||
margin: 0 -15px; // the modal content has its own padding
|
||||
|
||||
font-size: 12px;
|
||||
line-height: 1.33;
|
||||
text-align: center;
|
||||
color: $white;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.limitedString {
|
||||
height: 16px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.notEnough {
|
||||
pointer-events: none;
|
||||
opacity: 0.55;
|
||||
@@ -247,14 +281,17 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import { mapState } from '@/libs/store';
|
||||
import seasonalShopConfig from '@/../../common/script/libs/shops-seasonal.config';
|
||||
|
||||
import svgClock from '@/assets/svg/clock.svg';
|
||||
import svgClose from '@/assets/svg/close.svg';
|
||||
import svgGold from '@/assets/svg/gold.svg';
|
||||
import svgGem from '@/assets/svg/gem.svg';
|
||||
import svgPin from '@/assets/svg/pin.svg';
|
||||
import svgExperience from '@/assets/svg/experience.svg';
|
||||
import svgGem from '@/assets/svg/gem.svg';
|
||||
import svgGold from '@/assets/svg/gold.svg';
|
||||
import svgHourglasses from '@/assets/svg/hourglass.svg';
|
||||
import svgPin from '@/assets/svg/pin.svg';
|
||||
|
||||
import BalanceInfo from '../balanceInfo.vue';
|
||||
import currencyMixin from '../_currencyMixin';
|
||||
@@ -286,12 +323,13 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
clock: svgClock,
|
||||
close: svgClose,
|
||||
gold: svgGold,
|
||||
gem: svgGem,
|
||||
pin: svgPin,
|
||||
experience: svgExperience,
|
||||
gem: svgGem,
|
||||
gold: svgGold,
|
||||
hourglass: svgHourglasses,
|
||||
pin: svgPin,
|
||||
}),
|
||||
|
||||
isPinned: false,
|
||||
@@ -319,6 +357,9 @@ export default {
|
||||
if (this.priceType === 'hourglasses') return this.icons.hourglass;
|
||||
return this.icons.gem;
|
||||
},
|
||||
limitedString () {
|
||||
return this.$t('limitedOffer', { date: moment(seasonalShopConfig.dateRange.end).format('LL') });
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
item: function itemChanged () {
|
||||
|
||||
@@ -299,7 +299,10 @@
|
||||
<span slot="popoverContent">
|
||||
<div class="questPopover">
|
||||
<h4 class="popover-content-title">{{ item.text }}</h4>
|
||||
<questInfo :quest="item" />
|
||||
<questInfo
|
||||
:quest="item"
|
||||
:popover-version="true"
|
||||
/>
|
||||
</div>
|
||||
</span>
|
||||
<template
|
||||
|
||||
@@ -1,40 +1,43 @@
|
||||
<template>
|
||||
<div
|
||||
class="row"
|
||||
:class="{'small-version': smallVersion}"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
v-if="quest.collect"
|
||||
class="table-row"
|
||||
class="row"
|
||||
>
|
||||
<dt>{{ $t('collect') + ':' }}</dt>
|
||||
<dd>
|
||||
<div
|
||||
v-for="(collect, key) of quest.collect"
|
||||
:key="key"
|
||||
>
|
||||
<span>{{ collect.count }} {{ getCollectText(collect) }}</span>
|
||||
</div>
|
||||
</dd>
|
||||
<div
|
||||
v-if="quest.collect"
|
||||
class="table-row"
|
||||
>
|
||||
<dt>{{ $t('collect') + ':' }}</dt>
|
||||
<dd>
|
||||
<div
|
||||
v-for="(collect, key) of quest.collect"
|
||||
:key="key"
|
||||
>
|
||||
<span>{{ collect.count }} {{ getCollectText(collect) }}</span>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
<div
|
||||
v-if="quest.boss"
|
||||
class="table-row"
|
||||
>
|
||||
<dt>{{ $t('bossHP') + ':' }}</dt>
|
||||
<dd>{{ quest.boss.hp }}</dd>
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<dt>{{ $t('difficulty') + ':' }}</dt>
|
||||
<dd>
|
||||
<div
|
||||
v-for="star of stars()"
|
||||
:key="star"
|
||||
class="svg-icon inline icon-16"
|
||||
v-html="icons[star]"
|
||||
></div>
|
||||
</dd>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="quest.boss"
|
||||
class="table-row"
|
||||
>
|
||||
<dt>{{ $t('bossHP') + ':' }}</dt>
|
||||
<dd>{{ quest.boss.hp }}</dd>
|
||||
</div>
|
||||
<div class="table-row">
|
||||
<dt>{{ $t('difficulty') + ':' }}</dt>
|
||||
<dd>
|
||||
<div
|
||||
v-for="star of stars()"
|
||||
:key="star"
|
||||
class="svg-icon inline"
|
||||
:class="smallVersion ? 'icon-12' : 'icon-16'"
|
||||
v-html="icons[star]"
|
||||
></div>
|
||||
</dd>
|
||||
<div v-if="quest.event && popoverVersion">
|
||||
{{ limitedString }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -115,16 +118,20 @@ dt {
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
|
||||
import svgStar from '@/assets/svg/difficulty-star.svg';
|
||||
import svgStarHalf from '@/assets/svg/difficulty-star-half.svg';
|
||||
import svgStarEmpty from '@/assets/svg/difficulty-star-empty.svg';
|
||||
|
||||
import seasonalShopConfig from '@/../../common/script/libs/shops-seasonal.config';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
quest: {
|
||||
type: Object,
|
||||
},
|
||||
smallVersion: {
|
||||
popoverVersion: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
@@ -146,6 +153,9 @@ export default {
|
||||
|
||||
return 1;
|
||||
},
|
||||
limitedString () {
|
||||
return this.$t('limitedOffer', { date: moment(seasonalShopConfig.dateRange.end).format('LL') });
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
stars () {
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="item.event"
|
||||
class="mt-4"
|
||||
:class="item.purchaseType === 'gear' ? 'mt-4' : 'mt-2'"
|
||||
>
|
||||
{{ limitedString }}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<template>
|
||||
<div class="static-view">
|
||||
<p>Redirecting...</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang='scss'>
|
||||
@import '~@/assets/scss/static.scss';
|
||||
.static-view {
|
||||
height: 400px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.static-view p {
|
||||
padding-top: 100px;
|
||||
font-size: 2em
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
async mounted () {
|
||||
const queryString = window.location.search;
|
||||
const urlParams = new URLSearchParams(queryString);
|
||||
const reqParams = { code: urlParams.get('code') };
|
||||
if (urlParams.has('name')) {
|
||||
reqParams.name = urlParams.get('name');
|
||||
}
|
||||
await this.$store.dispatch('auth:appleAuth', reqParams);
|
||||
|
||||
window.location.href = '/';
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -28,31 +28,6 @@
|
||||
<h3 class="text-center">
|
||||
{{ $t('singUpForFree') }}
|
||||
</h3>
|
||||
<div class="text-center">
|
||||
<button
|
||||
class="social-button"
|
||||
@click="socialAuth('facebook')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.facebookIcon"
|
||||
></div>
|
||||
<span>{{ $t('signUpWithSocial', {social: 'Facebook'}) }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="social-button"
|
||||
@click="socialAuth('google')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.googleIcon"
|
||||
></div>
|
||||
<span>{{ $t('signUpWithSocial', {social: 'Google'}) }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="strike">
|
||||
<span>{{ $t('or') }}</span>
|
||||
</div>
|
||||
<form
|
||||
class="form"
|
||||
@submit.prevent.stop="register()"
|
||||
@@ -127,6 +102,41 @@
|
||||
{{ $t('signup') }}
|
||||
</button>
|
||||
</form>
|
||||
<div class="strike">
|
||||
<span>{{ $t('or') }}</span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button
|
||||
class="social-button"
|
||||
@click="socialAuth('facebook')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.facebookIcon"
|
||||
></div>
|
||||
<span>{{ $t('signUpWithSocial', {social: 'Facebook'}) }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="social-button"
|
||||
@click="socialAuth('google')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.googleIcon"
|
||||
></div>
|
||||
<span>{{ $t('signUpWithSocial', {social: 'Google'}) }}</span>
|
||||
</button>
|
||||
<button
|
||||
class="social-button"
|
||||
@click="socialAuth('apple')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon apple-icon"
|
||||
v-html="icons.appleIcon"
|
||||
></div>
|
||||
<span>{{ $t('signUpWithSocial', {social: 'Apple'}) }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div
|
||||
@@ -450,17 +460,17 @@
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.social-button {
|
||||
border-radius: 2px;
|
||||
border: solid 2px #bda8ff;
|
||||
width: 48%;
|
||||
width: 100%;
|
||||
min-height: 40px;
|
||||
padding: .5em;
|
||||
background: transparent;
|
||||
margin-right: .5em;
|
||||
margin-bottom: .5em;
|
||||
color: #bda8ff;
|
||||
transition: .5s;
|
||||
|
||||
@@ -481,7 +491,11 @@
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: .2em;
|
||||
margin-top: .1em;
|
||||
}
|
||||
|
||||
.apple-icon {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.strike {
|
||||
@@ -781,6 +795,7 @@
|
||||
import hello from 'hellojs';
|
||||
import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/lib/isEmail';
|
||||
import { buildAppleAuthUrl } from '../../libs/auth';
|
||||
import googlePlay from '@/assets/images/home/google-play-badge.svg';
|
||||
import iosAppStore from '@/assets/images/home/ios-app-store.svg';
|
||||
import iphones from '@/assets/images/home/iphones.svg';
|
||||
@@ -790,6 +805,7 @@ import pixelHorizontal2 from '@/assets/images/home/pixel-horizontal-2.svg';
|
||||
import pixelHorizontal3 from '@/assets/images/home/pixel-horizontal-3.svg';
|
||||
import facebookSquareIcon from '@/assets/svg/facebook-square.svg';
|
||||
import googleIcon from '@/assets/svg/google.svg';
|
||||
import appleIcon from '@/assets/svg/apple.svg';
|
||||
import cnet from '@/assets/svg/cnet.svg';
|
||||
import fastCompany from '@/assets/svg/fast-company.svg';
|
||||
import discover from '@/assets/images/home/discover.svg';
|
||||
@@ -814,6 +830,7 @@ export default {
|
||||
pixelHorizontal3,
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
appleIcon,
|
||||
cnet,
|
||||
fastCompany,
|
||||
discover,
|
||||
@@ -885,9 +902,9 @@ export default {
|
||||
});
|
||||
|
||||
hello.init({
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
// windows: WINDOWS_CLIENT_ID,
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
@@ -946,22 +963,26 @@ export default {
|
||||
},
|
||||
// @TODO: Abstract hello in to action or lib
|
||||
async socialAuth (network) {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
if (network === 'apple') {
|
||||
window.location.href = buildAppleAuthUrl();
|
||||
} else {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
// explicitly pass the redirect url or it might redirect to /home
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
// explicitly pass the redirect url or it might redirect to /home
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
window.location.href = '/';
|
||||
window.location.href = '/';
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -349,16 +349,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="achievementsCategories[key].number > 5"
|
||||
class="btn btn-flat btn-show-more"
|
||||
@click="toggleAchievementsCategory(key)"
|
||||
>
|
||||
{{ achievementsCategories[key].open ?
|
||||
$t('hideAchievements', {category: $t(key+'Achievs')}) :
|
||||
$t('showAllAchievements', {category: $t(key+'Achievs')})
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
v-if="achievementsCategories[key].number > 5"
|
||||
class="btn btn-flat btn-show-more"
|
||||
@click="toggleAchievementsCategory(key)"
|
||||
>
|
||||
{{ achievementsCategories[key].open ?
|
||||
$t('hideAchievements', {category: $t(key+'Achievs')}) :
|
||||
$t('showAllAchievements', {category: $t(key+'Achievs')})
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="col-12">
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
class="col-12 col-md-3"
|
||||
>
|
||||
<div class="box white row col-12">
|
||||
<div class="col-9">
|
||||
<div class="col-9 text-nowrap">
|
||||
<div :class="stat">
|
||||
{{ $t(stats[stat].title) }}
|
||||
</div>
|
||||
|
||||
@@ -21,3 +21,8 @@ export function setUpAxios (AUTH_SETTINGS) { // eslint-disable-line import/prefe
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export function buildAppleAuthUrl () {
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}/api/v4/user/auth/apple`;
|
||||
return `https://appleid.apple.com/auth/authorize?response_mode=form_post&scope=name%20email&response_type=code&version=2&redirect_uri=${redirectUrl}&client_id=${process.env.APPLE_AUTH_CLIENT_ID}`;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ const StaticWrapper = () => import(/* webpackChunkName: "entry" */'@/components/
|
||||
const HomePage = () => import(/* webpackChunkName: "entry" */'@/components/static/home');
|
||||
|
||||
const AppPage = () => import(/* webpackChunkName: "static" */'@/components/static/app');
|
||||
const AppleRedirectPage = () => import(/* webpackChunkName: "static" */'@/components/static/appleRedirect');
|
||||
const ClearBrowserDataPage = () => import(/* webpackChunkName: "static" */'@/components/static/clearBrowserData');
|
||||
const CommunityGuidelinesPage = () => import(/* webpackChunkName: "static" */'@/components/static/communityGuidelines');
|
||||
const ContactPage = () => import(/* webpackChunkName: "static" */'@/components/static/contact');
|
||||
@@ -272,6 +273,9 @@ const router = new VueRouter({
|
||||
{
|
||||
name: 'app', path: 'app', component: AppPage, meta: { requiresLogin: false },
|
||||
},
|
||||
{
|
||||
name: 'appleRedirect', path: 'apple-redirect', component: AppleRedirectPage, meta: { requiresLogin: false },
|
||||
},
|
||||
{
|
||||
name: 'clearBrowserData', path: 'clear-browser-data', component: ClearBrowserDataPage, meta: { requiresLogin: false },
|
||||
},
|
||||
|
||||
@@ -82,6 +82,27 @@ export async function socialAuth (store, params) {
|
||||
localStorage.setItem(LOCALSTORAGE_AUTH_KEY, userLocalData);
|
||||
}
|
||||
|
||||
export async function appleAuth (store, params) {
|
||||
const url = '/api/v4/user/auth/apple';
|
||||
const result = await axios.get(url, {
|
||||
params: {
|
||||
code: params.code,
|
||||
name: params.name,
|
||||
},
|
||||
});
|
||||
|
||||
const user = result.data.data;
|
||||
|
||||
const userLocalData = JSON.stringify({
|
||||
auth: {
|
||||
apiId: user.id,
|
||||
apiToken: user.apiToken,
|
||||
},
|
||||
});
|
||||
|
||||
localStorage.setItem(LOCALSTORAGE_AUTH_KEY, userLocalData);
|
||||
}
|
||||
|
||||
export function logout (store, options = {}) {
|
||||
localStorage.clear();
|
||||
const query = options.redirectToLogin === true ? '?redirectToLogin=true' : '';
|
||||
|
||||
@@ -25,6 +25,7 @@ const envVars = [
|
||||
'STRIPE_PUB_KEY',
|
||||
'FACEBOOK_KEY',
|
||||
'GOOGLE_CLIENT_ID',
|
||||
'APPLE_AUTH_CLIENT_ID',
|
||||
'AMPLITUDE_KEY',
|
||||
'LOGGLY_CLIENT_TOKEN',
|
||||
// TODO necessary? if yes how not to mess up with vue cli? 'NODE_ENV'
|
||||
|
||||
@@ -513,5 +513,12 @@
|
||||
"backgroundButterflyGardenText": "Schmetterlingsgarten",
|
||||
"backgroundAmongGiantFlowersNotes": "Flaniere auf und Unter Gigantischen Blumen.",
|
||||
"backgroundAmongGiantFlowersText": "Unter Gigantischen Blumen",
|
||||
"backgrounds032020": "Set 70: Veröffentlicht im März 2020"
|
||||
"backgrounds032020": "Set 70: Veröffentlicht im März 2020",
|
||||
"backgroundRainyBarnyardNotes": "Mach einen durchnässten, spritzigen Spaziergang auf einem regnerischen Scheunenhof.",
|
||||
"backgroundRainyBarnyardText": "Regnerischer Scheunenhof",
|
||||
"backgroundHeatherFieldNotes": "Genieße den Duft einess Feldes voller Heidenkraut.",
|
||||
"backgroundHeatherFieldText": "Heidenkrautfeld",
|
||||
"backgroundAnimalCloudsNotes": "Trainiere Deine Vorstellungskraft, indem du Tierformen in den Wolken suchst.",
|
||||
"backgroundAnimalCloudsText": "Tierwolken",
|
||||
"backgrounds042020": "Set 71: Veröffentlicht im April 2020"
|
||||
}
|
||||
|
||||
@@ -355,5 +355,6 @@
|
||||
"hatchingPotionAmber": "Bernstein",
|
||||
"hatchingPotionAurora": "Polarlicht",
|
||||
"hatchingPotionRuby": "Rubinrotes",
|
||||
"hatchingPotionBirchBark": "Birkenborke"
|
||||
"hatchingPotionBirchBark": "Birkenborke",
|
||||
"hatchingPotionDessert": "Konfekt"
|
||||
}
|
||||
|
||||
@@ -2051,5 +2051,38 @@
|
||||
"weaponArmoireBaseballBatText": "Baseballschläger",
|
||||
"shieldArmoireBaseballGloveNotes": "Perfekt für das große Turnier oder ein freundschaftliches Fangspiel zwischen zwei Aufgaben. Erhöht Stärke um <%= str %>. Verzauberter Schrank: Baseball-Set (Gegenstand 4 von 4).",
|
||||
"armorArmoireBaseballUniformNotes": "Nadelstreifen kommen nie aus der Mode. Erhöht Ausdauer und Stärke um jeweils <%= attrs %>. Verzauberter Schrank: Baseball-Set (Gegenstand 2 von 4).",
|
||||
"weaponArmoireBaseballBatNotes": "Hol Dir einen Homerun für die guten Gewohnheiten! Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Baseball-Set (Gegenstand 3 von 4)."
|
||||
"weaponArmoireBaseballBatNotes": "Hol Dir einen Homerun für die guten Gewohnheiten! Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Baseball-Set (Gegenstand 3 von 4).",
|
||||
"headAccessoryMystery202004Text": "Mächtige Monarchfalterfühler",
|
||||
"backMystery202004Text": "Mächtige Monarchfalterflügel",
|
||||
"shieldSpecialSpring2020HealerText": "Duftschild",
|
||||
"shieldSpecialSpring2020WarriorText": "Irisierender Schild",
|
||||
"headSpecialSpring2020HealerText": "Iris-Fascinator",
|
||||
"headSpecialSpring2020WarriorText": "Käferhelm",
|
||||
"headSpecialSpring2020RogueText": "Lapislazuli Kabuto-Helm",
|
||||
"armorSpecialSpring2020HealerText": "Beschützendes Blütenblatt",
|
||||
"armorSpecialSpring2020MageText": "Whirlpfützenumhang",
|
||||
"armorSpecialSpring2020WarriorNotes": "Diese harte Schale kann Dich selbst vor den vernichtendsten Attacken schützen. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"armorSpecialSpring2020WarriorText": "Exoskelettrüstung",
|
||||
"armorSpecialSpring2020RogueNotes": "Die Farbe der Dämmerung, einer Vielzahl wertvoller Steine, der tiefsten Stelle des Meeres! Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"armorSpecialSpring2020RogueText": "Ultramarinblaue Rüstung",
|
||||
"weaponSpecialSpring2020HealerNotes": "Eine Iris ist schön, aber ihre Blätter sind scharf wie Schwerter... lass Dich nicht von den Blumen in die Irre führen, dieser Stab ist hart wie Stahl! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2020HealerText": "Schwertlilienstab",
|
||||
"weaponSpecialSpring2020MageNotes": "Sie fallen Dir unaufhörlich auf den Kopf! Aber Du wirst sie nie aufhalten, indem Du Dich beklagst. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2020MageText": "Regentropfen",
|
||||
"weaponSpecialSpring2020WarriorNotes": "Kämpfen oder Fliehen, dieser Flügel wird Dir einen guten Dienst erweisen! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2020WarriorText": "Geschliffener Flügel",
|
||||
"weaponSpecialSpring2020RogueNotes": "Du wirst so schnell zuschlagen, dass sie NOCH blauer aussehen wird! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2020RogueText": "Lapislazuli Klinge",
|
||||
"armorArmoireBoxArmorNotes": "Schachtelrüstung: Es passt, also sitzt Du… äh, also ziehst Du damit in die Schlacht, als stolzer Ritter, der Du bist! Erhöht Wahrnehmung und Ausdauer um je <%= attrs %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 3 von 3). ",
|
||||
"armorArmoireBoxArmorText": "Schachtelrüstung",
|
||||
"armorSpecialSpring2020HealerNotes": "Wickle Dich in weiche Blätter und Blüten der Iris um Feinde zu verleiten, Deine heilenden Kräfte zu unterschätzen. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"armorSpecialSpring2020MageNotes": "Wenn auch Du einer Regenwasserpfütze nicht widerstehen kannst, ist diese Rüstung wie gemacht für Dich! Verwandle einen kindischen Impuls in eine Vorführung eines mystischen Kunstwerks. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"weaponArmoirePaperCutterNotes": "Das mag nicht furchteinflössend aussehen, aber hast Du schon mal einen Papierschnitt gehabt? Erhöht Stärke um <%= str %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 1 von 3).",
|
||||
"weaponArmoirePaperCutterText": "Papiermesser",
|
||||
"shieldArmoireHobbyHorseText": "Steckenpferd",
|
||||
"headSpecialSpring2020HealerNotes": "Fessle Deine Feinde mit diesem Kopfschmuck aus Blumen! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2020MageNotes": "Ist der Himmel klar? Die Luftfeuchtigkeit niedrig? Keine Sorge, wir haben uns drum gekümmert. Versprühe Deine Magie, ohne Deine Stimmung zu trüben! Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2020MageText": "Tropfkantenhut",
|
||||
"headSpecialSpring2020WarriorNotes": "Die Schläge Deiner Gegener werden von diesem durch Käfer inspirierten Helm abprallen! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2020RogueNotes": "So knallig und kostbar, dass Du in Versuchung kommen wirst, ihn von Deinem eigenen Kopf zu stehlen. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung."
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"hatchingPotion": "Schlüpfelixier",
|
||||
"noHatchingPotions": "Du hast im Moment keine Schlüpfelixiere.",
|
||||
"inventoryText": "Klicke auf ein Ei um die anwendbaren Elixiere grün hervorgehoben zu sehen. Klicke dann auf ein hervorgehobenes Elixier, um Dein Haustier auszubrüten. Falls kein Elixier hervorgehoben wird, klicke auf das Ei um es abzuwählen und klicke diesmal zuerst auf das Elixier, um die Eier hervorzuheben. Du kannst überflüssige Gegenstände auch an Alexander den Händler verkaufen.",
|
||||
"haveHatchablePet": "Du hast ein <%= potion %> Schlüpfelixier und ein <%= egg %>-Ei, um dieses Haustier auszubrüten! <b>Klicke</b> auf den Pfotenabdruck, damit es schlüpft.",
|
||||
"haveHatchablePet": "Du hast ein <%= potion %> Schlüpfelixier und ein <%= egg %>-Ei, um dieses Haustier auszubrüten! <b>Klicke</b>, damit es schlüpft.",
|
||||
"quickInventory": "Schnell-Inventar",
|
||||
"foodText": "Futter",
|
||||
"food": "Futter und magische Sättel",
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
"questPeacockUnlockText": "Schaltet den Kauf von Pfaueiern auf dem Marktplatz frei",
|
||||
"questButterflyText": "Flieg' weiter, Funkenfalter",
|
||||
"questButterflyNotes": "Deine Gärtner-Freundin @Megan schickt Dir eine Einladung: \"Diese warmen Tage wären doch perfekt für einen Besuch des Schmetterlingsgartens in Aufgabistan. Komm, lass uns Schmetterlinge beobachten!\" Doch als Du ankommst, ist der Garten verdorrt -- es ist kaum mehr als verbranntes Gras und vertrocknetes Unkraut übrig. Es war so heiß, dass die Habiticaner nicht vorbei gekommen sind, um die Blumen zu gießen, und die dunkelroten Tagesaufgaben haben alles zu einer trockenen, sonnenverglühten Brandgefahr gemacht. Es ist nur noch ein Schmetterling übrig, aber etwas ist seltsam an ihm...<br><br>\"Oh nein! Das sind perfekte Schlüpfbedingungen für den Entflammten Funkenfalter\", ruft @Leephon.<br><br>\"Wenn wir ihn nicht einfangen, wird er alles zerstören!\" keucht @Eevachu.<br><br>Es wird Zeit, dem Funkenfalter auf Wiedersehen zu sagen!",
|
||||
"questButterflyCompletion": "Nach einer lodernden Schlacht ist der Entflammte Funkenfalter gefangen. \"Tolle Leistung, diesen Möchtegern-Brandstifter einzufangen\", sagt @Megan mit einem Seufzer der Erleichterung. \"Dennoch ist es schwer, selbst den fiesesten Falter zu verunglimpfen. Wir sollten diesen Funkenfalter besser an einem sicheren Ort freilassen... wie der Wüste.\"<br><br>Eine der anderen Gärtnerinnen, @Beffymaroo, kommt zu euch, angesengt aber mit einem Lächeln. \"Möchtest Du uns dabei helfen, diese verwaisten Schmetterlingspuppen großzuziehen, die wir gefunden haben? Vielleicht werden wir nächstes Jahr einen grüneren Garten für sie haben.\"",
|
||||
"questButterflyCompletion": "Nach einer lodernden Schlacht ist der Entflammte Funkenfalter gefangen. \"Tolle Leistung, diesen Möchtegern-Brandstifter einzufangen\", sagt @Megan mit einem Seufzer der Erleichterung. \"Dennoch ist es schwer, selbst den fiesesten Falter zu verunglimpfen. Wir sollten diesen Funkenfalter besser an einem sicheren Ort freilassen... zum Beispiel in der Wüste.\"<br><br>Eine der anderen Gärtnerinnen, @Beffymaroo, kommt zu euch - angesengt, aber mit einem Lächeln. \"Möchtest Du uns dabei helfen, diese verwaisten Schmetterlingspuppen großzuziehen, die wir gefunden haben? Vielleicht werden wir nächstes Jahr einen grüneren Garten für sie haben.\"",
|
||||
"questButterflyBoss": "Entflammter Funkenfalter",
|
||||
"questButterflyDropButterflyEgg": "Raupe (Ei)",
|
||||
"questButterflyUnlockText": "Schaltet den Kauf von Raupeneiern auf dem Marktplatz frei",
|
||||
@@ -683,5 +683,13 @@
|
||||
"questRubyCollectAquariusRunes": "Wassermann-Tierkreis-Runen",
|
||||
"questRubyText": "Rubinrote Reaktion",
|
||||
"questRubyCompletion": "Nachdem die notwendigen Gegenstände sicher verstaut sind, eilen Sie drei zurück nach Habit City und treffen sich in @ beffymaroos Labor. \"Ausgezeichnete Arbeit!\" @beffymaroo sagt. \"Du hast die Zutaten für den Trank gesammelt!“ <br> <br> @beffymaroo kombiniert sorgfältig die Runen und Rubine zu einem leuchtend roten Trank und gießt einen Teil davon auf zwei Haustier-Eier. Wenn Sie die Ergebnisse beobachten, bemerken Sie, dass die beiden Haustiere völlig uninteressiert aneinander zu sein scheinen! <br> <br> \"Hat es nicht funktioniert?“ @Gully fragt. Aber bevor jemand antworten kann, merkt man plötzlich, dass es nicht der Trank ist, der Freundschaft und Liebe schafft, sondern die Erfahrung, gemeinsam auf ein gemeinsames Ziel hinzuarbeiten. Du kommst von der Suche weg, nachdem du neue Freunde gewonnen hast ... und einige auffällige neue Haustiere!",
|
||||
"questRubyNotes": "Die normalerweise geschäftigen Gipfel der Stoïkalm-Vulkane liegen still im Schnee. \"Ich nehme an, die Wanderer und Seher halten Winterschlaf?\" @gully sagt zu dir und @Aspiring_Advocate. \"Das erleichtert uns die Suche.\" <br> <br> Wenn Sie den Gipfel erreichen, verschmilzt der kühle Wind mit dem Dampf, der aus dem Krater aufsteigt. \"Dort!\" @Aspiring_Advocate ruft aus und zeigt auf eine heiße Quelle. \"Welchen besseren Ort gibt es, um kühle Runen des Wassermanns und leidenschaftliche Runen der Venus zu finden, als wo sich Eis und Feuer treffen?“ <br> <br> Sie drei beeilen sich in Richtung der heißen Quelle. \"Laut meiner Forschung\", sagt @Aspiring_Advocate, \"wird die Kombination der Runen mit herzförmigen Rubinen einen Schlupftrank erzeugen, der Freundschaft und Liebe fördern kann!\" <br> <br> Aufgeregt von der Aussicht auf eine neue Entdeckung, Sie alle Lächeln. \"In Ordnung\", sagt @gully, \"fangen wir an zu suchen!\""
|
||||
"questRubyNotes": "Die normalerweise geschäftigen Gipfel der Stoïkalm-Vulkane liegen still im Schnee. \"Ich nehme an, die Wanderer und Seher halten Winterschlaf?\" @gully sagt zu dir und @Aspiring_Advocate. \"Das erleichtert uns die Suche.\" <br> <br> Wenn Sie den Gipfel erreichen, verschmilzt der kühle Wind mit dem Dampf, der aus dem Krater aufsteigt. \"Dort!\" @Aspiring_Advocate ruft aus und zeigt auf eine heiße Quelle. \"Welchen besseren Ort gibt es, um kühle Runen des Wassermanns und leidenschaftliche Runen der Venus zu finden, als wo sich Eis und Feuer treffen?“ <br> <br> Sie drei beeilen sich in Richtung der heißen Quelle. \"Laut meiner Forschung\", sagt @Aspiring_Advocate, \"wird die Kombination der Runen mit herzförmigen Rubinen einen Schlupftrank erzeugen, der Freundschaft und Liebe fördern kann!\" <br> <br> Aufgeregt von der Aussicht auf eine neue Entdeckung, Sie alle Lächeln. \"In Ordnung\", sagt @gully, \"fangen wir an zu suchen!\"",
|
||||
"questWaffleUnlockText": "Schaltet Konfekt-Schlüpfelixire zum Kauf im Marktplatz frei",
|
||||
"questWaffleDropDessertPotion": "Konfekt-Schlüpfelixir",
|
||||
"questWaffleRageDescription": "Ahornsumpf: Diese Leiste füllt sich, wenn Ihr Eure Tagesaufgaben nicht erledigt. Wenn sie voll ist, wird die Fürchterliche Waffel den Schadensfortschritt Eurer Party zurücksetzen!",
|
||||
"questWaffleRageTitle": "Ahornsumpf",
|
||||
"questWaffleBoss": "Fürchterliche Waffel",
|
||||
"questWaffleNotes": "\"April-Scherzkeks!\" entrüstet sich Lady Glaciate verunsichert. \"Du sagtest, Dein Wüsten-Scherz sei 'erledigt und komplett weggeräumt'!\"<br><br>\"Nun ja, das war er und ist er immer noch, meine Liebe\", antwortet der Scherzkeks verwirrt. \"Und ich bin der ehrlichste aller Scherzkekse. Ist etwas nicht in Ordnung?\"<br><br>\"Da ist ein gigantisches, zuckriges Monster, das sich Habit City nähert!\"<br><br>\"Hmm\", sinniert der Scherzkeks. \"Ich habe auf der Suche nach mystischen Reagenzien für meinen letzten Event einige Höhlen geplündert. Vielleicht habe ich da unerwünschte Aufmerksamkeit erweckt. Ist es die Saccharose-Schlange? Die Torten-Kröte? Ein Tiramisu Rex?\"<br><br>\"Nein! Es ist eine Art… fürchterliche Waffel!\"<br><br>\"Häh. Die ist mir neu! Vielleicht entsprang die all der Umgebungs-Schabernack-Energie.\" Er wendet sich an Dich und @beffymaroo mit einem schiefen Lächeln. \"Ich nehme nicht an, ihr wärt zu einer Heldentat bereit?\"",
|
||||
"questWaffleText": "An die Waffe(l) gegen den Scherzkeks: Desaster-Frühstück!",
|
||||
"questWaffleRageEffect": "`Fürchterliche Waffel setzt AHORNSUMPF ein!` Schmieriger saftiger Sirup lässt Deine Schläge und Sprüche stocken!"
|
||||
}
|
||||
|
||||
@@ -4,12 +4,15 @@
|
||||
"onwards": "Onwards!",
|
||||
"levelup": "By accomplishing your real life goals, you leveled up and are now fully healed!",
|
||||
"reachedLevel": "You Reached Level <%= level %>",
|
||||
"gettingStartedDesc": "Let’s create a task, complete it, then check out your rewards. You’ll earn <strong>5 achievements</strong> and <strong class=\"gold-amount\">100 gold</strong> once you’re done!",
|
||||
"gettingStartedDesc": "Complete these onboarding tasks and you’ll earn <strong>5 Achievements</strong> and <strong class=\"gold-amount\">100 Gold</strong> once you’re done!",
|
||||
"onboardingProgress": "<%= percentage %>% progress",
|
||||
"yourProgress": "Your Progress",
|
||||
"letsGetStarted": "Let's get started!",
|
||||
"viewAchievements": "View Achievements",
|
||||
"earnedAchievement": "You earned an achievement!",
|
||||
"onboardingCompleteDesc": "You earned <strong>5 achievements</strong> and <strong class=\"gold-amount\">100</strong> gold for completing the list.",
|
||||
"onboardingComplete": "You completed your onboarding tasks!",
|
||||
"onboardingCompleteDesc": "You earned <strong>5 Achievements</strong> and <strong class=\"gold-amount\">100 Gold</strong> for completing the list.",
|
||||
"onboardingCompleteDescSmall": "If you want even more, check out Achievements and start collecting!",
|
||||
"showAllAchievements": "Show All <%= category %>",
|
||||
"hideAchievements": "Hide <%= category %>",
|
||||
"foundNewItems": "You found new items!",
|
||||
@@ -46,21 +49,21 @@
|
||||
"achievementUndeadUndertaker": "Undead Undertaker",
|
||||
"achievementUndeadUndertakerText": "Has tamed all Zombie Mounts.",
|
||||
"achievementUndeadUndertakerModalText": "You tamed all the Zombie Mounts!",
|
||||
"achievementCreatedTask": "Create a Task",
|
||||
"achievementCreatedTask": "Create your first task",
|
||||
"achievementCreatedTaskText": "Created their first task.",
|
||||
"achievementCreatedTaskModalText": "Add a task for something you would like to accomplish this week",
|
||||
"achievementCompletedTask": "Complete a Task",
|
||||
"achievementCompletedTask": "Complete a task",
|
||||
"achievementCompletedTaskText": "Completed their first task.",
|
||||
"achievementCompletedTaskModalText": "Check off any of your tasks to earn rewards",
|
||||
"achievementHatchedPet": "Hatch a Pet",
|
||||
"achievementHatchedPetText": "Hatched their first pet.",
|
||||
"achievementHatchedPetModalText": "Head over to your inventory and try combining a hatching potion and an egg",
|
||||
"achievementHatchedPetModalText": "Head over to your inventory and try combining a hatching Potion and an Egg",
|
||||
"achievementFedPet": "Feed a Pet",
|
||||
"achievementFedPetText": "Fed their first pet.",
|
||||
"achievementFedPetModalText": "There are many different types of food, but pets can be picky",
|
||||
"achievementPurchasedEquipment": "Purchase Equipment",
|
||||
"achievementFedPetModalText": "There are many different types of food, but Pets can be picky",
|
||||
"achievementPurchasedEquipment": "Purchase a piece of Equipment",
|
||||
"achievementPurchasedEquipmentText": "Purchased their first piece of equipment.",
|
||||
"achievementPurchasedEquipmentModalText": "Equipment is a way to customize your avatar and improve your stats",
|
||||
"achievementPurchasedEquipmentModalText": "Equipment is a way to customize your avatar and improve your Stats",
|
||||
"achievementPrimedForPainting": "Primed for Painting",
|
||||
"achievementPrimedForPaintingText": "Has collected all White Pets.",
|
||||
"achievementPrimedForPaintingModalText": "You collected all the White Pets!",
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"tipTitle": "Tip #<%= tipNumber %>",
|
||||
"tip1": "Check tasks on the go with the Habitica mobile apps.",
|
||||
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
|
||||
"tip3": "Use emoji to quickly differentiate between your tasks.",
|
||||
"tip4": "Use the # sign before a task name to make it really big!",
|
||||
"tip5": "It’s best to use skills that cause buffs in the morning so they last longer.",
|
||||
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
|
||||
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
|
||||
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
|
||||
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
|
||||
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
|
||||
"tip11": "Having more than four Party members increases accountability!",
|
||||
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
|
||||
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
|
||||
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
|
||||
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habitica’s secret lore.",
|
||||
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
|
||||
"tip17": "Use the mobile apps to set reminders for your tasks.",
|
||||
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
|
||||
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
|
||||
"tip20": "Boost your Perception Stat to get more drops and gold.",
|
||||
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
|
||||
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
|
||||
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
|
||||
"tip24": "Have a question? Ask in the Habitica Help Guild!",
|
||||
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
|
||||
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
|
||||
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
|
||||
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
|
||||
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
|
||||
"tip30": "You can invite people to Guilds, not just Parties.",
|
||||
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
|
||||
"tip32": "Lots of Habitica’s code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
|
||||
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
|
||||
"tip34": "Occasionally re-evaluate your tasks to make sure they’re up-to-date!",
|
||||
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
|
||||
}
|
||||
@@ -542,7 +542,7 @@
|
||||
|
||||
"questButterflyText": "Bye, Bye, Butterfry",
|
||||
"questButterflyNotes": "Your gardener friend @Megan sends you an invitation: “These warm days are the perfect time to visit Habitica’s butterfly garden in the Taskan countryside. Come see the butterflies migrate!” When you arrive, however, the garden is in shambles -- little more than scorched grass and dried-out weeds. It’s been so hot that the Habiticans haven’t come out to water the flowers, and the dark-red Dailies have turned it into a dry, sun-baked, fire-hazard. There's only one butterfly there, and there's something odd about it...<br><br>“Oh no! This is the perfect hatching ground for the Flaming Butterfry,” cries @Leephon.<br><br>“If we don’t catch it, it’ll destroy everything!” gasps @Eevachu.<br><br>Time to say bye, bye to Butterfry!",
|
||||
"questButterflyCompletion": "After a blazing battle, the Flaming Butterfry is captured. “Great job catching the that would-be arsonist,” says @Megan with a sigh of relief. “Still, it’s hard to vilify even the vilest butterfly. We’d better free this Butterfry someplace safe…like the desert.”<br><br>One of the other gardeners, @Beffymaroo, comes up to you, singed but smiling. “Will you help raise these foundling chrysalises we found? Perhaps next year we’ll have a greener garden for them.”",
|
||||
"questButterflyCompletion": "After a blazing battle, the Flaming Butterfry is captured. “Great job catching that would-be arsonist,” says @Megan with a sigh of relief. “Still, it’s hard to vilify even the vilest butterfly. We’d better free this Butterfry someplace safe…like the desert.”<br><br>One of the other gardeners, @Beffymaroo, comes up to you, singed but smiling. “Will you help raise these foundling chrysalises we found? Perhaps next year we’ll have a greener garden for them.”",
|
||||
"questButterflyBoss": "Flaming Butterfry",
|
||||
"questButterflyDropButterflyEgg": "Caterpillar (Egg)",
|
||||
"questButterflyUnlockText": "Unlocks Caterpillar Eggs for purchase in the Market",
|
||||
|
||||
@@ -513,5 +513,12 @@
|
||||
"backgroundSucculentGardenNotes": "Take in the arid beauty of a Succulent Garden.",
|
||||
"backgroundSucculentGardenText": "Succulent Garden",
|
||||
"backgroundButterflyGardenNotes": "Party with pollinators in a Butterfly Garden.",
|
||||
"backgroundButterflyGardenText": "Butterfly Garden"
|
||||
"backgroundButterflyGardenText": "Butterfly Garden",
|
||||
"backgroundRainyBarnyardNotes": "Take a soggy splashy stroll through a Rainy Barnyard.",
|
||||
"backgroundRainyBarnyardText": "Rainy Barnyard",
|
||||
"backgroundHeatherFieldNotes": "Enjoy the aroma of a Field of Heather.",
|
||||
"backgroundHeatherFieldText": "Heather Field",
|
||||
"backgroundAnimalCloudsNotes": "Exercise your imagination finding Animal shapes in the Clouds.",
|
||||
"backgroundAnimalCloudsText": "Animal Clouds",
|
||||
"backgrounds042020": "SET 71: Released April 2020"
|
||||
}
|
||||
|
||||
@@ -355,5 +355,6 @@
|
||||
"questEggDolphinMountText": "Dolphin",
|
||||
"questEggDolphinText": "Dolphin",
|
||||
"hatchingPotionRuby": "Ruby",
|
||||
"hatchingPotionBirchBark": "Birch Bark"
|
||||
"hatchingPotionBirchBark": "Birch Bark",
|
||||
"hatchingPotionDessert": "Confection"
|
||||
}
|
||||
|
||||
@@ -2083,5 +2083,11 @@
|
||||
"headAccessoryMystery202004Notes": "They twitch just a bit if the scent of flowers drifts by--use them to find a pretty garden! Confers no benefit. April 2020 Subscriber Item.",
|
||||
"headAccessoryMystery202004Text": "Mighty Monarch Antennae",
|
||||
"backMystery202004Notes": "Make a quick flutter to the nearest flowery meadow or migrate across the continent with these beautiful wings! Confers no benefit. April 2020 Subscriber Item.",
|
||||
"backMystery202004Text": "Mighty Monarch Wings"
|
||||
"backMystery202004Text": "Mighty Monarch Wings",
|
||||
"shieldArmoireHobbyHorseNotes": "Ride your handsome hobby-horse steed toward your just Rewards! Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Paper Knight Set (Item 2 of 3).",
|
||||
"shieldArmoireHobbyHorseText": "Hobby Horse",
|
||||
"armorArmoireBoxArmorNotes": "Box Armor: It fits, therefore you sits... uh, therefore you wear it into battle, like the bold knight you are! Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Paper Knight Set (Item 3 of 3). ",
|
||||
"armorArmoireBoxArmorText": "Box Armor",
|
||||
"weaponArmoirePaperCutterNotes": "This may not look fearsome, but have you never had a papercut? Increases Strength by <%= str %>. Enchanted Armoire: Paper Knight Set (Item 1 of 3).",
|
||||
"weaponArmoirePaperCutterText": "Paper Cutter"
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"hatchingPotion": "hatching potion",
|
||||
"noHatchingPotions": "You don't have any hatching potions.",
|
||||
"inventoryText": "Click an egg to see usable potions highlighted in green and then click one of the highlighted potions to hatch your pet. If no potions are highlighted, click that egg again to deselect it, and instead click a potion first to have the usable eggs highlighted. You can also sell unwanted drops to Alexander the Merchant.",
|
||||
"haveHatchablePet": "You have a <%= potion %> hatching potion and <%= egg %> egg to hatch this pet! <b>Click</b> the paw print to hatch.",
|
||||
"haveHatchablePet": "You have a <%= potion %> hatching potion and <%= egg %> egg to hatch this pet! <b>Click</b> to hatch!",
|
||||
"quickInventory": "Quick Inventory",
|
||||
"foodText": "food",
|
||||
"food": "Pet Food and Saddles",
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
"questPeacockUnlockText": "Unlocks Peacock Eggs for purchase in the Market",
|
||||
"questButterflyText": "Bye, Bye, Butterfry",
|
||||
"questButterflyNotes": "Your gardener friend @Megan sends you an invitation: “These warm days are the perfect time to visit Habitica’s butterfly garden in the Taskan countryside. Come see the butterflies migrate!” When you arrive, however, the garden is in shambles -- little more than scorched grass and dried-out weeds. It’s been so hot that the Habiticans haven’t come out to water the flowers, and the dark-red Dailies have turned it into a dry, sun-baked, fire-hazard. There's only one butterfly there, and there's something odd about it...<br><br>“Oh no! This is the perfect hatching ground for the Flaming Butterfry,” cries @Leephon.<br><br>“If we don’t catch it, it’ll destroy everything!” gasps @Eevachu.<br><br>Time to say bye, bye to Butterfry!",
|
||||
"questButterflyCompletion": "After a blazing battle, the Flaming Butterfry is captured. “Great job catching the that would-be arsonist,” says @Megan with a sigh of relief. “Still, it’s hard to vilify even the vilest butterfly. We’d better free this Butterfry someplace safe…like the desert.”<br><br>One of the other gardeners, @Beffymaroo, comes up to you, singed but smiling. “Will you help raise these foundling chrysalises we found? Perhaps next year we’ll have a greener garden for them.”",
|
||||
"questButterflyCompletion": "After a blazing battle, the Flaming Butterfry is captured. “Great job catching that would-be arsonist,” says @Megan with a sigh of relief. “Still, it’s hard to vilify even the vilest butterfly. We’d better free this Butterfry someplace safe…like the desert.”<br><br>One of the other gardeners, @Beffymaroo, comes up to you, singed but smiling. “Will you help raise these foundling chrysalises we found? Perhaps next year we’ll have a greener garden for them.”",
|
||||
"questButterflyBoss": "Flaming Butterfry",
|
||||
"questButterflyDropButterflyEgg": "Caterpillar (Egg)",
|
||||
"questButterflyUnlockText": "Unlocks Caterpillar Eggs for purchase in the Market",
|
||||
@@ -683,5 +683,14 @@
|
||||
"questRubyCollectAquariusRunes": "Aquarius Zodiac Runes",
|
||||
"questRubyCompletion": "With the necessary items safely packed away, the three of you rush back to Habit City and meet in @beffymaroo's lab. “Excellent work!” @beffymaroo says. “You've gathered the ingredients for the potion!”<br><br>@beffymaroo carefully combines the runes and the rubies to create a brilliant red potion and pours some of it on two pet eggs. As you observe the results, you notice that the two pets seem completely uninterested in one another!<br><br>“Did it not work?” @gully asks. But before anyone can answer, you suddenly realize that it isn't the potion that creates friendship and love, but rather it is the experience of working together toward a common goal. You come away from the quest having gained some new friends...and some flashy new pets!",
|
||||
"questRubyNotes": "The normally bustling peaks of the Stoïkalm Volcanoes lie silent in the snow. “I suppose the hikers and sight-seers are hibernating?” @gully says to you and @Aspiring_Advocate. “That makes our search easier.”<br><br>As you reach the summit, the chill wind merges with the steam billowing from the crater. “There!” @Aspiring_Advocate exclaims, pointing toward a hot spring. “What better place to find cool runes of Aquarius and passionate runes of Venus than where ice and fire meet?”<br><br>The three of you hurry toward the hot spring. “According to my research,” @Aspiring_Advocate says, “combining the runes with heart-shaped rubies will create a hatching potion that can foster friendship and love!”<br><br>Excited by the prospect of a new discovery, you all smile. “All right,” @gully says, “let's start searching!”",
|
||||
"questRubyText": "Ruby Rapport"
|
||||
"questRubyText": "Ruby Rapport",
|
||||
"questWaffleRageTitle": "Maple Mire",
|
||||
"questWaffleBoss": "Awful Waffle",
|
||||
"questWaffleCompletion": "Battered and buttered but triumphant, you savor sweet victory as the Awful Waffle collapses into a pool of sticky goo.<br><br>“Wow, you really creamed that monster,” says Lady Glaciate, impressed.<br><br>“A piece of cake!” beams the April Fool.<br><br>“Kind of a shame, though,” says @beffymaroo. “It looked good enough to eat.”<br><br>The Fool takes a set of potion bottles from somewhere in his cape, fills them with the syrupy leavings of the Waffle, and mixes in a pinch of sparkling dust. The liquid swirls with color--new Hatching Potions! He tosses them into your arms. “All that adventure has given me an appetite. Who wants to join me for breakfast?”",
|
||||
"questWaffleNotes": "“April Fool!” storms a flustered Lady Glaciate. “You said your dessert-themed prank was ‘over with and completely cleaned up’!”<br><br>“Why, it was and is, my dear,” replies the Fool, puzzled. “And I am the most honest of Fools. What's wrong?”<br><br>“There's a giant sugary monster approaching Habit City!”<br><br>“Hmm,” muses the Fool. “I did raid a few lairs for the mystic reagents for my last event. Maybe I attracted some unwanted attention. Is it the Saccharine Serpent? The Torte-oise? Tiramisu Rex?”<br><br>“No! It's some sort of... Awful Waffle!”<br><br>“Huh. That's a new one! Perhaps it spawned from all the ambient shenanigan energy.” He turns to you and @beffymaroo with a lopsided smile. “I don't suppose you'd be available for some heroics?”",
|
||||
"questWaffleText": "Waffling with the Fool: Disaster Breakfast!",
|
||||
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market",
|
||||
"questWaffleDropDessertPotion": "Confection Hatching Potion",
|
||||
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells!",
|
||||
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!"
|
||||
}
|
||||
|
||||
@@ -513,5 +513,12 @@
|
||||
"backgroundButterflyGardenText": "Jardin à papillons",
|
||||
"backgroundAmongGiantFlowersNotes": "Badinez parmi les fleurs géantes.",
|
||||
"backgroundAmongGiantFlowersText": "Parmi les fleurs géantes",
|
||||
"backgrounds032020": "Ensemble 70 : sorti en mars 2020"
|
||||
"backgrounds032020": "Ensemble 70 : sorti en mars 2020",
|
||||
"backgroundRainyBarnyardNotes": "Faites une promenade détrempée et éclaboussante dans une basse-cour pluvieuse.",
|
||||
"backgroundRainyBarnyardText": "Basse-cour pluvieuse",
|
||||
"backgroundHeatherFieldNotes": "Appréciez les arômes d'un champ de bruyère.",
|
||||
"backgroundHeatherFieldText": "Champ de bruyère",
|
||||
"backgroundAnimalCloudsNotes": "Entraînez votre imagination à reconnaître les formes des animaux dans les nuages.",
|
||||
"backgroundAnimalCloudsText": "Nuages en formes d'animaux",
|
||||
"backgrounds042020": "Ensemble 71 : sorti en avril 2020"
|
||||
}
|
||||
|
||||
@@ -355,5 +355,6 @@
|
||||
"hatchingPotionAmber": "d'ambre",
|
||||
"hatchingPotionAurora": "Aurore",
|
||||
"hatchingPotionRuby": "Rubis",
|
||||
"hatchingPotionBirchBark": "Écorce de bouleau"
|
||||
"hatchingPotionBirchBark": "Écorce de bouleau",
|
||||
"hatchingPotionDessert": "Confiserie"
|
||||
}
|
||||
|
||||
@@ -2079,5 +2079,15 @@
|
||||
"weaponSpecialSpring2020WarriorNotes": "En vol ou au sol, ces ailes vous serviront bien ! Augmente la force de <%= str %>. Équipement en édition limitée du printemps 2020.",
|
||||
"weaponSpecialSpring2020WarriorText": "Ailes affutées",
|
||||
"weaponSpecialSpring2020RogueNotes": "Vous frapperez si vite que aura l'air encore PLUS bleu ! Augmente la force de <%= str %>. Équipement en édition limitée du printemps 2020.",
|
||||
"weaponSpecialSpring2020RogueText": "Épée de Lazurite"
|
||||
"weaponSpecialSpring2020RogueText": "Épée de Lazurite",
|
||||
"headAccessoryMystery202004Notes": "Elles se trémoussent juste un peu si l'odeur des fleurs passe devant elles : utilisez-les pour trouver un joli jardin ! Ne confère aucun bonus. Équipement d'abonnement d'avril 2020.",
|
||||
"headAccessoryMystery202004Text": "Antennes de merveilleux monarque",
|
||||
"backMystery202004Notes": "Faites un vol rapide vers la prairie fleurie la plus proche ou migrez à travers le continent avec ces jolies ailes ! Ne confère aucun bonus. Équipement d'abonnement d'avril 2020.",
|
||||
"backMystery202004Text": "Ailes de merveilleux monarque",
|
||||
"shieldArmoireHobbyHorseNotes": "Chevauchez votre magnifique monture de jeu vers vos récompenses méritées ! Augmente la perception et la constitution de <%= attrs %> chacune. Armoire enchantée : ensemble de chevalerie de papier (objet 2 de 3).",
|
||||
"shieldArmoireHobbyHorseText": "Cheval de jeu",
|
||||
"armorArmoireBoxArmorNotes": "Attention, un chat y dort peut-être... mais ça ne vous empêchera pas de porter cette armure au combat, avec l'audace qui vous caractérise ! Augmente la perception et la constitution de <%= attrs %> chacune. Armoire enchantée : ensemble de chevalerie de papier (objet 3 de 3). ",
|
||||
"armorArmoireBoxArmorText": "Armure boite",
|
||||
"weaponArmoirePaperCutterNotes": "Ca n'a pas l'air terrible, mais vous êtes vous déjà coupé avec une feuille de papier ? Augmente la force de <%= str %>. Armoire enchantée : ensemble de chevalerie de papier (objet 1 de 3).",
|
||||
"weaponArmoirePaperCutterText": "Coupe papier"
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"hatchingPotion": "potion d'éclosion",
|
||||
"noHatchingPotions": "Vous n'avez pas de potion d'éclosion.",
|
||||
"inventoryText": "Cliquez sur un œuf pour voir les potions utilisables surlignées en vert, puis cliquez sur une des potions surlignées pour faire éclore votre familier. Si aucune potion n'est surlignée, cliquez à nouveau sur l’œuf pour le désélectionner et cliquez plutôt sur une potion d'abord pour voir les œufs utilisables. Vous pouvez aussi vendre votre surplus d'objets à Alexander le marchand.",
|
||||
"haveHatchablePet": "Vous avez une potion d'éclosion <%= potion %> et un œuf de <%= egg %> qui peuvent faire éclore ce familier ! <b>Cliquez</b> sur l'empreinte pour le faire naître.",
|
||||
"haveHatchablePet": "Vous avez une potion d'éclosion <%= potion %> et un œuf de <%= egg %> qui peuvent faire éclore ce familier ! <b>Cliquez</b> pour le faire naître !",
|
||||
"quickInventory": "Inventaire rapide",
|
||||
"foodText": "nourriture",
|
||||
"food": "Nourriture de familiers et selles",
|
||||
|
||||
@@ -683,5 +683,14 @@
|
||||
"questRubyCollectAquariusRunes": "Runes zodiacales du verseau",
|
||||
"questRubyCompletion": "Les objets nécessaires étant bien emballés, vous vous précipitez tous les trois à Habitiville et vous retrouvez dans le laboratoire de @beffymaroo. \"Excellent travail !\" dit @beffymaroo. \"Vous avez réuni les ingrédients de la potion !\"<br><br>@beffymaroo combine soigneusement les runes et les rubis pour créer une potion rouge brillante et en verse une partie sur deux œufs d'animaux de compagnie. En observant les résultats, vous remarquez que les deux animaux de compagnie semblent complètement désintéressés l'un par rapport à l'autre ! <br><br> \"Ça n'a pas marché ?\" demande @gully. Mais avant de pouvoir répondre, vous vous rendez soudain compte que ce n'est pas la potion qui crée l'amitié et l'amour, mais plutôt l'expérience de travailler ensemble vers un but commun. Vous sortez de la quête en ayant gagné de nouveaux amis... et de nouveaux animaux de compagnie tape-à-l'œil !",
|
||||
"questRubyNotes": "Les sommets des volcans du Stoïkalm, normalement très animés, sont silencieux dans la neige. \"Je suppose que les randonneurs et les observateurs sont en hibernation ?\" vous disent @gully et @Aspiring_Advocate. \"Cela facilite notre recherche.\"<br><br>En atteignant le sommet, le vent froid se confond avec la vapeur qui s'échappe du cratère. \"Là !\" s'exclame @Aspiring_Advocate, montrant une source chaude. \"Quel meilleur endroit pour trouver des runes fraîches du Verseau et des runes passionnées de Vénus que là où la glace et le feu se rencontrent ?\"<br><br>Vous vous précipitez vers la source chaude. \"Selon mes recherches,\" dit @Aspiring_Advocate, \"combiner les runes avec des rubis en forme de coeur permettra de créer une potion d'éclosion qui pourra favoriser l'amitié et l'amour !\"<br><br>Excités par la perspective d'une nouvelle découverte, vous souriez tous. \"Très bien\", dit @gully, \"commençons à chercher !\"",
|
||||
"questRubyText": "Rapport rubis"
|
||||
"questRubyText": "Rapport rubis",
|
||||
"questWaffleUnlockText": "Déverrouille l'achat de potion d'éclosion de confiserie au marché",
|
||||
"questWaffleDropDessertPotion": "Potion d'éclosion de confiserie",
|
||||
"questWaffleRageEffect": "`L'affreuse gaufre utilise BOURBIER D'ERABLE !` Un sirop de sève collante ralentit vos coups et vos sorts !",
|
||||
"questWaffleRageDescription": "Bourbier d'érable : Cette barre se remplit quand vous n'effectuez pas vos quotidiennes. Lorsqu'elle est pleine, l'affreuse gaufre annulera l'attaque de l'équipe !",
|
||||
"questWaffleRageTitle": "Bourbier d'érable",
|
||||
"questWaffleBoss": "Affreuse gaufre",
|
||||
"questWaffleCompletion": "Battue et beurrée mais triomphante, vous savourez la douce victoire alors que l'Affreuse Gaufre s'effondre dans une mare gluante.<br><br> \"Wow, vous avez vraiment écrémé ce monstre\", dit Lady Glaciate, impressionnée.<br><br> \"C'était pas de la tarte !\" rayonne le Poison d'avril.<br><br> \"Un peu la honte, cependant\", dit @beffymaroo. \"Ça avait l'air assez bon à manger.\"<br><br>\"Le Poison prend un ensemble de flacons de potion quelque part dans sa cape, les remplit avec les restes sirupeux de la Gaufre, et les mélange dans une pincée de poussière pétillante. Le liquide tourbillonne de couleurs... de nouvelles potions d'éclosion ! Il les jette dans vos bras. \"Toute cette aventure m'a donné de l'appétit. Qui veut se joindre à moi pour le petit déjeuner ?\"",
|
||||
"questWaffleNotes": "Le \"Poison d'avril\" prend d'assaut Lady Glaciate. \"Vous avez dit que votre farce sur le thème du dessert était 'terminée et complètement nettoyée' !\" <br><br> \"Mais, c'était et c'est encore le cas, ma chère\", répond le Poison, perplexe. \"Et je suis le plus honnête des Poisons. Qu'est-ce qui ne va pas ? \"<br><br>\"Il y a un monstre géant sucré qui approche de Habitiville !\"<br><br>\"Hmm,\" dit le Poison. \"J'ai fait un raid dans quelques tanières pour les réactifs mystiques de mon dernier événement. J'ai peut-être attiré une attention non désirée. Est-ce le Serpent Saccharine ? La Torte-oise ? Le Tiramisu Rex ?\"<br><br>\"Non ! C'est une sorte de... d'Affreuse Gaufre !\"<br><br>\"Huh. C'est une nouvelle ! Peut-être qu'elle est née de toute l'énergie ambiante des bêtises.\" Il se tourne vers vous et @beffymaroo avec un sourire en coin. \"Je suppose que vous ne seriez pas disponible pour des actes héroïques ?\"",
|
||||
"questWaffleText": "Gaufrer le poisson : Petit déjeuner désastreux !"
|
||||
}
|
||||
|
||||
@@ -247,5 +247,6 @@
|
||||
"monthlyMysteryItems": "Objets mystère mensuels",
|
||||
"subscribersReceiveBenefits": "Les personnes abonnées reçoivent ces bénéfices utiles !",
|
||||
"mysterySet202003": "Ensemble de combat barbelé",
|
||||
"giftASubscription": "Offrez un abonnement"
|
||||
"giftASubscription": "Offrez un abonnement",
|
||||
"mysterySet202004": "Ensemble du merveilleux monarque"
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
"add": "追加",
|
||||
"undo": "元に戻す",
|
||||
"continue": "続ける",
|
||||
"accept": "承諾",
|
||||
"accept": "承認",
|
||||
"reject": "拒否",
|
||||
"neverMind": "結構です",
|
||||
"buyMoreGems": "ジェムを買う",
|
||||
|
||||
@@ -428,7 +428,7 @@
|
||||
"reverseChat": "チャットの表示順を逆にする",
|
||||
"invites": "招待",
|
||||
"details": "詳細",
|
||||
"participantDesc": "一旦すべてのメンバーが承諾するか拒否するとクエストが開始されます。'承諾する'をクリックした人だけがクエストに参加して報酬を受け取ることができます。",
|
||||
"participantDesc": "一旦すべてのメンバーが承認するか拒否するとクエストが開始されます。「承認する」をクリックした人だけがクエストに参加して報酬を受け取ることができます。",
|
||||
"groupGems": "グループのジェム",
|
||||
"groupGemsDesc": "ギルドのジェムはチャレンジを作るために使うことができます!将来的に、より多くのギルドのジェムを追加することができるようになります。",
|
||||
"groupTaskBoard": "タスクボード",
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"messageGroupChatAdminClearFlagCount": "フラグ数をクリアーできるのは管理者だけです!",
|
||||
"messageCannotFlagSystemMessages": "システムメッセージを報告することはできません。このメッセージに関してコミュニティガイドラインの違反を報告する必要がある場合は、スクリーンショットと説明をコミュニティー管理者(<%= communityManagerEmail %>)にメールで送ってください。",
|
||||
"messageGroupChatSpam": "おおっと!たくさんのメッセージを投稿しすぎたようです!少しだけ待ってから再度お試しください。キャンプ場では200個のメッセージまでしか一度に表示されませんので,Habiticaでは熟慮と吟味がなされた返信を奨励しています。あなたが言いかけたことを楽しみにしています。:)",
|
||||
"messageCannotLeaveWhileQuesting": "あなたはクエストを実行中のため、このパーティーへの招待を承諾することができません。もしこのパーティーに加わりたいのであれば、まずパーティー画面から実行中のクエストを中止してください。中止したクエストの巻物は手元に戻ります。",
|
||||
"messageCannotLeaveWhileQuesting": "あなたはクエストを実行中のため、このパーティーへの招待を承認できません。もしこのパーティーに加わりたい場合は、まずパーティー画面から実行中のクエストを中止してください。中止したクエストの巻物は手元に戻ります。",
|
||||
"messageUserOperationProtected": "「<%= operation %>」パスは、保護されたパスなので保存できません。",
|
||||
"messageUserOperationNotFound": "<%= operation %> の操作は見つかりません",
|
||||
"messageNotificationNotFound": "通知はありません。",
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
"goToSettings": "設定を行う",
|
||||
"usernameVerifiedConfirmation": "あなたのユーザー名、<%= username %>、は承認されました!",
|
||||
"usernameNotVerified": "あなたのユーザー名を承認してください。",
|
||||
"changeUsernameDisclaimer": "このユーザー名は、招待、チャットでの@返信、メッセージのやりとりなどで使用されます。",
|
||||
"changeUsernameDisclaimer": "あなたのユーザー名は、招待、チャットでの@返信、メッセージのやりとりなどで使用されます。ユーザー名は1~20文字以内にする必要があり、a~zの英字、0~9の数字、ハイフン、アンダーバーのみが使えます。不適切な言葉は使用できません。",
|
||||
"verifyUsernameVeteranPet": "あなたが承認を終えたあとには、百戦練磨のペットのうち1匹があなたを待っていることでしょう!",
|
||||
"subscriptionReminders": "寄付についての通知",
|
||||
"newPMNotificationTitle": "<%= name %>からの新しいメッセージ",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"supportDevsText": "あなたの寄付が Habitica の繁栄を維持し、新機能開発の資金になります。あなたのご厚情に感謝します!",
|
||||
"exclusiveJackalopePet": "限定ペット",
|
||||
"exclusiveJackalopePetText": "寄付会員だけが利用可能なペット、「高貴な紫のジャッカロープ」を手に入れましょう!",
|
||||
"giftSubscription": "だれかに寄付会員特典をプレゼントしますか?",
|
||||
"giftSubscription": "だれかに寄付会員特典をプレゼントしますか?",
|
||||
"giftSubscriptionText1": "贈りたい相手のプロフィールを開いてください。ヘッダーに表示されているパーティーのアバター、またはチャット画面の名前をクリックするとプロフィール画面が開きます。",
|
||||
"giftSubscriptionText2": "相手のプロフィールの右上にあるプレゼント箱のアイコンをクリックしてください。",
|
||||
"giftSubscriptionText3": "「寄付」を選択し、あなたが代金を納める支払い方法を入力してください。",
|
||||
@@ -41,8 +41,8 @@
|
||||
"manageSub": "寄付の管理",
|
||||
"cancelSub": "寄付の中止",
|
||||
"cancelSubInfoGoogle": "寄付を中止する場合や、すでに中止した寄付の終了日を確認する際には、Google Play ストア アプリの「アカウント」 > \"Subscriptions\" セクションへ進んでください。この画面ではあなたの寄付が中止されたかどうかを示すことはできません。",
|
||||
"cancelSubInfoApple": "寄付を中止する場合や、すでに中止した寄付の終了日を確認する際には、<a href=\"https://support.apple.com/en-us/HT202039\">Appleの公式な手順</a>に従ってください。この画面ではあなたの寄付が中止されたかどうかを示すことはできません。",
|
||||
"cancelSubInfoGroupPlan": "グループプランによって寄付がされているので、キャンセルすることができません。あなたがグループの一員でなくなると終了します。もしあなたがグループリーダーで、グループプランそのものをキャンセルしたい場合、グループメニューの支払い詳細たぶから行うことができます。",
|
||||
"cancelSubInfoApple": "寄付をキャンセルする場合や、すでにキャンセルした寄付の終了日を確認する際には、<a href=\"https://support.apple.com/en-us/HT202039\" target=\"_blank\">Appleの公式な手順</a>に従ってください。この画面ではあなたの寄付がキャンセルされたかどうかを表示することはできません。",
|
||||
"cancelSubInfoGroupPlan": "グループプランによって無料の寄付会員特典が付与されているので、キャンセルすることはできません。あなたがグループプランのメンバーではなくなったときに終了します。もしあなたがグループリーダーで、グループプランをキャンセルしたい場合は、グループプランの「グループの請求」タブからキャンセルできます。",
|
||||
"canceledSubscription": "中止した寄付",
|
||||
"cancelingSubscription": "寄付の中止処理をしています",
|
||||
"adminSub": "管理者の寄付",
|
||||
@@ -232,5 +232,6 @@
|
||||
"mysterySet202001": "伝説のキツネセット",
|
||||
"backgroundAlreadyOwned": "この背景はすでにもっています。",
|
||||
"mysticHourglassNeededNoSub": "このアイテムには神秘の砂時計が必要です。Habiticaの寄付会員になることで神秘の砂時計を手に入れることができます。",
|
||||
"viewSubscriptions": "寄付を見る"
|
||||
"viewSubscriptions": "寄付を見る",
|
||||
"giftASubscription": "寄付会員特典を贈る"
|
||||
}
|
||||
|
||||
@@ -513,5 +513,12 @@
|
||||
"backgroundHolidayMarketNotes": "Vind de perfecte cadeaus en versieringen bij een Feestdagen Markt.",
|
||||
"backgroundHolidayMarketText": "Feestdagen Markt",
|
||||
"backgrounds122019": "SET 67: Uitgebracht December 2019",
|
||||
"backgroundPotionShopNotes": "Vind een elixer tegen een kwaal in een Uitbroeddrankenwinkel."
|
||||
"backgroundPotionShopNotes": "Vind een elixer tegen een kwaal in een Uitbroeddrankenwinkel.",
|
||||
"backgroundRainyBarnyardNotes": "Maak een drassige, spetterende wandeling door een Regenachtige Boerenerf.",
|
||||
"backgroundRainyBarnyardText": "Regenachtige boerenerf",
|
||||
"backgroundHeatherFieldNotes": "Geniet van de geur van een Heather Veld.",
|
||||
"backgroundHeatherFieldText": "Heather Veld",
|
||||
"backgroundAnimalCloudsNotes": "Oefen je fantasie door dierenvormen in de wolken te vinden.",
|
||||
"backgroundAnimalCloudsText": "Dierlijke Wolken",
|
||||
"backgrounds042020": "SET 71: Uitgekomen April 2020"
|
||||
}
|
||||
|
||||
@@ -355,5 +355,6 @@
|
||||
"questEggRobotAdjective": "een futuristische",
|
||||
"questEggRobotText": "Robot Huisdier",
|
||||
"questEggRobotMountText": "Robot",
|
||||
"hatchingPotionBirchBark": "Berkenschors"
|
||||
"hatchingPotionBirchBark": "Berkenschors",
|
||||
"hatchingPotionDessert": "Confectie"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"jsDisabledHeading": "Helaas! Je browser heeft Javascript niet geactiveerd",
|
||||
"jsDisabledHeadingFull": "Helaas! Je browser heeft Javascript niet geactiveerd en zonder dat kan Habitica niet goed werken",
|
||||
"jsDisabledHeading": "Helaas! Je browser heeft JavaScript niet geactiveerd",
|
||||
"jsDisabledHeadingFull": "Helaas! Je browser heeft JavaScript niet geactiveerd en zonder dat kan Habitica niet goed werken",
|
||||
"jsDisabledText": "Habitica kan zonder dat de site niet goed weergeven!",
|
||||
"jsDisabledLink": "Activeer alsjeblieft Javascript om door te gaan!"
|
||||
}
|
||||
"jsDisabledLink": "Activeer alsjeblieft JavaScript om door te gaan!"
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"randomize": "Randomiseren",
|
||||
"mattBoch": "Matt Boch",
|
||||
"mattShall": "Zal ik je je ros brengen, <%= name %>? Als je een Huisdier genoeg voedsel hebt gevoerd om het in een Rijdier te veranderen, zal het hier verschijnen. Klik op een rijdier om het te zadelen!",
|
||||
"mattBochText1": "Welkom in de Stal! Ik ben Matt, de Dierenmeester. Na niveau 3 kun je huisdieren laten uitkomen door middel van eieren en toverdranken. Als je een dier laat uitkomen in de markt, zal het hier verschijnen! Klik op de afbeelding van een huisdier om het aan je avatar toe te voegen! Voeder je huisdieren met het voedsel dat je vindt na niveau 3, zodat ze uitgroeien tot krachtige rijdieren.",
|
||||
"mattBochText1": "Welkom in de Stal! Ik ben Matt, de dierenmeester. Iedere keer als je een taak voltooid, heb je een willekeurige kans om een Ei of een Uitbroedtoverdrankje te ontvangen om Huisdieren uit te broeden. Als je een Huisdier uitbroedt, verschijnt het hier! Klik op de afbeelding van een Huisdier om het toe te voegen aan je Avatar. Voer ze met Voedsel voor Huisdieren en ze zullen uitgroeien tot stevige Rijdieren.",
|
||||
"welcomeToTavern": "Welkom bij de Herberg!",
|
||||
"sleepDescription": "Heb je een pauze nodig? Neem een kijkje in Daniel's Herberg om enkele van de moeilijkere spelmechanismen te pauzeren:",
|
||||
"sleepBullet1": "Gemiste Dagtaken zullen je niet beschadigen",
|
||||
@@ -91,7 +91,7 @@
|
||||
"unlocked": "Voorwerpen zijn ontgrendeld",
|
||||
"alreadyUnlocked": "Volledige set is al ontgrendeld.",
|
||||
"alreadyUnlockedPart": "Volledige set is al gedeeltelijk ontgrendeld.",
|
||||
"invalidQuantity": "Hoeveelheid om te kopen moet een nummer zijn.",
|
||||
"invalidQuantity": "Hoeveelheid om te kopen moet een positief heel getal zijn.",
|
||||
"USD": "(USD)",
|
||||
"newStuff": "Nieuwe informatie van Bailey",
|
||||
"newBaileyUpdate": "Nieuwe update van Bailey!",
|
||||
@@ -103,7 +103,7 @@
|
||||
"donationDesc": "20 Edelstenen, donatie aan Habitica",
|
||||
"payWithCard": "Betaal met creditcard",
|
||||
"payNote": "Opmerking: PayPal doet er soms lang over om een betaling te verwerken. We raden je aan te betalen met een creditcard.",
|
||||
"card": "CreditCard (met Stripe)",
|
||||
"card": "Creditcard",
|
||||
"amazonInstructions": "Klik op de knop om te betalen via de Amazon Betaaldienst",
|
||||
"paymentMethods": "Koop met",
|
||||
"paymentSuccessful": "Je betaling van succesvol!",
|
||||
@@ -138,9 +138,9 @@
|
||||
"tourPartyPage": "Jouw gezelschap helpt je verantwoordelijk te blijven. Nodig je vrienden uit en speel een queeste-perkamentrol vrij!",
|
||||
"tourGuildsPage": "Gilden zijn chatgroepen met gezamenlijke interesses; gemaakt door de spelers, voor de spelers. Zoek door de lijst en word lid van de gilden die je interesseren. Kijk eens bij het populaire Habitica Help: Ask a Question gilde, waar iedereen vragen kan stellen over Habitica!",
|
||||
"tourChallengesPage": "Uitdagingen zijn takenlijsten met een thema, aangemaakt door andere gebruikers! Als je meedoet aan een uitdaging worden de bijbehorende taken toegevoegd aan je account. Wedijver met andere gebruikers om edelstenen te winnen!",
|
||||
"tourMarketPage": "Vanaf niveau 3 kun je eieren en uitbroeddranken vinden als je een taak afvinkt. Ze verschijnen hier - gebruik ze om huisdieren uit te broeden! Je kunt ook voorwerpen kopen in de markt.",
|
||||
"tourMarketPage": "Iedere keer als je een taak voltooid, heb je een willekeurige kans om een Ei, Uitbroedtoverdrank of een stuk Voedsel voor Dieren te vinden. Je kunt deze voorwerpen ook hier kopen.",
|
||||
"tourHallPage": "Welkom in de Hal der Helden, waar mensen die een bijdrage leveren aan Habitica worden geëerd. Door programmeren, kunst, muziek, schrijven, of zelfs door behulpzaam te zijn hebben zij edelstenen, exclusieve uitrusting en prestigieuze titels verdiend. Als je wilt, kun jij ook bijdragen aan Habitica!",
|
||||
"tourPetsPage": "Dit is de Stal! Na niveau 3 verzamel je eieren en toverdranken tijdens het voltooien van taken. Als je een huisdier laat uitkomen in de markt, verschijnt het hier! Klik op het plaatje van een huisdier om het aan je avatar toe te voegen. Voer je huisdieren met het voedsel dat je na niveau 3 vindt om ze te laten uitgroeien tot krachtige rijdieren.",
|
||||
"tourPetsPage": "Welkom in de Stal! Iedere keer als je een taak voltooid, heb je een willekeurige kans om een Ei of een Uitbroedtoverdrankje te ontvangen om Huisdieren uit te broeden. Als je een Huisdier uitbroedt, verschijnt het hier! Klik op de afbeelding van een Huisdier om het toe te voegen aan je Avatar. Voer ze met Voedsel voor Huisdieren en ze zullen uitgroeien tot stevige Rijdieren.",
|
||||
"tourMountsPage": "Als je een huisdier genoeg gevoerd hebt en het in een rijdier verandert, verschijnt het hier. Klik op een rijdier om op te zadelen!",
|
||||
"tourEquipmentPage": "This is where your Equipment is stored! Your Battle Gear affects your Stats. If you want to show different Equipment on your avatar without changing your Stats, click \"Enable Costume.\"",
|
||||
"equipmentAlreadyOwned": "Je bezit dat stuk uitrusting al",
|
||||
@@ -167,5 +167,9 @@
|
||||
"welcome4": "Vermijd slechte gewoontes die je gezondheid (HP) verminderen, want anders gaat je avatar dood!",
|
||||
"welcome5": "Nu kun je je avatar aanpassen en je taken instellen...",
|
||||
"imReady": "Betreed Habitica",
|
||||
"limitedOffer": "Beschikbaar tot <%= date %>"
|
||||
"limitedOffer": "Beschikbaar tot <%= date %>",
|
||||
"paymentSubBillingWithMethod": "Je abonnement zal afgeschreven worden: <strong>$<%= amount %></strong> elke <strong><%= months %> maanden</strong> via <strong><%= paymentMethod %></strong>.",
|
||||
"paymentCanceledDisputes": "We hebben een annuleringsbevestiging gestuurd naar je e-mailadres. Als je deze mail niet ziet, neem dan alsjeblieft contact met ons op om geschillen over toekomstige rekeningen te voorkomen.",
|
||||
"paymentAutoRenew": "Dit abonnement zal automatisch vernieuwd worden totdat het wordt geannuleerd. Als het nodig is je abonnement op te zeggen, kun je dat doen in je instellingen.",
|
||||
"cannotUnpinItem": "Dit voorwerp kan niet losgekoppeld worden."
|
||||
}
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"step2": "Stap 2: Verdien punten door dingen te doen in het echte leven",
|
||||
"webStep2Text": "Begin nu met het tackelen van de doelen op je lijst! Als je taken voltooit en ze afstreept in Habitica krijg je [Ervaringspunten](https://habitica.fandom.com/nl/wiki/Ervaringspunten), die je helpen om niveaus omhoog te gaan, en [Goud](https://habitica.fandom.com/nl/wiki/Goud), waarmee je beloningen kunt kopen. Als je terugvalt in slechte gewoontes of dagelijkse taken mist, zul je [Levenspunten](https://habitica.fandom.com/nl/wiki/Levenspunten) verliezen. Op deze manier zijn de ervaringsbalk en gezondheidsbalk een leuke indicator van je vooruitgang ten opzichte van je doelen. Je zult zien dat je echte leven verbetert naarmate je personage in het spel vooruit gaat.",
|
||||
"step3": "Stap 3: Bewerk en verken Habitica",
|
||||
"webStep3Text": "Zodra je wat meer vertrouwd bent met de basis, kun je nog meer uit Habitica halen met deze vernuftige functies: \n * Organiseer je taken met [labels](http://habitica.fandom.com/wiki/Tags) (wijzig de taak om labels toe te voegen).\n * Pas je [avatar] aan (http://habitica.fandom.com/wiki/Avatar) door te klikken op het gebruikersicoon in de hoek rechtsboven. \n * Koop je [Uitrusting](http://habitica.fandom.com/wiki/Equipment) in de Beloningensectie of in de [Winkels](<%= shopUrl %>), en verander het via [Boedel> Uitrusting](<%= equipUrl %>).\n * Bouw een band op met andere gebruikers in de [Herberg](http://habitica.fandom.com/wiki/Tavern).\n * Vanaf niveau 3, broedt [Huisdieren] uit (http://habitica.fandom.com/wiki/Pets) door [Eieren] (http://habitica.fandom.com/wiki/Eggs) en [Uitbroeddrankjes](http://habitica.fandom.com/wiki/Hatching_Potions) te verzamelen. [Voed](http://habitica.fandom.com/wiki/Food) ze om ze te laten uitgroeien tot [Rijdieren](http://habitica.fandom.com/wiki/Mounts).\n * Op niveau 10: Kies een specifieke [Klasse](http://habitica.fandom.com/wiki/Class_System) en gebruik de klassespecifieke [vaardigheden](http://habitica.fandom.com/wiki/Skills) (levels 11 to 14).\n * Vorm een gezelschap met je vrienden (door te klikken op [Gezelschap](<%= partyUrl %>) in de navigatiebalk) en zo verantwoording af te leggen en om Queesterollen te verdienen.\n * Versla Monsters en verzamel voorwerpen op [queesten](http://habitica.fandom.com/wiki/Quests) (Je ontvangt een Queeste op niveau 15).",
|
||||
"webStep3Text": "Zodra je wat meer vertrouwd bent met de basis, kun je nog meer uit Habitica halen met deze vernuftige functies: \n * Organiseer je taken met [labels](http://habitica.fandom.com/wiki/Tags) (wijzig de taak om labels toe te voegen).\n * Pas je [avatar] aan (http://habitica.fandom.com/wiki/Avatar) door te klikken op het gebruikersicoon in de hoek rechtsboven. \n * Koop je [Uitrusting](http://habitica.fandom.com/wiki/Equipment) in de Beloningensectie of in de [Winkels](<%= shopUrl %>), en verander het via [Boedel> Uitrusting](<%= equipUrl %>).\n * Bouw een band op met andere gebruikers in de [Herberg](http://habitica.fandom.com/wiki/Tavern).\n * Broedt [Huisdieren] uit (http://habitica.fandom.com/wiki/Pets) door [Eieren] (http://habitica.fandom.com/wiki/Eggs) en [Uitbroeddrankjes](http://habitica.fandom.com/wiki/Hatching_Potions) te verzamelen. [Voed](http://habitica.fandom.com/wiki/Food) ze om ze te laten uitgroeien tot [Rijdieren](http://habitica.fandom.com/wiki/Mounts).\n * Op niveau 10: Kies een specifieke [Klasse](http://habitica.fandom.com/wiki/Class_System) en gebruik de klassespecifieke [vaardigheden](http://habitica.fandom.com/wiki/Skills) (levels 11 to 14).\n * Vorm een gezelschap met je vrienden (door te klikken op [Gezelschap](<%= partyUrl %>) in de navigatiebalk) en zo verantwoording af te leggen en om Queesterollen te verdienen.\n * Versla Monsters en verzamel voorwerpen op [queesten](http://habitica.fandom.com/wiki/Quests) (Je ontvangt een Queeste op niveau 15).",
|
||||
"overviewQuestions": "Heb je vragen? Bekijk de [FAQ](<%= faqUrl %>)! Als dat je vraag niet beantwoordt, dan kun je hulp zoeken bij het [Habitica Help guild](<%= helpGuildUrl %>).\n\n Veel succes met je taken!"
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"hatchingPotion": "uitbroeddrank",
|
||||
"noHatchingPotions": "Je hebt geen uitbroeddranken.",
|
||||
"inventoryText": "Klik op een ei om bruikbare drankjes in het groen gemarkeerd te zien en klik dan op één van de gemarkeerde drankjes om een dier uit te broeden. Als er geen drankjes zijn gemarkeerd, klik dan opnieuw op het ei om de selectie te verwijderen; klik in plaats daarvan op een drankje om te zien of er bruikbare eieren gemarkeerd worden. Je kunt ongewenste voorwerpen ook verkopen aan Alexander de Koopman.",
|
||||
"haveHatchablePet": "Je hebt een <%= potion %>uitbroeddrank en een <%= egg %>ei om dit huisdier te laten uitbroeden! <b>Click</b> op de pootafdruk om uit te broeden.",
|
||||
"haveHatchablePet": "Je hebt een <%= potion %>uitbroeddrank en een <%= egg %>ei om dit huisdier te laten uitbroeden! <b>Click</b> om uit te broeden.",
|
||||
"quickInventory": "Snelle boedel",
|
||||
"foodText": "voedsel",
|
||||
"food": "Huisdieren voedsel en zadels",
|
||||
@@ -123,9 +123,9 @@
|
||||
"foodWikiText": "Wat eet mijn huisdier graag?",
|
||||
"foodWikiUrl": "http://habitica.fandom.com/wiki/Food_Preferences",
|
||||
"welcomeStable": "Welkom in de stal!",
|
||||
"welcomeStableText": "Ik ben Matt, de Dierenmeester. Na niveau 3 kun je huisdieren laten uitkomen door middel van eieren en toverdranken die je vind! Wanneer je een dier laat uitkomen vanaf je Boedel, zal deze hier verschijnen! Klik op de afbeelding van een huisdier om het aan je avatar toe te voegen. Geef je huisdieren te eten met het voedsel dat je vindt na niveau 3, zodat ze uitgroeien tot krachtige rijdieren.",
|
||||
"welcomeStableText": "Welkom bij de stal! Ik ben Matt, de beestmeester. Elke keer dat je een taak voltooit, heb je een willekeurige kans om een ei of een uitkomstdrankje te ontvangen om huisdieren uit te laten komen. Wanneer je een huisdier uitbroedt, zal het hier verschijnen! Klik op de afbeelding van een huisdier om deze toe te voegen aan je avatar. Voer ze met het dierenvoedsel dat je vindt en ze zullen uitgroeien tot winterharde rijdieren.",
|
||||
"petLikeToEat": "Wat eet mijn huisdier graag?",
|
||||
"petLikeToEatText": "Het maakt niet uit wat je huisdieren voert om ze te laten groeien, maar ze zullen sneller groeien als je ze hun favoriete Voedsel voert. Experimenteer om uit te vinden wat het patroon is, of zie het antwoord hier: <br/><a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
|
||||
"petLikeToEatText": "Het maakt niet uit wat je huisdieren voert om ze te laten groeien, maar ze zullen sneller groeien als je ze hun favoriete voedsel voert. Experimenteer om uit te vinden wat het patroon is, of zie het antwoord hier: <br/><a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
|
||||
"filterByStandard": "Standaard",
|
||||
"filterByMagicPotion": "Magisch drankje",
|
||||
"filterByQuest": "Queeste",
|
||||
|
||||
@@ -126,5 +126,18 @@
|
||||
"bossHealth": "<%= currentHealth %> / <%= maxHealth %> Gezondheid",
|
||||
"rageAttack": "Uitbarsting van Razernij:",
|
||||
"bossRage": "<%= currentRage %> / <%= maxRage %> Woede",
|
||||
"rageStrikes": "Woede Treffers"
|
||||
"rageStrikes": "Woede Treffers",
|
||||
"chatItemQuestFinish": "Alle voorwerpen gevonden! Het gezelschap heeft hun beloningen ontvangen.",
|
||||
"chatFindItems": "<%= username %> heeft <%= items %> gevonden.",
|
||||
"chatBossDefeated": "Je hebt <%= bossName %> verslagen! Leden van het gezelschap ontvangen de beloningen van de overwinning.",
|
||||
"chatBossDontAttack": "<%= gebruikersnaam %> valt < = bossName %> aan voor <%= userDamage %> schade. <%= bossName %> valt niet aan, omdat het respect heeft voor het feit dat er na het onderhoud enkele bugs zijn en het niemand onrechtvaardig wil kwetsen. Het zal binnenkort zijn opmars voortzetten!",
|
||||
"chatBossDamage": "<%= username %> valt <%= bossName %> aan voor <%= userDamage %> schade. <%= bossName %> valt gezelschap aan voor <%= bossDamage %> schade.",
|
||||
"chatQuestStarted": "Je queeste, <%= questName %>, is begonnen.",
|
||||
"questAlreadyStartedFriendly": "De queeste is al begonnen, maar je kunt altijd de volgende pakken!",
|
||||
"questAlreadyStarted": "De queeste is al begonnen.",
|
||||
"questInvitationNotificationInfo": "Je bent uitgenodigd om deel te nemen aan een queeste",
|
||||
"hatchingPotionQuests": "Magische Uitbroed Toverdrank Queeste",
|
||||
"tavernBossTired": "<%= bossName%> probeert <%= rageName%> los te laten, maar is te moe.",
|
||||
"chatQuestCancelled": "<%= gebruikersnaam %> heeft de gezelschapszoektocht geannuleerd <%= questName %>.",
|
||||
"chatQuestAborted": "<%= gebruikersnaam %> heeft de gezelschapszoektocht afgebroken <%= questName %>."
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
"questGroupDilatoryDistress": "Dilatory Distress",
|
||||
"questDilatoryDistress1Text": "De Droefheid van Dralen, deel 1: Flessenpost",
|
||||
"questDilatoryDistress1Notes": "Er is een bericht in een fles gearriveerd uit de net herbouwde stad Dralen! Er staat: \"Beste Habiticanen, we hebben wederom jullie hulp nodig. Onze prinses is verdwenen en de stad wordt bestookt door onbekende waterige demonen! De bidsprinkhaankreeften proberen de aanvallers tegen te houden. Help ons alsjeblieft!\" Om de lange reis naar de verzonken stad te maken moet je onder water kunnen ademen. Gelukkig kunnen de alchemisten @Benga en @hazel dat voor elkaar maken! Nu alleen de juiste ingrediënten nog.",
|
||||
"questDilatoryDistress1Completion": "Je trekt het gevinde harnas aan en zwemt zo snel mogelijk naar Dralen. Het is het zeemeervolk en hun bidsprinkhaankreeften gelukt om de monsters uit de stad te houden, maar ze zijn aan het verliezen. Het moment dat je bij de kasteelmuren bent valt het gruwelijke belegerende leger aan!",
|
||||
"questDilatoryDistress1Completion": "Je trekt het gevinde harnas aan en zwemt zo snel mogelijk naar Dralen. Het is het zeemeervolk en hun bidsprinkhaankreeften gelukt om de monsters uit de stad te houden, maar ze zijn aan het verliezen. Het moment dat je bij de kasteelmuren bent valt het gruwelijke leger aan!",
|
||||
"questDilatoryDistress1CollectFireCoral": "Brandkoraal",
|
||||
"questDilatoryDistress1CollectBlueFins": "Blauwe vinnen",
|
||||
"questDilatoryDistress1DropArmor": "Gevind oceanisch harnas (harnas)",
|
||||
@@ -559,7 +559,7 @@
|
||||
"questYarnDropYarnEgg": "Wol (Ei)",
|
||||
"questYarnUnlockText": "Ontgrendelt het kopen van Gareneieren op de Markt",
|
||||
"winterQuestsText": "Winter Quest Bundle",
|
||||
"winterQuestsNotes": "Contains 'Trapper Santa', 'Find the Cub', and 'The Fowl Frost'. Available until December 31.",
|
||||
"winterQuestsNotes": "Bevat 'Trapper Santa', 'Find the Cub' en 'The Fowl Frost'. Beschikbaar tot 31 januari. Let op dat Trapper Santa en Find the Cub stapelbare prestatie hebben, maar een zeldzaam huisdier en een rijdier geven dat maar één keer aan je stal kan worden toegevoegd.",
|
||||
"questPterodactylText": "The Pterror-dactyl",
|
||||
"questPterodactylNotes": "You're taking a stroll along the peaceful Stoïkalm Cliffs when an evil screech rends the air. You turn to find a hideous creature flying towards you and are overcome by a powerful terror. As you turn to flee, @Lilith of Alfheim grabs you. \"Don't panic! It's just a Pterror-dactyl.\"<br><br>@Procyon P nods. \"They nest nearby, but they're attracted to the scent of negative Habits and undone Dailies.\"<br><br>\"Don't worry,\" @Katy133 says. \"We just need to be extra productive to defeat it!\" You are filled with a renewed sense of purpose and turn to face your foe.",
|
||||
"questPterodactylCompletion": "With one last screech the Pterror-dactyl plummets over the side of the cliff. You run forward to watch it soar away over the distant steppes. \"Phew, I'm glad that's over,\" you say. \"Me too,\" replies @GeraldThePixel. \"But look! It's left some eggs behind for us.\" @Edge passes you three eggs, and you vow to raise them in tranquility, surrounded by positive Habits and blue Dailies.",
|
||||
@@ -568,7 +568,7 @@
|
||||
"questPterodactylUnlockText": "Ontgrendelt het kopen van Pterodactyluseieren op de Markt",
|
||||
"questBadgerText": "Stop Badgering Me!",
|
||||
"questBadgerNotes": "Ah, winter in the Taskwoods. The softly falling snow, the branches sparkling with frost, the Flourishing Fairies… still not snoozing?<br><br>“Why are they still awake?” cries @LilithofAlfheim. “If they don't hibernate soon, they'll never have the energy for planting season.”<br><br>As you and @Willow the Witty hurry to investigate, a furry head pops up from the ground. Before you can yell, “It’s the Badgering Bother!” it’s back in its burrow—but not before snatching up the Fairies' “Hibernate” To-Dos and dropping a giant list of pesky tasks in their place!<br><br>“No wonder the fairies aren't resting, if they're constantly being badgered like that!” @plumilla says. Can you chase off this beast and save the Taskwood’s harvest this year?",
|
||||
"questBadgerCompletion": "You finally drive away the the Badgering Bother and hurry into its burrow. At the end of a tunnel, you find its hoard of the faeries’ “Hibernate” To-Dos. The den is otherwise abandoned, except for three eggs that look ready to hatch.",
|
||||
"questBadgerCompletion": "Je jaagt eindelijk de Badgering Bother weg en haast je zijn hol in. Aan het einde van een tunnel vind je de schat van de elven aan, slapende to-do punten. Het hol is verder verlaten, behalve drie eieren die klaar lijken om uit te komen.",
|
||||
"questBadgerBoss": "The Badgering Bother",
|
||||
"questBadgerDropBadgerEgg": "Das (Ei)",
|
||||
"questBadgerUnlockText": "Ontgrendelt het kopen van Bevereieren op de Markt",
|
||||
@@ -657,5 +657,13 @@
|
||||
"questBronzeText": "Strijd van de Bronzen Kever",
|
||||
"mythicalMarvelsNotes": "Bevat 'De Eenhoornkoningin Overtuigen', 'De Vurige Griffioen' en 'Gevaar in de Diepten: Zeeslangen Slag'! Beschikbaar tot 28 Februari.",
|
||||
"mythicalMarvelsText": "Mytische Wonderen Queeste Bundel",
|
||||
"evilSantaAddlNotes": "Wees er bewust van dat Trapper Santa en Find the Cub stapelbare questprestaties hebben, maar een zeldzaam huisdier en een mount geven die maar één keer aan je stal kan worden toegevoegd."
|
||||
"evilSantaAddlNotes": "Wees er bewust van dat Trapper Santa en Find the Cub stapelbare questprestaties hebben, maar een zeldzaam huisdier en een mount geven die maar één keer aan je stal kan worden toegevoegd.",
|
||||
"questRobotDropRobotEgg": "Robot (Ei)",
|
||||
"questRobotCollectSprings": "Veerringen",
|
||||
"questRobotCollectGears": "Tandwielen",
|
||||
"questRobotCollectBolts": "Bouten",
|
||||
"delightfulDinosText": "Verrukkelijke Dino's Queeste Bundel",
|
||||
"rockingReptilesNotes": "Bevat 'The Insta-Gator', 'The Serpent of Distraction' en 'The Veloci-Rapper'. Beschikbaar tot 30 september.",
|
||||
"rockingReptilesText": "Feestende Reptielen Queeste Bundel",
|
||||
"questRobotUnlockText": "Ontgrendelt koopbare robot-eieren op de markt"
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"rebirthOrb": "Heeft een Bol der Hergeboorte gebruikt om opnieuw te beginnen na het bereiken van Niveau <%= level %>.",
|
||||
"rebirthOrb100": "Heeft een Bol der Hergeboorte gebruikt om opnieuw te beginnen na het bereiken van Niveau 100 of hoger.",
|
||||
"rebirthOrbNoLevel": "Heeft een Bol der Hergeboorte gebruikt om opnieuw te beginnen.",
|
||||
"rebirthPop": "Herstart je personage direct als een Niveau 1 Krijger zonder je prestaties, verzamelobjecten en uitrusting te verliezen. Je taken en hun geschiedenis zal hetzelfde blijven maar ze worden gereset naar geel. Je series worden verwijderd behalve bij taken van uitdagingen. Je Goud, Ervaring, Mana en de effecten van al je Vaardigheden gaan verloren. Dit alles gaat direct in werking. Voor meer informatie zie de pagina van de <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Bol der Hergeboorte</a>.",
|
||||
"rebirthPop": "Herstart je personage direct als een Niveau 1 Krijger zonder je prestaties, verzamelobjecten en uitrusting te verliezen. Je taken - behalve taken die horen uitdagingen of onderdeel zijn van een groepsplan - en hun geschiedenis zal hetzelfde blijven maar ze worden gereset naar een gele kleur en de series worden verwijderd. Je Goud, Ervaring, Mana en de effecten van al je Vaardigheden gaan verloren. Dit alles gaat direct in werking. Voor meer informatie zie de pagina van de <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Bol der Hergeboorte</a>.",
|
||||
"rebirthName": "Bol der Hergeboorte",
|
||||
"reborn": "Herboren, maximale Niveau <%= reLevel %>",
|
||||
"confirmReborn": "Weet je het zeker?",
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
"mysterySet301703": "Pauw steampunkset",
|
||||
"mysterySet301704": "Fazant steampunkset",
|
||||
"mysterySetwondercon": "Wondercon",
|
||||
"subUpdateCard": "Creditcard aanpassen",
|
||||
"subUpdateCard": "Creditcard gegevens aanpassen",
|
||||
"subUpdateTitle": "Aanpassen",
|
||||
"subUpdateDescription": "Verander welke creditcard gebruikt wordt.",
|
||||
"notEnoughHourglasses": "Je hebt niet genoeg mystieke zandlopers.",
|
||||
@@ -247,5 +247,6 @@
|
||||
"monthlyMysteryItems": "Maandelijkse mysterie-voorwerpen",
|
||||
"subscribersReceiveBenefits": "Abonnees ontvangen deze handige voordelen!",
|
||||
"subCanceledTitle": "Abonnement opgezegd",
|
||||
"backgroundAlreadyOwned": "Achtergrond al in bezit."
|
||||
"backgroundAlreadyOwned": "Achtergrond al in bezit.",
|
||||
"mysterySet202004": "Machtige Vorsten Set"
|
||||
}
|
||||
|
||||
@@ -513,5 +513,12 @@
|
||||
"backgroundButterflyGardenText": "Jardim de borboleta",
|
||||
"backgroundAmongGiantFlowersNotes": "Divirta-se entre flores gigantes.",
|
||||
"backgroundAmongGiantFlowersText": "Entre flores gigantes",
|
||||
"backgrounds032020": "Conjunto 70: lançado em Março de 2020"
|
||||
"backgrounds032020": "Conjunto 70: lançado em Março de 2020",
|
||||
"backgroundRainyBarnyardNotes": "Encharque-se enquanto faz um passeio por um curral chuvoso.",
|
||||
"backgroundRainyBarnyardText": "Curral chuvoso",
|
||||
"backgroundHeatherFieldNotes": "Aproveite o perfume de um campo de urzes.",
|
||||
"backgroundHeatherFieldText": "Campo de urzes",
|
||||
"backgroundAnimalCloudsNotes": "Exercite sua imaginação encontrando formas de animais nas nuvens.",
|
||||
"backgroundAnimalCloudsText": "Nuvens de animais",
|
||||
"backgrounds042020": "Conjunto 71: lançado em Abril de 2020"
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
"splashySkins": "Peles Aquáticas",
|
||||
"winterySkins": "Vestimentas de Inverno",
|
||||
"rainbowColors": "Cores do Arco-Íris",
|
||||
"shimmerColors": "Cores Pastéis",
|
||||
"shimmerColors": "Cores cintilantes",
|
||||
"hauntedColors": "Cores Assombradas",
|
||||
"winteryColors": "Cores Invernais",
|
||||
"equipment": "Equipamento",
|
||||
|
||||
@@ -355,5 +355,6 @@
|
||||
"hatchingPotionAmber": "Âmbar",
|
||||
"hatchingPotionAurora": "Aurora",
|
||||
"hatchingPotionRuby": "Rubi",
|
||||
"hatchingPotionBirchBark": "Casca de bétula"
|
||||
"hatchingPotionBirchBark": "Casca de bétula",
|
||||
"hatchingPotionDessert": "Confecção"
|
||||
}
|
||||
|
||||
@@ -2066,15 +2066,15 @@
|
||||
"headSpecialSpring2020RogueNotes": "Tão vibrante e valioso que você será tentado a roubá-lo de sua própria cabeça. Aumenta a percepção em <% = per %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020HealerNotes": "Envolva-se em folhas e pétalas de íris macias para enganar os inimigos e subestimar o seu poder de cura. Aumenta a Constituição em <%= con %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020HealerText": "Pétalas de proteção",
|
||||
"armorSpecialSpring2020MageNotes": "Se você não consegue resistir a pisar nos restos das tempestades, esta armadura é para você! Transforme um impulso infantil em uma exibição de arte mística. Aumenta a Inteligência em <%= int%>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020MageNotes": "Se você não consegue resistir a pisar nos restos das tempestades, esta armadura é para você! Transforme um impulso infantil em uma exibição de arte mística. Aumenta a Inteligência em <%= int %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020MageText": "Vestido de redemoinho",
|
||||
"armorSpecialSpring2020WarriorNotes": "Essa carapaça rígida pode mantê-lo seguro até dos ataques mais esmagadores. Aumenta a Constituição em <%= con %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020WarriorText": "Armadura de exoesqueleto",
|
||||
"armorSpecialSpring2020RogueNotes": "A cor do crepúsculo, de uma infinidade de pedras preciosas, do mar mais profundo! Aumenta a Percepção em <%= per %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"armorSpecialSpring2020RogueText": "Armadura ultramarina",
|
||||
"weaponSpecialSpring2020HealerNotes": "Uma íris é linda, mas as folhas são como espadas ... não se deixe enganar pelas flores, esse cajado é duro como aço! Aumenta a Inteligência em <% =int %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"weaponSpecialSpring2020HealerNotes": "Uma íris é linda, mas as folhas são como espadas ... não se deixe enganar pelas flores, esse cajado é duro como aço! Aumenta a Inteligência em <%= int %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"weaponSpecialSpring2020HealerText": "Cajado da espada-lírio",
|
||||
"weaponSpecialSpring2020MageNotes": "Eles continuam caindo em sua cabeça! Mas você nunca os impedirá reclamando. Aumenta a Inteligência em <%= int %> e a Percepção em <%=per %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"weaponSpecialSpring2020MageNotes": "Eles continuam caindo em sua cabeça! Mas você nunca os impedirá reclamando. Aumenta a Inteligência em <%= int %> e a Percepção em <%=per %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"weaponSpecialSpring2020MageText": "Pingos de chuva",
|
||||
"weaponSpecialSpring2020WarriorNotes": "Lutar ou voar, esta asa irá te atender bem! Aumenta a Força em <%= str %>. Equipamento de edição limitada da primavera de 2020.",
|
||||
"weaponSpecialSpring2020WarriorText": "Asa afiada",
|
||||
@@ -2082,6 +2082,12 @@
|
||||
"weaponSpecialSpring2020RogueText": "Lâmina de lazurita",
|
||||
"headAccessoryMystery202004Notes": "Elas tremem um pouco se o perfume das flores passa perto -- use-as para encontrar um belo jardim! Não confere benefícios. Item de assinante, Abril de 2020.",
|
||||
"headAccessoryMystery202004Text": "Antenas do(a) Monarca poderoso(a)",
|
||||
"backMystery202004Notes": "Faça um movimento rápido para o prado florido mais próximo ou migre pelo continente com essas lindas asas! Não confere benefícios. Item de assinante, Abril de 2020.",
|
||||
"backMystery202004Text": "Asas do(a) Monarca poderoso(a)"
|
||||
"backMystery202004Notes": "Faça um movimento rápido para o prado florido mais próximo ou migre pelo continente com essas lindas asas! Não confere benefícios. Item de assinante, Abril de 2020.",
|
||||
"backMystery202004Text": "Asas do(a) Monarca poderoso(a)",
|
||||
"shieldArmoireHobbyHorseNotes": "Monte seu belo cavalo do passatempo em direção às suas justas Recompensas! Aumenta Percepção e Constituição em <%= attrs %>, cada. Armário Encantado: Conjunto do Cavaleiro de papel (Item 2 de 3).",
|
||||
"shieldArmoireHobbyHorseText": "Cavalo do passatempo",
|
||||
"armorArmoireBoxArmorNotes": "Armadura de caixa de papelão: se couber, portanto, você senta... ops, portanto você o usa em batalha, como o cavaleiro ousado que você é! Aumenta Percepção e Constituição em <%= attrs %> , cada. Armário Encantado: Conjunto do Cavaleiro de papel (Item 3 de 3). ",
|
||||
"armorArmoireBoxArmorText": "Armadura de caixa de papelão",
|
||||
"weaponArmoirePaperCutterNotes": "Isso pode não parecer assustador, mas você nunca teve um cortador de papel? Aumenta Força em <%= str %>. Armário Encantado: Conjunto do Cavaleiro de papel (Item 1 de 3).",
|
||||
"weaponArmoirePaperCutterText": "Cortador de papel"
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"innCheckIn": "Descansar na Pousada",
|
||||
"innText": "Você está descansando na Pousada! Durante o check-in, suas Diárias não lhe causarão dano no final do dia, mas elas ainda irão atualizar todos os dias. Fique avisado: se você estiver participando de uma Missão de Chefão, o chefe ainda irá causar dano pelas Diárias perdidas dos membros do seu Grupo, a menos que eles também estejam na Pousada! Além disso, seu próprio dano ao Chefão (ou itens coletados) não será aplicado até que você saia da Pousada.",
|
||||
"innTextBroken": "Você está descansando na Pousada, eu acho ... Enquanto estiver na Pousada, suas Diárias não vão te machucar no final do dia, mas elas ainda irão atualizar todos os dias ... Se você estiver participando de uma Missão de Chefão, o Chefão ainda irá causar dano pelas Diárias perdidas dos membros do seu Grupo, a menos que eles também estejam na Pousada... Além disso, seu próprio dano ao Chefão (ou itens coletados) não será aplicado até você sair da Pousada... estou tão cansado...",
|
||||
"innCheckOutBanner": "Você está atualmente na Pousada. Suas Diárias não realizadas não te causarão dano e também não poderá ser feito progresso em Missões enquanto estiver na Pousada.",
|
||||
"innCheckOutBanner": "Atualmente, você está na Pousada. Enquanto isso, suas Diárias não realizadas não te causarão dano e também não poderá progredir em Missões.",
|
||||
"innCheckOutBannerShort": "Você está descansando na Pousada.",
|
||||
"resumeDamage": "Reativar dano",
|
||||
"helpfulLinks": "Links úteis",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"hatchingPotion": "poção de eclosão",
|
||||
"noHatchingPotions": "Você não possui poções de eclosão.",
|
||||
"inventoryText": "Clique num ovo para ver as poções utilizáveis destacadas em verde e depois clique em uma das poções destacadas para incubar seu mascote. Se nenhuma poção estiver destacada, clique no ovo novamente para desmarcá-lo, e em vez do ovo, clique na poção primeiro para ver os ovos utilizáveis marcados em verde. Você também pode vender itens indesejados para Alexander, o Comerciante.",
|
||||
"haveHatchablePet": "Você tem a Poção de Eclosão <%= potion %> e o ovo <%= egg %> para chocar este mascote! <b>Clique</b> na pata para chocar.",
|
||||
"haveHatchablePet": "Você tem a poção de eclosão <%= potion %> e o ovo <%= egg %> para chocar este mascote! <b>Clique</b>para chocar!",
|
||||
"quickInventory": "Inventário Rápido",
|
||||
"foodText": "comida",
|
||||
"food": "Comida para mascotes e Selas",
|
||||
|
||||
@@ -683,5 +683,14 @@
|
||||
"questRubyCollectAquariusRunes": "Runas do zodíaco de Aquário",
|
||||
"questRubyCompletion": "Com os itens necessários embalados com segurança, os três correm de volta para a Cidade dos Hábitos e se encontram no laboratório da @beffymaroo. \"Excelente trabalho!\", diz @beffymaroo. \"Vocês reuniram os ingredientes para a poção!\"<br><br>@beffymaroo combina cuidadosamente as runas e os rubis para criar uma brilhante poção vermelha e derrama parte dela em dois ovos de mascotes. Ao observar os resultados, vocês percebem que os dois mascotes parecem completamente desinteressados um pelo outro!<br><br>\"Não funcionou?\", pergunta @gully. Mas, antes que alguém pudesse responder, vocês percebem que não é a poção que cria amizade e amor, mas sim uma experiência de trabalhar juntos em direção a um objetivo comum. Por fim, você termina a missão tendo conquistado novos amigos... e alguns mascotes chamativos!",
|
||||
"questRubyNotes": "Os picos normalmente agitados dos vulcões de Stoïkalm permanecem silenciosos na neve. \"Eu posso supor que os caminhantes e observadores estão hibernando?\", diz @gully para você e @Aspiring_Advocate. \"Isso torna nossa busca mais fácil.\"<br><br>Ao chegar ao cume, o vento frio se funde com o vapor vindo da cratera. \"Ali!\", exclama @Aspiring_Advocate , apontando para uma fonte termal. \"Haveria lugar melhor para encontrar dervetidas runas de Aquário e apaixonadas runas de Vênus a não ser aqui, onde gelo e fogo se encontram?\"<br><br>Vocês três correm para a fonte termal. \"De acordo com minhas pesquisas\", diz @Aspiring_Advocate, \"combinar as runas com rubis em formato de irá criar uma poção para incubação que pode promover a amizade e o amor!\"<br><br>Animados com a perspectiva de uma nova descoberta, todos vocês sorriem. \"Certo.\", diz @gully, \"Então vamos começar a pesquisar!\"",
|
||||
"questRubyText": "Relacionamento de rubi"
|
||||
"questRubyText": "Relacionamento de rubi",
|
||||
"questWaffleText": "Tagarelando com o Tolo: café da manhã desastroso!",
|
||||
"questWaffleUnlockText": "Desbloqueia Poções de Eclosão de Confecções para compra no Mercado",
|
||||
"questWaffleDropDessertPotion": "Poção de Eclosão de Confecção",
|
||||
"questWaffleRageEffect": "`Waffle Horrível usa XAROPE DE LAMA!` O Xarope viçosamente pegajoso retarda seus movimentos e feitiços!",
|
||||
"questWaffleRageDescription": "Xarope de lama: essa barra é preenchida quando você não conclui suas Diárias. Quando cheia, o Waffle Horrível irá atrasar o progresso do ataque do grupo!",
|
||||
"questWaffleRageTitle": "Xarope de lama",
|
||||
"questWaffleBoss": "Waffle Horrível",
|
||||
"questWaffleCompletion": "Maltratado e com manteiga, mas triunfante você saboreia a doce vitória enquanto o Waffle Horrível cai em uma poça de gosma pegajosa.<br><br>\"Uau, você realmente criou esse monstro\", diz a Dama Glaceada, impressionada.<br><br>\"Um pedaço de bolo!\", grita o Primeiro de Abril.<br><br>\"Que pena, no entanto\", diz @beffymaroo. \"Parecia bom o suficiente para comer.\"<br><br>O Tolo pega um conjunto de frascos de poções de algum lugar da capa dele, enche-os com os restos de xarope do Waffle e mistura uma pitada de pó brilhante. O líquido cintila em várias cores -- novas Poções de Eclosão! Ele os joga em seus braços. “Toda essa aventura me deu fome. Quem quer se juntar a mim no café da manhã?\"",
|
||||
"questWaffleNotes": "\"Primeiro de Abril!\" causou uma enorme perturbação à Dama Glaceada. \"Você disse que sua brincadeira com tema de sobremesa estava 'acabada e completamente limpa'!\"<br><br>\"Porque realmente está, minha querida\", respondeu o Tolo, intrigado. \"E eu sou o mais honesto dos tolos. O que houve?\"<br><br>\"Há um monstro açucarado gigante se aproximando da Cidade dos Hábitos!\"<br><br>\"Hum\", reflete o Tolo. \"Eu fiz uma incursão a alguns covis pelos reagentes místicos para o meu último evento. Talvez eu tenha atraído alguma atenção indesejada. É a Serpente Sacarina? A Tortaruga? Tiramisù Rex?\"<br><br>\"Não! É algum tipo de... Waffle Horrível!\"<br><br>\"Oh. Essa e nova! Talvez isso tenha sido gerado a partir de toda a energia do ambiente das travessuras.\" Ele se vira para você e @beffymaroo com um sorriso torto. \"Suponho que você não esteja disponível para heroísmo?\""
|
||||
}
|
||||
|
||||
@@ -1,10 +1,79 @@
|
||||
{
|
||||
"achievement": "Achievement",
|
||||
"achievement": "Realizare",
|
||||
"share": "Distribuie",
|
||||
"onwards": "Înainte!",
|
||||
"levelup": "Prin atingerea scopurilor în viață, ai trecut la următorul nivel și viața îți este complet refăcută!",
|
||||
"reachedLevel": "Ai Atins Nivelul <%= level %>",
|
||||
"achievementLostMasterclasser": "Săvârșitorul de expediții: Seria Masterclass",
|
||||
"achievementLostMasterclasserText": "Ai terminat toate cele șaisprezece expediții în Seria de Expediții Masterclass și ai rezolvat misterul Masterclasser-ului Pierdut!",
|
||||
"achievementJustAddWater": "Doar adaugă apă"
|
||||
"achievementJustAddWater": "Doar adaugă apă",
|
||||
"onboardingProgress": "<%= percentage %>% progres",
|
||||
"letsGetStarted": "Let's get started!",
|
||||
"hideAchievements": "Hide <%= category %>",
|
||||
"foundNewItems": "You found new items!",
|
||||
"foundNewItemsExplanation": "Completing tasks gives you a chance to find items, like Eggs, Hatching Potions, and Pet Food.",
|
||||
"foundNewItemsCTA": "Head to your Inventory and try combining your new hatching potion and egg!",
|
||||
"achievementLostMasterclasserModalText": "You completed all sixteen quests in the Masterclasser Quest Series and solved the mystery of the Lost Masterclasser!",
|
||||
"achievementMindOverMatter": "Mind Over Matter",
|
||||
"achievementMindOverMatterText": "Has completed Rock, Slime, and Yarn pet quests.",
|
||||
"achievementMindOverMatterModalText": "You completed the Rock, Slime, and Yarn pet quests!",
|
||||
"achievementJustAddWaterText": "Has completed Octopus, Seahorse, Cuttlefish, Whale, Turtle, Nudibranch, Sea Serpent, and Dolphin pet quests.",
|
||||
"achievementJustAddWaterModalText": "You completed the Octopus, Seahorse, Cuttlefish, Whale, Turtle, Nudibranch, Sea Serpent, and Dolphin pet quests!",
|
||||
"achievementBackToBasics": "Back to Basics",
|
||||
"achievementBackToBasicsText": "Has collected all Base Pets.",
|
||||
"achievementBackToBasicsModalText": "You collected all the Base Pets!",
|
||||
"achievementAllYourBase": "All Your Base",
|
||||
"achievementAllYourBaseText": "Has tamed all Base Mounts.",
|
||||
"achievementAllYourBaseModalText": "You tamed all the Base Mounts!",
|
||||
"achievementDustDevil": "Dust Devil",
|
||||
"achievementDustDevilText": "Has collected all Desert Pets.",
|
||||
"achievementDustDevilModalText": "You collected all the Desert Pets!",
|
||||
"achievementPartyUp": "You teamed up with a party member!",
|
||||
"achievementAridAuthority": "Arid Authority",
|
||||
"achievementAridAuthorityText": "Has tamed all Desert Mounts.",
|
||||
"achievementAridAuthorityModalText": "You tamed all the Desert Mounts!",
|
||||
"achievementKickstarter2019": "Pin Kickstarter Backer",
|
||||
"achievementKickstarter2019Text": "Backed the 2019 Pin Kickstarter Project",
|
||||
"achievementPartyOn": "Your party grew to 4 members!",
|
||||
"achievementMonsterMagus": "Monster Magus",
|
||||
"achievementMonsterMagusText": "Has collected all Zombie Pets.",
|
||||
"achievementMonsterMagusModalText": "You collected all the Zombie Pets!",
|
||||
"achievementUndeadUndertaker": "Undead Undertaker",
|
||||
"achievementUndeadUndertakerText": "Has tamed all Zombie Mounts.",
|
||||
"achievementUndeadUndertakerModalText": "You tamed all the Zombie Mounts!",
|
||||
"achievementCreatedTask": "Create a Task",
|
||||
"achievementCreatedTaskText": "Created their first task.",
|
||||
"achievementCreatedTaskModalText": "Add a task for something you would like to accomplish this week",
|
||||
"achievementCompletedTask": "Complete a Task",
|
||||
"achievementCompletedTaskText": "Completed their first task.",
|
||||
"achievementCompletedTaskModalText": "Check off any of your tasks to earn rewards",
|
||||
"achievementHatchedPet": "Hatch a Pet",
|
||||
"achievementHatchedPetText": "Hatched their first pet.",
|
||||
"achievementHatchedPetModalText": "Head over to your inventory and try combining a hatching potion and an egg",
|
||||
"achievementFedPet": "Feed a Pet",
|
||||
"achievementFedPetText": "Fed their first pet.",
|
||||
"achievementFedPetModalText": "There are many different types of food, but pets can be picky",
|
||||
"achievementPurchasedEquipment": "Purchase Equipment",
|
||||
"achievementPurchasedEquipmentText": "Purchased their first piece of equipment.",
|
||||
"achievementPurchasedEquipmentModalText": "Equipment is a way to customize your avatar and improve your stats",
|
||||
"achievementPrimedForPainting": "Primed for Painting",
|
||||
"achievementPrimedForPaintingText": "Has collected all White Pets.",
|
||||
"achievementPrimedForPaintingModalText": "You collected all the White Pets!",
|
||||
"achievementPearlyPro": "Pearly Pro",
|
||||
"achievementPearlyProText": "Has tamed all White Mounts.",
|
||||
"achievementPearlyProModalText": "You tamed all the White Mounts!",
|
||||
"achievementTickledPink": "Tickled Pink",
|
||||
"achievementTickledPinkText": "Has collected all Cotton Candy Pink Pets.",
|
||||
"achievementTickledPinkModalText": "You collected all the Cotton Candy Pink Pets!",
|
||||
"achievementRosyOutlook": "Rosy Outlook",
|
||||
"achievementRosyOutlookText": "Has tamed all Cotton Candy Pink Mounts.",
|
||||
"achievementRosyOutlookModalText": "You tamed all the Cotton Candy Pink Mounts!",
|
||||
"achievementBugBonanza": "Bug Bonanza",
|
||||
"achievementBugBonanzaText": "Has completed Beetle, Butterfly, Snail, and Spider pet quests.",
|
||||
"achievementBugBonanzaModalText": "You completed the Beetle, Butterfly, Snail, and Spider pet quests!",
|
||||
"showAllAchievements": "Show All <%= category %>",
|
||||
"onboardingCompleteDesc": "You earned <strong>5 achievements</strong> and <strong class=\"gold-amount\">100</strong> gold for completing the list.",
|
||||
"earnedAchievement": "You earned an achievement!",
|
||||
"viewAchievements": "View Achievements",
|
||||
"gettingStartedDesc": "Let’s create a task, complete it, then check out your rewards. You’ll earn <strong>5 achievements</strong> and <strong class=\"gold-amount\">100 gold</strong> once you’re done!"
|
||||
}
|
||||
|
||||
@@ -409,5 +409,116 @@
|
||||
"backgroundArchaeologicalDigNotes": "Unearth secrets of the ancient past at an Archaeological Dig.",
|
||||
"backgroundScribesWorkshopText": "Scribe's Workshop",
|
||||
"backgroundScribesWorkshopNotes": "Write your next great scroll in a Scribe's Workshop.",
|
||||
"backgroundMedievalKitchenText": "Bucătărie medievală"
|
||||
"backgroundMedievalKitchenText": "Bucătărie medievală",
|
||||
"backgroundClocktowerText": "Clock Tower",
|
||||
"backgroundSteamworksNotes": "Build mighty contraptions of vapor and steel in a Steamworks.",
|
||||
"backgroundSteamworksText": "Steamworks",
|
||||
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
|
||||
"backgroundAirshipText": "Airship",
|
||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||
"backgroundRainyBarnyardNotes": "Take a soggy splashy stroll through a Rainy Barnyard.",
|
||||
"backgroundRainyBarnyardText": "Rainy Barnyard",
|
||||
"backgroundHeatherFieldNotes": "Enjoy the aroma of a Field of Heather.",
|
||||
"backgroundHeatherFieldText": "Heather Field",
|
||||
"backgroundAnimalCloudsNotes": "Exercise your imagination finding Animal shapes in the Clouds.",
|
||||
"backgroundAnimalCloudsText": "Animal Clouds",
|
||||
"backgrounds042020": "SET 71: Released April 2020",
|
||||
"backgroundSucculentGardenNotes": "Take in the arid beauty of a Succulent Garden.",
|
||||
"backgroundSucculentGardenText": "Succulent Garden",
|
||||
"backgroundButterflyGardenNotes": "Party with pollinators in a Butterfly Garden.",
|
||||
"backgroundButterflyGardenText": "Butterfly Garden",
|
||||
"backgroundAmongGiantFlowersNotes": "Dally on and Among Giant Flowers.",
|
||||
"backgroundAmongGiantFlowersText": "Among Giant Flowers",
|
||||
"backgrounds032020": "SET 70: Released March 2020",
|
||||
"backgroundTeaPartyNotes": "Partake in a fancy Tea Party.",
|
||||
"backgroundTeaPartyText": "Tea Party",
|
||||
"backgroundHallOfHeroesNotes": "Approach the Hall of Heroes with appreciation and reverence.",
|
||||
"backgroundHallOfHeroesText": "Hall of Heroes",
|
||||
"backgroundElegantBallroomNotes": "Dance the night away in an Elegant Ballroom.",
|
||||
"backgroundElegantBallroomText": "Elegant Ballroom",
|
||||
"backgrounds022020": "SET 69: Released February 2020",
|
||||
"backgroundSnowglobeNotes": "Shake up a Snowglobe and take your place in a microcosm of a winter landscape.",
|
||||
"backgroundSnowglobeText": "Snowglobe",
|
||||
"backgroundDesertWithSnowNotes": "Witness the rare and quiet beauty of a Snowy Desert.",
|
||||
"backgroundDesertWithSnowText": "Snowy Desert",
|
||||
"backgroundBirthdayPartyNotes": "Celebrate the Birthday Party of your favorite Habitican.",
|
||||
"backgroundBirthdayPartyText": "Birthday Party",
|
||||
"backgrounds012020": "SET 68: Released January 2020",
|
||||
"backgroundWinterNocturneNotes": "Bask in the starlight of a Winter Nocturne.",
|
||||
"backgroundWinterNocturneText": "Winter Nocturne",
|
||||
"backgroundHolidayWreathNotes": "Festoon your avatar with a fragrant Holiday Wreath.",
|
||||
"backgroundHolidayWreathText": "Holiday Wreath",
|
||||
"backgroundHolidayMarketNotes": "Find the perfect gifts and decorations at a Holiday Market.",
|
||||
"backgroundHolidayMarketText": "Holiday Market",
|
||||
"backgrounds122019": "SET 67: Released December 2019",
|
||||
"backgroundPotionShopNotes": "Find an elixir for any ailment at a Potion Shop.",
|
||||
"backgroundPotionShopText": "Potion Shop",
|
||||
"backgroundFlyingInAThunderstormNotes": "Chase a Tumultuous Thunderstorm as closely as you dare.",
|
||||
"backgroundFlyingInAThunderstormText": "Tumultuous Thunderstorm",
|
||||
"backgroundFarmersMarketNotes": "Shop for the freshest of foods at a Farmer's Market.",
|
||||
"backgroundFarmersMarketText": "Farmer's Market",
|
||||
"backgrounds112019": "SET 66: Released November 2019",
|
||||
"backgroundMonsterMakersWorkshopNotes": "Experiment with discredited sciences in a Monster Maker's Workshop.",
|
||||
"backgroundMonsterMakersWorkshopText": "Monster Maker's Workshop",
|
||||
"backgroundPumpkinCarriageNotes": "Ride in an enchanted Pumpkin Carriage before the clock strikes midnight.",
|
||||
"backgroundPumpkinCarriageText": "Pumpkin Carriage",
|
||||
"backgroundFoggyMoorNotes": "Watch your step traversing a Foggy Moor.",
|
||||
"backgroundFoggyMoorText": "Foggy Moor",
|
||||
"backgrounds092019": "SET 64: Released September 2019",
|
||||
"backgrounds022019": "SET 57: Released February 2019",
|
||||
"backgroundClocktowerNotes": "Situate your secret lair behind the face of a Clock Tower.",
|
||||
"backgrounds102019": "SET 65: Released October 2019",
|
||||
"backgroundInAClassroomNotes": "Absorb knowledge from your mentors in a Classroom.",
|
||||
"backgroundInAClassroomText": "Classroom",
|
||||
"backgroundInAnAncientTombNotes": "Brave the mysteries of an Ancient Tomb.",
|
||||
"backgroundInAnAncientTombText": "Ancient Tomb",
|
||||
"backgroundAutumnFlowerGardenNotes": "Take in the warmth of an Autumn Flower Garden.",
|
||||
"backgroundAutumnFlowerGardenText": "Autumn Flower Garden",
|
||||
"backgroundTreehouseNotes": "Hang out in an arboreal hideaway all to yourself, in your very own Treehouse.",
|
||||
"backgroundTreehouseText": "Treehouse",
|
||||
"backgroundGiantDandelionsNotes": "Dally among Giant Dandelions.",
|
||||
"backgroundGiantDandelionsText": "Giant Dandelions",
|
||||
"backgroundAmidAncientRuinsNotes": "Stand in reverence of the mysterious past Amid Ancient Ruins.",
|
||||
"backgroundAmidAncientRuinsText": "Amid Ancient Ruins",
|
||||
"backgrounds082019": "SET 63: Released August 2019",
|
||||
"backgroundAmongGiantAnemonesNotes": "Explore reef life, protected from predators Among Giant Anemones.",
|
||||
"backgroundAmongGiantAnemonesText": "Among Giant Anemones",
|
||||
"backgroundFlyingOverTropicalIslandsNotes": "Let the view take your breath away as you Fly over Tropical Islands.",
|
||||
"backgroundFlyingOverTropicalIslandsText": "Flying over Tropical Islands",
|
||||
"backgroundLakeWithFloatingLanternsNotes": "Stargaze from the festival atmosphere of a Lake with Floating Lanterns.",
|
||||
"backgroundLakeWithFloatingLanternsText": "Lake with Floating Lanterns",
|
||||
"backgrounds072019": "SET 62: Released July 2019",
|
||||
"backgroundUnderwaterVentsNotes": "Take a deep dive down, down to the Underwater Vents.",
|
||||
"backgroundUnderwaterVentsText": "Underwater Vents",
|
||||
"backgroundSeasideCliffsNotes": "Stand on a beach with the beauty of Seaside Cliffs above.",
|
||||
"backgroundSeasideCliffsText": "Seaside Cliffs",
|
||||
"backgroundSchoolOfFishNotes": "Swim among a School of Fish.",
|
||||
"backgroundSchoolOfFishText": "School of Fish",
|
||||
"backgrounds062019": "SET 61: Released June 2019",
|
||||
"backgroundRainbowMeadowNotes": "Find the pot of gold where a Rainbow ends in a Meadow.",
|
||||
"backgroundRainbowMeadowText": "Rainbow Meadow",
|
||||
"backgroundParkWithStatueNotes": "Follow a flower-lined path through a Park with a Statue.",
|
||||
"backgroundParkWithStatueText": "Park with Statue",
|
||||
"backgroundDojoNotes": "Learn new moves in a Dojo.",
|
||||
"backgroundDojoText": "Dojo",
|
||||
"backgrounds052019": "SET 60: Released May 2019",
|
||||
"backgroundBlossomingDesertNotes": "Witness a rare superbloom in the Blossoming Desert.",
|
||||
"backgroundBlossomingDesertText": "Blossoming Desert",
|
||||
"backgroundHalflingsHouseNotes": "Visit a charming Halfling's House.",
|
||||
"backgroundHalflingsHouseText": "Halfling's House",
|
||||
"backgroundBirchForestNotes": "Dally in a peaceful Birch Forest.",
|
||||
"backgroundBirchForestText": "Birch Forest",
|
||||
"backgrounds042019": "SET 59: Released April 2019",
|
||||
"backgroundFlowerMarketNotes": "Find the perfect colors for bouquet or garden in a Flower Market.",
|
||||
"backgroundFlowerMarketText": "Flower Market",
|
||||
"backgroundFieldWithColoredEggsNotes": "Hunt for springtime treasure in a Field with Colored Eggs.",
|
||||
"backgroundFieldWithColoredEggsText": "Field with Colored Eggs",
|
||||
"backgroundDuckPondNotes": "Feed aquatic birds at the Duck Pond.",
|
||||
"backgroundDuckPondText": "Duck Pond",
|
||||
"backgrounds032019": "SET 58: Released March 2019",
|
||||
"backgroundValentinesDayFeastingHallNotes": "Feel the love in a Valentine's Day Feasting Hall.",
|
||||
"backgroundValentinesDayFeastingHallText": "Valentine's Day Feasting Hall",
|
||||
"backgroundOldFashionedBakeryNotes": "Enjoy delicious smells outside an Old-Fashioned Bakery.",
|
||||
"backgroundOldFashionedBakeryText": "Old-Fashioned Bakery",
|
||||
"backgroundMedievalKitchenNotes": "Cook up a storm in a Medieval Kitchen."
|
||||
}
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
"noPhoto": "Acest Habitican nu și-a adăugat o poză.",
|
||||
"other": "Altele",
|
||||
"fullName": "Numele complet",
|
||||
"displayName": "Display name",
|
||||
"changeDisplayName": "Change Display Name",
|
||||
"newDisplayName": "New Display Name",
|
||||
"displayName": "Nume Afișat",
|
||||
"changeDisplayName": "Schimbă Numele Afișat",
|
||||
"newDisplayName": "Nume Afișat Nou",
|
||||
"displayPhoto": "Poză",
|
||||
"displayBlurb": "Prezentare",
|
||||
"displayBlurbPlaceholder": "Te rugăm să te prezinți",
|
||||
"photoUrl": "URL poză",
|
||||
"imageUrl": "URL imagine",
|
||||
"inventory": "Inventar",
|
||||
"social": "Social",
|
||||
"social": "Rețele de Socializare",
|
||||
"lvl": "Nivel",
|
||||
"buffed": "Sporuri",
|
||||
"bodyBody": "Corp",
|
||||
@@ -24,7 +24,7 @@
|
||||
"size": "Dimensiune",
|
||||
"bodySlim": "Suplu(ă)",
|
||||
"bodyBroad": "Trupeș(ă)",
|
||||
"unlockSet": "Deblochează Set-ul - <%= cost %>",
|
||||
"unlockSet": "Deblochează Setul - <%= cost %>",
|
||||
"locked": "încuiat",
|
||||
"shirts": "Tricouri",
|
||||
"shirt": "Tricou",
|
||||
@@ -47,7 +47,7 @@
|
||||
"beard": "Barbă",
|
||||
"mustache": "Mustață",
|
||||
"flower": "Floare",
|
||||
"accent": "Accent",
|
||||
"accent": "Accesorii",
|
||||
"headband": "Bentiță",
|
||||
"wheelchair": "Scaun cu rotile",
|
||||
"extra": "Altele",
|
||||
@@ -75,12 +75,12 @@
|
||||
"costumeText": "Dacă preferi aspectul altui echipament în loc de ce ai echipat, bifează cutiuța \"Poartă Costum\" ca să îmbraci la vedere un costum în timp ce porți îmbrăcămintea de luptă pe dedesubt.",
|
||||
"useCostume": "Poartă costum",
|
||||
"useCostumeInfo1": "Apasă pe \"Poartă costum\" pentru a echipa echipamentul fără să-ți schimbi Statisticile pe care ți le dă Echipamentul de Luptă! Asta înseamă că poți alege echipamentul cu cele mai bune Statistici pe stânga, și îți poți îmbrăca Avatarul cu alt echipament pe dreapta.",
|
||||
"useCostumeInfo2": "Atunci când dai click pe ”Folosește Costum” avatarul tău va arătat destul de basic... dar nu te îngrijora! Dacă te uiți în stânga, o să vezi că Echipamentul de Luptă este în continuare îmbrăcat. Mai departe, poți să te îmbraci frumos! Orice echipezi în dreapta nu îți va afecta Statisticile, dar te va face să arăți super. Încearcă diferite combinații, mixând seturi și asortând Costumul cu animalele de companie, de călărit, și cu fundalurile. <br><br>Ai alte întrebări? Uită-te pe <a href=\"http://habitica.fandom.com/wiki/Equipment#Costumes\">Pagina Costumelor</a> pe wiki. Ți-ai găsit combinația perfectă? Laudă-te cu ea în <a href=\"/groups/guild/3884eeaa-2d6a-45e8-a279-ada6de9709e1\">Breasla Costume Carnival</a> sau în Tavernă!",
|
||||
"useCostumeInfo2": "Atunci când dai click pe ”Folosește Costum” avatarul tău va arătat destul de basic... dar nu te îngrijora! Dacă te uiți în stânga, o să vezi că Echipamentul de Luptă este în continuare îmbrăcat. Mai departe, poți să te îmbraci frumos! Orice echipezi în dreapta nu îți va afecta Statisticile, dar te va face să arăți super. Încearcă diferite combinații, mixând seturi și asortând Costumul cu animalele de companie, de călărit, și cu fundalurile. <br><br>Ai alte întrebări? Uită-te pe <a href=\"http://habitica.fandom.com/wiki/Equipment#Costumes\">Pagina Costumelor</a> din wiki. Ți-ai găsit combinația perfectă? Laudă-te cu ea în <a href=\"/groups/guild/3884eeaa-2d6a-45e8-a279-ada6de9709e1\">Breasla Costume Carnival</a> sau în Tavernă!",
|
||||
"costumePopoverText": "Selectează ”Utilizează Costum” pentru a-ți echipa avatarul cu articole, fără a-ți lăsa Statusul să fie afectat de către Echipamentul de Luptă! Asta înseamnă că-ți poți îmbrăca avatarul în orice echipament dorești, păstrând în același timp Echipamentul de Luptă echipat.",
|
||||
"autoEquipPopoverText": "Selectează opțiunea de a îmbrăca echipament automat la cumpărarea acestuia.",
|
||||
"autoEquipPopoverText": "Selectează această opțiune pentru a îmbrăca automat echipamentul la cumpărarea acestuia.",
|
||||
"costumeDisabled": "Ți-ai dezactivat costumul.",
|
||||
"gearAchievement": "Ai câștigat trofeul „Armura Maximală” pentru că ai continuat să modernizezi până ai ajuns la setul maxim pentru o clasă! Ai obținut următoarele seturi complete:",
|
||||
"gearAchievementNotification": "You have earned the \"Ultimate Gear\" Achievement for upgrading to the maximum gear set for a class!",
|
||||
"gearAchievementNotification": "Ați obținut Realizarea „Ultimate Gear” pentru actualizarea la maxim a setului de echipamentul pentru o clasă!",
|
||||
"moreGearAchievements": "Pentru a obține mai multe insigne de Echipament Maximal, schimbă clasele din <a href='/user/settings/site' target='_blank'>Setări > pagina Site-ului</a> și cumpără echipament pentru noua ta clasă!",
|
||||
"armoireUnlocked": "Pentru mai mult echipament, verifică <strong>Cufărul Fermecat!</strong> Dă click pe Recompensa din Cufărul Fermecat pentru o șansă la un Echipament special random! E de asemenea posibil să primești aleator XP sau hrană.",
|
||||
"ultimGearName": "Echipament Maximal - <%= ultClass %>",
|
||||
@@ -104,7 +104,7 @@
|
||||
"allocatePerPop": "Adaugă un Punct la Percepție",
|
||||
"allocateInt": "Puncte atribuite la INT:",
|
||||
"allocateIntPop": "Adaugă un Punct la Inteligență",
|
||||
"noMoreAllocate": "Acum că ai atins nivelul 100, nu vei mai primi Puncte de Status suplimentare. Poți continua să îți crești nivelul, sau să începi o nouă aventură de la nivelul 1, folosind <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Globul Renașterii</a>, acum disponibil gratis în Târg.",
|
||||
"noMoreAllocate": "Acum că ai atins nivelul 100, nu vei mai primi Puncte de Status suplimentare. Poți continua să îți crești nivelul, sau să începi o nouă aventură de la nivelul 1, folosind <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Globul Renașterii</a>!",
|
||||
"stats": "Status",
|
||||
"achievs": "Realizari",
|
||||
"strength": "Forță",
|
||||
@@ -156,7 +156,7 @@
|
||||
"optOutOfClasses": "Refuză",
|
||||
"optOutOfPMs": "Refuză",
|
||||
"chooseClass": "Alege-ți Clasa",
|
||||
"chooseClassLearnMarkdown": "[Află mai multe despre sistemul de clase Habitica](http://habitica.fandom.com/wiki/Class_System)",
|
||||
"chooseClassLearnMarkdown": "[Află mai multe despre sistemul de clase Habitica](https://habitica.fandom.com/wiki/Class_System)",
|
||||
"optOutOfClassesText": "Nu ai chef de clase? Vrei să alegi mai târziu? Refuză - vei fi un războinic fără abilități speciale. Poți citi despre sistemul de clase mai târziu pe wiki și poți activa clasele oricând din Icon-ul de Utilizator > Setări.",
|
||||
"selectClass": "Selectează <%= heroClass %>",
|
||||
"select": "Alege",
|
||||
@@ -184,21 +184,21 @@
|
||||
"lostMana": "Ai folosit niște Mana",
|
||||
"lostHealth": "Ai pierdut niște Sănătate",
|
||||
"lostExperience": "Ai pierdut niște Experiență",
|
||||
"displayNameDescription1": "This is what appears in messages you post in the Tavern, guilds, and party chat, along with what is displayed on your avatar. To change it, click the Edit button above. If instead you want to change your username, go to",
|
||||
"displayNameDescription2": "Settings->Site",
|
||||
"displayNameDescription1": "Acest lucru apare în mesajele pe care le postezi în conversațiile din Taclale la Cârciumă, Ghilde și Echipă, împreună cu ceea ce este afișat pe avatarul tău. Pentru a-l schimba, dă clic pe butonul Editați de mai sus. Dacă în schimb vrei să îți schimbi numele de utilizator, accesează",
|
||||
"displayNameDescription2": "Setări->Site",
|
||||
"displayNameDescription3": "și uită-te la secțiunea de Înregistrare.",
|
||||
"unequipBattleGear": "Unequip Battle Gear",
|
||||
"unequipCostume": "Unequip Costume",
|
||||
"unequipBattleGear": "Dezechipează Echipamentul de Luptă",
|
||||
"unequipCostume": "Dezechipează Costumul",
|
||||
"equip": "Echipează",
|
||||
"unequip": "Dezechipează",
|
||||
"unequipPetMountBackground": "Unequip Pet, Mount, Background",
|
||||
"animalSkins": "Animal Skins",
|
||||
"chooseClassHeading": "Choose your Class! Or opt out to choose later.",
|
||||
"warriorWiki": "<a href='http://habitica.fandom.com/wiki/Warrior' target='_blank'>Warrior</a>",
|
||||
"mageWiki": "<a href='http://habitica.fandom.com/wiki/Mage' target='_blank'>Mage</a>",
|
||||
"rogueWiki": "<a href='http://habitica.fandom.com/wiki/Rogue' target='_blank'>Rogue</a>",
|
||||
"healerWiki": "<a href='http://habitica.fandom.com/wiki/Healer' target='_blank'>Healer</a>",
|
||||
"chooseClassLearn": "<a href='http://habitica.fandom.com/wiki/Class_System' target='_blank'>Learn more about classes</a>",
|
||||
"unequipPetMountBackground": "Dezechipează Animalul de Companie, Animalul de Călărit, Fundalul",
|
||||
"animalSkins": "Piele de Animal",
|
||||
"chooseClassHeading": "Alege-ți Clasa! Sau optează să alegi mai târziu.",
|
||||
"warriorWiki": "<a href='http://habitica.fandom.com/wiki/Warrior' target='_blank'>Războinic</a>",
|
||||
"mageWiki": "<a href='http://habitica.fandom.com/wiki/Mage' target='_blank'>Vrăjitor</a>",
|
||||
"rogueWiki": "<a href='http://habitica.fandom.com/wiki/Rogue' target='_blank'>Bandit</a>",
|
||||
"healerWiki": "<a href='http://habitica.fandom.com/wiki/Healer' target='_blank'>Vindecător</a>",
|
||||
"chooseClassLearn": "<a href='http://habitica.fandom.com/wiki/Class_System' target='_blank'>Află mai mult despre clase</a>",
|
||||
"str": "STR",
|
||||
"con": "CON",
|
||||
"per": "PER",
|
||||
@@ -207,7 +207,7 @@
|
||||
"hideQuickAllocation": "Ascunde Alocarea Punctelor",
|
||||
"quickAllocationLevelPopover": "Fiecare nivel îți oferă un punct pe care-l poți repartiza unui atribut la alegere. Poți face acest lucru manual, sau poți lăsa jocul să decidă pentru tine folosind una din opțiunile de Alocare Automată, aflate în Icon-ul Utilizatorului > Stats.",
|
||||
"notEnoughAttrPoints": "Nu ai suficiente Puncte.",
|
||||
"classNotSelected": "You must select Class before you can assign Stat Points.",
|
||||
"classNotSelected": "Ca să poți atribui Punctele, trebuie mai întâi să selectezi o Clasă.",
|
||||
"style": "Stil",
|
||||
"facialhair": "Facial",
|
||||
"photo": "Poză",
|
||||
@@ -224,5 +224,9 @@
|
||||
"mainHand": "Mână dominantă",
|
||||
"offHand": "Mână nedominantă",
|
||||
"statPoints": "Stat Points",
|
||||
"pts": "pcte"
|
||||
"pts": "pcte",
|
||||
"purchasePetItemConfirm": "Această achiziție ar depăși numărul de articole de care aveți nevoie pentru a ecloza toate animalele de companie <% = itemText%> posibile. Esti sigur?",
|
||||
"chatCastSpellUser": "<%= username %> a folosit<%= spell %> pe <%= target %>.",
|
||||
"chatCastSpellParty": "<%= username %> a folosit <%= spell %> pentru echipă.",
|
||||
"purchaseForGold": "Cumpără pentru <%= cost %> Aur?"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"iAcceptCommunityGuidelines": "Accept să respect regulile comunității",
|
||||
"iAcceptCommunityGuidelines": "Accept să respect Regulile Comunității",
|
||||
"tavernCommunityGuidelinesPlaceholder": "Memento prietenesc: acesta este un chat pentru toate vârstele, așa că rugămintea este de a menține conținutul și limbajul adecvate! Consultă Regulile Comunității din bara laterală dacă ai întrebări.",
|
||||
"lastUpdated": "Ultimul update:",
|
||||
"commGuideHeadingWelcome": "Bine ai venit în Habitica!",
|
||||
@@ -8,7 +8,7 @@
|
||||
"commGuidePara003": "Aceste reguli se aplică tuturor spațiilor sociale pe care le folosim, incluzând (dar fără a fi limitat la) Trello, GitHub, Transifex și Wikia (cunoscută și ca wiki). Câteodată pot apărea situații neprevăzute, precum o nouă sursă de conflict sau un necromant. Când se întâmplă acest lucru, moderatorii pot răspunde prin editarea acestor reguli pentru a menține comunitatea la adăpost de noi amenințări. Nu te teme: vei fi alertat printr-un anunț de la Bailey dacă regulile se schimbă.",
|
||||
"commGuidePara004": "Acum pregătiți-vă carnetele de notițe și penițele și să începem!",
|
||||
"commGuideHeadingInteractions": "Interacțiuni în Habitica",
|
||||
"commGuidePara015": "Habitica are două tipuri de spații sociale: publice și private. Spațiile publice includ Taverna, Breslele Publice, GitHub, Trello și Wiki. Spațiile private sunt Breslele Private, chatul Cetei și Mesajele Private. Toate Numele Afișate trebuie să fie conforme cu regulile spațiilor publice. Pentru a-ți schimba numele afișat trebuie să mergi pe site la Utilizator > Profil și să dai click pe butonul ”Edit”.",
|
||||
"commGuidePara015": "Habitica are două tipuri de spații sociale: publice și private. Spațiile publice includ Taverna, Breslele Publice, GitHub, Trello și Wiki. Spațiile private sunt GHildele Private, chatul Echipei și Mesajele Private. Toate Numele Afișate trebuie să fie conforme cu regulile spațiilor publice. Pentru a-ți schimba numele afișat trebuie să mergi pe site la Utilizator > Profil și să dai click pe butonul „Edit”.",
|
||||
"commGuidePara016": "Când navighezi prin spațiile publice din Habitica, sunt anumite reguli generale pentru a păstra pe toată lumea în siguranță și fericită. Acestea ar trebui să fie simple pentru aventurieri ca tine!",
|
||||
"commGuideList02A": "<strong>Respectați-vă unii pe ceilalți</strong>. Fii politicos, îngăduitor, prietenos și de ajutor. Nu uita: Habiticanii vin din toate mediile și au experiențe extrem de divergente. Asta este parte din ce face Habitica atât de tare! Construirea unei comunități înseamnă respectarea și celebrarea diferențelor dintre noi, la fel ca a similarităților. Iată câteva metode simple de a îi respecta pe ceilalți:",
|
||||
"commGuideList02B": "<strong>Respectă toți <a href='/static/terms' target='_blank'>Termenii și Condițiile</a></strong>.",
|
||||
@@ -18,17 +18,17 @@
|
||||
"commGuideList02F": "<strong>Evită discuții extentensive pe subiecte limită în Tavernă și unde ar fi considerate off-topic</strong>. Dacă simți că cineva a spus ceva nepoliticos sau jignitor, nu le da apă la moară. Dacă cineva menționează ceva care este permis de Termeni și Condiții, dar care este jignitor pentru tine, e politicos să spui asta. Dacă este împotriva Termenilor și Condițiilor, ar trebui să raportezi postarea și să lași un moderator să răspundă. Dacă ai dubii, raportează postarea.",
|
||||
"commGuideList02G": "<strong>Supune-te imediat cerințelor unui Moderator</strong>. Asta ar putea include, dar nu este limitat la, solicitarea de a-ți limita numărul de postări într-un anumit spațiu, editarea informațiilor din profil pentru a elimina conținutul nepotrivit, sau cerința de a schimba locația discuțiilor într-un loc mai potrivit, etc.",
|
||||
"commGuideList02H": "<strong>Reflectă un timp în loc să răspunzi la cald</strong> dacă o persoană îți spune că un lucru pe care l-ai spus sau făcut îi face incomfortabili. Multă forță este necesară pentru a putea să-ți ceri scuze cu sinceritate cuiva. Dacă simți că felul în care au răspuns ei a fost nepotrivit, contactează un moderator în loc să îi confrunți public.",
|
||||
"commGuideList02I": "<strong>Conversațiile divizive/provocatoare ar trebui raportate moderatorilor</strong> însemnându-le sau folosind <a href='http://contact.habitica.com/' target='_blank'>Formularul de Contact al Moderatorilor</a>. Dacă simți că o conversație este înfierbântată, prea emoțională sau supărătoare, oprește-te din a răspunde. În schimb, raportează postarea și lasă-ne pe noi să ne ocupăm. Moderatrorii vor răspunde pe cât de rapid posibil. Este treaba noastră să te menținem în singuranță. Dacă simți că este necesar mai mult context, poți raporta problema folosind <a href='http://contact.habitica.com/' target='_blank'>Formularul de Contact al Moderatorilor</a>.",
|
||||
"commGuideList02I": "<strong>Conversațiile divizive/provocatoare ar trebui raportate moderatorilor</strong> însemnându-le sau folosind <a href='https://contact.habitica.com/' target='_blank'>Formularul de Contact al Moderatorilor</a>. Dacă simți că o conversație este înfierbântată, prea emoțională sau supărătoare, oprește-te din a răspunde. În schimb, raportează postarea și lasă-ne pe noi să ne ocupăm. Moderatrorii vor răspunde pe cât de rapid posibil. Este treaba noastră să te menținem în singuranță. Dacă simți că este necesar mai mult context, poți raporta problema folosind <a href='https://contact.habitica.com/' target='_blank'>Formularul de Contact al Moderatorilor</a>.",
|
||||
"commGuideList02J": "<strong>Nu fă spam</strong>. Spamul poate include, dar nu este limitat la: postarea aceluiași cmentariu în locuri multiple, postarea link-urilor fără explecații sau context, postarea mesajelor fără sens, postarea unor mesaje promoționale multiple despre o Breaslă, Ceată sau Provocare, sau postarea mai multor mesaje consecutive. Solicitarea nestematelor sau a unei abonări în oricare spațiu de chat sau prin Mesaj Privat este de asemenea considerat spam. Dacă intrarea pe link-urile postate de tine de către oameni duce la beneficii pentru tine, trebuie să fii transparent cu privire la asta în textul mesajelor tale sau asta va fi de asemenea considerat spam. <br/><br/>Este dreptul moderatorilor să decidă dacă ceva constituie spam sau dacă poate duce la spam, chiar dacă tu nu simți că ai făcut spam. De exemplu, făcâd reclamă unei Bresle este acceptabil odată sau de două ori, dar postări multiple într-o zi va constitui, cel mai probabil, spam, indiferent de cât de folositoare este Breasla!",
|
||||
"commGuideList02K": "<strong>Evită postarea texturilor header largi în spațiile de chat publice, în special în Tavernă</strong>. Similar CAPS LOCK-ului, se citește ca și cum ai țipa, și interferează cu atmosfera confortabilă.",
|
||||
"commGuideList02L": "<strong>We highly discourage the exchange of personal information -- particularly information that can be used to identify you -- in public chat spaces</strong>. Identifying information can include but is not limited to: your address, your email address, and your API token/password. This is for your safety! Staff or moderators may remove such posts at their discretion. If you are asked for personal information in a private Guild, Party, or PM, we highly recommend that you politely refuse and alert the staff and moderators by either 1) flagging the message if it is in a Party or private Guild, or 2) filling out the <a href='http://contact.habitica.com/' target='_blank'>Moderator Contact Form</a> and including screenshots.",
|
||||
"commGuidePara019": "<strong>In private spaces</strong>, users have more freedom to discuss whatever topics they would like, but they still may not violate the Terms and Conditions, including posting slurs or any discriminatory, violent, or threatening content. Note that, because Challenge names appear in the winner's public profile, ALL Challenge names must obey the public space guidelines, even if they appear in a private space.",
|
||||
"commGuidePara020": "<strong>Private Messages (PMs)</strong> have some additional guidelines. If someone has blocked you, do not contact them elsewhere to ask them to unblock you. Additionally, you should not send PMs to someone asking for support (since public answers to support questions are helpful to the community). Finally, do not send anyone PMs begging for a gift of gems or a subscription, as this can be considered spamming.",
|
||||
"commGuidePara020A": "<strong>If you see a post that you believe is in violation of the public space guidelines outlined above, or if you see a post that concerns you or makes you uncomfortable, you can bring it to the attention of Moderators and Staff by clicking the flag icon to report it</strong>. A Staff member or Moderator will respond to the situation as soon as possible. Please note that intentionally reporting innocent posts is an infraction of these Guidelines (see below in “Infractions”). PMs cannot be flagged at this time, so if you need to report a PM, please contact the Mods via the form on the “Contact Us” page, which you can also access via the help menu by clicking “<a href='http://contact.habitica.com/' target='_blank'>Contact the Moderation Team</a>.” You may want to do this if there are multiple problematic posts by the same person in different Guilds, or if the situation requires some explanation. You may contact us in your native language if that is easier for you: we may have to use Google Translate, but we want you to feel comfortable about contacting us if you have a problem.",
|
||||
"commGuideList02L": "<strong>We highly discourage the exchange of personal information -- particularly information that can be used to identify you -- in public chat spaces</strong>. Identifying information can include but is not limited to: your address, your email address, and your API token/password. This is for your safety! Staff or moderators may remove such posts at their discretion. If you are asked for personal information in a private Guild, Party, or PM, we highly recommend that you politely refuse and alert the staff and moderators by either 1) flagging the message if it is in a Party or private Guild, or 2) filling out the <a href='https://contact.habitica.com/' target='_blank'>Moderator Contact Form</a> and including screenshots.",
|
||||
"commGuidePara019": "<strong>În spațiile private</strong>, utilizatorii au mai multă libertate de a discuta despre orice subiecte doresc, dar totuși este posibil să nu încalce Termenii și Condițiile, inclusiv postarea de insultelor sau orice alt conținut discriminatoriu, violent sau amenințător. Rețineți că, deoarece numele Provocărilor apar în profilul public al câștigătorului, TOATE numele Provocărilor trebuie să respecte regulile spațiului public, chiar dacă apar într-un spațiu privat.",
|
||||
"commGuidePara020": "<strong>Mesajele private (PM)</strong> au câteva indicații suplimentare. Dacă cineva te-a blocat, nu le contacta în altă parte pentru a le cere să te deblocheze. În plus, nu ar trebui să trimiteți PM la cineva care solicită sprijin (deoarece răspunsurile publice la întrebările de asistență sunt utile comunității). În cele din urmă, nu trimiteți nimănui PM în care cereți un cadou de nestemate sau un abonament, deoarece acest lucru poate fi considerat spamming.",
|
||||
"commGuidePara020A": "<strong>If you see a post that you believe is in violation of the public space guidelines outlined above, or if you see a post that concerns you or makes you uncomfortable, you can bring it to the attention of Moderators and Staff by clicking the flag icon to report it</strong>. A Staff member or Moderator will respond to the situation as soon as possible. Please note that intentionally reporting innocent posts is an infraction of these Guidelines (see below in “Infractions”). PMs cannot be flagged at this time, so if you need to report a PM, please contact the Mods via the form on the “Contact Us” page, which you can also access via the help menu by clicking “<a href='https://contact.habitica.com/' target='_blank'>Contact the Moderation Team</a>.” You may want to do this if there are multiple problematic posts by the same person in different Guilds, or if the situation requires some explanation. You may contact us in your native language if that is easier for you: we may have to use Google Translate, but we want you to feel comfortable about contacting us if you have a problem.",
|
||||
"commGuidePara021": "În plus,în anumite spații publice în Habitica se aplică reguli suplimentare.",
|
||||
"commGuideHeadingTavern": "Cârciuma",
|
||||
"commGuidePara022": "The Tavern is the main spot for Habiticans to mingle. Daniel the Innkeeper keeps the place spic-and-span, and Lemoness will happily conjure up some lemonade while you sit and chat. Just keep in mind…",
|
||||
"commGuidePara023": "<strong>Conversation tends to revolve around casual chatting and productivity or life improvement tips</strong>. Because the Tavern chat can only hold 200 messages, <strong>it isn't a good place for prolonged conversations on topics, especially sensitive ones</strong> (ex. politics, religion, depression, whether or not goblin-hunting should be banned, etc.). These conversations should be taken to an applicable Guild. A Mod may direct you to a suitable Guild, but it is ultimately your responsibility to find and post in the appropriate place.",
|
||||
"commGuidePara022": "Taclale la Cârciumă este locul principal în care Habitican-ii se strâng. Daniel păstrează locul curat, iar Lemoness va invoca fericit niște limonadă în timp ce tu stai și vorbești. Doar ține cont …",
|
||||
"commGuidePara023": "<strong>Conversația tinde să se orienteze în jurul discuțiilor mărunte și a productivității sau a sfaturilor de îmbunătățire a vieții</strong>. Deoarece chat-ul Taclale la Cârciumă poate conține doar 200 de mesaje, <strong>nu este un loc potrivit pentru conversații prelungite pe teme, în special cele sensibile</strong> (ex. politică, religie, depresie, indiferent dacă vânătoarea de spiriduș ar trebui să fie sau nu interzis, etc.). Aceste conversații trebuie să fie purtate într-o Ghildă. Un Moderator te poate direcționa către o Ghildă potrivită, dar în cele din urmă este responsabilitatea ta să găsești și să postezi în locul potrivit.",
|
||||
"commGuidePara024": "<strong>Don't discuss anything addictive in the Tavern</strong>. Many people use Habitica to try to quit their bad Habits. Hearing people talk about addictive/illegal substances may make this much harder for them! Respect your fellow Tavern-goers and take this into consideration. This includes, but is not exclusive to: smoking, alcohol, pornography, gambling, and drug use/abuse.",
|
||||
"commGuidePara027": "<strong>When a moderator directs you to take a conversation elsewhere, if there is no relevant Guild, they may suggest you use the Back Corner</strong>. The Back Corner Guild is a free public space to discuss potentially sensitive subjects that should only be used when directed there by a moderator. It is carefully monitored by the moderation team. It is not a place for general discussions or conversations, and you will be directed there by a mod only when it is appropriate.",
|
||||
"commGuideHeadingPublicGuilds": "Breslele Publice",
|
||||
@@ -38,32 +38,32 @@
|
||||
"commGuidePara035": "<strong>If the Guild in question has different kinds of sensitive issues, it is respectful to your fellow Habiticans to place your comment behind a warning (ex. \"Warning: references self-harm\")</strong>. These may be characterized as trigger warnings and/or content notes, and Guilds may have their own rules in addition to those given here. If possible, please use <a href='http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet' target='_blank'>markdown</a> to hide the potentially sensitive content below line breaks so that those who may wish to avoid reading it can scroll past it without seeing the content. Habitica staff and moderators may still remove this material at their discretion.",
|
||||
"commGuidePara036": "Additionally, the sensitive material should be topical -- bringing up self-harm in a Guild focused on fighting depression may make sense, but is probably less appropriate in a music Guild. If you see someone who is repeatedly violating this guideline, especially after several requests, please flag the posts and notify the moderators via the <a href='http://contact.habitica.com/' target='_blank'>Moderator Contact Form</a>.",
|
||||
"commGuidePara037": "<strong>No Guilds, Public or Private, should be created for the purpose of attacking any group or individual</strong>. Creating such a Guild is grounds for an instant ban. Fight bad habits, not your fellow adventurers!",
|
||||
"commGuidePara038": "<strong>All Tavern Challenges and Public Guild Challenges must comply with these rules as well</strong>.",
|
||||
"commGuideHeadingInfractionsEtc": "Infractions, Consequences, and Restoration",
|
||||
"commGuidePara038": "<strong>Toate Provocările de la Tavernă și Provocările de Ghildă Publice trebuie să respecte, de asemenea, aceste reguli</strong>.",
|
||||
"commGuideHeadingInfractionsEtc": "Infracțiuni, Consecințe și Restaurare",
|
||||
"commGuideHeadingInfractions": "Infracțiuni",
|
||||
"commGuidePara050": "Overwhelmingly, Habiticans assist each other, are respectful, and work to make the whole community fun and friendly. However, once in a blue moon, something that a Habitican does may violate one of the above guidelines. When this happens, the Mods will take whatever actions they deem necessary to keep Habitica safe and comfortable for everyone.",
|
||||
"commGuidePara051": "<strong>There are a variety of infractions, and they are dealt with depending on their severity</strong>. These are not comprehensive lists, and the Mods can make decisions on topics not covered here at their own discretion. The Mods will take context into account when evaluating infractions.",
|
||||
"commGuideHeadingSevereInfractions": "Infracțiuni severe",
|
||||
"commGuidePara052": "Severe infractions greatly harm the safety of Habitica's community and users, and therefore have severe consequences as a result.",
|
||||
"commGuidePara053": "The following are examples of some severe infractions. This is not a comprehensive list.",
|
||||
"commGuidePara052": "Infracțiunile grave dăunează foarte mult siguranței comunității și utilizatorilor Habitica și, prin urmare, au consecințe severe.",
|
||||
"commGuidePara053": "Următoarele sunt exemple ale unor infracțiuni severe. Aceasta nu este o listă cuprinzătoare.",
|
||||
"commGuideList05A": "Încălcarea Termenelor și Condițiilor",
|
||||
"commGuideList05B": "Hate Speech/Images, Harassment/Stalking, Cyber-Bullying, Flaming, and Trolling",
|
||||
"commGuideList05C": "Violation of Probation",
|
||||
"commGuideList05D": "Impersonation of Staff or Moderators",
|
||||
"commGuideList05B": "Discursul/Imaginile de Ură, Hărțuirea/Stalking-ul, Intimidarea Cibernetică, Provocarea și Trolling-ul",
|
||||
"commGuideList05C": "Încălcarea Probațiunii",
|
||||
"commGuideList05D": "Impersonarea Personalului sau a Moderatorilor",
|
||||
"commGuideList05E": "Infracțiuni moderate repetate",
|
||||
"commGuideList05F": "Creation of a duplicate account to avoid consequences (for example, making a new account to chat after having chat privileges revoked)",
|
||||
"commGuideList05G": "Intentional deception of Staff or Moderators in order to avoid consequences or to get another user in trouble",
|
||||
"commGuideList05F": "Crearea unui cont duplicat pentru a evita consecințele (de exemplu, crearea unui cont nou pentru a vorbi după ce au fost revocate privilegiile de chat)",
|
||||
"commGuideList05G": "Înșelăciune intenționată a Personalului sau a Moderatorilor pentru a evita consecințele sau pentru a face probleme unui alt utilizator",
|
||||
"commGuideHeadingModerateInfractions": "Infracțiuni moderate",
|
||||
"commGuidePara054": "Moderate infractions do not make our community unsafe, but they do make it unpleasant. These infractions will have moderate consequences. When in conjunction with multiple infractions, the consequences may grow more severe.",
|
||||
"commGuidePara055": "The following are some examples of Moderate Infractions. This is not a comprehensive list.",
|
||||
"commGuidePara055": "Următoarele sunt câteva exemple de Infracțiuni Moderate. Aceasta nu este o listă cuprinzătoare.",
|
||||
"commGuideList06A": "Ignoring, disrespecting or arguing with a Mod. This includes publicly complaining about moderators or other users, publicly glorifying or defending banned users, or debating whether or not a moderator action was appropriate. If you are concerned about one of the rules or the behaviour of the Mods, please contact the staff via email (<a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>).",
|
||||
"commGuideList06B": "Backseat Modding. To quickly clarify a relevant point: A friendly mention of the rules is fine. Backseat modding consists of telling, demanding, and/or strongly implying that someone must take an action that you describe to correct a mistake. You can alert someone to the fact that they have committed a transgression, but please do not demand an action -- for example, saying, \"Just so you know, profanity is discouraged in the Tavern, so you may want to delete that,\" would be better than saying, \"I'm going to have to ask you to delete that post.\"",
|
||||
"commGuideList06C": "Intentionally flagging innocent posts.",
|
||||
"commGuideList06D": "Repeatedly Violating Public Space Guidelines",
|
||||
"commGuideList06E": "Repeatedly Committing Minor Infractions",
|
||||
"commGuideList06C": "Semnalizarea intenționată a postărilor nevinovate.",
|
||||
"commGuideList06D": "Încălcând în Mod Repetat Instrucțiunile Spațiul Public",
|
||||
"commGuideList06E": "Săvârșirea Repetată a Infracțiunilor Minore",
|
||||
"commGuideHeadingMinorInfractions": "Infracțiuni Minore",
|
||||
"commGuidePara056": "Minor Infractions, while discouraged, still have minor consequences. If they continue to occur, they can lead to more severe consequences over time.",
|
||||
"commGuidePara057": "The following are some examples of Minor Infractions. This is not a comprehensive list.",
|
||||
"commGuidePara056": "Infracțiunile Minore, deși sunt descurajate, au încă consecințe minore. Dacă continuă să apară, pot duce la consecințe mai severe în timp.",
|
||||
"commGuidePara057": "Următoarele sunt câteva exemple de Infracțiuni Minore. Aceasta nu este o listă cuprinzătoare.",
|
||||
"commGuideList07A": "First-time violation of Public Space Guidelines",
|
||||
"commGuideList07B": "Any statements or actions that trigger a \"Please Don't\". When a Mod has to say \"Please don't do this\" to a user, it can count as a very minor infraction for that user. An example might be \"Please don't keep arguing in favor of this feature idea after we've told you several times that it isn't feasible.\" In many cases, the Please Don't will be the minor consequence as well, but if Mods have to say \"Please Don't\" to the same user enough times, the triggering Minor Infractions will start to count as Moderate Infractions.",
|
||||
"commGuidePara057A": "Some posts may be hidden because they contain sensitive information or might give people the wrong idea. Typically this does not count as an infraction, particularly not the first time it happens!",
|
||||
@@ -78,21 +78,21 @@
|
||||
"commGuidePara060B": "If your account is banned (a severe consequence), you will not be able to log into Habitica and will receive an error message upon attempting to log in. <strong>If you wish to apologize or make a plea for reinstatement, please email the staff at <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> with your UUID</strong> (which will be given in the error message). It is <strong>your</strong> responsibility to reach out if you desire reconsideration or reinstatement.",
|
||||
"commGuideHeadingSevereConsequences": "Examples of Severe Consequences",
|
||||
"commGuideList09A": "Account bans (see above)",
|
||||
"commGuideList09C": "Permanently disabling (\"freezing\") progression through Contributor Tiers",
|
||||
"commGuideHeadingModerateConsequences": "Examples of Moderate Consequences",
|
||||
"commGuideList10A": "Restricted public and/or private chat privileges",
|
||||
"commGuideList09C": "Dezactivarea permanentă („înghețarea”) progresiei prin Nivelurile de Contribuabili",
|
||||
"commGuideHeadingModerateConsequences": "Exemple de Consecințe Moderate",
|
||||
"commGuideList10A": "Privilegii restricționate de chat publice și/sau private",
|
||||
"commGuideList10A1": "If your actions result in revocation of your chat privileges, a Moderator or Staff member will PM you and/or post in the forum in which you were muted to notify you of the reason for your muting and the length of time for which you will be muted. At the end of that period, you will receive your chat privileges back, provided you are willing to correct the behavior for which you were muted and comply with the Community Guidelines.",
|
||||
"commGuideList10C": "Restricted Guild/Challenge creation privileges",
|
||||
"commGuideList10D": "Temporarily disabling (\"freezing\") progression through Contributor Tiers",
|
||||
"commGuideList10E": "Demotion of Contributor Tiers",
|
||||
"commGuideList10F": "Putting users on \"Probation\"",
|
||||
"commGuideHeadingMinorConsequences": "Examples of Minor Consequences",
|
||||
"commGuideList11A": "Reminders of Public Space Guidelines",
|
||||
"commGuideList10C": "Privilegii restricționate de creare a Ghildelor/Provocărilor",
|
||||
"commGuideList10D": "Dezactivarea temporară („înghețarea”) progresiei prin Niveluri de Contribuitori",
|
||||
"commGuideList10E": "Revocarea Nivelurilor de Contribuitori",
|
||||
"commGuideList10F": "Punerea utilizatorilor pe „Probațiune”",
|
||||
"commGuideHeadingMinorConsequences": "Exemple de Consecințe Minore",
|
||||
"commGuideList11A": "Memento-uri ale Instrucțiunilor Spațiului Public",
|
||||
"commGuideList11B": "Atenționări",
|
||||
"commGuideList11C": "Cereri",
|
||||
"commGuideList11D": "Deletions (Mods/Staff may delete problematic content)",
|
||||
"commGuideList11E": "Edits (Mods/Staff may edit problematic content)",
|
||||
"commGuideHeadingRestoration": "Restoration",
|
||||
"commGuideList11D": "Ștergeri (Moderatori/Personal pot șterge conținut problematic)",
|
||||
"commGuideList11E": "Editările (Moderatori/Personalul pot șterge conținut problematic)",
|
||||
"commGuideHeadingRestoration": "Restaurare",
|
||||
"commGuidePara061": "Habitica is a land devoted to self-improvement, and we believe in second chances. <strong>If you commit an infraction and receive a consequence, view it as a chance to evaluate your actions and strive to be a better member of the community</strong>.",
|
||||
"commGuidePara062": "The announcement, message, and/or email that you receive explaining the consequences of your actions is a good source of information. Cooperate with any restrictions which have been imposed, and endeavor to meet the requirements to have any penalties lifted.",
|
||||
"commGuidePara063": "If you do not understand your consequences, or the nature of your infraction, ask the Staff/Moderators for help so you can avoid committing infractions in the future. If you feel a particular decision was unfair, you can contact the staff to discuss it at <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
@@ -110,13 +110,13 @@
|
||||
"commGuidePara011b": "în GitHub/Wikia",
|
||||
"commGuidePara011c": "în Wikia",
|
||||
"commGuidePara011d": "pe GitHub",
|
||||
"commGuidePara012": "If you have an issue or concern about a particular Mod, please send an email to our Staff (<a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>).",
|
||||
"commGuidePara012": "Dacă aveți o problemă sau o îngrijorare cu privire la un anumit Mod, vă rugăm să trimiteți un email Personalului nostru (<a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>).",
|
||||
"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": "Emeritus Staff și Moderatori:",
|
||||
"commGuideHeadingFinal": "Secțiune Finală",
|
||||
"commGuidePara067": "So there you have it, brave Habitican -- the Community Guidelines! Wipe that sweat off of your brow and give yourself some XP for reading it all. If you have any questions or concerns about these Community Guidelines, please reach out to us via the <a href='http://contact.habitica.com/' target='_blank'>Moderator Contact Form</a> and we will be happy to help clarify things.",
|
||||
"commGuidePara068": "Now go forth, brave adventurer, and slay some Dailies!",
|
||||
"commGuideHeadingLinks": "Useful Links",
|
||||
"commGuidePara068": "Acum mergeți mai departe, curajos aventurier și ucideți niște Cotidiene!",
|
||||
"commGuideHeadingLinks": "Link-uri Utile",
|
||||
"commGuideLink01": "<a href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank'>Habitica Help: Ask a Question</a>: o Breaslă pentru întrebările puse de utilizatori!",
|
||||
"commGuideLink02": "<a href='http://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>Wiki</a>: cea mai mare colecție de informații despre Habitica.",
|
||||
"commGuideLink03": "<a href='https://github.com/HabitRPG/habitica' target='_blank'>GitHub</a>: pentru raportarea erorilor și pentru a ajuta la programare!",
|
||||
@@ -124,5 +124,5 @@
|
||||
"commGuideLink05": "<a href='https://trello.com/b/mXK3Eavg/' target='_blank'>Trello Mobil</a>: pentru solicitarea facilităților pentru smartphone.",
|
||||
"commGuideLink06": "<a href='https://trello.com/b/vwuE9fbO/' target='_blank'>Trello Artă</a>: pentru trimiterea artei pixelate.",
|
||||
"commGuideLink07": "<a href='https://trello.com/b/nnv4QIRX/' target='_blank'>Trello Expediții</a>: pentru trimiterea textelor pentru expediții.",
|
||||
"commGuidePara069": "The following talented artists contributed to these illustrations:"
|
||||
"commGuidePara069": "La aceste ilustrații au contribuit următorii artiști talentați:"
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
"potionText": "Licoare de sănătate",
|
||||
"potionNotes": "Vindecă 15 puncte de sănătate (instantaneu)",
|
||||
"armoireText": "Șifonier fermecat",
|
||||
"armoireNotesFull": "Deschide șifonierul pentru a primi la întâmplare echipament, experiență sau mâncare! Piesele de echipament rămase:",
|
||||
"armoireNotesFull": "Deschide Șifonierul Fermecat pentru a primi la întâmplare Echipament, Experiență sau mâncare! Piesele de echipament rămase:",
|
||||
"armoireLastItem": "Ai găsit ultima piesă de echipament rar din șifonierul fermecat.",
|
||||
"armoireNotesEmpty": "Șifonierul va avea noi echipamente în prima săptămână a fiecărei luni. Până atunci, continuă să faci clic pentru experiență și mâncare!",
|
||||
"armoireNotesEmpty": "Șifonierul va avea noi Echipamente în prima săptămână a fiecărei luni. Până atunci, continuă să faci click pentru Experiență și Mâncare pentru Companioni!",
|
||||
"dropEggWolfText": "Lup",
|
||||
"dropEggWolfMountText": "Lup",
|
||||
"dropEggWolfAdjective": "loial",
|
||||
@@ -212,7 +212,7 @@
|
||||
"hatchingPotionFrost": "Frost",
|
||||
"hatchingPotionIcySnow": "Icy Snow",
|
||||
"hatchingPotionNotes": "Toarnă aceasta pe un ou și va ecloza ca un companion <%= potText(locale) %>.",
|
||||
"premiumPotionAddlNotes": "Neutilizabil pe ouă de companioni obținute din expediții.",
|
||||
"premiumPotionAddlNotes": "Neutilizabil pe ouă de companioni obținute din expediții. Disponibil pentru achiziție până la <%= date(locale) %>.",
|
||||
"foodMeat": "Carne",
|
||||
"foodMeatThe": "carnea",
|
||||
"foodMeatA": "Carne",
|
||||
@@ -291,7 +291,7 @@
|
||||
"foodCandyWhite": "Bomboană cu vanilie",
|
||||
"foodCandyWhiteThe": "Bomboana de Vanilie",
|
||||
"foodCandyWhiteA": "Bomboană de Vanilie",
|
||||
"foodCandyGolden": "Bomboană cu miere",
|
||||
"foodCandyGolden": "Bomboană cu Miere",
|
||||
"foodCandyGoldenThe": "Bomboana cu Miere",
|
||||
"foodCandyGoldenA": "Bomboană cu Miere",
|
||||
"foodCandyZombie": "Prăjitură stricată",
|
||||
@@ -306,5 +306,55 @@
|
||||
"foodSaddleText": "Șa",
|
||||
"foodSaddleNotes": "Transformă instantaneu un companion într-un animal de călărit.",
|
||||
"foodSaddleSellWarningNote": "Hei! Ăsta e un obiect destul de folositor! Ești familiar cu utilizarea unei Șei pentru animalele tale de companie?",
|
||||
"foodNotes": "Hrănește cu asta un companion și e posibil să crească cât să-l poți călări."
|
||||
"foodNotes": "Hrănește cu asta un companion și e posibil să crească cât să-l poți călări.",
|
||||
"questEggRobotMountText": "Robot",
|
||||
"foodPieRedA": "a slice of Red Cherry Pie",
|
||||
"foodPieRedThe": "the Red Cherry Pie",
|
||||
"foodPieRed": "Red Cherry Pie",
|
||||
"foodPieDesertA": "a slice of Desert Dessert Pie",
|
||||
"foodPieDesertThe": "the Desert Dessert Pie",
|
||||
"foodPieDesert": "Desert Dessert Pie",
|
||||
"foodPieZombieA": "a Rotten slice of Pie",
|
||||
"foodPieZombieThe": "the Rotten Pie",
|
||||
"foodPieZombie": "Rotten Pie",
|
||||
"foodPieGoldenA": "a slice of Golden Banana Cream Pie",
|
||||
"foodPieGoldenThe": "the Golden Banana Cream Pie",
|
||||
"foodPieGolden": "Golden Banana Cream Pie",
|
||||
"foodPieWhiteA": "a slice of Vanilla Pudding Pie",
|
||||
"foodPieWhiteThe": "the Vanilla Pudding Pie",
|
||||
"foodPieWhite": "Vanilla Pudding Pie",
|
||||
"foodPieShadeA": "a slice of Dark Chocolate Pie",
|
||||
"foodPieShadeThe": "the Dark Chocolate Pie",
|
||||
"foodPieShade": "Dark Chocolate Pie",
|
||||
"foodPieCottonCandyPinkA": "a slice of Pink Rhubarb Pie",
|
||||
"foodPieCottonCandyPinkThe": "the Pink Rhubarb Pie",
|
||||
"foodPieCottonCandyPink": "Pink Rhubarb Pie",
|
||||
"foodPieCottonCandyBlueA": "a slice of Blueberry Pie",
|
||||
"foodPieCottonCandyBlueThe": "the Blueberry Pie",
|
||||
"foodPieCottonCandyBlue": "Blueberry Pie",
|
||||
"foodPieBaseA": "a slice of Basic Apple Pie",
|
||||
"foodPieBaseThe": "the Basic Apple Pie",
|
||||
"foodPieBase": "Basic Apple Pie",
|
||||
"foodPieSkeletonA": "a slice of Bone Marrow Pot Pie",
|
||||
"foodPieSkeletonThe": "the Bone Marrow Pot Pie",
|
||||
"foodPieSkeleton": "Bone Marrow Pot Pie",
|
||||
"premiumPotionUnlimitedNotes": "Not usable on quest pet eggs.",
|
||||
"hatchingPotionDessert": "Confection",
|
||||
"hatchingPotionBirchBark": "Birch Bark",
|
||||
"hatchingPotionRuby": "Ruby",
|
||||
"hatchingPotionAurora": "Aurora",
|
||||
"hatchingPotionAmber": "Amber",
|
||||
"hatchingPotionShadow": "Shadow",
|
||||
"hatchingPotionSilver": "Silver",
|
||||
"hatchingPotionWatery": "Watery",
|
||||
"hatchingPotionBronze": "Bronze",
|
||||
"hatchingPotionSunshine": "Sunshine",
|
||||
"hatchingPotionVeggie": "Garden",
|
||||
"hatchingPotionCelestial": "Celestial",
|
||||
"hatchingPotionRoseQuartz": "Rose Quartz",
|
||||
"questEggRobotAdjective": "a futuristic",
|
||||
"questEggRobotText": "Robot",
|
||||
"questEggDolphinAdjective": "a chipper",
|
||||
"questEggDolphinMountText": "Dolphin",
|
||||
"questEggDolphinText": "Delfin"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"lostAllHealth": "Ai rămas fără sănătate!",
|
||||
"dontDespair": "Nu dispera",
|
||||
"dontDespair": "Nu dispera!",
|
||||
"deathPenaltyDetails": "Ai pierdut un nivel, aurul și o piesă de echipament, dar le poți obține înapoi prin muncă susținută! Mult noroc -- o să fie bine.",
|
||||
"refillHealthTryAgain": "Realimentează cu sănătate și încearcă din nou.",
|
||||
"refillHealthTryAgain": "Realimentează cu Sănătate și Încearcă din Nou",
|
||||
"dyingOftenTips": "Se întâmplă des? <a href='http://habitica.fandom.com/wiki/Death_Mechanics#Strategies_for_Staying_Alive' target='_blank'>Aici sunt niște indicii!</a>",
|
||||
"losingHealthWarning": "Atenție - pierzi din sănătate!",
|
||||
"losingHealthWarning2": "Nu lăsa sănătatea să scadă la zero! Dacă faci asta, vei pierde un nivel, tot aurul și o piesă de echipament.",
|
||||
@@ -10,8 +10,8 @@
|
||||
"lowHealthTips1": "Avansează un nivel pentru a te vindeca complet!",
|
||||
"lowHealthTips2": "Cumpără o licoare de sănătate din Coloana de răsplăți pentru a restaura 15 puncte de sănătate.",
|
||||
"losingHealthQuickly": "Pierzi sănătate prea rapid?",
|
||||
"lowHealthTips3": "Sarcini zilnice necompletate te rănesc peste noapte, așa că ai grijă să nu adaugi prea multe la început.",
|
||||
"lowHealthTips3": "Sarcini zilnice necompletate te rănesc peste noapte, așa că ai grijă să nu adaugi prea multe la început!",
|
||||
"lowHealthTips4": "Dacă o sarcină zilnică nu trebuie realizată ziua respectivă, o poți dezactiva printr-un clic pe iconița cu creion.",
|
||||
"goodLuck": "Baftă!",
|
||||
"cannotRevive": "Nu poți reînvia fără a fi mort"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
"defaultHabit3Notes": "Exemple de Obiceiuri Pozitive sau Negative: +/-Ia-o pe Scări/cu Liftul; +/- Bea Apă/Suc",
|
||||
"defaultHabit4Text": "Adaugă o Sarcină în Habitica",
|
||||
"defaultHabit4Notes": "Un Obicei, un Cotidian sau o Sarcină",
|
||||
"defaultHabit5Text": "Apasă aici pentru a schimba asta într-un obicei negativ la care îți dorești să renunți.",
|
||||
"defaultHabit5Text": "Apasă aici pentru a schimba asta într-un obicei negativ la care îți dorești să renunți",
|
||||
"defaultHabit5Notes": "Sau șterge din ecranul de editare",
|
||||
"defaultDaily1Text": "Utilizează Habitica pentru a ține evidența țelurilor tale.",
|
||||
"defaultDaily1Text": "Utilizează Habitica pentru a ține evidența țelurilor tale",
|
||||
"defaultTodo1Text": "Alătură-te la Habitica (Bifează-mă!)",
|
||||
"defaultTodoNotes": "Poți îndeplini această Sarcină, o poți edita sau elimina.",
|
||||
"defaultTodo2Text": "Completează instrucțiunile pentru sarcina lui Justin",
|
||||
"defaultTodo2Notes": "Vizitează toate secțiunile din bara je jos",
|
||||
"defaultReward1Text": "Pauză de 15 minute",
|
||||
"defaultReward1Notes": "Răsplățile speciale pot fi foarte diverse. Unii oameni se vor abține de la a viziona serialul preferat dacă nu au destul aur pentru asta.",
|
||||
"defaultReward2Text": "Răsplătește-te!",
|
||||
"defaultReward2Text": "Răsplătește-te",
|
||||
"defaultReward2Notes": "Uită-te la televizor, joacă un joc, ia o gustare, este în mâinile tale!",
|
||||
"defaultTag1": "Muncă",
|
||||
"defaultTag2": "Antrenament",
|
||||
@@ -24,5 +24,42 @@
|
||||
"defaultTag4": "Școală",
|
||||
"defaultTag5": "Echipe",
|
||||
"defaultTag6": "Treburi",
|
||||
"defaultTag7": "Creativitate"
|
||||
}
|
||||
"defaultTag7": "Creativitate",
|
||||
"schoolTodoNotes": "Atingeți pentru a denumi sarcina și alegeți o dată scadentă!]",
|
||||
"defaultHabitNotes": "Sau ștergeți din ecranul de editare",
|
||||
"defaultHabitText": "Faceți click aici pentru a edita acest lucru într-un obicei prost la care doriți să renunțați",
|
||||
"creativityTodoNotes": "Atingeți pentru a specifica numele proiectului",
|
||||
"creativityTodoText": "Finalizează proiectul creativ",
|
||||
"creativityDailyNotes": "Atingeți pentru a specifica numele proiectului dvs. curent + setați programul!",
|
||||
"creativityDailyText": "Lucrați la un proiect creativ",
|
||||
"creativityHabit": "Studiați un maestru al meșteșugului >> + Practicați o nouă tehnică creativă",
|
||||
"choresTodoNotes": "Atingeți pentru a specifica zona dezordonată!",
|
||||
"choresTodoText": "Organizare dulap >> Organizare dezordine",
|
||||
"choresDailyNotes": "Atingeți pentru a alege programul!",
|
||||
"choresDailyText": "Spălat vasele",
|
||||
"choresHabit": "10 minute de curățare",
|
||||
"selfCareTodoNotes": "Atingeți pentru a specifica ce intenționați să faceți!",
|
||||
"selfCareTodoText": "Implicați-vă într-o activitate distractivă",
|
||||
"selfCareDailyNotes": "Atingeți pentru a alege programul!",
|
||||
"selfCareDailyText": "5 minute de respirație liniștită",
|
||||
"selfCareHabit": "Faceți o pauză scurtă",
|
||||
"workHabitMail": "Process email",
|
||||
"schoolTodoText": "Finalizează sarciniile pentru școală",
|
||||
"schoolDailyNotes": "Atingeți pentru a alege programul pentru teme!",
|
||||
"schoolDailyText": "Termină temele",
|
||||
"schoolHabit": "Studiază/Procastinează",
|
||||
"healthTodoNotes": "Atingeți pentru a adăuga liste de verificare!",
|
||||
"healthTodoText": "Programează un control >> Găsește o schimbare sănătoasă",
|
||||
"healthDailyNotes": "Atingeți pentru a face orice modificare!",
|
||||
"healthDailyText": "Ață dentară",
|
||||
"healthHabit": "Mănâncă Mâncare Sănătoasă/Nesănătoasă",
|
||||
"exerciseTodoNotes": "Atingeți pentru a adăuga o listă de verificare!",
|
||||
"exerciseTodoText": "Stabiliți programul de antrenament",
|
||||
"exerciseDailyNotes": "Atingeți pentru a alege programul și a specifica exercițiile!",
|
||||
"exerciseDailyText": "Întindere >> Rutina zilnica de antrenament",
|
||||
"exerciseHabit": "10 min cardio >> + 10 minute cardio",
|
||||
"workTodoProjectNotes": "Atingeți pentru a specifica numele proiectului curent + setați o dată scadentă!",
|
||||
"workTodoProject": "Proiect de lucru >> Proiect de lucru complet",
|
||||
"workDailyImportantTaskNotes": "Atingeți pentru a specifica cea mai importantă sarcină",
|
||||
"workDailyImportantTask": "Cea mai importantă sarcină >> Am lucrat la cea mai importantă sarcină de astăzi"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"frequentlyAskedQuestions": "Întrebări adresate frecvent",
|
||||
"faqQuestion0": "Sunt confuz(ă). De unde pot avea o privire de ansamblu?",
|
||||
"iosFaqAnswer0": "În primul rând, vei seta sarcini pe care vrei să le realizezi în viața de zi cu zi. Apoi, pe măsură ce completezi sarcinile în viața reală și le bifezi, vei câștiga experiență și aur. Aurul este folosit pentru a cumpăra echipament și alte articole, dar și premii personalizate. Experiența face ca personajul tău să avanseze în nivel și să aibă acces la conținut suplimentar, precum companioni, abilități și expediții! Poți individualiza personajul tău din Meniu > Personalizează avatar.\n\nNiște metode simple de a interacționa: clic pe (+) din colțul din dreapta-sus pentru a adăuga o nouă sarcină. Apasă pe o sarcină existentă pentru a o edita glisează spre stânga pentru a o șterge. Poți sorta sarcinile cu ajutorul etichetelor din colțul din stânga-sus și poți expanda sau contracta listele de verificare prin clic pe bula listei de verificare.",
|
||||
"androidFaqAnswer0": "În primul rând, îți vei seta sarcinile pe care vrei să le faci în fiecare zi. Apoi, cu cât le completezi în viața reală și le bifezi, vei acumula experiență și aur. Aurul este folosit pentru a cumpăra unele obiecte, și de asemenea recompense personalizate. Experiența cauează personajul să crească în nivel și să deblocheze conținut nou, precum Animale de Companie, Aptitudini și Expediții! Îți poți personaliza personajul din Meniu > Inventar > Avatar\n\nMetode de bază pentru a interacționa: apasă pe (+) în colțul din dreapta jos pentru a adăuga o sarcină nouă. Apasă pe o sarcină existentă pentru a o edita, și dă swipe la stânga pe o sarcină pentru a o șterge. Poți cataloga sarcinile folosind Etichetele din colțul din dreapta sus, și extinde și strânge listele de bife dând click pe căsuța de checklist. ",
|
||||
"androidFaqAnswer0": "În primul rând, îți vei seta sarcinile pe care vrei să le faci în fiecare zi. Apoi, cu cât le completezi în viața reală și le bifezi, vei acumula experiență și aur. Aurul este folosit pentru a cumpăra unele obiecte, și de asemenea recompense personalizate. Experiența cauează personajul să crească în nivel și să deblocheze conținut nou, precum Animale de Companie, Aptitudini și Expediții! Îți poți personaliza personajul din Meniu > [Inventar >] Avatar.\n\nMetode de bază pentru a interacționa: apasă pe (+) în colțul din dreapta jos pentru a adăuga o sarcină nouă. Apasă pe o sarcină existentă pentru a o edita, și dă swipe la stânga pe o sarcină pentru a o șterge. Poți cataloga sarcinile folosind Etichetele din colțul din dreapta sus, și extinde și strânge listele de bife dând click pe căsuța de checklist.",
|
||||
"webFaqAnswer0": "În primul rând, îți vei seta sarcinile pe care vrei să le faci în fiecare zi. Apoi, cu cât le completezi în viața reală și le bifezi, vei acumula experiență și aur. Aurul este folosit pentru a cumpăra unele obiecte, și de asemenea recompense personalizate. Experiența cauează personajul să crească în nivel și să deblocheze conținut nou, precum Animale de Companie, Aptitudini și Expediții! Pentru mai multe detalii, uită-te peste ghidul pas-cu-pas al jocului în [Ajutor -> Overview for New Users](https://habitica.com/static/overview).",
|
||||
"faqQuestion1": "Cum îmi setez sarcinile?",
|
||||
"iosFaqAnswer1": "Bunele obiceiuri (acelea marcate cu +) sunt sarcini pe care le poți efectua de mai multe ori pe zi, cum ar fi mâncatul legumelor. Proastele obiceiuri (cele marcate cu -) sunt sarcini pe care trebuie să le eviți, ca mâncatul unghiilor. Obiceiurile marcate cu + și - au asociate o alegere bună și o alegere proastă, cum ar fi mersul pe scări vs. mersul cu liftul. Bunele obiceiuri te răsplătesc cu experiență și aur. Proastele obiceiuri îți scad sănătatea.\n\nSarcinile zilnice sunt sarcini pe care le poți face în fiecare zi, cum ar fi spălatul pe dinți sau verificarea e-mailului. Poți ajusta zilele în care o sarcină trebuie efectuată printr-o apăsare pe aceasta pentru a o edita. Dacă sari peste o sarcină zilnică ce trebuie efectuată, avatarul va pierde sănătate peste noapte. Ai grijă să nu adaugi prea multe sarcini zilnice în același timp.\n\n„De făcut” este lista ta de sarcini de făcut. Prin completarea acestor sarcini câștigi aur și experiență. Nu pierzi niciodată sănătate prin nerealizarea acestor sarcini. Poți adăuga date limită pentru o sarcină „de făcut” prin atingerea acesteia pentru a o edita.",
|
||||
@@ -10,7 +10,7 @@
|
||||
"webFaqAnswer1": "* Good Habits (the ones with a :heavy_plus_sign:) are tasks that you can do many times a day, such as eating vegetables. Bad Habits (the ones with a :heavy_minus_sign:) are tasks that you should avoid, like biting nails. Habits with a :heavy_plus_sign: and a :heavy_minus_sign: have a good choice and a bad choice, like taking the stairs vs. taking the elevator. Good Habits award Experience and Gold. Bad Habits subtract Health.\n* Dailies are tasks that you have to do every day, like brushing your teeth or checking your email. You can adjust the days that a Daily is due by clicking the pencil item to edit it. If you skip a Daily that is due, your avatar will take damage overnight. Be careful not to add too many Dailies at once!\n* To-Dos are your To-Do list. Completing a To-Do earns you Gold and Experience. You never lose Health from To-Dos. You can add a due date to a To-Do by clicking the pencil icon to edit.",
|
||||
"faqQuestion2": "Care ar fi niște sarcini exemplu?",
|
||||
"iosFaqAnswer2": "Wiki-ul are patru liste de sarcini exemplu de folosit ca inspirație:\n<br><br>\n * [Exemple de obiceiuri](http://habitica.fandom.com/wiki/Sample_Habits)\n * [Exemple de sarcini zilnice](http://habitica.fandom.com/wiki/Sample_Dailies)\n * [Exemple de sarcini de făcut](http://habitica.fandom.com/wiki/Sample_To-Dos)\n * [Exemple de recompense particularizate](http://habitica.fandom.com/wiki/Sample_Custom_Rewards)",
|
||||
"androidFaqAnswer2": "The wiki has four lists of sample tasks to use as inspiration:\n<br><br>\n * [Sample Habits](http://habitica.fandom.com/wiki/Sample_Habits)\n * [Sample Dailies](http://habitica.fandom.com/wiki/Sample_Dailies)\n * [Sample To-Dos](http://habitica.fandom.com/wiki/Sample_To-Dos)\n * [Sample Custom Rewards](http://habitica.fandom.com/wiki/Sample_Custom_Rewards)",
|
||||
"androidFaqAnswer2": "Wiki are patru liste de exemple de sarcini pentru a fi folosite ca inspirație:\n<br><br>\n * [Exemple Obiceiuri](http://habitica.fandom.com/wiki/Sample_Habits)\n * [Exemple Cotidiene](http://habitica.fandom.com/wiki/Sample_Dailies)\n * [Exemple Sarcini](http://habitica.fandom.com/wiki/Sample_To-Dos)\n * [Exemple Recompense Personalizate](http://habitica.fandom.com/wiki/Sample_Custom_Rewards)",
|
||||
"webFaqAnswer2": "Wiki-ul are patru liste de sarcini exemplu de folosit ca inspirație:\n * [Exemple de obiceiuri](http://habitica.fandom.com/wiki/Sample_Habits)\n * [Exemple de sarcini zilnice](http://habitica.fandom.com/wiki/Sample_Dailies)\n * [Exemple de sarcini de făcut](http://habitica.fandom.com/wiki/Sample_To-Dos)\n * [Exemple de recompense particularizate](http://habitica.fandom.com/wiki/Sample_Custom_Rewards)",
|
||||
"faqQuestion3": "De ce își schimbă culorile sarcinile mele?",
|
||||
"iosFaqAnswer3": "Sarcinile tale își schimbă culoarea pe baza a cât de bine le realizezi! Fiecare nouă sarcină începe c o culoare galben neutru. Întreprinde sarcini zilnice sau obiceiuri pozitive mai frecvent și culoarea se va schimba mai mult înspre albastru. Ratează o sarcină zilnică, sau cedează în fața tentației unui obicei prost și sarcina culoarea se va schimba înspre roșu. Cu cât e mai roșie o sarcină, cu atât te va recompensa mai mult, dar dacă este vorba de o sarcină zilnică sau obicei prost, cu atât mai mult te va răni! Aceasta te va motiva să completezi sarcinile care îți pun probleme.",
|
||||
@@ -25,14 +25,14 @@
|
||||
"androidFaqAnswer5": "The best way is to invite them to a Party with you! Parties can go on quests, battle monsters, and cast skills to support each other. Go to the [website](https://habitica.com/) to create one if you don't already have a Party. You can also join guilds together (Social > Guilds). Guilds are chat rooms focusing on a shared interest or the pursuit of a common goal, and can be public or private. You can join as many guilds as you'd like, but only one party.\n\n For more detailed info, check out the wiki pages on [Parties](http://habitica.fandom.com/wiki/Party) and [Guilds](http://habitica.fandom.com/wiki/Guilds).",
|
||||
"webFaqAnswer5": "The best way is to invite them to a Party with you by clicking \"Party\" in the navigation bar! Parties can go on quests, battle monsters, and cast skills to support each other. You can also join Guilds together (click on \"Guilds\" in the navigation bar). Guilds are chat rooms focusing on a shared interest or the pursuit of a common goal, and can be public or private. You can join as many Guilds as you'd like, but only one Party. For more detailed info, check out the wiki pages on [Parties](http://habitica.fandom.com/wiki/Party) and [Guilds](http://habitica.fandom.com/wiki/Guilds).",
|
||||
"faqQuestion6": "Cum pot obține un companion sau bidiviu (mount)?",
|
||||
"iosFaqAnswer6": "La nivelul 3 vei descuia sistemul de drop. De fiecare dată când completezi o sarcină ai o șansă să-ți pice un ou, o licoare de eclozat sau mâncare. Acestea sunt stocate în Meniu > Articole.\n\n Pentru a ecloza un companion, ai nevoie de un ou și o licoare de eclozat. Apasă pe ou pentru a stabili specia pe care vrei să o eclozezi și selectează „Eclozează oul”. Apoi alege licoarea de eclozat pentru a stabili culoarea acestuia. mergi la Meniu > Compaioni pentru a adăuga noul companion avatarului tău printr-un clic pe acesta.\n\n Poți să și crești companionii în bidivii (mounts) dacă îi hrănești - Meniu > Companioni, apoi selectează „Hrănește companion”! Va trebui să hrănești un companion de multe ori înainte ca acesta să devină bidiviu, dar dacă afli care e mâncarea sa preferată, acesta va crește mai repede. Poți afla prin încercarea repetată sau [poți vedea spoilerele aici](http://habitica.fandom.com/wiki/Food#Food_Preferences). Odată ce ai un bidiviu, mergi la Meniu > Bidivii și apasă pe acesta pentru a-l adăuga avatarului.\n\n Poți obține ouă pentru companioni de expediție prin completarea anumitor expediții. (Vezi mai jos pentru a afla mai multe despre expediții.)",
|
||||
"androidFaqAnswer6": "At level 3, you will unlock the Drop System. Every time you complete a task, you'll have a random chance at receiving an egg, a hatching potion, or a piece of food. They will be stored in Menu > Items.\n\n To hatch a Pet, you'll need an egg and a hatching potion. Tap on the egg to determine the species you want to hatch, and select \"Hatch with potion.\" Then choose a hatching potion to determine its color! To equip your new Pet, go to Menu > Stable > Pets, select a species, click on the desired Pet, and select \"Use\"(Your avatar doesn't update to reflect the change). \n\n You can also grow your Pets into Mounts by feeding them under Menu > Stable [ > Pets ]. Tap on a Pet, and then select \"Feed\"! You'll have to feed a pet many times before it becomes a Mount, but if you can figure out its favorite food, it will grow more quickly. Use trial and error, or [see the spoilers here](http://habitica.fandom.com/wiki/Food#Food_Preferences). To equip your Mount, go to Menu > Stable > Mounts, select a species, click on the desired Mount, and select \"Use\"(Your avatar doesn't update to reflect the change).\n\n You can also get eggs for Quest Pets by completing certain Quests. (See below to learn more about Quests.)",
|
||||
"webFaqAnswer6": "At level 3, you will unlock the Drop System. Every time you complete a task, you'll have a random chance at receiving an egg, a hatching potion, or a piece of food. They will be stored under Inventory > Items. To hatch a Pet, you'll need an egg and a hatching potion. Once you have both an egg and a potion, go to Inventory > Stable to hatch your pet by clicking on its image. Once you've hatched a pet, you can equip it by clicking on it. You can also grow your Pets into Mounts by feeding them under Inventory > Stable. Drag a piece of food from the action bar at the bottom of the screen and drop it on a pet to feed it! You'll have to feed a Pet many times before it becomes a Mount, but if you can figure out its favorite food, it will grow more quickly. Use trial and error, or [see the spoilers here](http://habitica.fandom.com/wiki/Food#Food_Preferences). Once you have a Mount, click on it to equip it to your avatar. You can also get eggs for Quest Pets by completing certain Quests. (See below to learn more about Quests.)",
|
||||
"iosFaqAnswer6": "De fiecare dată când completezi o sarcină ai o șansă să-ți pice un Ou, o Poțiune de Eclozat sau Mâncare pentru Companion. Acestea sunt stocate în Meniu > Articole.\n\n Pentru a ecloza un Companion, ai nevoie de un Ou și o Poțiune de Eclozat. Apasă pe Ou pentru a stabili specia pe care vrei să o eclozezi și selectează „Eclozează oul”. Apoi alege Poțiunea de Eclozat pentru a stabili culoarea acestuia! Mergi la Meniu > Compaioni pentru a adăuga noul Companion avatarului tău printr-un click pe acesta.\n\n Poți să și crești Companionii în Animale de Călărit(Mounts) dacă îi hrănești - Meniu > Companioni, apoi selectează „Hrănește companion”! Va trebui să hrănești un Companion de multe ori înainte ca acesta să devină Animal de Călărit, dar dacă afli care e mâncarea sa preferată, acesta va crește mai repede. Poți afla prin încercarea repetată sau [poți vedea spoilerele aici](http://habitica.fandom.com/wiki/Food#Food_Preferences). Odată ce ai un Animal de Călărit, mergi la Meniu > Animale de Călărit și apasă pe acesta pentru a-l adăuga avatarului.\n\n Poți obține Ouă pentru Companioni de Expediție prin completarea anumitor Expediții. (Vezi mai jos pentru a afla mai multe despre Expediții.)",
|
||||
"androidFaqAnswer6": "Every time you complete a task, you'll have a random chance at receiving an Egg, a Hatching Potion, or a piece of Pet Food. They will be stored in Menu > Items.\n\n To hatch a Pet, you'll need an Egg and a Hatching Potion. Tap on the Egg to determine the species you want to hatch, and select \"Hatch with Potion.\" Then choose a Hatching Potion to determine its color! To equip your new Pet, go to Menu > Stable > Pets, select a species, click on the desired Pet, and select \"Use\"(Your Avatar doesn't update to reflect the change). \n\n You can also grow your Pets into Mounts by feeding them under Menu > Stable [ > Pets ]. Tap on a Pet, and then select \"Feed\"! You'll have to feed a Pet many times before it becomes a Mount, but if you can figure out its favorite food, it will grow more quickly. Use trial and error, or [see the spoilers here](http://habitica.fandom.com/wiki/Food#Food_Preferences). To equip your Mount, go to Menu > Stable > Mounts, select a species, click on the desired Mount, and select \"Use\"(Your Avatar doesn't update to reflect the change).\n\n You can also get Eggs for Quest Pets by completing certain Quests. (See below to learn more about Quests.)",
|
||||
"webFaqAnswer6": "Every time you complete a task, you'll have a random chance at receiving an Egg, a Hatching Potion, or a piece of Pet Food. They will be stored under Inventory > Items. To hatch a Pet, you'll need an Egg and a Hatching Potion. Once you have both an Egg and a Hatching Potion, go to Inventory > Stable, and click on the image to hatch your Pet. Once you've hatched a Pet, you can equip it by clicking on it. You can also grow your Pets into Mounts by feeding them under Inventory > Stable. Drag a piece of Pet Food from the action bar at the bottom of the screen and drop it on a Pet to feed it! You'll have to feed a Pet many times before it becomes a Mount, but if you can figure out its favorite food, it will grow more quickly. Use trial and error, or [see the spoilers here](http://habitica.fandom.com/wiki/Food#Food_Preferences). Once you have a Mount, click on it to equip it to your Avatar. You can also get Eggs for Quest Pets by completing certain Quests. (See below to learn more about Quests.)",
|
||||
"faqQuestion7": "Cum pot deveni războinic, mag, bandit sau vrăciuitor?",
|
||||
"iosFaqAnswer7": "At level 10, you can choose to become a Warrior, Mage, Rogue, or Healer. (All players start as Warriors by default.) Each Class has different equipment options, different Skills that they can cast after level 11, and different advantages. Warriors can easily damage Bosses, withstand more damage from their tasks, and help make their Party tougher. Mages can also easily damage Bosses, as well as level up quickly and restore Mana for their party. Rogues earn the most gold and find the most item drops, and they can help their Party do the same. Finally, Healers can heal themselves and their Party members.\n\n If you don't want to choose a Class immediately -- for example, if you are still working to buy all the gear of your current class -- you can click “Decide Later” and choose later under Menu > Choose Class.",
|
||||
"androidFaqAnswer7": "At level 10, you can choose to become a Warrior, Mage, Rogue, or Healer. (All players start as Warriors by default.) Each Class has different equipment options, different Skills that they can cast after level 11, and different advantages. Warriors can easily damage Bosses, withstand more damage from their tasks, and help make their Party tougher. Mages can also easily damage Bosses, as well as level up quickly and restore Mana for their party. Rogues earn the most gold and find the most item drops, and they can help their Party do the same. Finally, Healers can heal themselves and their Party members.\n\n If you don't want to choose a Class immediately -- for example, if you are still working to buy all the gear of your current class -- you can click “Opt Out” and choose later under Menu > Choose Class.",
|
||||
"webFaqAnswer7": "At level 10, you can choose to become a Warrior, Mage, Rogue, or Healer. (All players start as Warriors by default.) Each Class has different equipment options, different Skills that they can cast after level 11, and different advantages. Warriors can easily damage Bosses, withstand more damage from their tasks, and help make their party tougher. Mages can also easily damage Bosses, as well as level up quickly and restore Mana for their party. Rogues earn the most Gold and find the most item drops, and they can help their party do the same. Finally, Healers can heal themselves and their party members. If you don't want to choose a Class immediately -- for example, if you are still working to buy all the gear of your current class -- you can click \"Opt Out\" and re-enable it later under Settings.",
|
||||
"faqQuestion8": "What is the blue Stat bar that appears in the Header after level 10?",
|
||||
"faqQuestion8": "Ce este bara Status albastră care apare în Antet după nivelul 10?",
|
||||
"iosFaqAnswer8": "The blue bar that appeared when you hit level 10 and chose a Class is your Mana bar. As you continue to level up, you will unlock special Skills that cost Mana to use. Each Class has different Skills, which appear after level 11 under Menu > Use Skills. Unlike your health bar, your Mana bar does not reset when you gain a level. Instead, Mana is gained when you complete Good Habits, Dailies, and To-Dos, and lost when you indulge bad Habits. You'll also regain some Mana overnight -- the more Dailies you completed, the more you will gain.",
|
||||
"androidFaqAnswer8": "The blue bar that appeared when you hit level 10 and chose a Class is your Mana bar. As you continue to level up, you will unlock special Skills that cost Mana to use. Each Class has different Skills, which appear after level 11 under Menu > Skills. Unlike your health bar, your Mana bar does not reset when you gain a level. Instead, Mana is gained when you complete Good Habits, Dailies, and To-Dos, and lost when you indulge bad Habits. You'll also regain some Mana overnight -- the more Dailies you completed, the more you will gain.",
|
||||
"webFaqAnswer8": "The blue bar that appeared when you hit level 10 and chose a Class is your Mana bar. As you continue to level up, you will unlock special Skills that cost Mana to use. Each Class has different Skills, which appear after level 11 in the action bar at the bottom of the screen. Unlike your Health bar, your Mana bar does not reset when you gain a level. Instead, Mana is gained when you complete good Habits, Dailies, and To-Dos, and lost when you indulge bad Habits. You'll also regain some Mana overnight -- the more Dailies you completed, the more you will gain.",
|
||||
@@ -40,19 +40,19 @@
|
||||
"iosFaqAnswer9": "First, you need to join or start a Party (see above). Although you can battle monsters alone, we recommend playing in a group, because this will make Quests much easier. Plus, having a friend to cheer you on as you accomplish your tasks is very motivating!\n\n Next, you need a Quest Scroll, which are stored under Menu > Items. There are three ways to get a scroll:\n\n - At level 15, you get a Quest-line, aka three linked quests. More Quest-lines unlock at levels 30, 40, and 60 respectively. \n - When you invite people to your Party, you'll be rewarded with the Basi-List Scroll!\n - You can buy Quests from the Quests Shop for Gold and Gems.\n\n To battle the Boss or collect items for a Collection Quest, simply complete your tasks normally, and they will be tallied into damage overnight. (Reloading by pulling down on the screen may be required to see the Boss's health bar go down.) If you are fighting a Boss and you missed any Dailies, the Boss will damage your Party at the same time that you damage the Boss. \n\n After level 11 Mages and Warriors will gain Skills that allow them to deal additional damage to the Boss, so these are excellent classes to choose at level 10 if you want to be a heavy hitter.",
|
||||
"androidFaqAnswer9": "First, you need to join or start a Party (see above). Although you can battle monsters alone, we recommend playing in a group, because this will make Quests much easier. Plus, having a friend to cheer you on as you accomplish your tasks is very motivating!\n\n Next, you need a Quest Scroll, which are stored under Menu > Items. There are three ways to get a scroll:\n\n - At level 15, you get a Quest-line, aka three linked quests. More Quest-lines unlock at levels 30, 40, and 60 respectively. \n - When you invite people to your Party, you'll be rewarded with the Basi-List Scroll!\n - You can buy Quests from the Quests Shop for Gold and Gems.\n\n To battle the Boss or collect items for a Collection Quest, simply complete your tasks normally, and they will be tallied into damage overnight. (Reloading by pulling down on the screen may be required to see the Boss's health bar go down.) If you are fighting a Boss and you missed any Dailies, the Boss will damage your Party at the same time that you damage the Boss. \n\n After level 11 Mages and Warriors will gain Skills that allow them to deal additional damage to the Boss, so these are excellent classes to choose at level 10 if you want to be a heavy hitter.",
|
||||
"webFaqAnswer9": "First, you need to join or start a Party by clicking \"Party\" in the navigation bar. Although you can battle monsters alone, we recommend playing in a group, because this will make quests much easier. Plus, having a friend to cheer you on as you accomplish your tasks is very motivating! Next, you need a Quest Scroll, which are stored under Inventory > Quests. There are four ways to get a scroll:\n * When you invite people to your Party, you'll be rewarded with the Basi-List Scroll!\n * At level 15, you get a Quest-line, i.e., three linked quests. More Quest-lines unlock at levels 30, 40, and 60 respectively.\n * You can buy Quests from the Quests Shop (Shops > Quests) for Gold and Gems.\n * When you check in to Habitica a certain number of times, you'll be rewarded with Quest Scrolls. You earn a Scroll during your 1st, 7th, 22nd, and 40th check-ins.\n To battle the Boss or collect items for a Collection Quest, simply complete your tasks normally, and they will be tallied into damage overnight. (Reloading may be required to see the Boss's Health bar go down.) If you are fighting a Boss and you missed any Dailies, the Boss will damage your Party at the same time that you damage the Boss. After level 11 Mages and Warriors will gain Skills that allow them to deal additional damage to the Boss, so these are excellent classes to choose at level 10 if you want to be a heavy hitter.",
|
||||
"faqQuestion10": "What are Gems, and how do I get them?",
|
||||
"faqQuestion10": "Ce sunt Nestematele și cum le primesc?",
|
||||
"iosFaqAnswer10": "Gems are purchased with real money by tapping on the Gem icon in the header. When people buy Gems, they are helping us to keep the site running. We're very grateful for their support!\n\n In addition to buying Gems directly, there are three other ways players can gain Gems:\n\n * Win a Challenge that has been set up by another player. Go to Social > Challenges to join some.\n * Subscribe and unlock the ability to buy a certain number of Gems per month.\n * Contribute your skills to the Habitica project. See this wiki page for more details: [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\n Keep in mind that items purchased with Gems do not offer any statistical advantages, so players can still make use of the app without them!",
|
||||
"androidFaqAnswer10": "Gems are purchased with real money by tapping on the Gem icon in the header. When people buy Gems, they are helping us to keep the site running. We're very grateful for their support!\n\n In addition to buying Gems directly, there are three other ways players can gain Gems:\n\n * Win a Challenge that has been set up by another player. Go to Social > Challenges to join some.\n * Subscribe and unlock the ability to buy a certain number of Gems per month.\n * Contribute your skills to the Habitica project. See this wiki page for more details: [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\n Keep in mind that items purchased with Gems do not offer any statistical advantages, so players can still make use of the app without them!",
|
||||
"webFaqAnswer10": "Gems are purchased with real money, although [subscribers](https://habitica.com/user/settings/subscription) can purchase them with Gold. When people subscribe or buy Gems, they are helping us to keep the site running. We're very grateful for their support! In addition to buying Gems directly or becoming a subscriber, there are two other ways players can gain Gems:\n* Win a Challenge that has been set up by another player. Go to Challenges > Discover Challenges to join some.\n * Contribute your skills to the Habitica project. See this wiki page for more details: [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica). Keep in mind that items purchased with Gems do not offer any statistical advantages, so players can still make use of the site without them!",
|
||||
"faqQuestion11": "Cum raportez un defect sau cer o funcționalitate?",
|
||||
"iosFaqAnswer11": "You can report a bug, request a feature, or send feedback under Menu > About > Report a Bug and Menu > About > Send Feedback! We'll do everything we can to assist you.",
|
||||
"androidFaqAnswer11": "You can report a bug, request a feature, or send feedback under About > Report a Bug and About > Send us Feedback! We'll do everything we can to assist you.",
|
||||
"webFaqAnswer11": "To report a bug, go to [Help > Report a Bug](https://habitica.com/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac) and read the points above the chat box. If you're unable to log in to Habitica, send your login details (not your password!) to [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Don't worry, we'll get you fixed up soon! Feature requests are collected on Trello. Go to [Help > Request a Feature](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) and follow the instructions. Ta-da!",
|
||||
"iosFaqAnswer11": "Puteți raporta o eroare, puteți solicita o caracteristică sau puteți trimite feedback sub Meniu> Despre > Raportați o eroare și Meniu > Despre > Trimiteți feedback! Vom face tot ce putem pentru a vă ajuta.",
|
||||
"androidFaqAnswer11": "Puteți raporta o eroare, puteți solicita o caracteristică sau puteți trimite feedback sub Despre > Raportați o eroare și Despre > Trimiteți-ne feedback! Vom face tot ce putem pentru a vă ajuta.",
|
||||
"webFaqAnswer11": "Pentru a raporta o eroare, accesați [Ajutor > Raportați o eroare](https://habitica.com/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac) și citiți punctele de deasupra casetei de chat. Dacă nu vă puteți conecta la Habitica, trimiteți datele de autentificare (nu parola dvs.) la [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Nu vă faceți griji, vă vom ajuta în curând! Cererile de caracteristici sunt colectate pe Trello. Accesați [Ajutor > Cere o facilitate](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) și urmați instrucțiunile. Ta-da!",
|
||||
"faqQuestion12": "Cum mă lupt cu un căpcăun șef?",
|
||||
"iosFaqAnswer12": "World Bosses are special monsters that appear in the Tavern. All active users are automatically battling the Boss, and their tasks and Skills will damage the Boss as usual.\n\n You can also be in a normal Quest at the same time. Your tasks and Skills will count towards both the World Boss and the Boss/Collection Quest in your party.\n\n A World Boss will never hurt you or your account in any way. Instead, it has a Rage Bar that fills when users skip Dailies. If its Rage bar fills, it will attack one of the Non-Player Characters around the site and their image will change.\n\n You can read more about [past World Bosses](http://habitica.fandom.com/wiki/World_Bosses) on the wiki.",
|
||||
"androidFaqAnswer12": "World Bosses are special monsters that appear in the Tavern. All active users are automatically battling the Boss, and their tasks and Skills will damage the Boss as usual.\n\n You can also be in a normal Quest at the same time. Your tasks and Skills will count towards both the World Boss and the Boss/Collection Quest in your party.\n\n A World Boss will never hurt you or your account in any way. Instead, it has a Rage Bar that fills when users skip Dailies. If its Rage bar fills, it will attack one of the Non-Player Characters around the site and their image will change.\n\n You can read more about [past World Bosses](http://habitica.fandom.com/wiki/World_Bosses) on the wiki.",
|
||||
"webFaqAnswer12": "World Bosses are special monsters that appear in the Tavern. All active users are automatically battling the Boss, and their tasks and Skills will damage the Boss as usual. You can also be in a normal Quest at the same time. Your tasks and Skills will count towards both the World Boss and the Boss/Collection Quest in your party. A World Boss will never hurt you or your account in any way. Instead, it has a Rage Bar that fills when users skip Dailies. If its Rage bar fills, it will attack one of the Non-Player Characters around the site and their image will change. You can read more about [past World Bosses](http://habitica.fandom.com/wiki/World_Bosses) on the wiki.",
|
||||
"iosFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](http://habitica.fandom.com/wiki/FAQ), come ask in the Tavern chat under Menu > Tavern! We're happy to help.",
|
||||
"androidFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](http://habitica.fandom.com/wiki/FAQ), come ask in the Tavern chat under Menu > Tavern! We're happy to help.",
|
||||
"webFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](http://habitica.fandom.com/wiki/FAQ), come ask in the [Habitica Help guild](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! We're happy to help."
|
||||
}
|
||||
"iosFaqStillNeedHelp": "Dacă aveți o întrebare care nu se află pe această listă sau pe [Întrebări frecvente Wiki](https://habitica.fandom.com/wiki/FAQ), veniți să întrebați în chat-ul Taclale la Cârciumă sub Meniu > Taclale la Cârciumă! Suntem fericiți să vă ajutăm.",
|
||||
"androidFaqStillNeedHelp": "Dacă aveți o întrebare care nu se află pe această listă sau pe [Întrebări frecvente Wiki](https://habitica.fandom.com/wiki/FAQ), veniți să întrebați în chat-ul Taclale la Cârciumă sub Meniu > Taclale la Cârciumă! Suntem fericiți să vă ajutăm.",
|
||||
"webFaqStillNeedHelp": "Dacă aveți o întrebare care nu se află pe această listă sau pe [Întrebări frecvente Wiki](https://habitica.fandom.com/wiki/FAQ), întrebați în [Ghilda Ajutor Habitica](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! Suntem fericiți să vă ajutăm."
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"termsAndAgreement": "Apăsând butonul de mai jos, indici că ai citit și că ești de acord cu <a href='/static/terms'>Termenii și Condițiile</a> și <a href='/static/privacy'>Politica de Intimitate</a>.",
|
||||
"accept1Terms": "Prin apăsarea butonului de mai jos, sunt de acord cu",
|
||||
"accept2Terms": "și cu",
|
||||
"alexandraQuote": "Couldn't NOT talk about [Habitica] during my speech in Madrid. Must-have tool for freelancers who still need a boss.",
|
||||
"alexandraQuote": "Nu puteam să NU vorbesc despre [Habitica] în timpul discursului meu din Madrid. Instrument indispensabil pentru freelanceri care încă au nevoie de un șef.",
|
||||
"althaireQuote": "Having a quest constantly on really motivates me to do all my dailies and do all my to-dos. My biggest motivation is not letting my party down.",
|
||||
"andeeliaoQuote": "Awesome product, just started a few days ago and already more conscious and productive with my time!",
|
||||
"autumnesquirrelQuote": "I'm procrastinating less on work and housework and pay bills on time.",
|
||||
@@ -266,7 +266,7 @@
|
||||
"missingNewPassword": "Missing new password.",
|
||||
"invalidEmailDomain": "You cannot register with emails with the following domains: <%= domains %>",
|
||||
"wrongPassword": "Wrong password.",
|
||||
"incorrectDeletePhrase": "Please type <%= magicWord %> in all caps to delete your account.",
|
||||
"incorrectDeletePhrase": "Please type <%= magicWord %> in all capital letters to delete your account.",
|
||||
"notAnEmail": "Invalid email address.",
|
||||
"emailTaken": "Email address is already used in an account.",
|
||||
"newEmailRequired": "Missing new email address.",
|
||||
@@ -283,7 +283,7 @@
|
||||
"passwordResetEmailHtml": "If you requested a password reset for <strong><%= username %></strong> on Habitica, <a href=\"<%= passwordResetLink %>\">click here</a> to set a new one. The link will expire after 24 hours.<br/><br>If you haven't requested a password reset, please ignore this email.",
|
||||
"invalidLoginCredentialsLong": "Uh-oh - your email address / username or password is incorrect.\n- Make sure they are typed correctly. Your username and password are case-sensitive.\n- You may have signed up with Facebook or Google-sign-in, not email so double-check by trying them.\n- If you forgot your password, click \"Forgot Password\".",
|
||||
"invalidCredentials": "There is no account that uses those credentials.",
|
||||
"accountSuspended": "This account, User ID \"<%= userId %>\", has been blocked for breaking the [Community Guidelines](https://habitica.com/static/community-guidelines) or [Terms of Service](https://habitica.com/static/terms). For details or to ask to be unblocked, please email our Community Manager at <%= communityManagerEmail %> or ask your parent or guardian to email them. Please copy your User ID into the email and include your username.",
|
||||
"accountSuspended": "This account, User ID \"<%= userId %>\", has been blocked for breaking the Community Guidelines (https://habitica.com/static/community-guidelines) or Terms of Service (https://habitica.com/static/terms). For details or to ask to be unblocked, please email our Community Manager at <%= communityManagerEmail %> or ask your parent or guardian to email them. Please include your @Username in the email.",
|
||||
"accountSuspendedTitle": "Account has been suspended",
|
||||
"unsupportedNetwork": "This network is not currently supported.",
|
||||
"cantDetachSocial": "Account lacks another authentication method; can't detach this authentication method.",
|
||||
@@ -325,10 +325,12 @@
|
||||
"muchmuchMoreDesc": "Our fully customizable task list means that you can shape Habitica to fit your personal goals. Work on creative projects, emphasize self-care, or pursue a different dream -- it's all up to you.",
|
||||
"levelUpAnywhere": "Level Up Anywhere",
|
||||
"levelUpAnywhereDesc": "Our mobile apps make it simple to keep track of your tasks on-the-go. Accomplish your goals with a single tap, no matter where you are.",
|
||||
"joinMany": "Join over 2,000,000 people having fun while accomplishing their goals!",
|
||||
"joinMany": "Join over <%= userCountInMillions %> million people having fun while accomplishing their goals!",
|
||||
"joinToday": "Join Habitica Today",
|
||||
"signup": "Sign Up",
|
||||
"getStarted": "Get Started!",
|
||||
"mobileApps": "Mobile Apps",
|
||||
"learnMore": "Learn More"
|
||||
"learnMore": "Learn More",
|
||||
"communityInstagram": "Instagram",
|
||||
"minPasswordLength": "Password must be 8 characters or more."
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"gearNotOwned": "Nu deții acest obiect.",
|
||||
"noGearItemsOfType": "Nu deții nimic dintre acestea.",
|
||||
"noGearItemsOfClass": "Ai deja tot echipamentul specific clasei tale! Mai multe echipamente vor apărea în timpul Galelor Grand, în apropierea solstițiilor și echinocțiilor.",
|
||||
"classLockedItem": "Acest obiect este disponibil numai unei anumite clase. Schimbă-ți clasa de la icon-ul de Utilizator > Setări > Constituție Personaj!",
|
||||
"classLockedItem": "Acest obiect este disponibil numai unei anumite clase. La nivelul 10, schimbă-ți clasa de la icon-ul de Utilizator > Setări > Constituție Personaj!",
|
||||
"tierLockedItem": "Acest obiect este disponibil doar odată cu achiziționarea celorlalte obiecte precedente din secvență. Continuă să-ți croiești calea!",
|
||||
"sortByType": "Tip",
|
||||
"sortByPrice": "Preț",
|
||||
@@ -279,7 +279,7 @@
|
||||
"weaponSpecialWinter2019WarriorText": "Snowflake Halberd",
|
||||
"weaponSpecialWinter2019WarriorNotes": "This snowflake was grown, ice crystal by ice crystal, into a diamond-hard blade! Increases Strength by <%= str %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
"weaponSpecialWinter2019MageText": "Fiery Dragon Staff",
|
||||
"weaponSpecialWinter2019MageNotes": "Watch out! This explosive staff is ready to help you take on all comers. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018-2019 Winter Gear",
|
||||
"weaponSpecialWinter2019MageNotes": "Watch out! This explosive staff is ready to help you take on all comers. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
"weaponSpecialWinter2019HealerText": "Wand of Winter",
|
||||
"weaponSpecialWinter2019HealerNotes": "Winter can be a time of rest and healing, and so this wand of winter magic can help to soothe the most grievous hurts. Increases Intelligence by <%= int %>. Limited Edition 2018-2019 Winter Gear.",
|
||||
"weaponMystery201411Text": "Furca îmbuibării",
|
||||
@@ -1181,7 +1181,7 @@
|
||||
"headArmoireRancherHatText": "Rancher Hat",
|
||||
"headArmoireRancherHatNotes": "Round up your pets and wrangle your mounts while wearing this magical Rancher Hat! Increases Strength by <%= str %>, Perception by <%= per %>, and Intelligence by <%= int %>. Enchanted Armoire: Rancher Set (Item 1 of 3).",
|
||||
"headArmoireBlueHairbowText": "Blue Hairbow",
|
||||
"headArmoireBlueHairbowNotes": "Become perceptive, tough, and smart while wearing this beautiful Blue Hairbow! Increases Perception by <%= per %>, Constitution by <%= con %>, and Intelligence by <%= int %>. Enchanted Armoire: Independent Item.",
|
||||
"headArmoireBlueHairbowNotes": "Become perceptive, tough, and smart while wearing this beautiful Blue Hairbow! Increases Perception by <%= per %>, Constitution by <%= con %>, and Intelligence by <%= int %>. Enchanted Armoire: Blue Hairbow Set (Item 1 of 2).",
|
||||
"headArmoireRoyalCrownText": "Royal Crown",
|
||||
"headArmoireRoyalCrownNotes": "Hooray for the ruler, mighty and strong! Increases Strength by <%= str %>. Enchanted Armoire: Royal Set (Item 1 of 3).",
|
||||
"headArmoireGoldenLaurelsText": "Golden Laurels",
|
||||
@@ -1747,5 +1747,347 @@
|
||||
"eyewearArmoirePlagueDoctorMaskNotes": "An authentic mask worn by the doctors who battle the Plague of Procrastination. Increases Constitution and Intelligence by <%= attrs %> each. Enchanted Armoire: Plague Doctor Set (Item 2 of 3).",
|
||||
"eyewearArmoireGoofyGlassesText": "Goofy Glasses",
|
||||
"eyewearArmoireGoofyGlassesNotes": "Perfect for going incognito or just making your partymates giggle. Increases Perception by <%= per %>. Enchanted Armoire: Independent Item.",
|
||||
"twoHandedItem": "Two-handed item."
|
||||
"twoHandedItem": "Two-handed item.",
|
||||
"weaponSpecialSpring2019WarriorText": "Stem Sword",
|
||||
"weaponSpecialSpring2019WarriorNotes": "Bad habits cower before this verdant blade. Increases Strength by <%= str %>. Limited Edition 2019 Spring Gear.",
|
||||
"weaponSpecialSpring2019MageText": "Amber Staff",
|
||||
"weaponSpecialSpring2019MageNotes": "There's a mosquito embedded in the stone at the end of this staff! May or may not include Dino DNA. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"weaponSpecialSpring2019HealerText": "Spring Song",
|
||||
"weaponSpecialSpring2019HealerNotes": "Your song of flowers and rain will soothe the spirits of all who hear. Increases Intelligence by <%= int %>. Limited Edition 2019 Spring Gear.",
|
||||
"weaponSpecialSummer2019RogueText": "Antiquated Anchor",
|
||||
"weaponSpecialSummer2019RogueNotes": "This ancient and formidable weapon will help you win any undersea battle. Increases Strength by <%= str %>. Limited Edition 2019 Summer Gear.",
|
||||
"weaponSpecialSummer2019WarriorText": "Red Coral",
|
||||
"weaponSpecialSummer2019WarriorNotes": "Now you're fighting with fractals! Increases Strength by <%= str %>. Limited Edition 2019 Summer Gear.",
|
||||
"weaponSpecialSummer2019MageText": "Brilliant Bloom",
|
||||
"weaponSpecialSummer2019MageNotes": "Fruit of your labors, first picked from the pool, this little treasure empowers and inspires. Increases Intelligence by <%= int %>. Limited Edition 2019 Summer Gear.",
|
||||
"weaponSpecialSummer2019HealerText": "Bubble Wand",
|
||||
"weaponSpecialSummer2019HealerNotes": "The bubbles from this wand capture healing energy and ancient oceanic magic. Increases Intelligence by <%= int %>. Limited Edition 2019 Summer Gear.",
|
||||
"weaponSpecialFall2019RogueText": "Music Stand",
|
||||
"weaponSpecialFall2019RogueNotes": "Whether you're conducting the orchestra or singing an aria, this helpful device keeps your hands free for dramatic gestures! Increases Strength by <%= str %>. Limited Edition 2019 Autumn Gear.",
|
||||
"weaponSpecialFall2019WarriorText": "Talon Trident",
|
||||
"weaponSpecialFall2019WarriorNotes": "Prepare to rend your foes with the talons of a raven! Increases Strength by <%= str %>. Limited Edition 2019 Autumn Gear.",
|
||||
"weaponSpecialFall2019MageText": "One-Eyed Staff",
|
||||
"weaponSpecialFall2019MageNotes": "Be it forging thunderbolts, raising fortifications, or simply striking terror into the hearts of mortals, this staff lends the power of giants to work wonders. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2019 Autumn Gear.",
|
||||
"weaponSpecialFall2019HealerText": "Fearsome Phylactery",
|
||||
"weaponSpecialFall2019HealerNotes": "This phylactery can call on the spirits of tasks long slain and use their healing power. Increases Intelligence by <%= int %>. Limited Edition 2019 Autumn Gear.",
|
||||
"weaponSpecialWinter2020RogueText": "Lantern Rod",
|
||||
"weaponSpecialWinter2020RogueNotes": "Darkness is a Rogue's element. Who better, then, to light the way in the darkest time of year? Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020WarriorText": "Pointy Conifer Cone",
|
||||
"weaponSpecialWinter2020WarriorNotes": "Back, squirrels! You will take no piece of this! ...But if you all want to hang out and have cocoa, that's cool. Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020MageText": "Rippling Sound Waves",
|
||||
"weaponSpecialWinter2020MageNotes": "With practice, you can project this aural magic at any desired frequency: a meditative hum, a festive chime, or a RED TASK OVERDUE ALARM. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialWinter2020HealerText": "Clove Scepter",
|
||||
"weaponSpecialWinter2020HealerNotes": "Wave it about, and its aroma will summon your friends and helpers to begin cooking and baking! Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"weaponSpecialSpring2020RogueText": "Lazurite Blade",
|
||||
"weaponSpecialSpring2020RogueNotes": "You'll strike so fast it'll look even MORE blue! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.",
|
||||
"weaponSpecialSpring2020WarriorText": "Sharpened Wing",
|
||||
"weaponSpecialSpring2020WarriorNotes": "Fight or flight, this wing will serve you well! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.",
|
||||
"weaponSpecialSpring2020MageText": "Raindrops",
|
||||
"weaponArmoireResplendentRapierNotes": "Demonstrate your swordsmanship with this sharply pointed weapon. Increases Perception by <%= per %>. Enchanted Armoire: Independent Item.",
|
||||
"weaponArmoireShadowMastersMaceText": "Shadow Master's Mace",
|
||||
"weaponArmoireShadowMastersMaceNotes": "Creatures of darkness will obey your every command when you wave this glowing mace. Increases Perception by <%= per %>. Enchanted Armoire: Shadow Master Set (Item 3 of 4).",
|
||||
"weaponArmoireAlchemistsDistillerText": "Alchemist's Distiller",
|
||||
"weaponArmoireAlchemistsDistillerNotes": "Purify metals and other magical compounds with this shiny brass instrument. Increases Strength by <%= str %> and Intelligence by <%= int %>. Enchanted Armoire: Alchemist Set (Item 3 of 4).",
|
||||
"weaponArmoireHappyBannerText": "Happy Banner",
|
||||
"weaponArmoireHappyBannerNotes": "Is the “H” for Happy, or Habitica? Your choice! Increases Perception by <%= per %>. Enchanted Armoire: Happy Birthday Set (Item 3 of 4).",
|
||||
"weaponArmoireLivelyMatchText": "A Lively Match",
|
||||
"weaponArmoireLivelyMatchNotes": "When you're holding this, you're sure to spark someone's interest! Increases Strength by <%= str %>. Enchanted Armoire: Match Maker Set (Item 3 of 4).",
|
||||
"weaponArmoireBaseballBatText": "Baseball Bat",
|
||||
"weaponArmoireBaseballBatNotes": "Get a home run on those good habits! Increases Constitution by <%= con %>. Enchanted Armoire: Baseball Set (Item 3 of 4).",
|
||||
"weaponArmoirePaperCutterText": "Paper Cutter",
|
||||
"weaponArmoirePaperCutterNotes": "This may not look fearsome, but have you never had a papercut? Increases Strength by <%= str %>. Enchanted Armoire: Paper Knight Set (Item 1 of 3).",
|
||||
"armorSpecialKS2019Text": "Mythic Gryphon Armor",
|
||||
"armorSpecialKS2019Notes": "Glowing from within like a gryphon's noble heart, this resplendent armor encourages you to take pride in your accomplishments. Increases Constitution by <%= con %>.",
|
||||
"armorSpecialBirthday2020Text": "Outrageous Party Robes",
|
||||
"armorSpecialBirthday2020Notes": "Happy Birthday, Habitica! Wear these Outrageous Party Robes to celebrate this wonderful day. Confers no benefit.",
|
||||
"armorSpecialSpring2019RogueText": "Cloud Armor",
|
||||
"armorSpecialSpring2019RogueNotes": "Some very tuff fluff. Increases Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019WarriorText": "Orchid Armor",
|
||||
"armorSpecialSpring2019WarriorNotes": "Steely armor of reinforced petals protects your heart and also looks pretty snazzy. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019MageText": "Amber Robes",
|
||||
"armorSpecialSpring2019MageNotes": "These robes gather power from magic resin embedded in the fibers of ancient bark that compose the cloth. Increases Intelligence by <%= int %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSpring2019HealerText": "Robin Costume",
|
||||
"armorSpecialSpring2019HealerNotes": "Your bright feathers will let everyone know that the cold and dark of winter has passed. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"armorSpecialSummer2019RogueText": "Hammerhead Tail",
|
||||
"armorSpecialSummer2019RogueNotes": "This sinuous tail is perfect for making tight turns during daring aquatic escapes. Increases Perception by <%= per %>. Limited Edition 2019 Summer Gear.",
|
||||
"armorSpecialSummer2019WarriorText": "Carapace Armor",
|
||||
"armorSpecialSummer2019WarriorNotes": "Warriors are known for their sturdy defenses. Turtles are known for their thick shells. It's a perfect match! Just... try not to fall over backward, ever. Increases Constitution by <%= con %>. Limited Edition 2019 Summer Gear.",
|
||||
"armorSpecialSummer2019MageText": "Floral Frock",
|
||||
"armorSpecialSummer2019MageNotes": "The lilies will know you as one of their own, and will not fear your approach. Increases Intelligence by <%= int %>. Limited Edition 2019 Summer Gear.",
|
||||
"armorSpecialSummer2019HealerText": "Tropical Tides Tail",
|
||||
"armorSpecialSummer2019HealerNotes": "Glide sleekly through warm coastal waters with this elegant tail. Increases Constitution by <%= con %>. Limited Edition 2019 Summer Gear.",
|
||||
"armorSpecialFall2019RogueText": "Caped Opera Coat",
|
||||
"armorSpecialFall2019RogueNotes": "This outfit comes complete with white gloves, and is ideal for brooding in your private box above the stage or making startling entrances down grand staircases. Increases Perception by <%= per %>. Limited Edition 2019 Autumn Gear.",
|
||||
"armorSpecialFall2019WarriorText": "Wings of Night",
|
||||
"armorSpecialFall2019WarriorNotes": "These feathered robes grant the power of flight, allowing you to soar over any battle. Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
"armorSpecialFall2019MageText": "Smock of Polyphemus",
|
||||
"armorSpecialFall2019MageNotes": "Its namesake met a terrible fate. But you will not be so easily tricked! Garb yourself in this mantle of legend and nobody will surpass you. Increases Intelligence by <%= int %>. Limited Edition 2019 Autumn Gear.",
|
||||
"armorSpecialFall2019HealerText": "Robes of Darkness",
|
||||
"armorSpecialFall2019HealerNotes": "It's said these robes are made of pure night. Use the dark power wisely! Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
"armorSpecialWinter2020RogueText": "Poofy Parka",
|
||||
"armorSpecialWinter2020RogueNotes": "While no doubt you can brave storms with the inner warmth of your drive and devotion, it doesn't hurt to dress for the weather. Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020WarriorText": "Bark Armor",
|
||||
"armorSpecialWinter2020WarriorNotes": "O mighty pine, o towering fir, lend your strength. Or rather, your Constitution! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020MageText": "Curvy Coat",
|
||||
"armorSpecialWinter2020MageNotes": "Ring in the new year warm, comfy, and buffered against excessive vibration. Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialWinter2020HealerText": "Orange Peel Gown",
|
||||
"armorSpecialWinter2020HealerNotes": "An opulent gown for those with festive zest! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"armorSpecialSpring2020RogueText": "Ultramarine Armor",
|
||||
"armorSpecialSpring2020RogueNotes": "The color of twilight, of a multitude of precious stones, of the deepest sea! Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.",
|
||||
"armorSpecialSpring2020WarriorText": "Exoskeleton Armor",
|
||||
"armorSpecialSpring2020WarriorNotes": "This rigid carapace can keep you safe from even the most crushing attacks. Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.",
|
||||
"armorSpecialSpring2020MageText": "Whirlpuddle Gown",
|
||||
"armorSpecialSpring2020MageNotes": "If you can't resist stomping through the leavings of rainstorms, this armor is for you! Turn a childish impulse into a display of mystic artistry. Increases Intelligence by <%= int %>. Limited Edition 2020 Spring Gear.",
|
||||
"armorSpecialSpring2020HealerText": "Protective Petals",
|
||||
"armorSpecialSpring2020HealerNotes": "Wrap yourself in soft iris leaves and petals to fool enemies into underestimating your healing power. Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.",
|
||||
"armorMystery201903Text": "Shell-ebration Armor",
|
||||
"armorMystery201903Notes": "People are dye-ing to know where you got this egg-cellent outfit! Confers no benefit. March 2019 Subscriber Item.",
|
||||
"armorMystery201904Text": "Opalescent Outfit",
|
||||
"armorMystery201904Notes": "This shining garment has opals sewn into the front panel to grant you arcane powers and a fabulous look. Confers no benefit. April 2019 Subscriber Item.",
|
||||
"armorMystery201906Text": "Kindly Koi Tail",
|
||||
"armorMystery201906Notes": "We will spare you a pun about “playing koi.” Oh wait, oops. Confers no benefit. June 2019 Subscriber Item.",
|
||||
"armorMystery201907Text": "Flowery Shirt",
|
||||
"armorMystery201907Notes": "Stay cool and look cool on even the hottest summer day. Confers no benefit. July 2019 Subscriber Item.",
|
||||
"armorMystery201908Text": "Footloose Faun Costume",
|
||||
"armorMystery201908Notes": "These legs were made for dancing! And that's just what they'll do. Confers no benefit. August 2019 Subscriber Item.",
|
||||
"armorMystery201909Text": "Affable Acorn Armor",
|
||||
"headMystery201904Text": "Opulent Opal Circlet",
|
||||
"headArmoireToqueBlancheNotes": "According to legend, the number of folds in this hat indicate the number of ways you know how to cook an egg! Is it accurate? Increases Perception by <%= per %>. Enchanted Armoire: Chef Set (Item 1 of 4).",
|
||||
"armorMystery201909Notes": "Your tough exterior is protective, but it's still best to keep an eye out for squirrels... Confers no benefit. September 2019 Subscriber Item.",
|
||||
"armorMystery201910Text": "Cryptic Armor",
|
||||
"armorMystery201910Notes": "This enigmatic armor will protect you from terrors seen and unseen. Confers no benefit. October 2019 Subscriber Item.",
|
||||
"armorArmoireChefsJacketText": "Chef's Jacket",
|
||||
"armorArmoireChefsJacketNotes": "This thick cotton jacket is double-breasted to protect you from spills (and conveniently reversible…). Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 2 of 4).",
|
||||
"armorArmoireVernalVestmentText": "Vernal Vestment",
|
||||
"armorArmoireVernalVestmentNotes": "This silky garment is perfect for enjoying mild spring weather in style. Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Vernal Vestments Set (Item 2 of 3).",
|
||||
"armorArmoireNephriteArmorText": "Nephrite Armor",
|
||||
"armorArmoireNephriteArmorNotes": "Made from strong steel rings and decorated with jade, this armor will protect you from procrastination! Increases Strength by <%= str %> and Perception by <%= per %>. Enchanted Armoire: Nephrite Archer Set (Item 3 of 3).",
|
||||
"armorArmoireBoatingJacketText": "Boating Jacket",
|
||||
"armorArmoireBoatingJacketNotes": "Whether you're on a swanky yacht or in a jalopy, you'll be the cat's meow in this jacket and tie. Increases Strength, Intelligence, and Perception by <%= attrs %> each. Enchanted Armoire: Boating Set (Item 1 of 3).",
|
||||
"armorArmoireAstronomersRobeText": "Astronomer's Robe",
|
||||
"armorArmoireAstronomersRobeNotes": "Turns out silk and starlight make a fabric that is not only magical, but very breathable. Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Astronomer Mage Set (Item 1 of 3).",
|
||||
"armorArmoireInvernessCapeText": "Inverness Cape",
|
||||
"armorArmoireInvernessCapeNotes": "This sturdy garment will let you search for clues in any type of weather. Increases Perception and Intelligence by <%= attrs %> each. Enchanted Armoire: Detective Set (Item 2 of 4).",
|
||||
"armorArmoireShadowMastersRobeText": "Shadow Master's Robe",
|
||||
"armorArmoireShadowMastersRobeNotes": "The fabric of this flowy robe is woven from the darkest shadows in the deepest caves of Habitica. Increases Constitution by <%= con %>. Enchanted Armoire: Shadow Master Set (Item 1 of 4).",
|
||||
"armorArmoireAlchemistsRobeText": "Alchemist's Robe",
|
||||
"armorArmoireAlchemistsRobeNotes": "Any number of dangerous elixirs are involved in creating arcane metals and gems, and these heavy robes will protect you from harm and unintended side effects! Increases Constitution by <%= con %> and Perception by <%= per %>. Enchanted Armoire: Alchemist Set (Item 1 of 4).",
|
||||
"armorArmoireDuffleCoatText": "Duffle Coat",
|
||||
"armorArmoireDuffleCoatNotes": "Travel frosty realms in style with this cozy wool coat. Increases Constitution and Perception by <%= attrs %> each. Enchanted Armoire: Duffle Coat Set (Item 1 of 2).",
|
||||
"armorArmoireLayerCakeArmorText": "Layer Cake Armor",
|
||||
"armorArmoireLayerCakeArmorNotes": "It's protective and tasty! Increases Constitution by <%= con %>. Enchanted Armoire: Happy Birthday Set (Item 2 of 4).",
|
||||
"armorArmoireMatchMakersApronText": "Match Maker's Apron",
|
||||
"armorArmoireMatchMakersApronNotes": "This apron is for safety, but for humor's sake we can make light of it. Increases Constitution, Strength, and Intelligence by <%= attrs %> each. Enchanted Armoire: Match Maker Set (Item 1 of 4).",
|
||||
"armorArmoireBaseballUniformText": "Baseball Uniform",
|
||||
"armorArmoireBaseballUniformNotes": "Pinstripes never go out of style. Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Baseball Set (Item 2 of 4).",
|
||||
"armorArmoireBoxArmorText": "Box Armor",
|
||||
"armorArmoireBoxArmorNotes": "Box Armor: It fits, therefore you sits... uh, therefore you wear it into battle, like the bold knight you are! Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Paper Knight Set (Item 3 of 3). ",
|
||||
"headSpecialPiDayText": "Pi Hat",
|
||||
"headSpecialPiDayNotes": "Try to balance this slice of delicious pie on your head while walking in a circle. Or throw it at a red Daily! Or you could just eat it. Your choice! Confers no benefit.",
|
||||
"headSpecialKS2019Text": "Mythic Gryphon Helm",
|
||||
"headSpecialKS2019Notes": "Adorned with a gryphon's likeness and plumage, this glorious helmet symbolizes the way your skills and bearing stand as an example to others. Increases Intelligence by <%= int %>.",
|
||||
"headSpecialSpring2019RogueText": "Cloud Helm",
|
||||
"headSpecialSpring2019RogueNotes": "No one will notice a cloud quietly drifting toward their stash of Gold, right? Increases Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"headSpecialSpring2019WarriorText": "Orchid Helm",
|
||||
"headSpecialSpring2019WarriorNotes": "This helm is unbreakable and tough! Also it attracts butterflies. Increases Strength by <%= str %>. Limited Edition 2019 Spring Gear.",
|
||||
"headSpecialSpring2019MageText": "Amber Hat",
|
||||
"headSpecialSpring2019MageNotes": "A glowing amber gem grants this hat the power of arcane natural forces. Increases Perception by <%= per %>. Limited Edition 2019 Spring Gear.",
|
||||
"headSpecialSpring2019HealerText": "Robin Helm",
|
||||
"headSpecialSpring2019HealerNotes": "Be ready for the first day of spring with this cute beaky helm. Increases Intelligence by <%= int %>. Limited Edition 2019 Spring Gear.",
|
||||
"headSpecialSummer2019RogueText": "Hammerhead Helm",
|
||||
"headSpecialSummer2019RogueNotes": "This helm gives you a 360 degree view of surrounding waters, which is perfect for sneaking up on unsuspecting red Dailies. Increases Perception by <%= per %>. Limited Edition 2019 Summer Gear.",
|
||||
"headSpecialSummer2019WarriorText": "Turtle Helm",
|
||||
"headSpecialSummer2019WarriorNotes": "It won't let you pull your head down between your shoulders, but it will protect you if you bonk the bottom of a boat. Increases Strength by <%= str %>. Limited Edition 2019 Summer Gear.",
|
||||
"headSpecialSummer2019MageText": "Lily Pad Hat",
|
||||
"headSpecialSummer2019MageNotes": "Contrary to popular belief, your head is not an appropriate place for frogs to perch. Increases Perception by <%= per %>. Limited Edition 2019 Summer Gear.",
|
||||
"headSpecialSummer2019HealerText": "Conch Crown",
|
||||
"headSpecialSummer2019HealerNotes": "The spiraling structure of this shell will help you hear any cry for help across the seven seas. Increases Intelligence by <%= int %>. Limited Edition 2019 Summer Gear.",
|
||||
"headSpecialFall2019RogueText": "Antique Opera Hat",
|
||||
"headSpecialFall2019RogueNotes": "Did you find this headpiece at an auction of possibly-cursed costume pieces, or in the attic of an eccentric grandparent? Whatever its origin, its age and wear add to your air of mystery. Increases Perception by <%= per %>. Limited Edition 2019 Autumn Gear.",
|
||||
"headSpecialFall2019WarriorText": "Obsidian Skull Helmet",
|
||||
"headSpecialFall2019WarriorNotes": "The dark eye-sockets of this skull helmet will daunt the bravest of your enemies. Increases Strength by <%= str %>. Limited Edition 2019 Autumn Gear.",
|
||||
"headSpecialFall2019MageText": "Cyclops Mask",
|
||||
"headSpecialFall2019MageNotes": "Its single baleful eye does inhibit depth perception, but that is a small price to pay for the way it hones your focus to a single, intense point. Increases Perception by <%= per %>. Limited Edition 2019 Autumn Gear.",
|
||||
"headSpecialFall2019HealerText": "Dark Miter",
|
||||
"headSpecialFall2019HealerNotes": "Don this dark miter to harness the powers of the fearsome Lich. Increases Intelligence by <%= int %>. Limited Edition 2019 Autumn Gear.",
|
||||
"headSpecialNye2019Text": "Outrageous Party Hat",
|
||||
"headSpecialNye2019Notes": "You've received an Outrageous Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
|
||||
"headSpecialWinter2020RogueText": "Floofy Stocking Cap",
|
||||
"headSpecialWinter2020RogueNotes": "A Rogue walks down the street in that hat, people know they're not afraid of anything. Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020WarriorText": "Snow-Dusted Headdress",
|
||||
"headSpecialWinter2020WarriorNotes": "A prickly feeling on your scalp is a small price to pay for seasonal magnificence. Increases Strength by <%= str %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020MageText": "Bell Crown",
|
||||
"headSpecialWinter2020MageNotes": "Oh! How the bells / Sweet golden bells / All seem to say, / “Cast ‘Burst of Flames’” Increases Perception by <%= per %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialWinter2020HealerText": "Star Anise Emblem",
|
||||
"headSpecialWinter2020HealerNotes": "Please remove it from your head before attempting to brew chai or coffee with it. Increases Intelligence by <%= int %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"headSpecialSpring2020RogueText": "Lapis Kabuto",
|
||||
"headSpecialSpring2020RogueNotes": "So vibrant and valuable, you'll be tempted to steal it off your own head. Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.",
|
||||
"headSpecialSpring2020WarriorText": "Beetle Helm",
|
||||
"headSpecialSpring2020WarriorNotes": "Your enemies' blows will glance off this beetle-inspired helm! Increases Strength by <%= str %>. Limited Edition 2020 Spring Gear.",
|
||||
"headSpecialSpring2020MageText": "Drip Top Cap",
|
||||
"headSpecialSpring2020MageNotes": "Is the sky clear? Humidity low? Don't worry, we've got you. Moisten your magic without dampening your spirits! Increases Perception by <%= per %>. Limited Edition 2020 Spring Gear.",
|
||||
"headSpecialSpring2020HealerText": "Iris Fascinator",
|
||||
"headSpecialSpring2020HealerNotes": "Beguile your foes with this headpiece made of flowers! Increases Intelligence by <%= int %>. Limited Edition 2020 Spring Gear.",
|
||||
"headMystery201903Text": "Sunny Side Up Helm",
|
||||
"headMystery201903Notes": "Some may call you an egghead, but that's OK because you know how to take a yolk. Confers no benefit. March 2019 Subscriber Item.",
|
||||
"headMystery201904Notes": "The opals in this circlet shine in every color of the rainbow, giving it a variety of magical properties. Confers no benefit. April 2019 Subscriber Item.",
|
||||
"headMystery201907Text": "Backwards Cap",
|
||||
"headMystery201907Notes": "Nothing says “I'm relaxing here!” like a backwards cap. Confers no benefit. July 2019 Subscriber Item.",
|
||||
"headMystery201909Text": "Affable Acorn Hat",
|
||||
"headMystery201909Notes": "Every acorn needs a hat! Er, cupule, if you want to get technical about it. Confers no benefit. September 2019 Subscriber Item.",
|
||||
"headMystery201910Text": "Cryptic Flame",
|
||||
"headMystery201910Notes": "These flames reveal arcane secrets before your very eyes! Confers no benefit. October 2019 Subscriber Item.",
|
||||
"headMystery201911Text": "Charmed Crystal Hat",
|
||||
"headMystery201911Notes": "Each of the crystal points attached to this hat endows you with a special power: mystic clairvoyance, arcane wisdom, and... sorcerous plate spinning? All right then. Confers no benefit. November 2019 Subscriber Item.",
|
||||
"headMystery201912Text": "Polar Pixie Crown",
|
||||
"headMystery201912Notes": "This glittering snowflake grants you resistance to the biting cold no matter how high you fly! Confers no benefit. December 2019 Subscriber Item.",
|
||||
"headMystery202001Text": "Fabled Fox Ears",
|
||||
"headMystery202001Notes": "Your hearing will be so sharp, you'll hear the stars twinkling and the moon spinning. Confers no benefit. January 2020 Subscriber Item.",
|
||||
"headMystery202003Text": "Barbed Helm",
|
||||
"headMystery202003Notes": "Be careful, this helm is sharp in more ways than one! Confers no benefit. March 2020 Subscriber Item.",
|
||||
"headArmoireToqueBlancheText": "Toque Blanche",
|
||||
"headArmoireVernalHenninText": "Vernal Hennin",
|
||||
"headArmoireVernalHenninNotes": "More than just a pretty hat, this conical chapeau can also hold a rolled-up To-Do list inside. Increases Perception by <%= per %>. Enchanted Armoire: Vernal Vestments Set (Item 1 of 3).",
|
||||
"headArmoireTricornHatText": "Tricorn Hat",
|
||||
"headArmoireTricornHatNotes": "Become a revolutionary jokester! Increases Perception by <%= per %>. Enchanted Armoire: Independent Item.",
|
||||
"headArmoireNephriteHelmText": "Nephrite Helm",
|
||||
"headArmoireNephriteHelmNotes": "The carved jade plume atop this helm is enchanted to enhance your aim. Increases Perception by <%= per %> and Intelligence by <%= int %>. Enchanted Armoire: Nephrite Archer Set (Item 2 of 3).",
|
||||
"headArmoireBoaterHatText": "Boater Hat",
|
||||
"headArmoireBoaterHatNotes": "This straw chapeau is the bee's knees! Increases Strength, Constitution, and Perception by <%= attrs %> each. Enchanted Armoire: Boating Set (Item 2 of 3).",
|
||||
"headArmoireAstronomersHatText": "Astronomer's Hat",
|
||||
"headArmoireAstronomersHatNotes": "A perfect hat for celestial observation or a fancy wizard brunch. Increases Constitution by <%= con %>. Enchanted Armoire: Astronomer Mage Set (Item 2 of 3).",
|
||||
"headArmoireDeerstalkerCapText": "Deerstalker Cap",
|
||||
"headArmoireDeerstalkerCapNotes": "This cap is perfect for rural excursions, but also is acceptable gear for mystery-solving! Increases Intelligence by <%= int %>. Enchanted Armoire: Detective Set (Item 1 of 4).",
|
||||
"headArmoireShadowMastersHoodText": "Shadow Master's Hood",
|
||||
"headArmoireShadowMastersHoodNotes": "This hood grants you the power to see through even the deepest darkness. It may occasionally require eyedrops, though. Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Shadow Master Set (Item 2 of 4).",
|
||||
"headArmoireAlchemistsHatText": "Alchemist's Hat",
|
||||
"headArmoireAlchemistsHatNotes": "While hats are not strictly necessary for alchemical practice, looking cool certainly doesn't hurt anything! Increases Perception by <%= per %>. Enchanted Armoire: Alchemist Set (Item 2 of 4).",
|
||||
"headArmoireEarflapHatText": "Earflap Hat",
|
||||
"headArmoireEarflapHatNotes": "If you're looking to keep your head toasty warm, this hat has you covered! Increases Intelligence and Strength by <%= attrs %> each. Enchanted Armoire: Duffle Coat Set (Item 2 of 2).",
|
||||
"headArmoireFrostedHelmText": "Frosted Helm",
|
||||
"headArmoireFrostedHelmNotes": "The perfect headgear for any celebration! Increases Intelligence by <%= int %>. Enchanted Armoire: Happy Birthday Set (Item 1 of 4).",
|
||||
"headArmoireMatchMakersBeretText": "Match Maker's Beret",
|
||||
"headArmoireMatchMakersBeretNotes": "You'll look striking wearing this lovely hat! Increases Constitution by <%= con %>. Enchanted Armoire: Match Maker Set (Item 2 of 4).",
|
||||
"headArmoireBaseballCapText": "Baseball Cap",
|
||||
"headArmoireBaseballCapNotes": "Let everyone know that you're on Team Habitica! Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Baseball Set (Item 1 of 4).",
|
||||
"shieldSpecialPiDayText": "Pi Shield",
|
||||
"shieldSpecialPiDayNotes": "We dare you to calculate the ratio of this shield's circumference to its deliciousness! Confers no benefit.",
|
||||
"shieldSpecialKS2019Text": "Mythic Gryphon Shield",
|
||||
"shieldSpecialKS2019Notes": "Sparkling like the shell of a gryphon egg, this magnificent shield shows you how to stand ready to help when your own burdens are light. Increases Perception by <%= per %>.",
|
||||
"shieldSpecialSpring2019WarriorText": "Leafy Shield",
|
||||
"shieldSpecialSpring2019WarriorNotes": "Let the power of chlorophyll keep your enemies at bay! Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"shieldSpecialSpring2019HealerText": "Eggshell Shield",
|
||||
"shieldSpecialSpring2019HealerNotes": "This bright shield is actually made of candy-coated chocolate. Increases Constitution by <%= con %>. Limited Edition 2019 Spring Gear.",
|
||||
"shieldSpecialSummer2019WarriorText": "Half-Shell Shield",
|
||||
"shieldSpecialSummer2019WarriorNotes": "Turtle up behind this hefty round shield, etched in the pattern of your favorite reptile's back. Increases Constitution by <%= con %>. Limited Edition 2019 Summer Gear.",
|
||||
"shieldSpecialSummer2019HealerText": "Conch Trumpet",
|
||||
"shieldSpecialSummer2019HealerNotes": "Let those who need help know you're coming with the loud blast of this shell trumpet. Limited Edition 2019 Summer Gear. Increases Constitution by 9. ",
|
||||
"shieldSpecialSummer2019MageText": "Drops of Pure Water",
|
||||
"shieldSpecialSummer2019MageNotes": "Sweating in the summer sun? No! Performing a simple elemental conjuration to fill the lily pond. Increases Perception by <%= per %>. Limited Edition 2019 Summer Gear.",
|
||||
"weaponSpecialSpring2020MageNotes": "They keep falling on your head! But you'll never stop them by complaining. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2020 Spring Gear.",
|
||||
"weaponSpecialSpring2020HealerText": "Sword-Lily Staff",
|
||||
"weaponSpecialSpring2020HealerNotes": "An iris is beautiful, but the leaves are like swords... don't be deceived by the flowers, this staff is tough as steel! Increases Intelligence by <%= int %>. Limited Edition 2020 Spring Gear.",
|
||||
"weaponMystery201911Text": "Charmed Crystal Staff",
|
||||
"weaponMystery201911Notes": "The crystal ball atop this staff can show you the future, but beware! Using such dangerous knowledge can change a person in unexpected ways. Confers no benefit. November 2019 Subscriber Item.",
|
||||
"weaponMystery202002Text": "Stylish Sweetheart Parasol",
|
||||
"weaponMystery202002Notes": "An accessory that lends you an air of mystery and romance. Sun protection is a bonus! Confers no benefit. February 2020 Subscriber Item.",
|
||||
"weaponArmoireChefsSpoonText": "Chef's Spoon",
|
||||
"weaponArmoireChefsSpoonNotes": "Raise it as you release your battle cry: “SPOOOON!!” Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 3 of 4).",
|
||||
"weaponArmoireVernalTaperText": "Vernal Taper",
|
||||
"weaponArmoireVernalTaperNotes": "The days are getting longer, but this candle will help you find your way before sunrise. Increases Constitution by <%= con %>. Enchanted Armoire: Vernal Vestments Set (Item 3 of 3).",
|
||||
"weaponArmoireJugglingBallsText": "Juggling Balls",
|
||||
"weaponArmoireJugglingBallsNotes": "Habiticans are master multi-taskers, so you should have no trouble keeping all these balls in the air! Increases Intelligence by <%= int %>. Enchanted Armoire: Independent Item.",
|
||||
"weaponArmoireSlingshotText": "Slingshot",
|
||||
"weaponArmoireSlingshotNotes": "Take aim at your red Dailies! Increases Strength by <%= str %>. Enchanted Armoire: Independent Item.",
|
||||
"weaponArmoireNephriteBowText": "Nephrite Bow",
|
||||
"weaponArmoireNephriteBowNotes": "This bow shoots special jade-tipped arrows that will take down even your most stubborn bad habits! Increases Intelligence by <%= int %> and Strength by <%= str %>. Enchanted Armoire: Nephrite Archer Set (Item 1 of 3).",
|
||||
"weaponArmoireBambooCaneText": "Bamboo Cane",
|
||||
"weaponArmoireBambooCaneNotes": "Perfect for assisting you in a stroll, or for dancing the Charleston. Increases Intelligence, Perception, and Constitution by <%= attrs %> each. Enchanted Armoire: Boating Set (Item 3 of 3).",
|
||||
"weaponArmoireAstronomersTelescopeText": "Astronomer's Telescope",
|
||||
"weaponArmoireAstronomersTelescopeNotes": "An instrument that will allow you to observe the stars' ancient dance. Increases Perception by <%= per %>. Enchanted Armoire: Astronomer Mage Set (Item 3 of 3).",
|
||||
"weaponArmoireMagnifyingGlassText": "Magnifying Glass",
|
||||
"weaponArmoireMagnifyingGlassNotes": "Aha! A piece of evidence! Examine it closely with this fine magnifier. Increases Perception by <%= per %>. Enchanted Armoire: Detective Set (Item 3 of 4).",
|
||||
"weaponArmoireFloridFanText": "Florid Fan",
|
||||
"weaponArmoireFloridFanNotes": "This lovely silk fan folds when not in use. Increases Constitution by <%= con %>. Enchanted Armoire: Independent Item.",
|
||||
"weaponArmoireResplendentRapierText": "Resplendent Rapier",
|
||||
"shieldSpecialFall2019WarriorText": "Raven-Dark Shield",
|
||||
"shieldSpecialFall2019WarriorNotes": "The dark sheen of a raven's feather made solid, this shield will frustrate all attacks. Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
"shieldSpecialFall2019HealerText": "Grotesque Grimoire",
|
||||
"shieldSpecialFall2019HealerNotes": "Harness the dark side of the Healer's arts with this Grimoire! Increases Constitution by <%= con %>. Limited Edition 2019 Autumn Gear.",
|
||||
"shieldSpecialWinter2020WarriorText": "Round Conifer Cone",
|
||||
"shieldSpecialWinter2020WarriorNotes": "Use it as a shield until the seeds drop, and then you can put it on a wreath! Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"shieldSpecialWinter2020HealerText": "Giant Cinnamon Stick",
|
||||
"shieldSpecialWinter2020HealerNotes": "Do you feel you are too good for this world, too pure? Only this beauty of a spice will do. Increases Constitution by <%= con %>. Limited Edition 2019-2020 Winter Gear.",
|
||||
"shieldSpecialSpring2020WarriorText": "Iridescent Shield",
|
||||
"shieldSpecialSpring2020WarriorNotes": "Don't let the delicate colors fool you. This shield has got you covered! Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.",
|
||||
"shieldSpecialSpring2020HealerText": "Perfumed Shield",
|
||||
"shieldSpecialSpring2020HealerNotes": "Ward off those musty old To-Dos with this sweet-smelling shield. Increases Constitution by <%= con %>. Limited Edition 2020 Spring Gear.",
|
||||
"shieldMystery201902Text": "Cryptic Confetti",
|
||||
"shieldMystery201902Notes": "This glittery paper forms magic hearts that slowly drift and dance in the air. Confers no benefit. February 2019 Subscriber Item",
|
||||
"shieldArmoireMightyPizzaText": "Mighty Pizza",
|
||||
"shieldArmoireMightyPizzaNotes": "Sure, it's a pretty good shield, but we strongly suggest you eat this fine, fine pizza. Increases Perception by <%= per %>. Enchanted Armoire: Chef Set (Item 4 of 4).",
|
||||
"shieldArmoireTrustyUmbrellaText": "Trusty Umbrella",
|
||||
"shieldArmoireTrustyUmbrellaNotes": "Mysteries are often accompanied by inclement weather, so be prepared! Increases Intelligence by <%= int %>. Enchanted Armoire: Detective Set (Item 4 of 4).",
|
||||
"shieldArmoirePolishedPocketwatchText": "Polished Pocketwatch",
|
||||
"shieldArmoirePolishedPocketwatchNotes": "You've got the time. And it looks very nice on you. Increases Intelligence by <%= int %>. Enchanted Armoire: Independent Item.",
|
||||
"shieldArmoireMasteredShadowText": "Mastered Shadow",
|
||||
"shieldArmoireMasteredShadowNotes": "Your powers have brought these swirling shadows to your side to do your bidding. Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Shadow Master Set (Item 4 of 4).",
|
||||
"shieldArmoireAlchemistsScaleText": "Alchemist's Scale",
|
||||
"shieldArmoireAlchemistsScaleNotes": "Ensure that your mystical ingredients are properly measured using this fine piece of equipment. Increases Intelligence by <%= int %>. Enchanted Armoire: Alchemist Set (Item 4 of 4).",
|
||||
"shieldArmoireBirthdayBannerText": "Birthday Banner",
|
||||
"shieldArmoireBirthdayBannerNotes": "Celebrate your special day, the special day of someone you love, or break this out for Habitica's Birthday on January 31! Increases Strength by <%= str %>. Enchanted Armoire: Happy Birthday Set (Item 4 of 4).",
|
||||
"shieldArmoirePerfectMatchText": "The Perfect Match",
|
||||
"shieldArmoirePerfectMatchNotes": "Hot take: we think you look great. Increases Perception by <%= per %>. Enchanted Armoire: Match Maker Set (Item 4 of 4).",
|
||||
"shieldArmoireBaseballGloveText": "Baseball Glove",
|
||||
"shieldArmoireBaseballGloveNotes": "Perfect for the big tournament, or a friendly game of catch between tasks. Increases Strength by <%= str %>. Enchanted Armoire: Baseball Set (Item 4 of 4).",
|
||||
"shieldArmoireHobbyHorseText": "Hobby Horse",
|
||||
"shieldArmoireHobbyHorseNotes": "Ride your handsome hobby-horse steed toward your just Rewards! Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Paper Knight Set (Item 2 of 3).",
|
||||
"backMystery201905Text": "Dazzling Dragon Wings",
|
||||
"backMystery201905Notes": "Fly to untold realms with these iridescent wings. Confers no benefit. May 2019 Subscriber Item.",
|
||||
"backMystery201912Text": "Polar Pixie Wings",
|
||||
"backMystery201912Notes": "Glide silently across sparkling snowfields and shimmering mountains with these icy wings. Confers no benefit. December 2019 Subscriber Item.",
|
||||
"backMystery202001Text": "Five Tails of Fable",
|
||||
"backMystery202001Notes": "These fluffy tails contain celestial power, and also a high level of cuteness! Confers no benefit. January 2020 Subscriber Item.",
|
||||
"backMystery202004Text": "Mighty Monarch Wings",
|
||||
"backMystery202004Notes": "Make a quick flutter to the nearest flowery meadow or migrate across the continent with these beautiful wings! Confers no benefit. April 2020 Subscriber Item.",
|
||||
"bodyMystery202002Text": "Stylish Sweetheart Scarf",
|
||||
"bodyMystery202002Notes": "For when your heart is warm but the breezes of February are brisk. Confers no benefit. February 2020 Subscriber Item.",
|
||||
"bodyMystery202003Text": "Barbed Pauldrons",
|
||||
"bodyMystery202003Notes": "They're like shoulder pads that are on a whole other level. Confers no benefit. March 2020 Subscriber Item.",
|
||||
"headAccessoryMystery201905Text": "Dazzling Dragon Horns",
|
||||
"headAccessoryMystery201905Notes": "These horns are as sharp as they are shimmery. Confers no benefit. May 2019 Subscriber Item.",
|
||||
"headAccessoryMystery201906Text": "Kindly Koi Ears",
|
||||
"headAccessoryMystery201906Notes": "Legend has it these finny ears help merfolk hear the calls and songs of all the denizens of the deep! Confers no benefit. June 2019 Subscriber Item.",
|
||||
"headAccessoryMystery201908Text": "Footloose Faun Horns",
|
||||
"headAccessoryMystery201908Notes": "If wearing horns floats your goat, you're in luck! Confers no benefit. August 2019 Subscriber Item.",
|
||||
"headAccessoryMystery202004Text": "Mighty Monarch Antennae",
|
||||
"headAccessoryMystery202004Notes": "They twitch just a bit if the scent of flowers drifts by--use them to find a pretty garden! Confers no benefit. April 2020 Subscriber Item.",
|
||||
"eyewearSpecialBlackHalfMoonText": "Black Half-Moon Eyeglasses",
|
||||
"eyewearSpecialBlackHalfMoonNotes": "Glasses with a black frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialBlueHalfMoonText": "Blue Half-Moon Eyeglasses",
|
||||
"eyewearSpecialBlueHalfMoonNotes": "Glasses with a blue frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialGreenHalfMoonText": "Green Half-Moon Eyeglasses",
|
||||
"eyewearSpecialGreenHalfMoonNotes": "Glasses with a green frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialPinkHalfMoonText": "Pink Half-Moon Eyeglasses",
|
||||
"eyewearSpecialPinkHalfMoonNotes": "Glasses with a pink frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialRedHalfMoonText": "Red Half-Moon Eyeglasses",
|
||||
"eyewearSpecialRedHalfMoonNotes": "Glasses with a red frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialWhiteHalfMoonText": "White Half-Moon Eyeglasses",
|
||||
"eyewearSpecialWhiteHalfMoonNotes": "Glasses with a white frame and crescent lenses. Confers no benefit.",
|
||||
"eyewearSpecialYellowHalfMoonText": "Yellow Half-Moon Eyeglasses",
|
||||
"eyewearSpecialYellowHalfMoonNotes": "Glasses with a yellow frame and crescent lenses. Confers no benefit.",
|
||||
"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.",
|
||||
"eyewearSpecialFall2019RogueText": "Bone-White Half Mask",
|
||||
"eyewearSpecialFall2019RogueNotes": "You'd think a full mask would protect your identity better, but people tend to be too awestruck by its stark design to take note of any identifying features left revealed. Confers no benefit. Limited Edition 2019 Autumn Gear.",
|
||||
"eyewearSpecialFall2019HealerText": "Dark Visage",
|
||||
"eyewearSpecialFall2019HealerNotes": "Steel yourself against the toughest foes with this inscrutable mask. Confers no benefit. Limited Edition 2019 Autumn Gear.",
|
||||
"eyewearMystery201902Text": "Cryptic Crush Mask",
|
||||
"eyewearMystery201902Notes": "This mysterious mask hides your identity but not your winning smile. Confers no benefit. February 2019 Subscriber Item.",
|
||||
"eyewearMystery201907Text": "Sweet Sunglasses",
|
||||
"eyewearMystery201907Notes": "Look awesome while protecting your eyes from harmful UV rays! Confers no benefit. July 2019 Subscriber Item.",
|
||||
"weaponSpecialSpring2019RogueNotes": "These weapons contain the power of the sky and rain. We recommend that you not use them while immersed in water. Increases Strength by <%= str %>. Limited Edition 2019 Spring Gear.",
|
||||
"weaponSpecialSpring2019RogueText": "Lightning Bolt",
|
||||
"weaponSpecialKS2019Notes": "Curved as a gryphon's beak and talons, this ornate polearm reminds you to power through when the task ahead feels daunting. Increases Strength by <%= str %>.",
|
||||
"weaponSpecialKS2019Text": "Mythic Gryphon Glaive"
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"newGroupTitle": "Grup nou",
|
||||
"subscriberItem": "Obiect Misterios",
|
||||
"newSubscriberItem": "Ai <span class=\"notification-bold-blue\">Articole Misterioase</span> noi",
|
||||
"subscriberItemText": "În fiecare lună, abonații vor primi un articol misterios. Acesta va fi trimis deobicei cu o săptămână în înainte de sfârșitul lunii. Consulta pagina 'Mystery Item' pe wiki pentru mai multe informații.",
|
||||
"subscriberItemText": "În fiecare lună, abonații vor primi un articol misterios. Devine disponibil la începutul lunii. Consulta pagina 'Mystery Item' pe wiki pentru mai multe informații.",
|
||||
"all": "Toate",
|
||||
"none": "Niciunul",
|
||||
"more": "<%= count %> mai mult",
|
||||
@@ -284,11 +284,17 @@
|
||||
"dismissAll": "Dismiss All",
|
||||
"messages": "Mesaje",
|
||||
"emptyMessagesLine1": "Nu ai nici un mesaj",
|
||||
"emptyMessagesLine2": "Trimite un mesaj și începe o conversație!",
|
||||
"emptyMessagesLine2": "Poți trimite un mesaj nou unui utilizator vizitând profilul său și făcând click pe butonul „Mesaj”.",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%= user %></span> ți-a trimis un mesaj",
|
||||
"letsgo": "Înainte!",
|
||||
"selected": "Selectat",
|
||||
"howManyToBuy": "Câte vrei să cumperi?",
|
||||
"habiticaHasUpdated": "Există o nouă actualizare pentru Habitica. Reîmprospătează pagina ca să vezi versiune curentă!",
|
||||
"contactForm": "Contact the Moderation Team"
|
||||
"contactForm": "Contact the Moderation Team",
|
||||
"loadEarlierMessages": "Load Earlier Messages",
|
||||
"demo": "Demo",
|
||||
"congratulations": "Congratulations!",
|
||||
"onboardingAchievs": "Onboarding Achievements",
|
||||
"options": "Options",
|
||||
"finish": "Sfârșit"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user