Compare commits
121 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 575aea2605 | |||
| b5c950ac96 | |||
| 57a090eea1 | |||
| 18534a21ff | |||
| ed0a36a287 | |||
| e50f240366 | |||
| 4d1bbdd8d0 | |||
| d1928c9181 | |||
| 137f7d53dc | |||
| 3f9d55254e | |||
| b60a76d7dd | |||
| a5575b3593 | |||
| ace964f2b3 | |||
| 12b045093a | |||
| 8cd9536bdc | |||
| 08f0374b46 | |||
| 3582e233be | |||
| 3974adcb65 | |||
| 57d3fea523 | |||
| 173d7a178c | |||
| 7db093d2bb | |||
| 06d2ffb37d | |||
| 40997854dd | |||
| 4c4d0be31f | |||
| b8cf1b895f | |||
| a08ecbe044 | |||
| f3771f4869 | |||
| e0eed8238e | |||
| 6baf08d461 | |||
| 535fddf92d | |||
| ef97f301d9 | |||
| eea79ce1b6 | |||
| 191fee524c | |||
| 098f53bfa9 | |||
| e9ee2d3fdd | |||
| 4c988691cf | |||
| 3c8be16135 | |||
| 9890e0079a | |||
| 1530ab44e9 | |||
| 586897fbfc | |||
| f75a6eb11d | |||
| 155d6d5af6 | |||
| 004f1ee2dc | |||
| c61bdaf563 | |||
| 85e14bb100 | |||
| 8e9b469d8d | |||
| 6e5cac88fc | |||
| 80acb70718 | |||
| 24430861ce | |||
| e60285e7d9 | |||
| f030135c82 | |||
| 2c29310466 | |||
| 13eef6e4cf | |||
| 13c0d12045 | |||
| 6456984f57 | |||
| cfc1a12930 | |||
| 9ba4687478 | |||
| 6d987a9579 | |||
| 4702479156 | |||
| b384cd4eb8 | |||
| d2bd7dc325 | |||
| 719fab8d4b | |||
| 24841346dc | |||
| 4c34c68d78 | |||
| 9a8d1854b9 | |||
| 10f5011781 | |||
| 9a896470d5 | |||
| 6b0b393e32 | |||
| 014a4b653a | |||
| 37e5d6b40a | |||
| fb780c9a2d | |||
| 5f440f1bfa | |||
| d4f9555f11 | |||
| 203d97423a | |||
| 0f4711c358 | |||
| 1a86943711 | |||
| 21185b689c | |||
| 5a85e0730c | |||
| 771558e1fd | |||
| e6f903fd2e | |||
| 5c13bf1980 | |||
| 36a4ec69d5 | |||
| c6ba1d8402 | |||
| 0081bad831 | |||
| abdb6244d3 | |||
| 90f1977a49 | |||
| bc33e4349d | |||
| 61f3d8d61c | |||
| 796d752974 | |||
| 008314676d | |||
| f364b3c06f | |||
| ae23ac12ff | |||
| e2bb7fda60 | |||
| 09d6dae75c | |||
| bc5813fd10 | |||
| 4464464c51 | |||
| a3e6aff330 | |||
| a523d0b894 | |||
| 8a809c3828 | |||
| 40f433b099 | |||
| 9a1266677a | |||
| d70dd2e6dd | |||
| f078d19e4b | |||
| e08d0f4016 | |||
| 0435e3537a | |||
| 0aadee550e | |||
| f487837b4b | |||
| b593db2150 | |||
| a07c2e6268 | |||
| e3c552dd54 | |||
| 8d1f7e77ed | |||
| cfd601e7bf | |||
| 5d81c63897 | |||
| cff6c5674f | |||
| edcb3f4289 | |||
| bd28a282df | |||
| 999071a15c | |||
| 9bee9d0a06 | |||
| f5b632e3e5 | |||
| 8ecd152b41 | |||
| ba22c18cd9 |
@@ -0,0 +1,97 @@
|
||||
/* eslint-disable no-console */
|
||||
import { model as UserModel } from '../../../website/server/models/user';
|
||||
import { TransactionModel } from '../../../website/server/models/transaction';
|
||||
|
||||
const MIGRATION_NAME = '20220915_transactions_user_name';
|
||||
|
||||
/* transaction config */
|
||||
const transactionPerRun = 500;
|
||||
const progressCount = 1000;
|
||||
const transactionQuery = {
|
||||
migration: { $ne: MIGRATION_NAME }, // skip already migrated entries
|
||||
'transactionType': { $in: ['gift_send', 'gift_receive'] },
|
||||
};
|
||||
|
||||
let count = 0;
|
||||
async function updateTransaction (transaction, userNameMap) {
|
||||
count++;
|
||||
|
||||
const set = {
|
||||
migration: MIGRATION_NAME,
|
||||
};
|
||||
|
||||
if (userNameMap.has(transaction.reference)) {
|
||||
set['referenceText'] = userNameMap.get(transaction.reference);
|
||||
} else {
|
||||
set['referenceText'] = 'Account not found';
|
||||
}
|
||||
|
||||
if (count % progressCount === 0) {
|
||||
console.warn(`${count} ${transaction._id}`);
|
||||
}
|
||||
|
||||
return TransactionModel.updateOne({
|
||||
_id: transaction._id
|
||||
}, { $set: set }).exec();
|
||||
}
|
||||
|
||||
export default async function processTransactions () {
|
||||
const fields = {
|
||||
_id: 1,
|
||||
reference: 1,
|
||||
referenceText: 1,
|
||||
};
|
||||
|
||||
const userNameMap = new Map();
|
||||
|
||||
while (true) { // eslint-disable-line no-constant-condition
|
||||
const foundTransactions = await TransactionModel // eslint-disable-line no-await-in-loop
|
||||
.find(transactionQuery)
|
||||
.limit(transactionPerRun)
|
||||
.sort({reference: 1})
|
||||
.select(fields)
|
||||
.lean()
|
||||
.exec();
|
||||
|
||||
if (foundTransactions.length === 0) {
|
||||
console.warn('All appropriate transactions found and modified.');
|
||||
console.warn(`\n${count} transactions processed\n`);
|
||||
break;
|
||||
}
|
||||
|
||||
// check for unknown users and load the names
|
||||
const userIdsToLoad = [];
|
||||
for (const foundTransaction of foundTransactions) {
|
||||
const userId = foundTransaction.reference;
|
||||
if (userNameMap.has(userId)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
userIdsToLoad.push(userId);
|
||||
}
|
||||
|
||||
const users = await UserModel // eslint-disable-line no-await-in-loop
|
||||
.find({
|
||||
_id: { $in: userIdsToLoad }
|
||||
})
|
||||
.select({
|
||||
_id: 1,
|
||||
'auth.local.username': 1,
|
||||
})
|
||||
.lean()
|
||||
.exec();
|
||||
|
||||
for (const user of users) {
|
||||
const localUserName = user.auth?.local?.username;
|
||||
|
||||
if (!localUserName) {
|
||||
console.warn(`\nNo Username found for ID: ${user._id}\n`);
|
||||
continue;
|
||||
}
|
||||
|
||||
userNameMap.set(user._id, localUserName)
|
||||
}
|
||||
|
||||
await Promise.all(foundTransactions.map(t => updateTransaction(t, userNameMap))); // eslint-disable-line no-await-in-loop
|
||||
}
|
||||
};
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "4.243.0",
|
||||
"version": "4.247.0",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.18.13",
|
||||
"@babel/preset-env": "^7.18.10",
|
||||
"@babel/preset-env": "^7.19.1",
|
||||
"@babel/register": "^7.18.9",
|
||||
"@google-cloud/trace-agent": "^5.1.6",
|
||||
"@parse/node-apn": "^5.1.3",
|
||||
@@ -13,7 +13,7 @@
|
||||
"accepts": "^1.3.8",
|
||||
"amazon-payments": "^0.2.9",
|
||||
"amplitude": "^6.0.0",
|
||||
"apidoc": "^0.52.0",
|
||||
"apidoc": "^0.53.0",
|
||||
"apple-auth": "^1.0.7",
|
||||
"bcrypt": "^5.0.1",
|
||||
"body-parser": "^1.20.0",
|
||||
@@ -61,7 +61,7 @@
|
||||
"paypal-rest-sdk": "^1.8.1",
|
||||
"pp-ipn": "^1.1.0",
|
||||
"ps-tree": "^1.0.0",
|
||||
"rate-limiter-flexible": "^2.3.7",
|
||||
"rate-limiter-flexible": "^2.3.10",
|
||||
"redis": "^3.1.2",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"remove-markdown": "^0.5.0",
|
||||
|
||||
@@ -13,11 +13,6 @@ function getUser () {
|
||||
username: 'username',
|
||||
email: 'email@email',
|
||||
},
|
||||
facebook: {
|
||||
emails: [{
|
||||
value: 'email@facebook',
|
||||
}],
|
||||
},
|
||||
google: {
|
||||
emails: [{
|
||||
value: 'email@google',
|
||||
@@ -62,30 +57,12 @@ describe('emails', () => {
|
||||
expect(data).to.have.property('canSend', true);
|
||||
});
|
||||
|
||||
it('returns correct user data [facebook 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.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.facebook.emails[0].value);
|
||||
expect(data).to.have.property('_id', user._id);
|
||||
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']);
|
||||
@@ -103,7 +80,6 @@ describe('emails', () => {
|
||||
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']);
|
||||
|
||||
@@ -118,7 +94,6 @@ describe('emails', () => {
|
||||
const { getUserInfo } = attachEmail;
|
||||
const user = getUser();
|
||||
delete user.auth.local.email;
|
||||
delete user.auth.facebook;
|
||||
delete user.auth.google;
|
||||
delete user.auth.apple;
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ describe('Password Utilities', () => {
|
||||
it('returns false if the user has no local auth', async () => {
|
||||
const user = await generateUser({
|
||||
auth: {
|
||||
facebook: {},
|
||||
google: {},
|
||||
},
|
||||
});
|
||||
const res = await validatePasswordResetCodeAndFindUser(encrypt(JSON.stringify({
|
||||
|
||||
@@ -672,10 +672,12 @@ describe('payments/index', () => {
|
||||
context('No Active Promotion', () => {
|
||||
beforeEach(() => {
|
||||
sinon.stub(worldState, 'getCurrentEvent').returns(null);
|
||||
sinon.stub(worldState, 'getCurrentEventList').returns([]);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
worldState.getCurrentEvent.restore();
|
||||
worldState.getCurrentEventList.restore();
|
||||
});
|
||||
|
||||
it('does not apply a discount', async () => {
|
||||
@@ -692,14 +694,14 @@ describe('payments/index', () => {
|
||||
|
||||
context('Active Promotion', () => {
|
||||
beforeEach(() => {
|
||||
sinon.stub(worldState, 'getCurrentEvent').returns({
|
||||
sinon.stub(worldState, 'getCurrentEventList').returns([{
|
||||
...common.content.events.fall2020,
|
||||
event: 'fall2020',
|
||||
});
|
||||
}]);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
worldState.getCurrentEvent.restore();
|
||||
worldState.getCurrentEventList.restore();
|
||||
});
|
||||
|
||||
it('applies a discount', async () => {
|
||||
|
||||
@@ -289,45 +289,6 @@ describe('DELETE /user', () => {
|
||||
});
|
||||
});
|
||||
|
||||
context('user with Facebook auth', async () => {
|
||||
beforeEach(async () => {
|
||||
user = await generateUser({
|
||||
auth: {
|
||||
facebook: {
|
||||
id: 'facebook-id',
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('returns an error if confirmation phrase is wrong', async () => {
|
||||
await expect(user.del('/user', {
|
||||
password: 'just-do-it',
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('incorrectDeletePhrase', { magicWord: 'DELETE' }),
|
||||
});
|
||||
});
|
||||
|
||||
it('returns an error if confirmation phrase is not supplied', async () => {
|
||||
await expect(user.del('/user', {
|
||||
password: '',
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('missingPassword'),
|
||||
});
|
||||
});
|
||||
|
||||
it('deletes a Facebook user', async () => {
|
||||
await user.del('/user', {
|
||||
password: DELETE_CONFIRMATION,
|
||||
});
|
||||
await expect(checkExistence('users', user._id)).to.eventually.eql(false);
|
||||
});
|
||||
});
|
||||
|
||||
context('user with Google auth', async () => {
|
||||
beforeEach(async () => {
|
||||
user = await generateUser({
|
||||
|
||||
@@ -20,44 +20,6 @@ describe('DELETE social registration', () => {
|
||||
});
|
||||
});
|
||||
|
||||
context('Facebook', () => {
|
||||
it('fails if user does not have an alternative registration method', async () => {
|
||||
await user.update({
|
||||
'auth.facebook.id': 'some-fb-id',
|
||||
'auth.local': { ok: true },
|
||||
});
|
||||
await expect(user.del('/user/auth/social/facebook')).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.facebook.id': 'some-fb-id',
|
||||
});
|
||||
|
||||
const response = await user.del('/user/auth/social/facebook');
|
||||
expect(response).to.eql({});
|
||||
await user.sync();
|
||||
expect(user.auth.facebook).to.be.undefined;
|
||||
});
|
||||
|
||||
it('succeeds if user has a google registration', async () => {
|
||||
await user.update({
|
||||
'auth.facebook.id': 'some-fb-id',
|
||||
'auth.google.id': 'some-google-id',
|
||||
'auth.local': { ok: true },
|
||||
});
|
||||
|
||||
const response = await user.del('/user/auth/social/facebook');
|
||||
expect(response).to.eql({});
|
||||
await user.sync();
|
||||
expect(user.auth.facebook).to.be.undefined;
|
||||
});
|
||||
});
|
||||
|
||||
context('Google', () => {
|
||||
it('fails if user does not have an alternative registration method', async () => {
|
||||
await user.update({
|
||||
@@ -81,19 +43,6 @@ describe('DELETE social registration', () => {
|
||||
await user.sync();
|
||||
expect(user.auth.google).to.be.undefined;
|
||||
});
|
||||
|
||||
it('succeeds if user has a facebook registration', async () => {
|
||||
await user.update({
|
||||
'auth.google.id': 'some-google-id',
|
||||
'auth.facebook.id': 'some-facebook-id',
|
||||
'auth.local': { ok: true },
|
||||
});
|
||||
|
||||
const response = await user.del('/user/auth/social/google');
|
||||
expect(response).to.eql({});
|
||||
await user.sync();
|
||||
expect(user.auth.goodl).to.be.undefined;
|
||||
});
|
||||
});
|
||||
|
||||
context('Apple', () => {
|
||||
@@ -119,18 +68,5 @@ describe('DELETE social registration', () => {
|
||||
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;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -12,7 +12,6 @@ describe('POST /user/auth/social', () => {
|
||||
let user;
|
||||
const endpoint = '/user/auth/social';
|
||||
let randomAccessToken = '123456';
|
||||
let randomFacebookId = 'facebookId';
|
||||
let randomGoogleId = 'googleId';
|
||||
let network = 'NoNetwork';
|
||||
|
||||
@@ -33,146 +32,6 @@ describe('POST /user/auth/social', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('facebook', () => {
|
||||
beforeEach(async () => {
|
||||
randomFacebookId = generateUUID();
|
||||
const expectedResult = {
|
||||
id: randomFacebookId,
|
||||
displayName: 'a facebook user',
|
||||
emails: [
|
||||
{ value: `${user.auth.local.username}+facebook@example.com` },
|
||||
],
|
||||
};
|
||||
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
|
||||
network = 'facebook';
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
passport._strategies.facebook.userProfile.restore();
|
||||
});
|
||||
|
||||
it('registers a new user', async () => {
|
||||
const response = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.exist;
|
||||
expect(response.id).to.exist;
|
||||
expect(response.newUser).to.be.true;
|
||||
expect(response.username).to.exist;
|
||||
|
||||
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.local.email')).to.eventually.equal(`${user.auth.local.username}+facebook@example.com`);
|
||||
await expect(getProperty('users', response.id, 'auth.facebook.id')).to.eventually.equal(randomFacebookId);
|
||||
});
|
||||
|
||||
it('logs an existing user in', async () => {
|
||||
const registerResponse = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
const response = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.eql(registerResponse.apiToken);
|
||||
expect(response.id).to.eql(registerResponse.id);
|
||||
expect(response.newUser).to.be.false;
|
||||
expect(registerResponse.newUser).to.be.true;
|
||||
});
|
||||
|
||||
it('logs an existing user in if they have local auth with matching email', async () => {
|
||||
passport._strategies.facebook.userProfile.restore();
|
||||
const expectedResult = {
|
||||
id: randomFacebookId,
|
||||
displayName: 'a facebook user',
|
||||
emails: [
|
||||
{ value: user.auth.local.email },
|
||||
],
|
||||
};
|
||||
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
|
||||
|
||||
const response = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.eql(user.apiToken);
|
||||
expect(response.id).to.eql(user._id);
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('logs an existing user into their social account if they have local auth with matching email', async () => {
|
||||
const registerResponse = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
expect(registerResponse.newUser).to.be.true;
|
||||
// This is important for existing accounts before the new social handling
|
||||
passport._strategies.facebook.userProfile.restore();
|
||||
const expectedResult = {
|
||||
id: randomFacebookId,
|
||||
displayName: 'a facebook user',
|
||||
emails: [
|
||||
{ value: user.auth.local.email },
|
||||
],
|
||||
};
|
||||
sandbox.stub(passport._strategies.facebook, 'userProfile').yields(null, expectedResult);
|
||||
|
||||
const response = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.eql(registerResponse.apiToken);
|
||||
expect(response.id).to.eql(registerResponse.id);
|
||||
expect(response.apiToken).not.to.eql(user.apiToken);
|
||||
expect(response.id).not.to.eql(user._id);
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('add social auth to an existing user', async () => {
|
||||
const response = await user.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.eql(user.apiToken);
|
||||
expect(response.id).to.eql(user._id);
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('does not log into other account if social auth already exists', async () => {
|
||||
const registerResponse = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
expect(registerResponse.newUser).to.be.true;
|
||||
|
||||
await expect(user.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('socialAlreadyExists'),
|
||||
});
|
||||
});
|
||||
|
||||
xit('enrolls a new user in an A/B test', async () => {
|
||||
await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
|
||||
await expect(getProperty('users', user._id, '_ABtests')).to.eventually.be.a('object');
|
||||
});
|
||||
});
|
||||
|
||||
describe('google', () => {
|
||||
beforeEach(async () => {
|
||||
randomGoogleId = generateUUID();
|
||||
|
||||
@@ -25,6 +25,19 @@ describe('POST /user/reset-password', async () => {
|
||||
expect(user.auth.local.hashed_password).to.not.eql(previousPassword);
|
||||
});
|
||||
|
||||
it('resets password for social users', async () => {
|
||||
const email = `${user.auth.local.username}+google@example.com`;
|
||||
await user.update({ 'auth.google.emails': [{ value: email }] });
|
||||
await user.sync();
|
||||
const previousPassword = user.auth.local.passwordResetCode;
|
||||
const response = await user.post(endpoint, {
|
||||
email,
|
||||
});
|
||||
expect(response).to.eql({ data: {}, message: t('passwordReset') });
|
||||
await user.sync();
|
||||
expect(user.auth.local.passwordResetCode).to.not.eql(previousPassword);
|
||||
});
|
||||
|
||||
it('same message on error as on success', async () => {
|
||||
const response = await user.post(endpoint, {
|
||||
email: 'nonExistent@email.com',
|
||||
|
||||
@@ -213,7 +213,7 @@ describe('cron utility functions', () => {
|
||||
};
|
||||
}
|
||||
|
||||
it('offset 0, next date in 3 months', () => {
|
||||
it('monthly plan, next date in 3 months', () => {
|
||||
const user = baseUserData(60, 0, 'group_plan_auto');
|
||||
|
||||
const planContext = getPlanContext(user, now);
|
||||
@@ -222,8 +222,8 @@ describe('cron utility functions', () => {
|
||||
.to.be.sameMoment('2022-08-10T02:00:00.144Z');
|
||||
});
|
||||
|
||||
it('offset 1, next date in 1 months', () => {
|
||||
const user = baseUserData(60, 1, 'group_plan_auto');
|
||||
it('monthly plan, next date in 1 month', () => {
|
||||
const user = baseUserData(62, 0, 'group_plan_auto');
|
||||
|
||||
const planContext = getPlanContext(user, now);
|
||||
|
||||
@@ -231,8 +231,17 @@ describe('cron utility functions', () => {
|
||||
.to.be.sameMoment('2022-06-10T02:00:00.144Z');
|
||||
});
|
||||
|
||||
it('offset 2, next date in 2 months - with any plan', () => {
|
||||
const user = baseUserData(60, 2, 'basic_3mo');
|
||||
it('multi-month plan, no offset', () => {
|
||||
const user = baseUserData(60, 0, 'basic_3mo');
|
||||
|
||||
const planContext = getPlanContext(user, now);
|
||||
|
||||
expect(planContext.nextHourglassDate)
|
||||
.to.be.sameMoment('2022-06-10T02:00:00.144Z');
|
||||
});
|
||||
|
||||
it('multi-month plan with offset', () => {
|
||||
const user = baseUserData(60, 1, 'basic_3mo');
|
||||
|
||||
const planContext = getPlanContext(user, now);
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
}
|
||||
},
|
||||
"@amplitude/types": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@amplitude/types/-/types-1.10.0.tgz",
|
||||
"integrity": "sha512-xN0gnhutztv6kqHaZ2bre18anQV5GDmMXOeipTvI670g2VjNbPfOzMwu1LN4p1NadYq+GqYI223UcZrXR+R4Pw=="
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/@amplitude/types/-/types-1.10.2.tgz",
|
||||
"integrity": "sha512-I8qenRI7uU6wKNb9LiZrAosSHVoNHziXouKY81CrqxH9xhVTEIJFXeuCV0hbtBr0Al/8ejnGjQRx+S2SvU/pPg=="
|
||||
},
|
||||
"@amplitude/ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
@@ -40,12 +40,19 @@
|
||||
"integrity": "sha512-+z8UGRaj13Pt5NDzOnkTBy49HE2CX64jeL0ArB86HAtilpnfkPB7oqkigN7Lf2LxscMg4QhFD7mmCfedh3rqTg=="
|
||||
},
|
||||
"@amplitude/utils": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@amplitude/utils/-/utils-1.10.0.tgz",
|
||||
"integrity": "sha512-/R8j8IzFH0GYfA6ehQDm5IEzt71gIeMdiYYFIzZp6grERQlgJcwNJMAiza0o2JwwTDIruzqdB3c/vLVjuakp+w==",
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/@amplitude/utils/-/utils-1.10.2.tgz",
|
||||
"integrity": "sha512-tVsHXu61jITEtRjB7NugQ5cVDd4QDzne8T3ifmZye7TiJeUfVRvqe44gDtf55A+7VqhDhyEIIXTA1iVcDGqlEw==",
|
||||
"requires": {
|
||||
"@amplitude/types": "^1.10.0",
|
||||
"tslib": "^1.9.3"
|
||||
"@amplitude/types": "^1.10.2",
|
||||
"tslib": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@babel/code-frame": {
|
||||
@@ -13127,13 +13134,13 @@
|
||||
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
|
||||
},
|
||||
"amplitude-js": {
|
||||
"version": "8.18.5",
|
||||
"resolved": "https://registry.npmjs.org/amplitude-js/-/amplitude-js-8.18.5.tgz",
|
||||
"integrity": "sha512-s43q4qKd7kvhYESQhYvyKDKUM1PpyAyoOFFlyMuFfQHRxyeDmZRhcfzrKnOhbrLhFxSWtPc0VEeh9tajJRNe5Q==",
|
||||
"version": "8.21.0",
|
||||
"resolved": "https://registry.npmjs.org/amplitude-js/-/amplitude-js-8.21.0.tgz",
|
||||
"integrity": "sha512-kC01TmmCdDrtms8LhvC/r65FtbmCbNHZ1/jiezXmTH82TsWI/SkN47jKs8CCwjZNakqTBN/hmficiZBUKv4myw==",
|
||||
"requires": {
|
||||
"@amplitude/analytics-connector": "1.4.4",
|
||||
"@amplitude/ua-parser-js": "0.7.31",
|
||||
"@amplitude/utils": "^1.0.5",
|
||||
"@amplitude/utils": "^1.10.1",
|
||||
"@babel/runtime": "^7.3.4",
|
||||
"blueimp-md5": "^2.10.0",
|
||||
"query-string": "5"
|
||||
@@ -16812,9 +16819,9 @@
|
||||
}
|
||||
},
|
||||
"dompurify": {
|
||||
"version": "2.3.10",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
|
||||
"integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g=="
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz",
|
||||
"integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA=="
|
||||
},
|
||||
"domutils": {
|
||||
"version": "1.7.0",
|
||||
@@ -20668,9 +20675,9 @@
|
||||
}
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz",
|
||||
"integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw=="
|
||||
},
|
||||
"js-message": {
|
||||
"version": "1.0.5",
|
||||
@@ -28306,23 +28313,23 @@
|
||||
"integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk="
|
||||
},
|
||||
"vue": {
|
||||
"version": "2.7.8",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.8.tgz",
|
||||
"integrity": "sha512-ncwlZx5qOcn754bCu5/tS/IWPhXHopfit79cx+uIlLMyt3vCMGcXai5yCG5y+I6cDmEj4ukRYyZail9FTQh7lQ==",
|
||||
"version": "2.7.10",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.10.tgz",
|
||||
"integrity": "sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==",
|
||||
"requires": {
|
||||
"@vue/compiler-sfc": "2.7.8",
|
||||
"@vue/compiler-sfc": "2.7.10",
|
||||
"csstype": "^3.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/parser": {
|
||||
"version": "7.18.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
|
||||
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg=="
|
||||
"version": "7.18.13",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz",
|
||||
"integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg=="
|
||||
},
|
||||
"@vue/compiler-sfc": {
|
||||
"version": "2.7.8",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.8.tgz",
|
||||
"integrity": "sha512-2DK4YWKfgLnW9VDR9gnju1gcYRk3flKj8UNsms7fsRmFcg35slVTZEkqwBtX+wJBXaamFfn6NxSsZh3h12Ix/Q==",
|
||||
"version": "2.7.10",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz",
|
||||
"integrity": "sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.18.4",
|
||||
"postcss": "^8.4.14",
|
||||
@@ -28340,9 +28347,9 @@
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.4.14",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
|
||||
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
|
||||
"version": "8.4.16",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
|
||||
"integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
|
||||
"requires": {
|
||||
"nanoid": "^3.3.4",
|
||||
"picocolors": "^1.0.0",
|
||||
@@ -28676,9 +28683,9 @@
|
||||
}
|
||||
},
|
||||
"vue-template-compiler": {
|
||||
"version": "2.7.8",
|
||||
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.8.tgz",
|
||||
"integrity": "sha512-eQqdcUpJKJpBRPDdxCNsqUoT0edNvdt1jFjtVnVS/LPPmr0BU2jWzXlrf6BVMeODtdLewB3j8j3WjNiB+V+giw==",
|
||||
"version": "2.7.10",
|
||||
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.10.tgz",
|
||||
"integrity": "sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==",
|
||||
"requires": {
|
||||
"de-indent": "^1.0.2",
|
||||
"he": "^1.2.0"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"@vue/cli-plugin-unit-mocha": "^4.5.15",
|
||||
"@vue/cli-service": "^4.5.15",
|
||||
"@vue/test-utils": "1.0.0-beta.29",
|
||||
"amplitude-js": "^8.18.5",
|
||||
"amplitude-js": "^8.21.0",
|
||||
"axios": "^0.25.0",
|
||||
"axios-progress-bar": "^1.2.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
@@ -33,7 +33,7 @@
|
||||
"bootstrap-vue": "^2.22.0",
|
||||
"chai": "^4.3.6",
|
||||
"core-js": "^3.24.1",
|
||||
"dompurify": "^2.3.10",
|
||||
"dompurify": "^2.4.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-habitrpg": "^6.2.0",
|
||||
"eslint-plugin-mocha": "^5.3.0",
|
||||
@@ -42,7 +42,7 @@
|
||||
"hellojs": "^1.19.5",
|
||||
"inspectpack": "^4.7.1",
|
||||
"intro.js": "^5.1.0",
|
||||
"jquery": "^3.6.0",
|
||||
"jquery": "^3.6.1",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.29.4",
|
||||
"nconf": "^0.12.0",
|
||||
@@ -55,11 +55,11 @@
|
||||
"svgo-loader": "^2.2.1",
|
||||
"uuid": "^8.3.2",
|
||||
"validator": "^13.7.0",
|
||||
"vue": "^2.7.8",
|
||||
"vue": "^2.7.10",
|
||||
"vue-cli-plugin-storybook": "2.1.0",
|
||||
"vue-mugen-scroll": "^0.2.6",
|
||||
"vue-router": "^3.5.4",
|
||||
"vue-template-compiler": "^2.7.8",
|
||||
"vue-template-compiler": "^2.7.10",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#153d339e4dbebb73733658aeda1d5b7fcc55b0a0",
|
||||
"webpack": "^4.46.0"
|
||||
|
||||
@@ -63,6 +63,11 @@
|
||||
width: 48px;
|
||||
height: 56px;
|
||||
}
|
||||
.achievement-boneToPick2x {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-boneToPick2x.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.achievement-boot2x {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-boot2x.png');
|
||||
width: 48px;
|
||||
@@ -715,6 +720,11 @@
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_cemetery_gate {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_cemetery_gate.png');
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_champions_colosseum {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_champions_colosseum.png');
|
||||
width: 141px;
|
||||
@@ -1359,6 +1369,11 @@
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mask_makers_workshop {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_mask_makers_workshop.png');
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_meandering_cave {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_meandering_cave.png');
|
||||
width: 141px;
|
||||
@@ -1714,6 +1729,11 @@
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spooky_ruins {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_spooky_ruins.png');
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spooky_scarecrow_field {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_spooky_scarecrow_field.png');
|
||||
width: 141px;
|
||||
@@ -2286,6 +2306,11 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.icon_background_cemetery_gate {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_cemetery_gate.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.icon_background_champions_colosseum {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_champions_colosseum.png');
|
||||
width: 68px;
|
||||
@@ -2935,6 +2960,11 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.icon_background_mask_makers_workshop {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_mask_makers_workshop.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.icon_background_meandering_cave {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_meandering_cave.png');
|
||||
width: 68px;
|
||||
@@ -3290,6 +3320,11 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.icon_background_spooky_ruins {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_spooky_ruins.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.icon_background_spooky_scarecrow_field {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_spooky_scarecrow_field.png');
|
||||
width: 68px;
|
||||
@@ -18450,6 +18485,11 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_armoire_sheetGhostCostume {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_sheetGhostCostume.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_armoire_shepherdRobes {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_shepherdRobes.png');
|
||||
width: 90px;
|
||||
@@ -19660,6 +19700,11 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_armoire_sheetGhostCostume {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_sheetGhostCostume.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_armoire_shepherdRobes {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_shepherdRobes.png');
|
||||
width: 68px;
|
||||
@@ -21335,6 +21380,11 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_armoire_sheetGhostCostume {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_sheetGhostCostume.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_armoire_shepherdRobes {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_shepherdRobes.png');
|
||||
width: 90px;
|
||||
@@ -22875,6 +22925,26 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fall2022Healer.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fall2022Mage.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fall2022Rogue.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fall2022Warrior.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_fallHealer.png');
|
||||
width: 90px;
|
||||
@@ -23045,6 +23115,26 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_fall2022Healer.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_fall2022Mage.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_fall2022Rogue.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_fall2022Warrior.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_fallHealer.png');
|
||||
width: 90px;
|
||||
@@ -23170,6 +23260,21 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_fall2022Healer.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_fall2022Rogue.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_fall2022Warrior.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_fallHealer.png');
|
||||
width: 90px;
|
||||
@@ -23325,6 +23430,26 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_fall2022Healer.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_fall2022Mage.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_fall2022Rogue.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_fall2022Warrior.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_armor_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_fallHealer.png');
|
||||
width: 68px;
|
||||
@@ -23495,6 +23620,26 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_fall2022Healer.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_fall2022Mage.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_fall2022Rogue.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_fall2022Warrior.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_fallHealer.png');
|
||||
width: 68px;
|
||||
@@ -23620,6 +23765,21 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_shield_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_fall2022Healer.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_shield_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_fall2022Rogue.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_shield_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_fall2022Warrior.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_shield_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_fallHealer.png');
|
||||
width: 68px;
|
||||
@@ -23775,6 +23935,26 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_fall2022Healer.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_fall2022Mage.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_fall2022Rogue.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_fall2022Warrior.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_fallHealer.png');
|
||||
width: 68px;
|
||||
@@ -23935,6 +24115,26 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_fall2022Healer.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_fall2022Mage.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_fall2022Rogue.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_fall2022Warrior.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_fallHealer.png');
|
||||
width: 90px;
|
||||
@@ -24095,6 +24295,26 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_special_fall2022Healer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_fall2022Healer.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_special_fall2022Mage {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_fall2022Mage.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_special_fall2022Rogue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_fall2022Rogue.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_special_fall2022Warrior {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_fall2022Warrior.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_special_fallHealer {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_fallHealer.png');
|
||||
width: 90px;
|
||||
@@ -27090,6 +27310,61 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_202210.png');
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.head_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202210.png');
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.shop_armor_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_mystery_202210.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_head_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_mystery_202210.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_set_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_set_mystery_202210.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.slim_armor_mystery_202210 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_mystery_202210.png');
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.head_mystery_202211 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202211.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shop_head_mystery_202211 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_mystery_202211.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_set_mystery_202211 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_set_mystery_202211.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_weapon_mystery_202211 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_mystery_202211.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.weapon_mystery_202211 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_mystery_202211.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_mystery_301404 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
|
||||
width: 90px;
|
||||
@@ -32584,6 +32859,204 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_bearEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blackHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blueHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_cactusEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_foxEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_greenHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_lionEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pandaEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pigEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pinkHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_redHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_tigerEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_whiteHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_wolfEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_yellowHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shop_headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_bearEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blackHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blueHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_cactusEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_foxEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_greenHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_lionEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pandaEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pigEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pinkHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_redHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_tigerEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_whiteHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_wolfEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_yellowHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.head_0 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_0.png');
|
||||
width: 90px;
|
||||
@@ -32965,204 +33438,6 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_bearEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blackHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blueHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_cactusEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_foxEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_greenHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_lionEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pandaEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pigEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pinkHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_redHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_tigerEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_whiteHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_wolfEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_yellowHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shop_headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_bearEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blackHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blueHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_cactusEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_foxEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_greenHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_lionEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pandaEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pigEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pinkHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_redHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_tigerEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_whiteHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_wolfEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_yellowHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shield_healer_1 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_healer_1.png');
|
||||
width: 90px;
|
||||
|
||||
@@ -180,8 +180,8 @@ input, textarea, input.form-control, textarea.form-control {
|
||||
}
|
||||
|
||||
// used in checkboxes and radios
|
||||
$bg-focused-active-control: #4f2993;
|
||||
$bg-disabled-control: #34303a;
|
||||
$bg-focused-active-control: $purple-200;
|
||||
$bg-disabled-control: $gray-10;
|
||||
|
||||
// custom control
|
||||
.custom-control {
|
||||
@@ -231,17 +231,21 @@ $bg-disabled-control: #34303a;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
&:focus:not(:checked):not(:disabled)~.custom-control-label::before, &:active:not(:checked):not(:disabled)~.custom-control-label::before {
|
||||
box-shadow: 0 0 0 6px rgba($bg-focused-active-control, 0.1);
|
||||
&:focus:not(:checked):not(:disabled)~.custom-control-label::before,
|
||||
&:active:not(:checked):not(:disabled)~.custom-control-label::before {
|
||||
border: 2px solid $gray-300;
|
||||
box-shadow: 0 0 0 2px rgba(146, 92, 243, 0.5);
|
||||
}
|
||||
|
||||
&:focus:checked:not(:disabled)~.custom-control-label::before, &:active:checked:not(:disabled)~.custom-control-label::before {
|
||||
box-shadow: 0 0 0 6px rgba($bg-focused-active-control, 0.1);
|
||||
border-color: $purple-400;
|
||||
&:focus:checked:not(:disabled)~.custom-control-label::before,
|
||||
&:active:checked:not(:disabled)~.custom-control-label::before {
|
||||
box-shadow: 0 0 0 2px rgba(146, 92, 243, 0.5);
|
||||
border-color: 2 px solid $purple-400;
|
||||
background-color: $purple-400;
|
||||
}
|
||||
|
||||
&:focus:disabled~.custom-control-label::before, &:active:disabled~.custom-control-label::before {
|
||||
&:focus:disabled~.custom-control-label::before,
|
||||
&:active:disabled~.custom-control-label::before {
|
||||
box-shadow: 0 0 0 6px rgba($bg-disabled-control, 0.1);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="16" viewBox="0 0 8 16">
|
||||
<path fill-rule="evenodd" d="M7.145 8.006H4.903V16H1.58V8.006H0V5.182h1.58V3.354C1.58 2.045 2.202 0 4.933 0l2.461.01v2.742H5.608c-.291 0-.705.145-.705.77v1.66h2.533l-.291 2.824z"/>
|
||||
<svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M20,0H4C1.79,0,0,1.79,0,4V20c0,2.21,1.79,4,4,4H20c2.21,0,4-1.79,4-4V4c0-2.21-1.79-4-4-4Zm-3.72,6.66h-1.26c-1.24,0-1.63,.77-1.63,1.56v1.88h2.78l-.44,2.9h-2.33v7h-3.13v-7h-2.54v-2.9h2.54v-2.21c0-2.51,1.5-3.9,3.78-3.9,1.1,0,2.24,.2,2.24,.2v2.47Z" fill-rule="evenodd"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 354 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M8 0c2.173 0 2.445.01 3.298.048.852.04 1.433.174 1.942.372.526.205.973.478 1.418.922.444.445.717.892.922 1.418.198.509.333 1.09.372 1.942C15.99 5.555 16 5.827 16 8s-.01 2.445-.048 3.298c-.04.852-.174 1.433-.372 1.942a3.924 3.924 0 0 1-.922 1.418 3.924 3.924 0 0 1-1.418.922c-.509.198-1.09.333-1.942.372-.853.04-1.125.048-3.298.048s-2.445-.009-3.298-.048c-.852-.04-1.433-.174-1.942-.372a3.924 3.924 0 0 1-1.418-.922A3.924 3.924 0 0 1 .42 13.24c-.198-.509-.333-1.09-.372-1.942C.01 10.445 0 10.173 0 8s.01-2.445.048-3.298C.088 3.85.222 3.269.42 2.76c.205-.526.478-.973.922-1.418A3.924 3.924 0 0 1 2.76.42C3.269.222 3.85.087 4.702.048 5.555.01 5.827 0 8 0zm0 3.892a4.108 4.108 0 1 0 0 8.216 4.108 4.108 0 0 0 0-8.216zm5.23-.162a.96.96 0 1 0-1.92 0 .96.96 0 0 0 1.92 0zM8 10.667a2.666 2.666 0 1 1 0-5.333 2.666 2.666 0 0 1 0 5.333z"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M14.67,12A2.67,2.67,0,1,1,12,9.33,2.67,2.67,0,0,1,14.67,12Zm3.89,0c0,1.16.1,3.66-.32,4.71a2.7,2.7,0,0,1-1.52,1.52c-1.06.42-3.55.33-4.72.33s-3.66.09-4.71-.33a2.65,2.65,0,0,1-1.52-1.52c-.42-1.05-.33-3.55-.33-4.71s-.09-3.67.33-4.72A2.65,2.65,0,0,1,7.29,5.76c1-.42,3.55-.32,4.71-.32a18,18,0,0,1,4.72.32,2.7,2.7,0,0,1,1.52,1.52C18.66,8.34,18.56,10.83,18.56,12ZM16.1,12A4.1,4.1,0,1,0,12,16.1,4.09,4.09,0,0,0,16.1,12Zm1.13-4.27a1,1,0,1,0-1,1A1,1,0,0,0,17.23,7.73ZM24,4V20a4,4,0,0,1-4,4H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H20A4,4,0,0,1,24,4ZM19.94,8.7a4.71,4.71,0,0,0-1.29-3.35A4.71,4.71,0,0,0,15.3,4.06C14,4,10,4,8.7,4.06A4.76,4.76,0,0,0,5.35,5.34,4.75,4.75,0,0,0,4.06,8.7C4,10,4,14,4.06,15.3a4.73,4.73,0,0,0,1.29,3.35A4.77,4.77,0,0,0,8.7,19.94c1.32.08,5.28.08,6.6,0a4.71,4.71,0,0,0,3.35-1.29,4.73,4.73,0,0,0,1.29-3.35C20,14,20,10,19.94,8.7Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 914 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M20,0H4A4,4,0,0,0,0,4V20a4,4,0,0,0,4,4H20a4,4,0,0,0,4-4V4A4,4,0,0,0,20,0ZM16.68,19a4.47,4.47,0,0,1-3,1C9.86,20,9,17.22,9,15.61v-4.5H7.56a.31.31,0,0,1-.31-.32V8.67a.52.52,0,0,1,.35-.5,4,4,0,0,0,2.63-3.66c0-.34.21-.51.51-.51H13a.31.31,0,0,1,.32.31v3.6h2.59a.31.31,0,0,1,.31.31v2.55a.31.31,0,0,1-.31.32H13.25v4.16c0,1.07.74,1.67,2.13,1.12a.67.67,0,0,1,.4-.07.36.36,0,0,1,.23.25l.68,2C16.75,18.71,16.8,18.89,16.68,19Z" fill-rule="evenodd"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 516 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="13" viewBox="0 0 16 13">
|
||||
<path fill-rule="evenodd" d="M14.362 3.238c.007.141.01.281.01.424 0 4.338-3.302 9.34-9.34 9.34A9.284 9.284 0 0 1 0 11.527c.257.029.518.045.783.045a6.576 6.576 0 0 0 4.076-1.404 3.288 3.288 0 0 1-3.065-2.28 3.312 3.312 0 0 0 1.481-.056A3.288 3.288 0 0 1 .642 4.613v-.041c.444.246.949.393 1.488.41A3.28 3.28 0 0 1 .67 2.25c0-.602.162-1.166.444-1.651a9.315 9.315 0 0 0 6.766 3.43A3.28 3.28 0 0 1 11.078 0c.943 0 1.797.398 2.395 1.035a6.565 6.565 0 0 0 2.085-.797 3.289 3.289 0 0 1-1.443 1.816A6.543 6.543 0 0 0 16 1.539a6.665 6.665 0 0 1-1.638 1.699"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M20,0H4A4,4,0,0,0,0,4V20a4,4,0,0,0,4,4H20a4,4,0,0,0,4-4V4A4,4,0,0,0,20,0ZM18.36,8.74c0,.14,0,.29,0,.43A9.34,9.34,0,0,1,4,17a6.85,6.85,0,0,0,.79,0,6.57,6.57,0,0,0,4.07-1.4A3.29,3.29,0,0,1,5.8,13.39a4.1,4.1,0,0,0,.62,0,3.49,3.49,0,0,0,.86-.11,3.28,3.28,0,0,1-2.63-3.22v0a3.35,3.35,0,0,0,1.48.42A3.29,3.29,0,0,1,4.67,7.76,3.22,3.22,0,0,1,5.12,6.1a9.3,9.3,0,0,0,6.76,3.43,3.67,3.67,0,0,1-.08-.75,3.28,3.28,0,0,1,5.67-2.24,6.54,6.54,0,0,0,2.08-.79,3.22,3.22,0,0,1-1.44,1.8A6.67,6.67,0,0,0,20,7.05,7.31,7.31,0,0,1,18.36,8.74Z" fill-rule="evenodd"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 645 B After Width: | Height: | Size: 622 B |
@@ -22,11 +22,6 @@
|
||||
Account created:
|
||||
<strong>{{ hero.auth.timestamps.created | formatDate }}</strong>
|
||||
</div>
|
||||
<div>
|
||||
Most recent cron:
|
||||
<strong>{{ hero.auth.timestamps.loggedin | formatDate }}</strong>
|
||||
("auth.timestamps.loggedin")
|
||||
</div>
|
||||
<div v-if="cronError">
|
||||
"lastCron" value:
|
||||
<strong>{{ hero.lastCron | formatDate }}</strong>
|
||||
@@ -36,6 +31,19 @@
|
||||
("auth.timestamps.loggedin" and "lastCron" dates are different).
|
||||
</span>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<div>
|
||||
Most recent cron:
|
||||
<strong>{{ hero.auth.timestamps.loggedin | formatDate }}</strong>
|
||||
("auth.timestamps.loggedin")
|
||||
</div>
|
||||
<button
|
||||
class="btn btn-primary ml-2"
|
||||
@click="resetCron()"
|
||||
>
|
||||
Reset Cron to Yesterday
|
||||
</button>
|
||||
</div>
|
||||
<div class="subsection-start">
|
||||
Time zone:
|
||||
<strong>{{ hero.preferences.timezoneOffset | formatTimeZone }}</strong>
|
||||
@@ -218,6 +226,10 @@ export default {
|
||||
await this.saveHero({ hero: this.hero, msg: 'API Token' });
|
||||
this.tokenModified = true;
|
||||
},
|
||||
resetCron () {
|
||||
this.hero.resetCron = true;
|
||||
this.saveHero({ hero: this.hero, msg: 'Last Cron', clearData: true });
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
:reset-counter="resetCounter"
|
||||
/>
|
||||
|
||||
<subscription-and-perks
|
||||
:hero="hero"
|
||||
/>
|
||||
|
||||
<cron-and-auth
|
||||
:hero="hero"
|
||||
:reset-counter="resetCounter"
|
||||
@@ -97,6 +101,7 @@ import AvatarAndDrops from './avatarAndDrops';
|
||||
import PrivilegesAndGems from './privilegesAndGems';
|
||||
import ContributorDetails from './contributorDetails';
|
||||
import Transactions from './transactions';
|
||||
import SubscriptionAndPerks from './subscriptionAndPerks';
|
||||
|
||||
import { userStateMixin } from '../../../mixins/userState';
|
||||
|
||||
@@ -110,6 +115,7 @@ export default {
|
||||
PrivilegesAndGems,
|
||||
ContributorDetails,
|
||||
Transactions,
|
||||
SubscriptionAndPerks,
|
||||
},
|
||||
mixins: [userStateMixin],
|
||||
data () {
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
<template>
|
||||
<div class="accordion-group">
|
||||
<h3
|
||||
class="expand-toggle"
|
||||
:class="{'open': expand}"
|
||||
@click="expand = !expand"
|
||||
>
|
||||
Subscription, Monthly Perks
|
||||
</h3>
|
||||
<div v-if="expand">
|
||||
<form @submit.prevent="saveHero({ hero, msg: 'Subscription Perks' })">
|
||||
<div v-if="hero.purchased.plan.paymentMethod">
|
||||
Payment method:
|
||||
<strong>{{ hero.purchased.plan.paymentMethod }}</strong>
|
||||
</div>
|
||||
<div v-if="hero.purchased.plan.planId">
|
||||
Payment schedule ("basic-earned" is monthly):
|
||||
<strong>{{ hero.purchased.plan.planId }}</strong>
|
||||
</div>
|
||||
<div v-if="hero.purchased.plan.dateCreated">
|
||||
Creation date:
|
||||
<strong>{{ dateFormat(hero.purchased.plan.dateCreated) }}</strong>
|
||||
</div>
|
||||
<div>
|
||||
Termination date:
|
||||
<strong
|
||||
v-if="hero.purchased.plan.dateTerminated"
|
||||
>
|
||||
{{ dateFormat(hero.purchased.plan.dateTerminated) }}
|
||||
</strong>
|
||||
<strong v-else> None </strong>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<label>
|
||||
Consecutive months:
|
||||
<input
|
||||
v-model="hero.purchased.plan.consecutive.count"
|
||||
class="form-control"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
Months until renewal:
|
||||
<strong>{{ hero.purchased.plan.consecutive.offset }}</strong>
|
||||
</div>
|
||||
<div>
|
||||
Next Mystic Hourglass:
|
||||
<strong>{{ nextHourglassDate }}</strong>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<label>
|
||||
Mystic Hourglasses:
|
||||
<input
|
||||
v-model="hero.purchased.plan.consecutive.trinkets"
|
||||
class="form-control"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
Gem cap:
|
||||
<strong>{{ hero.purchased.plan.consecutive.gemCapExtra + 25 }}</strong>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<label>
|
||||
Gems bought this month:
|
||||
<input
|
||||
v-model="hero.purchased.plan.gemsBought"
|
||||
class="form-control"
|
||||
type="number"
|
||||
min="0"
|
||||
:max="hero.purchased.plan.consecutive.gemCapExtra + 25"
|
||||
step="1"
|
||||
>
|
||||
</label>
|
||||
</div>
|
||||
<div
|
||||
v-if="hero.purchased.plan.extraMonths > 0"
|
||||
>
|
||||
Additional credit (applied upon cancellation):
|
||||
<strong>{{ hero.purchased.plan.extraMonths }}</strong>
|
||||
</div>
|
||||
<div>
|
||||
Mystery Items:
|
||||
<span
|
||||
v-if="hero.purchased.plan.mysteryItems.length > 0"
|
||||
>
|
||||
<span
|
||||
v-for="(item, index) in hero.purchased.plan.mysteryItems"
|
||||
:key="index"
|
||||
>
|
||||
<strong v-if="index < hero.purchased.plan.mysteryItems.length - 1">
|
||||
{{ item }},
|
||||
</strong>
|
||||
<strong v-else> {{ item }} </strong>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else>
|
||||
<strong>None</strong>
|
||||
</span>
|
||||
</div>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import saveHero from '../mixins/saveHero';
|
||||
import { getPlanContext } from '@/../../common/script/cron';
|
||||
|
||||
export default {
|
||||
mixins: [saveHero],
|
||||
props: {
|
||||
hero: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
expand: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
nextHourglassDate () {
|
||||
const currentPlanContext = getPlanContext(this.hero, new Date());
|
||||
|
||||
return currentPlanContext.nextHourglassDate.format('MMMM');
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
'hero.purchased.plan.consecutive.count' () { // eslint-disable-line object-shorthand
|
||||
this.hero.purchased.plan.consecutive.gemCapExtra = Math.min(
|
||||
Math.floor(this.hero.purchased.plan.consecutive.count / 3) * 5, 25,
|
||||
);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
dateFormat (date) {
|
||||
return moment(date).format('YYYY/MM/DD');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,21 +1,5 @@
|
||||
<template>
|
||||
<div class="form">
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="btn btn-secondary social-button"
|
||||
@click="socialAuth('facebook')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon social-icon"
|
||||
v-html="icons.facebookIcon"
|
||||
></div>
|
||||
<span>{{ registering
|
||||
? $t('signUpWithSocial', {social: 'Facebook'})
|
||||
: $t('loginWithSocial', {social: 'Facebook'}) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row text-center">
|
||||
<div class="col-12">
|
||||
<div
|
||||
@@ -243,7 +227,6 @@ import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/lib/isEmail';
|
||||
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';
|
||||
|
||||
@@ -260,7 +243,6 @@ export default {
|
||||
};
|
||||
|
||||
data.icons = Object.freeze({
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
appleIcon,
|
||||
});
|
||||
@@ -308,8 +290,6 @@ export default {
|
||||
},
|
||||
mounted () {
|
||||
hello.init({
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
// windows: WINDOWS_CLIENT_ID,
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
});
|
||||
},
|
||||
|
||||
@@ -621,7 +621,6 @@ import { MINIMUM_PASSWORD_LENGTH } from '@/../../common/script/constants';
|
||||
import exclamation from '@/assets/svg/exclamation.svg';
|
||||
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';
|
||||
|
||||
@@ -644,7 +643,6 @@ export default {
|
||||
exclamation,
|
||||
gryphon,
|
||||
habiticaIcon,
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
appleIcon,
|
||||
});
|
||||
@@ -734,8 +732,6 @@ export default {
|
||||
},
|
||||
mounted () {
|
||||
hello.init({
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
// windows: WINDOWS_CLIENT_ID,
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
});
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<customize-options
|
||||
:items="set.options"
|
||||
:current-value="user.preferences.hair.color"
|
||||
:full-set="!hideSet(set) && !userOwnsSet('hair', set.keys, 'color')"
|
||||
:full-set="!hideSet(set.key) && !userOwnsSet('hair', set.keys, 'color')"
|
||||
@unlock="unlock(`hair.color.${set.keys.join(',hair.color.')}`)"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<customize-options
|
||||
:items="set.options"
|
||||
:current-value="user.preferences.skin"
|
||||
:full-set="!hideSet(set) && !userOwnsSet('skin', set.keys)"
|
||||
:full-set="!hideSet(set.key) && !userOwnsSet('skin', set.keys)"
|
||||
@unlock="unlock(`skin.${set.keys.join(',skin.')}`)"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<!-- THIS IS A VERY OLD FILE DO NOT USE -->
|
||||
<template>
|
||||
<div class="create-group-modal-pages">
|
||||
<div
|
||||
|
||||
@@ -0,0 +1,356 @@
|
||||
<template>
|
||||
<b-modal
|
||||
id="create-group"
|
||||
:title="activePage === PAGES.CREATE_GROUP ? 'Create your Group' : 'Select Payment'"
|
||||
:hide-footer="true"
|
||||
:hide-header="true"
|
||||
size="md"
|
||||
@hide="onHide()"
|
||||
>
|
||||
<div
|
||||
v-if="activePage === PAGES.CREATE_GROUP"
|
||||
class="col-12"
|
||||
>
|
||||
<!-- HEADER -->
|
||||
<div
|
||||
class="modal-close"
|
||||
>
|
||||
<span
|
||||
class="cancel-text"
|
||||
@click="close()"
|
||||
>
|
||||
{{ $t('cancel') }}
|
||||
</span>
|
||||
<button
|
||||
class="btn btn-primary next-button"
|
||||
:value="$t('next')"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
>
|
||||
{{ $t('next') }}
|
||||
</button>
|
||||
</div>
|
||||
<h2>{{ $t('createGroup') }}</h2>
|
||||
|
||||
<!-- FORM -->
|
||||
<div class="form-group">
|
||||
<lockable-label
|
||||
:text="$t('nameStar')"
|
||||
/>
|
||||
<input
|
||||
id="new-group-name"
|
||||
v-model="newGroup.name"
|
||||
class="form-control input-medium option-content name-input"
|
||||
required="required"
|
||||
type="text"
|
||||
:placeholder="$t('nameStarText')"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<lockable-label
|
||||
for="new-group-description"
|
||||
:text="$t('descriptionOptional')"
|
||||
class="description-label"
|
||||
/>
|
||||
<div class="characters-remaining">
|
||||
{{ $t('charactersRemaining', {characters: charactersRemaining}) }}
|
||||
</div>
|
||||
<textarea
|
||||
id="new-group-description"
|
||||
v-model="newGroup.description"
|
||||
class="form-control option-content description-input"
|
||||
cols="3"
|
||||
:placeholder="$t('descriptionOptionalText')"
|
||||
maxlength="250"
|
||||
></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input
|
||||
id="create-group-leaderOnlyChallenges-checkbox"
|
||||
v-model="newGroup.leaderOnly.challenges"
|
||||
class="custom-control-input"
|
||||
type="checkbox"
|
||||
>
|
||||
<label
|
||||
class="custom-control-label"
|
||||
for="create-group-leaderOnlyChallenges-checkbox"
|
||||
>{{ $t('leaderOnlyChallenges') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<lockable-label
|
||||
:text="$t('groupUse')"
|
||||
/>
|
||||
<select-translated-array
|
||||
:items="[
|
||||
'groupParentChildren',
|
||||
'groupCouple',
|
||||
'groupFriends',
|
||||
'groupCoworkers',
|
||||
'groupManager',
|
||||
'groupTeacher'
|
||||
]"
|
||||
class="group-input"
|
||||
:placeholder="'groupUseDefault'"
|
||||
:value="newGroup.demographics"
|
||||
@select="newGroup.demographics = $event"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button
|
||||
class="btn btn-primary btn-lg btn-block btn-payment"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
>
|
||||
{{ $t('nextPaymentMethod') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- PAYMENT -->
|
||||
<!-- @TODO: Separate payment into a separate modal -->
|
||||
<div
|
||||
v-if="activePage === PAGES.PAY"
|
||||
class="col-12 payments"
|
||||
>
|
||||
<div class="text-center">
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</b-modal>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
h2 {
|
||||
color: $purple-300;
|
||||
font-size: 1.25rem;
|
||||
height: 28px;
|
||||
width: 120px;
|
||||
margin-top: 24px;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.cancel-text {
|
||||
color: $blue-10;
|
||||
font-size: 0.875rem;
|
||||
margin-right: 16px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
.next-button {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.form-control::placeholder {
|
||||
color: $gray-50;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.description-label {
|
||||
margin-bottom: -24px;
|
||||
}
|
||||
|
||||
.name-input, .description-input, .group-input {
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.characters-remaining {
|
||||
color: $gray-100;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1.33;
|
||||
text-align: right;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.description-input {
|
||||
height: 56px;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
margin-bottom: 16px !important;
|
||||
}
|
||||
|
||||
.btn-payment {
|
||||
margin: 24px 112px 24px 112px;
|
||||
width: 177px;
|
||||
}
|
||||
|
||||
.payments {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.payment-options {
|
||||
margin-bottom: 4em;
|
||||
|
||||
.purple-box {
|
||||
background-color: #4f2a93;
|
||||
color: #fff;
|
||||
padding: .5em;
|
||||
border-radius: 8px;
|
||||
width: 200px;
|
||||
height: 215px;
|
||||
|
||||
.dollar {
|
||||
}
|
||||
|
||||
.number {
|
||||
font-size: 60px;
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 100px;
|
||||
margin-left: .3em;
|
||||
}
|
||||
|
||||
div {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.box, .purple-box {
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<style lang="scss">
|
||||
@import '~@/assets/scss/mixins.scss';
|
||||
#create-group {
|
||||
.modal-dialog {
|
||||
max-width: 448px;
|
||||
}
|
||||
.modal-content {
|
||||
width: 448px;
|
||||
max-height: 436px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 14px 28px 0 rgba(26, 24, 29, 0.24), 0 10px 10px 0 rgba(26, 24, 29, 0.28);
|
||||
}
|
||||
.modal-body{
|
||||
padding: 0px;
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
.modal-close {
|
||||
position: absolute;
|
||||
right: 16px;
|
||||
cursor: pointer;
|
||||
top: 0px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
import { mapState } from '@/libs/store';
|
||||
import paymentsButtons from '@/components/payments/buttons/list';
|
||||
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
|
||||
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
|
||||
import * as Analytics from '@/libs/analytics';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
paymentsButtons,
|
||||
selectTranslatedArray,
|
||||
lockableLabel,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
amazonPayments: {},
|
||||
PAGES: {
|
||||
CREATE_GROUP: 'create-group',
|
||||
// UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
},
|
||||
paymentMethod: '',
|
||||
newGroup: {
|
||||
type: 'guild',
|
||||
privacy: 'private',
|
||||
name: '',
|
||||
description: '',
|
||||
leaderOnly: {
|
||||
challenges: false,
|
||||
},
|
||||
demographics: null,
|
||||
user: '',
|
||||
},
|
||||
activePage: 'create-group',
|
||||
type: 'guild',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
newGroupIsReady () {
|
||||
return Boolean(this.newGroup.name) && Boolean(this.newGroup.demographics);
|
||||
},
|
||||
charactersRemaining () {
|
||||
const currentLength = this.newGroup.description ? this.newGroup.description.length : 0;
|
||||
return 250 - currentLength;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'create-group');
|
||||
},
|
||||
changePage (page) {
|
||||
this.activePage = page;
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
},
|
||||
pay (paymentMethod) {
|
||||
const subscriptionKey = 'group_monthly'; // @TODO: Get from content API?
|
||||
const demographicsKey = this.newGroup.demographics;
|
||||
const paymentData = {
|
||||
subscription: subscriptionKey,
|
||||
coupon: null,
|
||||
demographics: demographicsKey,
|
||||
};
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventName: 'group plan create',
|
||||
eventAction: 'group plan create',
|
||||
eventCategory: 'behavior',
|
||||
demographics: this.newGroup.demographics,
|
||||
type: this.newGroup.type,
|
||||
}, { trackOnClient: true });
|
||||
|
||||
if (this.upgradingGroup && this.upgradingGroup._id) {
|
||||
paymentData.groupId = this.upgradingGroup._id;
|
||||
paymentData.group = this.upgradingGroup;
|
||||
} else {
|
||||
paymentData.groupToCreate = this.newGroup;
|
||||
}
|
||||
|
||||
this.paymentMethod = paymentMethod;
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.AMAZON) {
|
||||
paymentData.type = 'subscription';
|
||||
return paymentData;
|
||||
}
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.STRIPE) {
|
||||
this.redirectToStripe(paymentData);
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
|
||||
onHide () {
|
||||
this.sendingInProgress = false;
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<!-- @TODO: Move to group plans folder-->
|
||||
<div>
|
||||
<group-plan-creation-modal />
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1 class="text-center">
|
||||
@@ -51,6 +52,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Upgrading an existing group -->
|
||||
<div
|
||||
v-if="upgradingGroup._id"
|
||||
id="upgrading-group"
|
||||
@@ -92,7 +94,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="box payment-providers">
|
||||
<h3>Choose your payment method</h3>
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
@@ -101,154 +102,53 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Create a new group -->
|
||||
<div
|
||||
v-if="!upgradingGroup._id"
|
||||
class="container col-6 offset-3 create-option"
|
||||
>
|
||||
<div class="row">
|
||||
<h1 class="col-12 text-center purple-header">
|
||||
Create your Group today!
|
||||
Create Your Group Today!
|
||||
</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<button
|
||||
class="btn btn-primary create-group"
|
||||
@click="launchModal('create')"
|
||||
@click="launchModal('create-page')"
|
||||
>
|
||||
Create Your New Group
|
||||
Create Your New Group!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pricing">
|
||||
<div class="col-5">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
9
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Group Owner</div>
|
||||
<div>Subscription</div>
|
||||
</div>
|
||||
<div class="row pricing justify-content-center align-items-center">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<div class="plus">
|
||||
+
|
||||
</div>
|
||||
<div class="number">
|
||||
9
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
3
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Each Additional</div>
|
||||
<div>Member</div>
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Group Owner</div>
|
||||
<div>Subscription</div>
|
||||
</div>
|
||||
<div class="plus">
|
||||
+
|
||||
</div>
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
3
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Each Additional</div>
|
||||
<div>Member</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<b-modal
|
||||
id="group-plan-modal"
|
||||
:title="activePage === PAGES.CREATE_GROUP ? 'Create your Group' : 'Select Payment'"
|
||||
size="md"
|
||||
hide-footer="hide-footer"
|
||||
>
|
||||
<div
|
||||
v-if="activePage === PAGES.CREATE_GROUP"
|
||||
class="col-12"
|
||||
>
|
||||
<div class="form-group">
|
||||
<label
|
||||
class="control-label"
|
||||
for="new-group-name"
|
||||
>Name</label>
|
||||
<input
|
||||
id="new-group-name"
|
||||
v-model="newGroup.name"
|
||||
class="form-control input-medium option-content"
|
||||
required="required"
|
||||
type="text"
|
||||
placeholder="Name"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new-group-description">{{ $t('description') }}</label>
|
||||
<textarea
|
||||
id="new-group-description"
|
||||
v-model="newGroup.description"
|
||||
class="form-control option-content"
|
||||
cols="3"
|
||||
:placeholder="$t('description')"
|
||||
></textarea>
|
||||
</div>
|
||||
<div
|
||||
v-if="type === 'guild'"
|
||||
class="form-group"
|
||||
>
|
||||
<div class="custom-control custom-radio">
|
||||
<input
|
||||
v-model="newGroup.privacy"
|
||||
class="custom-control-input"
|
||||
type="radio"
|
||||
name="new-group-privacy"
|
||||
value="private"
|
||||
>
|
||||
<label class="custom-control-label">{{ $t('inviteOnly') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input
|
||||
id="create-group-leaderOnlyChallenges-checkbox"
|
||||
v-model="newGroup.leaderOnly.challenges"
|
||||
class="custom-control-input"
|
||||
type="checkbox"
|
||||
>
|
||||
<label
|
||||
class="custom-control-label"
|
||||
for="create-group-leaderOnlyChallenges-checkbox"
|
||||
>{{ $t('leaderOnlyChallenges') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="type === 'party'"
|
||||
class="form-group"
|
||||
>
|
||||
<button
|
||||
class="btn btn-secondary form-control"
|
||||
:value="$t('create')"
|
||||
@click="createGroup()"
|
||||
></button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button
|
||||
class="btn btn-primary btn-lg btn-block"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
>
|
||||
{{ $t('create') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="activePage === PAGES.PAY"
|
||||
class="col-12"
|
||||
>
|
||||
<div class="text-center">
|
||||
<h3>Choose your payment method</h3>
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</b-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -260,12 +160,17 @@
|
||||
|
||||
.dollar {
|
||||
position: absolute;
|
||||
left: -1em;
|
||||
top: 1em;
|
||||
left: -16px;
|
||||
top: 16px;
|
||||
}
|
||||
|
||||
.purple-box {
|
||||
color: #bda8ff;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
border-top-left-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
}
|
||||
|
||||
.number {
|
||||
@@ -279,6 +184,8 @@
|
||||
|
||||
.payment-providers {
|
||||
width: 350px;
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,9 +193,9 @@
|
||||
background: #432874;
|
||||
background: linear-gradient(180deg, #4F2A93 0%, #432874 100%);
|
||||
color: #fff;
|
||||
padding: 2em;
|
||||
padding: 32px;
|
||||
height: 340px;
|
||||
margin-bottom: 2em;
|
||||
margin-bottom: 32px;
|
||||
margin-left: -12px;
|
||||
margin-right: -12px;
|
||||
|
||||
@@ -312,6 +219,7 @@
|
||||
|
||||
.box {
|
||||
height: 416px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@@ -354,17 +262,19 @@
|
||||
button.create-group {
|
||||
width: 330px;
|
||||
height: 96px;
|
||||
border-radius: 8px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.purple-header {
|
||||
color: #6133b4;
|
||||
font-size: 48px;
|
||||
margin-top: 1em;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.pricing {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 4em;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 64px;
|
||||
|
||||
.dollar, .number, .name {
|
||||
display: inline-block;
|
||||
@@ -373,35 +283,41 @@
|
||||
}
|
||||
|
||||
.plus {
|
||||
font-size: 34px;
|
||||
font-size: 2.125rem;
|
||||
color: #a5a1ac;
|
||||
margin-left: 16px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.dollar {
|
||||
margin-bottom: 1.5em;
|
||||
font-size: 32px;
|
||||
margin-bottom: 24px;
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 24px;
|
||||
margin-bottom: .8em;
|
||||
margin-left: .5em;
|
||||
font-size: 1.5rem;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.number {
|
||||
font-size: 72px;
|
||||
font-size: 4.5rem;
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
.payment-options {
|
||||
margin-bottom: 4em;
|
||||
margin-bottom: 64px;
|
||||
|
||||
h4 {
|
||||
color: #34313a;
|
||||
}
|
||||
|
||||
.purple-box {
|
||||
background-color: #4f2a93;
|
||||
color: #fff;
|
||||
padding: .5em;
|
||||
padding: 8px;
|
||||
border-radius: 8px;
|
||||
width: 200px;
|
||||
height: 215px;
|
||||
@@ -415,7 +331,7 @@
|
||||
|
||||
.name {
|
||||
width: 100px;
|
||||
margin-left: .3em;
|
||||
margin-left: 4.8px;
|
||||
}
|
||||
|
||||
.plus {
|
||||
@@ -440,10 +356,12 @@ import paymentsMixin from '../../mixins/payments';
|
||||
import { mapState } from '@/libs/store';
|
||||
import positiveIcon from '@/assets/svg/positive.svg';
|
||||
import paymentsButtons from '@/components/payments/buttons/list';
|
||||
import groupPlanCreationModal from '../group-plans/groupPlanCreationModal';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
paymentsButtons,
|
||||
groupPlanCreationModal,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
@@ -492,12 +410,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
launchModal () {
|
||||
this.changePage(this.PAGES.CREATE_GROUP);
|
||||
this.$root.$emit('bv::show::modal', 'group-plan-modal');
|
||||
},
|
||||
changePage (page) {
|
||||
this.activePage = page;
|
||||
window.scrollTo(0, 0);
|
||||
this.$root.$emit('bv::show::modal', 'create-group');
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
|
||||
@@ -196,7 +196,7 @@ export default {
|
||||
appState.group = pick(this.amazonPayments.groupToCreate, ['_id', 'memberCount', 'name']);
|
||||
} else {
|
||||
appState.newGroup = false;
|
||||
appState.group = pick(this.amazonPayments.group, ['_id', 'memberCount', 'name']);
|
||||
appState.group = pick(this.amazonPayments.group, ['_id', 'memberCount', 'name', 'type']);
|
||||
}
|
||||
} else if (paymentType && paymentType.indexOf('gift-') === 0) {
|
||||
appState.gift = this.amazonPayments.gift;
|
||||
|
||||
@@ -153,14 +153,6 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row text-center">
|
||||
<h4
|
||||
v-once
|
||||
class="col-12 text-payment mb-3"
|
||||
>
|
||||
{{ $t('choosePaymentMethod') }}
|
||||
</h4>
|
||||
</div>
|
||||
<payments-buttons
|
||||
:disabled="!selectedGemsBlock"
|
||||
:stripe-fn="() => redirectToStripe({ gemsBlock: selectedGemsBlock })"
|
||||
@@ -169,6 +161,19 @@
|
||||
})"
|
||||
:amazon-data="{type: 'single', gemsBlock: selectedGemsBlock}"
|
||||
/>
|
||||
<div
|
||||
v-if="eventName === 'fall_extra_gems' || eventName === 'spooky_extra_gems'"
|
||||
class="d-flex flex-column justify-content-center"
|
||||
>
|
||||
<h4 class="mt-3 mx-auto"> {{ $t('howItWorks') }}</h4>
|
||||
<small class="text-center">
|
||||
{{ $t('gemSaleHow', { eventStartMonth, eventStartOrdinal, eventEndOrdinal }) }}
|
||||
</small>
|
||||
<h4 class="mt-3 mx-auto"> {{ $t('limitations') }}</h4>
|
||||
<small class="text-center">
|
||||
{{ $t('gemSaleLimitations', { eventStartMonth, eventStartOrdinal, eventEndOrdinal }) }}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</b-modal>
|
||||
</div>
|
||||
@@ -178,6 +183,13 @@
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
#buy-gems {
|
||||
small {
|
||||
color: $gray-100;
|
||||
font-size: 12px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.close-icon svg path {
|
||||
stroke: $purple-400;
|
||||
}
|
||||
@@ -423,6 +435,15 @@ export default {
|
||||
}
|
||||
return '';
|
||||
},
|
||||
eventStartMonth () {
|
||||
return moment(this.currentEvent.start).format('MMMM');
|
||||
},
|
||||
eventStartOrdinal () {
|
||||
return moment(this.currentEvent.start).format('Do');
|
||||
},
|
||||
eventEndOrdinal () {
|
||||
return moment(this.currentEvent.end).format('Do');
|
||||
},
|
||||
isGemsPromoActive () {
|
||||
const currEvt = this.currentEvent;
|
||||
if (currEvt && currEvt.gemsPromo && moment().isBefore(currEvt.end)) {
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<b-modal
|
||||
id="payments-success-modal"
|
||||
:title="$t('accountSuspendedTitle')"
|
||||
:hide-footer="isFromBalance"
|
||||
:modal-class="isFromBalance ? ['modal-hidden-footer'] : []"
|
||||
:hide-footer="isFromBalance || paymentData.newGroup"
|
||||
:modal-class="isFromBalance || paymentData.newGroup ? ['modal-hidden-footer'] : []"
|
||||
>
|
||||
<div slot="modal-header">
|
||||
<div class="check-container d-flex align-items-center justify-content-center">
|
||||
@@ -16,15 +16,49 @@
|
||||
<h2>{{ $t(isFromBalance ? 'success' : 'paymentSuccessful') }}</h2>
|
||||
</div>
|
||||
<div slot="modal-footer">
|
||||
<!-- everyone else -->
|
||||
<div
|
||||
v-once
|
||||
v-if="paymentData.paymentType !== 'groupPlan' || paymentData.newGroup"
|
||||
class="small-text"
|
||||
>
|
||||
{{ $t('giftSubscriptionText4') }}
|
||||
</div>
|
||||
<!-- upgradedGroup -->
|
||||
<div
|
||||
v-else
|
||||
class="demographics d-flex flex-column justify-content-center"
|
||||
>
|
||||
<lockable-label
|
||||
:text="$t('groupUse')"
|
||||
class="mx-auto label-text"
|
||||
/>
|
||||
<select-translated-array
|
||||
:items="[
|
||||
'groupParentChildren',
|
||||
'groupCouple',
|
||||
'groupFriends',
|
||||
'groupCoworkers',
|
||||
'groupManager',
|
||||
'groupTeacher'
|
||||
]"
|
||||
class="group-input"
|
||||
:placeholder="'groupUseDefault'"
|
||||
:value="upgradedGroup.demographics"
|
||||
@select="upgradedGroup.demographics = $event"
|
||||
/>
|
||||
<button
|
||||
v-if="!paymentData.newGroup"
|
||||
class="btn btn-primary mx-auto"
|
||||
:disabled="!upgradedGroup.demographics"
|
||||
@click="submit()"
|
||||
>
|
||||
{{ $t('submit') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 modal-body-col">
|
||||
<!-- buy gems for self -->
|
||||
<template v-if="paymentData.paymentType === 'gems'">
|
||||
<strong v-once>{{ $t('paymentYouReceived') }}</strong>
|
||||
<div class="details-block gems">
|
||||
@@ -36,6 +70,7 @@
|
||||
<span>{{ paymentData.gemsBlock.gems }}</span>
|
||||
</div>
|
||||
</template>
|
||||
<!-- buy or gift gems to someone else -->
|
||||
<template
|
||||
v-if="paymentData.paymentType === 'gift-gems'
|
||||
|| paymentData.paymentType === 'gift-gems-balance'"
|
||||
@@ -50,12 +85,14 @@
|
||||
<span>{{ paymentData.gift.gems.amount }}</span>
|
||||
</div>
|
||||
</template>
|
||||
<!-- give gift subscription (non-recurring)-->
|
||||
<template v-if="paymentData.paymentType === 'gift-subscription'">
|
||||
<span
|
||||
v-html="$t('paymentYouSentSubscription', {
|
||||
name: paymentData.giftReceiver, months: paymentData.subscription.months})"
|
||||
></span>
|
||||
</template>
|
||||
<!-- buy self subscription (recurring) -->
|
||||
<template v-if="paymentData.paymentType === 'subscription'">
|
||||
<strong v-once>{{ $t('nowSubscribed') }}</strong>
|
||||
<div class="details-block">
|
||||
@@ -65,31 +102,45 @@
|
||||
></span>
|
||||
</div>
|
||||
</template>
|
||||
<!-- group plan new or upgraded -->
|
||||
<template v-if="paymentData.paymentType === 'groupPlan'">
|
||||
<span
|
||||
v-html="$t(paymentData.newGroup
|
||||
? 'groupPlanCreated' : 'groupPlanUpgraded', {groupName: paymentData.group.name})"
|
||||
></span>
|
||||
<div class="details-block">
|
||||
<span
|
||||
v-html="$t('paymentSubBilling', {
|
||||
amount: groupPlanCost, months: paymentData.subscription.months})"
|
||||
></span>
|
||||
<div
|
||||
v-if="!paymentData.newGroup || paymentData.newGroup"
|
||||
class=""
|
||||
>
|
||||
<div class="details-block group-billing-date">
|
||||
<span
|
||||
v-html="$t('groupsPaymentSubBilling', { renewalDate })"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
<div class="small-text group-auto-renew">
|
||||
<span
|
||||
v-once
|
||||
>{{ $t('groupsPaymentAutoRenew') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- buy self subscription auto renew -->
|
||||
<template
|
||||
v-if="paymentData.paymentType === 'groupPlan'
|
||||
|| paymentData.paymentType === 'subscription'"
|
||||
v-if="paymentData.paymentType === 'subscription'"
|
||||
>
|
||||
<span
|
||||
v-once
|
||||
class="small-text auto-renew"
|
||||
>{{ $t('paymentAutoRenew') }}</span>
|
||||
</template>
|
||||
<!-- buttons for subscriptions -->
|
||||
<button
|
||||
v-if="paymentData.paymentType !== 'groupPlan'"
|
||||
v-once
|
||||
class="btn btn-primary"
|
||||
@click="close()"
|
||||
@click="submit()"
|
||||
>
|
||||
{{ $t('onwards') }}
|
||||
</button>
|
||||
@@ -102,7 +153,7 @@
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
#payments-success-modal .modal-md {
|
||||
max-width: 20.5rem;
|
||||
max-width: 448px;
|
||||
}
|
||||
|
||||
#payments-success-modal .modal-content {
|
||||
@@ -114,6 +165,7 @@
|
||||
border-bottom-left-radius: 8px;
|
||||
}
|
||||
|
||||
|
||||
#payments-success-modal .modal-header {
|
||||
justify-content: center;
|
||||
padding-top: 24px;
|
||||
@@ -124,14 +176,14 @@
|
||||
border-bottom: none;
|
||||
|
||||
h2 {
|
||||
color: white;
|
||||
color: $green-1;
|
||||
}
|
||||
|
||||
.check-container {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
background: #1CA372;
|
||||
background: $green-1;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
@@ -139,14 +191,13 @@
|
||||
.check {
|
||||
width: 35.1px;
|
||||
height: 28px;
|
||||
color: white;
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
#payments-success-modal .modal-body {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 24px;
|
||||
background: white;
|
||||
padding: 16px 32px 24px 32px;
|
||||
background: $white;
|
||||
|
||||
.modal-body-col {
|
||||
display: flex;
|
||||
@@ -162,9 +213,9 @@
|
||||
.details-block {
|
||||
background: $gray-700;
|
||||
border-radius: 4px;
|
||||
padding: 8px 24px;
|
||||
padding: 8px 16px;
|
||||
margin-top: 16px;
|
||||
display: flex;
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
text-align: center;
|
||||
|
||||
@@ -188,6 +239,14 @@
|
||||
color: $orange-10;
|
||||
font-style: normal;
|
||||
}
|
||||
.group-auto-renew {
|
||||
margin: 12px 20px -8px 20px;
|
||||
color: $yellow-5;
|
||||
font-style: normal;
|
||||
}
|
||||
.group-billing-date {
|
||||
width: 269px;
|
||||
}
|
||||
}
|
||||
|
||||
#payments-success-modal .modal-footer {
|
||||
@@ -201,14 +260,49 @@
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.demographics {
|
||||
background-color: $gray-700;
|
||||
|
||||
.label-text {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.group-input {
|
||||
width: 400px !important;
|
||||
margin-top: -24px !important;
|
||||
}
|
||||
.btn {
|
||||
margin-top: 0px;
|
||||
width: 77px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
@import '~@/assets/scss/mixins.scss';
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<script>
|
||||
import checkIcon from '@/assets/svg/check.svg';
|
||||
import gemIcon from '@/assets/svg/gem.svg';
|
||||
import { mapState } from '@/libs/store';
|
||||
import subscriptionBlocks from '@/../../common/script/content/subscriptionBlocks';
|
||||
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
|
||||
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
|
||||
import paymentsMixin from '@/mixins/payments';
|
||||
import * as Analytics from '@/libs/analytics';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
selectTranslatedArray,
|
||||
lockableLabel,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
@@ -216,9 +310,14 @@ export default {
|
||||
gem: gemIcon,
|
||||
}),
|
||||
paymentData: {},
|
||||
upgradedGroup: {
|
||||
name: '',
|
||||
demographics: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data', group: 'group.data' }),
|
||||
groupPlanCost () {
|
||||
const sub = this.paymentData.subscription;
|
||||
const memberCount = this.paymentData.group.memberCount || 1;
|
||||
@@ -242,7 +341,17 @@ export default {
|
||||
this.$root.$off('habitica:payments-success');
|
||||
},
|
||||
methods: {
|
||||
close () {
|
||||
submit () {
|
||||
if (this.paymentData.group && !this.paymentData.newGroup) {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventName: 'group plan upgrade',
|
||||
eventAction: 'group plan upgrade',
|
||||
eventCategory: 'behavior',
|
||||
demographics: this.upgradedGroup.demographics,
|
||||
type: this.paymentData.group.type,
|
||||
}, { trackOnClient: true });
|
||||
}
|
||||
this.paymentData = {};
|
||||
this.$root.$emit('bv::hide::modal', 'payments-success-modal');
|
||||
},
|
||||
|
||||
@@ -387,9 +387,7 @@
|
||||
{{ $t('saveAndConfirm') }}
|
||||
</button>
|
||||
</div>
|
||||
<h5
|
||||
v-if="user.auth.local.email"
|
||||
>
|
||||
<h5 v-if="user.auth.local.has_password">
|
||||
{{ $t('changeEmail') }}
|
||||
</h5>
|
||||
<div
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
|
||||
#front {
|
||||
.form-text a {
|
||||
color: #fff !important;
|
||||
color: $white !important;
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
@@ -375,30 +375,24 @@
|
||||
padding-bottom: 5em;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 128px;
|
||||
height: 28px;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.purple-1, .purple-2, .purple-3, .purple-4, h1, h2, h3, h4, h5 {
|
||||
color: #fff;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.purple-1 {
|
||||
background-color: #6133b4;
|
||||
background-color: $purple-300;
|
||||
}
|
||||
|
||||
.purple-2 {
|
||||
background-color: #432874;
|
||||
background-color: $purple-100;
|
||||
}
|
||||
|
||||
.purple-3 {
|
||||
background-color: #36205d;
|
||||
background-color: $purple-50;
|
||||
}
|
||||
|
||||
.purple-4 {
|
||||
background-color: #271b3d;
|
||||
background-color: $header-dark-background;
|
||||
}
|
||||
|
||||
p.section-main {
|
||||
@@ -419,15 +413,15 @@
|
||||
}
|
||||
|
||||
.pixel-horizontal {
|
||||
color: #6133b4;
|
||||
color: $purple-300;
|
||||
}
|
||||
|
||||
.pixel-horizontal-2 {
|
||||
color: #432874;
|
||||
color: $purple-100;
|
||||
}
|
||||
|
||||
.pixel-horizontal-3 {
|
||||
color: #271b3d;
|
||||
color: $header-dark-background;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, button, .strike > span, input {
|
||||
@@ -455,13 +449,13 @@
|
||||
|
||||
.social-button {
|
||||
border-radius: 2px;
|
||||
border: solid 2px #bda8ff;
|
||||
border: solid 2px $purple-500;
|
||||
width: 100%;
|
||||
min-height: 40px;
|
||||
padding: .5em;
|
||||
background: transparent;
|
||||
margin-bottom: .5em;
|
||||
color: #bda8ff;
|
||||
color: $purple-500;
|
||||
transition: .5s;
|
||||
|
||||
span {
|
||||
@@ -471,8 +465,8 @@
|
||||
|
||||
.social-button:hover {
|
||||
cursor: pointer;
|
||||
border-color: #fff;
|
||||
color: #fff;
|
||||
border-color: $white;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.social-icon {
|
||||
@@ -531,8 +525,8 @@
|
||||
input {
|
||||
margin-bottom: 1em;
|
||||
border-radius: 2px;
|
||||
background-color: #432874;
|
||||
border-color: #432874;
|
||||
background-color: $purple-100;
|
||||
border-color: $purple-100;
|
||||
color: $purple-400;
|
||||
border: solid 2px transparent;
|
||||
transition-timing-function: ease;
|
||||
@@ -544,17 +538,17 @@
|
||||
}
|
||||
|
||||
.input-valid {
|
||||
color: #fff;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
border: solid 2px #9a62ff;
|
||||
border: solid 2px $purple-400;
|
||||
color: #fff;
|
||||
background-color: #36205d;
|
||||
background-color: $purple-50;
|
||||
}
|
||||
|
||||
input:hover {
|
||||
background-color: #36205d;
|
||||
background-color: $purple-50;
|
||||
}
|
||||
|
||||
.sign-up {
|
||||
@@ -657,7 +651,7 @@
|
||||
width: 411px;
|
||||
height: 48px;
|
||||
border-radius: 2px;
|
||||
background-color: #9a62ff;
|
||||
background-color: $purple-400;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.24), 0 1px 4px 0 rgba(26, 24, 29, 0.16);
|
||||
margin-bottom: 5em;
|
||||
}
|
||||
@@ -674,7 +668,7 @@
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: #5d3b9c;
|
||||
background-color: $purple-50;
|
||||
box-shadow: 0 4px 4px 0 rgba(26, 24, 29, 0.16), 0 1px 8px 0 rgba(26, 24, 29, 0.12);
|
||||
}
|
||||
}
|
||||
@@ -693,7 +687,7 @@
|
||||
|
||||
.svg-icon {
|
||||
vertical-align: bottom;
|
||||
color: #d5c8ff;
|
||||
color: $purple-600;
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
}
|
||||
@@ -760,6 +754,7 @@
|
||||
height: 500px;
|
||||
width: 100%;
|
||||
opacity: .5;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -776,7 +771,7 @@
|
||||
}
|
||||
|
||||
.input-error {
|
||||
color: #fff;
|
||||
color: $white;
|
||||
font-size: 90%;
|
||||
width: 100%;
|
||||
margin-bottom: 1em;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="container-fluid">
|
||||
<h1>Privacy Notice</h1>
|
||||
<p class="strong pagemeta">
|
||||
Last Updated: December 10, 2021
|
||||
Last Updated September 19, 2022: Removed reference to Facebook login, which is no longer supported.
|
||||
</p>
|
||||
<p>
|
||||
HabitRPG, Inc. (“HabitRPG,” “we,” “us,” or “our”) welcomes you. This privacy notice (the “Privacy
|
||||
@@ -39,8 +39,8 @@
|
||||
In connection with the creation of an account on our Platforms, we collect account credentials such as
|
||||
your email, username, and password. We use this account information to create your account, including to
|
||||
verify your identity. We also use this information to manage your account, including your transactions. If
|
||||
you choose to log into your account through Google, Apple or Facebook, we capture and store the User
|
||||
ID and email address connected to the respective account, so we can verify your identity when you log in.
|
||||
you choose to log into your account through Google or Apple, we capture and store the User ID and email
|
||||
address connected to the respective account, so we can verify your identity when you log in.
|
||||
</p>
|
||||
<h3>User Content</h3>
|
||||
<p>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.home-header {
|
||||
background: #6133b4 !important;
|
||||
background: $purple-300 !important;
|
||||
position: static;
|
||||
box-shadow: none !important;
|
||||
height: 100px !important;
|
||||
@@ -46,13 +46,13 @@
|
||||
|
||||
.nav-item a {
|
||||
font-size: 14px !important;
|
||||
color: #d5c8ff !important;
|
||||
color: $purple-600 !important;
|
||||
padding-top: 2.8em !important;
|
||||
}
|
||||
|
||||
.nav-item a:hover {
|
||||
background: transparent !important;
|
||||
color: #fff !important;
|
||||
color: $white !important;
|
||||
}
|
||||
|
||||
.nav-item .nav-link {
|
||||
@@ -73,20 +73,20 @@
|
||||
}
|
||||
|
||||
.white-header {
|
||||
background: #fff !important;
|
||||
background-color: #fff !important;
|
||||
background: $white !important;
|
||||
background-color: $white !important;
|
||||
|
||||
a {
|
||||
color: #271b3d !important;
|
||||
color: $header-dark-background !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #fff !important;
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
|
||||
#purple-footer {
|
||||
background-color: #271b3d;
|
||||
background-color: $header-dark-background;
|
||||
|
||||
.row {
|
||||
margin: 0;
|
||||
@@ -94,19 +94,91 @@
|
||||
|
||||
footer, footer a {
|
||||
background: transparent;
|
||||
color: #d5c8ff;
|
||||
color: $purple-500;
|
||||
&:hover {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: $purple-400;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-top-color: $purple-100;
|
||||
}
|
||||
|
||||
.donate-text {
|
||||
color: $purple-500;
|
||||
}
|
||||
|
||||
.logo {
|
||||
color: #bda8ff;
|
||||
color: $purple-300;
|
||||
}
|
||||
|
||||
.social-circle, .btn-contribute {
|
||||
background: #36205d;
|
||||
color: #bda8ff;
|
||||
.colophon {
|
||||
color: $purple-500;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
color: #bda8ff;
|
||||
.social-circle {
|
||||
background: $purple-50;
|
||||
color: $purple-500;
|
||||
|
||||
.instagram svg {
|
||||
background-color: $purple-50;
|
||||
fill: $purple-500;
|
||||
&:hover {
|
||||
fill: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.twitter svg {
|
||||
background-color: $purple-50;
|
||||
fill: $purple-500;
|
||||
&:hover {
|
||||
fill: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.facebook svg {
|
||||
background-color: $purple-50;
|
||||
fill: $purple-500;
|
||||
&:hover {
|
||||
fill: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.tumblr svg {
|
||||
background-color: $purple-50;
|
||||
fill: $purple-500;
|
||||
&:hover {
|
||||
fill: $white;
|
||||
}
|
||||
}
|
||||
}
|
||||
.btn-contribute {
|
||||
background: $white;
|
||||
box-shadow: none;
|
||||
border-radius: 2px;
|
||||
width: 175px;
|
||||
height: 32px;
|
||||
color: $gray-50;
|
||||
text-align: center;
|
||||
line-height: 1.71;
|
||||
font-weight: bold;
|
||||
font-size: 0.875rem;
|
||||
vertical-align: middle;
|
||||
padding: 0;
|
||||
margin: 32px 0 32px 24px;
|
||||
box-shadow: 0 1px 3px 0 rgba(26, 24, 29, 0.12), 0 1px 2px 0 rgba(26, 24, 29, 0.24);
|
||||
|
||||
a {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.text{
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -142,7 +214,7 @@
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#bottom-wrap.purple-4 {
|
||||
background-color: #271b3d;
|
||||
background-color: #271B3D;
|
||||
}
|
||||
|
||||
#bottom-wrap {
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
:right="right"
|
||||
:hide-icon="false"
|
||||
:inline-dropdown="inlineDropdown"
|
||||
:placeholder="placeholder"
|
||||
@select="selectItem($event)"
|
||||
>
|
||||
<template v-slot:item="{ item }">
|
||||
@@ -70,6 +71,9 @@ export default {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<template v-slot:button-content>
|
||||
<slot
|
||||
name="item"
|
||||
:item="selected"
|
||||
:item="selected || placeholder"
|
||||
:button="true"
|
||||
>
|
||||
<!-- Fallback content -->
|
||||
@@ -114,6 +114,9 @@ export default {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -17,8 +17,14 @@ export const avatarEditorUtilies = { // eslint-disable-line import/prefer-defaul
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
hideSet (set) {
|
||||
return moment(appearanceSets[set.key].availableUntil).isBefore(moment());
|
||||
hideSet (setKey) {
|
||||
if (appearanceSets[setKey].availableFrom) {
|
||||
return !moment().isBetween(
|
||||
appearanceSets[setKey].availableFrom,
|
||||
appearanceSets[setKey].availableUntil,
|
||||
);
|
||||
}
|
||||
return moment(appearanceSets[setKey].availableUntil).isBefore(moment());
|
||||
},
|
||||
mapKeysToFreeOption (key, type, subType) {
|
||||
const userPreference = subType
|
||||
@@ -43,8 +49,8 @@ export const avatarEditorUtilies = { // eslint-disable-line import/prefer-defaul
|
||||
const locked = !userPurchased || !userPurchased[key];
|
||||
let hide = false;
|
||||
|
||||
if (set && appearanceSets[set]) {
|
||||
if (locked) hide = moment(appearanceSets[set].availableUntil).isBefore(moment());
|
||||
if (set && appearanceSets[set] && locked) {
|
||||
hide = this.hideSet(set);
|
||||
}
|
||||
|
||||
option.gemLocked = locked;
|
||||
|
||||
@@ -39,6 +39,13 @@ export default {
|
||||
return moment(this.user.purchased.plan.dateTerminated)
|
||||
.format(this.user.preferences.dateFormat.toUpperCase());
|
||||
},
|
||||
renewalDate () {
|
||||
const renewalDate = moment().add(1, 'months');
|
||||
if (!this.user.preferences || !this.user.preferences.dateFormat) {
|
||||
return renewalDate;
|
||||
}
|
||||
return renewalDate.format(this.user.preferences.dateFormat.toUpperCase());
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
encodeGift (uuid, gift) {
|
||||
@@ -140,6 +147,7 @@ export default {
|
||||
if (data.subscription) postData.sub = sub.key;
|
||||
if (data.coupon) postData.coupon = data.coupon;
|
||||
if (data.groupId) postData.groupId = data.groupId;
|
||||
if (data.demographics) postData.demographics = data.demographics;
|
||||
|
||||
const response = await axios.post(url, postData);
|
||||
|
||||
@@ -267,6 +275,10 @@ export default {
|
||||
this.amazonPayments.groupToCreate = data.groupToCreate;
|
||||
}
|
||||
|
||||
if (data.demographics) { // sending demographics
|
||||
this.amazonPayments.demographics = data.demographics;
|
||||
}
|
||||
|
||||
this.amazonPayments.gift = data.gift;
|
||||
this.amazonPayments.type = data.type;
|
||||
},
|
||||
|
||||
@@ -102,7 +102,7 @@ export function canEdit (store) {
|
||||
}
|
||||
break;
|
||||
case 'group':
|
||||
isUserCanEditTask = isUserGroupLeader || isUserGroupManager || isUserAdmin;
|
||||
isUserCanEditTask = isUserGroupLeader || isUserGroupManager;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -23,7 +23,6 @@ const envVars = [
|
||||
'BASE_URL',
|
||||
'GA_ID',
|
||||
'STRIPE_PUB_KEY',
|
||||
'FACEBOOK_KEY',
|
||||
'GOOGLE_CLIENT_ID',
|
||||
'APPLE_AUTH_CLIENT_ID',
|
||||
'AMPLITUDE_KEY',
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
"foundNewItemsExplanation": "القيام بمهامك يمنحك الفرصة للفوز بقطع جديدة مثل البيضات، جرعات التفقيس، وطعام الحيوانات الأليفة.",
|
||||
"onboardingProgress": "التقدم <%= percentage %>%",
|
||||
"achievementCreatedTask": "إصنع مهمتك الأولى",
|
||||
"achievementJustAddWaterModalText": "لقد أكملت جميع مغامرات حيوانات الأخطبوط، فرس البحر، الحبار، عارية الخيشوم، حية البحر، و الدلفين الأليفة!",
|
||||
"achievementJustAddWaterText": "قد أكمل جميع مغامرات حيوانات الأخطبوط، فرس البحر، الحبار، عارية الخيشوم، حية البحر، و الدلفين الأليفة.",
|
||||
"achievementMindOverMatterModalText": "لقد أكملت جميع مغامرات حيوانات الصخر، اللزج، والغزل الأليفة!",
|
||||
"achievementMindOverMatterText": "قد أكمل جميع مغامرات حيوانات الصخر، اللزج، والغزل الأليفة.",
|
||||
"achievementJustAddWaterModalText": "أكملت جميع مغامرات حيوانات الأخطبوط، فرس البحر، الحبار، عارية الخيشوم، حية البحر، و الدلفين الأليفة!",
|
||||
"achievementJustAddWaterText": "أكملت جميع مغامرات حيوانات: الأخطبوط، فرس البحر، الحبار، عارية الخيشوم، حية البحر، و الدلفين.",
|
||||
"achievementMindOverMatterModalText": "أكملت جميع مغامرات حيوانات الصخر، اللزج، والغزل الأليفة!",
|
||||
"achievementMindOverMatterText": "أكملت جميع مغامرات حيوانات الصخر، اللزج، والغزل الأليفة.",
|
||||
"achievementLostMasterclasserModalText": "لقد أكملت جميع المغامرات الستة عشرة في سلسلة مغامرات الخبير و حللت لغز الخبيرة المفقودة!",
|
||||
"achievementMonsterMagusModalText": "لقد جمعت جميع الحيوانات الأليفة من الأموات الأحياء!",
|
||||
"achievementMonsterMagusText": "قد جمع جميع الحيوانات الأليفة من الأموات الأحياء.",
|
||||
@@ -37,7 +37,7 @@
|
||||
"achievementBackToBasicsModalText": "لقد جمعت جميع الحيوانات الأليفة الأساسية!",
|
||||
"achievementBackToBasicsText": "قد جمع جميع الحيوانات الأليفة الأساسية.",
|
||||
"achievementBackToBasics": "عودة إلى الأساسيات",
|
||||
"achievementJustAddWater": "أضف الماء وحسب",
|
||||
"achievementJustAddWater": "أضف الماء فقط",
|
||||
"achievementMindOverMatter": "العقل فوق المادة",
|
||||
"achievementFedPet": "أطعم/ي حيواناً أليفاً",
|
||||
"achievementHatchedPetModalText": "إذهب/ي إلى قائمة أغراضك وحاول/ي جمع بيضة وجرعة تفقيس معاً",
|
||||
@@ -49,8 +49,8 @@
|
||||
"achievementAridAuthorityModalText": "لقد أكملت ترويض جميع حيوانات الركوب الصحراوية!",
|
||||
"achievementAridAuthorityText": "أكملوا ترويض جميع حيوانات الركوب الصحراوية.",
|
||||
"achievementPartyUp": "لقد كونت فريقاً مع عضو من مجموعتك!",
|
||||
"achievementAllYourBaseModalText": "لقد أكملت ترويض جميع حيوانات الركوب الأساسية!",
|
||||
"achievementAllYourBaseText": "أكمل(ت) ترويض جميع حيوانات الركوب الأساسية.",
|
||||
"achievementAllYourBaseModalText": "أكملت ترويض جميع حيوانات الركوب الأساسية!",
|
||||
"achievementAllYourBaseText": "أكملت ترويض جميع حيوانات الركوب الأساسية.",
|
||||
"achievementAllYourBase": "كل قاعدتك ملكنا الأن",
|
||||
"achievementFedPetText": "أطعموا حيوانهم الأليف الأول.",
|
||||
"achievementBugBonanza": "حفلة الحشرات",
|
||||
@@ -118,22 +118,25 @@
|
||||
"achievementDomesticatedModalText": "لقد جمعت كل الحيوانات الأليفة المستأنسة!",
|
||||
"achievementDomesticatedText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة المستأنسة: النمس ، وخنزير غينيا ، والديك ، والخنزير الطائر ، والجرذ ، والأرنب ، والحصان ، والبقر!",
|
||||
"achievementDomesticated": "ا-يا-ا-يا-يو",
|
||||
"achievementBirdsOfAFeatherModalText": "تقوم بجمع كل الحيوانات الأليفة الطائرة!",
|
||||
"achievementBirdsOfAFeatherModalText": "لقد قمت بجمع كل الحيوانات الأليفة الطائرة!",
|
||||
"achievementZodiacZookeeperText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة في الأبراج: الجرذ ، البقرة ، الأرنب ، الأفعى ، الحصان ، الأغنام ، القرد ، الديك ، الذئب ، النمر ، الخنزير الطائر ، والتنين!",
|
||||
"achievementGroupsBeta2022ModalText": "لقد ساعدت أنت ومجموعاتك Habitica من خلال الاختبار وتقديم التعليقات!",
|
||||
"achievementGroupsBeta2022": "اختبار تجريبي تفاعلي",
|
||||
"achievementGroupsBeta2022Text": "قدمت أنت ومجموعتك تعليقات لا تقدر بثمن لمساعدة Habitica في الاختبار.",
|
||||
"achievementReptacularRumble": "الدمدمة الزاحفة",
|
||||
"achievementReptacularRumbleModalText": "لقد جمعت كل الزواحف الأليفة!",
|
||||
"achievementReptacularRumbleText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الزواحف: التمساح ، الزاحف المجنح ، الأفعى ، ترايسيراتوبس ، السلحفاة ، التيرانوصور ريكس ، وفيلوسيرابتور!",
|
||||
"achievementBirdsOfAFeather": "متشابهون",
|
||||
"achievementReptacularRumbleText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الزواحف: التمساح، الزاحف المجنح، الأفعى، ترايسيراتوبس، السلحفاة، التيرانوصور ريكس وفيلوسيرابتور!",
|
||||
"achievementBirdsOfAFeather": "أصدقاء الطيران",
|
||||
"achievementZodiacZookeeper": "حارس حديقة الحيوانات الفلكية",
|
||||
"achievementShadyCustomerText": "لقد جمع كل حيوانات الظل الأليفة.",
|
||||
"achievementShadyCustomerModalText": "لقد قمت بتجميع كل حيوانات الظل الأليفة!",
|
||||
"achievementZodiacZookeeperModalText": "لقد قمت بتجميع كل الحيوانات الفلكية الأليفة!",
|
||||
"achievementBirdsOfAFeatherText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الطائرة: الخنزير الطائر ، البومة ، الببغاء ، الزاحف المجنح ، الجريفون ، فالكون ، الطاووس ، والديك!",
|
||||
"achievementShadeOfItAllModalText": "لقد قمت بترويض كل حيوانات الظل للركوب!",
|
||||
"achievementShadyCustomer": "زبون الظل",
|
||||
"achievementShadeOfItAll": "ظل كل شيء",
|
||||
"achievementShadeOfItAllText": "لقد ربي كل حيوانات الظل للترويض."
|
||||
"achievementShadyCustomerText": "جمع كل حيوانات الظل الأليفة.",
|
||||
"achievementShadyCustomerModalText": "لقد جمعت كل حيوانات الظل الأليفة!",
|
||||
"achievementZodiacZookeeperModalText": "لقد جمعت كل الحيوانات الأليفة الفلكية!",
|
||||
"achievementBirdsOfAFeatherText": "لقد فقس جميع الألوان القياسية للحيوانات الأليفة الطائرة: الخنزير الطائر، البومة، الببغاء، الزاحف المجنح، الجرايفون، فالكون، الطاووس والديك!",
|
||||
"achievementShadeOfItAllModalText": "قمت بترويض كل الحيوانات السوداء",
|
||||
"achievementShadyCustomer": "عميل الظل",
|
||||
"achievementShadeOfItAll": "الظل فوق كل شيء",
|
||||
"achievementShadeOfItAllText": "روض كل حيوانات الظل السوداء.",
|
||||
"achievementWoodlandWizard": "ساحر الغابة",
|
||||
"achievementWoodlandWizardText": "لقد فقس جميع الألوان القياسية لمخلوقات الغابة: الغرير، الدب، الغزال، الثعلب، الضفدع، القنفذ، البومة، الأفعى، السنجاب والشجيرة!",
|
||||
"achievementWoodlandWizardModalText": "لقد جمعت كل حيوانات الغابة الأليفة!"
|
||||
}
|
||||
|
||||
@@ -306,5 +306,35 @@
|
||||
"foodSaddleText": "سرج",
|
||||
"foodSaddleNotes": "يحول حيوانًا أليفًا إلى مركب فورًا.",
|
||||
"foodSaddleSellWarningNote": "Hey! This is a pretty useful item! Are you familiar with how to use a Saddle with your Pets?",
|
||||
"foodNotes": "إطعام أحد الحيوانات الأليفة بهذا يمكنه من النمو ليصبح مركبًا قويًا."
|
||||
"foodNotes": "إطعام أحد الحيوانات الأليفة بهذا يمكنه من النمو ليصبح مركبًا قويًا.",
|
||||
"hatchingPotionBronze": "البرونز",
|
||||
"hatchingPotionWatery": "المائي",
|
||||
"hatchingPotionPolkaDot": "نقاط البولكا",
|
||||
"hatchingPotionBlackPearl": "اللؤلؤ الأسود",
|
||||
"hatchingPotionAutumnLeaf": "ورقة الخريف",
|
||||
"hatchingPotionVampire": "مصاص الدماء",
|
||||
"hatchingPotionDessert": "حلويات",
|
||||
"hatchingPotionVeggie": "حديقة",
|
||||
"questEggRobotAdjective": "مستقبلي",
|
||||
"hatchingPotionFluorite": "الفلوريت",
|
||||
"questEggRobotText": "حيوان الروبوت الأليف",
|
||||
"questEggDolphinMountText": "حيوان الدولفين للركوب",
|
||||
"hatchingPotionSolarSystem": "المجموعة الشمسية",
|
||||
"hatchingPotionMoonglow": "لمعان القمر",
|
||||
"questEggRobotMountText": "حيوان الروبوت للركوب",
|
||||
"hatchingPotionAmber": "العنبر",
|
||||
"hatchingPotionAurora": "الشفق القطبي",
|
||||
"hatchingPotionSandSculpture": "تمثال رملي",
|
||||
"hatchingPotionStainedGlass": "الزجاج الملون",
|
||||
"questEggDolphinText": "حيوان الدولفين الأليف",
|
||||
"hatchingPotionSunset": "غروب الشمس",
|
||||
"hatchingPotionShadow": "الظل",
|
||||
"hatchingPotionSilver": "الفضي",
|
||||
"hatchingPotionTurquoise": "التيركواز",
|
||||
"hatchingPotionSunshine": "شعاع الشمس",
|
||||
"hatchingPotionVirtualPet": "حيوان افتراضي أليف",
|
||||
"hatchingPotionWindup": "الزنبرك",
|
||||
"hatchingPotionPorcelain": "الخزف الملون",
|
||||
"hatchingPotionBirchBark": "لحاء الشجر",
|
||||
"hatchingPotionRuby": "الياقوت"
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"defaultHabit1Text": "عمل منتج (اضغط على القلم للتحرير)",
|
||||
"defaultHabit2Text": "أكل طعام غير صحى (أنقر على القلم للتعديل)",
|
||||
"defaultHabit3Text": "صعود السلم/استخدام المصعد (اضغط على قلم الرصاص للتعديل)",
|
||||
"defaultHabit4Text": "Add a task to Habitica",
|
||||
"defaultHabit4Notes": "Either a Habit, a Daily, or a To-Do",
|
||||
"defaultHabit4Text": "أضف مهمة إلى Habitica",
|
||||
"defaultHabit4Notes": "إما عادة أو يومية أو مهمة",
|
||||
"defaultTodo1Text": "الانضمام إلى Habitica (عَلِّم عليَّ)",
|
||||
"defaultTodoNotes": "بإمكانك أن تكمل هذه المهمة، تعدلها، أو تحذفها.",
|
||||
"defaultReward1Text": "15 دقيقة استراحة",
|
||||
@@ -11,9 +11,46 @@
|
||||
"defaultReward2Notes": "شاهد التلفاز، إلعب لعبة، كل حلوى، الأمر يعود لك!",
|
||||
"defaultTag1": "عمل",
|
||||
"defaultTag2": "تمرين",
|
||||
"defaultTag3": "Health + Wellness",
|
||||
"defaultTag3": "الصحة + الراحة",
|
||||
"defaultTag4": "مدرسة",
|
||||
"defaultTag5": "فرق",
|
||||
"defaultTag6": "Chores",
|
||||
"defaultTag7": "الإبداع"
|
||||
"defaultTag6": "عمل منزلي",
|
||||
"defaultTag7": "إبداع",
|
||||
"workTodoProject": "مشروع العمل >> إكمال مشروع العمل",
|
||||
"workDailyImportantTask": "أهم مهمة >> عملت على أهم مهمة اليوم",
|
||||
"workHabitMail": "معالجة البريد الإلكتروني",
|
||||
"workDailyImportantTaskNotes": "انقر لتحديد أهم مهمة لديك",
|
||||
"workTodoProjectNotes": "انقر لتحديد اسم مشروعك الحالي + تعيين تاريخ الاستحقاق!",
|
||||
"exerciseDailyText": "التمدد (ستريتش) >> روتين التمرين اليومي",
|
||||
"healthDailyNotes": "انقر للتعديل!",
|
||||
"exerciseTodoText": "إعداد جدول التمرين",
|
||||
"healthTodoNotes": "انقر لإضافة قائمة مراجعة!",
|
||||
"creativityDailyText": "العمل على مشروع إبداعي",
|
||||
"schoolDailyNotes": "انقر لاختيار جدول الواجبات المنزلية!",
|
||||
"creativityDailyNotes": "انقر لتسمية مشروعك الحالي + تحديد جدول المواعيد!",
|
||||
"selfCareDailyText": "5 دقائق للتنفس بهدوء",
|
||||
"creativityTodoText": "إنهاء مشروع إبداعي",
|
||||
"selfCareDailyNotes": "انقر لاختيار الجدول!",
|
||||
"selfCareTodoNotes": "انقر لتحديد خطة العمل!",
|
||||
"defaultHabitText": "انقر هنا لتحديد أن هذه العادة سلبية، وتريد أن تقلع عنها",
|
||||
"defaultHabitNotes": "أو قم بالحذف من نافذة التعديل",
|
||||
"choresDailyNotes": "انقر لاختيار جدولك!",
|
||||
"creativityHabit": "احترف المهارة >> + مارس تقنية إبداعية جديدة",
|
||||
"exerciseHabit": "10 دقائق كارديو >> + 10 دقائق كارديو",
|
||||
"healthTodoText": "حدد موعداً للمراجعة >> تفكر في تغيير صحي",
|
||||
"schoolHabit": "دراسة / مماطلة",
|
||||
"selfCareHabit": "خذ استراحة قصيرة",
|
||||
"exerciseTodoNotes": "انقر لإضافة قائمة تدقيق!",
|
||||
"choresHabit": "10 دقائق تنظيف",
|
||||
"schoolTodoText": "إنهاء واجب دراسي",
|
||||
"healthHabit": "غذاء صحي/ غذاء غير صحي",
|
||||
"choresTodoText": "ترتيب الخزانة >> ترتيب الفوضى",
|
||||
"choresTodoNotes": "انقر لتحديد منطقة الفوضى!",
|
||||
"exerciseDailyNotes": "انقر لاختيار الجدول وتحديد التمارين!",
|
||||
"schoolTodoNotes": "انقر لتسمية الواجب المنزلي وتحديد وقت الانتهاء!",
|
||||
"creativityTodoNotes": "انقر لتسمية مشروعك",
|
||||
"selfCareTodoText": "شارك في فعالية ممتعة",
|
||||
"healthDailyText": "خيط الأسنان",
|
||||
"schoolDailyText": "إنهاء واجبات منزلية",
|
||||
"choresDailyText": "غسيل الصحون"
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
"forgotPassword": "هل نسيت كلمة المرور؟",
|
||||
"logout": "تسجيل الخروج",
|
||||
"footerMobile": "هاتف",
|
||||
"companyDonate": "تبرع",
|
||||
"companyDonate": "تبرع لصالح Habitica",
|
||||
"login": "تسجيل الدخول",
|
||||
"companyBlog": "مقالات",
|
||||
"communityInstagram": "Instagram",
|
||||
"guidanceForBlacksmiths": "إرشادات للحدادين (المبرمجين)",
|
||||
"companyContribute": "ساهم",
|
||||
"companyContribute": "ساهم في تطوير Habitica",
|
||||
"marketing1Header": "حسن عاداتك من خلال اللعب",
|
||||
"footerCompany": "الشركة",
|
||||
"companyAbout": "كيف يعمل",
|
||||
@@ -20,31 +20,165 @@
|
||||
"emailNewPass": "إرسال رابط إعادة تعيين كلمة المرور الى البريد الإلكتروني",
|
||||
"footerSocial": "منصات التواصل الاجتماعي",
|
||||
"free": "الإنضمام مجاناً",
|
||||
"marketing1Lead1": "Habitica هي لعبة تساعدك على تحسين عادات الحياة الواقعية. إنها \"تحاكي\" حياتك عن طريق تحويل كل مهامك (العادات ، الأعمال اليومية ، المهام) إلى وحوش صغيرة عليك التغلب عليها. كلما كنت أفضل في هذا ، كلما تقدمت في اللعبة. إذا تعثرت في الحياة ، تبدأ شخصيتك بالتراجع في اللعبة.",
|
||||
"marketing1Lead1": "Habitica هي لعبة تساعدك على تحسين عادات الحياة الواقعية. إنها \"تحاكي\" حياتك عن طريق تحويل كل مهامك (العادات، الأعمال اليومية، المهام) إلى وحوش صغيرة عليك التغلب عليها. كلما كنت أفضل في هذا، كلما تقدمت في اللعبة. إذا تعثرت في الحياة، تبدأ شخصيتك بالتراجع في اللعبة.",
|
||||
"termsAndAgreement": "بالنقر على الزر ادناه، فإنك تشير الى كونك قد قرأت ووافقت على <a href='/static/terms'>شروط الخدمة</a> و <a href='/static/privacy'>سياسة الخصوصية</a>.",
|
||||
"clearBrowserData": "حذف بيانات المتصفح",
|
||||
"communityExtensions": "<a href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>الإضافات</a>",
|
||||
"forgotPasswordSteps": "أدخل عنوان البريد الإلكتروني الذي استخدمته لتسجيل حسابك في Habitica.",
|
||||
"pkQuestion1": "ما الذي ألهم Habitica؟ كيف بدأ؟",
|
||||
"mobileAndroid": "Android",
|
||||
"communityExtensions": "الإضافات والتطويرات",
|
||||
"forgotPasswordSteps": "أدخل اسم المستخدم أو عنوان البريد الإلكتروني الخاص بك لتسجيل حسابك في Habitica.",
|
||||
"pkQuestion1": "ما الذي ألهم Habitica؟ كيف بدأت؟",
|
||||
"mobileAndroid": "تطبيق آندرويد",
|
||||
"playButton": "العب",
|
||||
"playButtonFull": "دخول Habitica",
|
||||
"password": "كلمة المرور",
|
||||
"newsArchive": "أرشيف الأخبار في ويكيا (متعدد اللغات)",
|
||||
"marketing4Lead3-1": "تريد تحويل حياتك الى لعبة؟",
|
||||
"marketing4Lead3-1": "هل تريد إدخال نظام اللعب لتطوير حياتك؟",
|
||||
"marketing2Lead3Title": "تحدوا بعضكم",
|
||||
"marketing2Lead2Title": "حارب الوحوش",
|
||||
"marketing4Lead3-2": "مهتم بإدارة مجموعة في التعليم، الصحة، وغير ذلك؟",
|
||||
"mobileIOS": "iOS",
|
||||
"mobileIOS": "تطبيق آيفون",
|
||||
"marketing1Lead1Title": "حياتك، لعبة تقمص الأدوار",
|
||||
"marketing3Header": "التطبيقات والإضافات",
|
||||
"marketing2Lead1Title": "الإنتاجية الاجتماعية",
|
||||
"marketing4Lead2": "تكاليف الرعاية الصحية في إزدياد، ويجب فعل شيء ما. تم إنشاء مئات البرامج لتقليل التكاليف وتحسين الصحة. نعتقد أن Habitica قادر على تمهيد طريق حقيقي نحو أنماط حياة صحية.",
|
||||
"marketing4Lead2": "تكاليف الرعاية الصحية في ازدياد، ويجب فعل شيء ما. تم إنشاء مئات البرامج لتقليل التكاليف وتحسين الصحة. نعتقد أن Habitica قادرة على تمهيد طريق حقيقي نحو أنماط حياة صحية.",
|
||||
"oldNews": "أخبار",
|
||||
"setNewPass": "تعيين كلمة مرور جديدة",
|
||||
"presskitText": "شكراً لاهتمامك ب Habitica! يمكن استخدام الصور التالية للمقالات أو مقاطع الفيديو حول Habitica. لمزيد من المعلومات، يرجى التواصل معنا على <٪ = pressEnquiryEmail٪>.",
|
||||
"presskitText": "شكراً لاهتمامك ب Habitica! يمكن استخدام الصور التالية للمقالات أو مقاطع الفيديو حول Habitica. لمزيد من المعلومات، يرجى التواصل معنا على <٪ = pressEnquiryEmail٪>.",
|
||||
"invalidEmail": "إجراء إعادة تعيين كلمة المرور يتطلب عنوان بريد الكتروني صالح.",
|
||||
"marketing1Lead2": "حسن عاداتك لبناء صورتك الرمزية، تباهى بالعتاد الذي كسبته!",
|
||||
"marketing2Lead2": "ما هي لعبة تقمص الأدوار من دون معارك؟ حارب الوحوش مع فريقك. الوحوش هي \"super accountability mode\" - اليوم الذي تتغيب فيه عن النادي الرياضي هو يوم يؤذي فيه الوحش * الجميع! *",
|
||||
"marketing3Lead1": "تتيح لك تطبيقات ** الايفون و الاندرويد ** الاعتناء بالأعمال أثناء التنقل. نحن ندرك أن تسجيل الدخول إلى موقع الويب للنقر على الأزرار يمكن أن يشكل عائق."
|
||||
"marketing2Lead2": "ما هي لعبة تقمص الأدوار من دون معارك؟ حارب الوحوش مع فريقك. الوحوش هي \"super accountability mode\" - اليوم الذي تتغيب فيه عن النادي الرياضي هو يوم يؤذي فيه الوحش *الجميع!*",
|
||||
"marketing3Lead1": "تتيح لك تطبيقات **الآيفون والآندرويد** الاعتناء بالأعمال أثناء التنقل. نحن ندرك أن تسجيل الدخول إلى موقع الويب والنقر على الأزرار يمكن أن يشكل عائقاً.",
|
||||
"chores": "الواجبات المنزلية",
|
||||
"footerProduct": "منتج",
|
||||
"marketing2Header": "تنافس مع الأصدقاء، وانضم إلى مجموعات من اهتماماتك",
|
||||
"presskit": "العدة الصحفية",
|
||||
"pkAnswer1": "إذا كنت قد استثمرت وقتاً في تحسين مستوى شخصية ما في لعبة ما، فمن الصعب ألا تتساءل عن مدى روعة حياتك إذا بذلت كل هذا الجهد لتحسين نفسك في الحياة الواقعية بدلاً من الصورة الرمزية الخاصة بك. بدأنا في بناء Habitica لمعالجة هذا السؤال. <br /> تم إطلاق Habitica رسمياً مع Kickstarter في عام 2013، وبدأت الفكرة حقاً. منذ ذلك الحين، نمت لتصبح مشروعاً ضخماً، مدعوماً من قبل متطوعينا الرائعين في دعم المصدر المفتوح ومستخدمينا الكرماء.",
|
||||
"pkAnswer3": "يعد الضغط الاجتماعي عاملاً محفزاً كبيراً لكثير من الناس، لذلك عرفنا أننا نريد أن يكون لدينا مجتمع قوي يحاسب بعضنا البعض على أهدافهم ويشجع نجاحاتهم. لحسن الحظ، فإن أحد الأشياء التي تقوم بها ألعاب الفيديو متعددة اللاعبين هو تعزيز الشعور بالانتماء للمجتمع بين مستخدميها! يستعير هيكل مجتمع Habitica من هذه الأنواع من الألعاب؛ يمكنك تكوين مجموعة صغيرة من الأصدقاء المقربين، ولكن يمكنك أيضاً الانضمام إلى مجموعات مصالح مشتركة أكبر تُعرف باسم النقابة. على الرغم من أن بعض المستخدمين يختارون اللعب منفردين، فإن معظمهم يقررون تشكيل شبكة دعم تشجع المساءلة الاجتماعية من خلال ميزات مثل المهام، حيث يقوم أعضاء الحزب بتجميع إنتاجيتهم لمحاربة الوحوش معاً.",
|
||||
"pkQuestion2": "لماذا تعمل Habitica؟",
|
||||
"marketing1Lead3Title": "ابحث عن جوائز عشوائية",
|
||||
"marketing3Lead2Title": "الإدراجات",
|
||||
"marketing2Lead3": "تتيح لك التحديات التنافس مع الأصدقاء والغرباء. كل من يفعل الأفضل في نهاية التحدي يفوز بجوائز خاصة.",
|
||||
"pkQuestion3": "لماذا أضفت ميزات اجتماعية؟",
|
||||
"marketing1Lead3": "بالنسبة للبعض، فإن المغامرة التي تحفزهم: نظام يسمى \"المكافآت العشوائية\". تستوعب Habitica جميع أنماط التشجيع والعقاب: الإيجابية والسلبية والمتوقعة والعشوائية.",
|
||||
"marketing2Lead1": "بينما يمكنك لعب Habitica منفرداً، فإن الأضواء تضيء حقاً عندما تبدأ في التعاون والمنافسة وتحميل بعضكم المسؤولية. الجزء الأكثر فعالية في أي برنامج لتحسين الذات هو تحمل المسؤولية الاجتماعية، وهل هناك بيئة للمساءلة والمنافسة أفضل من لعبة فيديو؟",
|
||||
"marketing3Lead2": "**أدوات الطرف الثالث الأخرى** تربط Habitica بجوانب مختلفة من حياتك. توفر واجهة برمجة التطبيقات الخاصة بنا تكاملاً سهلاً لأشياء مثل [Chrome Extension](https://chrome.google.com/webstore/detail/habitica/pidkmpibnnnhneohdgjclfdjpijggmjj?hl=en-US)، التي تفقدك نقاطاً عند تصفح مواقع الويب غير المنتجة، وتكسبك نقاطاً عندما تكون المواقع منتجة. [شاهد المزيد هنا](https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations).",
|
||||
"pkAnswer2": "إن تكوين عادة جديدة أمر صعب لأن الناس يحتاجون حقاً إلى تلك المكافأة الفورية الواضحة. على سبيل المثال، من الصعب البدء في تنظيف الأسنان بالخيط، لأنه على الرغم من أن طبيب الأسنان لدينا يخبرنا أنه أكثر صحة على المدى الطويل، إلا أنه في الوقت الحالي يتسبب في إصابة لثتك. <br /> يضيف أسلوب اللعب في Habitica إحساساً بالإشباع الفوري للأهداف اليومية من خلال مكافأة مهمة صعبة وإعطائك الخبرة، والذهب ... وربما حتى جائزة عشوائية، مثل بيضة التنين! يساعد هذا في الحفاظ على تحفيز الأشخاص حتى عندما لا يكون للمهمة نفسها مكافأة جوهرية، وقد رأينا أشخاصاً يغيرون حياتهم نتيجة لذلك. يمكنك التحقق من قصص النجاح هنا: https://habitversary.tumblr.com",
|
||||
"marketing1Lead2Title": "احصل على معدات رائعة",
|
||||
"enterHabitica": "ادخل Habitica",
|
||||
"pkQuestion6": "من هو مستخدم Habitica التقليدي؟",
|
||||
"pkQuestion8": "كيف أثرت Habitica على حياة الناس الحقيقية؟",
|
||||
"pkLogo": "شعارات",
|
||||
"register": "تسجيل",
|
||||
"teams": "مجموعات",
|
||||
"terms": "الأحكام والشروط",
|
||||
"reportAccountProblems": "الإبلاغ عن مشاكل الحساب",
|
||||
"subscriptionPaymentIssues": "قضايا الاشتراك والدفع",
|
||||
"generalQuestionsSite": "أسئلة عامة حول الموقع",
|
||||
"businessInquiries": "استفسارات الأعمال / التسويق",
|
||||
"merchandiseInquiries": "استفسارات عن البضائع المادية (قمصان، ملصقات)",
|
||||
"socialAlreadyExists": "تسجيل الدخول الاجتماعي هذا مرتبط بالفعل بحساب Habitica موجود.",
|
||||
"invalidReqParams": "معلمات الطلب غير صالحة.",
|
||||
"confirmPassword": "تأكيد كلمة المرور",
|
||||
"emailPlaceholder": "على سبيل المثال، gryphon@example.com",
|
||||
"emailUsernamePlaceholder": "على سبيل المثال، HabitRabbit أو gryphon@example.com",
|
||||
"passwordPlaceholder": "على سبيل المثال، ******************",
|
||||
"confirmPasswordPlaceholder": "تأكد من أنها نفس كلمة المرور!",
|
||||
"joinHabitica": "انضم إلى Habitica",
|
||||
"or": "أو",
|
||||
"gamifyYourLife": "حول حياتك إلى لعبة",
|
||||
"aboutHabitica": "Habitica هو تطبيق مجاني لبناء العادات والإنتاجية يتعامل مع حياتك الواقعية وكأنها لعبة. من خلال المكافآت والعقوبات داخل اللعبة لتحفيزك وشبكة اجتماعية قوية لإلهامك، يمكن أن تساعدك Habitica في تحقيق أهدافك لتصبح صحياً وتعمل بجد وسعادة.",
|
||||
"trackYourGoalsDesc": "كن مسؤولاً عن طريق تتبع وإدارة عاداتك وأهدافك اليومية وقائمة المهام مع تطبيقات الجوال سهلة الاستخدام وواجهة الويب من Habitica.",
|
||||
"battleMonstersDesc": "حارب الوحوش مع مستخدمي Habitica الآخرين! استخدم الذهب الذي تربحه لشراء مكافآت داخل اللعبة أو المكافآت الخاصة، مثل مشاهدة حلقة من برنامجك التلفزيوني المفضل.",
|
||||
"healthAndFitnessDesc": "ليس لديك الحافز لاستعمال خيط الأسنان؟ لا يبدو أنك تريد الذهاب إلى النادي الرياضي؟ Habitica تجعل أخيراً الحصول على صحة جيدة تحدياً ممتعاً.",
|
||||
"schoolAndWorkDesc": "سواء كنت تقوم بإعداد تقرير لمعلمك أو لرئيسك في العمل، فمن السهل تتبع تقدمك وأنت تتعامل مع أصعب مهامك.",
|
||||
"muchmuchMoreDesc": "تعني قائمة مهامنا القابلة للتخصيص بالكامل أنه يمكنك تشكيل Habitica لتناسب أهدافك الشخصية. اعمل على مشاريع إبداعية، أو ركز على الرعاية الذاتية، أو اسعى وراء حلم مختلف - الأمر كله متروك لك.",
|
||||
"levelUpAnywhereDesc": "تجعل تطبيقات الأجهزة المحمولة الخاصة بنا من السهل تتبع مهامك أثناء التنقل. حقق أهدافك بنقرة واحدة، بغض النظر عن مكانك.",
|
||||
"getStarted": "انطلق!",
|
||||
"marketing4Lead2Title": "نظام الصحة والراحة عن طريق اللعب",
|
||||
"marketing4Lead3Title": "أدخل نظام اللعب إلى كل شيء",
|
||||
"pkQuestion4": "لماذا تنقص الصحة الشخصية عند عدم إتمام المهام؟",
|
||||
"pkAnswer4": "إذا لم تؤدي أحد أهدافك اليومية، فستفقد بعضاً من صحة شخصيتك الرمزية. يعد هذا العامل التحفيزي مهماً جداً لتشجيع الناس على متابعة أهدافهم اليومية، لأن الناس يكرهون حقاً إيذاء صورتهم الرمزية الصغيرة! بالإضافة إلى ذلك، تعد المساءلة الاجتماعية أمراً بالغ الأهمية لكثير من الأشخاص: أي إذا كنت تقاتل وحشاً مع أصدقائك، فإن تخطي مهامك يضر بصحتهم الرمزية أيضاً.",
|
||||
"pkAnswer5": "إحدى الطرق التي نجحت بها Habitica في استخدام التحفيز هي أننا بذلنا الكثير من الجهد في التفكير في جوانب اللعبة للتأكد من أنها ممتعة بالفعل. لقد قمنا أيضاً بتضمين العديد من المكونات الاجتماعية، لأننا نشعر أن بعض الألعاب الأكثر تحفيزاً تتيح لك اللعب مع الأصدقاء، ولأن الأبحاث أظهرت أنه من الأسهل تكوين عادات عندما تكون لديك مسؤولية تجاه الآخرين.",
|
||||
"pkAnswer6": "يستخدم الكثير من الأشخاص المختلفين Habitica! أكثر من نصف مستخدمينا تتراوح أعمارهم بين 18 و 34 عاماً، لكن لدينا أجداد يستخدمون الموقع مع أحفادهم الصغار وفي كل الأعمار. غالباً ما تنضم العائلات إلى الحفلة وتقاتل الوحوش معاً. <br /> يتمتع العديد من مستخدمينا بمعرفة في الألعاب، ولكن من المدهش أنه عندما أجرينا استطلاعاً منذ فترة، تم تحديد 40٪ من مستخدمينا على أنهم ليسوا لاعبين! لذلك يبدو أن طريقتنا يمكن أن تكون فعالة لأي شخص يريد أن يشعر بالإنتاجية والعافية ليشعر بمزيد من المرح.",
|
||||
"pkAnswer7": "تستخدم Habitica فن البكسل لعدة أسباب، بالإضافة إلى عامل الحنين الممتع، فإن فن البكسل سهل للغاية بالنسبة لفنانينا المتطوعين الذين يرغبون في المشاركة. من الأسهل كثيراً الحفاظ على اتساق فن البكسل حتى عندما يساهم الكثير من الفنانين المختلفين، ويتيح لنا إنشاء الكثير من الأعمال الجديدة بسرعة وزيادة المحتوى!",
|
||||
"localStorageTryFirst": "إذا كنت تواجه مشكلات في Habitica ، فانقر فوق الزر أدناه لمسح التخزين المحلي ومعظم ملفات تعريف الارتباط لهذا الموقع (لن تتأثر مواقع الويب الأخرى). ستحتاج إلى تسجيل الدخول مرة أخرى بعد ذلك، لذا تأكد أولاً من أنك تعرف معلومات تسجيل الدخول الخاصة بك من اسم مستخدم وكلمة سر. يمكن العثور عليها في الإعدادات -> <%= linkStart %>Site<%= linkEnd %>.",
|
||||
"missingUsernameEmail": "اسم المستخدم أو البريد الإلكتروني مفقود.",
|
||||
"emailTaken": "عنوان البريد الإلكتروني مستخدم بالفعل في الحساب.",
|
||||
"usernameInfo": "أصبحت الآن أسماء تسجيل دخول المستخدمين فريدة ستظهر بجانب اسم العرض الخاص بك وتستخدم للدعوات وإشارات @ للدردشة والمراسلة.<br> <br> إذا كنت ترغب في معرفة المزيد حول هذا التغيير، <a href='https://habitica.fandom.com/wiki/Player_Names' target='_blank'>قم بزيارة موقع wiki الخاص بنا</a>.",
|
||||
"passwordConfirmationMatch": "تأكيد كلمة المرور لا يتطابق مع كلمة المرور.",
|
||||
"invalidLoginCredentialsLong": "عذراً، عنوان بريدك الإلكتروني / اسم المستخدم أو كلمة المرور غير صحيحين.\n- تأكد من كتابتها بشكل صحيح. اسم المستخدم وكلمة المرور حساسان لحالة الأحرف الكبيرة والصغيرة.\n- ربما تكون قد اشتركت في حساب Facebook أو Google، وليس عبر البريد الإلكتروني، لذا تحقق جيداً من خلال تجربتها.\n- إذا نسيت كلمة المرور الخاصة بك، انقر فوق \"نسيت كلمة المرور\".",
|
||||
"alreadyHaveAccountLogin": "لديك بالفعل حساب Habitica؟ <strong> تسجيل الدخول </strong>",
|
||||
"earnRewardsDesc": "أنجز المهام لترفع مستوى شخصيتك الرمزية الخاصة بك وفتح الميزات داخل اللعبة مثل درع المعركة والحيوانات الأليفة الغامضة والمهارات السحرية وحتى المهام!",
|
||||
"featuredIn": "أعلن عنها في",
|
||||
"usernameTOSRequirements": "يجب أن تتوافق أسماء المستخدمين مع <a href='/static/terms' target='_blank'> شروط الخدمة </a> و <a href='/static/community-guidelines' target='_blank'> إرشادات المجتمع < / أ>. إذا لم تكن قد قمت بتعيين اسم تسجيل دخول من قبل، فسيتم إنشاء اسم المستخدم تلقائياً.",
|
||||
"accountSuspended": "تم حظر هذا الحساب، للمستخدم \"<%= userId %>\"، لخرقه إرشادات المجتمع (https://habitica.com/static/community-guidelines) أو شروط الخدمة (https://habitica.com/static/community-guidelines). للحصول على تفاصيل أو لطلب إلغاء الحظر، يرجى إرسال بريد إلكتروني إلى مدير المجتمع لدينا على <%= communityManagerEmail %> أو اطلب من والديك أو الوصي عليك إرسال بريد إلكتروني إليهم. الرجاء تضمين اسم المستخدم @ في البريد الإلكتروني.",
|
||||
"cannotFulfillReq": "لا يمكن تلبية طلبك. أرسل بريداً إلكترونياً إلى admin@habitica.com إذا استمر هذا الخطأ.",
|
||||
"pkAnswer8": "يمكنك العثور على الكثير من الشهادات حول كيفية مساعدة Habitica للأشخاص هنا: https://habitversary.tumblr.com",
|
||||
"sync": "تحديث",
|
||||
"tumblr": "تمبلر Tumblr",
|
||||
"emailOrUsername": "البريد الإلكتروني أو اسم المستخدم (مع الانتباه للأحرف الكبيرة والصغيرة)",
|
||||
"missingUsername": "اسم المستخدم مفقود.",
|
||||
"wrongPassword": "كلمة مرور خاطئة.",
|
||||
"incorrectDeletePhrase": "يرجى كتابة <%= magicWord %> بأحرف كبيرة لحذف حسابك.",
|
||||
"newEmailRequired": "عنوان البريد الإلكتروني الجديد مفقود.",
|
||||
"accountSuspendedTitle": "تم تعليق حسابك",
|
||||
"unsupportedNetwork": "هذه الشبكة غير مدعومة حالياً.",
|
||||
"onlySocialAttachLocal": "يمكن إضافة المصادقة المحلية إلى تسجيل دخول حساب اجتماعي فقط.",
|
||||
"loginWithSocial": "قم بالدخول عن طريق <%= social %>",
|
||||
"usernamePlaceholder": "على سبيل المثال، HabitRabbit",
|
||||
"motivateYourself": "حفز نفسك لتحقيق أهدافك.",
|
||||
"timeToGetThingsDone": "حان الوقت للاستمتاع عندما تنجز الأشياء! انضم إلى أكثر من <%= userCountInMillions %> مليون مواطن وحسن حياتك مهمة واحدة في كل مرة.",
|
||||
"earnRewards": "اكسب مكافآت مقابل تحقيق أهدافك",
|
||||
"playersUseToImprove": "يستخدم اللاعبون Habitica للترقي",
|
||||
"healthAndFitness": "الصحة واللياقة",
|
||||
"muchmuchMore": "والكثير الكثير!",
|
||||
"joinMany": "انضم إلى أكثر من <%= userCountInMillions %> مليون شخص يستمتعون خلال تحقيق أهدافهم!",
|
||||
"work": "العمل",
|
||||
"levelUpAnywhere": "تقدم في المستوى من أي مكان",
|
||||
"learnMore": "تعلم أكثر",
|
||||
"usernameTaken": "اسم المستخدم غير متاح.",
|
||||
"pkBoss": "وحوش",
|
||||
"username": "اسم المستخدم",
|
||||
"trackYourGoals": "تتبع عاداتك وأهدافك",
|
||||
"notAnEmail": "عنوان البريد الإلكتروني غير صالح.",
|
||||
"missingEmail": "البريد الإلكتروني مفقود.",
|
||||
"dontHaveAccountSignup": "ليس لديك حساب Habitica؟ <strong> إنشاء حساب </strong>",
|
||||
"pkQuestion7": "لماذا تستخدم Habitica فن البكسل؟",
|
||||
"tasks": "المهام",
|
||||
"localStorageTryNext": "إذا استمرت المشكلة، يرجى <%= linkStart %>الإبلاغ عن الخطأ<%= linkEnd %> إذا لم تكن قد قمت ذلك.",
|
||||
"pkMoreQuestions": "هل لديك سؤال غير موجود في هذه القائمة؟ أرسل بريد إلكتروني إلى admin@habitica.com!",
|
||||
"mobileApps": "تطبيقات الموبايل",
|
||||
"localStorageClearExplanation": "سيؤدي هذا الزر إلى مسح التخزين المحلي ومعظم ملفات تعريف الارتباط وتسجيل خروجك.",
|
||||
"marketing4Header": "لاستخدام المنظمات",
|
||||
"pkQuestion5": "ما الذي يميز Habitica عن برامج التلعيب (إضافة نظام اللعب) الأخرى؟",
|
||||
"marketing4Lead1": "التعليم هو أحد أفضل القطاعات لتطبيق نظام اللعب. نعلم جميعاً مدى تعلق الطلاب بالهواتف والألعاب هذه الأيام؛ نعم لتسخير تلك القوة! إن كنت معلماً؛ حرض طلابك ضد بعضهم البعض في منافسة ودية، وكافئ السلوك الجيد بجوائز نادرة، تشاهد درجاتهم وسلوكهم يرتفع.",
|
||||
"usernameTime": "حان الوقت لتعيين اسم المستخدم الخاص بك!",
|
||||
"missingPassword": "كلمة المرور مفقودة.",
|
||||
"joinToday": "انضم إلى Habitica اليوم",
|
||||
"marketing4Lead1Title": "نظام التعليم عن طريق اللعب",
|
||||
"memberIdRequired": "\"member\" يجب أن يكون معرف UUID صالحاً.",
|
||||
"modelNotFound": "هذا النموذج غير موجود.",
|
||||
"signUpWithSocial": "قم بالتسجيل عن طريق <%= social %>",
|
||||
"pkSamples": "عينات لقطات شاشة",
|
||||
"pkWebsite": "موقع",
|
||||
"schoolAndWork": "الدراسة والعمل",
|
||||
"invalidEmailDomain": "لا يمكنك تسجيل البريد الإلكتروني من المخدمات التالية: <%= domains %>",
|
||||
"missingNewPassword": "كلمة المرور الجديدة مفقودة.",
|
||||
"heroIdRequired": "\"heroId\" يجب أن يكون معرف UUID صالحاً.",
|
||||
"signup": "اشتراك",
|
||||
"minPasswordLength": "يجب أن تتكون كلمة المرور من 8 أحرف أو أكثر.",
|
||||
"singUpForFree": "سجل مجاناً",
|
||||
"localStorageClear": "مسح البيانات المحلية",
|
||||
"pkPromo": "إجراءات",
|
||||
"tweet": "تغريد",
|
||||
"privacy": "سياسة الخصوصية",
|
||||
"reportCommunityIssues": "الإبلاغ عن مشاكل المجتمع",
|
||||
"checkOutMobileApps": "جرب تطبيقات الجوال!",
|
||||
"school": "المدرسة",
|
||||
"missingAuthHeaders": "سلاسل المصادقة مفقودة.",
|
||||
"passwordReset": "إذا كان لدينا بريدك الإلكتروني أو اسم المستخدم الخاصين بك في الملف، فقد تم إرسال تعليمات تعيين كلمة مرور جديدة إلى بريدك الإلكتروني.",
|
||||
"invalidCredentials": "لا يوجد حساب يستخدم بيانات الاعتماد هذه.",
|
||||
"cantDetachSocial": "يفتقر الحساب إلى طريقة مصادقة أخرى؛ لا يمكن فصل طريقة المصادقة هذه.",
|
||||
"usernameLimitations": "يجب أن يكون اسم المستخدم من 1 إلى 20 حرفاً، ويحتوي فقط على الأحرف، والأرقام من 0 إلى 9، والواصلات، أو الشرطات السفلية، ولا يمكن أن يتضمن أي مصطلحات غير ملائمة.",
|
||||
"battleMonsters": "حارب الوحوش مع الأصدقاء",
|
||||
"passwordResetPage": "إعادة تعيين كلمة المرور"
|
||||
}
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
{
|
||||
"languageName": "العربية",
|
||||
"stringNotFound": "سلسلة المحارف '<%= string %>' لم توجد.",
|
||||
"stringNotFound": "سلسلة المحارف '<%= string %>' غير موجودة.",
|
||||
"habitica": "Habitica",
|
||||
"onward": "إلي الأمام!",
|
||||
"done": "Done",
|
||||
"gotIt": "Got it!",
|
||||
"onward": "إلى الأمام!",
|
||||
"done": "انتهى",
|
||||
"gotIt": "فهمت!",
|
||||
"titleTimeTravelers": "مسافرين عبر الزمن",
|
||||
"titleSeasonalShop": "المتجر الموسمي",
|
||||
"saveEdits": "Save Edits",
|
||||
"showMore": "Show More",
|
||||
"showLess": "Show Less",
|
||||
"markdownHelpLink": "Markdown formatting help",
|
||||
"bold": "**Bold**",
|
||||
"saveEdits": "حفظ التغييرات",
|
||||
"showMore": "إظهار المزيد",
|
||||
"showLess": "عرض أقل",
|
||||
"markdownHelpLink": "تعليمات تنسيق لغة Markdown",
|
||||
"bold": "**سميك**",
|
||||
"markdownImageEx": "",
|
||||
"code": "`code`",
|
||||
"achievements": "الإنجازات",
|
||||
"basicAchievs": "Basic Achievements",
|
||||
"seasonalAchievs": "Seasonal Achievements",
|
||||
"specialAchievs": "Special Achievements",
|
||||
"basicAchievs": "الإنجازات الأساسية",
|
||||
"seasonalAchievs": "الإنجازات الموسمية",
|
||||
"specialAchievs": "الإنجازات الخاصة",
|
||||
"modalAchievement": "إنجاز!",
|
||||
"special": "خاص",
|
||||
"site": "الموقع",
|
||||
"help": "مساعدة",
|
||||
"user": "المستخدم",
|
||||
"market": "المتجر",
|
||||
"newSubscriberItem": "You have new <span class=\"notification-bold-blue\">Mystery Items</span>",
|
||||
"newSubscriberItem": "لديك <span class=\"notification-bold-blue\"> عناصر غامضة جديدة </span>",
|
||||
"subscriberItemText": "كل شهر يحصل المشتركون على غرض غامض. عادةً يصبح متاحا في بداية الشهر. راجع صفحة الويكي \"الغرض الغامض\" للمزيد من المعلومات.",
|
||||
"all": "الجميع",
|
||||
"none": "لا شيء",
|
||||
"more": "<%= count %> more",
|
||||
"more": "<%= count %> أكثر",
|
||||
"and": "و",
|
||||
"submit": "إرسال",
|
||||
"close": "إغلاق",
|
||||
"saveAndClose": "حفظ وإغلاق",
|
||||
"saveAndConfirm": "Save & Confirm",
|
||||
"saveAndConfirm": "حفظ & تأكيد",
|
||||
"cancel": "إلغاء",
|
||||
"ok": "حسناً",
|
||||
"add": "إضافة",
|
||||
@@ -47,29 +47,29 @@
|
||||
"delete": "حذف",
|
||||
"gemsPopoverTitle": "جواهر",
|
||||
"gems": "الجواهر",
|
||||
"needMoreGems": "Need More Gems?",
|
||||
"needMoreGemsInfo": "Purchase Gems now, or become a subscriber to buy Gems with Gold, get monthly mystery items, enjoy increased drop caps and more!",
|
||||
"needMoreGems": "تحتاج المزيد من الأحجار الكريمة؟",
|
||||
"needMoreGemsInfo": "قم بشراء الأحجار الكريمة الآن، أو اشترك لتكون قادراً على شراء الأحجار الكريمة بالذهب، واحصل على عناصر غامضة شهرياً، واستمتع بالتميز والجوائز المتزايدة والمزيد!",
|
||||
"veteran": "متمرس",
|
||||
"veteranText": "نجا من \"العادة الرمادية\" (موقعنا السابق)، وحصل على العديد من ندب المعارك من أخطائه.",
|
||||
"originalUser": "مستخدم أصلي!",
|
||||
"originalUserText": "واحد من المتبنين <em>الأوائل</em>. نتكلم عن مجرب منذ البداية!",
|
||||
"habitBirthday": "حفلة يوم ميلاد Habitica",
|
||||
"habitBirthdayText": "احتفل بيوم ميلاد Habitica!",
|
||||
"habitBirthdayPluralText": "Celebrated <%= count %> Habitica Birthday Bashes!",
|
||||
"habitBirthdayPluralText": "احتفل <%= count %> أيام ميلاد Habitica!",
|
||||
"habiticaDay": "يوم تسمية Habitica",
|
||||
"habiticaDaySingularText": "احتفل بيوم تسمية Habitica! شكراً لكونك مستخدماً رائعاً.",
|
||||
"habiticaDayPluralText": "Celebrated <%= count %> Naming Days! Thanks for being a fantastic user.",
|
||||
"habiticaDayPluralText": "احتفل <%= count %> بأيام تسمية Habitica! شكراً لكونك مستخدماً رائعاً.",
|
||||
"achievementDilatory": "المنقذ من المماطلة",
|
||||
"achievementDilatoryText": "ساعد على هزيمة تنين المماطلة المروع خلال احتفال صيف 2014!",
|
||||
"costumeContest": "متسابق الأزياء التنكرية",
|
||||
"costumeContestText": "Participated in the Habitoween Costume Contest. See some of the awesome entries at blog.habitrpg.com!",
|
||||
"costumeContestTextPlural": "Participated in <%= count %> Habitoween Costume Contests. See some of the awesome entries at blog.habitrpg.com!",
|
||||
"newPassSent": "If we have your email on file, instructions for setting a new password have been sent to your email.",
|
||||
"costumeContestText": "شارك في مسابقة أزياء الهالوين. شاهد بعض الأفكار الرائعة على blog.habitrpg.com!",
|
||||
"costumeContestTextPlural": "شارك في <%= count %> مسابقات أزياء الهالوين. شاهد بعض الأفكار الرائعة على blog.habitrpg.com!",
|
||||
"newPassSent": "إذا كان لدينا بريدك الإلكتروني في الملف، فقد تم إرسال تعليمات تعيين كلمة مرور جديدة إلى بريدك الإلكتروني.",
|
||||
"error": "خطأ",
|
||||
"menu": "القائمة",
|
||||
"notifications": "الإشعارات",
|
||||
"noNotifications": "You're all caught up!",
|
||||
"noNotificationsText": "The notification fairies give you a raucous round of applause! Well done!",
|
||||
"noNotifications": "لديك آخر التحديثات!",
|
||||
"noNotificationsText": "تمنحك جنيات الإشعارات جولة من التصفيق الصاخب! أحسنت!",
|
||||
"clear": "إزالة",
|
||||
"audioTheme": "سمة الصوت",
|
||||
"audioTheme_off": "تعطيل",
|
||||
@@ -77,17 +77,17 @@
|
||||
"audioTheme_wattsTheme": "سمة واتس",
|
||||
"audioTheme_gokulTheme": "سمة غوكل",
|
||||
"audioTheme_luneFoxTheme": "سمة لونفوكس",
|
||||
"audioTheme_rosstavoTheme": "Rosstavo's Theme",
|
||||
"audioTheme_dewinTheme": "Dewin's Theme",
|
||||
"audioTheme_airuTheme": "Airu's Theme",
|
||||
"audioTheme_beatscribeNesTheme": "Beatscribe's NES Theme",
|
||||
"audioTheme_arashiTheme": "Arashi's Theme",
|
||||
"audioTheme_triumphTheme": "Triumph Theme",
|
||||
"audioTheme_lunasolTheme": "Lunasol Theme",
|
||||
"audioTheme_spacePenguinTheme": "SpacePenguin's Theme",
|
||||
"audioTheme_maflTheme": "MAFL Theme",
|
||||
"audioTheme_pizildenTheme": "Pizilden's Theme",
|
||||
"audioTheme_farvoidTheme": "Farvoid Theme",
|
||||
"audioTheme_rosstavoTheme": "سمة روسستافو",
|
||||
"audioTheme_dewinTheme": "سمة ديوين",
|
||||
"audioTheme_airuTheme": "سمة آيرو",
|
||||
"audioTheme_beatscribeNesTheme": "سمة بيتسكرايب NES",
|
||||
"audioTheme_arashiTheme": "سمة أراشي",
|
||||
"audioTheme_triumphTheme": "سمة الانتصار الساحق",
|
||||
"audioTheme_lunasolTheme": "سمة لوناسول",
|
||||
"audioTheme_spacePenguinTheme": "سمة بطريق الفضاء",
|
||||
"audioTheme_maflTheme": "سمة مافل",
|
||||
"audioTheme_pizildenTheme": "سمة بيزيلدن",
|
||||
"audioTheme_farvoidTheme": "سمة فارفويد",
|
||||
"reportBug": "بلّغ عن خطأ",
|
||||
"overview": "لمحة عامة للمستخدمين الجدد",
|
||||
"dateFormat": "صيغة التاريخ",
|
||||
@@ -95,110 +95,110 @@
|
||||
"achievementStressbeastText": "ساعد على هزيمة وحش التوتر الفظيع خلال احتفال شتاء 2014!",
|
||||
"achievementBurnout": "المنقذ من الحقول المزدهرة",
|
||||
"achievementBurnoutText": "ساعد على هزيمة احتراقي واستعادة أشباح العادم خلال احتفال خريف 2015!",
|
||||
"achievementBewilder": "Savior of Mistiflying",
|
||||
"achievementBewilderText": "Helped defeat the Be-Wilder during the 2016 Spring Fling Event!",
|
||||
"achievementDysheartener": "Savior of the Shattered",
|
||||
"achievementDysheartenerText": "Helped defeat the Dysheartener during the 2018 Valentine's Event!",
|
||||
"cards": "Cards",
|
||||
"sentCardToUser": "You sent a card to <%= profileName %>",
|
||||
"cardReceived": "You received a <span class=\"notification-bold-blue\"><%= card %></span>",
|
||||
"achievementBewilder": "المنقذ من الخطأ",
|
||||
"achievementBewilderText": "ساعد في هزيمة Be-Wilder خلال حدث Spring Fling لعام 2016!",
|
||||
"achievementDysheartener": "منقذ المحطمين",
|
||||
"achievementDysheartenerText": "ساعد في هزيمة Dysheartener خلال حدث عيد الحب 2018!",
|
||||
"cards": "البطاقات",
|
||||
"sentCardToUser": "لقد أرسلت بطاقة إلى <%= profileName %>",
|
||||
"cardReceived": "لقد وصلتك <span class=\"notification-bold-blue\"><%= card %></span>",
|
||||
"greetingCard": "بطاقة معايدة",
|
||||
"greetingCardExplanation": "كلاكما ستحصلان على إنجاز الصاحب المبتهج!",
|
||||
"greetingCardNotes": "أرسل بطاقة تحية لعضو بالفريق.",
|
||||
"greeting0": "مرحباً!",
|
||||
"greeting1": "فقط أحببت أن أقول مرحباً :)",
|
||||
"greeting2": "`waves frantically`",
|
||||
"greeting2": "`موجات حميمية`",
|
||||
"greeting3": "مرحباً يا!",
|
||||
"greetingCardAchievementTitle": "الصاحب المبتهج",
|
||||
"greetingCardAchievementText": "Hey! Hi! Hello! Sent or received <%= count %> greeting cards.",
|
||||
"greetingCardAchievementText": "مرحباً! لقد أرسلت أو استلمت <%= count %> بطاقة تحية.",
|
||||
"thankyouCard": "بطاقة شكر",
|
||||
"thankyouCardExplanation": "كلاكما ستحصلان على إنجاز الممتن كثيراً!",
|
||||
"thankyouCardNotes": "أرسل بطاقة شكر لعضو فريق.",
|
||||
"thankyou0": "شكراً جزيلاً لك!",
|
||||
"thankyou1": "شكراً، شكراً، شكراً!",
|
||||
"thankyou1": "شكراً جزيلاً، شكراً!",
|
||||
"thankyou2": "أرسل لك ألف شكر.",
|
||||
"thankyou3": "أنا ممتن كثيراً، شكراً لك!",
|
||||
"thankyouCardAchievementTitle": "ممتن لك بشدة",
|
||||
"thankyouCardAchievementText": "Thanks for being thankful! Sent or received <%= count %> Thank-You cards.",
|
||||
"thankyouCardAchievementText": "شكراً لكونك ممتناً! لقد أرسلت أو استلمت <%= count %> رسالة شكر.",
|
||||
"birthdayCard": "بطاقة تهنئة بيوم الميلاد",
|
||||
"birthdayCardExplanation": "كلاكما تحصلان على إنجاز يوم الميلاد المليء بالحظ!",
|
||||
"birthdayCardNotes": "أرسل بطاقة تهنة يوم الميلاد لأحد أعضاء فريقك.",
|
||||
"birthday0": "يوم ميلاد سعيد!",
|
||||
"birthdayCardAchievementTitle": "يوم ميلاد مليء بالحظ",
|
||||
"birthdayCardAchievementText": "Many happy returns! Sent or received <%= count %> birthday cards.",
|
||||
"congratsCard": "Congratulations Card",
|
||||
"congratsCardExplanation": "You both receive the Congratulatory Companion achievement!",
|
||||
"congratsCardNotes": "Send a Congratulations card to a party member.",
|
||||
"congrats0": "Congratulations on your success!",
|
||||
"congrats1": "I'm so proud of you!",
|
||||
"congrats2": "Well done!",
|
||||
"congrats3": "A round of applause for you!",
|
||||
"congrats4": "Bask in your well-deserved success!",
|
||||
"congratsCardAchievementTitle": "Congratulatory Companion",
|
||||
"congratsCardAchievementText": "It's great to celebrate your friends' achievements! Sent or received <%= count %> congratulations cards.",
|
||||
"getwellCard": "Get Well Card",
|
||||
"getwellCardExplanation": "You both receive the Caring Confidant achievement!",
|
||||
"getwellCardNotes": "Send a Get Well card to a party member.",
|
||||
"getwell0": "Hope you feel better soon!",
|
||||
"getwell1": "Take care! <3",
|
||||
"getwell2": "You're in my thoughts!",
|
||||
"getwell3": "Sorry you're not feeling your best!",
|
||||
"getwellCardAchievementTitle": "Caring Confidant",
|
||||
"getwellCardAchievementText": "Well-wishes are always appreciated. Sent or received <%= count %> get well cards.",
|
||||
"goodluckCard": "Good Luck Card",
|
||||
"goodluckCardExplanation": "You both receive the Lucky Letter achievement!",
|
||||
"goodluckCardNotes": "Send a good luck card to a party member.",
|
||||
"goodluck0": "May luck always follow you!",
|
||||
"goodluck1": "Wishing you lots of luck!",
|
||||
"goodluck2": "I hope luck is on your side today and always!!",
|
||||
"goodluckCardAchievementTitle": "Lucky Letter",
|
||||
"goodluckCardAchievementText": "Wishes for good luck are great encouragement! Sent or received <%= count %> good luck cards.",
|
||||
"streakAchievement": "You earned a streak achievement!",
|
||||
"firstStreakAchievement": "21-Day Streak",
|
||||
"streakAchievementCount": "<%= streaks %> 21-Day Streaks",
|
||||
"twentyOneDays": "You've completed your Daily for 21 days in a row!",
|
||||
"dontBreakStreak": "Amazing job. Don't break the streak!",
|
||||
"birthdayCardAchievementText": "العديد من عوائد سعيدة! لقد أرسلت أو استلمت <%= count %> بطاقة عيد ميلاد سعيد.",
|
||||
"congratsCard": "بطاقة تهنئة",
|
||||
"congratsCardExplanation": "كلاكما تلقى إنجاز الرفيق المهنئ!",
|
||||
"congratsCardNotes": "أرسل بطاقة تهنئة لعضو الفريق.",
|
||||
"congrats0": "مبارك نجاحك!",
|
||||
"congrats1": "أنا فخور جداً بك!",
|
||||
"congrats2": "أحسنت!",
|
||||
"congrats3": "جولة من التصفيق لك!",
|
||||
"congrats4": "تشرق في نجاحك الذي تستحقه!",
|
||||
"congratsCardAchievementTitle": "الرفيق المهنئ",
|
||||
"congratsCardAchievementText": "إنه لأمر رائع أن تحتفل بإنجازات أصدقائك! لقد أرسلت أو استلمت <%= count %> بطاقة تهنئة.",
|
||||
"getwellCard": "بطاقة التعافي والشفاء العاجل",
|
||||
"getwellCardExplanation": "كلاكما حصل على إنجاز رعاية المقرب!",
|
||||
"getwellCardNotes": "أرسل بطاقة تمنيات بالشفاء العاجل إلى أحد أعضاء الفريق.",
|
||||
"getwell0": "أتمنى أن تشعر بتحسن عما قريب!",
|
||||
"getwell1": "اعتن بنفسك! <3",
|
||||
"getwell2": "أنت في أفكاري!",
|
||||
"getwell3": "آسف لأنك لست في أفضل حالاتك!",
|
||||
"getwellCardAchievementTitle": "رعاية المقرب",
|
||||
"getwellCardAchievementText": "إنه لموضع تقدير، التمنيات الطيبة. لقد أرسلت أو استلمت <%= count %> بطاقة تمنيات طيبة.",
|
||||
"goodluckCard": "بطاقة حظ سعيد",
|
||||
"goodluckCardExplanation": "كلاكما تلقيت إنجاز البريد المحظوظ!",
|
||||
"goodluckCardNotes": "أرسل بطاقة حظ سعيد إلى أحد أعضاء الفريق.",
|
||||
"goodluck0": "فليتبعك الحظ دائماً!",
|
||||
"goodluck1": "أتمنى لك الكثير من الحظ!",
|
||||
"goodluck2": "أتمنى أن يكون الحظ بجانبك اليوم ودائماً !!",
|
||||
"goodluckCardAchievementTitle": "البريد المحظوظ",
|
||||
"goodluckCardAchievementText": "التمنيات بالتوفيق هي تشجيع كبير! لقد أرسلت أو استلمت <%= count %> بطاقة حظ سعيد.",
|
||||
"streakAchievement": "لقد ربحت إنجازاً متتالياً!",
|
||||
"firstStreakAchievement": "ضربة 21-يوماً",
|
||||
"streakAchievementCount": "<%= streaks %> ضربة 21-يوماً",
|
||||
"twentyOneDays": "لقد أكملت برنامجك اليومي لمدة 21 يوماً على التوالي!",
|
||||
"dontBreakStreak": "عمل مبهر. لا تكسر الضربة المتتالية!",
|
||||
"dontStop": "لا تتوقف الآن!",
|
||||
"wonChallengeShare": "فزت بتحد في Habitica!",
|
||||
"orderBy": "Order By <%= item %>",
|
||||
"you": "(you)",
|
||||
"loading": "Loading...",
|
||||
"userIdRequired": "User ID is required",
|
||||
"resetFilters": "Clear all filters",
|
||||
"applyFilters": "Apply Filters",
|
||||
"wantToWorkOn": "I want to work on:",
|
||||
"categories": "Categories",
|
||||
"animals": "Animals",
|
||||
"exercise": "Exercise",
|
||||
"creativity": "Creativity",
|
||||
"health_wellness": "Health & Wellness",
|
||||
"self_care": "Self-Care",
|
||||
"habitica_official": "Habitica Official",
|
||||
"academics": "Academics",
|
||||
"advocacy_causes": "Advocacy + Causes",
|
||||
"entertainment": "Entertainment",
|
||||
"finance": "Finance",
|
||||
"orderBy": "ترتيب حسب <%= item %>",
|
||||
"you": "(أنت)",
|
||||
"loading": "تحميل...",
|
||||
"userIdRequired": "مطلوب ID المستخدم (User ID)",
|
||||
"resetFilters": "امسح كل عوامل التصفية",
|
||||
"applyFilters": "تطبيق عوامل التصفية",
|
||||
"wantToWorkOn": "أريد العمل على:",
|
||||
"categories": "الفئات",
|
||||
"animals": "الحيوانات",
|
||||
"exercise": "التمرين",
|
||||
"creativity": "الإِبداع",
|
||||
"health_wellness": "الصحة & الراحة",
|
||||
"self_care": "العناية بالنفس",
|
||||
"habitica_official": "Habitica رسمي",
|
||||
"academics": "أكاديمي",
|
||||
"advocacy_causes": "تطوع + مجتمعات الاهتمام",
|
||||
"entertainment": "وسائل الترفيه",
|
||||
"finance": "الموارد المالية",
|
||||
"health_fitness": "الصحة واللياقة البدنية",
|
||||
"hobbies_occupations": "الهوايات والمهن",
|
||||
"location_based": "Location-based",
|
||||
"location_based": "معتمد على الموقع",
|
||||
"mental_health": "الصحة العقلية + العناية الذاتية",
|
||||
"getting_organized": "Getting Organized",
|
||||
"self_improvement": "Self-Improvement",
|
||||
"spirituality": "Spirituality",
|
||||
"time_management": "Time-Management + Accountability",
|
||||
"recovery_support_groups": "Recovery + Support Groups",
|
||||
"dismissAll": "Dismiss All",
|
||||
"messages": "Messages",
|
||||
"emptyMessagesLine1": "You don't have any messages",
|
||||
"getting_organized": "أن تصبح أكثر تنظيماً",
|
||||
"self_improvement": "تطوير الذات",
|
||||
"spirituality": "الروحانية",
|
||||
"time_management": "إدارة الوقت + المسؤولية",
|
||||
"recovery_support_groups": "مجموعات التجديد + الدعم",
|
||||
"dismissAll": "امسح الكل",
|
||||
"messages": "الرسائل",
|
||||
"emptyMessagesLine1": "ليس لديك أية رسائل",
|
||||
"emptyMessagesLine2": "يمكنك إرسال رسالة جديدة إلى مستخدم من خلال زيارة ملفه الشخصي والنقر على زر \"رسالة\".",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> sent you a message",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> أرسل لك رسالة",
|
||||
"letsgo": "لنذهب!",
|
||||
"selected": "Selected",
|
||||
"howManyToBuy": "How many would you like to buy?",
|
||||
"contactForm": "Contact the Moderation Team",
|
||||
"selected": "محدد",
|
||||
"howManyToBuy": "كم تريد أن تشتري؟",
|
||||
"contactForm": "تواصل مع فريق الإشراف",
|
||||
"congratulations": "تهانينا!",
|
||||
"finish": "نهاية",
|
||||
"onboardingAchievs": "إنجازات الإعداد",
|
||||
"onboardingAchievs": "الإنجازات الترحيبية",
|
||||
"reportBugHeaderDescribe": "يُرجى وصف الخطأ الذي تواجهه وسيتواصل معك فريقنا.",
|
||||
"reportEmailText": "سيتم استخدام هذا فقط للاتصال بك بخصوص تقرير الخطأ.",
|
||||
"reportEmailPlaceholder": "عنوان بريدك الإلكتروني",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"noItemsAvailableForType": "لا يوجد لديك <%= type %>",
|
||||
"noItemsAvailableForType": "لا يوجد لديك <%= type %>.",
|
||||
"foodItemType": "طعام الحيوانات الأليفة",
|
||||
"eggsItemType": "بيض",
|
||||
"hatchingPotionsItemType": "جرعات الفقس",
|
||||
"specialItemType": "حاجات خاصة",
|
||||
"lockedItem": "حاجة مقفلة",
|
||||
"hatchingPotionsItemType": "جرعات التلقيح",
|
||||
"specialItemType": "عناصر خاصة",
|
||||
"lockedItem": "عنصر مقفل",
|
||||
"petAndMount": "حيوان أليف وحيوان للركوب",
|
||||
"allItems": "كل العناصر"
|
||||
}
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"unlockedReward": "You have received <%= reward %>",
|
||||
"earnedRewardForDevotion": "You have earned <%= reward %> for being committed to improving your life.",
|
||||
"nextRewardUnlocksIn": "Check-ins until your next prize: <%= numberOfCheckinsLeft %>",
|
||||
"awesome": "Awesome!",
|
||||
"unlockedReward": "لقد استلمت <%= reward %>",
|
||||
"earnedRewardForDevotion": "لقد حصلت على <%= reward %> لكونك ملتزماً بتحسين حياتك.",
|
||||
"nextRewardUnlocksIn": "تسجيلات دخول للحصول على جائزتك القادمة: <%= numberOfCheckinsLeft %>",
|
||||
"awesome": "رائع!",
|
||||
"countLeft": "Check-ins until next reward: <%= count %>",
|
||||
"incentivesDescription": "When it comes to building habits, consistency is key. Each day you check-in you get closer to a prize.",
|
||||
"checkinEarned": "Your Check-In Counter went up!",
|
||||
"unlockedCheckInReward": "You unlocked a Check-In Prize!",
|
||||
"checkinProgressTitle": "Progress until next",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "Locked Plain Backgrounds will unlock with Daily Check-Ins.",
|
||||
"oneOfAllPetEggs": "one of each standard Pet Egg",
|
||||
"twoOfAllPetEggs": "two of each standard Pet Egg",
|
||||
"threeOfAllPetEggs": "three of each standard Pet Egg",
|
||||
"oneOfAllHatchingPotions": "one of each standard Hatching Potion",
|
||||
"threeOfEachFood": "three of each standard Pet Food",
|
||||
"fourOfEachFood": "four of each standard Pet Food",
|
||||
"twoSaddles": "two Saddles",
|
||||
"incentivesDescription": "عندما يتعلق الأمر ببناء العادات ، فإن الاستمرار هو المفتاح. كل يوم تقوم بتسجيل الدخول تقترب من مكافأة.",
|
||||
"checkinEarned": "ازداد عدد تسجيلات الدخول الخاص بك!",
|
||||
"unlockedCheckInReward": "لقد حررت جائزة تسجيل دخول!",
|
||||
"checkinProgressTitle": "عملية التقدم للتالي",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "التقدم حتى يتم فتح الخلفيات العادية المقفلة التالية مع تسجيلات الدخول اليومية.",
|
||||
"oneOfAllPetEggs": "واحدة من بيض كل الحيوانات الأليفة القياسية",
|
||||
"twoOfAllPetEggs": "اثنين من بيض كل الحيوانات الأليفة القياسية",
|
||||
"threeOfAllPetEggs": "ثلاثة من بيض كل الحيوانات الأليفة القياسية",
|
||||
"oneOfAllHatchingPotions": "واحدة من كل جرعات التفقيس القياسية",
|
||||
"threeOfEachFood": "ثلاثة من كل جرعات التفقيس القياسية",
|
||||
"fourOfEachFood": "أربعة من غذاء كل الحيوانات الأليفة القياسية",
|
||||
"twoSaddles": "اثنين من السروج",
|
||||
"threeSaddles": "ثلاثة سروج",
|
||||
"incentiveAchievement": "the Royally Loyal achievement",
|
||||
"royallyLoyal": "Royally Loyal",
|
||||
"royallyLoyalText": "This user has checked in over 500 times, and has earned every Check-In Prize!",
|
||||
"checkInRewards": "Check-In Rewards",
|
||||
"backloggedCheckInRewards": "You received Check-In Prizes! Visit your Inventory and Equipment to see what's new."
|
||||
"incentiveAchievement": "إنجاز الولاء الملكي",
|
||||
"royallyLoyal": "الولاء الملكي",
|
||||
"royallyLoyalText": "هذا المستخدم قد قام بتسجيل الدخول أكثر من 500 مرة، وحصل على كل مكافآت تسجيل الدخول!",
|
||||
"checkInRewards": "مكافآت تسجيل الدخول",
|
||||
"backloggedCheckInRewards": "لقد استلمت مكافآت تسجيل دخول! ادخل على مخزنك ومعداتك لترى ما هو جديد."
|
||||
}
|
||||
|
||||
@@ -609,7 +609,7 @@
|
||||
"questSeaSerpentNotes": "Your streaks have you feeling lucky—it’s the perfect time for a trip to the seahorse racetrack. You board the submarine at Diligent Docks and settle in for the trip to Dilatory, but you’ve barely submerged when an impact rocks the sub, sending its occupants tumbling. “What’s going on?” @AriesFaries shouts.<br><br>You glance through a nearby porthole and are shocked by the wall of shimmering scales passing by it. “Sea serpent!” Captain @Witticaster calls through the intercom. “Brace yourselves, it’s coming ‘round again!” As you grip the arms of your seat, your unfinished tasks flash before your eyes. ‘Maybe if we work together and complete them,’ you think, ‘we can drive this monster away!’",
|
||||
"questSeaSerpentCompletion": "Battered by your commitment, the sea serpent flees, disappearing into the depths. When you arrive in Dilatory, you breathe a sigh of relief before noticing @*~Seraphina~ approaching with three translucent eggs cradled in her arms. “Here, you should have these,” she says. “You know how to handle a sea serpent!” As you accept the eggs, you vow anew to remain steadfast in completing your tasks to ensure that there’s not a repeat occurrence.",
|
||||
"questSeaSerpentBoss": "The Mighty Sea Serpent",
|
||||
"questSeaSerpentDropSeaSerpentEgg": "Sea Serpent (Egg)",
|
||||
"questSeaSerpentDropSeaSerpentEgg": "",
|
||||
"questSeaSerpentUnlockText": "Unlocks purchasable Sea Serpent eggs in the Market",
|
||||
"questKangarooText": "Kangaroo Catastrophe",
|
||||
"questKangarooNotes": "Maybe you should have finished that last task… you know, the one you keep avoiding, even though it always comes back around? But @Mewrose and @LilithofAlfheim invited you and @stefalupagus to see a rare kangaroo troop hopping through the Sloensteadi Savannah; how could you say no?! As the troop comes into view, something hits you on the back of the head with a mighty <em>whack!</em><br><br>Shaking the stars from your vision, you pick up the responsible object--a dark red boomerang, with the very task you continually push back etched into its surface. A quick glance around confirms the rest of your party met a similar fate. One larger kangaroo looks at you with a smug grin, like she’s daring you to face her and that dreaded task once and for all!",
|
||||
@@ -635,4 +635,4 @@
|
||||
"questVelociraptorBoss": "Veloci-Rapper",
|
||||
"questVelociraptorDropVelociraptorEgg": "Velociraptor (Egg)",
|
||||
"questVelociraptorUnlockText": "Unlocks purchasable Velociraptor eggs in the Market"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"accept2Terms": "и",
|
||||
"chores": "Домакинска работа",
|
||||
"clearBrowserData": "Изчистване на данните на браузъра",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Добавки и разширения</a>",
|
||||
"communityExtensions": "Добавки и разширения",
|
||||
"communityFacebook": "Фейсбук",
|
||||
"companyAbout": "Как работи",
|
||||
"companyBlog": "Блог",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"accept2Terms": "a",
|
||||
"chores": "Domácí práce",
|
||||
"clearBrowserData": "Vyčistit data v prohlížeči",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Doplňky & Rozšírení</a>",
|
||||
"communityExtensions": "Doplňky & Rozšírení",
|
||||
"communityFacebook": "Facebook",
|
||||
"companyAbout": "Jak to funguje",
|
||||
"companyBlog": "Blog",
|
||||
|
||||
@@ -2014,5 +2014,9 @@
|
||||
"weaponMystery202102Notes": "Zářivý růžový drahokem v této hůlce dokáže šířit radost a přátelství všude možně! Nepřináší žádné výhody. Předmět pro předplatitele, únor 2021.",
|
||||
"weaponMystery202104Notes": "Tvoji nepřátele by si měli dávat pozor - máš totiž mocnou a pichlavou obranu! Nepřináší žádné výhody. Předmět pro předplatitele duben 2021.",
|
||||
"weaponMystery202102Text": "Okouzlující hůlka",
|
||||
"weaponMystery202104Text": "Hůl trnitého bodláku"
|
||||
"weaponMystery202104Text": "Hůl trnitého bodláku",
|
||||
"weaponMystery202201Notes": "O silvestrovské půlnoci vypusť oblak zlatého a stříbrného třpytu. Štastný nový rok! Kdo to teď uklidí? Nepřináší žádné výhody. Předmět pro předplatitele leden 2022.",
|
||||
"weaponMystery202201Text": "Konfetové dělo půlnoci",
|
||||
"weaponMystery202111Text": "Chronomancerova hůl",
|
||||
"weaponMystery202111Notes": "Ohýbej tok času s touto tajemnou a mocnou holí. Nepřináší žádné výhody. Předmět pro předplatitele listopad 2021."
|
||||
}
|
||||
|
||||
@@ -492,5 +492,6 @@
|
||||
"backgroundParkWithStatueText": "Park med Statue",
|
||||
"backgroundDojoNotes": "Lær nye teknikker i en Dojo.",
|
||||
"backgroundDojoText": "Dojo",
|
||||
"backgrounds052019": "SET 60: Frigivet Maj 2019"
|
||||
"backgrounds052019": "SET 60: Frigivet Maj 2019",
|
||||
"hideLockedBackgrounds": "Skjul låste baggrunde"
|
||||
}
|
||||
|
||||
@@ -103,5 +103,6 @@
|
||||
"selectParticipant": "Vælg en deltager",
|
||||
"filters": "Filtre",
|
||||
"wonChallengeDesc": "<%= challengeName %> udvalgte dig som vinder! Din sejr er noteret i dine Præstationer.",
|
||||
"yourReward": "Din Belønning"
|
||||
"yourReward": "Din Belønning",
|
||||
"removeTasks": "Fjern opgaver"
|
||||
}
|
||||
|
||||
@@ -2,25 +2,25 @@
|
||||
"tavernCommunityGuidelinesPlaceholder": "Venlig påmindelse: Det her er en chat for alle aldre, så hold venligst en passende tone og vær opmærksom på indholdet af dine beskeder! Læs Retningslinjer for fællesskabet i sidepanelet, hvis du har spørgsmål.",
|
||||
"lastUpdated": "Sidst opdateret:",
|
||||
"commGuideHeadingWelcome": "Velkommen til Habitica!",
|
||||
"commGuidePara001": "Vær hilset, eventyrer! Velkommen til Habitica, et land af produktivitet, sund levemåde, og til tider en enkelt hærgende grif. Vi er et muntert fællesskab fuld af hjælpsomme folk der støtter op om hinanden på deres vej til at forbedre sig selv. For at passe ind har du kun brug for en positiv attitude, respektfuld opførsel, og forståelse for at alle har forskellige evner of begrænsninger -- inklusiv dig! Habiticanere er tålmodige med hinanden og forsøger at hjælpe hvor de kan.",
|
||||
"commGuidePara002": "For at sikre at alle er trygge, glade, og produktive i vores fællesskab, har vi nogle retningslinjer. Vi har omhyggeligt konstrueret dem så de er så venlige og letlæselige som muligt. Brug venligt et øjeblik på at læse dem inden du begynder at chatte.",
|
||||
"commGuidePara003": "Disse regler gælder alle de sociale områder vi bruger, inklusiv (men ikke nødvendigvis begrænset til) Trello, GitHub, Weblate og Wikia (wiki'en). Sommetider vil der opstå uforudsete situationer, eksempelvis en ny kilde til konflikt eller en ondskabsfuld åndemaner. Når det sker, kan moderatorer reagere ved at ændre disse retningslinjer for at beskytte fællesskabet mod ny trusler. Frygt ikke: Du vil blive gjort opmærksom på ændringer i retningslinjerne via en påmindelse fra Bailey.",
|
||||
"commGuidePara001": "Vær hilset, eventyrer! Velkommen til Habitica, et land af produktivitet, sund levemåde, og til tider en enkelt hærgende grif. Vi er et muntert fællesskab fuld af hjælpsomme folk der støtter op om hinanden på deres vej til at forbedre sig selv. For at passe ind har du kun brug for en positiv attitude, respektfuld opførsel, og forståelse for at alle har forskellige evner of begrænsninger - inklusiv dig! Habiticanere er tålmodige med hinanden og forsøger at hjælpe hvor de kan.",
|
||||
"commGuidePara002": "For at sikre at alle er trygge, glade, og produktive i vores fællesskab, har vi nogle retningslinjer. Vi har omhyggeligt konstrueret dem så de er så venlige og letlæselige som muligt. Brug venligst et øjeblik på at læse dem inden du begynder at chatte.",
|
||||
"commGuidePara003": "Disse regler gælder alle de sociale områder vi bruger, inklusiv (men ikke nødvendigvis begrænset til) Trello, GitHub, Weblate og Habitica wiki'en på fandom.com. Efterhånden som Habitica vokser og forandres, kan det ske at vores regler bliver ændret. Når der er sket bemærkelsesværdige ændringer af retningslinjerne for fællesskabet, vil du kunne høre om det i en meddelelse fra Bailey og/eller på vores sociale medier!",
|
||||
"commGuideHeadingInteractions": "Interaktioner i Habitica",
|
||||
"commGuidePara015": "Habitica har to slags sociale rum: offentlige og private. Offentlige rum inkluderer Værtshuset, Offentlige klaner, GitHub, Trello og Wiki'en. Private rum er Private klaner, Holdchatten og Private beskeder. Alle display names skal følge retningslinjerne for offentlige rum. Gå til Bruger > Indstillinger > Side for at ændre dit brugernavn.",
|
||||
"commGuidePara016": "Når du navigerer rundt i de offentlige steder af Habitica, er der nogle generelle regler for at sørge for, at alle er sikre og glade. De burde være lette for eventyrere som dig!",
|
||||
"commGuideList02A": "<strong>Respekter hinanden</strong>. Vær høflig, venlig og hjælpsom. Husk: Habiticanere kommer fra alle baggrunde og har haft vildt skiftende oplevelser og erfaringer. Det er en del af det, der gør Habitica så cool! At bygge et fællesskab betyder at vi respekterer og fejrer vores forskelle såvel som vores ligheder. Her er nogle nemme måder at vise respekt for hinanden på:",
|
||||
"commGuideList02B": "<strong>Adlyd alt i <a href='/static/terms' target='_blank'>Vilkår og betingelser</a></strong>.",
|
||||
"commGuideList02C": "<strong>Læg ikke billeder eller tekst op, der er voldeligt, truende eller seksuelt eksplicit/antydende, eller som promoverer diskrimination, fordomme, racisme, sexisme, had, chikane eller skade mod et individ eller en gruppe</strong>. Ikke engang som en joke. Dette inkluderer skældsord såvel som udtalelser. Ikke alle har den samme form for humor, så noget du anser som en joke er muligvis sårende for en anden. Angrib jeres Daglige opgaver, ikke hinanden.",
|
||||
"commGuideList02D": "<strong>Hold diskussioner passende for alle aldre</strong>. Vi har mange unge Habiticanere der bruger hjemmesiden! Lad os ikke genere nogen uskyldige eller forhindre nogen Habiticanere i at opnår deres mål.",
|
||||
"commGuideList02E": "<strong>Undgå bandeord. Dette inkluderer mildere, religiøst baserede bandeord der kan være acceptable andre steder</strong>. Vi har folk fra alle religiøse og kulturelle baggrunde, og vi vil gerne sørge for at de alle føler sig trygge i offentlige rum. <strong>Hvis en moderator eller medarbejder fortæller dig at et udtryk ikke er tilladt i Habitica, selvom det er et udtryk, du ikke vidste var problematisk, er den beslutning endegyldig</strong>. Der vil blive slået særlig hårdt ned på skældsord, da de også går imod vores Vilkår og betingelser.",
|
||||
"commGuideList02F": "<strong>Undgå lange diskussioner af opsplittende emner i Værtshuset og hvor det ellers ikke ville være et passende emne</strong>. Hvis du føler nogen har sagt noget uhøfligt eller sårende, så svar dem ikke. Hvis nogen nævner noget der er tilladt ifølge retningslinjerne, men sårende for dig, er det okay høfligt at sige det til dem. Hvis det er imod retningslinjerne eller Vilkår og betingelser, så rapporter det og lad en moderator håndtere det. Hvis du er i tvivl, så rapporter beskeden.",
|
||||
"commGuideList02G": "<strong>Overhold omgående enhver anmodning fra en Moderator.</strong>. Dette kan inkludere, men er ikke begrænset til, at bede dig begrænse antallet af dine beskeder i et bestemt rum, at fjerne upassende indhold fra din profil, at bede dig om at tage din diskussion et mere passende sted osv.",
|
||||
"commGuideList02J": "<strong>Spam ikke</strong>. Spam inkluderer, men er ikke begrænset til: at skrive den samme kommentar eller spørgsmål flere steder, at lægge links op uden forklaring eller kontekst, at skrive meningsløse beskeder, at skrive adskillige promoverende beskeder om en Klan, Hold eller Udfordring, eller at skrive mange beskeder på én gang. At tigge om ædelsten eller et abonnement i ethvert chatrum eller via Privatbesked betragtes også som spam.<br/><br/>Det er op til moderatorerne at beslutte om noget er spam eller kan føre til spam, selv hvis du ikke mener du har spammet. For eksempel er det i orden at reklamere for en Klan en enkelt eller to gange, men adskillige beskeder samme da ville sikkert blive betragtet som spam, uanset hvor nyttig Klanen er!",
|
||||
"commGuidePara015": "Habitica har to slags sociale rum: offentlige og private. Offentlige rum inkluderer Værtshuset, offentlige klaner, GitHub, Trello og wiki'en. Private rum tæller private klaner, Holdchatten og private beskeder. Alle displaynavne og @brugernavne skal følge retningslinjerne for offentlige rum. Gå til Menu > Indstillinger > Profil for at ændre dit displaynavn eller @brugernavn i app'en. På Habiticas hjemmeside skal du gå til Bruger > Indstillinger.",
|
||||
"commGuidePara016": "Når du navigerer rundt i de offentlige rum af Habitica, er der nogle generelle regler for at sørge for, at alle er sikre og glade.",
|
||||
"commGuideList02A": "<strong>Respekter hinanden</strong>. Vær høflig, venlig og hjælpsom. Husk: Habiticanere kommer fra alle baggrunde og har haft vildt skiftende oplevelser og erfaringer. Det er en del af det, der gør Habitica så cool! At bygge et fællesskab betyder at vi respekterer og fejrer vores forskelle såvel som vores ligheder.",
|
||||
"commGuideList02B": "<strong>Adlyd alt i <a href='/static/terms' target='_blank'>Vilkår og betingelser</a></strong> i både offentlige og private rum.",
|
||||
"commGuideList02C": "<strong>Læg ikke billeder eller tekst op, der er voldeligt, truende eller seksuelt eksplicit/antydende, eller som promoverer diskrimination, fordomme, racisme, sexisme, had, chikane eller skade mod et individ eller en gruppe</strong>. Ikke engang som en joke. Dette inkluderer skældsord såvel som udtalelser. Ikke alle har den samme form for humor, så noget du anser som en joke er muligvis sårende for en anden.",
|
||||
"commGuideList02D": "<strong>Hold diskussioner passende for alle aldre</strong>. Dette betyder at 18+ emner ikke bør diskuteres i offentlige rum. Vi har mange unge Habiticanere der bruger hjemmesiden, og vores brugere kommer fra mange steder i verden. Vi vil gerne have, at Habitica er så rart og inkluderende et sted som muligt.",
|
||||
"commGuideList02E": "<strong>Undgå bandeord. Dette inkluderer mildere, religiøst baserede bandeord der kan være acceptable andre steder, og forkortede eller forklædte bandeord.</strong> Vi har folk fra alle religiøse og kulturelle baggrunde, og vi vil gerne sørge for at de alle føler sig trygge i offentlige rum. <strong>Hvis en moderator eller medarbejder fortæller dig at et udtryk ikke er tilladt i Habitica, selvom det er et udtryk, du ikke vidste var problematisk, er den beslutning endegyldig.</strong> Der vil blive slået særlig hårdt ned på skældsord, da de også går imod vores Vilkår og betingelser.",
|
||||
"commGuideList02F": "Undgå lange diskussioner af opsplittende emner i Værtshuset og hvor det ellers ikke ville være et passende emne. Hvis nogen siger noget der er tilladt under vores retningslinjer, men som er sårende for dig, er det okay høfligt at sige det til dem. Hvis nogen siger til dig, at du har gjort dem ubehageligt til mode, så tag et øjeblik til at tænke over dine ord frem for at svare i vrede. Hvis du føler, at en samtale er ved at blive overophedet, følelsesladet eller sårende, <strong>så hold op med at svare. Rapportér i stedet de relevante beskeder for at sende besked til os.</strong> Moderatorerne vil se på det, så hurtigt de kan. Du kan også sende en email til <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> og er velkommen til at sende screenshots, hvis det ville hjælpe os med at forstå sagen.",
|
||||
"commGuideList02G": "<strong>Overhold omgående enhver anmodning fra en Moderator.</strong> Dette kan inkludere, men er ikke begrænset til, at bede dig begrænse antallet af dine beskeder i et bestemt rum, at fjerne upassende indhold fra din profil, at bede dig om at tage din diskussion et mere passende sted osv. Begynd ikke at diskutere med moderatorerne. Hvis du har kommentarer til Habiticas moderering, så send en email til <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> for at komme i kontakt med vores community manager.",
|
||||
"commGuideList02J": "<strong>Spam ikke</strong>. Spam inkluderer, men er ikke begrænset til: at skrive den samme kommentar eller spørgsmål flere steder, <strong>at lægge links op uden forklaring eller kontekst</strong>, at skrive meningsløse beskeder, at skrive adskillige promoverende beskeder om en Klan, Hold eller Udfordring, eller at skrive mange beskeder på én gang. Hvis det at andre brugere følger et link vil give nogen form for afkast eller fordel til dig, skal det stå i beskeden, ellers vil det også blive regnet for spam. Det er op til moderatorerne at beslutte om noget er spam.",
|
||||
"commGuideList02K": "<strong>Undgå at skrive store overskrifter i offentlige chatrum, især Værtshuset</strong>. Ligesom ALL CAPS læses det som om du råber, og forstyrrer den behagelige stemning.",
|
||||
"commGuideList02L": "<strong>Vi fraråder kraftigt deling af personlig information -- især information der kan bruges til at identificere dig - i offentlige chatrum</strong>. Identificerende personlig information inkluderer, men er ikke begrænset til: din adresse, emailadresse og din API token/password. Det er for din sikkerheds skyld! Medarbejdere eller moderatorer kan fjerne sådanne beskeder efter forgodtbefindende. Hvis du bliver bedt om personlig information i en privat Klan, Hold eller Besked, anbefaler vi kraftigt at du høfligt afviser og gør medarbejderne og moderatorerne opmærksomme ved enten 1) at rapportere beskeden hvis det er i chatten tilhørende et Hold eller privat Klan, eller 2) at udfylde <a href='https://contact.habitica.com/' target='_blank'>Moderatorkontaktformularen</a> og vedlægger screenshots.",
|
||||
"commGuideList02L": "<strong>Vi fraråder kraftigt deling af personlig information -- især information der kan bruges til at identificere dig - i offentlige chatrum</strong>. Identificerende personlig information inkluderer, men er ikke begrænset til: din adresse, emailadresse og din API token/password. Det er for din sikkerheds skyld! Medarbejdere eller moderatorer kan fjerne sådanne beskeder efter forgodtbefindende. Hvis du bliver bedt om personlig information i en privat Klan, Hold eller Besked, anbefaler vi kraftigt at du høfligt afviser og gør medarbejderne og moderatorerne opmærksomme ved enten 1) at rapportere beskeden, eller 2) at sende en email til <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> og vedhæfte screenshots.",
|
||||
"commGuidePara019": "<strong>I private rum</strong> har brugere mere frihed til at diskutere hvilke emner de har lyst til, men de må stadig ikke gå imod Vilkår og betingelser, inklusiv at skrive nedværdigende skældsord eller noget diskriminerende, voldeligt eller truende indhold. Bemærk, at fordi navne på Udfordringer kan ses i vinderens offentlige profil skal ALLE navne på Udfrodringer adlyde retningslinjerne for offentlige rum, selv hvis de foregår i et privat rum.",
|
||||
"commGuidePara020": "<strong>Privatbeskeder</strong> har nogle ekstra retningslinjer. Hvis nogen har blokeret dig må du ikke kontakte dem på andre måder for at bede dem om at fjerne blokeringen. Derudover må du ikke sende privatbeskeder til andre for at bede om hjælp (fordi offentlige svar til spørgsmål om hjælp også kan hjælpe resten af fællesskabet). Sidst men ikke mindst må du ikke sende privatbeskeder til nogen for at tigge om ædelsten eller et abonnement, da dette kan anses som spamming.",
|
||||
"commGuidePara020A": "<strong>Hvis du ser et indlæg eller en privatbesked, du mener går imod retningslinjerne for offenlige rum, beskrevet ovenfor, eller hvis du ser indlæg eller privatbeskeder, der bekymrer dig eller gør dig utryg, kan du gøre Moderatorer og Medarbejdere opmærksomme på den ved at klikke på flag-ikonet for at rapportere det</strong>. En Medarbejder eller Moderator vil tage sig af situationen, så snart de kan. Bemærk venligst, at det at rapportere uskyldige indlæg går imod disse Retningslinjer (se \"Overtrædelser\" nedenunder). Du kan også kontakte Moderatorerne via formularen “<a href='https://contact.habitica.com/' target='_blank'>Kontakt Moderatorerne</a>.” Det kan være det bedste at gøre dette hvis der er flere problematiske indlæg af den samme person i forskellige Klaner, eller hvis situationen kræver en forklaring. Du kan kontakte os på dit eget sprog hvis det er lettere for dig. Vi bliver muligvis nødt til at bruge Google Translate, men vi vil gerne have at du føler dig tryg ved at tage kontakt til os, hvis du har et problem.",
|
||||
"commGuidePara020": "<strong>Privatbeskeder</strong> har nogle ekstra retningslinjer. Hvis nogen har blokeret dig må du ikke kontakte dem på andre måder for at bede dem om at fjerne blokeringen. Derudover må du ikke sende privatbeskeder til andre for at bede om hjælp (fordi offentlige svar til spørgsmål om hjælp også kan hjælpe resten af fællesskabet). Sidst men ikke mindst må du ikke sende privatbeskeder til nogen for at tigge om nogen form for service, der koster rigtige penge.",
|
||||
"commGuidePara020A": "<strong>Hvis du ser et indlæg eller en privatbesked, du mener går imod retningslinjerne for offentlige rum, beskrevet ovenfor, eller hvis du ser indlæg eller privatbeskeder, der bekymrer dig eller gør dig utryg, kan du gøre Moderatorer og Medarbejdere opmærksomme på den ved at klikke på flag-ikonet for at rapportere det</strong>. En Medarbejder eller Moderator vil tage sig af situationen, så snart de kan. Bemærk venligst, at det at rapportere uskyldige indlæg går imod disse retningslinjer (se \"Overtrædelser\" nedenunder). Du kan også kontakte Moderatorerne ved at emaile <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>. Det kan være det bedste at gøre dette, hvis der er flere problematiske indlæg af den samme person i forskellige Klaner, eller hvis situationen kræver en forklaring. Du kan kontakte os på dit eget sprog hvis det er lettere for dig. Vi bliver muligvis nødt til at bruge Google Translate, men vi vil gerne have at du føler dig tryg ved at tage kontakt til os, hvis du har et problem.",
|
||||
"commGuidePara021": "Herudover har nogen offentlige steder i Habitica ekstra retningslinjer.",
|
||||
"commGuideHeadingTavern": "Værtshuset",
|
||||
"commGuidePara022": "Værtshuset er det primære sted Habiticanere hænger ud. Kroværten Daniel holder stedet funklende rent, og Lemoness vil med glæde fremtrylle dig et glas lemonade mens du sidder og snakker. Bare husk…",
|
||||
@@ -31,8 +31,8 @@
|
||||
"commGuidePara029": "<strong>Offentlige Klaner er meget ligesom Værtshuset, bortset fra at de i stedet for at være til generelle samtaler har et bestemt tema</strong>. Chat i offentlige Klaner bør have fokus på dette tema. For eksempel ville medlemmer af Klanen Wordsmiths måske blive fornærmede, hvis samtalen pludselig handler om havearbejde, og Klanen for Dragefans har nok ikke meget interesse i at tyde oldtidens runer. Nogle Klaner er meget afslappede om dette end andre, men forsøg generelt <strong>at holde dig til emnet</strong>!",
|
||||
"commGuidePara031": "I nogle offentlige Klaner omtales der følsomme emner som depression, religion, politik osv. Dette er helt i orden, så længe samtalerne i Klanen ikke bryder nogle Vilkår og betingelser eller Regler for offentlige rum, og så længe de holder sig til Klanens emne.",
|
||||
"commGuidePara033": "<strong>Offentlige Klaner må IKKE indeholde indhold for aldersgruppen 18+. Hvis de planlægger jævnligt at diskutere følsomt indhold, skal dette stå i Klanens beskrivelse</strong>. Dette er for at holde Habitica sikkert of trygt for alle.",
|
||||
"commGuidePara035": "<strong>Hvis en Klan omhandler flere forskellige følsomme emner, er det hensynsfuldt over for dine med-Habiticanere at skrive din kommentar efter en advarsel (fx \"Advarsel: Omtaler selvskade\")</strong>. Disse kan karakteriseres som trigger warnings og/eller noter om indholdet, og Klaner kan have deres egne regler om disse udover dem, der er givet her. Hvis det er muligt, så brug venligst <a href='http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet' target='_blank'>markdown</a> for at gemme det potentielt følsomme indhold under flere linjeskift, så de, der ikke ønsker at læse det, kan scrolle forbi uden at se indholdet. Habiticas medarbejdere og moderatorer kan stadig fjerne dette indhold efter eget skøn.",
|
||||
"commGuidePara036": "Desuden bør følsomt indhold stadig være aktuelt for Klanens emne - at tale om selvskade i en Klan hvor fokus er på at kæmpe mod depression giver mening, men er mindre passende i en Klan for musik. Hvis du ser nogen, som gentagne gange går imod denne retningslinje, især efter at være blevet bedt om at stoppe flere gange, så rapportér venligst deres indlæg og gør moderatorerne opmærksom på dette via <a href='https://contact.habitica.com/' target='_blank'>Moderatorkontaktformularen</a>.",
|
||||
"commGuidePara035": "<strong>Hvis en Klan omhandler flere forskellige følsomme emner, er det hensynsfuldt over for dine med-Habiticanere at skrive din kommentar efter en advarsel (fx \"Advarsel: Omtaler selvskade\")</strong>. Disse kan karakteriseres som trigger warnings og/eller noter om indholdet, og Klaner kan have deres egne regler om disse udover dem, der er givet her. Hvis det er muligt, så brug venligst <a href='https://habitica.fandom.com/wiki/Markdown_Cheat_Sheet' target='_blank'>markdown</a> for at gemme det potentielt følsomme indhold under flere linjeskift, så de, der ikke ønsker at læse det, kan scrolle forbi uden at se indholdet. Habiticas medarbejdere og moderatorer kan stadig fjerne dette indhold efter eget skøn.",
|
||||
"commGuidePara036": "Desuden bør følsomt indhold stadig være aktuelt for Klanens emne - at tale om selvskade i en Klan hvor fokus er på at kæmpe mod depression giver mening, men er mindre passende i en Klan for musik. Hvis du ser nogen, som gentagne gange går imod denne retningslinje, især efter at være blevet bedt om at stoppe flere gange, så rapportér deres beskeder.",
|
||||
"commGuidePara037": "<strong>Ingen Klaner, hverken Offentlige eller Private, bør oprettes med det formål at angribe en gruppe eller et individ</strong>. At oprette en sådan Klan er grundlæg for øjeblikkelig bortvisning fra Habitica. Nedkæmp dårlige vaner, ikke dine med-eventyrere!",
|
||||
"commGuidePara038": "<strong>Alle Udfordringer i Værtshuset og Offentlige Klaner skal også følge disse regler</strong>.",
|
||||
"commGuideHeadingInfractionsEtc": "Overtrædelser, Konsekvenser og Genskabelse",
|
||||
@@ -44,24 +44,24 @@
|
||||
"commGuidePara053": "De følgende er eksempler på større overtrædelser. Listen er ikke fyldestgørende.",
|
||||
"commGuideList05A": "Brud på Betingelser og Vilkår",
|
||||
"commGuideList05B": "Hadtale/billeder, Chikane/stalking, Cyber-mobning, Flaming og Trolling",
|
||||
"commGuideList05C": "Brud på Prøvetid",
|
||||
"commGuideList05D": "At udgive sig for at være Ansat eller Moderator",
|
||||
"commGuideList05E": "Gentagne Moderate Overtrædelser",
|
||||
"commGuideList05C": "Brud på prøvetid",
|
||||
"commGuideList05D": "At udgive sig for at være Ansat eller Moderator - dette inkluderer at påstå, at brugerskabte platforme, der ikke at associerede med Habitica, er officielle og/eller modereret af Habitica eller deres mods/medarbejdere",
|
||||
"commGuideList05E": "Gentagne moderate overtrædelser",
|
||||
"commGuideList05F": "Oprettelse af en ekstra konto for at undgå konsekvenser (for eksempel at oprette en ny konto til at chatte med, efter at have fået frataget ens chat-privilegier)",
|
||||
"commGuideList05G": "Bevidst bedrag af Ansatte eller Moderatorer med det formål at undgå konsekvenser eller bringe en anden bruger i vanskeligheder",
|
||||
"commGuideHeadingModerateInfractions": "Moderate Overtrædelser",
|
||||
"commGuideHeadingModerateInfractions": "Moderate overtrædelser",
|
||||
"commGuidePara054": "Moderate overtrædelser gør ikke fællesskabet usikkert, men de gør det ubehageligt. Disse overtrædelser har moderate konsekvenser. Når de står sammen med andre overtrædelser, kan konsekvenserne blive større.",
|
||||
"commGuidePara055": "De følgende er eksempler på Moderate Overtrædelser. Listen er ikke endelig.",
|
||||
"commGuidePara055": "De følgende er eksempler på moderate overtrædelser. Listen er ikke fyldestgørende.",
|
||||
"commGuideList06A": "At ignorere, opføre respektløst overfor, eller skændes med en Moderator. Dette inkluderer offentlige at klage over moderatorer eller andre brugere, offentligt at forherlige eller forsvare bortviste brugere, eller at debatterer hvorvidt en moderators handlinger var passende. Hvis du er bekymret om en af reglerne eller en Moderators opførsel, så kontakt venligst de ansatte via email (<a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>).",
|
||||
"commGuideList06B": "Backseat Modding. For at tydeliggøre en relevant pointe: En venlig påmindelse om reglerne er helt fint. Backseat modding består i at fortælle, kræve, og/eller stærkt antyde at nogen bør gøre som du siger for at rette op på en fejl. Du kan gøre nogen opmærksom på at de har begået en overtrædelse, men forlang venligst ikke at de skal gøre noget - for eksempel er det bedre at sige \"Bare så du ved det er det ikke så godt at bande i Værtshuset, så det kan være du skulle slette det\" end \"Jeg er nødt til at bede dig slette det indlæg.\"",
|
||||
"commGuideList06C": "At rapportere uskyldige indlæg med vilje.",
|
||||
"commGuideList06D": "Gentagne gange at bryde Retningslinjerne for offentlige rum",
|
||||
"commGuideList06E": "Gentagne gange at begå mindre overtrædelser",
|
||||
"commGuideHeadingMinorInfractions": "Mindre Overtrædelser",
|
||||
"commGuideHeadingMinorInfractions": "Mindre overtrædelser",
|
||||
"commGuidePara056": "Mindre overtrædelser har kun mindre konsekvenser, men er stadig ikke anbefalede. Hvis de sker gentagne gange kan det føre til større konsekvenser.",
|
||||
"commGuidePara057": "De følgende er eksempler på Mindre Overtrædelser. Listen er ikke fyldestgørende.",
|
||||
"commGuidePara057": "De følgende er eksempler på mindre overtrædelser. Listen er ikke fyldestgørende.",
|
||||
"commGuideList07A": "Førstegangsbrud på Retningslinjer for Offentlige Steder",
|
||||
"commGuideList07B": "Alle udsagn eller handlinger, som udløser et \"Lad venligst være\". Når en Moderator er nødt til at sige \"Lad venligst være med det\" til en bruger, kan det tælle som en meget lille overtrædelse for den bruger. Et eksempel kunne være \"Lad venligst være med at blive ved med at argumentere for indførslen af den funktion, når vi har sgat til dig adskillige gange at det ikke kan lade sig gøre.\" I mange tilfælde vil 'Lad venligst være' blot være konsekvensen af overtrædelsen, men hvis Moderatorerne er nødt til at bede den samme bruger flere gange om at holde op, vil de Mindre Overtrædelser begynde at tælle som Moderate Overtrædelser.",
|
||||
"commGuideList07B": "Alle udsagn eller handlinger, som udløser et \"lad venligst være\" fra en moderator. Når du offentligt bliver bedt om at stoppe en handling, kan dette i sig selv tælle som en mindre overtrædelse. Hvis mods er nødt til gentagne gange at irettesætte den samme person, kan det komme til at tælle som en grovere overtrædelse",
|
||||
"commGuidePara057A": "Nogle indlæg kan blive skjult fordi de indeholder følsom information eller kan give folk det forkerte indtryk. Typisk gælder dette ikke som en overtrædelser, især ikke den første gang det sker!",
|
||||
"commGuideHeadingConsequences": "Konsekvenser",
|
||||
"commGuidePara058": "I Habitica - som i virkeligheden - har alle handlinger også konsekvenser, hvad enten det er at komme i bedre form fordi du har løbet, få huller i tænderne fordi du har spist for meget sukker, eller bestå et fag fordi du har studeret.",
|
||||
@@ -71,53 +71,63 @@
|
||||
"commGuideList08B": "hvad konsekvensen er",
|
||||
"commGuideList08C": "hvad der skal til for at rette fejlen og genoprette din status, hvis muligt.",
|
||||
"commGuidePara060A": "Hvis situationen påkræver det kan du også modtage en PM eller email plus et indlæg i det forum, hvor overtrædelsen blev begået. I nogle tilfælde bliver du slet ikke irettesat offentligt.",
|
||||
"commGuidePara060B": "Hvis din konto bortvises (en alvorlig konsekvens), vil du ikke være i stand til at logge på Habitica, og vil få en fejl-besked når du prøver. <strong>Hvis du ønsker at undskylde eller argumentere for genoprettelse af din konto, så skriv venligst en email til de ansatte på <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> med dit UUID (unikke bruger-ID)</strong> (som vil blive oplyst i fejl-beskeden). Det er <strong>dit</strong> ansvar at tage kontakt, hvis du ønsker en genovervejelse af situationen, eller genoprettelse.",
|
||||
"commGuideHeadingSevereConsequences": "Eksempler på Større Konsekvenser",
|
||||
"commGuidePara060B": "Hvis din konto bortvises (en alvorlig konsekvens), vil du ikke være i stand til at logge på Habitica, og vil få en fejl-besked når du prøver. <strong>Hvis du ønsker at undskylde eller argumentere for genoprettelse af din konto, så skriv venligst en email til de ansatte på <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> med dit bruger-ID</strong> (som vil blive oplyst i fejlbeskeden) eller @brugernavn. Det er <strong>dit</strong> ansvar at tage kontakt, hvis du ønsker en genovervejelse af situationen, eller genoprettelse.",
|
||||
"commGuideHeadingSevereConsequences": "Eksempler på større konsekvenser",
|
||||
"commGuideList09A": "Kontoudelukkelser (se ovenstående)",
|
||||
"commGuideList09C": "Permanent deaktivering (\"indefrysning\") af fremskridt i Bidragsyder-niveauer",
|
||||
"commGuideHeadingModerateConsequences": "Eksempler på Moderate Konsekvenser",
|
||||
"commGuideHeadingModerateConsequences": "Eksempler på moderate konsekvenser",
|
||||
"commGuideList10A": "Begrænsede offentlige og/eller private chatprivilegier",
|
||||
"commGuideList10A1": "Hvis dine handlinger resulterer i fradragelse af dine rettigheder til chatten, vil en Moderator eller Ansat sende dig en privatbesked og/eller et indlæg i det forum du blev suspenderet fra for at fortælle dig grunden til og længden af din suspendering. Efter denne periode vil du få dine chatrettigheder tilbage, forudsat at du er villig til at ændre ved den opførsel du blev suspenderet for og overholde Fællesskabets Retningslinjer.",
|
||||
"commGuideList10A1": "Hvis dine handlinger resulterer i fradragelse af dine rettigheder til chatten, vil en Moderator eller Ansat sende dig en privatbesked og/eller et indlæg i det forum du blev suspenderet fra for at fortælle dig grunden til og længden af din suspendering, og/eller hvad du skal gøre for at få dine chatprivilegier tilbage. Du vil få dem igen, hvis du høfligt følger de anvisninger du får, og erklærer dig villig til at følge vores Retningslinjer for Fællesskabet og Betingelser & Vilkår",
|
||||
"commGuideList10C": "Begrænsede Klan/Udfordringsoprettelsesprivilegier",
|
||||
"commGuideList10D": "Midlertidig deaktivering (\"indefrysning\") af fremskridt i Bidragsyder-niveauer",
|
||||
"commGuideList10E": "Degradering af Bidragsyder-niveauer",
|
||||
"commGuideList10F": "Sætte brugere på \"Prøvetid\"",
|
||||
"commGuideHeadingMinorConsequences": "Eksempler på Mindre Konsekvenser",
|
||||
"commGuideList10F": "At sætte brugere på \"prøvetid\"",
|
||||
"commGuideHeadingMinorConsequences": "Eksempler på mindre konsekvenser",
|
||||
"commGuideList11A": "Påmindelser om Retningslinjer for Offentlige Steder",
|
||||
"commGuideList11B": "Advarsler",
|
||||
"commGuideList11C": "Anmodninger",
|
||||
"commGuideList11D": "Slettelser (Moderatorer/Ansatte kan slette problematisk indhold)",
|
||||
"commGuideList11E": "Rettelser (Moderatorer/Ansatte kan slette problematisk indhold)",
|
||||
"commGuideList11E": "Rettelser (Moderatorer/Ansatte kan redigere problematisk indhold)",
|
||||
"commGuideHeadingRestoration": "Genoprettelse",
|
||||
"commGuidePara061": "Habitica er en land dedikeret til forbedring, og vi tror på at give en chance til <strong>Hvis du begår en overtrædelse og bliver udsat for en konsekvens som følge, så se det som en mulighed for at evaluere dine handlinger og forbedre din opførsel som medlem af fællesskabet</strong>.",
|
||||
"commGuidePara062": "Den bekendtgørelse, besked og/eller email du modtager, der forklarer konsekvenserne af dine handlinger, er en god kilde til information. Hold dig til de begrænsninger der er blevet påført, og bestræb dig på at møde de krav, der kan få eventuelle straffe ophævet.",
|
||||
"commGuidePara063": "Hvis du ikke forstår konsekvenserne eller arten af din overtrædelse, så bed Medarbejderne/Moderatorerne om hjælp, så du kan undgå at begå overtrædelser i fremtiden. Hvis du føler at en bestemt beslutning var uretfærdig, kan du kontakte de ansatte for at diskutere det på <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideHeadingMeet": "Mød de Ansatte og Moderatorerne!",
|
||||
"commGuidePara006": "Habitica har nogle utrættelige omvandrende riddere, der kæmper sammen med de ansatta for at holde fællesskabet roligt, tilfreds, og frit for trolde. Hver har et specifikt domæne, men vil sommetider blive kaldt ind for at hjælpe i andre sociale sfærer.",
|
||||
"commGuidePara006": "Habitica har nogle utrættelige omvandrende riddere, der kæmper sammen med de ansatte for at holde fællesskabet roligt, tilfreds, og frit for trolde. Hver har et specifikt domæne, men vil sommetider blive kaldt ind for at hjælpe i andre sociale sfærer.",
|
||||
"commGuidePara007": "Ansatte har lilla tags markeret med kroner. Deres titel er \"Heltemodig\".",
|
||||
"commGuidePara008": "Moderatorer har mørkeblå tags markeret med stjerner. Deres titel er \"Beskytter\". Den eneste undtagelse er Bailey, der som NPC har et sort og grønt tag markeret med en stjerne.",
|
||||
"commGuidePara009": "De nuværende Ansatte er (fra venstre mod højre):",
|
||||
"commGuideAKA": "<%= habitName %> aka <%= realName %>",
|
||||
"commGuidePara008": "Moderatorer har mørkeblå tags markeret med stjerner. Deres titel er \"Beskytter\".",
|
||||
"commGuidePara009": "De nuværende ansatte er (fra venstre mod højre):",
|
||||
"commGuideAKA": "<%= habitName %>, aka <%= realName %>",
|
||||
"commGuideOnTrello": "<%= trelloName %> på Trello",
|
||||
"commGuideOnGitHub": "<%= gitHubName %> på GitHub",
|
||||
"commGuidePara010": "Der er også flere Moderatorer, der hjælper de ansatte. Disse er omhyggeligt udvalgt, så vis dem respekt og lyt til deres forslag.",
|
||||
"commGuidePara011": "De nuværende Moderatorer er (fra venstre mod højre):",
|
||||
"commGuidePara011b": "På GitHub/Wikia",
|
||||
"commGuidePara011c": "på Wikia",
|
||||
"commGuidePara011": "De nuværende moderatorer er (fra venstre mod højre):",
|
||||
"commGuidePara011b": "på GitHub/Fandom",
|
||||
"commGuidePara011c": "på wiki'en",
|
||||
"commGuidePara011d": "på GitHub",
|
||||
"commGuidePara012": "Hvis du har et problem eller bekymring, der drejer sig om en bestemt Moderator, så send venligst en email til vores Medarbejdere (<a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>).",
|
||||
"commGuidePara013": "Brugere kommer og går i et fællesskab så stort som Habitica. Sommetider bliver en medarbejder eller moderator nødt til at fralægge sig deres ædle kappe, og slappe lidt af. De følgende er Ansatte og Moderatorer Emeritus. De løfter ikke længere et ansvar som Ansat eller Moderator, men vi vil stadig gerne mindes deres indsats!",
|
||||
"commGuidePara014": "Ansatte og Moderatorer Emeritus:",
|
||||
"commGuideHeadingFinal": "Den Sidste Sektion",
|
||||
"commGuidePara067": "Det var så det, modige Habiticaner - Retningslinjerne for fællesskabet! Tør sveden af panden og giv dig selv nogle Erfaringpoint for at læse det hele. Hvis du har nogle spørgsmål om disse Retningslinjer for fællesskabet, så tag venligst fat i os via <a href='https://contact.habitica.com/' target='_blank'>Moderatorkontaktformularen</a>, og vi vil med glæde forsøge at gøre tingene klart for dig.",
|
||||
"commGuidePara068": "Tag afsted, modige eventyrer, og bekæmp nogle Daglige!",
|
||||
"commGuidePara014": "Ansatte og Moderatorer emeritus:",
|
||||
"commGuideHeadingFinal": "Den sidste sektion",
|
||||
"commGuidePara067": "Det var så det, modige Habiticaner - Retningslinjerne for fællesskabet! Tør sveden af panden og giv dig selv nogle Erfaringpoint for at læse det hele. Hvis du har nogle spørgsmål om disse Retningslinjer for fællesskabet, så tag venligst fat i os via <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>, og vi vil med glæde forsøge at gøre tingene klart for dig.",
|
||||
"commGuidePara068": "Tag afsted, modige eventyrer, og nedkæmp nogle Daglige!",
|
||||
"commGuideHeadingLinks": "Nyttige links",
|
||||
"commGuideLink01": "<a href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank'>Habitica Help: Ask a Question</a>: en Klan hvor brugere kan stille spørgsmål!",
|
||||
"commGuideLink02": "<a href='http://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>Wiki'en</a>: den største samling af information om Habitica.",
|
||||
"commGuideLink03": "<a href='https://github.com/HabitRPG/habitica' target='_blank'>GitHub</a>: til bug-rapporter eller hjælp med kodning!",
|
||||
"commGuideLink02": "<a href='https://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>Wiki'en</a>: den største samling af information om Habitica.",
|
||||
"commGuideLink03": "<a href='https://github.com/HabitRPG/habitica' target='_blank'>GitHub</a>: for at hjælpe med kodning!",
|
||||
"commGuideLink04": "<a href='https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link' target='_blank'>Feedbackformularen</a>: til forslag til hjemmesiden og app'en.",
|
||||
"commGuideLink05": "<a href='https://trello.com/b/mXK3Eavg/' target='_blank'>Den mobile Trello</a>: til at bede om funktioner til vores apps.",
|
||||
"commGuideLink06": "<a href='https://trello.com/b/vwuE9fbO/' target='_blank'>Kunst-Trello</a>: til at indsende pixel art.",
|
||||
"commGuideLink07": "<a href='https://trello.com/b/nnv4QIRX/' target='_blank'>Quest-Trello</a>: til at indsende tekst til quests.",
|
||||
"commGuidePara069": "Følgende talentfulde kunstnere har bidraget med disse illustrationer:"
|
||||
"commGuidePara069": "Følgende talentfulde kunstnere har bidraget med disse illustrationer:",
|
||||
"commGuidePara017": "Her er den hurtige version, men vi opfordrer dig til at læse den mere detaljerede udgave nedenunder:",
|
||||
"commGuideList01A": "Vores Betingelser & Vilkår gælder alle steder i Habitica, inklusiv private klaner, holdchatten og private beskeder.",
|
||||
"commGuideList02M": "Bed eller tig ikke andre om at give dig ædelsten, et abonnement eller medlemskab i gruppeplaner. Dette er ikke tilladt at gøre i hverken Værtshuset, offentlige eller private rum, eller i privatbeskeder. Hvis du får en besked med en anmodning om ting, der koster rigtige penge, så rapportér dem venligst. Gentaget eller groft tiggeri, især efter en advarsel er blevet udstedt, kan resulterer i en blokering af din konto.",
|
||||
"commGuideList01B": "Forbudt: Al kommunikation der er voldeligt, truende, opfordrer til diskrimination osv., inklusiv memes, billeder og jokes.",
|
||||
"commGuideList01C": "Al samtale skal være passende for enhver aldersgruppe og ikke indeholde skælds- ellers bandeord.",
|
||||
"commGuideList01D": "Følg venligst moderatorernes anvisninger.",
|
||||
"commGuideList01E": "Start og deltag ikke i diskussioner i Værtshuset, der kan føre til skænderier.",
|
||||
"commGuideList01F": "Bed ikke andre om at give dig ting der koster rigtige penge, spam ikke, og skriv ikke beskeder i all caps eller stor overskriftstekst.",
|
||||
"commGuideList05H": "Grove eller gentagne forsøg på at bedrage eller presse andre spillere til at give dig genstande/services, der koster rigtige penge",
|
||||
"commGuideList09D": "Fjernelse af Bidragsyder-niveauer"
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
"hatchingPotionEmber": "Glødende",
|
||||
"hatchingPotionThunderstorm": "Tordenvejr",
|
||||
"hatchingPotionGhost": "Spøgelse",
|
||||
"hatchingPotionRoyalPurple": "Royal lilla",
|
||||
"hatchingPotionRoyalPurple": "Purpur",
|
||||
"hatchingPotionHolly": "Kristtorn",
|
||||
"hatchingPotionCupid": "Amor",
|
||||
"hatchingPotionShimmer": "Glimmer",
|
||||
|
||||
@@ -49,9 +49,10 @@
|
||||
"balance": "Balance",
|
||||
"playerTiers": "Spillertrin",
|
||||
"tier": "Trin",
|
||||
"conRewardsURL": "http://habitica.fandom.com/wiki/Contributor_Rewards",
|
||||
"conRewardsURL": "https://habitica.fandom.com/wiki/Contributor_Rewards",
|
||||
"surveysSingle": "Hjalp Habitica med at vokse ved at udfylde et spørgeskema eller var en stor hjælp ved test. Tusind tak!",
|
||||
"surveysMultiple": "Hjalp Habitica med at vokse ved <%= count %> lejligheder, enten ved at udfylde et spørgeskema eller hjalp med et større test-arbejde. Tusind tak!",
|
||||
"blurbHallPatrons": "Dette er Protektorernes Sal, hvor vi ærer de ædle eventyrere, der støttede Habiticas originale Kickstarter. Vi takker dem for at hjælpe os med at vække Habitica til live!",
|
||||
"blurbHallContributors": "Dette er Bidragsydernes Sal, hvor dem, der har bidraget med open-source materiale til Habitica, bliver æret. Om det er gennem kode, grafik, musik, tekst eller bare generel hjælpsomhed, har de modtaget <a href='http://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'> ædelsten, eksklusivt udstyr</a>, og <a href='http://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>prestigefyldte titler</a>. Du kan også bidrage til Habitica! <a href='http://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Find ud af mere her. </a>"
|
||||
"blurbHallContributors": "Dette er Bidragsydernes Sal, hvor dem, der har bidraget med open-source materiale til Habitica, bliver æret. Om det er gennem kode, grafik, musik, tekst eller bare generel hjælpsomhed, har de modtaget <a href='https://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'> ædelsten, eksklusivt udstyr</a>, og <a href='https://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>prestigefyldte titler</a>. Du kan også bidrage til Habitica! <a href='https://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Find ud af mere her. </a>",
|
||||
"noPrivAccess": "Du har ikke de påkrævede rettigheder."
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"dontDespair": "Bare rolig!",
|
||||
"deathPenaltyDetails": "Du mistede et Niveau, dit Guld og et stykke Udstyr, men du kan få det hele igen med hårdt arbejde! Held og lykke - du skal nok klare den.",
|
||||
"refillHealthTryAgain": "Genfyld Liv og Prøv Igen",
|
||||
"dyingOftenTips": "Sker dette ofte? <a href='http://habitica.fandom.com/wiki/Death_Mechanics#Strategies_for_Staying_Alive' target='_blank'>Her er nogle fif!</a>",
|
||||
"dyingOftenTips": "Sker dette ofte? <a href='https://habitica.fandom.com/wiki/Death_Mechanics#Strategies_for_Staying_Alive' target='_blank'>Her er nogle fif!</a>",
|
||||
"losingHealthWarning": "Pas på - du mister Liv!",
|
||||
"losingHealthWarning2": "Lad ikke dit Liv falde til nul! Hvis du gør det vil du tabe et niveau, alt dit guld og et stykke udstyr.",
|
||||
"toRegainHealth": "For at genopfylde Liv:",
|
||||
@@ -14,4 +14,4 @@
|
||||
"lowHealthTips4": "Hvis en Daglig ikke er forfalden på en given dag, kan du deaktivere den ved at klikke på blyanten.",
|
||||
"goodLuck": "Held og lykke!",
|
||||
"cannotRevive": "Du kan ikke genoplive hvis du ikke er død"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
"defaultHabit2Text": "Spis junk food (Klik på blyanten for at redigere)",
|
||||
"defaultHabit3Text": "Tag trapperne/elevatoren (Klik på blyanten for at redigere)",
|
||||
"defaultHabit4Text": "Tilføj en opgave til Habitica",
|
||||
"defaultHabit4Notes": "Enten en Vane, en Daglig eller en To-Do",
|
||||
"defaultHabit4Notes": "Enten en Vane, en Daglig eller en To Do",
|
||||
"defaultTodo1Text": "Begynd at bruge Habitica (Markér mig som færdig!)",
|
||||
"defaultTodoNotes": "Du kan enten færdiggøre denne To-Do, ændre den, eller fjerne den.",
|
||||
"defaultTodoNotes": "Du kan enten færdiggøre denne To Do, ændre den eller fjerne den.",
|
||||
"defaultReward1Text": "15 minutters pause",
|
||||
"defaultReward2Text": "Beløn dig selv",
|
||||
"defaultReward2Notes": "Se fjernsyn, spil et spil, spis noget guf, det er op til dig!",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"accept2Terms": "og",
|
||||
"chores": "Pligter",
|
||||
"clearBrowserData": "Ryd browserdata",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Tilføjelser og udvidelser</a>",
|
||||
"communityExtensions": "Tilføjelser og udvidelser",
|
||||
"communityFacebook": "Facebook",
|
||||
"companyAbout": "Hvordan det virker",
|
||||
"companyBlog": "Blog",
|
||||
@@ -13,7 +13,7 @@
|
||||
"companyDonate": "Donér",
|
||||
"forgotPassword": "Glemt kodeord?",
|
||||
"emailNewPass": "E-mail et nulstillings-link til kodeord",
|
||||
"forgotPasswordSteps": "Skriv den e-mail adresse du benyttede til at registrere din Habitica-konto.",
|
||||
"forgotPasswordSteps": "Skriv dit @brugernavn eller den e-mail adresse, du benyttede til at registrere din Habitica-konto.",
|
||||
"sendLink": "Send link",
|
||||
"featuredIn": "Omtalt i",
|
||||
"footerDevs": "Udviklere",
|
||||
@@ -44,7 +44,7 @@
|
||||
"marketing3Header": "Apps og Udvidelser",
|
||||
"marketing3Lead1": "**iPhone & Android** apps lader dig klare dine ting på farten. Vi ved, at det nogen gange er for meget at skulle logge ind på websiden for at klikke på knapper.",
|
||||
"marketing3Lead2Title": "Integrationer",
|
||||
"marketing3Lead2": "Andre **tredjepartsværktøjer** kan binde Habitica sammen med andre dele af dit liv. Vores API muliggør integrationer som [Chrome Extension](https://chrome.google.com/webstore/detail/habitica/pidkmpibnnnhneohdgjclfdjpijggmjj?hl=en-US), med hvilken du mister point ved at bruge unyttige hjemmesider, og optjener point når du browser de nyttige i stedet. [Se mere her](http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations).",
|
||||
"marketing3Lead2": "Andre **tredjepartsværktøjer** kan binde Habitica sammen med andre dele af dit liv. Vores API muliggør integrationer som [Chrome Extension](https://chrome.google.com/webstore/detail/habitica/pidkmpibnnnhneohdgjclfdjpijggmjj?hl=en-US), med hvilken du mister point ved at bruge unyttige hjemmesider, og optjener point når du browser de nyttige i stedet. [Se mere her](https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations).",
|
||||
"marketing4Header": "Organisatorisk brug",
|
||||
"marketing4Lead1": "Uddannelse er en af de bedste områder at bruge spilelementer. Vi ved alle, hvordan studerende nærmest er limet til deres telefon disse dage, så brug dette! Sæt dine elever til at kæmpe mod hinanden som hyggelig konkurrence. Beløn god opførsel med sjældne præmier. Se deres karakterer og opførsel blive forbedret.",
|
||||
"marketing4Lead1Title": "Brug af Spilelementer i Undervisning",
|
||||
@@ -184,5 +184,6 @@
|
||||
"mobileApps": "Mobile apps",
|
||||
"learnMore": "Lær mere",
|
||||
"communityInstagram": "Instagram",
|
||||
"minPasswordLength": "Kodeord skal bestå af 8 eller flere tegn."
|
||||
"minPasswordLength": "Kodeord skal bestå af 8 eller flere tegn.",
|
||||
"enterHabitica": "Spil Habitica"
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"sortByStr": "STY",
|
||||
"sortByInt": "INT",
|
||||
"weapon": "våben",
|
||||
"weaponCapitalized": "Main-Hand Item",
|
||||
"weaponCapitalized": "Primær hånd",
|
||||
"weaponBase0Text": "Intet våben",
|
||||
"weaponBase0Notes": "Intet våben.",
|
||||
"weaponWarrior0Text": "Træningssværd",
|
||||
@@ -892,7 +892,7 @@
|
||||
"headSpecialDandyHatNotes": "Sikke en herlig hat! Den vil klæde dig så nydeligt på en gåtur. Forøger Konstitution med <%= con %>.",
|
||||
"headSpecialKabutoText": "Samuraihjelm",
|
||||
"headSpecialKabutoNotes": "Denne hjelm er funktionel og smuk! Dine fjender vil være helt distraherede af den. Forøger Intelligens med <%= int %>.",
|
||||
"headSpecialNamingDay2017Text": "Royal lilla grifhjelm",
|
||||
"headSpecialNamingDay2017Text": "Purpurfarvet grifhjelm",
|
||||
"headSpecialNamingDay2017Notes": "Glædelig Navngivningsdag! Ifør dig denne truende og fjerklædte hjelm for at fejre Habitica. Giver ingen bonusser.",
|
||||
"headSpecialTurkeyHelmBaseText": "Kalkunhjelm",
|
||||
"headSpecialTurkeyHelmBaseNotes": "Dit Thanksgiving-look vil være fuldendt med denne næbbede hjelm! Giver ingen bonusser.",
|
||||
@@ -1599,7 +1599,7 @@
|
||||
"bodySpecialSummer2015MageNotes": "Dette spænde giver ingen krafter overhovedet, men det er pænt. Giver ingen bonusser. Specielt 2015 Sommerudstyr.",
|
||||
"bodySpecialSummer2015HealerText": "Matrostørklæde",
|
||||
"bodySpecialSummer2015HealerNotes": "Hiv Ohøj? Nej nej nej! Giver ingen bonusser. Specielt 2015 Sommerudstyr.",
|
||||
"bodySpecialNamingDay2018Text": "Royal Purple Gryphon Cloak",
|
||||
"bodySpecialNamingDay2018Text": "Purpurfarvet grif-kappe",
|
||||
"bodySpecialNamingDay2018Notes": "Happy Naming Day! Wear this fancy and feathery cloak as you celebrate Habitica. Confers no benefit.",
|
||||
"bodyMystery201705Text": "Folded Feathered Fighter Wings",
|
||||
"bodyMystery201705Notes": "These folded wings don't just look snazzy: they will give you the speed and agility of a gryphon! Confers no benefit. May 2017 Subscriber Item.",
|
||||
@@ -1873,5 +1873,6 @@
|
||||
"headSpecialNye2020Notes": "Du har modtaget en Ekstravagant Festhat! Bær den med stolthed imens du byder det nye år velkommen! Giver ingen fordele.",
|
||||
"headSpecialNye2020Text": "Ekstravagant Festhat",
|
||||
"weaponSpecialWinter2021MageNotes": "Dette mægtige våben er bestemt mere end en fase. Kanalisér din energi, fokusér på en måneds flow, og studér tid og rum. Øger Intelligens med <%= int %> og Opfattelse med <%= per %>. Begrænset 2020-2021 Vinterudstyr.",
|
||||
"weaponSpecialWinter2021MageText": "Magisk Måne-faser"
|
||||
"weaponSpecialWinter2021MageText": "Magisk Måne-faser",
|
||||
"backSpecialNamingDay2020Text": "Purpurfarvet grifhale"
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"contributing": "Sådan bidrager du",
|
||||
"faq": "FAQ",
|
||||
"tutorial": "Vejledning",
|
||||
"glossary": "<a target='_blank' href='http://habitica.fandom.com/wiki/Glossary'>Ordliste (EN)</a>",
|
||||
"glossary": "<a target='_blank' href='https://habitica.fandom.com/wiki/Glossary'>Ordliste (EN)</a>",
|
||||
"wiki": "Wiki",
|
||||
"requestAF": "Anmod om en funktion",
|
||||
"dataTool": "Datavisningsværktøj",
|
||||
@@ -324,7 +324,7 @@
|
||||
"gettingStarted": "Kom i gang",
|
||||
"congratsOnGroupPlan": "Tillykke med oprettelsen af din nye Gruppe! Her er nogle svar på flere af de mest almindelige spørgsmål.",
|
||||
"whatsIncludedGroup": "Hvad er inkluderet i abonnementet",
|
||||
"whatsIncludedGroupDesc": "Alle medlemmer af Gruppen får alle fordele ved et abonnement, inklusiv de månedlige abonnentgenstande, evnen til at købe Ædelsten for Guld, og det Royale Lilla Jackalope-ridedyr, som er en eksklusiv belønning for medlemmer af en Gruppeplan.",
|
||||
"whatsIncludedGroupDesc": "Alle medlemmer af Gruppen får alle fordele ved et abonnement, inklusiv de månedlige abonnentgenstande, evnen til at købe Ædelsten for Guld, og det purpur Jackalope-ridedyr, som er en eksklusiv belønning for medlemmer af en Gruppeplan.",
|
||||
"howDoesBillingWork": "Hvordan fungerer betalingen?",
|
||||
"howDoesBillingWorkDesc": "Gruppeledere faktureres baseret på antallet af gruppemedlemmer på en månedlig basis. Regningen omfatter prisen for Gruppelederens abonnement ($9 USD) plus $3 USD for hvert ekstra gruppemedlem. Fx: En gruppe af fire brugere vil koste $18 USD om måneden, da gruppen består af 1 Gruppeleder + 3 gruppemedlemmer.",
|
||||
"howToAssignTask": "Hvordan tildeler du en Opgave?",
|
||||
@@ -339,5 +339,6 @@
|
||||
"recurringCompletion": "Ingen - Gruppeopgave kan ikke udføres",
|
||||
"singleCompletion": "Single - Completes when any assigned user finishes",
|
||||
"allAssignedCompletion": "All - Completes when all assigned users finish",
|
||||
"pmReported": "Tak, fordi du rapporterede denne besked."
|
||||
"pmReported": "Tak, fordi du rapporterede denne besked.",
|
||||
"features": "Funktioner"
|
||||
}
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
|
||||
"seasonalShopTitle": "<%= linkStart %>Sæson-heksen<%= linkEnd %>",
|
||||
"seasonalShopClosedText": "Sæson-markedet er lukket lige nu!! Det er kun åbent under Habiticas fire Grandiøse Gallaer.",
|
||||
"seasonalShopSummerText": "Glædeligt Sommerplask!! Vil du købe nogle sjældne genstande? De vil kun være tilgængelige indtil 31. juli!",
|
||||
"seasonalShopFallText": "Glædelig Efterårsfestival!! Vil du købe nogle sjældne genstande? De vil kun være tilgængelige indtil 31. oktober!",
|
||||
"seasonalShopWinterText": "Velkommen til Vintereventyret!! Vil du købe nogle sjældne genstande? De vil kun være tilgængelige indtil 31. januar!",
|
||||
"seasonalShopSpringText": "Glædelig Forårsfest!! Vil du købe nogle sjældne genstande? De vil kun være tilgængelige indtil 30. april!",
|
||||
"seasonalShopSummerText": "Glædeligt Sommerplask!! Vil du købe nogle sjældne genstande? Sørg for at købe dem før Gallaen slutter!",
|
||||
"seasonalShopFallText": "Glædelig Efterårsfestival!! Vil du købe nogle sjældne genstande? Sørg for at købe dem før Gallaen slutter!",
|
||||
"seasonalShopWinterText": "Velkommen til Vintereventyret!! Vil du købe nogle sjældne genstande? Sørg for at købe dem før Gallaen slutter!",
|
||||
"seasonalShopSpringText": "Glædelig Forårsfest!! Vil du købe nogle sjældne genstande? Sørg for at købe dem før Gallaen slutter!",
|
||||
"seasonalShopFallTextBroken": "Åh.... Velkommen til Sæson-markedet... Vi har efterårs-sæson varer, eller noget... Alting her kan købes under Efterårsfestival-eventet hvert år, men vi har kun åbent indtil den 31. oktober... Du burde nok købe ind nu, ellers vil du skulle vente... og vente... og vente... <strong>*suk*</strong>",
|
||||
"seasonalShopBrokenText": "Min pavillon!!!!!!! Mine dekorationer!!!! Åh, den Dysheartener har ødelagt det hele :( Hjælp med at bekæmpe den i Værtshuset, så jeg kan genopbygge!",
|
||||
"seasonalShopRebirth": "Hvis du har købt noget af detteudstyr før, men ikke ejer det i øjeblikket, kan du genkøbe det i Belønningskolonnen. I starten vil du kun kunne købe de ting der passer til din nuværende klasse (Kriger som standard), men frygt ej, de andre klasse-specifikke varer bliver tilgængelige hvis du skifter til den klasse.",
|
||||
@@ -45,7 +45,7 @@
|
||||
"snowDaySet": "Snedagskriger (Kriger)",
|
||||
"snowboardingSet": "Snowboardende Sortkunstner (Magiker)",
|
||||
"festiveFairySet": "Festlig Fe (Helbreder)",
|
||||
"cocoaSet": "Kakao Slyngel (Slyngel)",
|
||||
"cocoaSet": "Kakao (Slyngel)",
|
||||
"toAndFromCard": "Til: <%= toName %>, Fra: <%= fromName %>",
|
||||
"nyeCard": "Nytårskort",
|
||||
"nyeCardExplanation": "Da I har fejret nytår sammen, modtager I begge \"Gammel Kending\"-emblemet!",
|
||||
@@ -56,7 +56,7 @@
|
||||
"nye0": "Godt Nytår! Må du overvinde mange dårlige Vaner.",
|
||||
"nye1": "Godt Nytår! Må du modtage mange Belønninger.",
|
||||
"nye2": "Godt Nytår! Må du udføre mange Perfekte Dage.",
|
||||
"nye3": "Godt Nytår! Må din To-Do-liste forblive kort og overskuelig.",
|
||||
"nye3": "Godt nytår! Må din To-Do-liste forblive kort og overskuelig.",
|
||||
"nye4": "Godt nytår! Må du undgå at blive angrebet af vrede Hippogriffer.",
|
||||
"mightyBunnySet": "Kraftfuld Kanin (Kriger)",
|
||||
"magicMouseSet": "Magisk Mus (Magiker)",
|
||||
@@ -74,11 +74,11 @@
|
||||
"magicianBunnySet": "Tryllekunstners Kanin (Magiker)",
|
||||
"comfortingKittySet": "Trøstende Kat (Helbreder)",
|
||||
"sneakySqueakerSet": "Pibende Sniger (Slyngel)",
|
||||
"sunfishWarriorSet": "Solfiskekriger (Kriger)",
|
||||
"sunfishWarriorSet": "Solfisk (Kriger)",
|
||||
"shipSoothsayerSet": "Skibs-sandsigerske (Magiker)",
|
||||
"strappingSailorSet": "Spændstig Sømand (Helbreder)",
|
||||
"reefRenegadeSet": "Røver på Revet (Slyngel)",
|
||||
"scarecrowWarriorSet": "Fægtende Fugleskræmsel (Kriger)",
|
||||
"scarecrowWarriorSet": "Fugleskræmsel (Kriger)",
|
||||
"stitchWitchSet": "Skrædderheks (Magiker)",
|
||||
"potionerSet": "Eleksirmager (Helbreder)",
|
||||
"battleRogueSet": "Flager-Fusker (Slyngel)",
|
||||
@@ -86,40 +86,40 @@
|
||||
"grandMalkinSet": "Mester-malkin (Magiker)",
|
||||
"cleverDogSet": "Kløgtig Hund (Slyngel)",
|
||||
"braveMouseSet": "Modig Mus (Kriger)",
|
||||
"summer2016SharkWarriorSet": "Hajkriger (Kriger)",
|
||||
"summer2016DolphinMageSet": "Delfinmagiker (Magiker)",
|
||||
"summer2016SeahorseHealerSet": "Søhesthelbreder (Helbreder)",
|
||||
"summer2016EelSet": "Åleslyngel (Slyngel)",
|
||||
"summer2016SharkWarriorSet": "Haj (Kriger)",
|
||||
"summer2016DolphinMageSet": "Delfin (Magiker)",
|
||||
"summer2016SeahorseHealerSet": "Søhest (Helbreder)",
|
||||
"summer2016EelSet": "Ål (Slyngel)",
|
||||
"fall2016SwampThingSet": "Sump-ting (Kriger)",
|
||||
"fall2016WickedSorcererSet": "Skummel Sortkunstner (Magiker)",
|
||||
"fall2016GorgonHealerSet": "Gorgon-helbreder (Helbreder)",
|
||||
"fall2016BlackWidowSet": "Sort Enke-slyngel (Slyngel)",
|
||||
"fall2016GorgonHealerSet": "Gorgon (Helbreder)",
|
||||
"fall2016BlackWidowSet": "Sort enke (Slyngel)",
|
||||
"winter2017IceHockeySet": "Ishockey (Kriger)",
|
||||
"winter2017WinterWolfSet": "Vinterulv (Magiker)",
|
||||
"winter2017SugarPlumSet": "Sukkerblomme-helbreder (Helbreder)",
|
||||
"winter2017FrostyRogueSet": "Sukkerslyngel (Slyngel)",
|
||||
"spring2017FelineWarriorSet": "Kattekriger (Kriger)",
|
||||
"winter2017SugarPlumSet": "Sukkerblomme (Helbreder)",
|
||||
"winter2017FrostyRogueSet": "Frost (Slyngel)",
|
||||
"spring2017FelineWarriorSet": "Kattedyr (Kriger)",
|
||||
"spring2017CanineConjurorSet": "Hundehekser (Magiker)",
|
||||
"spring2017FloralMouseSet": "Blomstermus (Helbreder)",
|
||||
"spring2017SneakyBunnySet": "Krybende Kanin (Slyngel)",
|
||||
"summer2017SandcastleWarriorSet": "Sandslotskriger (Kriger)",
|
||||
"summer2017WhirlpoolMageSet": "Malstrømsmagiker (Magiker)",
|
||||
"summer2017SandcastleWarriorSet": "Sandslot (Kriger)",
|
||||
"summer2017WhirlpoolMageSet": "Malstrøm(Magiker)",
|
||||
"summer2017SeashellSeahealerSet": "Havmuslingehelbreder (Helbreder)",
|
||||
"summer2017SeaDragonSet": "Sødrage (Slyngel)",
|
||||
"fall2017HabitoweenSet": "Habitoweenkriger (Kriger)",
|
||||
"fall2017MasqueradeSet": "Maskerademagiker (Magiker)",
|
||||
"fall2017HauntedHouseSet": "Spøgelseshuslæge (Helbreder)",
|
||||
"fall2017TrickOrTreatSet": "Ballademagerbandit (Slyngel)",
|
||||
"winter2018ConfettiSet": "Konfettimagiker (Magiker)",
|
||||
"winter2018GiftWrappedSet": "Indpakket Kriger (Kriger)",
|
||||
"winter2018MistletoeSet": "Misteltenshelbreder (Helbreder)",
|
||||
"winter2018ReindeerSet": "Rendsdyrslyngel (Slyngel)",
|
||||
"spring2018SunriseWarriorSet": "Solopgangskriger (Kriger)",
|
||||
"spring2018TulipMageSet": "Tulipanmagiker (Magiker)",
|
||||
"spring2018GarnetHealerSet": "Granatrød Helbreder (Helbreder)",
|
||||
"spring2018DucklingRogueSet": "Ællingeslyngel (Slyngel)",
|
||||
"summer2018BettaFishWarriorSet": "Kampfiskkriger (Kriger)",
|
||||
"summer2018LionfishMageSet": "Dragefiskmagiker (Magiker)",
|
||||
"fall2017HabitoweenSet": "Habitoween (Kriger)",
|
||||
"fall2017MasqueradeSet": "Maskerade(Magiker)",
|
||||
"fall2017HauntedHouseSet": "Spøgelseshus (Helbreder)",
|
||||
"fall2017TrickOrTreatSet": "Ballademager (Slyngel)",
|
||||
"winter2018ConfettiSet": "Konfetti (Magiker)",
|
||||
"winter2018GiftWrappedSet": "Gavepapir (Kriger)",
|
||||
"winter2018MistletoeSet": "Mistelten (Helbreder)",
|
||||
"winter2018ReindeerSet": "Rensdyr (Slyngel)",
|
||||
"spring2018SunriseWarriorSet": "Solopgang (Kriger)",
|
||||
"spring2018TulipMageSet": "Tulipan (Magiker)",
|
||||
"spring2018GarnetHealerSet": "Granatrød (Helbreder)",
|
||||
"spring2018DucklingRogueSet": "Ælling (Slyngel)",
|
||||
"summer2018BettaFishWarriorSet": "Kampfisk (Kriger)",
|
||||
"summer2018LionfishMageSet": "Dragefisk (Magiker)",
|
||||
"summer2018MerfolkMonarchSet": "Havfruehertug(inde) (Helbreder)",
|
||||
"summer2018FisherRogueSet": "Fiskerslyngel (Slyngel)",
|
||||
"fall2018MinotaurWarriorSet": "Minotaur (Kriger)",
|
||||
@@ -131,21 +131,98 @@
|
||||
"winter2019WinterStarSet": "Vinterstjerne (Helbreder)",
|
||||
"winter2019PoinsettiaSet": "Julestjerne (Slyngel)",
|
||||
"eventAvailability": "Tilgændelig til køb indtil <%= date(locale) %>.",
|
||||
"dateEndMarch": "April 30",
|
||||
"dateEndApril": "19. april",
|
||||
"dateEndMay": "May 31",
|
||||
"dateEndJune": "Juni 14",
|
||||
"dateEndJuly": "July 31",
|
||||
"dateEndAugust": "August 31",
|
||||
"dateEndSeptember": "September 21",
|
||||
"dateEndOctober": "October 31",
|
||||
"dateEndNovember": "December 3",
|
||||
"dateEndJanuary": "January 31",
|
||||
"dateEndFebruary": "February 28",
|
||||
"winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!",
|
||||
"winterPromoGiftDetails1": "Til og med 15. januar vil du få det samme abonnement med til dig selv, når du køber et abonnement til nogen i gave!",
|
||||
"dateEndMarch": "31. marts",
|
||||
"dateEndApril": "30. april",
|
||||
"dateEndMay": "31. maj",
|
||||
"dateEndJune": "30. juni",
|
||||
"dateEndJuly": "31. juli",
|
||||
"dateEndAugust": "31. august",
|
||||
"dateEndSeptember": "30. september",
|
||||
"dateEndOctober": "31. oktober",
|
||||
"dateEndNovember": "30. november",
|
||||
"dateEndJanuary": "31. januar",
|
||||
"dateEndFebruary": "28. februar",
|
||||
"winterPromoGiftHeader": "GIV ET ABONNEMENT I GAVE, OG FÅ ET GRATIS!",
|
||||
"winterPromoGiftDetails1": "Til og med 6. januar vil du få det samme abonnement med til dig selv, når du køber et abonnement til nogen i gave!",
|
||||
"winterPromoGiftDetails2": "Bemærk venligst, at hvis du eller modtageren af din gave allerede har et tilbagevendende abonnement, vil gave-abonnementet kun starte efter det tilbagevendende er blevet opsagt eller er udløbet. Tusind tak for din støtte! <3",
|
||||
"discountBundle": "pakke",
|
||||
"g1g1Announcement": "<strong>Giv et abonnement, få et abonnement gratis!</strong> Tilbuddet gælder lige nu!",
|
||||
"g1g1Details": "Send et gave-abonnement til en ven fra deres profil, og du vil få det samme abonnement til dig selv gratis!"
|
||||
"g1g1Announcement": "<strong>Giv et abonnement og få et abonnement gratis!</strong> Tilbuddet gælder lige nu!",
|
||||
"g1g1Details": "Send et gave-abonnement til en ven, og du vil få det samme abonnement til dig selv gratis!",
|
||||
"g1g1": "Send et, få et",
|
||||
"winter2020EvergreenSet": "Stedsegrøn (Kriger)",
|
||||
"winter2020CarolOfTheMageSet": "Magisk julesang (Magiker)",
|
||||
"winter2020WinterSpiceSet": "Vinterkrydderi (Helbreder)",
|
||||
"spring2020IrisHealerSet": "Iris (Helbreder)",
|
||||
"spring2019OrchidWarriorSet": "Orkidé (Kriger)",
|
||||
"spring2019AmberMageSet": "Rav (Magiker)",
|
||||
"summer2020OarfishMageSet": "Sildekonge (Magiker)",
|
||||
"spring2019RobinHealerSet": "Rødhals (Helbreder)",
|
||||
"summer2020SeaGlassHealerSet": "Havglas (Helbreder)",
|
||||
"spring2019CloudRogueSet": "Sky (Slyngel)",
|
||||
"fall2020DeathsHeadMothHealerSet": "Dødningehovednatsværmer (Helbreder)",
|
||||
"summer2019SeaTurtleWarriorSet": "Havskildpadde (Kriger)",
|
||||
"winter2021IceFishingWarriorSet": "Isfisker (Kriger)",
|
||||
"summer2019WaterLilyMageSet": "Åkande (Magiker)",
|
||||
"winter2021WinterMoonMageSet": "Vintermåne (Magiker)",
|
||||
"summer2019ConchHealerSet": "Konkylie (Helbreder)",
|
||||
"spring2021SwanMageSet": "Svane (Magiker)",
|
||||
"summer2019HammerheadRogueSet": "Hammerhaj (Slyngel)",
|
||||
"fall2019CyclopsSet": "Kyklop (Magiker)",
|
||||
"summer2021NautilusMageSet": "Nautilus (Magiker)",
|
||||
"summer2021ParrotHealerSet": "Papegøje (Helbreder)",
|
||||
"summer2021ClownfishRogueSet": "Klovnefisk (Slyngel)",
|
||||
"fall2020TwoHeadedRogueSet": "Tohovedet (Slyngel)",
|
||||
"spring2020PuddleMageSet": "Vandpyt (Magiker)",
|
||||
"fall2020WraithWarriorSet": "Genfærd (Kriger)",
|
||||
"summer2021FlyingFishWarriorSet": "Flyvefisk (Kriger)",
|
||||
"spring2021SunstoneWarriorSet": "Solsten (Kriger)",
|
||||
"summer2020RainbowTroutWarriorSet": "Regnbueørred (Kriger)",
|
||||
"fall2020ThirdEyeMageSet": "Treøjet (Magiker)",
|
||||
"fall2019RavenSet": "Ravn (Kriger)",
|
||||
"spring2021TwinFlowerRogueSet": "Kaprifolie (Slyngel)",
|
||||
"spring2021WillowHealerSet": "Piletræ (Helbreder)",
|
||||
"winter2020LanternSet": "Lanterne (Slyngel)",
|
||||
"spring2020BeetleWarriorSet": "Næsehornsbille (Kriger)",
|
||||
"summer2020CrocodileRogueSet": "Krokodille (Slyngel)",
|
||||
"winter2021HollyIvyRogueSet": "Kristtjørn og vedbend (Slyngel)",
|
||||
"winter2021ArcticExplorerHealerSet": "Arktisk udforsker (Helbreder)",
|
||||
"spring2020LapisLazuliRogueSet": "Lapis lazuli (Slyngel)",
|
||||
"fall2019OperaticSpecterSet": "Operaspøgelse (Slyngel)",
|
||||
"g1g1Limitations": "Dette er et tidsbegrænset tilbud der begynder d. 16. december kl. 14:00 (UTC+1), og slutter d. 6. januar kl. 02:00 (UTC+1). Dette tilbud gælder kun, når du giver et gave-abonnement til en anden Habiticaner. Hvis du eller modtageren allerede har et abonnement, vil gave-abonnementet tilføje yderligere tid, der kun vil blive brugt så snart det nuværende abonnement opsiges eller udløber.",
|
||||
"mayYYYY": "maj <%= year %>",
|
||||
"limitations": "Begrænsninger",
|
||||
"summer2022CrabRogueSet": "Krabbe (Slyngel)",
|
||||
"summer2022WaterspoutWarriorSet": "Vandsøjle (Kriger)",
|
||||
"summer2022MantaRayMageSet": "Djævlerokke (Magiker)",
|
||||
"summer2022AngelfishHealerSet": "Englefisk (Helbreder)",
|
||||
"dateEndDecember": "31. december",
|
||||
"februaryYYYY": "februar <%= year %>",
|
||||
"julyYYYY": "juli <%= year %>",
|
||||
"octoberYYYY": "oktober <%= year %>",
|
||||
"howItWorks": "Sådan virker det",
|
||||
"noLongerAvailable": "Denne genstand er ikke længere tilgængelig.",
|
||||
"spring2022MagpieRogueSet": "Skade (Slyngel)",
|
||||
"spring2022RainstormWarriorSet": "Uvejr (Kriger)",
|
||||
"spring2022ForsythiaMageSet": "Forsythia (Magiker)",
|
||||
"g1g1HowItWorks": "Skriv brugernavnet på den konto, du vil sende gave-abonnementet til. Derefter skal du vælge længden på abonnementet, og så checke ud. Din konto vil automatisk få tildelt den samme type abonnement, du lige har givet en anden.",
|
||||
"fall2021OozeRogueSet": "Slim (Slyngel)",
|
||||
"fall2021HeadlessWarriorSet": "Hovedløs (Kriger)",
|
||||
"fall2021BrainEaterMageSet": "Hjerneæder (Magiker)",
|
||||
"fall2021FlameSummonerHealerSet": "Flammehidkalder (Helbreder)",
|
||||
"eventAvailabilityReturning": "Kan købes indtil <%= availableDate(locale) %>. Denne eliksir var sidst tilgængelig <%= previousDate(locale) %>.",
|
||||
"septemberYYYY": "september <%= year %>",
|
||||
"marchYYYY": "marts <%= year %>",
|
||||
"juneYYYY": "juni <%= year %>",
|
||||
"novemberYYYY": "november <%= year %>",
|
||||
"decemberYYYY": "december <%= year %>",
|
||||
"augustYYYY": "august <%= year %>",
|
||||
"winter2022FireworksRogueSet": "Fyrværkeri (Slyngel)",
|
||||
"winter2022StockingWarriorSet": "Julesok (Kriger)",
|
||||
"winter2022PomegranateMageSet": "Granatæble (Magiker)",
|
||||
"winter2022IceCrystalHealerSet": "Iskrystal (Helbreder)",
|
||||
"g1g1Event": "Send et, få et - tilbuddet gælder nu!",
|
||||
"g1g1Returning": "For at fejre nytåret bringer vi et ganske særligt tilbud tilbage. Lige nu, når du køber et abonnement som gave, får du det samme abonnement selv!",
|
||||
"januaryYYYY": "januar <%= year %>",
|
||||
"aprilYYYY": "april <%= year %>",
|
||||
"royalPurpleJackolantern": "Purpur Græskarlygte"
|
||||
}
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
"mattBochText1": "Velkommen til Stalden! Jeg er Staldmesteren Matt. Hver gang du færdiggør en opgave, vil du have en chance for at modtage et tilfældigt Æg eller Udklækningseliksir til at udklække Kæledyr. Når du udruger et Kæledyr, vil det dukke op her! Klik på billedet af Kæledyret for at føje det til din Avatar. Giv dem det Dyrefoder du finder, og de vil vokse sig til kraftfulde Ridedyr.",
|
||||
"welcomeToTavern": "Velkommen til Værtshuset!",
|
||||
"sleepDescription": "Har du brug for en pause? Check ind i Daniels Værtshus for at sætte nogle af Habiticas svære elementer på pause:",
|
||||
"sleepBullet1": "Missede Daglige vil ikke skade dig",
|
||||
"sleepBullet2": "Opgavers stribe-præstation vil ikke blive tabt",
|
||||
"sleepBullet3": "Bosser vil ikke skade dig på grund af dine egne missede Daglige",
|
||||
"sleepBullet1": "Dine missede Daglige vil ikke skade dig (bosser vil stadig kunne skade dig baseret på andre Holdmedlemmers missede Daglige)",
|
||||
"sleepBullet2": "Dagliges stribe-præstation og Vanetæller vil ikke blive nulstillet",
|
||||
"sleepBullet3": "Den skade, du vil påføre bossen, eller dine indsamlede questgenstande, vil først tælle med i questen, når du checker ud af Værtshuset",
|
||||
"sleepBullet4": "Du vil beholde din afventende skade til bosser eller indsamlede questgenstande indtil du checker ud",
|
||||
"pauseDailies": "Sæt skade på pause",
|
||||
"unpauseDailies": "Skade er ikke længere på pause",
|
||||
@@ -129,5 +129,6 @@
|
||||
"cannotUnpinItem": "Denne genstand kan ikke frigøres.",
|
||||
"nMonthsSubscriptionGift": "<%= nMonths %> Måned(ers) Abonnement (Gave)",
|
||||
"nGemsGift": "<%= nGems %> Ædelsten (Gave)",
|
||||
"nGems": "<%= nGems %> Ædelsten"
|
||||
"nGems": "<%= nGems %> Ædelsten",
|
||||
"amountExp": "<%= amount %> Exp"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"needTips": "Brug for noget hjælp til at starte? Her er en enkel guide!",
|
||||
"step1": "Trin 1: Indtast opgaver",
|
||||
"webStep1Text": "Habitica er intet uden mål i det virkelige liv, så opret et par opgaver. Du kan altid tilføje flere! Alle opgaver kan tilføjes ved at klikke på den grønne 'Opret' knap.\n* **Opret [To-Dos](http://habitica.fandom.com/wiki/To-Dos):** Tilføj opgaver, du kun skal gøre én gang, eller sjældent, i kolonnen 'To-Dos', en af gangen. Du kan klikke på opgaverne for at redigere dem og tilføje checklister, forfaldsdag og mere!\n* **Opret [Daglige](http://habitica.fandom.com/wiki/Dailies):** Tilføj aktiviteter, du skal klare hver dag, eller på en bestemt dag i ugen, måneden, eller året i kolonnen 'Daglige'. Klik på en opgaver for at ændre, hvornår den skal være forfalden og/eller fastsætte en startdato. Du kan også sætte den til at være forfalden med jævne mellemrum, for eksempel hver tredje dag.\n* **Opret [Vaner](http://habitica.fandom.com/wiki/Habits):** Tilføj vaner, du gerne vil tillægge dig, i kolonnen 'Vaner'. Du kan ændre Vanen for kun at gøre den til en god vane :heavy_plus_sign: eller en dårlig vane :heavy_minus_sign:\n* **Opret [Belønninger](http://habitica.fandom.com/wiki/Rewards):** Udover de Belønninger, der tilbydes i spillet, kan du tilføje aktiviteter eller små gaver/lækkerier, du kan bruge som motivation, i kolonnen 'Belønninger'. Det er vigtigt at give dig selv en pause eller tillade en lille luksus sommetider!\n* Hvis du har brug for inspiration til dine opgaver, kan du se [eksempler på Vaner](http://habitica.fandom.com/wiki/Sample_Habits), [eksempler på Daglige](http://habitica.fandom.com/wiki/Sample_Dailies), [eksempler på To-Dos](http://habitica.fandom.com/wiki/Sample_To-Dos), og [eksempler på Belønninger](http://habitica.fandom.com/wiki/Sample_Custom_Rewards) på wiki'en (engelsk).",
|
||||
"webStep1Text": "Habitica er intet uden mål i det virkelige liv, så opret et par opgaver. Du kan altid tilføje flere! Alle opgaver kan tilføjes ved at klikke på den grønne 'Opret' knap.\n* **Opret [To Do's](https://habitica.fandom.com/wiki/To_Do%27s):** Tilføj opgaver, du kun skal gøre én gang, eller sjældent, i kolonnen To Do's, en af gangen. Du kan klikke på opgaverne for at redigere dem og tilføje checklister, forfaldsdag og mere!\n* **Opret [Daglige](https://habitica.fandom.com/wiki/Dailies):** Tilføj aktiviteter, du skal klare hver dag, eller på en bestemt dag i ugen, måneden, eller året i kolonnen 'Daglige'. Klik på en opgaver for at ændre, hvornår den skal være forfalden og/eller fastsætte en startdato. Du kan også sætte den til at være forfalden med jævne mellemrum, for eksempel hver tredje dag.\n* **Opret [Vaner](https://habitica.fandom.com/wiki/Habits):** Tilføj vaner, du gerne vil tillægge dig, i kolonnen 'Vaner'. Du kan ændre Vanen for kun at gøre den til en god vane :heavy_plus_sign: eller en dårlig vane :heavy_minus_sign:\n* **Opret [Belønninger](https://habitica.fandom.com/wiki/Rewards):** Udover de Belønninger, der tilbydes i spillet, kan du tilføje aktiviteter eller små gaver/lækkerier, du kan bruge som motivation, i kolonnen 'Belønninger'. Det er vigtigt at give dig selv en pause eller tillade en lille luksus sommetider!\n* Hvis du har brug for inspiration til dine opgaver, kan du se [eksempler på Vaner](https://habitica.fandom.com/wiki/Sample_Habits), [eksempler på Daglige](https://habitica.fandom.com/wiki/Sample_Dailies), [eksempler på To Do's](https://habitica.fandom.com/wiki/Sample_To_Do%27s), og [eksempler på Belønninger](https://habitica.fandom.com/wiki/Sample_Custom_Rewards) på wiki'en (engelsk).",
|
||||
"step2": "Trin 2: Optjen Point ved at gøre ting i det virkelig liv",
|
||||
"webStep2Text": "Begynd nu på dine mål fra listen! Efterhånden som du fuldfører opgaver og krydser dem af i Habitica vil du få [Erfaring](http://habitica.fandom.com/wiki/Experience_Points), som vil lade dig stige i niveau, og [Guld](http://habitica.fandom.com/wiki/Gold_Points), som du kan købe Belønninger for. Hvis du giver efter for dårlige vaner eller misser dine Daglige, vil du miste [Liv](http://habitica.fandom.com/wiki/Health_Points). På denne måde vil Habiticas Erfarings- og Helbredsbjælker være en morsom indikater for fremskridt mod dine mål. Du vil begynde at se forbedringer i dit virkelige liv mens din karakter avancerer i spillet.",
|
||||
"webStep2Text": "Begynd nu på dine mål fra listen! Efterhånden som du fuldfører opgaver og krydser dem af i Habitica vil du få [Erfaring](https://habitica.fandom.com/wiki/Experience_Points), som vil lade dig stige i niveau, og [Guld](https://habitica.fandom.com/wiki/Gold_Points), som du kan købe Belønninger for. Hvis du giver efter for dårlige vaner eller misser dine Daglige, vil du miste [Liv](https://habitica.fandom.com/wiki/Health_Points). På denne måde vil Habiticas Erfarings- og Helbredsbjælker være en morsom indikator for fremskridt mod dine mål. Du vil begynde at se forbedringer i dit virkelige liv, mens din karakter avancerer i spillet.",
|
||||
"step3": "Trin 3: Brugerdefiner og udforsk Habitica",
|
||||
"webStep3Text": "Når du er blevet tryg ved nøglefunktionerne, kan du få endnu mere ud af Habitica med de følgende fikse detaljer:\n * Hold styr på dine opgaver med [tags](http://habitica.fandom.com/wiki/Tags) (rediger en opgave for at tilføje dem).\n * Tilpas din [avatar](http://habitica.fandom.com/wiki/Avatar) ved at klikke på brugerikonet i øverste højre hjørne.\n * Køb [Udstyr](http://habitica.fandom.com/wiki/Equipment) under Belønninger eller fra [Butikkerne](<%= shopUrl %>), og skift det ud under [Inventar > Udstyr](<%= equipUrl %>).\n * Sig hej til andre brugere i [Værtshuset](http://habitica.fandom.com/wiki/Tavern).\n * Fra niveau 3 kan du udklække [Kæledyr](http://habitica.fandom.com/wiki/Pets) ved at samle [æg](http://habitica.fandom.com/wiki/Eggs) og [udrugningseliksirer](http://habitica.fandom.com/wiki/Hatching_Potions). [Fodr](http://habitica.fandom.com/wiki/Food) dem for at få [Ridedyr](http://habitica.fandom.com/wiki/Mounts).\n * Fra niveau 10 kan du vælge en [klasse](http://habitica.fandom.com/wiki/Class_System), og får adgang til specielle [evner](http://habitica.fandom.com/wiki/Skills) (låses op fra niveau 11 til 14).\n * Lav et hold med dine venner (ved at klikke på [Hold](<%= partyUrl %>) i navigationsbarren), for at blive holdt ansvarlig og få en Questskriftrulle.\n * Du kan besejre monstre og indsamle genstande på [quests](http://habitica.fandom.com/wiki/Quests) (du vil få en quest på niveau 15).",
|
||||
"webStep3Text": "Når du er blevet tryg ved nøglefunktionerne, kan du få endnu mere ud af Habitica med de følgende fikse detaljer:\n * Hold styr på dine opgaver med [tags](https://habitica.fandom.com/wiki/Tags) (rediger en opgave for at tilføje dem).\n * Tilpas din [avatar](https://habitica.fandom.com/wiki/Avatar) ved at klikke på brugerikonet i øverste højre hjørne.\n * Køb [udstyr](https://habitica.fandom.com/wiki/Equipment) under Belønninger eller fra [Butikkerne](<%= shopUrl %>), og skift det ud under [Inventar > Udstyr](<%= equipUrl %>).\n * Sig hej til andre brugere i [Værtshuset](https://habitica.fandom.com/wiki/Tavern).\n * Udklæk [kæledyr](https://habitica.fandom.com/wiki/Pets) ved at samle [æg](https://habitica.fandom.com/wiki/Eggs) og [udrugningseliksirer](https://habitica.fandom.com/wiki/Hatching_Potions). [Fodr](https://habitica.fandom.com/wiki/Food) dem for at få [ridedyr](https://habitica.fandom.com/wiki/Mounts).\n * Fra niveau 10 kan du vælge en [klasse](https://habitica.fandom.com/wiki/Class_System), og får adgang til specielle [evner](https://habitica.fandom.com/wiki/Skills) (låses op fra niveau 11 til 14).\n * Lav et hold med dine venner (ved at klikke på [Hold](<%= partyUrl %>) i navigationsbarren), for at blive holdt ansvarlig og få en Questskriftrulle.\n * Du kan besejre monstre og indsamle genstande på [quests](https://habitica.fandom.com/wiki/Quests) (du vil få en quest på niveau 15).",
|
||||
"overviewQuestions": "Har du flere spørgsmål? Læs vores [FAQ](<%= faqUrl %>)! Hvis du ikke kan finde et svar der, kan du bede om hjælp i Klanen [Habitica Help](<%= helpGuildUrl %>).\n\nHeld og lykke med dine opgaver!"
|
||||
}
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
"mantisShrimp": "Knælerreje",
|
||||
"mammoth": "Ulden mammut",
|
||||
"orca": "Spækhugger",
|
||||
"royalPurpleGryphon": "Royal Lilla Grif",
|
||||
"royalPurpleGryphon": "Purpur Grif",
|
||||
"phoenix": "Føniks",
|
||||
"magicalBee": "Magisk bi",
|
||||
"hopefulHippogriffPet": "Håbefuld hippogrif",
|
||||
"hopefulHippogriffMount": "Håbefuld hippogrif",
|
||||
"royalPurpleJackalope": "Royal Lilla Jackalope",
|
||||
"royalPurpleJackalope": "Purpur Jackalope",
|
||||
"invisibleAether": "Usynlig æter",
|
||||
"potion": "<%= potionType %> eliksir",
|
||||
"egg": "<%= eggType %> æg",
|
||||
@@ -44,8 +44,8 @@
|
||||
"noFoodAvailable": "Du har ikke noget Dyrefoder.",
|
||||
"noSaddlesAvailable": "Du har ikke nogle sadler.",
|
||||
"noFood": "Du har hverken mad eller sadler.",
|
||||
"dropsExplanation": "Du kan få fat i disse ting hurtigere med ædelsten, hvis du ikke længere vil vente på at finde dem når du gennemfører en opgave. <a href=\"http://habitica.fandom.com/wiki/Drops\">Lær mere om drop-systemet.</a>",
|
||||
"dropsExplanationEggs": "Brug Ædelsten for hurtigere at få æg, hvis du ikke vil vente på at få standard-æg som drops, eller gentage Quests for at vinde Quest-æg. <a href=\"http://habitica.fandom.com/wiki/Drops\">Læs mere om dropsystemet her.</a>",
|
||||
"dropsExplanation": "Du kan få fat i disse ting hurtigere med ædelsten, hvis du ikke længere vil vente på at finde dem når du gennemfører en opgave. <a href=\"https://habitica.fandom.com/wiki/Drops\">Lær mere om drop-systemet.</a>",
|
||||
"dropsExplanationEggs": "Brug Ædelsten for hurtigere at få æg, hvis du ikke vil vente på at få standard-æg som drops, eller gentage Quests for at vinde Quest-æg. <a href=\"https://habitica.fandom.com/wiki/Drops\">Læs mere om dropsystemet her.</a>",
|
||||
"premiumPotionNoDropExplanation": "Magiske udrugningseliksirer kan ikke blive brugt på æg, der er modtaget fra quests. Den eneste måde at få en magisk udrugningseliksir på, er ved at købe dem nedenfor, ikke fra tilfældige drop.",
|
||||
"beastMasterProgress": "Dyretæmmerfremskridt",
|
||||
"beastAchievement": "Du har opnået \"Dyretæmmer\"-præstationen ved at samle alle kæledyr!",
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
"mustComplete": "Du skal færdiggøre <%= quest %> først.",
|
||||
"mustLvlQuest": "Du skal være niveau <%= level %> for at købe denne quest!",
|
||||
"unlockByQuesting": "For at låse op for denne quest, skal du fuldføre <%= title %>.",
|
||||
"questConfirm": "Er du sikker? Kun <%= questmembers %> af dine <%= totalmembers %> holdmedlemmer har valgt at deltage i denne quest! Quests begynder automatisk, når alle spillere enten har accepteret eller afvist invitationen.",
|
||||
"sureCancel": "Er du sikker på at du vil afbryde denne quest? Alle invitation-accepter vil gå tabt. Quest-lederen vil beholde quest-skriftrullen.",
|
||||
"sureAbort": "Er du sikker på at du vil afbryde missionen? Det vil afbryde den for alle i gruppen og al fremskridt vil gå tabt. Quest-skriftrullen vil blive returneret til quest-lederen.",
|
||||
"questConfirm": "Er du sikker på at du vil starte denne quest? Ikke alle holdmedlemmer har accepteret invitationen. Quests begynder automatisk, når alle medlemmer har svaret.",
|
||||
"sureCancel": "Er du sikker på at du vil afbryde denne quest? Hvis du afbryder, vil alle accepterede og åbne invitationer blive afvist. Quest-lederen vil få skriftrullen igen.",
|
||||
"sureAbort": "Er du sikker på at du vil afbryde missionen? Al fremskridt vil gå tabt. Quest-lederen vil få skriftrullen igen.",
|
||||
"doubleSureAbort": "Er du helt sikker? Tjek lige at de ikke vil hade dig for evigt!",
|
||||
"bossRageTitle": "Vrede",
|
||||
"bossRageDescription": "Når denne bar bliver fyldt vil bossen udføre et specielt angreb!",
|
||||
@@ -85,5 +85,9 @@
|
||||
"questAlreadyStarted": "Questen er allerede begyndt.",
|
||||
"bossDamage": "Du har skadet bossen!",
|
||||
"questInvitationNotificationInfo": "Du har fået en invitation til at deltage i en quest",
|
||||
"hatchingPotionQuests": "Magisk Udrugningseliksirquest"
|
||||
"hatchingPotionQuests": "Magisk Udrugningseliksirquest",
|
||||
"questItemsPending": "<%= amount %> genstande fundet",
|
||||
"sureLeaveInactive": "Er du sikker på, du vil forlade questen? Du vil ikke kunne deltage igen.",
|
||||
"selectQuest": "Vælg quest",
|
||||
"yourPartyIsNotOnQuest": "Dit hold er ikke på en quest"
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"questEvilSantaCompletion": "Pelsjægerjulemanden skriger i vrede og løber bort i natten. Den taknemmelige hunbjørn forsøger gennem brøl og knurren at fortælle dig noget. Du tager hende med tilbage til stalden hvor Matt Boch, Hviskeren, lytter til hendes historie med et rædselsslagent gisp. Hun har en unge! Han løb ud på issletterne da bjørnemor blev fanget. Hjælp med at redde hendes barn!",
|
||||
"questEvilSantaBoss": "Pelsjægerjulemand",
|
||||
"questEvilSantaDropBearCubPolarMount": "Isbjørn (Ridedyr)",
|
||||
"questEvilSanta2Text": "Find Bjørneungen",
|
||||
"questEvilSanta2Text": "Find bjørneungen",
|
||||
"questEvilSanta2Notes": "Da pelsjægeren fangede Isbjørneridedyret, løb hendes unge ud på issletterne. Du kan høre grene knække og sne knirke gennem den krystalklare lyd af skoven. Poteaftryk! I begynder begge at løbe for at følge sporet. Find alle sporene og de brækkede grene, og hent ungen!<br><br><strong>Bemærk</strong>: “Find isbjørneungen” belønnes med en stackable quest-præstation, men giver et sjældent Kæledyr, som kun kan tilføjes til din Stald en enkelt gang.",
|
||||
"questEvilSanta2Completion": "Du har fundet ungen! Den vil holde dig med selskab til evig tid.",
|
||||
"questEvilSanta2CollectTracks": "Spor",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"rebirthOrb": "Brugte en Genfødselskugle til at starte forfra efter at have opnået Niveau <%= level %>.",
|
||||
"rebirthOrb100": "Brugte en Genfødselskugle til at starte forfra efter at have opnået Niveau 100 eller mere.",
|
||||
"rebirthOrbNoLevel": "Brugte en Genfødselskugle til at starte forfra.",
|
||||
"rebirthPop": "Genstart omgående din karakter som Niveau 1 Kriger, men behold præstationer, samlerobjekter og udstyr. Du vil beholde dine opgaver og deres historie, men de vil blive nulstillet til gul. Dine striber vil blive fjernet, bortset fra opgaver tilhørende aktive Udfordringer og Gruppeplaner. Dit Guld, Erfaring, Mana, og alle effekter fra Evner vil blive fjernet. Alt dette vil ske omgående. For mere information, se siden <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a> på wiki'en (engelsk).",
|
||||
"rebirthPop": "Genstart omgående din karakter som Niveau 1 Kriger, men behold præstationer, samlerobjekter og udstyr. Du vil beholde dine opgaver og deres historie, men de vil blive nulstillet til gul. Dine striber vil blive fjernet, bortset fra opgaver tilhørende aktive Udfordringer og Gruppeplaner. Dit Guld, Erfaring, Mana, og alle effekter fra Evner vil blive fjernet. Alt dette vil ske omgående. For mere information, se siden <a href='https://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a> på wiki'en (engelsk).",
|
||||
"rebirthName": "Genfødselskugle",
|
||||
"rebirthComplete": "Du er blevet genfødt!",
|
||||
"nextFreeRebirth": "<strong><%= days %> dage</strong> til <strong>GRATIS</strong> Genfødselskugle"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"sureChangeCustomDayStartTime": "Er du sikker på, at du vil ændre dit brugerdefinerede starttidspunkt? Dine Daglige vil blive opdateret næste gang du bruger Habitica efter <%= time %>. Vær sikker på, at du har udført dine Daglige før da!",
|
||||
"customDayStartHasChanged": "Dit brugerdefinerede starttidspunkt er ændret.",
|
||||
"nextCron": "Dine Daglige vil blive nulstillet første gang du bruger Habitica efter <%= time %>. Vær sikker på, at du har færdiggjort dine Daglige før dette tidspunkt!",
|
||||
"customDayStartInfo1": "Som udgangspunkt vil Habitica tjekke og nulstille dine Daglige ved midnat hver dag. Du kan ændre dette her.",
|
||||
"customDayStartInfo1": "Habitica tjekke og nulstille dine Daglige ved midnat hver dag i din egen tidszone. Du kan ændre det til et andet tidspunkt efter midnat her.",
|
||||
"misc": "Diverse",
|
||||
"showHeader": "Vis sidehoved",
|
||||
"changePass": "Skift kodeord",
|
||||
@@ -55,7 +55,7 @@
|
||||
"newUsername": "Nyt brugernavn",
|
||||
"dangerZone": "Farezone",
|
||||
"resetText1": "ADVARSEL! Dette nulstiller mange dele af din konto. Vi fraråder på det kraftigste dette, men nogen finder det brugbart i begyndelsen efter at have eksperimenteret med Habitica i et kort stykke tid.",
|
||||
"resetText2": "Du vil miste alle niveauer, Guld, og Erfaringspoint. Alle dine Opgaver (bortset fra dem fra Udfordringer) vil blive slettet permanent, og du vil miste al deres historik. Du vil miste alt dit udstyr, men du vil være i stand til at købe det hele igen, inklusiv tidsbegrænset udstyr eller Mystiske abonnentsgenstande, som du allerede ejer (du vil være nødt til at være den rigtige klasse for at kunne købe klasse-udstyr igen). Du vil beholde din nuværende klasse og dine kæle- og ridedyr. Du ville måske foretrække at bruge en Genfødselskugle i stedet. Det er en meget sikrere mulighed, og du vil beholde dine opgaver og udstyr.",
|
||||
"resetText2": "Du vil miste alle niveauer, Guld, og Erfaringspoint. Alle dine Opgaver (bortset fra dem fra Udfordringer) vil blive slettet permanent, og du vil miste al deres historik. Du vil miste alt dit udstyr, undtagen gratis gave-udstyr eller Mystiske abonnentsgenstande. Du vil være i stand til at købe alle de mistede genstand igen, inklusiv tidsbegrænset udstyr (du skal være den korrekte klasse for at købe klasse-begrænset udstyr). Du vil beholde din nuværende klasse, præstationer og dine kæle- og ridedyr. Du ville måske foretrække at bruge en Genfødselskugle i stedet. Det er en meget sikrere mulighed, og du vil beholde dine opgaver og udstyr.",
|
||||
"deleteLocalAccountText": "Er du sikker? Dette vil slette din konto for evigt, og den kan aldrig gendannes! Du skal registrere en ny konto for at kunne bruge Habitica igen. Ædelsten du har brugt eller har på lager vil ikke blive refunderet. Hvis du er fuldstændig sikker, så skriv dit kodeord i boksen herunder.",
|
||||
"deleteSocialAccountText": "Er du sikker? Dette vil slette din brugerkonto for evigt, og den kan aldrig gendannes! Du vil være nødt til at oprette en ny konto for at bruge Habitica igen. Ædelsten i en Klanbank eller som er blevet brugt vil ikke blive refunderet. Hvis du virkelig er helt sikker, så indtast \"<%= magicWord %>\" i tekstboksen nedenunder.",
|
||||
"API": "API",
|
||||
@@ -189,5 +189,7 @@
|
||||
"suggestMyUsername": "Foreslå mit brugernavn",
|
||||
"mentioning": "Nævne",
|
||||
"displaynameIssueNewline": "Displaynavne må ikke indeholde backslashes efterfulgt af bogstavet N.",
|
||||
"bannedWordUsedInProfile": "Dit Displaynavn eller Om-tekst indeholder upassende sprog."
|
||||
"bannedWordUsedInProfile": "Dit Displaynavn eller Om-tekst indeholder upassende sprog.",
|
||||
"adjustment": "Tilpasning",
|
||||
"dayStartAdjustment": "Tilpasning af starttidspunkt"
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"buyGemsGold": "Køb Ædelsten med Guld",
|
||||
"mustSubscribeToPurchaseGems": "Skal abonnere for at kunne købe ædelsten med GP",
|
||||
"reachedGoldToGemCap": "Du har nået Guld => Ædelstens-maksimum <%= convCap %> for denne måned. Vi har dettee for at undgå misbrug/farming. Vekselmaksimummet nulstiller inden for de tre første dage af hver måned.",
|
||||
"reachedGoldToGemCapQuantity": "Det antal Ædelsten du har anmodet om, <%= quantity %>, overstiger Guld => Ædelstens-vekselmaksimummet <%= convCap %> for denne måned. Vi har denne begrænsning for at forhindre misbrug/farming. Begrænsningen nulstilles inden for de første tre dage i hver måned.",
|
||||
"reachedGoldToGemCapQuantity": "Det antal Ædelsten du har anmodet om, <%= quantity %>, overstiger det antal du kan købe denne måned <%= convCap %>. Begrænsningen nulstilles inden for de første tre dage i hver måned. Tak, fordi du abonnerer!",
|
||||
"mysteryItem": "Eksklusive månedlige genstande",
|
||||
"mysteryItemText": "Hver måned modtager alle abonnenter en unik kosmetisk ting til deres avatar! Derudover vil de Mystiske Tidsrejsende give dig adgang til yderligere historisk (og futuristisk!) kosmetisk udstyr for hver tre måneders fortsat abonnement.",
|
||||
"exclusiveJackalopePet": "Eksklusivt kæledyr",
|
||||
@@ -15,7 +15,7 @@
|
||||
"subscribe": "Abonnér",
|
||||
"nowSubscribed": "Du abonnerer nu på Habitica!",
|
||||
"cancelSub": "Opsig abonnement",
|
||||
"cancelSubInfoGroupPlan": "Fordi du har fået et gratis abonnement gennem en Gruppeplan, kan du ikke opsige det. Det vil ophøre, når du ikke længere er i Gruppen. Hvis du er Gruppelederen, og vil opsige hele Gruppeplanen, kan du gøre det fra fanen 'Betalingsoplysninger' på gruppens side.",
|
||||
"cancelSubInfoGroupPlan": "Fordi du har fået et gratis abonnement gennem en Gruppeplan, kan du ikke opsige det. Det vil ophøre, når du ikke længere er medlem af Gruppeplanen. Hvis du er Gruppelederen, og vil opsige hele Gruppeplanen, kan du gøre det fra fanen 'Betaling' på gruppens side.",
|
||||
"cancelingSubscription": "Annullerer abonnementet",
|
||||
"contactUs": "Kontakt os",
|
||||
"checkout": "Til kassen",
|
||||
@@ -129,7 +129,7 @@
|
||||
"subscriptionBenefit1": "Købmanden Alexander vil sælge dig Ædelsten for 20 Guld pr. styk!",
|
||||
"subscriptionBenefit3": "Opdag flere genstande i Habitica med en fordoblet drop-cap.",
|
||||
"subscriptionBenefit4": "Unikke, dekorative genstande til din avatar hver måned.",
|
||||
"subscriptionBenefit5": "Modtag det eksklusive royale lilla Jackalopekæledyr!",
|
||||
"subscriptionBenefit5": "Modtag det purpur Jackalopekæledyr, når du bliver abonnenent.",
|
||||
"subscriptionBenefit6": "Optjen mystiske timeglas du kan bruge på de Tidsrejsendes marked!",
|
||||
"purchaseAll": "Køb sæt",
|
||||
"gemsRemaining": "ædelsten tilbage",
|
||||
@@ -151,5 +151,13 @@
|
||||
"mysterySet201905": "Dramatisk dragesæt",
|
||||
"mysterySet201904": "Overdådigt opalsæt",
|
||||
"mysterySet201903": "Æg-cellent sæt",
|
||||
"mysterySet201902": "Kryptisk kærlighedssæt"
|
||||
"mysterySet201902": "Kryptisk kærlighedssæt",
|
||||
"organization": "Organisation",
|
||||
"howManyGemsPurchase": "Hvor mange Ædelsten vil du gerne købe?",
|
||||
"howManyGemsSend": "Hvor mange Ædelsten vil du gerne sende?",
|
||||
"needToPurchaseGems": "Vil du købe Ædelsten som en gave til nogen?",
|
||||
"wantToSendOwnGems": "Vil du sende dine egne Ædelsten?",
|
||||
"giftASubscription": "Giv et abonnement",
|
||||
"cancelSubInfoGoogle": "Gå venligst til sektionen Konto > Abonnementer i Google Play Store app'en for at afmelde dit abonnement, eller for at se hvornår det udløber, hvis du allerede har opsagt det. Denne skærm kan ikke fortælle dig, hvorvidt dit abonnement er blevet afmeldt.",
|
||||
"cancelSubInfoApple": "Følg venligst <a href=\"https://support.apple.com/en-us/HT202039\">Apples officielle instruktioner</a> for at opsige dit abonnement, eller for at se hvornår det udløber, hvis du allerede har afmeldt det. Denne skærm kan ikke vise dig, hvorvidt dit abonnement er blevet afmeldt."
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"clearCompleted": "Slet færdiggjorte",
|
||||
"clearCompletedDescription": "Færdiggjorte To-Do's bliver slettet efter 30 dage for ikke-abonnenter og 90 dage for abonnenter.",
|
||||
"clearCompletedConfirm": "Er du sikker på, du vil slette dine færdiggjorte to-dos?",
|
||||
"clearCompletedDescription": "Færdiggjorte To Do's bliver slettet efter 30 dage for ikke-abonnenter og 90 dage for abonnenter.",
|
||||
"clearCompletedConfirm": "Er du sikker på, du vil slette dine færdiggjorte To Do's?",
|
||||
"addMultipleTip": "<strong>Tip:</strong> For at tilføje flere <%= taskType %>, så adskil dem ved at bruge linjeskift (Shift+Enter) og tryk enter igen, når du er klar.",
|
||||
"addATask": "Tilføj en <%= type %>",
|
||||
"editATask": "Ret en <%= type %>",
|
||||
"editATask": "Rediger <%= type %>",
|
||||
"createTask": "Opret <%= type %>",
|
||||
"addTaskToUser": "Tilføj opgave",
|
||||
"scheduled": "Planlagt",
|
||||
@@ -27,7 +27,7 @@
|
||||
"notes": "Noter",
|
||||
"advancedSettings": "Avancerede indstillinger",
|
||||
"difficulty": "Sværhedsgrad",
|
||||
"difficultyHelp": "Sværhedsgraden beskriver, hvor udfordrende en Vane, Daglig eller To-Do er for dig at fuldføre. En højere sværhedsgrad resulterer i højere gevinster, når en opgave er fuldført, men det gør også højere skade når en Daglig opgave bliver sprunget over, eller hvis en negativ Vane udføres.",
|
||||
"difficultyHelp": "Sværhedsgraden beskriver, hvor udfordrende en Vane, Daglig eller To Do er for dig at fuldføre. En højere sværhedsgrad resulterer i højere gevinster, når en opgave er fuldført, men det gør også højere skade når en Daglig opgave bliver sprunget over, eller hvis en negativ Vane udføres.",
|
||||
"trivial": "Triviel",
|
||||
"easy": "Let",
|
||||
"medium": "Middel",
|
||||
@@ -46,9 +46,9 @@
|
||||
"days": "Dage",
|
||||
"restoreStreak": "Ret stribe",
|
||||
"resetStreak": "Nulstil stribe",
|
||||
"todo": "To-Do",
|
||||
"todos": "To-Dos",
|
||||
"todosDesc": "To-Do's skal kun færdiggøres en gang. Tilføje Tjeklister til dine To-Dos for at øge deres værdi.",
|
||||
"todo": "To Do",
|
||||
"todos": "To Do's",
|
||||
"todosDesc": "To Do's skal kun færdiggøres en gang. Tilføje tjeklister til dine To Do's for at øge deres værdi.",
|
||||
"dueDate": "Forfaldsdato",
|
||||
"remaining": "Aktive",
|
||||
"complete": "Færdige",
|
||||
@@ -127,5 +127,11 @@
|
||||
"checkOffYesterDailies": "Markér de daglige opgaver du udførte i går:",
|
||||
"yesterDailiesCallToAction": "Start min nye dag!",
|
||||
"sessionOutdated": "Din session er forældet. Genindlæs din browser eller synkronisér.",
|
||||
"errorTemporaryItem": "Denne genstand er midlertidig og kan ikke fastgøres."
|
||||
"errorTemporaryItem": "Denne genstand er midlertidig og kan ikke fastgøres.",
|
||||
"adjustCounter": "Justér tæller",
|
||||
"addATitle": "Tilføj en titel",
|
||||
"addNotes": "Tilføj noter",
|
||||
"counter": "Tæller",
|
||||
"resetCounter": "Nulstil tæller",
|
||||
"tomorrow": "I morgen"
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
"achievementSeeingRed": "Rot Sehen",
|
||||
"achievementRedLetterDay": "Roter Faden",
|
||||
"achievementLegendaryBestiaryModalText": "Du hast alle mystischen Haustiere gesammelt!",
|
||||
"achievementLegendaryBestiaryText": "Hat alle mystischen Haustiere ausgebrütet: Drachen-Jungtier, Fliegendes Ferkel, Greifen-Jungtier, Seeschlangen-Haustier und Einhorn-Fohlen!",
|
||||
"achievementLegendaryBestiaryText": "Hat alle mystischen Haustiere in den Standardfarben ausgebrütet: Drache, Fliegendes Ferkel, Greif, Seeschlange und Einhorn!",
|
||||
"achievementLegendaryBestiary": "Legendäres Bestiarium",
|
||||
"achievementSeasonalSpecialistModalText": "Du hast alle saisonalen Quests abgeschlossen!",
|
||||
"achievementSeasonalSpecialistText": "Hat alle Quests der Frühlings- und Winter-Saison abgeschlossen: Eierjagd, Wildernder Weihnachtswichtel, und Finde das Jungtier!",
|
||||
|
||||
@@ -721,5 +721,12 @@
|
||||
"backgrounds082022": "Set 99: Veröffentlicht im August 2022",
|
||||
"backgroundMessyRoomText": "Unordentlicher Raum",
|
||||
"backgroundMessyRoomNotes": "Reinige einen unordentlichen Raum.",
|
||||
"backgroundRainbowEucalyptusNotes": "Bewundere einen Regenbogen-Eukalyptus-Hain."
|
||||
"backgroundRainbowEucalyptusNotes": "Bewundere einen Regenbogen-Eukalyptus-Hain.",
|
||||
"backgroundTheatreStageText": "Theaterbühne",
|
||||
"backgroundTheatreStageNotes": "Tritt auf einer Theaterbühne auf.",
|
||||
"backgroundAutumnPicnicText": "Herbstpicknick",
|
||||
"backgroundAutumnPicnicNotes": "Genieße ein Herbstpicknick.",
|
||||
"backgroundOldPhotoText": "Altes Foto",
|
||||
"backgroundOldPhotoNotes": "Posiere auf einem alten Foto.",
|
||||
"backgrounds092022": "Set 100: Veröffentlicht im September 2022"
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
"confirmKeepChallengeTasks": "Möchtest Du die Herausforderungsaufgaben behalten?",
|
||||
"selectParticipant": "Wähle einen Teilnehmer aus",
|
||||
"filters": "Filter",
|
||||
"wonChallengeDesc": "Du hast die Herausforderung <%= challengeName %> gewonnen! Dein Erfolg wird unter den Errungenschaften in Deinem Profil aufgezeichnet.",
|
||||
"wonChallengeDesc": "<%= challengeName %> hat Dich als Gewinner ausgewählt! Dein Gewinn wurde in Deine Errungenschaften aufgenommen.",
|
||||
"yourReward": "Deine Belohnung",
|
||||
"removeTasks": "Aufgaben entfernen"
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
"commGuideList01E": "Fange in der Taverne keine Streitgespräche an und lass Dich nicht auf solche ein.",
|
||||
"commGuideList01F": "Kein Betteln um bezahlte Artikel, kein Spamming oder große Überschriften/Großbuchstaben.",
|
||||
"commGuidePara017": "Hier ist die Kurzfassung, aber wir möchten Dich ermutigen, weiter unten mehr Details zu erfahren:",
|
||||
"commGuideList02M": "Frage nicht nach Edelsteinen, Abonnements oder der Mitgliedschaft in Gruppenabonnements. Nachfragen dieser Art sind weder in der Taverne, noch in öffentlichen oder privaten Chaträumen und auch nicht in Privatnachrichten erlaubt. Wiederholte oder extreme Betteleien, vor allem nachdem bereits eine Warnung ausgesprochen wurde, können zu einer Sperrung des Accounts führen.",
|
||||
"commGuideList02M": "Frage nicht nach oder bettle nicht um Edelsteine, Abonnements oder die Mitgliedschaft in Gruppenplänen. Nachrichten dieser Art sind weder in der Taverne, noch in öffentlichen oder privaten Chaträumen, und auch nicht in Privatnachrichten erlaubt. Wenn Du Nachrichten erhältst, in denen man Dich um bezahlte Artikel fragt, melde sie bitte über das Fähnchen. Wiederholte oder extreme Betteleien nach Edelsteinen oder Abonnements, vor allem nachdem bereits eine Warnung ausgesprochen wurde, können zu einer Kontosperre führen.",
|
||||
"commGuideList09D": "Entfernung oder Herabstufung des Mitwirkenden-Ranges",
|
||||
"commGuideList05H": "Schwerwiegende oder wiederholte Versuche, andere Spielende zu betrügen oder zu bedrängen, um an Gegenstände zu kommen, die echtes Geld kosten"
|
||||
}
|
||||
|
||||
@@ -55,5 +55,5 @@
|
||||
"iosFaqStillNeedHelp": "Wenn Du eine Frage hast, die hier oder im [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ) nicht beantwortet wurde, stelle sie in der Taverne unter Menü > Tavernen-Chat! Wir helfen Dir gerne.",
|
||||
"androidFaqStillNeedHelp": "Wenn Du eine Frage hast, die hier oder im [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ) nicht beantwortet wurde, stelle sie in der Taverne unter Menü > Tavernen-Chat! Wir helfen Dir gerne.",
|
||||
"webFaqStillNeedHelp": "Wenn Du eine Frage hast, die hier oder im [Wiki-FAQ](https://habitica.fandom.com/wiki/FAQ) nicht beantwortet wurde, stelle sie in der [Habitica-Hilfe-Gilde](https://habitica.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! Wir helfen Dir gerne.",
|
||||
"faqQuestion13": "Was ist ein Gruppen-Plan?"
|
||||
"faqQuestion13": "Was ist ein Gruppenplan?"
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
"accept2Terms": "zu, sowie der",
|
||||
"chores": "Hausarbeiten",
|
||||
"clearBrowserData": "Browserdaten löschen",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Add-ons & Erweiterungen</a>",
|
||||
"communityExtensions": "Add-ons & Erweiterungen",
|
||||
"communityFacebook": "Facebook",
|
||||
"companyAbout": "So funktioniert es",
|
||||
"companyBlog": "Blog",
|
||||
"companyContribute": "Mitwirken",
|
||||
"companyDonate": "Spenden",
|
||||
"companyContribute": "Bei Habitica mitwirken",
|
||||
"companyDonate": "An Habitica spenden",
|
||||
"forgotPassword": "Passwort vergessen?",
|
||||
"emailNewPass": "Einen Link per E-Mail senden, um das Passwort zurückzusetzen",
|
||||
"forgotPasswordSteps": "Trage Deinen Benutzernamen oder die E-Mail-Adresse ein, mit der Du Deinen Habitica-Account aktiviert hast.",
|
||||
@@ -53,8 +53,8 @@
|
||||
"marketing4Lead3-1": "Willst Du Dein Leben einmal als Spiel betrachten?",
|
||||
"marketing4Lead3-2": "Willst Du eine Gruppe für Ausbildung, Wohlbefinden usw. leiten?",
|
||||
"marketing4Lead3Title": "Mache Alles zum Spiel",
|
||||
"mobileAndroid": "Android",
|
||||
"mobileIOS": "iOS",
|
||||
"mobileAndroid": "Android App",
|
||||
"mobileIOS": "iOS App",
|
||||
"oldNews": "Neuigkeiten",
|
||||
"newsArchive": "Neuigkeiten-Archiv auf Wikia (mehrsprachig)",
|
||||
"setNewPass": "Neues Passwort setzen",
|
||||
@@ -187,5 +187,6 @@
|
||||
"minPasswordLength": "Das Passwort muss mindestens 8 Zeichen haben.",
|
||||
"enterHabitica": "Tritt ein in Habitica",
|
||||
"socialAlreadyExists": "Diese Social-Media-Zugangsdaten sind bereits mit einem schon bestehenden Habitica-Konto verknüpft.",
|
||||
"emailUsernamePlaceholder": "z.B., habitrabbit oder gryphon@beispiel.com"
|
||||
"emailUsernamePlaceholder": "z.B., habitrabbit oder gryphon@beispiel.com",
|
||||
"footerProduct": "Produkt"
|
||||
}
|
||||
|
||||
@@ -2694,5 +2694,41 @@
|
||||
"weaponMystery202209Text": "Magie-Anleitung",
|
||||
"weaponMystery202209Notes": "Dieses Buch wird Dich auf Deiner Reise durch die Welt der Magie verzaubern. Gewährt keinen Attributbonus. September 2022 Abonnentengegenstand.",
|
||||
"shieldMystery202209Text": "Berg magischer Bücher",
|
||||
"shieldMystery202209Notes": "Bücherberge durchzulesen ist ein guter Weg um viel Zauberei-Wissen anzusammeln – diese Ausbildung wird einfach magisch! Gewährt keinen Attributbonus. September 2022 Abonnentengegenstand."
|
||||
"shieldMystery202209Notes": "Bücherberge durchzulesen ist ein guter Weg um viel Zauberei-Wissen anzusammeln – diese Ausbildung wird einfach magisch! Gewährt keinen Attributbonus. September 2022 Abonnentengegenstand.",
|
||||
"weaponSpecialFall2022MageNotes": "Diese mächtigen Böen bleiben zurück, wenn Du Dich gen Himmel schwingst. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"armorMystery202210Text": "Bedrohliche Schlange Rüstung",
|
||||
"armorMystery202210Notes": "Probiere einmal das Schlängeln aus, Du könntest feststellen, dass es eine sehr effiziente Art der Fortbewegung ist. Gewährt keinen Attributbonus. Oktober 2022 Abonnentengegenstand.",
|
||||
"shieldSpecialFall2022WarriorText": "Orkschild",
|
||||
"shieldSpecialFall2022WarriorNotes": "Süßes oder GRAAA! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"weaponSpecialFall2022RogueText": "Gurkenklinge",
|
||||
"weaponSpecialFall2022RogueNotes": "Du kannst Dich mit dieser Gurke nicht nur verteidigen, sie gibt auch eine leckere Zwischenmahlzeit ab. Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"weaponSpecialFall2022WarriorText": "Orkschwert",
|
||||
"weaponSpecialFall2022WarriorNotes": "Womöglich besser dafür geeignet, Baumstämme oder knusprige Brotlaibe zu zerschneiden als die Rüstung der Feinde, aber GRAAA! Es sieht in jedem Fall furchterregend aus! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"weaponSpecialFall2022MageText": "Windböen",
|
||||
"weaponSpecialFall2022HealerText": "Rechtes Beobachterauge",
|
||||
"weaponSpecialFall2022HealerNotes": "Um Deine Chancen zu verbessern, halte es hoch und sprich die Machtworte: \"Den Sieg fest im Blick!\" Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"armorSpecialFall2022RogueText": "Kappa Rüstung",
|
||||
"armorSpecialFall2022RogueNotes": "Ob Du schwimmst, umherschleichst oder ringst, in dieser Rüstung bist Du sicher. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"armorSpecialFall2022WarriorText": "Orkrüstung",
|
||||
"armorSpecialFall2022WarriorNotes": "GRAAA! MASSIGE SCHULTERN zeigen Du hast MASSIG KRAFT! Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"armorSpecialFall2022MageText": "Harpyienrüstung",
|
||||
"armorSpecialFall2022MageNotes": "Fliege schnell wie der Wind mit diesen wundervollen Flügeln und halte was Dir am wichtigsten ist fest in den furchterregenden Krallen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"armorSpecialFall2022HealerText": "Wuchernde Augenstiele",
|
||||
"headSpecialFall2022RogueText": "Kappa Maske",
|
||||
"headSpecialFall2022RogueNotes": "Mit dieser Metallkappe auf dem Kopf hast Du zusätzlichen Schutz für Deine Ausflüge an Land. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"headSpecialFall2022WarriorText": "Orkmaske",
|
||||
"shieldSpecialFall2022HealerNotes": "Wirf ein Auge auf dieses Kostüm und erzittere. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"headSpecialFall2022WarriorNotes": "Diese Hauer sind hart und scharf genug, um Kürbisse zu durchbohren. GRAAA! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"headSpecialFall2022MageText": "Harpyienmaske",
|
||||
"headSpecialFall2022HealerText": "Beobachtermaske",
|
||||
"headSpecialFall2022HealerNotes": "Irgendwo im Innern liegt Schönheit verborgen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"headMystery202210Text": "Bedrohliche Schlange Helm",
|
||||
"headMystery202210Notes": "Diese schuppige Kapuze wird sicherlich Deine To-Do Liste in die Unterwerfung ängstigen! Gewährt keinen Attributbonus. Oktober 2022 Abonnentengegenstand.",
|
||||
"shieldSpecialFall2022HealerText": "Linkes Beobachterauge",
|
||||
"eyewearArmoireComedyMaskText": "Komödienmaske",
|
||||
"eyewearArmoireTragedyMaskText": "Tragödienmaske",
|
||||
"armorSpecialFall2022HealerNotes": "Wie viele Beobachter könnte ein Beobachter beobachten, wenn ein Beobachter Beobachter beobachten könnte? Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"headSpecialFall2022MageNotes": "Zieh andere in Deinen Bann und locke sie zu Dir hin mit dieser magischen Maidenmaske. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Herbstausrüstung.",
|
||||
"eyewearArmoireComedyMaskNotes": "Heiter! Eine malerische Maske für Dein fröhlich' Herz, spielend, Freude verkündend, Heiterkeit und Frohsinn auf der Bühne ausstrahlend. Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Theatermaskenset (Gegenstand 1 von 2).",
|
||||
"eyewearArmoireTragedyMaskNotes": "Ach! Eine schwere Maske für Deinen armen Darsteller, stolzierend, sich grämend, und auf der Bühne Leid und Kummer ausdrückend. Erhöht Intelligenz um <%= int %>. Verzauberter Schrank: Theatermaskenset (Gegenstand 2 von 2)."
|
||||
}
|
||||
|
||||
@@ -162,10 +162,10 @@
|
||||
"onlyCreatorOrAdminCanDeleteChat": "Keine Berechtigung diese Nachricht zu löschen!",
|
||||
"onlyGroupLeaderCanEditTasks": "Nicht berechtigt, Aufgaben zu bearbeiten!",
|
||||
"onlyGroupTasksCanBeAssigned": "Nur Team-Aufgaben können verteilt werden",
|
||||
"assignedTo": "Zuweisen an",
|
||||
"assignedToUser": "<strong><%- userName %></strong> zugewiesen",
|
||||
"assignedToMembers": "<strong><%= userCount %></strong> Mitgliedern zugewiesen",
|
||||
"assignedToYouAndMembers": "Dir und <strong><%= userCount %> Mitliedern</strong> zugewiesen",
|
||||
"assignedTo": "Zugewiesen an",
|
||||
"assignedToUser": "Zugewiesen: <strong>@<%- userName %></strong>",
|
||||
"assignedToMembers": "<%= userCount %> Mitgliedern",
|
||||
"assignedToYouAndMembers": "<strong>Dir</strong>, <%= userCount %> Mitgliedern",
|
||||
"youAreAssigned": "Dir zugewiesen",
|
||||
"taskIsUnassigned": "Diese Aufgabe ist niemandem zugewiesen",
|
||||
"confirmUnClaim": "Bist Du sicher, dass Du diese Aufgabe abgeben möchtest?",
|
||||
@@ -190,7 +190,7 @@
|
||||
"needsWork": "Benötigt Arbeit",
|
||||
"viewRequests": "Anfragen anzeigen",
|
||||
"groupSubscriptionPrice": "$9 monatlich + $3 pro Monat für jedes weitere Gruppenmitglied",
|
||||
"groupBenefitsDescription": "Wir haben gerade die Betaversion der Gruppenpläne gestartet! Das Upgrade auf den Gruppenplan schaltet einige einzigartige Funktionen frei, welche die soziale Seite von Habitica verbessern.",
|
||||
"groupBenefitsDescription": "Wir haben gerade die Beta-Version unserer Gruppenpläne gestartet! Das Upgrade auf einen Gruppenplan schaltet einige einzigartige Funktionen frei, mit denen Du die sozialen Aspekte von Habitika optimal auszunutzen kannst.",
|
||||
"teamBasedTasks": "Gruppenorientierte Aufgaben",
|
||||
"cannotDeleteActiveGroup": "Du kannst keine Gruppe mit einem laufenden Abonnement löschen",
|
||||
"groupTasksTitle": "Gruppen-Aufgabenliste",
|
||||
@@ -380,5 +380,7 @@
|
||||
"viewDetails": "Details ansehen",
|
||||
"upgradeToGroup": "Auf Gruppenplan upgraden",
|
||||
"sendGiftTotal": "Insgesamt:",
|
||||
"chatTemporarilyUnavailable": "Chat aktuell nicht verfügbar. Bitte versuche es später erneut."
|
||||
"chatTemporarilyUnavailable": "Chat aktuell nicht verfügbar. Bitte versuche es später erneut.",
|
||||
"assignTo": "Zugewiesen an",
|
||||
"newGroupsEnjoy": "Wir hoffen, Dir gefallen die neuen Gruppenpläne!"
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
"newBaileyUpdate": "Neues Update von Bailey!",
|
||||
"tellMeLater": "Erzähl es mir später",
|
||||
"dismissAlert": "Als gelesen markieren",
|
||||
"donateText3": "Als Open-Source-Projekt ist Habitica auf die Hilfe unserer Benutzer angewiesen. Das Geld, was Du für Edelsteine ausgibst, hilft uns dabei unsere Server am Laufen zu halten, ein paar Mitarbeiter zu bezahlen, neue Features zu entwickeln und unseren ehrenamtlichen Programmierern Anreize zu bieten. Vielen Dank für Deine Großzügigkeit!",
|
||||
"donateText3": "Als Open-Source-Projekt ist Habitica auf die Hilfe unserer Benutzer angewiesen. Das Geld, was Du für Edelsteine ausgibst, hilft uns dabei unsere Server am Laufen zu halten, ein paar Mitarbeiter zu bezahlen, neue Features zu entwickeln und unseren ehrenamtlichen Helferlein Anreize zu bieten.",
|
||||
"card": "Kreditkarte",
|
||||
"paymentMethods": "Kauf mit",
|
||||
"paymentSuccessful": "Die Zahlung war erfolgreich!",
|
||||
@@ -131,5 +131,8 @@
|
||||
"limitedAvailabilityHours": "Für <%= days %>t <%= hours %>std und <%= minutes %>min verfügbar",
|
||||
"limitedAvailabilityDays": "Für <%= days %>t <%= hours %>std und <%= minutes %>min verfügbar",
|
||||
"amountExp": "<%= amount %> Exp",
|
||||
"newStuffPostedOn": "Veröffentlicht am <%= publishDate %> um <%= publishTime %>"
|
||||
"newStuffPostedOn": "Veröffentlicht am <%= publishDate %> um <%= publishTime %>",
|
||||
"helpSupportHabitica": "Hilf Habitica zu unterstützen",
|
||||
"groupsPaymentSubBilling": "Dein nächstes Rechnungsdatum ist <strong><%= renewalDate %></strong>.",
|
||||
"groupsPaymentAutoRenew": "Dieses Abonnement läuft automatisch weiter, bis es gekündigt wird. Du kannst es im Gruppen-Abrechnungs-Tab kündigen."
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
"collected": "Gesammelt",
|
||||
"abort": "Abbrechen",
|
||||
"leaveQuest": "Quest verlassen",
|
||||
"sureLeave": "Willst du die Quest wirklich abbrechen? Dein kompletter Questfortschritt wird verloren gehen.",
|
||||
"sureLeave": "Willst Du die Quest wirklich abbrechen? Dein ganzer Fortschritt wird verloren gehen.",
|
||||
"mustComplete": "Du musst vorher die <%= quest %> Quest abschließen.",
|
||||
"mustLvlQuest": "Du musst Level <%= level %> sein um diese Quest zu erwerben!",
|
||||
"unlockByQuesting": "Um diese Quest freizuschalten, musst Du erst <%= title %> abschließen.",
|
||||
"questConfirm": "Bist du sicher, dass du diese Quest starten willst? Nicht alle Mitspieler deiner Party haben die Einladung zu dieser Quest akzeptiert. Quests starten automatisch sobald alle Mitspieler die Einladung angenommen oder abgelehnt haben.",
|
||||
"questConfirm": "Bist Du sicher, dass Du diese Quest starten willst? Nicht alle Mitglieder Deiner Party haben die Einladung zu dieser Quest akzeptiert. Quests starten automatisch sobald alle Mitspieler die Einladung beantwortet haben.",
|
||||
"sureCancel": "Bist Du sicher, dass Du diese Quest abbrechen willst? Wenn Du die Quest abbrichst werden alle bereits akzeptierten und noch unbeantworteten Einladungen zurückgenommen und die Questschriftrolle wird an ihren Besitzer zurückgegeben.",
|
||||
"sureAbort": "Bist Du sicher, dass Du diese Mission abbrechen willst? Aller Questfortschritt wird verloren gehen. Die Questschriftrolle wird dem Besitzer zurückgegeben.",
|
||||
"sureAbort": "Bist Du sicher, dass Du diese Quest abbrechen willst? Der ganze Fortschritt geht verloren und die Questschriftrolle wird dem Besitzer zurückgegeben.",
|
||||
"doubleSureAbort": "Bist Du wirklich, wirklich sicher? Sei ganz sicher, dass sie Dich nicht für immer hassen werden!",
|
||||
"bossRageTitle": "Raserei",
|
||||
"bossRageDescription": "Wenn sich dieser Balken füllt, wird der Boss eine Spezialattacke ausführen!",
|
||||
@@ -90,7 +90,7 @@
|
||||
"selectQuest": "Wähle eine Quest aus",
|
||||
"noQuestToStartTitle": "Kannst Du keine Quest finden, die du beginnen möchtest?",
|
||||
"membersParticipating": "<%= accepted %> / <%= invited %> Mitglieder nehmen teil",
|
||||
"yourPartyIsNotOnQuest": "Deine Gruppe befindet sich nicht auf einer Quest",
|
||||
"yourPartyIsNotOnQuest": "Deine Party befindet sich nicht auf einer Quest",
|
||||
"questOwner": "Questbesitzer",
|
||||
"cancelQuest": "Quest abbrechen",
|
||||
"backToSelection": "Zurück zur Questauswahl",
|
||||
@@ -98,5 +98,5 @@
|
||||
"newItem": "Neuer Gegenstand",
|
||||
"ownerOnly": "Nur der Besitzer",
|
||||
"questItemsPending": "<%= amount %> Gegenstände ausstehend",
|
||||
"selectQuestModal": "Such dir eine Quest aus"
|
||||
"selectQuestModal": "Such Dir eine Quest aus"
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
"questTRexCompletion": "Der wilde Dinosaurier hört endlich zu toben und zu randalieren auf, setzt sich ruhig hin und fängt an sich mit den riesigen Hähnen anzufreunden. @Urse strahlt ihn an. \"Sie sind doch gar keine so schlimmen Haustiere! Sie brauchen einfach nur ein bisschen Disziplin. Hier, nimm Dir ein paar Tyrannosaurus-Eier mit!\"",
|
||||
"questTRexBoss": "Fleischerner Tyrannosaurus",
|
||||
"questTRexUndeadText": "Der Dinosaurier aus den Tiefen der Erde",
|
||||
"questTRexUndeadNotes": "Während die uralten Dinosaurier der Stoïstillen Steppen durch HabitCity wandern, hört man auf ein mal einen angstvollen Schrei aus Richtung des Grand Museums. @Baconsaur ruft: \"Das Tyrannosaurus-Skelett im Museum fängt an sich zu bewegen! Es muss die Anwesenheit seiner Artgenossen gewittert haben!\" Das knöcherne Biest bleckt seine monströsen Zähne und klappert auf Dich zu. Wie wirst Du in der Lage sein eine Kreatur zu besiegen, die bereits tot ist? Du wirst schnell zuschlagen müssen, bevor sie sich selbst heilt!",
|
||||
"questTRexUndeadNotes": "Während die uralten Dinosaurier der Stoïstillen Steppen durch Habit City wandern, hört man auf ein mal einen angstvollen Schrei aus Richtung des Grand Museums. @Baconsaur ruft: \"Das Tyrannosaurus-Skelett im Museum fängt an sich zu bewegen! Es muss die Anwesenheit seiner Artgenossen gewittert haben!\" Das knöcherne Biest bleckt seine monströsen Zähne und klappert auf Dich zu. Wie wirst Du in der Lage sein eine Kreatur zu besiegen, die bereits tot ist? Du wirst schnell zuschlagen müssen, bevor sie sich selbst heilt!",
|
||||
"questTRexUndeadCompletion": "Die glühenden Augen des Tyrannosaurus werden dunkel und trüb und er begibt sich zurück zu seinem Sockel. Alle atmen vor Erleichterung auf. \"Seht nur!\", sagt @Baconsaur, \"einige der versteinerten Eier sind plötzlich wie neu! Vielleicht werden sie ja für Dich ausschlüpfen.\"",
|
||||
"questTRexUndeadBoss": "Skelettierter Tyrannosaurus",
|
||||
"questTRexUndeadRageTitle": "Knöcherne Heilung",
|
||||
@@ -513,7 +513,7 @@
|
||||
"questHippoDropHippoEgg": "Nilpferd (Ei)",
|
||||
"questHippoUnlockText": "Schaltet den Kauf von Nilpferdeiern auf dem Marktplatz frei",
|
||||
"farmFriendsText": "\"Farmfreunde\" Quest-Paket",
|
||||
"farmFriendsNotes": "Beinhaltet 'Die Muhtantische Kuh', 'Reite die Nacht-Mähre', und 'Der Donner-Bock'. Verfügbar bis zum 31. August.",
|
||||
"farmFriendsNotes": "Beinhaltet 'Die Muhtantische Kuh', 'Reite die Nacht-Mähre', und 'Der Donner-Bock'. Verfügbar bis zum 30. September.",
|
||||
"witchyFamiliarsText": "\"Hexenhafte Haustiere\" Quest-Paket",
|
||||
"witchyFamiliarsNotes": "Beinhaltet 'Der Rattenkönig', 'Die eisige Arachnoide', und 'Sumpf des Chaos-Froschs'. Verfügbar bis zum 31. Oktober.",
|
||||
"questGroupLostMasterclasser": "Geheimnis der Klassenmeister",
|
||||
@@ -700,7 +700,7 @@
|
||||
"questFluoriteBoss": "Fluorit-Elementar",
|
||||
"questFluoriteText": "Ein leuchtender, furchteinflößender Fluorit",
|
||||
"questFluoriteCompletion": "Während dem Kampf scheint die kristallene Kreatur mehr und mehr durch eure Lichter abgelenkt. “Das glitzert…” murmelt sie.<br><br>“Natürlich!” ruft @nirbhao. “Das muss ein Fluorit-Elemental sein. Die wollen nur ein wenig Licht, damit sie glimmen können. Lasst uns ihm helfen, so richtig hell zu scheinen.”<br><br>Das Elemental kichert glücklich und glimmt immer heller unter euren Fackeln und den magischen Glanzlichtern. Es scheint glücklich zu sein, wieder scheinen zu können, so dass es euch zu einem reichen Lager von Fluoritkristallen führt.<br><br>“Das ist die perfekte Zutat für ein neues Schlüpfelixier” findet @nirbhao. “Eines, das unsere Haustiere gerade so hell wie unseren neuen fluoreszierenden Freund hier scheinen lassen wird.”",
|
||||
"questFluoriteNotes": "Ungewöhnliche Mineralien sind sehr gefragt dieser Tage, deshalb bist Du mit einigen Freunden auf der Suche nach aufregenden Erzen tief in die Minen der Mäander-Berge gewandert. Es ist eine lange, langweilige Expedition, bis @-Tyr- über einen grossen Stein stolpert, der genau in der Mitte des Tunnels liegt.<br><br>“Das hier sollte etwas Licht in die Sache bringen” sagt @nirbhao und zaubert eine Lichtkugel hervor.<br><br>Ein warmes Leuchten erfüllt den Tunnel, doch nun passiert etwas seltsames mit dem Stein. Vom magischen Licht zehrend, fängt er in fluoreszierendem Blau, Grün und Violett zu leuchten an. Dann richtet er sich in einer halbwegs humanoiden Form auf, inklusive glühend roten Augen, mit denen er Dich fixiert! Sofort beginnt ihr, blitzende Zaubersprüche zu sprechen und glänzende Waffen zu schwingen.",
|
||||
"questFluoriteNotes": "Ungewöhnliche Mineralien sind sehr gefragt dieser Tage, deshalb bist Du mit einigen Freunden auf der Suche nach aufregenden Erzen tief in die Minen des Mäandergebirges gewandert. Es ist eine lange, langweilige Expedition, bis @-Tyr- über einen grossen Stein stolpert, der genau in der Mitte des Tunnels liegt.<br><br>“Das hier sollte etwas Licht in die Sache bringen” sagt @nirbhao und zaubert eine Lichtkugel hervor.<br><br>Ein warmes Leuchten erfüllt den Tunnel, doch nun passiert etwas seltsames mit dem Stein. Vom magischen Licht zehrend, fängt er in fluoreszierendem Blau, Grün und Violett zu leuchten an. Dann richtet er sich in einer halbwegs humanoiden Form auf, inklusive glühend roten Augen, mit denen er Dich fixiert! Sofort beginnt ihr, blitzende Zaubersprüche zu sprechen und glänzende Waffen zu schwingen.",
|
||||
"questWindupUnlockText": "Schaltet den Kauf von Aufziehbaren Schlüpfelixieren auf dem Marktplatz frei",
|
||||
"questWindupDropWindupPotion": "Aufziehbares Schlüpfelixier",
|
||||
"questWindupText": "Zähme die zankenden Zahnräder",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"rebirthOrb": "Hat eine Sphäre der Wiedergeburt verwendet um noch einmal von vorne zu beginnen, nachdem Level <%= level %> erreicht wurde.",
|
||||
"rebirthOrb100": "Hat eine Sphäre der Wiedergeburt verwendet um noch einmal von vorne zu beginnen, nachdem Level 100 oder höher erreicht wurde.",
|
||||
"rebirthOrbNoLevel": "Hat eine Sphäre der Wiedergeburt verwendet um noch einmal von vorne zu beginnen.",
|
||||
"rebirthPop": "Beginne sofort von vorn mit einem Charakter auf Level 1, aber behalte Erfolge, Sammelgegenstände und Ausrüstung. Deine Aufgaben und ihre Verläufe bleiben erhalten, werden aber auf gelb zurückgesetzt. Deine Strähnen verfallen, ausser für Aufgaben, die von aktiven Herausforderungen oder Gruppenplänen stammen. Gold, Erfahrung, Mana und alle Effekte von Fähigkeiten werden entfernt. All das wird sofort in Kraft treten. Für mehr Informationen schau im Wiki auf der Seite <a href='https://habitica.fandom.com/de/wiki/Sph%C3%A4re_der_Wiedergeburt' target='_blank'>Sphäre der Wiedergeburt</a> nach.",
|
||||
"rebirthPop": "Beginne sofort von vorn mit einem Charakter auf Level 1, aber behalte Erfolge, Sammelgegenstände und Ausrüstung. Deine Aufgaben und ihre Verläufe bleiben erhalten, werden aber auf gelb zurückgesetzt. Deine Strähnen verfallen, außer für Aufgaben, die von aktiven Herausforderungen oder Gruppenplänen stammen. Gold, Erfahrung, Mana und alle Effekte von Fähigkeiten werden entfernt. All das wird sofort in Kraft treten. Für mehr Informationen, schau im Wiki auf der Seite <a href='https://habitica.fandom.com/de/wiki/Sphäre_der_Wiedergeburt' target='_blank'>Sphäre der Wiedergeburt</a> nach.",
|
||||
"rebirthName": "Sphäre der Wiedergeburt",
|
||||
"rebirthComplete": "Du wurdest wiedergeboren!",
|
||||
"nextFreeRebirth": "<strong><%= days %> Tage</strong> bis zur <strong>KOSTENLOSEN</strong> Sphäre der Wiedergeburt"
|
||||
|
||||
@@ -218,5 +218,6 @@
|
||||
"dayStartAdjustment": "Änderung des Tageswechsel",
|
||||
"passwordSuccess": "Passwort erfolgreich geändert",
|
||||
"giftSubscriptionRateText": "<strong>$<%= price %> $(USD)</strong> für <strong><%= months %> Monate</strong>",
|
||||
"transaction_admin_update_balance": "Admin gegeben"
|
||||
"transaction_admin_update_balance": "Admin gegeben",
|
||||
"transaction_admin_update_hourglasses": "Admin aktualisiert"
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
"paypalCanceled": "Dein Abonnement wurde gekündigt",
|
||||
"choosePaymentMethod": "Wähle Deine Zahlungsmethode",
|
||||
"buyGemsSupportsDevs": "Der Kauf von Edelsteinen unterstützt die Entwickler und hilft Habitica am Laufen zu halten",
|
||||
"support": "HILFE",
|
||||
"support": "Hilfe",
|
||||
"gemBenefitLeadin": "Was kann man mit Edelsteinen kaufen?",
|
||||
"gemBenefit1": "Einzigartige und modische Verkleidungen für Deinen Avatar.",
|
||||
"gemBenefit2": "Hintergründe, die Deinen Avatar in die Welt von Habitica eintauchen lassen!",
|
||||
@@ -213,5 +213,6 @@
|
||||
"wantToSendOwnGems": "Willst Du von deinen eigenen Edelsteinen senden?",
|
||||
"needToPurchaseGems": "Willst Du Edelsteine als Geschenk kaufen?",
|
||||
"mysterySet202208": "Frecher Pferdeschwanz-Set",
|
||||
"mysterySet202209": "Magisches Gelehrten-Set"
|
||||
"mysterySet202209": "Magisches Gelehrten-Set",
|
||||
"mysterySet202210": "Bedrohliche Schlange Set"
|
||||
}
|
||||
|
||||
@@ -819,6 +819,14 @@
|
||||
"backgroundOldPhotoText": "Old Photo",
|
||||
"backgroundOldPhotoNotes": "Strike a pose in an Old Photo.",
|
||||
|
||||
"backgrounds102022": "SET 101: Released October 2022",
|
||||
"backgroundSpookyRuinsText": "Spooky Ruins",
|
||||
"backgroundSpookyRuinsNotes": "Explore some Spooky Ruins.",
|
||||
"backgroundMaskMakersWorkshopText": "Mask Maker's Workshop",
|
||||
"backgroundMaskMakersWorkshopNotes": "Try on a new face at the Mask Maker's Workshop.",
|
||||
"backgroundCemeteryGateText": "Cemetery Gate",
|
||||
"backgroundCemeteryGateNotes": "Haunt a Cemetery Gate.",
|
||||
|
||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||
"backgroundAirshipText": "Airship",
|
||||
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
"termsAndAgreement": "By clicking the button below, you are indicating that you have read and agree to the <a href='/static/terms'>Terms of Service</a> and <a href='/static/privacy'>Privacy Policy</a>.",
|
||||
"chores": "Chores",
|
||||
"clearBrowserData": "Clear Browser Data",
|
||||
"communityExtensions": "<a href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Add-ons & Extensions</a>",
|
||||
"communityExtensions": "Add-ons & Extensions",
|
||||
"communityFacebook": "Facebook",
|
||||
"communityInstagram": "Instagram",
|
||||
"companyAbout": "How It Works",
|
||||
"companyBlog": "Blog",
|
||||
"companyContribute": "Contribute",
|
||||
"companyDonate": "Donate",
|
||||
"companyContribute": "Contributing to Habitica",
|
||||
"companyDonate": "Donate to Habitica",
|
||||
"forgotPassword": "Forgot Password?",
|
||||
"emailNewPass": "Email a Password Reset Link",
|
||||
"forgotPasswordSteps": "Enter your username or the email address you used to register your Habitica account.",
|
||||
@@ -18,6 +18,7 @@
|
||||
"footerCommunity": "Community",
|
||||
"footerCompany": "Company",
|
||||
"footerMobile": "Mobile",
|
||||
"footerProduct": "Product",
|
||||
"footerSocial": "Social",
|
||||
"free": "Join for free",
|
||||
"guidanceForBlacksmiths": "Guidance for Blacksmiths",
|
||||
@@ -51,8 +52,8 @@
|
||||
"marketing4Lead3-1": "Want to gamify your life?",
|
||||
"marketing4Lead3-2": "Interested in running a group in education, wellness, and more?",
|
||||
"marketing4Lead3Title": "Gamify Everything",
|
||||
"mobileAndroid": "Android",
|
||||
"mobileIOS": "iOS",
|
||||
"mobileAndroid": "Android App",
|
||||
"mobileIOS": "iOS App",
|
||||
"oldNews": "News",
|
||||
"newsArchive": "News archive on Wikia (multilingual)",
|
||||
"setNewPass": "Set New Password",
|
||||
|
||||
@@ -447,6 +447,15 @@
|
||||
"weaponSpecialSpring2022HealerText": "Peridot Wand",
|
||||
"weaponSpecialSpring2022HealerNotes": "Use this wand to tap into peridot’s healing properties, whether it be to bring calm, positivity, or kindheartedness. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring Gear.",
|
||||
|
||||
"weaponSpecialFall2022RogueText": "Cucumber Blade",
|
||||
"weaponSpecialFall2022RogueNotes": "Not only can you defend yourself with this cucumber, it also makes for a tasty meal. Increases Strength by <%= str %>. Limited Edition 2022 Fall Gear.",
|
||||
"weaponSpecialFall2022WarriorText": "Orcish Ripsword",
|
||||
"weaponSpecialFall2022WarriorNotes": "Maybe more suited for cutting logs or crusty loaves of bread than enemy armor, but RAWR! It sure looks fearsome! Increases Strength by <%= str %>. Limited Edition 2022 Fall Gear.",
|
||||
"weaponSpecialFall2022MageText": "Wind Blasts",
|
||||
"weaponSpecialFall2022MageNotes": "These mighty gusts remain in your wake as you take off toward the skies. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2022 Fall Gear.",
|
||||
"weaponSpecialFall2022HealerText": "Right Peeker Eye",
|
||||
"weaponSpecialFall2022HealerNotes": "To claim victory, hold it forth and utter the words of command: 'Eye One!' Increases Intelligence by <%= int %>. Limited Edition 2022 Fall Gear.",
|
||||
|
||||
"weaponMystery201411Text": "Pitchfork of Feasting",
|
||||
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
|
||||
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
|
||||
@@ -473,6 +482,8 @@
|
||||
"weaponMystery202201Notes": "Unleash a cloud of gold and silver glitter when the clock strikes midnight. Happy New Year! Now who's cleaning this up? Confers no benefit. January 2022 Subscriber Item.",
|
||||
"weaponMystery202209Text": "Magic Manual",
|
||||
"weaponMystery202209Notes": "This book will guide you through your journey into magic-making. Confers no benefit. September 2022 Subscriber Item.",
|
||||
"weaponMystery202211Text": "Electromancer Staff",
|
||||
"weaponMystery202211Notes": "Harness the awesome power of a lightning storm with this staff. Confers no benefit. November 2022 Subscriber Item.",
|
||||
"weaponMystery301404Text": "Steampunk Cane",
|
||||
"weaponMystery301404Notes": "Excellent for taking a turn about town. March 3015 Subscriber Item. Confers no benefit.",
|
||||
|
||||
@@ -1083,6 +1094,15 @@
|
||||
"armorSpecialSummer2022HealerText": "Angelfish Tail",
|
||||
"armorSpecialSummer2022HealerNotes": "Use your colorful fins to scoot about the reef and help those in need of rest and healing. Increases Constitution by <%= con %>. Limited Edition 2022 Summer Gear.",
|
||||
|
||||
"armorSpecialFall2022RogueText": "Kappa Armor",
|
||||
"armorSpecialFall2022RogueNotes": "Whether you’re swimming, sneaking, or wrestling, you will be safe in this armor. Increases Perception by <%= per %>. Limited Edition 2022 Fall Gear.",
|
||||
"armorSpecialFall2022WarriorText": "Orcish Armor",
|
||||
"armorSpecialFall2022WarriorNotes": "RAWR! BIG SHOULDERS mean you are BIG STRONG! Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.",
|
||||
"armorSpecialFall2022MageText": "Harpy Armor",
|
||||
"armorSpecialFall2022MageNotes": "Fly as fast as the wind with these wonderful wings and hold what you care most about tight in these terrifying talons. Increases Intelligence by <%= int %>. Limited Edition 2022 Fall Gear.",
|
||||
"armorSpecialFall2022HealerText": "Profusion of Peeker Pods",
|
||||
"armorSpecialFall2022HealerNotes": "How many peeps could a Peeker peep, if a Peeker could peep peeps? Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.",
|
||||
|
||||
"armorMystery201402Text": "Messenger Robes",
|
||||
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
|
||||
"armorMystery201403Text": "Forest Walker Armor",
|
||||
@@ -1193,6 +1213,8 @@
|
||||
"armorMystery202204Notes": "Looks like doing your tasks now requires pushing these mysterious buttons! What could they do? Confers no benefit. April 2022 Subscriber Item.",
|
||||
"armorMystery202207Text": "Jammin' Jelly Armor",
|
||||
"armorMystery202207Notes": "This armor will have you looking glamorous and gelatinous. Confers no benefit. July 2022 Subscriber Item.",
|
||||
"armorMystery202210Text": "Ominous Ophidian Armor",
|
||||
"armorMystery202210Notes": "Try slithering for a change, you may find it's quite an efficient mode of transportation! Confers no benefit. October 2022 Subscriber Item.",
|
||||
"armorMystery301404Text": "Steampunk Suit",
|
||||
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
|
||||
"armorMystery301703Text": "Steampunk Peacock Gown",
|
||||
@@ -1370,6 +1392,8 @@
|
||||
"armorArmoireStrawRaincoatNotes": "This woven straw cape will keep you dry and your armor from rusting while on your quest. Just don’t venture too near a candle! Increases Constitution by <%= con %>. Enchanted Armoire: Straw Raincoat Set (Item 1 of 2).",
|
||||
"armorArmoireFancyPirateSuitText": "Fancy Pirate Jacket",
|
||||
"armorArmoireFancyPirateSuitNotes": "Wear this fine jacket well as you organize your ship’s library or talk it through as a crew. Increases Constitution and Intelligence by <%= attrs %> each. Enchanted Armoire: Fancy Pirate Set (Item 1 of 3).",
|
||||
"armorArmoireSheetGhostCostumeText": "Sheet Ghost Costume",
|
||||
"armorArmoireSheetGhostCostumeNotes": "Boo! This is the scariest costume in all of Habitica, so wear it wisely... and watch your step so you don’t trip. Increases Constitution by <%= con %>. Enchanted Armoire: Independent Item.",
|
||||
|
||||
"headgear": "helm",
|
||||
"headgearCapitalized": "Headgear",
|
||||
@@ -1793,6 +1817,15 @@
|
||||
"headSpecialSpring2022HealerText": "Peridot Helmet",
|
||||
"headSpecialSpring2022HealerNotes": "This mysterious helmet preserves your privacy as you tackle your tasks. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring Gear.",
|
||||
|
||||
"headSpecialFall2022RogueText": "Kappa Mask",
|
||||
"headSpecialFall2022RogueNotes": "With this metal cap upon your head, you will have extra protection when you venture onto land. Increases Perception by <%= per %>. Limited Edition 2022 Fall Gear.",
|
||||
"headSpecialFall2022WarriorText": "Orc Mask",
|
||||
"headSpecialFall2022WarriorNotes": "Tusks tough and sharp enough to pierce pumpkins! RAWR! Increases Strength by <%= str %>. Limited Edition 2022 Fall Gear.",
|
||||
"headSpecialFall2022MageText": "Harpy Mask",
|
||||
"headSpecialFall2022MageNotes": "Entrance and lure others close with this magical maiden mask. Increases Perception by <%= per %>. Limited Edition 2022 Fall Gear.",
|
||||
"headSpecialFall2022HealerText": "Peeker Mask",
|
||||
"headSpecialFall2022HealerNotes": "Beauty is in there. Somewhere! Increases Intelligence by <%= int %>. Limited Edition 2022 Fall Gear.",
|
||||
|
||||
"headSpecialGaymerxText": "Rainbow Warrior Helm",
|
||||
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
|
||||
|
||||
@@ -1932,7 +1965,11 @@
|
||||
"headMystery202207Notes": "Need a hand with your tasks? Will several dozen bioluminescent tentacles do? Confers no benefit. July 2022 Subscriber Item.",
|
||||
"headMystery202208Text": "Perky Ponytail",
|
||||
"headMystery202208Notes": "Enjoy showing off this voluminous hair - it can double as a whip in a pinch! Confers no benefit. August 2022 Subscriber Item.",
|
||||
|
||||
"headMystery202210Text": "Ominous Ophidian Helm",
|
||||
"headMystery202210Notes": "This scaly hood will surely terrify your To-Do list into submission! Confers no benefit. October 2022 Subscriber Item.",
|
||||
"headMystery202211Text": "Electromancer Hat",
|
||||
"headMystery202211Notes": "Be careful with this powerful hat, its effect on admirers can be quite shocking! Confers no benefit. November 2022 Subscriber Item.",
|
||||
|
||||
"headMystery301404Text": "Fancy Top Hat",
|
||||
"headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.",
|
||||
"headMystery301405Text": "Basic Top Hat",
|
||||
@@ -2345,6 +2382,11 @@
|
||||
"shieldSpecialSummer2022HealerText": "Remedial Ripples",
|
||||
"shieldSpecialSummer2022HealerNotes": "Send out restorative magic in gentle ripples through the reef. Increases Constitution by <%= con %>. Limited Edition 2022 Summer Gear.",
|
||||
|
||||
"shieldSpecialFall2022WarriorText": "Orc Shield",
|
||||
"shieldSpecialFall2022WarriorNotes": "RAWR or TREAT! Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.",
|
||||
"shieldSpecialFall2022HealerText": "Left Peeker Eye",
|
||||
"shieldSpecialFall2022HealerNotes": "Eye Two, look upon this costume and tremble. Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.",
|
||||
|
||||
"shieldMystery201601Text": "Resolution Slayer",
|
||||
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
|
||||
"shieldMystery201701Text": "Time-Freezer Shield",
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
"userIsClamingTask": "`<%= username %> has claimed:` <%= task %>",
|
||||
"approvalRequested": "Approval Requested",
|
||||
"cantDeleteAssignedGroupTasks": "Can't delete group tasks that are assigned to you.",
|
||||
"groupPlanUpgraded": "<strong><%- groupName %></strong> was upgraded to a Group Plan!",
|
||||
"groupPlanUpgraded": "<strong><%- groupName %></strong> was successfully upgraded to a Group Plan!",
|
||||
"groupPlanCreated": "<strong><%- groupName %></strong> was created!",
|
||||
"onlyGroupLeaderCanInviteToGroupPlan": "Only the group leader can invite users to a group with a subscription.",
|
||||
"paymentDetails": "Payment Details",
|
||||
@@ -342,7 +342,21 @@
|
||||
"exampleGroupName": "Example: Avengers Academy",
|
||||
"exampleGroupDesc": "For those selected to join the training academy for The Avengers Superhero Initiative",
|
||||
"thisGroupInviteOnly": "This group is invitation only.",
|
||||
"createGroup": "Create a Group",
|
||||
"groupUse": "Which best describes the use of your Group?*",
|
||||
"groupUseDefault": "Choose an answer",
|
||||
"groupParentChildren": "Parent(s) setting up tasks for children",
|
||||
"groupCouple": "Couple sharing tasks",
|
||||
"groupFriends": "Friends sharing tasks",
|
||||
"groupCoworkers": "Coworkers sharing tasks",
|
||||
"groupManager": "Manager setting up tasks for employees",
|
||||
"groupTeacher": "Teacher setting up tasks for students",
|
||||
"gettingStarted": "Getting Started",
|
||||
"nameStar": "Name*",
|
||||
"nameStarText": "Add a title",
|
||||
"descriptionOptional": "Description",
|
||||
"descriptionOptionalText": "Add a description",
|
||||
"nextPaymentMethod": "Next: Payment Method",
|
||||
"congratsOnGroupPlan": "Congratulations on creating your new Group! Here are a few answers to some of the more commonly asked questions.",
|
||||
"whatsIncludedGroup": "What's included in the subscription",
|
||||
"whatsIncludedGroupDesc": "All members of the Group receive full subscription benefits, including the monthly subscriber items, the ability to buy Gems with Gold, and the Royal Purple Jackalope mount, which is exclusive to users with a Group Plan membership.",
|
||||
|
||||
@@ -187,6 +187,10 @@
|
||||
"summer2022WaterspoutWarriorSet": "Waterspout (Warrior)",
|
||||
"summer2022MantaRayMageSet": "Manta Ray (Mage)",
|
||||
"summer2022AngelfishHealerSet": "Angelfish (Healer)",
|
||||
"fall2022KappaRogueSet": "Kappa (Rogue)",
|
||||
"fall2022OrcWarriorSet": "Orc (Warrior)",
|
||||
"fall2022HarpyMageSet": "Harpy (Mage)",
|
||||
"fall2022WatcherHealerSet": "Peeker (Healer)",
|
||||
"eventAvailability": "Available for purchase until <%= date(locale) %>.",
|
||||
"eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.",
|
||||
"dateEndJanuary": "January 31",
|
||||
@@ -226,5 +230,7 @@
|
||||
"g1g1HowItWorks": "Type in the username of the account you’d like to gift to. From there, pick the sub length you’d like to gift and check out. Your account will automatically be rewarded with the same level of subscription you just gifted.",
|
||||
"limitations": "Limitations",
|
||||
"g1g1Limitations": "This is a limited time event that starts on December 16th at 8:00 AM ET (13:00 UTC) and will end January 6th at 8:00 PM ET (1:00 UTC). This promotion only applies when you gift to another Habitican. If you or your gift recipient already have a subscription, the gifted subscription will add months of credit that will only be used after the current subscription is canceled or expires.",
|
||||
"noLongerAvailable": "This item is no longer available."
|
||||
"noLongerAvailable": "This item is no longer available.",
|
||||
"gemSaleHow": "Between <%= eventStartMonth %> <%= eventStartOrdinal %> and <%= eventEndOrdinal %>, simply purchase any Gem bundle like usual and your account will be credited with the promotional amount of Gems. More Gems to spend, share, or save for any future releases!",
|
||||
"gemSaleLimitations": "This promotion only applies during the limited time event. This event starts on <%= eventStartMonth %> <%= eventStartOrdinal %> at 8:00 AM EDT (12:00 UTC) and will end <%= eventStartMonth %> <%= eventEndOrdinal %> at 8:00 PM EDT (00:00 UTC). The promo offer is only available when buying Gems for yourself."
|
||||
}
|
||||
|
||||
@@ -85,7 +85,8 @@
|
||||
"newBaileyUpdate": "New Bailey Update!",
|
||||
"tellMeLater": "Tell Me Later",
|
||||
"dismissAlert": "Dismiss This Alert",
|
||||
"donateText3": "Habitica is an open source project that depends on our users for support. The money you spend on gems helps us keep the servers running, maintain a small staff, develop new features, and provide incentives for our volunteer programmers. Thank you for your generosity!",
|
||||
"donateText3": "Habitica is an open source project that depends on our users for support. The money you spend on gems helps us keep the servers running, maintain a small staff, develop new features, and provide incentives for our volunteers",
|
||||
"helpSupportHabitica": "Help Support Habitica",
|
||||
"card": "Credit Card",
|
||||
"paymentMethods": "Purchase using",
|
||||
"paymentSuccessful": "Your payment was successful!",
|
||||
@@ -93,8 +94,10 @@
|
||||
"paymentYouSentGems": "You sent <strong><%- name %></strong>:",
|
||||
"paymentYouSentSubscription": "You sent <strong><%- name %></strong> a <%= months %>-months Habitica subscription.",
|
||||
"paymentSubBilling": "Your subscription will be billed <strong>$<%= amount %></strong> every <strong><%= months %> months</strong>.",
|
||||
"groupsPaymentSubBilling": "Your next billing date is <strong><%= renewalDate %></strong>.",
|
||||
"paymentSubBillingWithMethod": "Your subscription will be billed <strong>$<%= amount %></strong> every <strong><%= months %> months</strong> via <strong><%= paymentMethod %></strong>.",
|
||||
"paymentAutoRenew": "This subscription will auto-renew until it is canceled. If you need to cancel this subscription, you can do so from your settings.",
|
||||
"groupsPaymentAutoRenew": "This subscription will auto-renew until it is canceled. If you need to cancel, you can do so from the Group Billing tab.",
|
||||
"paymentCanceledDisputes": "We’ve sent a cancelation confirmation to your email. If you don’t see the email, please contact us to prevent future billing disputes.",
|
||||
"success": "Success!",
|
||||
"classGear": "Class Gear",
|
||||
|
||||
@@ -596,7 +596,7 @@
|
||||
"questHippoUnlockText": "Unlocks Hippo Eggs for purchase in the Market",
|
||||
|
||||
"farmFriendsText": "Farm Friends Quest Bundle",
|
||||
"farmFriendsNotes": "Contains 'The Mootant Cow', 'Ride the Night-Mare', and 'The Thunder Ram'. Available until August 31.",
|
||||
"farmFriendsNotes": "Contains 'The Mootant Cow', 'Ride the Night-Mare', and 'The Thunder Ram'. Available until September 30.",
|
||||
|
||||
"witchyFamiliarsText": "Witchy Familiars Quest Bundle",
|
||||
"witchyFamiliarsNotes": "Contains 'The Rat King', 'The Icy Arachnid', and 'Swamp of the Clutter Frog'. Available until October 31.",
|
||||
|
||||
@@ -213,5 +213,6 @@
|
||||
"transaction_release_mounts": "Released mounts",
|
||||
"transaction_reroll": "Used Fortify Potion",
|
||||
"transaction_subscription_perks": "From subscription perk",
|
||||
"transaction_admin_update_balance": "Admin given"
|
||||
"transaction_admin_update_balance": "Admin given",
|
||||
"transaction_admin_update_hourglasses": "Admin updated"
|
||||
}
|
||||
|
||||
@@ -142,6 +142,8 @@
|
||||
"mysterySet202207": "Jammin' Jelly Set",
|
||||
"mysterySet202208": "Perky Ponytail Set",
|
||||
"mysterySet202209": "Magical Scholar Set",
|
||||
"mysterySet202210": "Ominous Ophidian Set",
|
||||
"mysteryset202211": "Electromancer Set",
|
||||
"mysterySet301404": "Steampunk Standard Set",
|
||||
"mysterySet301405": "Steampunk Accessories Set",
|
||||
"mysterySet301703": "Peacock Steampunk Set",
|
||||
@@ -172,7 +174,7 @@
|
||||
"couponCodeRequired": "The coupon code is required.",
|
||||
"subCanceledTitle": "Subscription Canceled",
|
||||
"choosePaymentMethod": "Choose your payment method",
|
||||
"support": "SUPPORT",
|
||||
"support": "Support",
|
||||
"supportHabitica": "Support Habitica",
|
||||
"gemBenefitLeadin": "What can you buy with Gems?",
|
||||
"gemBenefit1": "Unique and fashionable costumes for your avatar.",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"accept2Terms": "an' th'",
|
||||
"chores": "Tasks fer ye chambers",
|
||||
"clearBrowserData": "Clear yer Browser Data",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Add-ons n' Extensions</a>",
|
||||
"communityExtensions": "Add-ons n' Extensions",
|
||||
"communityFacebook": "Face-log",
|
||||
"companyAbout": "How It Be Workin'",
|
||||
"companyBlog": "Blog",
|
||||
|
||||