mirror of
https://github.com/HabitRPG/habitica.git
synced 2026-05-09 11:11:17 -05:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8327e69bdd | |||
| 2d953f4f59 | |||
| 7118d63949 | |||
| 20af8d038e | |||
| 3d9dfbb5e1 | |||
| ae0b966f45 | |||
| cef8a34c06 | |||
| 6432823eec | |||
| 563b780d85 | |||
| aa9b1b2cac | |||
| 401e541b86 | |||
| c13bed3bad | |||
| b3c4817fb4 | |||
| 7c9c45ac5f | |||
| 95142e3684 |
@@ -1,6 +1,13 @@
|
||||
name: Test
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'phillip/**'
|
||||
- 'sabrecat/**'
|
||||
- 'kalista/**'
|
||||
- 'natalie/**'
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
+1
-1
@@ -47,5 +47,5 @@ webpack.webstorm.config
|
||||
|
||||
# mongodb replica set for local dev
|
||||
mongodb-*.tgz
|
||||
/mongodb-data
|
||||
/mongodb-data*
|
||||
/.nyc_output
|
||||
|
||||
@@ -64,6 +64,15 @@ function filterFile (file) {
|
||||
if (file.relative.indexOf('icon_background') === 0) {
|
||||
return false;
|
||||
}
|
||||
if (file.relative.indexOf('notif_') === 0) {
|
||||
return false;
|
||||
}
|
||||
if (file.relative.indexOf('quest_') === 0) {
|
||||
return false;
|
||||
}
|
||||
if (file.relative.indexOf('inventory_quest_') === 0) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
Submodule habitica-images updated: 8ee6f312cb...12e95ed641
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"version": "5.34.0",
|
||||
"version": "5.34.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "habitica",
|
||||
"version": "5.34.0",
|
||||
"version": "5.34.3",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
|
||||
+2
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "5.34.0",
|
||||
"version": "5.34.3",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
@@ -110,6 +110,7 @@
|
||||
"start:simple": "node ./website/server/index.js",
|
||||
"debug": "gulp nodemon --inspect",
|
||||
"mongo:dev": "run-rs -v 5.0.23 -l ubuntu1804 --keep --dbpath mongodb-data --number 1 --quiet",
|
||||
"mongo:test": "run-rs -v 5.0.23 -l ubuntu1804 --keep --dbpath mongodb-data-testing --number 1 --quiet",
|
||||
"postinstall": "git config --global url.\"https://\".insteadOf git:// && gulp build && cd website/client && npm install",
|
||||
"apidoc": "gulp apidoc",
|
||||
"heroku-postbuild": ".heroku/report_deploy.sh"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
import {
|
||||
generateUser,
|
||||
translate as t,
|
||||
} from '../../../../helpers/api-integration/v3';
|
||||
import common from '../../../../../website/common';
|
||||
|
||||
describe('GET /members/username/:username', () => {
|
||||
let user;
|
||||
|
||||
before(async () => {
|
||||
user = await generateUser();
|
||||
});
|
||||
|
||||
it('validates req.params.username', async () => {
|
||||
await expect(user.get('/members/username/')).to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('invalidReqParams'),
|
||||
});
|
||||
});
|
||||
|
||||
it('returns a member\'s public data only', async () => {
|
||||
// make sure user has all the fields that can be returned by the getMember call
|
||||
const member = await generateUser({
|
||||
contributor: { level: 1 },
|
||||
backer: { tier: 3 },
|
||||
preferences: {
|
||||
costume: false,
|
||||
background: 'volcano',
|
||||
},
|
||||
secret: {
|
||||
text: 'Clark Kent',
|
||||
},
|
||||
});
|
||||
const memberRes = await user.get(`/members/username/${member.auth.local.username}`);
|
||||
expect(memberRes).to.have.all.keys([ // works as: object has all and only these keys
|
||||
'_id', 'id', 'preferences', 'profile', 'stats', 'achievements', 'party',
|
||||
'backer', 'contributor', 'auth', 'items', 'inbox', 'loginIncentives', 'flags',
|
||||
]);
|
||||
expect(Object.keys(memberRes.auth)).to.eql(['local', 'timestamps']);
|
||||
expect(Object.keys(memberRes.preferences).sort()).to.eql([
|
||||
'size', 'hair', 'skin', 'shirt',
|
||||
'chair', 'costume', 'sleep', 'background', 'tasks', 'disableClasses',
|
||||
].sort());
|
||||
|
||||
expect(memberRes.stats.maxMP).to.exist;
|
||||
expect(memberRes.stats.maxHealth).to.equal(common.maxHealth);
|
||||
expect(memberRes.stats.toNextLevel).to.equal(common.tnl(memberRes.stats.lvl));
|
||||
expect(memberRes.inbox.optOut).to.exist;
|
||||
expect(memberRes.inbox.canReceive).to.exist;
|
||||
expect(memberRes.inbox.messages).to.not.exist;
|
||||
expect(memberRes.secret).to.not.exist;
|
||||
|
||||
expect(memberRes.blocks).to.not.exist;
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,104 @@
|
||||
import find from 'lodash/find';
|
||||
import {
|
||||
generateUser,
|
||||
translate as t,
|
||||
} from '../../../helpers/api-integration/v4';
|
||||
|
||||
/**
|
||||
* Checks the messages array if the uniqueMessageId has the like flag
|
||||
* @param {InboxMessage[]} messages
|
||||
* @param {String} uniqueMessageId
|
||||
* @param {String} userId
|
||||
* @param {Boolean} likeStatus
|
||||
*/
|
||||
function expectMessagesLikeStatus (messages, uniqueMessageId, userId, likeStatus) {
|
||||
const messageToCheck = find(messages, { uniqueMessageId });
|
||||
|
||||
expect(messageToCheck.likes[userId]).to.equal(likeStatus);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line mocha/no-exclusive-tests
|
||||
describe('POST /inbox/like-private-message/:messageId', () => {
|
||||
let userToSendMessage;
|
||||
const getLikeUrl = messageId => `/inbox/like-private-message/${messageId}`;
|
||||
|
||||
before(async () => {
|
||||
userToSendMessage = await generateUser();
|
||||
});
|
||||
|
||||
it('returns an error when private message is not found', async () => {
|
||||
await expect(userToSendMessage.post(getLikeUrl('some-unknown-id')))
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('messageGroupChatNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
it('likes a message', async () => {
|
||||
const receiver = await generateUser();
|
||||
|
||||
const sentMessageResult = await userToSendMessage.post('/members/send-private-message', {
|
||||
message: 'some message :)',
|
||||
toUserId: receiver._id,
|
||||
});
|
||||
|
||||
const { uniqueMessageId } = sentMessageResult.message;
|
||||
|
||||
const likeResult = await receiver.post(getLikeUrl(uniqueMessageId));
|
||||
expect(likeResult.likes[receiver._id]).to.equal(true);
|
||||
|
||||
const senderMessages = await userToSendMessage.get('/inbox/messages');
|
||||
|
||||
expectMessagesLikeStatus(senderMessages, uniqueMessageId, receiver._id, true);
|
||||
|
||||
const receiversMessages = await receiver.get('/inbox/messages');
|
||||
|
||||
expectMessagesLikeStatus(receiversMessages, uniqueMessageId, receiver._id, true);
|
||||
});
|
||||
|
||||
it('allows a user to like their own private message', async () => {
|
||||
const receiver = await generateUser();
|
||||
|
||||
const sentMessageResult = await userToSendMessage.post('/members/send-private-message', {
|
||||
message: 'some message :)',
|
||||
toUserId: receiver._id,
|
||||
});
|
||||
|
||||
const { uniqueMessageId } = sentMessageResult.message;
|
||||
|
||||
const likeResult = await userToSendMessage.post(getLikeUrl(uniqueMessageId));
|
||||
expect(likeResult.likes[userToSendMessage._id]).to.equal(true);
|
||||
|
||||
const messages = await userToSendMessage.get('/inbox/messages');
|
||||
expectMessagesLikeStatus(messages, uniqueMessageId, userToSendMessage._id, true);
|
||||
|
||||
const receiversMessages = await receiver.get('/inbox/messages');
|
||||
|
||||
expectMessagesLikeStatus(receiversMessages, uniqueMessageId, userToSendMessage._id, true);
|
||||
});
|
||||
|
||||
it('unlikes a message', async () => {
|
||||
const receiver = await generateUser();
|
||||
|
||||
const sentMessageResult = await userToSendMessage.post('/members/send-private-message', {
|
||||
message: 'some message :)',
|
||||
toUserId: receiver._id,
|
||||
});
|
||||
|
||||
const { uniqueMessageId } = sentMessageResult.message;
|
||||
|
||||
const likeResult = await receiver.post(getLikeUrl(uniqueMessageId));
|
||||
|
||||
expect(likeResult.likes[receiver._id]).to.equal(true);
|
||||
|
||||
const unlikeResult = await receiver.post(getLikeUrl(uniqueMessageId));
|
||||
|
||||
expect(unlikeResult.likes[receiver._id]).to.equal(false);
|
||||
|
||||
const messages = await userToSendMessage.get('/inbox/messages');
|
||||
|
||||
const messageToCheck = find(messages, { id: sentMessageResult.message.id });
|
||||
expect(messageToCheck.likes[receiver._id]).to.equal(false);
|
||||
});
|
||||
});
|
||||
@@ -7,7 +7,7 @@ module.exports = {
|
||||
extends: [
|
||||
'habitrpg/lib/vue',
|
||||
],
|
||||
ignorePatterns: ['dist/', 'node_modules/'],
|
||||
ignorePatterns: ['dist/', 'node_modules/', '*.d.ts'],
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -101,8 +101,7 @@
|
||||
|
||||
.btn-secondary,
|
||||
.dropdown > .btn-secondary.dropdown-toggle:not(.btn-success),
|
||||
.show > .btn-secondary.dropdown-toggle:not(.btn-success)
|
||||
{
|
||||
.show > .btn-secondary.dropdown-toggle:not(.btn-success) {
|
||||
background: $white;
|
||||
border: 2px solid transparent;
|
||||
color: $gray-50;
|
||||
@@ -298,6 +297,16 @@
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-flat,
|
||||
.dropdown > .btn-flat.dropdown-toggle:not(.btn-success),
|
||||
.show > .btn-flat.dropdown-toggle:not(.btn-success) {
|
||||
&.with-icon {
|
||||
.svg-icon.color {
|
||||
color: var(--icon-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-cancel {
|
||||
color: $blue-10;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,12 @@
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 3px 6px 0 rgba($black, 0.16), 0 3px 6px 0 rgba($black, 0.24);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.no-min-width {
|
||||
.dropdown-menu {
|
||||
min-width: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// shared dropdown-item styles
|
||||
@@ -54,6 +59,8 @@
|
||||
color: $gray-50 !important;
|
||||
cursor: pointer;
|
||||
|
||||
--dropdown-item-hover-icon-color: #{$gray-200};
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
background-color: inherit;
|
||||
@@ -88,7 +95,7 @@
|
||||
|
||||
&:not(:hover) {
|
||||
.with-icon .svg-icon {
|
||||
color: $gray-200;
|
||||
color: var(dropdown-item-hover-icon-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -151,7 +158,7 @@
|
||||
|
||||
// selectList.vue items sizing
|
||||
.selectListItem .dropdown-item {
|
||||
padding: 0.25rem 0.75rem;
|
||||
padding: 0.25rem 1rem 0.25rem 0.75rem;
|
||||
height: 32px;
|
||||
|
||||
&:active, &:hover, &:focus, &.active {
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
></span>
|
||||
</div>
|
||||
|
||||
<div :class="questClass"></div>
|
||||
<Sprite :image-name="questClass" />
|
||||
</section>
|
||||
<!-- @TODO: Keep this? .checkboxinput(type='checkbox', v-model=
|
||||
'user.preferences.suppressModals.levelUp', @change='changeLevelupSuppress()')
|
||||
@@ -150,15 +150,12 @@ label(style='display:inline-block') {{ $t('dontShowAgain') }}
|
||||
section.greyed {
|
||||
padding-bottom: 17px
|
||||
}
|
||||
|
||||
.scroll {
|
||||
margin: -11px auto 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import Avatar from '../avatar';
|
||||
import Sprite from '@/components/ui/sprite';
|
||||
import { mapState } from '@/libs/store';
|
||||
import starGroup from '@/assets/svg/star-group.svg';
|
||||
import sparkles from '@/assets/svg/sparkles-left.svg';
|
||||
@@ -173,6 +170,7 @@ const levelQuests = {
|
||||
export default {
|
||||
components: {
|
||||
Avatar,
|
||||
Sprite,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -191,7 +189,9 @@ export default {
|
||||
return this.user.stats.lvl in levelQuests;
|
||||
},
|
||||
questClass () {
|
||||
return `scroll inventory_quest_scroll_${levelQuests[this.user.stats.lvl]}`;
|
||||
const questKey = levelQuests[this.user.stats.lvl];
|
||||
if (questKey) return `inventory_quest_scroll_${questKey}`;
|
||||
return '';
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
v-if="member.preferences"
|
||||
class="avatar"
|
||||
:style="{width, height, paddingTop}"
|
||||
:class="backgroundClass"
|
||||
:class="topLevelClassList"
|
||||
@click.prevent="castEnd()"
|
||||
>
|
||||
<div
|
||||
@@ -55,7 +55,11 @@
|
||||
<span :class="[getGearClass('eyewear'), specialMountClass]"></span>
|
||||
<span :class="[getGearClass('head'), specialMountClass]"></span>
|
||||
<span :class="[getGearClass('headAccessory'), specialMountClass]"></span>
|
||||
<span :class="['hair_flower_' + member.preferences.hair.flower, specialMountClass]"></span>
|
||||
<span
|
||||
:class="[
|
||||
'hair_flower_' + member.preferences.hair.flower, specialMountClass
|
||||
]"
|
||||
></span>
|
||||
<span
|
||||
v-if="!hideGear('shield')"
|
||||
:class="[getGearClass('shield'), specialMountClass]"
|
||||
@@ -63,6 +67,7 @@
|
||||
<span
|
||||
v-if="!hideGear('weapon')"
|
||||
:class="[getGearClass('weapon'), specialMountClass]"
|
||||
class="weapon"
|
||||
></span>
|
||||
</template>
|
||||
<!-- Resting-->
|
||||
@@ -96,15 +101,23 @@
|
||||
|
||||
.avatar {
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
image-rendering: pixelated;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&.centered-avatar {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
// resetting the additional padding
|
||||
margin-bottom: -0.5rem !important;
|
||||
}
|
||||
|
||||
.character-sprites {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.character-sprites span {
|
||||
@@ -123,6 +136,22 @@
|
||||
.invert {
|
||||
filter: invert(100%);
|
||||
}
|
||||
|
||||
.debug {
|
||||
border: 1px solid red;
|
||||
|
||||
.character-sprites {
|
||||
border: 1px solid blue;
|
||||
}
|
||||
|
||||
.weapon {
|
||||
border: 1px solid green;
|
||||
}
|
||||
|
||||
span {
|
||||
border: 1px solid yellow;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
@@ -133,12 +162,24 @@ import foolPet from '../mixins/foolPet';
|
||||
|
||||
import ClassBadge from '@/components/members/classBadge';
|
||||
|
||||
/**
|
||||
* TODO replace avatarOnly with multiple options like
|
||||
* - showMount
|
||||
* - showPet
|
||||
* - showBackground
|
||||
* - showWeapons
|
||||
*/
|
||||
|
||||
export default {
|
||||
components: {
|
||||
ClassBadge,
|
||||
},
|
||||
mixins: [foolPet],
|
||||
props: {
|
||||
debugMode: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
member: {
|
||||
type: Object,
|
||||
required: true,
|
||||
@@ -156,14 +197,21 @@ export default {
|
||||
},
|
||||
overrideAvatarGear: {
|
||||
type: Object,
|
||||
default (data) {
|
||||
return data;
|
||||
},
|
||||
},
|
||||
width: {
|
||||
type: Number,
|
||||
default: 140,
|
||||
type: String,
|
||||
default: '140px',
|
||||
},
|
||||
height: {
|
||||
type: Number,
|
||||
default: 147,
|
||||
type: String,
|
||||
default: undefined,
|
||||
},
|
||||
centerAvatar: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
spritesMargin: {
|
||||
type: String,
|
||||
@@ -171,11 +219,16 @@ export default {
|
||||
},
|
||||
overrideTopPadding: {
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
showVisualBuffs: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
showWeapon: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
@@ -204,6 +257,19 @@ export default {
|
||||
|
||||
return val;
|
||||
},
|
||||
topLevelClassList () {
|
||||
const classes = [this.backgroundClass];
|
||||
|
||||
if (this.debugMode) {
|
||||
classes.push('debug');
|
||||
}
|
||||
|
||||
if (this.centerAvatar) {
|
||||
classes.push('centered-avatar');
|
||||
}
|
||||
|
||||
return classes.join(' ');
|
||||
},
|
||||
backgroundClass () {
|
||||
if (this.member) {
|
||||
const { background } = this.member.preferences;
|
||||
@@ -290,6 +356,10 @@ export default {
|
||||
},
|
||||
hideGear (gearType) {
|
||||
if (!this.member) return true;
|
||||
if (!this.showWeapon) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (gearType === 'weapon') {
|
||||
const equippedWeapon = this.member.items.gear[this.costumeClass][gearType];
|
||||
|
||||
|
||||
@@ -1,352 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div
|
||||
v-if="isUserMentioned"
|
||||
class="mentioned-icon"
|
||||
></div>
|
||||
<div
|
||||
v-if="hasPermission(user, 'moderator') && msg.flagCount"
|
||||
class="message-hidden"
|
||||
>
|
||||
{{ flagCountDescription }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<user-link
|
||||
:user-id="msg.uuid"
|
||||
:name="msg.user"
|
||||
:backer="msg.backer"
|
||||
:contributor="msg.contributor"
|
||||
/>
|
||||
<p class="time">
|
||||
<span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>@{{ msg.username }}</span>
|
||||
<span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>•</span>
|
||||
<span
|
||||
v-b-tooltip.hover="messageDate"
|
||||
>{{ msg.timestamp | timeAgo }} </span>
|
||||
<span v-if="msg.client && user.contributor.level >= 4">({{ msg.client }})</span>
|
||||
</p>
|
||||
<div
|
||||
ref="markdownContainer"
|
||||
class="text markdown"
|
||||
dir="auto"
|
||||
v-html="parseMarkdown(msg.text)"
|
||||
></div>
|
||||
<hr>
|
||||
<div
|
||||
v-if="msg.id"
|
||||
class="d-flex"
|
||||
>
|
||||
<div
|
||||
class="action d-flex align-items-center"
|
||||
@click="copyAsTodo(msg)"
|
||||
>
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-html="icons.copy"
|
||||
></div>
|
||||
<div>{{ $t('copyAsTodo') }}</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="(user.flags.communityGuidelinesAccepted && msg.uuid !== 'system')
|
||||
&& (!isMessageReported || hasPermission(user, 'moderator'))"
|
||||
class="action d-flex align-items-center"
|
||||
@click="report(msg)"
|
||||
>
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.report"
|
||||
></div>
|
||||
<div v-once>
|
||||
{{ $t('report') }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="msg.uuid === user._id || hasPermission(user, 'moderator')"
|
||||
class="action d-flex align-items-center"
|
||||
@click="remove()"
|
||||
>
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.delete"
|
||||
></div>
|
||||
<div v-once>
|
||||
{{ $t('delete') }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-b-tooltip="{title: likeTooltip(msg.likes[user._id])}"
|
||||
class="ml-auto d-flex"
|
||||
>
|
||||
<div
|
||||
v-if="likeCount > 0"
|
||||
class="action d-flex align-items-center mr-0"
|
||||
:class="{activeLike: msg.likes[user._id]}"
|
||||
@click="like()"
|
||||
>
|
||||
<div
|
||||
class="svg-icon"
|
||||
:title="$t('liked')"
|
||||
v-html="icons.liked"
|
||||
></div>
|
||||
+{{ likeCount }}
|
||||
</div>
|
||||
<div
|
||||
v-if="likeCount === 0"
|
||||
class="action d-flex align-items-center mr-0"
|
||||
:class="{activeLike: msg.likes[user._id]}"
|
||||
@click="like()"
|
||||
>
|
||||
<div
|
||||
class="svg-icon"
|
||||
:title="$t('like')"
|
||||
v-html="icons.like"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!msg.likes[user._id]">{{ $t('like') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.at-highlight {
|
||||
background-color: rgba(213, 200, 255, 0.32);
|
||||
padding: 0.1rem;
|
||||
}
|
||||
|
||||
.at-text {
|
||||
color: #6133b4;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.mentioned-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
background-color: #bda8ff;
|
||||
box-shadow: 0 1px 1px 0 rgba(26, 24, 29, 0.12);
|
||||
position: absolute;
|
||||
right: -.5em;
|
||||
top: -.5em;
|
||||
}
|
||||
|
||||
.message-hidden {
|
||||
margin-left: 1.5em;
|
||||
margin-top: 1em;
|
||||
color: red;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: 0.75rem 1.25rem 0.75rem 1.25rem;
|
||||
|
||||
.time {
|
||||
font-size: 12px;
|
||||
color: #878190;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.text {
|
||||
font-size: 14px;
|
||||
color: #4e4a57;
|
||||
text-align: initial;
|
||||
min-height: 0rem;
|
||||
}
|
||||
}
|
||||
|
||||
.action {
|
||||
display: inline-block;
|
||||
color: #878190;
|
||||
margin-right: 1em;
|
||||
font-size: 12px;
|
||||
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
color: #A5A1AC;
|
||||
margin-right: .2em;
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.activeLike {
|
||||
color: $purple-300;
|
||||
|
||||
.svg-icon {
|
||||
color: $purple-400;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import cloneDeep from 'lodash/cloneDeep';
|
||||
import escapeRegExp from 'lodash/escapeRegExp';
|
||||
|
||||
import { CHAT_FLAG_LIMIT_FOR_HIDING, CHAT_FLAG_FROM_SHADOW_MUTE } from '@/../../common/script/constants';
|
||||
import renderWithMentions from '@/libs/renderWithMentions';
|
||||
import { userStateMixin } from '../../mixins/userState';
|
||||
import userLink from '../userLink';
|
||||
|
||||
import deleteIcon from '@/assets/svg/delete.svg';
|
||||
import copyIcon from '@/assets/svg/copy.svg';
|
||||
import likeIcon from '@/assets/svg/like.svg';
|
||||
import likedIcon from '@/assets/svg/liked.svg';
|
||||
import reportIcon from '@/assets/svg/report.svg';
|
||||
|
||||
export default {
|
||||
components: { userLink },
|
||||
filters: {
|
||||
timeAgo (value) {
|
||||
return moment(value).fromNow();
|
||||
},
|
||||
date (value) {
|
||||
// @TODO: Vue doesn't support this so we cant user preference
|
||||
return moment(value).toDate().toString();
|
||||
},
|
||||
},
|
||||
mixins: [userStateMixin],
|
||||
props: {
|
||||
msg: {},
|
||||
groupId: {},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
like: likeIcon,
|
||||
copy: copyIcon,
|
||||
report: reportIcon,
|
||||
delete: deleteIcon,
|
||||
liked: likedIcon,
|
||||
}),
|
||||
reported: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
isUserMentioned () {
|
||||
const message = this.msg;
|
||||
|
||||
if (message.highlight) return true;
|
||||
|
||||
const { user } = this;
|
||||
const displayName = user.profile.name;
|
||||
const { username } = user.auth.local;
|
||||
const pattern = `@(${escapeRegExp(displayName)}|${escapeRegExp(username)})(\\b)`;
|
||||
message.highlight = new RegExp(pattern, 'i').test(message.text);
|
||||
|
||||
return message.highlight;
|
||||
},
|
||||
likeCount () {
|
||||
const message = this.msg;
|
||||
if (!message.likes) return 0;
|
||||
|
||||
let likeCount = 0;
|
||||
for (const key of Object.keys(message.likes)) {
|
||||
const like = message.likes[key];
|
||||
if (like) likeCount += 1;
|
||||
}
|
||||
return likeCount;
|
||||
},
|
||||
isMessageReported () {
|
||||
return (this.msg.flags && this.msg.flags[this.user.id]) || this.reported;
|
||||
},
|
||||
flagCountDescription () {
|
||||
if (!this.msg.flagCount) return '';
|
||||
if (this.msg.flagCount < CHAT_FLAG_LIMIT_FOR_HIDING) return 'Message flagged once, not hidden';
|
||||
if (this.msg.flagCount < CHAT_FLAG_FROM_SHADOW_MUTE) return 'Message hidden';
|
||||
return 'Message hidden (shadow-muted)';
|
||||
},
|
||||
messageDate () {
|
||||
const date = moment(this.msg.timestamp).toDate();
|
||||
return date.toString();
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
const links = this.$refs.markdownContainer.getElementsByTagName('a');
|
||||
for (let i = 0; i < links.length; i += 1) {
|
||||
let link = links[i].pathname;
|
||||
|
||||
// Internet Explorer does not provide the leading slash character in the pathname
|
||||
link = link.charAt(0) === '/' ? link : `/${link}`;
|
||||
|
||||
if (link.startsWith('/profile/')) {
|
||||
links[i].onclick = ev => {
|
||||
ev.preventDefault();
|
||||
this.$router.push({ path: link });
|
||||
};
|
||||
}
|
||||
}
|
||||
this.CHAT_FLAG_LIMIT_FOR_HIDING = CHAT_FLAG_LIMIT_FOR_HIDING;
|
||||
this.CHAT_FLAG_FROM_SHADOW_MUTE = CHAT_FLAG_FROM_SHADOW_MUTE;
|
||||
this.$emit('chat-card-mounted', this.msg.id);
|
||||
},
|
||||
methods: {
|
||||
async like () {
|
||||
const message = cloneDeep(this.msg);
|
||||
|
||||
await this.$store.dispatch('chat:like', {
|
||||
groupId: this.groupId,
|
||||
chatId: message.id,
|
||||
});
|
||||
|
||||
message.likes[this.user._id] = !message.likes[this.user._id];
|
||||
|
||||
this.$emit('message-liked', message);
|
||||
this.$root.$emit('bv::hide::tooltip');
|
||||
},
|
||||
likeTooltip (likedStatus) {
|
||||
if (!likedStatus) return this.$t('like');
|
||||
return null;
|
||||
},
|
||||
copyAsTodo (message) {
|
||||
this.$root.$emit('habitica::copy-as-todo', message);
|
||||
},
|
||||
report () {
|
||||
this.$root.$on('habitica:report-result', data => {
|
||||
if (data.ok) {
|
||||
this.reported = true;
|
||||
}
|
||||
|
||||
this.$root.$off('habitica:report-result');
|
||||
});
|
||||
|
||||
this.$root.$emit('habitica::report-chat', {
|
||||
message: this.msg,
|
||||
groupId: this.groupId || 'privateMessage',
|
||||
});
|
||||
},
|
||||
async remove () {
|
||||
if (!window.confirm(this.$t('areYouSureDeleteMessage'))) return; // eslint-disable-line no-alert
|
||||
|
||||
const message = this.msg;
|
||||
this.$emit('message-removed', message);
|
||||
|
||||
await this.$store.dispatch('chat:deleteChat', {
|
||||
groupId: this.groupId,
|
||||
chatId: message.id,
|
||||
});
|
||||
},
|
||||
parseMarkdown (text) {
|
||||
return renderWithMentions(text, this.user);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -3,15 +3,6 @@
|
||||
ref="container"
|
||||
class="container-fluid"
|
||||
>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<copy-as-todo-modal
|
||||
:group-type="groupType"
|
||||
:group-name="groupName"
|
||||
:group-id="groupId"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row loadmore">
|
||||
<div v-if="canLoadMore">
|
||||
<div class="loadmore-divider"></div>
|
||||
@@ -33,6 +24,8 @@
|
||||
<div
|
||||
v-for="msg in messages.filter(m => chat && canViewFlag(m))"
|
||||
:key="msg.id"
|
||||
class="message-row"
|
||||
:class="{ 'margin-right': user._id !== msg.uuid}"
|
||||
>
|
||||
<div class="d-flex">
|
||||
<avatar
|
||||
@@ -45,16 +38,14 @@
|
||||
:override-top-padding="'14px'"
|
||||
@click.native="showMemberModal(msg.uuid)"
|
||||
/>
|
||||
<div class="card">
|
||||
<chat-card
|
||||
:msg="msg"
|
||||
:group-id="groupId"
|
||||
@message-liked="messageLiked"
|
||||
@message-removed="messageRemoved"
|
||||
@show-member-modal="showMemberModal"
|
||||
@chat-card-mounted="itemWasMounted"
|
||||
/>
|
||||
</div>
|
||||
<message-card
|
||||
:msg="msg"
|
||||
:group-id="groupId"
|
||||
:user-sent-message="user._id === msg.uuid"
|
||||
@message-liked="messageLiked"
|
||||
@message-removed="messageRemoved"
|
||||
@message-card-mounted="itemWasMounted"
|
||||
/>
|
||||
<avatar
|
||||
v-if="user._id === msg.uuid"
|
||||
:class="{ invisible: avatarUnavailable(msg) }"
|
||||
@@ -105,11 +96,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.avatar-left {
|
||||
margin-left: -1.5rem;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
.hr {
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
@@ -137,11 +123,27 @@
|
||||
margin-bottom: .5em;
|
||||
padding: 0rem;
|
||||
width: 90%;
|
||||
|
||||
&.system-message {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.message-scroll .d-flex {
|
||||
min-width: 1px;
|
||||
}
|
||||
|
||||
.message-row {
|
||||
margin-left: 12px;
|
||||
margin-right: 0;
|
||||
margin-bottom: 1.2rem;
|
||||
|
||||
&:not(.margin-right) {
|
||||
.d-flex {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
@@ -152,13 +154,13 @@ import findIndex from 'lodash/findIndex';
|
||||
import { userStateMixin } from '../../mixins/userState';
|
||||
|
||||
import Avatar from '../avatar';
|
||||
import copyAsTodoModal from './copyAsTodoModal';
|
||||
import chatCard from './chatCard';
|
||||
import MessageCard from '@/components/messages/messageCard.vue';
|
||||
|
||||
// TODO merge chatMessages.vue (party message list) with messageList.vue (private message list)
|
||||
|
||||
export default {
|
||||
components: {
|
||||
copyAsTodoModal,
|
||||
chatCard,
|
||||
MessageCard,
|
||||
Avatar,
|
||||
},
|
||||
mixins: [userStateMixin],
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
<template>
|
||||
<b-modal
|
||||
id="copyAsTodo"
|
||||
:title="$t('copyMessageAsToDo')"
|
||||
:hide-footer="true"
|
||||
size="md"
|
||||
>
|
||||
<div class="form-group">
|
||||
<input
|
||||
v-model="task.text"
|
||||
class="form-control"
|
||||
type="text"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<textarea
|
||||
v-model="task.notes"
|
||||
class="form-control"
|
||||
rows="5"
|
||||
focus-element="true"
|
||||
></textarea>
|
||||
</div>
|
||||
<hr>
|
||||
<task
|
||||
v-if="task._id"
|
||||
:is-user="isUser"
|
||||
:task="task"
|
||||
/>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-secondary"
|
||||
@click="close()"
|
||||
>
|
||||
{{ $t('close') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
@click="saveTodo()"
|
||||
>
|
||||
{{ $t('submit') }}
|
||||
</button>
|
||||
</div>
|
||||
</b-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import taskDefaults from '@/../../common/script/libs/taskDefaults';
|
||||
import { mapActions } from '@/libs/store';
|
||||
import markdownDirective from '@/directives/markdown';
|
||||
import notificationsMixin from '@/mixins/notifications';
|
||||
import Task from '@/components/tasks/task';
|
||||
|
||||
const baseUrl = 'https://habitica.com';
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
components: {
|
||||
Task,
|
||||
},
|
||||
mixins: [notificationsMixin],
|
||||
props: ['copyingMessage', 'groupType', 'groupName', 'groupId'],
|
||||
data () {
|
||||
return {
|
||||
isUser: true,
|
||||
task: {},
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.$root.$on('habitica::copy-as-todo', message => {
|
||||
const notes = `${message.user || 'system message'}${message.user ? ' wrote' : ''} in [${this.groupName}](${this.groupPath()})`;
|
||||
const newTask = {
|
||||
text: message.text,
|
||||
type: 'todo',
|
||||
notes,
|
||||
};
|
||||
this.task = taskDefaults(newTask, this.$store.state.user.data);
|
||||
this.$root.$emit('bv::show::modal', 'copyAsTodo');
|
||||
});
|
||||
},
|
||||
beforeDestroy () {
|
||||
this.$root.$off('habitica::copy-as-todo');
|
||||
},
|
||||
methods: {
|
||||
...mapActions({
|
||||
createTask: 'tasks:create',
|
||||
}),
|
||||
groupPath () {
|
||||
if (this.groupType === 'party') {
|
||||
return `${baseUrl}/party`;
|
||||
}
|
||||
return `${baseUrl}/groups/guild/${this.groupId}`;
|
||||
},
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'copyAsTodo');
|
||||
},
|
||||
saveTodo () {
|
||||
this.createTask(this.task);
|
||||
this.text(this.$t('messageAddedAsToDo'));
|
||||
this.$root.$emit('bv::hide::modal', 'copyAsTodo');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -22,13 +22,13 @@
|
||||
:placeholder="placeholder"
|
||||
:class="{'user-entry': newMessage}"
|
||||
:maxlength="MAX_MESSAGE_LENGTH"
|
||||
@keydown="updateCarretPosition"
|
||||
@keydown="autoCompleteMixinUpdateCarretPosition"
|
||||
@keyup.ctrl.enter="sendMessageShortcut()"
|
||||
@keydown.tab="handleTab($event)"
|
||||
@keydown.up="selectPreviousAutocomplete($event)"
|
||||
@keydown.down="selectNextAutocomplete($event)"
|
||||
@keypress.enter="selectAutocomplete($event)"
|
||||
@keydown.esc="handleEscape($event)"
|
||||
@keydown.tab="autoCompleteMixinHandleTab($event)"
|
||||
@keydown.up="autoCompleteMixinSelectPreviousAutocomplete($event)"
|
||||
@keydown.down="autoCompleteMixinSelectNextAutocomplete($event)"
|
||||
@keypress.enter="autoCompleteMixinSelectAutocomplete($event)"
|
||||
@keydown.esc="autoCompleteMixinHandleEscape($event)"
|
||||
@paste="disableMessageSendShortcut()"
|
||||
></textarea>
|
||||
<span>{{ currentLength }} / {{ MAX_MESSAGE_LENGTH }}</span>
|
||||
@@ -36,8 +36,8 @@
|
||||
ref="autocomplete"
|
||||
:text="newMessage"
|
||||
:textbox="textbox"
|
||||
:coords="coords"
|
||||
:caret-position="caretPosition"
|
||||
:coords="mixinData.autoComplete.coords"
|
||||
:caret-position="mixinData.autoComplete.caretPosition"
|
||||
:chat="group.chat"
|
||||
@select="selectedAutocomplete"
|
||||
/>
|
||||
@@ -74,7 +74,7 @@
|
||||
<slot name="additionRow"></slot>
|
||||
<div class="row">
|
||||
<div class="hr col-12"></div>
|
||||
<chat-message
|
||||
<chat-messages
|
||||
:chat.sync="group.chat"
|
||||
:group-type="group.type"
|
||||
:group-id="group._id"
|
||||
@@ -86,16 +86,15 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import debounce from 'lodash/debounce';
|
||||
|
||||
import { MAX_MESSAGE_LENGTH } from '@/../../common/script/constants';
|
||||
import externalLinks from '../../mixins/externalLinks';
|
||||
|
||||
import autocomplete from '../chat/autoComplete';
|
||||
import communityGuidelines from './communityGuidelines';
|
||||
import chatMessage from '../chat/chatMessages';
|
||||
import chatMessages from '../chat/chatMessages';
|
||||
import { mapState } from '@/libs/store';
|
||||
import markdownDirective from '@/directives/markdown';
|
||||
import { autoCompleteHelperMixin } from '@/mixins/autoCompleteHelper';
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
@@ -104,23 +103,18 @@ export default {
|
||||
components: {
|
||||
autocomplete,
|
||||
communityGuidelines,
|
||||
chatMessage,
|
||||
chatMessages,
|
||||
},
|
||||
mixins: [externalLinks],
|
||||
mixins: [externalLinks, autoCompleteHelperMixin],
|
||||
props: ['label', 'group', 'placeholder'],
|
||||
data () {
|
||||
return {
|
||||
newMessage: '',
|
||||
sending: false,
|
||||
caretPosition: 0,
|
||||
chat: {
|
||||
submitDisable: false,
|
||||
submitTimeout: null,
|
||||
},
|
||||
coords: {
|
||||
TOP: 0,
|
||||
LEFT: 0,
|
||||
},
|
||||
textbox: null,
|
||||
MAX_MESSAGE_LENGTH: MAX_MESSAGE_LENGTH.toString(),
|
||||
};
|
||||
@@ -142,35 +136,6 @@ export default {
|
||||
this.handleExternalLinks();
|
||||
},
|
||||
methods: {
|
||||
// https://medium.com/@_jh3y/how-to-where-s-the-caret-getting-the-xy-position-of-the-caret-a24ba372990a
|
||||
getCoord (e, text) {
|
||||
this.caretPosition = text.selectionEnd;
|
||||
const div = document.createElement('div');
|
||||
const span = document.createElement('span');
|
||||
const copyStyle = getComputedStyle(text);
|
||||
|
||||
[].forEach.call(copyStyle, prop => {
|
||||
div.style[prop] = copyStyle[prop];
|
||||
});
|
||||
|
||||
div.style.position = 'absolute';
|
||||
document.body.appendChild(div);
|
||||
div.textContent = text.value.substr(0, this.caretPosition);
|
||||
span.textContent = text.value.substr(this.caretPosition) || '.';
|
||||
div.appendChild(span);
|
||||
this.coords = {
|
||||
TOP: span.offsetTop,
|
||||
LEFT: span.offsetLeft,
|
||||
};
|
||||
document.body.removeChild(div);
|
||||
},
|
||||
updateCarretPosition: debounce(function updateCarretPosition (eventUpdate) {
|
||||
this._updateCarretPosition(eventUpdate);
|
||||
}, 250),
|
||||
_updateCarretPosition (eventUpdate) {
|
||||
const text = eventUpdate.target;
|
||||
this.getCoord(eventUpdate, text);
|
||||
},
|
||||
async sendMessageShortcut () {
|
||||
// If the user recently pasted in the text field, don't submit
|
||||
if (!this.chat.submitDisable) {
|
||||
@@ -221,50 +186,6 @@ export default {
|
||||
}, 500);
|
||||
},
|
||||
|
||||
handleTab (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
if (e.shiftKey) {
|
||||
this.$refs.autocomplete.selectPrevious();
|
||||
} else {
|
||||
this.$refs.autocomplete.selectNext();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
handleEscape (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.cancel();
|
||||
}
|
||||
},
|
||||
|
||||
selectNextAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.selectNext();
|
||||
}
|
||||
},
|
||||
|
||||
selectPreviousAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.selectPrevious();
|
||||
}
|
||||
},
|
||||
|
||||
selectAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
if (this.$refs.autocomplete.selected !== null) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.makeSelection();
|
||||
} else {
|
||||
// no autocomplete selected, newline instead
|
||||
this.$refs.autocomplete.cancel();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
selectedAutocomplete (newText, newCaret) {
|
||||
this.newMessage = newText;
|
||||
// Wait for v-modal to update
|
||||
@@ -273,7 +194,6 @@ export default {
|
||||
this.textbox.focus();
|
||||
});
|
||||
},
|
||||
|
||||
fetchRecentMessages () {
|
||||
this.$emit('fetchRecentMessages');
|
||||
},
|
||||
@@ -284,10 +204,7 @@ export default {
|
||||
beforeRouteUpdate (to, from, next) {
|
||||
// Reset chat
|
||||
this.newMessage = '';
|
||||
this.coords = {
|
||||
TOP: 0,
|
||||
LEFT: 0,
|
||||
};
|
||||
this.autoCompleteMixinResetCoordsPosition();
|
||||
|
||||
next();
|
||||
},
|
||||
|
||||
@@ -225,10 +225,9 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="quest-icon">
|
||||
<div
|
||||
<Sprite
|
||||
class="quest"
|
||||
:class="`inventory_quest_scroll_${questData.key}`"
|
||||
></div>
|
||||
:image-name="`inventory_quest_scroll_${questData.key}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -12,20 +12,21 @@
|
||||
<strong> {{ notification.data.title }} </strong>
|
||||
<span> {{ notification.data.text }} </span>
|
||||
</div>
|
||||
<div
|
||||
<Sprite
|
||||
slot="icon"
|
||||
class="mt-3"
|
||||
:class="notification.data.icon"
|
||||
></div>
|
||||
:image-name="notification.data.icon" />
|
||||
</base-notification>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BaseNotification from './base';
|
||||
import Sprite from '@/components/ui/sprite.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BaseNotification,
|
||||
Sprite,
|
||||
},
|
||||
props: {
|
||||
notification: {
|
||||
|
||||
@@ -10,20 +10,21 @@
|
||||
slot="content"
|
||||
v-html="$t('newSubscriberItem')"
|
||||
></div>
|
||||
<div
|
||||
<Sprite
|
||||
slot="icon"
|
||||
:class="mysteryClass"
|
||||
></div>
|
||||
:image-name="mysteryClass" />
|
||||
</base-notification>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import BaseNotification from './base';
|
||||
import Sprite from '@/components/ui/sprite.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BaseNotification,
|
||||
Sprite,
|
||||
},
|
||||
props: ['notification', 'canRemove'],
|
||||
computed: {
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
:name="member.profile.name"
|
||||
:backer="member.backer"
|
||||
:contributor="member.contributor"
|
||||
:smaller-style="true"
|
||||
/>
|
||||
<inline-class-badge
|
||||
v-if="member.stats"
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<div
|
||||
class="d-inline-flex like-button"
|
||||
@click="like()"
|
||||
>
|
||||
<div
|
||||
v-b-tooltip="{title: likeTooltip(likeCount)}"
|
||||
class="d-flex"
|
||||
>
|
||||
<div
|
||||
v-if="likeCount > 0"
|
||||
class="action d-flex align-items-center mr-0"
|
||||
:class="{isLiked: true, currentUserLiked: likedByCurrentUser}"
|
||||
>
|
||||
<div
|
||||
class="svg-icon mr-1"
|
||||
:title="$t('liked')"
|
||||
v-html="icons.liked"
|
||||
></div>
|
||||
+{{ likeCount }}
|
||||
</div>
|
||||
<div
|
||||
v-if="likeCount === 0"
|
||||
class="action d-flex align-items-center mr-1"
|
||||
>
|
||||
<div
|
||||
class="svg-icon"
|
||||
:title="$t('like')"
|
||||
v-html="icons.like"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="likeCount === 0">{{ $t('like') }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/tiers.scss';
|
||||
|
||||
.action {
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
|
||||
.svg-icon {
|
||||
color: $gray-100;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
&.isLiked {
|
||||
color: $purple-200;
|
||||
font-weight: bold;
|
||||
|
||||
.svg-icon {
|
||||
color: $purple-300;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.like-button {
|
||||
color: $gray-100;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
color: $purple-200;
|
||||
|
||||
.svg-icon {
|
||||
color: $purple-300;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import likeIcon from '@/assets/svg/like.svg';
|
||||
import likedIcon from '@/assets/svg/liked.svg';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
likeCount: {
|
||||
type: Number,
|
||||
},
|
||||
likedByCurrentUser: {
|
||||
type: Boolean,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
like: likeIcon,
|
||||
liked: likedIcon,
|
||||
}),
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
async like () {
|
||||
this.$emit('toggle-like');
|
||||
},
|
||||
likeTooltip (likedStatus) {
|
||||
if (!likedStatus) return this.$t('like');
|
||||
return null;
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,73 +1,157 @@
|
||||
<template>
|
||||
<div class="card-body">
|
||||
<user-link
|
||||
:user-id="msg.uuid"
|
||||
:name="msg.user"
|
||||
:backer="msg.backer"
|
||||
:contributor="msg.contributor"
|
||||
/>
|
||||
<p class="time">
|
||||
<span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>@{{ msg.username }}</span><span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>•</span>
|
||||
<span
|
||||
v-b-tooltip.hover="messageDate"
|
||||
>{{ msg.timestamp | timeAgo }} </span>
|
||||
<span v-if="msg.client && user.contributor.level >= 4"> ({{ msg.client }})</span>
|
||||
</p>
|
||||
<div
|
||||
class="card"
|
||||
:class="{
|
||||
'system-message': isSystemMessage
|
||||
}"
|
||||
>
|
||||
<div
|
||||
class="text markdown"
|
||||
dir="auto"
|
||||
v-html="parseMarkdown(msg.text)"
|
||||
></div>
|
||||
<div
|
||||
v-if="isMessageReported"
|
||||
class="reported"
|
||||
>
|
||||
<span v-once>{{ $t('reportedMessage') }}</span><br>
|
||||
<span v-once>{{ $t('canDeleteNow') }}</span>
|
||||
</div>
|
||||
<hr>
|
||||
<div
|
||||
v-if="msg.id"
|
||||
class="d-flex"
|
||||
v-b-tooltip.hover="messageDateForSystemMessage"
|
||||
class="message-card"
|
||||
|
||||
:class="{
|
||||
'user-sent-message': userSentMessage,
|
||||
'user-received-message': !userSentMessage && !isSystemMessage,
|
||||
'system-message': isSystemMessage
|
||||
}"
|
||||
>
|
||||
<div
|
||||
v-if="!isMessageReported"
|
||||
class="action d-flex align-items-center"
|
||||
@click="report(msg)"
|
||||
v-if="isUserMentioned"
|
||||
class="mentioned-icon"
|
||||
></div>
|
||||
<div
|
||||
v-if="userIsModerator && msg.flagCount"
|
||||
class="message-hidden"
|
||||
>
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.report"
|
||||
></div>
|
||||
<div v-once>
|
||||
{{ $t('report') }}
|
||||
</div>
|
||||
{{ flagCountDescription }}
|
||||
</div>
|
||||
<div
|
||||
class="action d-flex align-items-center"
|
||||
@click="remove()"
|
||||
class="card-body"
|
||||
>
|
||||
<user-link
|
||||
v-if="!isSystemMessage"
|
||||
:user-id="msg.uuid"
|
||||
:name="msg.user"
|
||||
:backer="msg.backer"
|
||||
:contributor="msg.contributor"
|
||||
/>
|
||||
<p
|
||||
v-if="!isSystemMessage"
|
||||
class="time"
|
||||
>
|
||||
<span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>@{{ msg.username }}</span><span
|
||||
v-if="msg.username"
|
||||
class="mr-1"
|
||||
>•</span>
|
||||
<span v-b-tooltip.hover="messageDate">{{ msg.timestamp | timeAgo }} </span>
|
||||
<span v-if="msg.client && user.contributor.level >= 4">
|
||||
({{ msg.client }})
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<b-dropdown
|
||||
v-if="!isSystemMessage"
|
||||
right="right"
|
||||
variant="flat"
|
||||
toggle-class="with-icon"
|
||||
class="card-menu no-min-width"
|
||||
:no-caret="true"
|
||||
>
|
||||
<template #button-content>
|
||||
<span
|
||||
v-once
|
||||
class="svg-icon inline menuIcon color"
|
||||
v-html="icons.menuIcon"
|
||||
>
|
||||
</span>
|
||||
</template>
|
||||
<b-dropdown-item
|
||||
class="selectListItem"
|
||||
@click="copy(msg)"
|
||||
>
|
||||
<span class="with-icon">
|
||||
<span
|
||||
v-once
|
||||
class="svg-icon icon-16 color"
|
||||
v-html="icons.copy"
|
||||
></span>
|
||||
<span v-once>
|
||||
{{ $t('copy') }}
|
||||
</span>
|
||||
</span>
|
||||
</b-dropdown-item>
|
||||
<b-dropdown-item
|
||||
v-if="canReportMessage"
|
||||
class="selectListItem custom-hover--red"
|
||||
@click="report(msg)"
|
||||
>
|
||||
<span class="with-icon">
|
||||
<span
|
||||
v-once
|
||||
class="svg-icon icon-16 color"
|
||||
v-html="icons.report"
|
||||
></span>
|
||||
<span v-once>
|
||||
{{ $t('report') }}
|
||||
</span>
|
||||
</span>
|
||||
</b-dropdown-item>
|
||||
<b-dropdown-item
|
||||
v-if="canDeleteMessage"
|
||||
class="selectListItem custom-hover--red"
|
||||
@click="remove()"
|
||||
>
|
||||
<span class="with-icon">
|
||||
<span
|
||||
v-once
|
||||
class="svg-icon icon-16 color"
|
||||
v-html="icons.delete"
|
||||
></span>
|
||||
<span v-once>
|
||||
{{ $t('delete') }}
|
||||
</span>
|
||||
</span>
|
||||
</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon"
|
||||
v-html="icons.delete"
|
||||
></div>
|
||||
<div v-once>
|
||||
{{ $t('delete') }}
|
||||
v-if="isSystemMessage"
|
||||
class="system-message-body"
|
||||
>
|
||||
{{ msg.unformattedText }}
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
ref="markdownContainer"
|
||||
class="text markdown"
|
||||
dir="auto"
|
||||
v-html="parseMarkdown(msg.text)"
|
||||
></div>
|
||||
<div
|
||||
v-if="isMessageReported"
|
||||
class="reported"
|
||||
>
|
||||
<span v-once>{{ $t('reportedMessage') }}</span><br>
|
||||
<span v-once>{{ $t('canDeleteNow') }}</span>
|
||||
</div>
|
||||
|
||||
<like-button
|
||||
v-if="canLikeMessage"
|
||||
class="mt-75"
|
||||
:liked-by-current-user="msg.likes[user._id]"
|
||||
:like-count="likeCount"
|
||||
@toggle-like="like()"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
.message-card {
|
||||
.at-highlight {
|
||||
background-color: rgba(213, 200, 255, 0.32);
|
||||
padding: 0.1rem;
|
||||
@@ -76,43 +160,76 @@
|
||||
.at-text {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
.card-menu button {
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 1rem;
|
||||
width: 1rem;
|
||||
}
|
||||
|
||||
.markdown p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/tiers.scss';
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/tiers.scss';
|
||||
|
||||
.action {
|
||||
display: inline-block;
|
||||
color: $gray-200;
|
||||
margin-right: 1em;
|
||||
font-size: 12px;
|
||||
.card {
|
||||
background: transparent !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
.message-card:not(.system-message) {
|
||||
background: white;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
color: $gray-300;
|
||||
margin-right: .2em;
|
||||
width: 16px;
|
||||
}
|
||||
.mentioned-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 50%;
|
||||
background-color: $purple-500;
|
||||
box-shadow: 0 1px 1px 0 rgba(26, 24, 29, 0.12);
|
||||
position: absolute;
|
||||
right: -.5em;
|
||||
top: -.5em;
|
||||
}
|
||||
|
||||
.message-hidden {
|
||||
margin-left: 1.5em;
|
||||
margin-top: 1em;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.active {
|
||||
color: $purple-300;
|
||||
|
||||
.svg-icon {
|
||||
color: $purple-400;
|
||||
}
|
||||
}
|
||||
|
||||
.active {
|
||||
color: $purple-300;
|
||||
.message-card {
|
||||
border-radius: 7px;
|
||||
margin: 0;
|
||||
padding: 1rem 0.75rem 0.5rem 1rem;
|
||||
|
||||
.svg-icon {
|
||||
color: $purple-400;
|
||||
}
|
||||
&.system-message {
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: 0.75rem 1.25rem 0.75rem 1.25rem;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
|
||||
.time {
|
||||
font-size: 12px;
|
||||
color: $gray-200;
|
||||
color: $gray-100;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
@@ -123,49 +240,173 @@
|
||||
min-height: 0rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.card-menu {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
||||
.reported {
|
||||
margin-top: 18px;
|
||||
color: $red-50;
|
||||
&:not(.show) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.card-body:hover {
|
||||
.card-menu {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.reported {
|
||||
margin-top: 18px;
|
||||
color: $red-50;
|
||||
}
|
||||
|
||||
.selectListItem:not(:hover) .svg-icon.icon-16.color {
|
||||
color: #{$gray-100}
|
||||
}
|
||||
|
||||
.custom-hover--red {
|
||||
--hover-color: #{$maroon-50};
|
||||
--hover-background: #{rgba($red-500, 0.25)};
|
||||
}
|
||||
|
||||
.user-sent-message {
|
||||
border: 1px solid $purple-400;
|
||||
}
|
||||
|
||||
.system-message {
|
||||
border: 1px solid $purple-400;
|
||||
}
|
||||
|
||||
.user-received-message {
|
||||
border: 1px solid $gray-500;
|
||||
}
|
||||
|
||||
.card-menu {
|
||||
// icon-color is the menu icon itself
|
||||
--icon-color: #{$gray-100};
|
||||
|
||||
--dropdown-item-hover-icon-color: #{$gray-100};
|
||||
|
||||
&:hover {
|
||||
--icon-color: #{$purple-300};
|
||||
}
|
||||
}
|
||||
|
||||
.menuIcon {
|
||||
width: 4px;
|
||||
height: 1rem;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.system-message-body {
|
||||
line-height: 1.71;
|
||||
text-align: center;
|
||||
color: $purple-300;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
import moment from 'moment';
|
||||
|
||||
import cloneDeep from 'lodash/cloneDeep';
|
||||
import escapeRegExp from 'lodash/escapeRegExp';
|
||||
import { CHAT_FLAG_FROM_SHADOW_MUTE, CHAT_FLAG_LIMIT_FOR_HIDING } from '@/../../common/script/constants';
|
||||
import externalLinks from '../../mixins/externalLinks';
|
||||
|
||||
import { CopyToClipboardMixin } from '@/mixins/copyToClipboard';
|
||||
|
||||
import renderWithMentions from '@/libs/renderWithMentions';
|
||||
import { mapState } from '@/libs/store';
|
||||
import userLink from '../userLink';
|
||||
|
||||
import deleteIcon from '@/assets/svg/delete.svg';
|
||||
import reportIcon from '@/assets/svg/report.svg';
|
||||
import menuIcon from '@/assets/svg/menu.svg';
|
||||
import { userStateMixin } from '@/mixins/userState';
|
||||
import copyIcon from '@/assets/svg/copy.svg';
|
||||
import LikeButton from '@/components/messages/likeButton.vue';
|
||||
|
||||
const LikeLogicMixin = {
|
||||
computed: {
|
||||
likeCount () {
|
||||
const message = this.msg;
|
||||
if (!message.likes) return 0;
|
||||
|
||||
let likeCount = 0;
|
||||
for (const key of Object.keys(message.likes)) {
|
||||
const like = message.likes[key];
|
||||
if (like) likeCount += 1;
|
||||
}
|
||||
return likeCount;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
||||
async like () {
|
||||
const message = cloneDeep(this.msg);
|
||||
|
||||
await this.$store.dispatch('chat:like', {
|
||||
groupId: this.groupId,
|
||||
chatMessageId: this.privateMessageMode ? message.uniqueMessageId : message.id,
|
||||
});
|
||||
|
||||
message.likes[this.user._id] = !message.likes[this.user._id];
|
||||
|
||||
this.$emit('message-liked', message);
|
||||
this.$root.$emit('bv::hide::tooltip');
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default {
|
||||
components: {
|
||||
LikeButton,
|
||||
userLink,
|
||||
},
|
||||
filters: {
|
||||
timeAgo (value) {
|
||||
return moment(value).fromNow();
|
||||
},
|
||||
date (value) {
|
||||
// @TODO: Vue doesn't support this so we cant user preference
|
||||
return moment(value).toDate().toString();
|
||||
},
|
||||
},
|
||||
mixins: [externalLinks],
|
||||
mixins: [
|
||||
externalLinks, userStateMixin, LikeLogicMixin,
|
||||
CopyToClipboardMixin,
|
||||
],
|
||||
props: {
|
||||
msg: {},
|
||||
msg: {
|
||||
type: Object,
|
||||
},
|
||||
groupId: {
|
||||
type: String,
|
||||
},
|
||||
privateMessageMode: {
|
||||
type: Boolean,
|
||||
},
|
||||
userSentMessage: {
|
||||
type: Boolean,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
delete: deleteIcon,
|
||||
report: reportIcon,
|
||||
copy: copyIcon,
|
||||
menuIcon,
|
||||
}),
|
||||
reported: false,
|
||||
};
|
||||
@@ -175,19 +416,100 @@ export default {
|
||||
isMessageReported () {
|
||||
return (this.msg.flags && this.msg.flags[this.user.id]) || this.reported;
|
||||
},
|
||||
messageDateForSystemMessage () {
|
||||
return this.isSystemMessage ? this.messageDate : '';
|
||||
},
|
||||
messageDate () {
|
||||
const date = moment(this.msg.timestamp).toDate();
|
||||
return date.toString();
|
||||
},
|
||||
userIsModerator () {
|
||||
return this.hasPermission(this.user, 'moderator');
|
||||
},
|
||||
isSystemMessage () {
|
||||
return this.msg.uuid === 'system';
|
||||
},
|
||||
canLikeMessage () {
|
||||
if (this.isSystemMessage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.privateMessageMode) {
|
||||
return Boolean(this.msg.uniqueMessageId);
|
||||
}
|
||||
|
||||
return this.msg.id;
|
||||
},
|
||||
canDeleteMessage () {
|
||||
return this.privateMessageMode
|
||||
|| this.msg.uuid === this.user._id
|
||||
|| this.userIsModerator;
|
||||
},
|
||||
canReportMessage () {
|
||||
if (this.privateMessageMode) {
|
||||
return !this.isMessageReported;
|
||||
}
|
||||
return (this.user.flags.communityGuidelinesAccepted && this.msg.uuid !== 'system')
|
||||
&& (!this.isMessageReported || this.userIsModerator);
|
||||
},
|
||||
isUserMentioned () {
|
||||
const message = this.msg;
|
||||
|
||||
if (message.highlight) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const { user } = this;
|
||||
const displayName = user.profile.name;
|
||||
const { username } = user.auth.local;
|
||||
const pattern = `@(${escapeRegExp(displayName)}|${escapeRegExp(username)})(\\b)`;
|
||||
message.highlight = new RegExp(pattern, 'i').test(message.text);
|
||||
|
||||
return message.highlight;
|
||||
},
|
||||
flagCountDescription () {
|
||||
if (!this.msg.flagCount) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (this.msg.flagCount < CHAT_FLAG_LIMIT_FOR_HIDING) {
|
||||
return 'Message flagged once, not hidden';
|
||||
}
|
||||
|
||||
if (this.msg.flagCount < CHAT_FLAG_FROM_SHADOW_MUTE) {
|
||||
return 'Message hidden';
|
||||
}
|
||||
|
||||
return 'Message hidden (shadow-muted)';
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$emit('message-card-mounted');
|
||||
this.handleExternalLinks();
|
||||
this.mapProfileLinksToModal();
|
||||
},
|
||||
updated () {
|
||||
this.handleExternalLinks();
|
||||
this.mapProfileLinksToModal();
|
||||
},
|
||||
methods: {
|
||||
mapProfileLinksToModal () {
|
||||
const links = this.$refs.markdownContainer.getElementsByTagName('a');
|
||||
for (let i = 0; i < links.length; i += 1) {
|
||||
let link = links[i].pathname;
|
||||
|
||||
// Internet Explorer does not provide the leading slash character in the pathname
|
||||
link = link.charAt(0) === '/' ? link : `/${link}`;
|
||||
|
||||
if (link.startsWith('/profile/')) {
|
||||
links[i].onclick = ev => {
|
||||
ev.preventDefault();
|
||||
this.$router.push({ path: link });
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
report () {
|
||||
this.$root.$on('habitica:report-result', data => {
|
||||
if (data.ok) {
|
||||
@@ -199,16 +521,29 @@ export default {
|
||||
|
||||
this.$root.$emit('habitica::report-chat', {
|
||||
message: this.msg,
|
||||
groupId: 'privateMessage',
|
||||
groupId: this.groupId,
|
||||
});
|
||||
},
|
||||
async remove () {
|
||||
if (!window.confirm(this.$t('areYouSureDeleteMessage'))) return; // eslint-disable-line no-alert
|
||||
// eslint-disable-next-line no-alert
|
||||
if (!window.confirm(this.$t('areYouSureDeleteMessage'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
const message = this.msg;
|
||||
this.$emit('message-removed', message);
|
||||
|
||||
await axios.delete(`/api/v4/inbox/messages/${message.id}`);
|
||||
if (this.privateMessageMode) {
|
||||
await axios.delete(`/api/v4/inbox/messages/${message.id}`);
|
||||
} else {
|
||||
await this.$store.dispatch('chat:deleteChat', {
|
||||
groupId: this.groupId,
|
||||
chatId: message.id,
|
||||
});
|
||||
}
|
||||
},
|
||||
copy (message) {
|
||||
this.mixinCopyToClipboard(message.text, this.$t('messageCopiedToClipboard'));
|
||||
},
|
||||
parseMarkdown (text) {
|
||||
return renderWithMentions(text, this.user);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div
|
||||
ref="container"
|
||||
class="container-fluid"
|
||||
class="message-list"
|
||||
>
|
||||
<div class="row loadmore">
|
||||
<div class="loadmore">
|
||||
<div v-if="canLoadMore && !isLoading">
|
||||
<div class="loadmore-divider-holder">
|
||||
<div class="loadmore-divider"></div>
|
||||
@@ -28,7 +28,7 @@
|
||||
<div
|
||||
v-for="(msg) in messages"
|
||||
:key="msg.id"
|
||||
class="row message-row"
|
||||
class="message-row"
|
||||
:class="{ 'margin-right': user._id !== msg.uuid}"
|
||||
>
|
||||
<div
|
||||
@@ -39,28 +39,31 @@
|
||||
class="avatar-left"
|
||||
:member="conversationOpponentUser"
|
||||
:avatar-only="true"
|
||||
:override-top-padding="'14px'"
|
||||
:show-weapon="true"
|
||||
:debug-mode="false"
|
||||
:override-top-padding="'0'"
|
||||
:hide-class-badge="true"
|
||||
@click.native="showMemberModal(msg.uuid)"
|
||||
/>
|
||||
<div
|
||||
class="card"
|
||||
:class="{'card-right': user._id !== msg.uuid, 'card-left': user._id === msg.uuid}"
|
||||
>
|
||||
<message-card
|
||||
:msg="msg"
|
||||
@message-removed="messageRemoved"
|
||||
@show-member-modal="showMemberModal"
|
||||
@message-card-mounted="itemWasMounted"
|
||||
/>
|
||||
</div>
|
||||
<message-card
|
||||
:msg="msg"
|
||||
:user-sent-message="user._id === msg.uuid"
|
||||
:group-id="'privateMessage'"
|
||||
:private-message-mode="true"
|
||||
@message-liked="messageLiked"
|
||||
@message-removed="messageRemoved"
|
||||
@show-member-modal="showMemberModal"
|
||||
@message-card-mounted="itemWasMounted"
|
||||
/>
|
||||
<avatar
|
||||
v-if="user && user._id === msg.uuid"
|
||||
class="avatar-right"
|
||||
:member="user"
|
||||
:avatar-only="true"
|
||||
:show-weapon="true"
|
||||
:debug-mode="false"
|
||||
:hide-class-badge="true"
|
||||
:override-top-padding="'14px'"
|
||||
:override-top-padding="'0'"
|
||||
@click.native="showMemberModal(msg.uuid)"
|
||||
/>
|
||||
</div>
|
||||
@@ -69,121 +72,110 @@
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.avatar {
|
||||
width: 170px;
|
||||
min-width: 8rem;
|
||||
height: 120px;
|
||||
padding-top: 0 !important;
|
||||
.avatar-left, .avatar-right {
|
||||
align-self: center;
|
||||
|
||||
::v-deep .character-sprites {
|
||||
margin-bottom: -5px !important;
|
||||
padding-bottom: 0 !important;
|
||||
margin-top: -1px !important;
|
||||
}
|
||||
|
||||
.avatar-right {
|
||||
margin-left: -1rem;
|
||||
::v-deep .avatar {
|
||||
margin-left: -1.75rem;
|
||||
margin-right: -0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .character-sprites {
|
||||
margin-right: 1rem !important;
|
||||
.card {
|
||||
border: 0px;
|
||||
margin-bottom: 1rem;
|
||||
padding: 0rem;
|
||||
width: 684px;
|
||||
|
||||
}
|
||||
|
||||
.message-list {
|
||||
width: 100%;
|
||||
padding-right: 10px;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
.message-row {
|
||||
margin-left: 12px;
|
||||
margin-right: 0;
|
||||
margin-bottom: 1.2rem;
|
||||
|
||||
&:not(.margin-right) {
|
||||
.d-flex {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
border: 0px;
|
||||
margin-bottom: 1rem;
|
||||
padding: 0rem;
|
||||
width: 684px;
|
||||
}
|
||||
.message-row {
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
.hr {
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
border-bottom: 1px solid $gray-500;
|
||||
text-align: center;
|
||||
margin: 2em 0;
|
||||
}
|
||||
|
||||
&:not(.margin-right) {
|
||||
.d-flex {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 1200px) {
|
||||
.card {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.hr-middle {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
font-family: 'Roboto Condensed';
|
||||
line-height: 1.5;
|
||||
text-align: center;
|
||||
color: $gray-200;
|
||||
background-color: $gray-700;
|
||||
padding: .2em;
|
||||
margin-top: .2em;
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1400px) {
|
||||
.message-row {
|
||||
margin-left: -15px;
|
||||
margin-right: -30px;
|
||||
}
|
||||
}
|
||||
.loadmore {
|
||||
justify-content: center;
|
||||
margin-right: 12px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
.card-left {
|
||||
border: 1px solid $purple-500;
|
||||
}
|
||||
|
||||
.card-right {
|
||||
border: 1px solid $gray-500;
|
||||
}
|
||||
|
||||
.hr {
|
||||
> div {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
border-bottom: 1px solid $gray-500;
|
||||
text-align: center;
|
||||
margin: 2em 0;
|
||||
}
|
||||
align-items: center;
|
||||
|
||||
.hr-middle {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
font-family: 'Roboto Condensed';
|
||||
line-height: 1.5;
|
||||
text-align: center;
|
||||
color: $gray-200;
|
||||
background-color: $gray-700;
|
||||
padding: .2em;
|
||||
margin-top: .2em;
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.loadmore {
|
||||
justify-content: center;
|
||||
margin-right: 12px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
> div {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
|
||||
button {
|
||||
text-align: center;
|
||||
color: $gray-50;
|
||||
}
|
||||
button {
|
||||
text-align: center;
|
||||
color: $gray-50;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.loadmore-divider-holder {
|
||||
flex: 1;
|
||||
margin-left: 24px;
|
||||
margin-right: 24px;
|
||||
.loadmore-divider-holder {
|
||||
flex: 1;
|
||||
margin-left: 24px;
|
||||
margin-right: 24px;
|
||||
|
||||
&:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
&:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.loadmore-divider {
|
||||
height: 1px;
|
||||
border-top: 1px $gray-500 solid;
|
||||
width: 100%;
|
||||
.loadmore-divider {
|
||||
height: 1px;
|
||||
border-top: 1px $gray-500 solid;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.loading {
|
||||
padding-left: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.loading {
|
||||
padding-left: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -280,6 +272,9 @@ export default {
|
||||
// container.style.overflowY = 'scroll';
|
||||
}
|
||||
}, 50),
|
||||
messageLiked (message) {
|
||||
this.$emit('message-liked', message);
|
||||
},
|
||||
messageRemoved (message) {
|
||||
this.$emit('message-removed', message);
|
||||
},
|
||||
|
||||
@@ -692,7 +692,7 @@
|
||||
<div class="form-inline clearfix">
|
||||
<Sprite
|
||||
class="pull-left"
|
||||
:class="'inventory_quest_scroll_' + item.key"
|
||||
:image-name="'inventory_quest_scroll_' + item.key"
|
||||
style="margin-right: 10px"
|
||||
/>
|
||||
<p>{{ item.text() }}</p>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<div
|
||||
v-for="currency of currencies"
|
||||
:key="currency.key"
|
||||
:needed-currency-only="neededCurrencyOnly"
|
||||
class="d-flex align-items-center"
|
||||
>
|
||||
<div
|
||||
@@ -54,6 +55,9 @@ export default {
|
||||
amountNeeded: {
|
||||
type: Number,
|
||||
},
|
||||
neededCurrencyOnly: {
|
||||
type: Boolean,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -66,34 +70,34 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
currencies () {
|
||||
const currencies = [];
|
||||
currencies.push({
|
||||
const currencies = [{
|
||||
type: 'hourglasses',
|
||||
icon: this.icons.hourglasses,
|
||||
value: this.userHourglasses,
|
||||
});
|
||||
},
|
||||
|
||||
currencies.push({
|
||||
{
|
||||
type: 'gems',
|
||||
icon: this.icons.gem,
|
||||
value: this.userGems,
|
||||
});
|
||||
},
|
||||
|
||||
currencies.push({
|
||||
{
|
||||
type: 'gold',
|
||||
icon: this.icons.gold,
|
||||
value: this.userGold,
|
||||
});
|
||||
}];
|
||||
|
||||
for (const currency of currencies) {
|
||||
if (
|
||||
currency.type === this.currencyNeeded
|
||||
&& !this.enoughCurrency(this.currencyNeeded, this.amountNeeded)
|
||||
if (currency.type === this.currencyNeeded
|
||||
&& !this.enoughCurrency(this.currencyNeeded, this.amountNeeded)
|
||||
) {
|
||||
currency.notEnough = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.neededCurrencyOnly) {
|
||||
return currencies.filter(curr => curr.type === this.currencyNeeded);
|
||||
}
|
||||
return currencies;
|
||||
},
|
||||
},
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
}"
|
||||
>
|
||||
<input
|
||||
ref="textInput"
|
||||
:value="value"
|
||||
class="form-control"
|
||||
:type="inputType"
|
||||
@@ -29,19 +30,23 @@
|
||||
}"
|
||||
:readonly="readonly"
|
||||
:aria-readonly="readonly"
|
||||
autocomplete="off"
|
||||
|
||||
:placeholder="placeholder"
|
||||
@keyup="handleChange"
|
||||
@keyup.enter="$emit('enter')"
|
||||
@blur="$emit('blur')"
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
v-for="issue in invalidIssues"
|
||||
:key="issue"
|
||||
class="input-error"
|
||||
>
|
||||
{{ issue }}
|
||||
</div>
|
||||
<template v-if="!hideErrorLine">
|
||||
<div
|
||||
v-for="issue in invalidIssues"
|
||||
:key="issue"
|
||||
class="input-error"
|
||||
>
|
||||
{{ issue }}
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -85,6 +90,10 @@ export default {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
hideErrorLine: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -107,6 +116,9 @@ export default {
|
||||
this.wasChanged = true;
|
||||
this.$emit('update:value', value);
|
||||
},
|
||||
focus () {
|
||||
this.$refs.textInput.focus();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -128,4 +140,12 @@ export default {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* this removes safari "save username" UI, we only search for one, we dont want to save it */
|
||||
input::-webkit-contacts-auto-fill-button,
|
||||
input::-webkit-credentials-auto-fill-button {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -29,20 +29,12 @@
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.user-link { // this is the user name
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
|
||||
// currently used in the member-details-new.vue
|
||||
&.smaller {
|
||||
font-family: Roboto;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
line-height: 1.71;
|
||||
}
|
||||
font-size: 14px;
|
||||
line-height: 1.71;
|
||||
display: inline-flex !important;
|
||||
|
||||
&.no-tier {
|
||||
color: $gray-50;
|
||||
@@ -111,7 +103,6 @@ export default {
|
||||
'backer',
|
||||
'contributor',
|
||||
'hideTooltip',
|
||||
'smallerStyle',
|
||||
'showBuffed',
|
||||
'context',
|
||||
],
|
||||
@@ -173,7 +164,7 @@ export default {
|
||||
return this.hideTooltip ? '' : achievementsLib.getContribText(this.contributor, this.isNPC) || '';
|
||||
},
|
||||
levelStyle () {
|
||||
return `${this.userLevelStyleFromLevel(this.level, this.isNPC)} ${this.smallerStyle ? 'smaller' : ''}`;
|
||||
return `${this.userLevelStyleFromLevel(this.level, this.isNPC)}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
import debounce from 'lodash/debounce';
|
||||
|
||||
export const autoCompleteHelperMixin = {
|
||||
data () {
|
||||
return {
|
||||
mixinData: {
|
||||
autoComplete: {
|
||||
caretPosition: 0,
|
||||
coords: {
|
||||
TOP: 0,
|
||||
LEFT: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
autoCompleteMixinHandleTab (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
if (e.shiftKey) {
|
||||
this.$refs.autocomplete.selectPrevious();
|
||||
} else {
|
||||
this.$refs.autocomplete.selectNext();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
autoCompleteMixinHandleEscape (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.cancel();
|
||||
}
|
||||
},
|
||||
|
||||
autoCompleteMixinSelectNextAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.selectNext();
|
||||
}
|
||||
},
|
||||
|
||||
autoCompleteMixinSelectPreviousAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.selectPrevious();
|
||||
}
|
||||
},
|
||||
|
||||
autoCompleteMixinSelectAutocomplete (e) {
|
||||
if (this.$refs.autocomplete.searchActive) {
|
||||
if (this.$refs.autocomplete.selected !== null) {
|
||||
e.preventDefault();
|
||||
this.$refs.autocomplete.makeSelection();
|
||||
} else {
|
||||
// no autocomplete selected, newline instead
|
||||
this.$refs.autocomplete.cancel();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
autoCompleteMixinUpdateCarretPosition: debounce(function updateCarretPosition (eventUpdate) {
|
||||
this._updateCarretPosition(eventUpdate);
|
||||
}, 250),
|
||||
|
||||
autoCompleteMixinResetCoordsPosition () {
|
||||
this.mixinData.autoComplete.coords = {
|
||||
TOP: 0,
|
||||
LEFT: 0,
|
||||
};
|
||||
},
|
||||
|
||||
// https://medium.com/@_jh3y/how-to-where-s-the-caret-getting-the-xy-position-of-the-caret-a24ba372990a
|
||||
_getCoord (e, text) {
|
||||
const caretPosition = text.selectionEnd;
|
||||
this.mixinData.autoComplete.caretPosition = caretPosition;
|
||||
|
||||
const div = document.createElement('div');
|
||||
const span = document.createElement('span');
|
||||
const copyStyle = getComputedStyle(text);
|
||||
|
||||
[].forEach.call(copyStyle, prop => {
|
||||
div.style[prop] = copyStyle[prop];
|
||||
});
|
||||
|
||||
div.style.position = 'absolute';
|
||||
document.body.appendChild(div);
|
||||
div.textContent = text.value.substr(0, caretPosition);
|
||||
span.textContent = text.value.substr(caretPosition) || '.';
|
||||
div.appendChild(span);
|
||||
this.mixinData.autoComplete.coords = {
|
||||
TOP: span.offsetTop,
|
||||
LEFT: span.offsetLeft,
|
||||
};
|
||||
document.body.removeChild(div);
|
||||
},
|
||||
_updateCarretPosition (eventUpdate) {
|
||||
const text = eventUpdate.target;
|
||||
this._getCoord(eventUpdate, text);
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1,7 +1,7 @@
|
||||
import notifications from './notifications';
|
||||
import { NotificationMixins } from './notifications';
|
||||
|
||||
export default {
|
||||
mixins: [notifications],
|
||||
export const CopyToClipboardMixin = {
|
||||
mixins: [NotificationMixins],
|
||||
methods: {
|
||||
async mixinCopyToClipboard (valueToCopy, notificationToShow = null) {
|
||||
if (navigator.clipboard) {
|
||||
@@ -21,3 +21,5 @@ export default {
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default CopyToClipboardMixin;
|
||||
|
||||
+620
-417
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -62,7 +62,7 @@
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import userLabel from '../userLabel';
|
||||
import userLabel from '../../components/userLabel.vue';
|
||||
|
||||
import dots from '@/assets/svg/dots.svg';
|
||||
import block from '@/assets/svg/block.svg';
|
||||
@@ -117,7 +117,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/colors';
|
||||
|
||||
.action-padding {
|
||||
height: 24px !important;
|
||||
@@ -153,7 +153,7 @@ export default {
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/colors';
|
||||
|
||||
.conversation {
|
||||
padding: 1rem 1.5rem;
|
||||
@@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<div
|
||||
v-if="filtersConversations.length > 0"
|
||||
class="conversations"
|
||||
>
|
||||
<conversation-item
|
||||
v-for="conversation in filtersConversations"
|
||||
:key="conversation.key"
|
||||
:active-key="selectedConversation?.key"
|
||||
:contributor="conversation.contributor"
|
||||
:backer="conversation.backer"
|
||||
:uuid="conversation.key"
|
||||
:display-name="conversation.name"
|
||||
:username="conversation.username"
|
||||
:last-message-date="conversation.date"
|
||||
:last-message-text="conversation.lastMessageText
|
||||
? removeTags(parseMarkdown(conversation.lastMessageText)) : ''"
|
||||
@click="selectConversation(conversation.key)"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.conversations {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
||||
import { defineComponent } from 'vue';
|
||||
import habiticaMarkdown from 'habitica-markdown';
|
||||
import conversationItem from '@/pages/private-messages/pm-conversation-item.vue';
|
||||
|
||||
export default defineComponent({
|
||||
components: { conversationItem },
|
||||
props: {
|
||||
filtersConversations: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
selectedConversation: {
|
||||
type: Object,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
removeTags (html) {
|
||||
const tmp = document.createElement('DIV');
|
||||
tmp.innerHTML = html;
|
||||
return tmp.textContent || tmp.innerText || '';
|
||||
},
|
||||
parseMarkdown (text) {
|
||||
if (!text) return null;
|
||||
return habiticaMarkdown.render(String(text));
|
||||
},
|
||||
selectConversation (conversationKey) {
|
||||
this.$emit('selectConversation', conversationKey);
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<div
|
||||
class="pm-disabled-caption text-center"
|
||||
>
|
||||
<h4>{{ disabledTexts.title }}</h4>
|
||||
<p>{{ disabledTexts.description }}</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.pm-disabled-caption {
|
||||
padding-top: 1.5em;
|
||||
z-index: 2;
|
||||
|
||||
h4, p {
|
||||
color: $gray-200;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 12px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['disabledTexts'],
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,71 @@
|
||||
<template>
|
||||
<div
|
||||
class="empty-messages m-auto text-center empty-sidebar"
|
||||
>
|
||||
<div class="no-messages-box">
|
||||
<div
|
||||
v-once
|
||||
class="svg-icon envelope mb-4"
|
||||
v-html="icons.mailIcon"
|
||||
></div>
|
||||
<strong
|
||||
v-once
|
||||
class="mb-1"
|
||||
>
|
||||
{{ $t('emptyMessagesLine1') }}
|
||||
</strong>
|
||||
<p v-if="!chatRevoked">
|
||||
{{ $t('emptyMessagesLine2') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="btn btn-primary mt-4 d-flex align-items-center"
|
||||
@click="$emit('newMessageClicked')"
|
||||
>
|
||||
<div
|
||||
class="svg-icon icon-10 color mr-2"
|
||||
v-html="icons.positive"
|
||||
></div>
|
||||
{{ $t('newMessage') }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
strong {
|
||||
line-height: 1.71;
|
||||
color: $gray-100;
|
||||
}
|
||||
|
||||
.svg-icon.icon-10 {
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import mailIcon from '@/assets/svg/mail.svg';
|
||||
import positiveIcon from '@/assets/svg/positive.svg';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
chatRevoked: Boolean,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
mailIcon,
|
||||
positive: positiveIcon,
|
||||
}),
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<div
|
||||
v-once
|
||||
class="centered empty-messages m-auto text-center"
|
||||
>
|
||||
<avatar
|
||||
v-if="memberObj"
|
||||
:member="memberObj"
|
||||
:avatar-only="true"
|
||||
:show-weapon="false"
|
||||
:hide-class-badge="true"
|
||||
:override-top-padding="'0px'"
|
||||
:sprites-margin="'0 0 0 -30px'"
|
||||
:debug-mode="false"
|
||||
:center-avatar="true"
|
||||
class="mb-3"
|
||||
/>
|
||||
|
||||
<strong>{{ memberObj.profile.name }}</strong>
|
||||
<div class="username mb-3">
|
||||
@{{ memberObj.auth.local.username }}
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="kind-text"
|
||||
v-html="$t('rememberToBeKind')"
|
||||
></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.centered {
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.center-avatar {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
strong {
|
||||
line-height: 1.71;
|
||||
}
|
||||
|
||||
.username {
|
||||
font-size: 12px;
|
||||
line-height: 1.33;
|
||||
color: $gray-100;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.kind-text {
|
||||
width: 330px;
|
||||
line-height: 1.71;
|
||||
color: $gray-100;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import Avatar from '@/components/avatar.vue';
|
||||
|
||||
export default {
|
||||
components: { Avatar },
|
||||
props: {
|
||||
memberObj: null,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,44 @@
|
||||
export namespace PrivateMessages {
|
||||
// Shared properties between message types
|
||||
interface SharedMessageProps {
|
||||
username: string;
|
||||
contributor: Record<string, unknown>;
|
||||
userStyles: Record<string, unknown>;
|
||||
canReceive: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the Type we get from our API
|
||||
*/
|
||||
interface ConversationSummaryMessageEntry extends SharedMessageProps {
|
||||
uuid: string;
|
||||
user: string;
|
||||
|
||||
timestamp: string;
|
||||
text: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Visual (Sidebar) Entry
|
||||
*/
|
||||
interface ConversationEntry extends SharedMessageProps {
|
||||
/**
|
||||
* UUID
|
||||
*/
|
||||
key: string;
|
||||
name: string;
|
||||
|
||||
|
||||
lastMessageText: '',
|
||||
canLoadMore: boolean;
|
||||
page: 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Loaded Private Messages, partial type
|
||||
*/
|
||||
interface PrivateMessageEntry extends SharedMessageProps {
|
||||
text: string;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
<template>
|
||||
<div class="ml-4">
|
||||
<strong
|
||||
v-once
|
||||
v-html="$t('to')"
|
||||
></strong>
|
||||
<validated-text-input
|
||||
id="selectUser"
|
||||
ref="targetUserInput"
|
||||
v-model="targetUserInputValue"
|
||||
class="mx-2"
|
||||
:is-valid="foundUser._id"
|
||||
:only-show-invalid-state="foundUser._id === undefined"
|
||||
|
||||
:hide-error-line="true"
|
||||
:placeholder="$t('usernameOrUserId')"
|
||||
:invalid-issues="userInputInvalidIssues"
|
||||
@enter="triggerNewConversation"
|
||||
/>
|
||||
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
:disabled="preventTrigger"
|
||||
@click="triggerNewConversation()"
|
||||
>
|
||||
{{ $t('confirm') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="ml-2 btn btn-secondary"
|
||||
@click="$emit('cancelNewConversation')"
|
||||
>
|
||||
{{ $t('cancel') }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
div > * {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
strong {
|
||||
line-height: 1.71;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
input {
|
||||
border-radius: 2px;
|
||||
border-width: 2px;
|
||||
|
||||
width: 420px;
|
||||
}
|
||||
|
||||
#selectUser {
|
||||
/* changing the style of validate-text-input to the same as others */
|
||||
::v-deep {
|
||||
.input-group {
|
||||
border-width: 2px;
|
||||
|
||||
input {
|
||||
width: 420px;
|
||||
height: 100%;
|
||||
color: $gray-50;
|
||||
}
|
||||
}
|
||||
|
||||
.input-group {
|
||||
&:focus, &:active, &:focus-within {
|
||||
border: solid 2px $purple-400;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
||||
import debounce from 'lodash/debounce';
|
||||
import isUUID from 'validator/es/lib/isUUID';
|
||||
import ValidatedTextInput from '@/components/ui/validatedTextInput.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
ValidatedTextInput,
|
||||
},
|
||||
mixins: [],
|
||||
data () {
|
||||
return {
|
||||
targetUserInputValue: '',
|
||||
userNotFound: false,
|
||||
foundUser: {},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
preventTrigger () {
|
||||
return this.targetUserInputValue.length < 2;
|
||||
},
|
||||
userInputInvalidIssues () {
|
||||
return this.targetUserInputValue.length > 0 && this.userNotFound
|
||||
? [this.$t('userWithUsernameOrUserIdNotFound')]
|
||||
: [''];
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
targetUserInputValue: {
|
||||
handler () {
|
||||
this.searchUser(this.targetUserInputValue.replace('@', ''));
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$refs.targetUserInput.focus();
|
||||
},
|
||||
methods: {
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'select-user-modal');
|
||||
},
|
||||
searchUser: debounce(async function userSearch (searchTerm = '') {
|
||||
this.foundUser = {};
|
||||
if (searchTerm.length < 1) {
|
||||
this.userNotFound = false;
|
||||
return;
|
||||
}
|
||||
let result;
|
||||
if (isUUID(searchTerm)) {
|
||||
try {
|
||||
result = await this.$store.dispatch('members:fetchMember', {
|
||||
memberId: searchTerm,
|
||||
});
|
||||
} catch {
|
||||
result = null;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
result = await this.$store.dispatch('members:fetchMemberByUsername', {
|
||||
username: searchTerm,
|
||||
});
|
||||
} catch {
|
||||
result = null;
|
||||
}
|
||||
}
|
||||
if (!result) {
|
||||
this.userNotFound = true;
|
||||
return;
|
||||
}
|
||||
this.userNotFound = false;
|
||||
this.foundUser = result;
|
||||
}, 500),
|
||||
triggerNewConversation () {
|
||||
const userWithoutAt = this.$refs.targetUserInput.value.replace('@', '');
|
||||
|
||||
this.$emit('startNewConversation', userWithoutAt);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -11,6 +11,7 @@
|
||||
class="balance-info"
|
||||
:currency-needed="currencyNeeded"
|
||||
:amount-needed="amountNeeded"
|
||||
:neededCurrencyOnly="true"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
<your-balance
|
||||
:amount-needed="amountNeeded"
|
||||
currency-needed="gems"
|
||||
class="d-flex align-items-center"
|
||||
/>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -49,7 +49,7 @@ const GroupPlanIndex = () => import(/* webpackChunkName: "group-plans" */ '@/com
|
||||
const GroupPlanTaskInformation = () => import(/* webpackChunkName: "group-plans" */ '@/components/group-plans/taskInformation');
|
||||
const GroupPlanBilling = () => import(/* webpackChunkName: "group-plans" */ '@/components/group-plans/billing');
|
||||
|
||||
const MessagesIndex = () => import(/* webpackChunkName: "private-messages" */ '@/pages/private-messages');
|
||||
const MessagesIndex = () => import(/* webpackChunkName: "private-messages" */ '@/pages/private-messages/index.vue');
|
||||
|
||||
// Challenges
|
||||
const ChallengeIndex = () => import(/* webpackChunkName: "challenges" */ '@/components/challenges/index');
|
||||
|
||||
@@ -43,7 +43,14 @@ export async function deleteChat (store, payload) {
|
||||
}
|
||||
|
||||
export async function like (store, payload) {
|
||||
const url = `/api/v4/groups/${payload.groupId}/chat/${payload.chatId}/like`;
|
||||
let url = '';
|
||||
|
||||
if (payload.groupId === 'privateMessage') {
|
||||
url = `/api/v4/inbox/like-private-message/${payload.chatMessageId}`;
|
||||
} else {
|
||||
url = `/api/v4/groups/${payload.groupId}/chat/${payload.chatMessageId}/like`;
|
||||
}
|
||||
|
||||
const response = await axios.post(url);
|
||||
return response.data.data;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,11 @@ describe('LevelUp', () => {
|
||||
|
||||
it('generates the right test class for level 15', () => {
|
||||
const questClass = testFunction('questClass', 15);
|
||||
expect(questClass()).to.equal('inventory_quest_scroll_atom1');
|
||||
});
|
||||
|
||||
expect(questClass()).to.equal('scroll inventory_quest_scroll_atom1');
|
||||
it('generates empty test class for level 14', () => {
|
||||
const questClass = testFunction('questClass', 14);
|
||||
expect(questClass()).to.equal('');
|
||||
});
|
||||
});
|
||||
|
||||
+5
-3
@@ -1,14 +1,16 @@
|
||||
import Vue from 'vue';
|
||||
import { shallowMount, createLocalVue } from '@vue/test-utils';
|
||||
|
||||
import ChatCard from '@/components/chat/chatCard.vue';
|
||||
import BootstrapVue from 'bootstrap-vue';
|
||||
import MessageCard from '@/components/messages/messageCard.vue';
|
||||
import Store from '@/libs/store';
|
||||
|
||||
const localVue = createLocalVue();
|
||||
localVue.use(Store);
|
||||
localVue.use(Vue.directive('b-tooltip', {}));
|
||||
localVue.use(BootstrapVue);
|
||||
|
||||
describe('ChatCard', () => {
|
||||
describe('MessageCard', () => {
|
||||
function createMessage (text) {
|
||||
return { text, likes: {} };
|
||||
}
|
||||
@@ -26,7 +28,7 @@ describe('ChatCard', () => {
|
||||
let wrapper;
|
||||
|
||||
beforeEach(() => {
|
||||
wrapper = shallowMount(ChatCard, {
|
||||
wrapper = shallowMount(MessageCard, {
|
||||
propsData: { msg: message },
|
||||
store: new Store({
|
||||
state: {
|
||||
@@ -91,7 +91,7 @@
|
||||
"conText": "Якостта намалява щетите от отрицателни навици и пропуснати ежедневни задачи.",
|
||||
"perception": "Усет",
|
||||
"perText": "Усетът увеличава спечеленото злато, а след отключването на пазара увеличава вероятността за намиране на предмети след приключване на задачи.",
|
||||
"intelligence": "Интелигентност",
|
||||
"intelligence": "Интелект",
|
||||
"intText": "Интелигентността увеличава спечеления опит, а след отключването на класовете определя максималната мана за използване за класовите умения.",
|
||||
"levelBonus": "Бонус за ниво",
|
||||
"allocatedPoints": "Разпределени точки",
|
||||
|
||||
@@ -395,5 +395,9 @@
|
||||
"hatchingPotionGingerbread": "Lebkuchen",
|
||||
"questEggCatText": "Kätzchen",
|
||||
"questEggCatMountText": "Katze",
|
||||
"questEggCatAdjective": "ein schelmisches"
|
||||
"questEggCatAdjective": "ein schelmisches",
|
||||
"questEggOtterText": "Otter",
|
||||
"questEggOtterMountText": "Otter",
|
||||
"hatchingPotionJade": "Jade",
|
||||
"questEggOtterAdjective": "Ein perfider"
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"webFaqAnswer31": "Wenn du eine Aufgabe erfüllst und HP verlierst, obwohl du das nicht hättest tun sollen, kam es zu einer Verzögerung, während der Server die auf anderen Plattformen vorgenommenen Änderungen synchronisiert hat. Wenn du zum Beispiel Gold oder Mana verwendest oder HP in der mobilen App verlierst und dann eine Aufgabe auf der Website erledigst, bestätigt der Server lediglich, dass alles synchronisiert ist.",
|
||||
"webFaqAnswer49": "Wenn Du Habitica mit anderen erleben möchtest, aber keine anderen Spieler kennst, ist die Suche nach einer Party die beste Option! Wenn Du bereits andere Spieler kennst, die eine Party haben, kannst Du deinen @Benutzernamen mit ihnen teilen, um eingeladen zu werden. Alternativ kannst Du auch eine neue Gruppe erstellen und sie mit ihrem @Nutzernamen oder ihrer E-Mail-Adresse einladen.\n\nUm eine Party zu erstellen oder zu suchen, wähle \"Party\" im Navigationsmenü und wähle dann die Option, die Dir am besten gefällt.",
|
||||
"webFaqAnswer62": "Gruppenpläne bieten dir die einzigartige Möglichkeit, anderen Mitgliedern deines Gruppenplans gemeinsame Aufgaben zuzuweisen. Wenn eine gemeinsame Aufgabe einem Mitglied zugewiesen wird, können andere Mitglieder sie nicht mehr erledigen.\n\nDu kannst eine Aufgabe auch mehreren Mitgliedern zuweisen. Wenn sich zum Beispiel alle Mitglieder die Zähne putzen müssen, erstellst du eine Aufgabe und weist sie jedem Mitglied zu. Jedes Mitglied kann die Aufgabe erledigen und sich seine individuelle Belohnung verdienen. Die Hauptaufgabe wird als erledigt angezeigt, sobald alle Mitglieder sie erledigt haben.",
|
||||
"webFaqAnswer32": "In Habitica gibt es vier Klassen: Krieger, Magier, Schurke und Heiler. Alle Spieler beginnen in der Klasse des Kriegers, bis du Stufe 10 erreicht hast. Sobald du Stufe 10 erreichst, hast du die Wahl, eine neue Klasse zu wählen oder als Krieger weiterzuspielen.\n\nJede Klasse verfügt über unterschiedliche Ausrüstungen und Fertigkeiten. Wenn du dich nicht für eine Klasse entscheiden möchtest, kannst du \"Aussteigen\" wählen. Wenn du dich dafür entscheidest, kannst du das Klassensystem später in den Einstellungen wieder aktivieren.",
|
||||
"webFaqAnswer32": "Alle Spieler beginnen in der Klasse des Kriegers, bis sie Stufe 10 erreicht haben. Sobald du Stufe 10 erreichst, hast du die Wahl, eine neue Klasse zu wählen oder als Krieger weiterzuspielen.\n\nJede Klasse verfügt über unterschiedliche Ausrüstungen und Fertigkeiten. Wenn du dich nicht für eine Klasse entscheiden möchtest, kannst du \"Abbrechen\" wählen. Wenn du dich später doch entscheidest, kannst du das Klassensystem in den Einstellungen wieder aktivieren.\n\nWenn Du Deine Klasse nach Level 10 noch einmal ändern möchtest, kannst Du die Sphäre der Wiedergeburt hierfür nutzen. Die Sphäre der Wiedergeburt ist mit Level 50 auf demMarktplatz für 6 Edelsteine verfügbar und mit Level 100 bekommst Du sie umsonst.\n\nAlternativ kannst Du Deine Klasse jederzeit in den Einstellungen für 3 Edelsteine ändern. Dies wird Dein Level nicht wie die Sphäre der Wiedergeburt zurücksetzen, aber es erlaubt Dir, die Fertigkeits-Punkte, die Du beim Leveln gesammelt hast, Deiner neuen Klasse zuzuordnen.",
|
||||
"sunsetFaqPara14": "<strong>Linguists</strong><br />Wir freuen uns auch weiterhin über Hilfe bei der Übersetzung der Apps und der Website und werden für qualifizierte Beiträge nach wie vor Beitragsstufen vergeben. Die Methode, mit der wir Übersetzungen annehmen, wird sich jedoch ändern. Wir möchten unsere Ressourcen auf die Unterstützung einer bestimmten Auswahl von Sprachen für alle Plattformen konzentrieren. Um dies zu erreichen, werden wir die Anzahl der für Übersetzungen verfügbaren Sprachen reduzieren. Zuvor nicht fertiggestellte Sprachen werden in Github archiviert. Wir hoffen, dass diese Änderung das plattformübergreifende Habitica-Erlebnis konsistenter macht. Sie können unsere aktuellsten Richtlinien für das Übersetzungsverfahren auf unserer Website lesen <a href='https://translate.habitica.com/projects/habitica/#information'>Übersetzungswebsite</a>.",
|
||||
"webFaqAnswer34": "Haustiere mögen Futter, das zu ihrer Farbe passt. Basis-Tiere sind die Ausnahme, aber alle Basis-Tiere mögen den gleichen Gegenstand. Im Folgenden siehst du, welche Nahrungsmittel jedes Haustier mag:\n\n * Basistiere mögen Fleisch\n * Weiße Haustiere mögen Milch\n * Wüstenhaustiere mögen Kartoffeln\n * Rote Haustiere mögen Erdbeeren\n * Schattentiere mögen Schokolade\n * Skelett-Tiere mögen Fisch\n * Zombie-Tiere mögen verdorbenes Fleisch\n * Zuckerwatte rosa Haustiere mögen rosa Zuckerwatte\n * Zuckerwatte blaue Haustiere mögen blaue Zuckerwatte\n * Goldene Haustiere mögen Honig",
|
||||
"webFaqAnswer35": "Sobald du dein Haustier genug gefüttert hast, um es zu einem Reittier zu machen, musst du diese Art von Haustier erneut ausbrüten, um es in deinem Stall zu haben.\n\nUm Reittiere in den mobilen Apps zu sehen:\n\n * Wähle im Menü \"Haustiere & Reittiere\" und wechseln zur Registerkarte \"Reittiere\".\n\nSo zeigst du Reittiere auf der Website an:\n\n * Wähle im Menü \"Inventar\" die Option \"Haustiere und Reittiere\" und scrollen nach unten zum Abschnitt \"Reittiere\"",
|
||||
@@ -36,7 +36,7 @@
|
||||
"faqQuestion30": "Was passiert, wenn ich keine HP mehr habe?",
|
||||
"webFaqAnswer30": "Wenn deine HP Null erreichen, verlierst du eine Stufe, dein gesamtes Gold und ein Ausrüstungsstück, das du wieder kaufen kannst.",
|
||||
"faqQuestion31": "Warum habe ich HP verloren, wenn ich mit einer nicht-negativen Aufgabe interagiere?",
|
||||
"faqQuestion32": "Wann kann ich eine Klasse wählen?",
|
||||
"faqQuestion32": "Wie kann ich eine Klasse wählen?",
|
||||
"faqQuestion33": "Was ist der blaue Balken, der nach Level 10 erscheint?",
|
||||
"webFaqAnswer33": "Nachdem du das Klassensystem freigeschaltet hast, schaltest du auch Fertigkeiten frei, die Mana benötigen, um genutzt werden zu können. Mana wird durch deinen INT-Wert bestimmt und kann durch Fertigkeiten und Ausrüstung angepasst werden.",
|
||||
"faqQuestion34": "Welches Futter mag mein Haustier?",
|
||||
|
||||
@@ -3263,5 +3263,39 @@
|
||||
"shieldMystery202502Text": "Herzvolle Harlekin Ballons",
|
||||
"shieldMystery202502Notes": "Möge dein Herz an diesen Valentinstag, und auch jeden anderen Tag, so leicht sein wie diese beschwingten Luftballons. Gewährt keinen Attributbonus. Februar 2025 Abonnentengegenstand.",
|
||||
"shieldArmoireFancyFloralFanText": "Bezaubernder Blumenfächer",
|
||||
"headArmoireFancyFloralHatNotes": "Bestaune diesen bezaubernden Hut voller hinreißender Blumen und verschnörkelten Schnallen. Erhöht Intelligenz um <%= int %>. Verzauberter Schrank: Bezauberndes Blumen Zubehör Set (Gegenstand 1 von 2)."
|
||||
"headArmoireFancyFloralHatNotes": "Bestaune diesen bezaubernden Hut voller hinreißender Blumen und verschnörkelten Schnallen. Erhöht Intelligenz um <%= int %>. Verzauberter Schrank: Bezauberndes Blumen Zubehör Set (Gegenstand 1 von 2).",
|
||||
"weaponSpecialSpring2025WarriorNotes": "Mit einem Schnitt kannst du durch Blumenstängel säbeln, um ein Bukett zu machen, oder direkt durch Hindernisse, um deine Aufgaben zu erfüllen. Erhöht Stärke um <%= str %>. Limitierte Ausgabe Frühlingsausrüstung 2025.",
|
||||
"weaponSpecialSpring2025WarriorText": "Sonnenschein-Säbel",
|
||||
"weaponSpecialSpring2025RogueText": "Kristallspitzen-Morgenstern",
|
||||
"weaponSpecialSpring2025RogueNotes": "Mit einem Schwinger kannst du jedes Hindernis eliminieren, das deinen Zielen im Weg steht. Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2025MageNotes": "Mit einem Schwinger kannst du Elementarmagie nutzen, um deine Umgebung zu kontrollieren. Nutze den Vorteil und spring vorwärts! Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe Frühlingsausrüstung 2025.",
|
||||
"weaponSpecialSpring2025MageText": "Fangschrecken Stab",
|
||||
"armorSpecialSpring2025WarriorText": "Sonnenschein Rüstung",
|
||||
"armorSpecialSpring2025WarriorNotes": "Diese atemberaubende Rüstung hat Farben, die du inmitten eines sonnigen Frühlingstages am Himmel sehen kannst. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe Frühlingsausrüstung 2025.",
|
||||
"armorSpecialSpring2025HealerText": "Plumeria Robe",
|
||||
"armorSpecialSpring2025HealerNotes": "Diese atemberaubende Robe enthält Plumeria Blütenblätter, die weich und raschelig sind. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"weaponSpecialSpring2025HealerText": "Plumeria Hirtenstab",
|
||||
"weaponSpecialSpring2025HealerNotes": "Mit einem Schwinger kannst du Bestäuber an deine Seite rufen, um dir bei deinen Abenteuern zu helfen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"armorSpecialSpring2025RogueText": "Kristallnadel-Umhang",
|
||||
"armorSpecialSpring2025RogueNotes": "Dieser atemberaubende Umhang enthält extra Kristalle mit speziellen, geheimen Kräften, von denen nur du weißt. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"armorSpecialSpring2025MageText": "Fangschrecken Uniform",
|
||||
"armorSpecialSpring2025MageNotes": "Diese atemberaubende Uniform enthält auffällige Farben, lässt dich aber trotzdem heimlich an deine schwierigsten Aufgaben anpirschen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2025WarriorText": "Sonnenschein Helm",
|
||||
"headSpecialSpring2025WarriorNotes": "Der Kamm auf diesem Helm erinnert an den Lauf der Sonne, sieht aber auch aus wie eine Bürste, die du für den Frühjahrsputz nutzen könntest. Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2025RogueText": "Kristallnadel-Hut",
|
||||
"headSpecialSpring2025RogueNotes": "Die Kristalle in diesem Hut ermuntern zu produktiver Energie und leuchten außerdem hell, damit du zu jeder Tages- und Nachtzeit arbeiten kannst. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2025HealerText": "Plumeria Kopfschmuck",
|
||||
"headSpecialSpring2025HealerNotes": "Diese Blume symbolisiert Geburt, Liebe und Neubeginn! Sie verbreitet auch einen schönen Duft, den du genießen kannst, während du an deinen Aufgaben arbeitest. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2025MageText": "Fangschrecken Maske",
|
||||
"headSpecialSpring2025MageNotes": "Die Fangschrecke ist bekannt dafür, sich zu tarnen oder sich langsam zu bewegen. Wähle eine Taktik zu Hilfe für jedes einzelne Ziel, sei aber gewiss, daß du Taktiken jederzeit ändern kannst, wenn du musst. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headMystery202503Text": "Jade Juggernaut Haar",
|
||||
"headMystery202503Notes": "Diese grüne Frisur passt perfekt zu einem tapferen Krieger und Verteidiger des Planeten. Gewährt keinen Attributbonus. März 2025 Abonnentengegenstand.",
|
||||
"armorArmoireSpringPetalYukataText": "Frühlingsblüten Yukata",
|
||||
"armorArmoireSpringPetalYukataNotes": "Diesen Yukata kann man perfekt zum Feiern des kommenden Frühlings anziehen. Stell sicher, daß du für ein Foto neben Kirschblüten posierst. Erhöht Ausdauer und Stärke um jeweils <%= attrs %> . Verzauberter Schrank: Frühlingsblüten Set (Gegenstand 1 von 2).",
|
||||
"shieldSpecialSpring2025RogueText": "Kristallspitzen-Flegel",
|
||||
"shieldSpecialSpring2025RogueNotes": "Du kannst den Kristall nutzen, um eine produktive Zukunft für dich weiszusagen. Nutze die Gelegenheit und spring vorwärts! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"shieldSpecialSpring2025HealerText": "Plumeria Schild",
|
||||
"shieldSpecialSpring2025HealerNotes": "Du kannst dieses spezielle Blütenblatt verwenden, um Güte zu sammeln oder um negative Gedanken wegzuschnipsen. Nutze die Gelegenheit und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Ausrüstung.",
|
||||
"shieldSpecialSpring2025WarriorText": "Sonnenstrahl Schild",
|
||||
"shieldSpecialSpring2025WarriorNotes": "Du kannst deine Gegner für den Moment blenden, wenn die Sonne diesen Schild genau richtig trifft. Nutze den Vorteil und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Frühlingsausrüstung."
|
||||
}
|
||||
|
||||
@@ -238,5 +238,8 @@
|
||||
"mutePlayer": "Stumm",
|
||||
"skipExternalLinkModal": "Halte STRG (Windows) oder Command (Mac) beim Anklicken eines Links, um dieses Modal zu überspringen.",
|
||||
"shadowMute": "Unsichtbare Stummschaltung",
|
||||
"titleCustomizations": "Individualisierungen"
|
||||
"titleCustomizations": "Individualisierungen",
|
||||
"targetUserNotExist": "Zielbenutzer: '<%= userName %>' existiert nicht.",
|
||||
"newMessage": "Neue Nachricht",
|
||||
"rememberToBeKind": "Bitte sei freundlich, respektvoll, und folge den <a href='/static/community-guidelines' target='_blank'>Community-Richtlinien</a>."
|
||||
}
|
||||
|
||||
@@ -428,7 +428,5 @@
|
||||
"readyToUpgrade": "Bereit zum Aufrüsten?",
|
||||
"interestedLearningMore": "Willst du mehr erfahren?",
|
||||
"checkGroupPlanFAQ": "Schau in die <a href='/static/faq#what-is-group-plan'>Gruppenpläne FAQ</a> um herauszufinden, wie du deine gemeinsamen Aufgaben optimal nutzen kannst.",
|
||||
"copyMessageAsToDo": "Nachricht als To-Do übernehmen",
|
||||
"copyAsTodo": "Als To-Do übernehmen",
|
||||
"messageAddedAsToDo": "Nachricht als To-Do übernommen."
|
||||
"messageCopiedToClipboard": "Nachricht in Zwischenablage kopiert."
|
||||
}
|
||||
|
||||
@@ -270,5 +270,9 @@
|
||||
"winter2025StringLightsHealerSet": "Lichterketten Heiler Set",
|
||||
"winter2025SnowRogueSet": "Schneeschurken Set",
|
||||
"winter2025MooseWarriorSet": "Elchkrieger Set",
|
||||
"winter2025AuroraMageSet": "Aurora Magier Set"
|
||||
"winter2025AuroraMageSet": "Aurora Magier Set",
|
||||
"spring2025PlumeriaHealerSet": "Plumeria Heiler Set",
|
||||
"spring2025MantisMageSet": "Fangschrecken Magier Set",
|
||||
"spring2025SunshineWarriorSet": "Sonnenschein Krieger Set",
|
||||
"spring2025CrystalPointRogueSet": "Kristallspitzen Schurken Set"
|
||||
}
|
||||
|
||||
@@ -56,7 +56,5 @@
|
||||
"messageBattleGearUnEquipped": "Kampfausrüstung abgelegt.",
|
||||
"messageAllUnEquipped": "Alle Auswahlen aufgehoben.",
|
||||
"messageBackgroundUnEquipped": "Hintergrundauswahl aufgehoben.",
|
||||
"featureRetired": "Diese Funktion wird nicht mehr unterstützt.",
|
||||
"beginningOfConversation": "Dies ist der Beginn deiner Konversation mit <%= userName %>.",
|
||||
"beginningOfConversationReminder": "Denke daran, nett und respektvoll zu sein und den Community-Richtlinien zu folgen!"
|
||||
"featureRetired": "Diese Funktion wird nicht mehr unterstützt."
|
||||
}
|
||||
|
||||
@@ -824,5 +824,12 @@
|
||||
"questOtterDropOtterEgg": "Otter (Ei)",
|
||||
"questOtterUnlockText": "Schält Otter Eier zum Kauf im Marktplatz frei",
|
||||
"questOtterBoss": "Der Verschwörer",
|
||||
"questOtterRageEffect": "Der Verschwörer wirft Teile deiner To-Do Liste in die Luft! Der Boss erhält 30% seiner Lebenspunkte zurück!"
|
||||
"questOtterRageEffect": "Der Verschwörer wirft Teile deiner To-Do Liste in die Luft! Der Boss erhält 30% seiner Lebenspunkte zurück!",
|
||||
"questOtterRageDescription": "Dieser Balken füllt sich, wenn du deine Tagesaufgaben nicht erledigst. Wenn er voll ist, erhält Der Verschwörer einige Lebenspunkte zurück!",
|
||||
"questJadeText": "Ein Matter Unglücksbringer",
|
||||
"questJadeBoss": "Matter Unglücksbringer",
|
||||
"questJadeDropJadePotion": "Jade Schlüpfelixier",
|
||||
"questJadeUnlockText": "Schält Jade Schlüpfelixier zum Kauf im Marktplatz frei.",
|
||||
"questOtterRageTitle": "To-Do Abriß!",
|
||||
"questJadeNotes": "Du bist zu Hause und starrst auf den Stapel dreckigen Geschirrs in der Spüle. Auf den Haufen schmutziger Wäsche in einer wahllosen Ecke des Raums. Auf die leeren Tassen und Snackverpackungen um deinen Tisch herum...<br><br>Du seufzt. „Warum ist da immer noch mehr dreckiges Geschirr... Die Sauerei hört nie auf.“ Es ist so demotivierend. Du findest dich auf der Couch wieder, endlos durch die neuesten Trends scrollend. Wer weiß, wie lang du da warst...<br><br>Als du von deinem Telefon hochsiehst, ist alles grün. Dies ist nicht dein Wohnzimmer. Als du aufstehst, findest du dich an der Seite eines leuchtend grünen Berges wieder.<br><br>Bewegung in der Ferne erregt deine Aufmerksamkeit. Eine steinerne grüne Gestalt grunzt, während sie einen Fels das steinige Terrain hoch wälzt. Er macht einige Fortschritte, aber ein kleiner Ausrutscher seines Fußes lässt den glänzenden Fels zurück nach unten rollen, direkt auf dich zu!<br><br>Er entdeckt dich, als er zu dem Brocken Jade rennt, der auf dich zu poltert! „Du denkst also, der Abwasch ist übel?“ schreit die Gestalt, „Versuch das!“"
|
||||
}
|
||||
|
||||
@@ -260,5 +260,6 @@
|
||||
"subscribeAgainContinueHourglasses": "Erneuere Dein Abonnement, um weiterhin Mystische Sanduhren zu erhalten",
|
||||
"mysterySet202411": "Borstenkämpfer Set",
|
||||
"mysterySet202501": "Frostbinder-Set",
|
||||
"mysterySet202502": "Herzliches Harlekin-Set"
|
||||
"mysterySet202502": "Herzliches Harlekin-Set",
|
||||
"mysterySet202503": "Jade Juggernaut Set"
|
||||
}
|
||||
|
||||
@@ -207,7 +207,8 @@
|
||||
"dismissAll": "Dismiss All",
|
||||
"messages": "Messages",
|
||||
"emptyMessagesLine1": "You don't have any messages",
|
||||
"emptyMessagesLine2": "You can send a new message to a user by visiting their profile and clicking the \"Message\" button.",
|
||||
"emptyMessagesLine2": "Send a message to start a conversation with your Party members or another Habitica player",
|
||||
"newMessage": "New Message",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> sent you a message",
|
||||
"letsgo": "Let's Go!",
|
||||
"selected": "Selected",
|
||||
@@ -238,5 +239,7 @@
|
||||
"submitQuestion": "Submit Question",
|
||||
"whyReportingPlayer": "Why are you reporting this player?",
|
||||
"whyReportingPlayerPlaceholder": "Reason for report",
|
||||
"playerReportModalBody": "You should only report a player who violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Submitting a false report is a violation of Habitica’s Community Guidelines."
|
||||
"playerReportModalBody": "You should only report a player who violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Submitting a false report is a violation of Habitica’s Community Guidelines.",
|
||||
"targetUserNotExist": "Target User: '<%= userName %>' does not exist.",
|
||||
"rememberToBeKind": "Please remember to be kind, respectful, and follow the <a href='/static/community-guidelines' target='_blank'>Community Guidelines</a>."
|
||||
}
|
||||
|
||||
@@ -114,9 +114,7 @@
|
||||
"whyReportingPostPlaceholder": "Reason for report",
|
||||
"optional": "Optional",
|
||||
"needsTextPlaceholder": "Type your message here.",
|
||||
"copyMessageAsToDo": "Copy message as To Do",
|
||||
"copyAsTodo": "Copy as To Do",
|
||||
"messageAddedAsToDo": "Message copied as To Do.",
|
||||
"messageCopiedToClipboard": "Message copied to clipboard.",
|
||||
"leaderOnlyChallenges": "Only group leader can create challenges",
|
||||
"sendGift": "Send a Gift",
|
||||
"selectGift": "Select Gift",
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
"messageNotAbleToBuyInBulk": "This item cannot be purchased in quantities above 1.",
|
||||
"notificationsRequired": "Notification ids are required.",
|
||||
"unallocatedStatsPoints": "You have <span class=\"notification-bold-blue\"><%= points %> unallocated Stat Points</span>",
|
||||
"beginningOfConversation": "This is the beginning of your conversation with <%= userName %>.",
|
||||
"beginningOfConversationReminder": "Remember to be kind, respectful, and follow the Community Guidelines!",
|
||||
"messageDeletedUser": "Sorry, this user has deleted their account.",
|
||||
"messageMissingDisplayName": "Missing display name.",
|
||||
"reportedMessage": "You have reported this message to moderators.",
|
||||
|
||||
@@ -894,5 +894,8 @@
|
||||
"backgrounds022025": "SET 129: Released February 2025",
|
||||
"backgroundCastleHallWithHearthNotes": "Bask in the warmth of a Castle Hall with a Hearth.",
|
||||
"backgrounds112024": "SET 126: Released November 2024",
|
||||
"backgroundCastleHallWithHearthText": "Castle Hall with Hearth"
|
||||
"backgroundCastleHallWithHearthText": "Castle Hall with Hearth",
|
||||
"backgrounds032025": "SET 130: Released March 2025",
|
||||
"backgroundMountainSceneWithBlossomsText": "Mountain Scene with Blossoms",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Take in the lovely sights and scents of a Mountain Scene with Blossoms."
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
"allocatePerPop": "Add a Point to Perception",
|
||||
"allocateInt": "Points allocated to Intelligence:",
|
||||
"allocateIntPop": "Add a Point to Intelligence",
|
||||
"noMoreAllocate": "Now that you've hit level 100, you won't gain any more Stat Points. You can continue levelling up, or start a new adventure at level 1 by using the <a href='https://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a>!",
|
||||
"noMoreAllocate": "Now that you've hit level 100, you won't gain any more Stat Points. You can continue levelling up, or start a new adventure at level 1 by using the <<a href='/shops/market'>>Orb of Rebirth</a>!",
|
||||
"stats": "Stats",
|
||||
"strength": "Strength",
|
||||
"strText": "Strength increases the chance of random \"critical hits\" and the Gold, Experience, and drop chance boost from them. It also helps deal damage to boss monsters.",
|
||||
@@ -129,8 +129,8 @@
|
||||
"healerText": "Healers stand impervious against harm, and extend that protection to others. Missed Dailies and bad Habits don't faze them much, and they have ways to recover Health from failure. Play a Healer if you enjoy assisting others in your Party, or if the idea of cheating Death through hard work inspires you!",
|
||||
"optOutOfClasses": "Opt Out",
|
||||
"chooseClass": "Choose your Class",
|
||||
"chooseClassLearnMarkdown": "[Learn more about Habitica's class system](https://habitica.fandom.com/wiki/Class_System)",
|
||||
"optOutOfClassesText": "Can't be bothered with classes? Want to choose later? Opt out - you'll be a warrior with no special abilities. You can read about the class system later on the wiki and enable classes at any time under User Icon > Settings.",
|
||||
"chooseClassLearnMarkdown": "[Learn more about Habitica's class system](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Not ready to choose? There's no rush! If you opt out, you can read about each Class in <a href='/static/faq#what-classes' target='_blank'>our FAQ</a> and visit Settings to enable the Class System when you're ready.",
|
||||
"selectClass": "Select <%= heroClass %>",
|
||||
"select": "Select",
|
||||
"stealth": "Stealth",
|
||||
|
||||
@@ -395,5 +395,9 @@
|
||||
"questEggCatText": "Kitten",
|
||||
"questEggCatMountText": "Cat",
|
||||
"questEggCatAdjective": "a mischievous",
|
||||
"hatchingPotionGingerbread": "Gingerbread"
|
||||
"hatchingPotionGingerbread": "Gingerbread",
|
||||
"questEggOtterText": "Otter",
|
||||
"questEggOtterMountText": "Otter",
|
||||
"questEggOtterAdjective": "a perfidious",
|
||||
"hatchingPotionJade": "Jade"
|
||||
}
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
"backerTier": "Backer Tier",
|
||||
"playerTiers": "Player Tiers",
|
||||
"tier": "Tier",
|
||||
"conRewardsURL": "https://habitica.fandom.com/wiki/Contributor_Rewards",
|
||||
"conRewardsURL": "https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards",
|
||||
"surveysSingle": "Helped Habitica grow, either by filling out a survey or helping with a major testing effort. Thank you!",
|
||||
"surveysMultiple": "Helped Habitica grow on <%= count %> occasions, either by filling out a survey or helping with a major testing effort. Thank you!",
|
||||
"blurbHallPatrons": "This is the Hall of Patrons, where we honour the noble adventurers who backed Habitica's original Kickstarter. We thank them for helping us bring Habitica to life!",
|
||||
"blurbHallContributors": "This is the Hall of Contributors, where open-source contributors to Habitica are honored. Whether through code, art, music, writing, or even just helpfulness, they have earned <a href='https://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'> gems, exclusive equipment</a>, and <a href='https://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>prestigious titles</a>. You can contribute to Habitica, too! <a href='https://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Find out more here. </a>",
|
||||
"blurbHallContributors": "This is the Hall of Contributors, where open-source contributors to Habitica are honoured. Whether through code, art, music, writing, or even just helpfulness, they have earned <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards' target='_blank'>Gems, exclusive Equipment</a>, and <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tiers' target='_blank'>prestigious titles</a>. You can contribute to Habitica, too! <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica' target='_blank'>Find out more here.</a>",
|
||||
"noPrivAccess": "You don't have the required privileges."
|
||||
}
|
||||
|
||||
@@ -17,16 +17,16 @@
|
||||
"faqQuestion65": "Are Group Plans supported on the mobile apps?",
|
||||
"parties": "Parties",
|
||||
"faqQuestion28": "Can I pause my Dailies if I need a break?",
|
||||
"webFaqAnswer26": "Positive Habits (Behaviours you want to encourage; should have a plus button)\n\n * Take vitamins\n * Floss teeth\n * One hour of studying\n\nNegative Habits (Behaviours you want to limit or avoid; should have a minus button)\n\n * Smoking\n * Doom scrolling\n * Biting nails\n\nDual Habits (Habits that involve a positive vs. negative option; should have both plus and minus buttons)\n\n * Drink water vs. drink soda\n * Study vs. procrastinate\n\nSample Dailies (Tasks you want to repeat on a regular schedule)\n\n * Wash dishes\n * Water plants\n * 30 minutes of physical activity\n\nSample To Do’s (Tasks you only need to do once)\n\n * Schedule appointment\n * Organise closet\n * Finish essay",
|
||||
"webFaqAnswer26": "Positive Habits (Behaviors you want to encourage; should have a plus button)\n\n * Take vitamins\n * Floss teeth\n * One hour of studying\n\nNegative Habits (Behaviors you want to limit or avoid; should have a minus button)\n\n * Smoking\n * Doom scrolling\n * Biting nails\n\nDual Habits (Habits that involve a positive vs. negative option; should have both plus and minus buttons)\n\n * Drink water vs. drink soda\n * Study vs. procrastinate\n\nSample Dailies (Tasks you want to repeat on a regular schedule)\n * Wash dishes\n * Water plants\n * 30 minutes of physical activity\n\nSample To Do’s (Tasks you only need to do once)\n\n * Schedule appointment\n * Organise closet\n * Finish essay",
|
||||
"webFaqAnswer27": "The colour of a task is a visual representation of the task’s value. All tasks start as yellow for neutral. Blue is better, and red is worse. Here’s how each task type determines the task’s value:\n\nHabits become more blue or red based on whether you tap the plus or minus button. Positive and negative Habits degrade to yellow over time if you don’t complete them. Dual Habits only change colour based on your inputs.\n\nDailies change colour based on how often they are completed, becoming more blue as they’re completed or more red if they’re missed.\n\nTo Do’s gradually get more red the longer they stay incomplete.\n\nThe more red the task, the more Gold and Experience you’ll earn for completing it, so be sure to take on even your toughest tasks!",
|
||||
"webFaqAnswer28": "Yes! The “Pause Damage” button can be found in Settings. It will prevent you from losing HP for missed Dailies. This is helpful if you are on vacation, need a rest, or for any other reason you might need a break. If you are participating in a Quest, your own pending progress will be paused, but you will still take damage from your Party member’s missed Dailies.\n\nTo pause specific Dailies, you can edit the scheduling to make it due every 0 days until you’re ready to restart it.",
|
||||
"webFaqAnswer28": "Yes! The “Pause Damage” button can be found in Settings. It will prevent you from losing HP for missed Dailies. This is helpful if you are on holiday, need a rest, or for any other reason you might need a break. If you are participating in a Quest, your own pending progress will be paused, but you will still take damage from your Party member’s missed Dailies.\n\nTo pause specific Dailies, you can edit the scheduling to make it due every 0 days until you’re ready to restart it.",
|
||||
"webFaqAnswer29": "You can recover 15 HP by purchasing a Health Potion from your Rewards column for 25 Gold. Additionally, you will always recover full HP when you level up!",
|
||||
"faqQuestion30": "What happens when I run out of HP?",
|
||||
"webFaqAnswer30": "If your HP reaches zero, you’ll lose one level, all of your Gold, and a piece of Equipment that can be repurchased.",
|
||||
"faqQuestion31": "Why did I lose HP when interacting with a non-negative task?",
|
||||
"webFaqAnswer31": "If you complete a task and lose HP when you shouldn’t have, you encountered a delay while the server was syncing changes made on other platforms. For example, if you use Gold, Mana, or lose HP on the mobile app and then complete a task on the website, the server is simply confirming everything is in sync.",
|
||||
"faqQuestion32": "When can I choose a class?",
|
||||
"webFaqAnswer32": "There are four classes in Habitica: Warrior, Mage, Rogue, and Healer. All players start as the Warrior class until they reach level 10. Once you reach level 10, you’ll be given the choice between selecting a new class or continuing as a Warrior.\n\nEach class has different Equipment and Skills. If you don't want to choose a class, you can select \"Opt Out.\" If you choose to opt out, you can always enable the Class System from Settings later.",
|
||||
"faqQuestion32": "How can I choose a class?",
|
||||
"webFaqAnswer32": "All players start as the Warrior class until they reach level 10. Once you reach level 10, you’ll be given the choice between selecting a new class or continuing as a Warrior.\n\nEach class has different Equipment and Skills. If you don't want to choose a class, you can select \"Opt Out.\" If you choose to opt out, you can always enable the Class System from Settings later.\n\nIf you’d like to change your class after Level 10, you can do so by using the Orb of Rebirth. The Orb of Rebirth becomes available in the Market for 6 Gems at level 50 or for free at level 100.\n\nAlternatively, you can change class at any time from Settings for 3 Gems. This will not reset your level like Orb of Rebirth, but it will allow you to re-allocate the skill points you’ve accumulated as you’ve levelled up to match your new class.",
|
||||
"faqQuestion33": "What is the blue bar that appears after level 10?",
|
||||
"webFaqAnswer33": "After you unlock the Class System, you also unlock Skills that require Mana to be cast. Mana is determined by your INT stat and can be adjusted by Skills and Equipment.",
|
||||
"webFaqAnswer34": "Pets like Food that matches their colour. Base Pets are the exception, but all Base Pets like the same item. You can see the specific foods each Pet likes below:\n\n * Base Pets like Meat\n * White Pets like Milk\n * Desert Pets like Potatoes\n * Red Pets like Strawberries\n * Shade Pets like Chocolate\n * Skeleton Pets like Fish\n * Zombie Pets like Rotten Meat\n * Cotton Candy Pink Pets like Pink Cotton Candy\n * Cotton Candy Blue Pets like Blue Cotton Candy\n * Golden Pets like Honey",
|
||||
@@ -45,5 +45,7 @@
|
||||
"webFaqAnswer42": "One of the best ways to motivate yourself and hold yourself accountable for accomplishing your tasks is to join a Party! Partying with other Habitica players is a great way to take on Quests to receive Pets and Equipment, receive buffs from Party members’ Skills, and boost your motivation.\n\nAnother way to increase accountability is to join a Challenge. Challenges automatically add tasks related to a specific goal to your lists! They also add an element of competition against other Habitica players that may motivate you as you strive for the Gem prize. There are official Challenges created by the Habitica Team as well as Challenges made by other players.",
|
||||
"faqQuestion43": "How do I take on Quests?",
|
||||
"webFaqAnswer43": "To begin a Quest, you will need to be a member of a Party. Parties can be solo adventures where you challenge Quests alone, or you can invite other Habitica players to tackle Quests at a quicker rate!\n\nChoose a Quest Scroll from your inventory by selecting the “Begin Quest” button from your Party. Complete your tasks as you normally would to progress on the Quest! You’ll either build up damage against a monster if you’re taking on a Boss Quest, or have a chance to find items if you’re taking on a Collection Quest. All pending progress is applied the next day.\n\nWhen you do enough damage or collect all items, the Quest is complete and you will receive your rewards!",
|
||||
"faqQuestion44": "How can I delete Challenge tasks?"
|
||||
"faqQuestion44": "How can I delete Challenge tasks?",
|
||||
"webFaqAnswer44": "You will need to leave the Challenge or wait for the Challenge to be closed in order to delete the associated tasks. A red megaphone icon implies the Challenge has been closed and a gray megaphone implies the Challenge is still running.\n\nTo delete Challenge tasks on the **Android** app:\n 1. Tap on a task belonging to the Challenge.\n 2. Tap on \"Delete\" in the upper right corner of the screen.\n 3. Choose to remove the Challenge tasks from your task list.\n\nTo delete Challenge tasks on the **iOS** app:\n 1. Find the Challenge task you wish to delete and look at the megaphone icon.\n 2. If the megaphone icon is red, tap on the task and select \"Delete\" at the bottom\n 3. If the megaphone icon is gray, you’ll need to find the Challenge and leave it to remove the task.\n\nTo delete Challenge tasks on the **website**:\n 1. Find the Challenge task you wish to delete and look at the megaphone icon.\n 2. If the megaphone icon is red, click it then choose to remove the tasks from your task list.\n 3. If the megaphone icon is gray, you'll need to find the Challenge and leave it to remove the task.",
|
||||
"faqQuestion45": "My Avatar transformed into a snowman, starfish, flower, or ghost. How can I change back?"
|
||||
}
|
||||
|
||||
@@ -2258,5 +2258,26 @@
|
||||
"weaponSpecialSpring2023HealerNotes": "With a puff and a sparkle, you deploy new growth, joy, and colour. Increases Intelligence by <%= int %>. Limited Edition 2023 Spring Gear.",
|
||||
"gearItemsCompleted": "You own all <%= klass %> gear! New gear is released during the seasonal Galas.",
|
||||
"moreArmoireGearAvailable": "Until then, there's <%= armoireCount %> pieces of gear in the Enchanted Wardrobe to find!",
|
||||
"moreArmoireGearComing": "The Enchanted Wardrobe gets new stock every month too!"
|
||||
"moreArmoireGearComing": "The Enchanted Wardrobe gets new stock every month too!",
|
||||
"weaponSpecialSummer2021HealerText": "Staff of Corn",
|
||||
"weaponSpecialSpring2021WarriorNotes": "Harness the power of the sun against your enemies, and let the sunstone bring you luck! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSummer2021WarriorText": "Watery Blade",
|
||||
"weaponSpecialSpring2021MageText": "Swan Plume",
|
||||
"weaponSpecialSummer2021WarriorNotes": "This shimmering blade may flow like water, but it can cut to the heart of the trickiest problems! Increases Strength by <%= str %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSummer2021RogueText": "Anemone Tentacles",
|
||||
"weaponSpecialSummer2021HealerNotes": "Not to get corny, but this staff is a lifesaver. Increases Intelligence by <%= int %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSpring2021MageNotes": "Throw, beat, treadle, rest! Swish this magnificent feather in time to conduct the music of your magic. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021HealerNotes": "The bark and leaves of this fresh cutting are known for their ability to relieve pain. Or you can plant it and watch it grow! Increases Intelligence by <%= int %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021HealerText": "Willow Branch",
|
||||
"weaponSpecialSpring2021RogueNotes": "You know what's better than dual-wielding flowers? QUADRUPLE wielding flowers! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSummer2021RogueNotes": "Any predatory monster that dares approach will feel the sting of your protective friends! Increases Strength by <%= str %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSummer2021MageText": "Nautiloid Cane",
|
||||
"weaponSpecialSpring2021RogueText": "Twin Flower Bloom",
|
||||
"weaponSpecialSummer2021MageNotes": "Whether your magical ambitions run twenty thousand leagues deep, or if you intend only to dip in the shallows of the art, this shining implement will serve you well! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSpring2021WarriorText": "Hammer of the Sun",
|
||||
"weaponSpecialFall2021RogueText": "Dripping Goo",
|
||||
"weaponSpecialFall2021RogueNotes": "What on Earth did you get into? When people say Rogues have sticky fingers, this is not what they mean! Increases Strength by <%= str %>. Limited Edition 2021 Autumn Gear.",
|
||||
"weaponSpecialFall2021WarriorText": "Horse Rider's Axe",
|
||||
"weaponSpecialFall2021WarriorNotes": "This stylized, single-bladed axe is ideal for chopping... pumpkins! Increases Strength by <%= str %>. Limited Edition 2021 Autumn Gear.",
|
||||
"weaponSpecialFall2021MageText": "Staff of Pure Thought"
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
"mountsReleased": "Mounts released",
|
||||
"welcomeStable": "Welcome to your Pets and Mounts!",
|
||||
"welcomeStableText": "Welcome to the stable! I’m Matt, the beastmaster. Every time you complete a task, you'll have a random chance at receiving an Egg or a Hatching Potion to hatch Pets. When you hatch a Pet, it will appear here! Click a Pet's image to add it to your Avatar. Feed them with the Pet Food you find and they'll grow into hardy Mounts.",
|
||||
"petLikeToEat": "What does my pet like to eat?",
|
||||
"petLikeToEat": "What does my Pet like to eat?",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one Pet Food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"https://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">https://habitica.fandom.com/wiki/Food_Preferences</a>",
|
||||
"filterByStandard": "Standard",
|
||||
"filterByMagicPotion": "Magic Potion",
|
||||
|
||||
@@ -395,5 +395,9 @@
|
||||
"hatchingPotionGingerbread": "Pan de Jengibre",
|
||||
"questEggCatText": "Gatita",
|
||||
"questEggCatMountText": "Gato",
|
||||
"questEggCatAdjective": "Traviesa"
|
||||
"questEggCatAdjective": "Traviesa",
|
||||
"questEggOtterMountText": "Nutria",
|
||||
"questEggOtterAdjective": "latrocida",
|
||||
"hatchingPotionJade": "Jade",
|
||||
"questEggOtterText": "Nutria"
|
||||
}
|
||||
|
||||
@@ -3280,11 +3280,26 @@
|
||||
"headSpecialSpring2025WarriorText": "Yelmo Brillo Solar",
|
||||
"headSpecialSpring2025RogueText": "Sombrero Puntas de Cristal",
|
||||
"headSpecialSpring2025HealerText": "Tocado Flor Plumaria",
|
||||
"headSpecialSpring2025HealerNotes": "¡Esta flor simboliza nacimiento, amor y nuevos comienzos! También te imbuye de una delicada y hermosa fragancia para que tu los que te rodean se deleiten mientras trabajas y cumples con tus tareas. Aumenta la Inteligencia en <%= int %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"headSpecialSpring2025HealerNotes": "¡Esta flor simboliza nacimiento, amor y nuevos comienzos! También te imbuye de una delicada y hermosa fragancia para que los que te rodean y tu os deleitéis mientras trabajas y cumples con tus tareas. Aumenta la Inteligencia en <%= int %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"headSpecialSpring2025MageText": "Máscara Mantis",
|
||||
"headMystery202502Text": "Sombrero de Arlequín Sentimental",
|
||||
"headMystery202502Notes": "¡Este alegre y ridículo sombrerito seguro que inspirará alegría y vergüenza ajena en cualquiera que te vea! No otorga ningún beneficio. Artículo de Suscriptor Febrero 2025.",
|
||||
"headMystery202503Text": "Pelo Jade de Juggernaut",
|
||||
"headMystery202503Notes": "Este verdoso peinado se ajusta a la perfección a un guerrero valeroso que se ofrezca voluntario para defender el planeta. No otorga ningún beneficio. Artículo de Suscriptor Marzo 2025.",
|
||||
"headArmoireFancyFloralHatText": "Elegante Sombrero Floral"
|
||||
"headArmoireFancyFloralHatText": "Elegante Sombrero Floral",
|
||||
"shieldArmoireFancyFloralFanText": "Abanico Floral Elegante",
|
||||
"shieldArmoireFancyFloralFanNotes": "Remata tu aspecto elegante con este abanico de primeras marcas de fabulosa fábrica floral. Aumenta la Percepción en <%= per %>. Armario Encantado: Conjunto de Elegantes Accesorios Florales (Artículo 2 de 2).",
|
||||
"shieldArmoireSpringPetalUchiwaNotes": "Este manejable abanico, creado por un poderoso alquimista siguiendo el patrón de un hermoso pétalo produce una brisa refrescante al acercarse el matsuri de verano. Aumenta la inteligencia y la percepción en <%= attrs %> cada uno. Armario Encantado: Conjunto Pétalos Primaverales (Artículo 2 de 2).",
|
||||
"eyewearMystery202503Notes": "¡Esta mirada abyecta con estos ojos inyectados hará que el corazón de cualquiera que te desafíe se derrita de terror! Se prudente con su uso, las consecuencias pueden ser lamentables. No otorga ningún beneficio. Artículo de Suscriptor Marzo 2025.",
|
||||
"headArmoireFancyFloralHatNotes": "Alégrate la vista con este elegante sombrero lleno de flores de fantasía y volantes imposibles. Un auténtico deleite para los sentidos. Aumenta la Inteligencia en <%= int %>. Armario Encantado: Conjunto de Elegantes Accesorios Florales (Artículo 1 de 2).",
|
||||
"shieldSpecialSpring2025WarriorText": "Escudo Rayo Solar",
|
||||
"shieldSpecialSpring2025WarriorNotes": "Usa la poderosa magia de este escudo para cegar a tus enemigos, solo tienes que hacer que el sol se refleje en el apuntando el rayo directamente a sus ojos. ¡Aprovecha que ya es primavera en el…! Aumenta la Constitución en <%= con %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"shieldSpecialSpring2025RogueText": "Mayal Puntas de Cristal",
|
||||
"shieldSpecialSpring2025RogueNotes": "Puedes usar su bola de cristal para tratar de adivinar un futuro prometedor para ti mismo, tu te lo guisas y tu te lo comes, ya sabes. ¡Aprovecha que ya es primavera en el…! Aumenta la Fuerza en <%= str %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"shieldSpecialSpring2025HealerText": "Escudo Flor Plumaria",
|
||||
"shieldMystery202502Text": "Globos de Arlequín Sentimental",
|
||||
"shieldSpecialSpring2025HealerNotes": "Puedes usar este pétalo mutante para promover la bondad y repeler el mal o para alejar los pensamientos negativos. ¡Aprovecha que ya es primavera en el…! Aumenta la Constitución en <%= con %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"shieldMystery202502Notes": "Este día de San Valentín y cada día al ser el hazmerreír de aquellos que te rodeen, que tu corazón sea tan ligero como estos globos flotantes que sostienes. No otorga ningún beneficio. Artículo de Suscriptor Febrero 2025.",
|
||||
"shieldArmoireSpringPetalUchiwaText": "Abanico Uchiwa de Pétalo Primaveral",
|
||||
"eyewearMystery202503Text": "Ojos Jade de Juggernaut"
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
"dismissAll": "Ignorar todas",
|
||||
"messages": "Mensajes",
|
||||
"emptyMessagesLine1": "No tienes ningún mensaje",
|
||||
"emptyMessagesLine2": "Puedes enviar un nuevo mensaje a un usuario visitando su perfil y pulsando en el botón “Mensaje”.",
|
||||
"emptyMessagesLine2": "Envía un mensaje para empezar una conversación con un miembro de tu Equipo o otro jugador de Habitica",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> te ha enviado un mensaje",
|
||||
"letsgo": "¡Vamos!",
|
||||
"selected": "Seleccionado",
|
||||
@@ -238,5 +238,8 @@
|
||||
"whyReportingPlayer": "¿Por qué informas acerca de este jugador?",
|
||||
"reportPlayer": "Informar acerca de un Jugador",
|
||||
"viewAdminPanel": "Ver Comandos de Administrador",
|
||||
"playerReportModalBody": "Solo deberías informar de un jugador que de alguna forma quebrantara las <%= firstLinkStart %>Normas de la Comunidad<%= linkEnd %> y/o <%= secondLinkStart %>los Terminos de Servicio<%= linkEnd %>. Enviar un informe falso es una clara violación de la Normas de la Comunidad de Habitica."
|
||||
"playerReportModalBody": "Solo deberías informar de un jugador que de alguna forma quebrantara las <%= firstLinkStart %>Normas de la Comunidad<%= linkEnd %> y/o <%= secondLinkStart %>los Terminos de Servicio<%= linkEnd %>. Enviar un informe falso es una clara violación de la Normas de la Comunidad de Habitica.",
|
||||
"newMessage": "Nuevo Mensaje",
|
||||
"targetUserNotExist": "Usuario objetivo: '<%= userName %>' no existe.",
|
||||
"rememberToBeKind": "Por favor recuerda ser bondadoso, respetuoso y seguir las <a href='/static/community-guidelines' target='_blank'>Normas de la Comunidad</a>."
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
"leaderOnlyChallenges": "Sólo el Líder del Grupo puede crear desafíos",
|
||||
"sendGift": "Enviar un regalo",
|
||||
"inviteFriends": "Invitar Amigos",
|
||||
"inviteByEmail": "Invitar por correo electrónico",
|
||||
"inviteByEmail": "Invita por correo electrónico",
|
||||
"inviteMembersHowTo": "Invita gente a través de un correo electrónico válido o el ID de usuario de 36 dígitos. Si el correo electrónico no ha sido registrado aún, le invitaremos a unirse a Habitica.",
|
||||
"sendInvitations": "Enviar invitaciones",
|
||||
"invitationsSent": "¡Invitaciones enviadas!",
|
||||
@@ -106,17 +106,17 @@
|
||||
"invitedFriend": "Invitó a un Amigo",
|
||||
"invitedFriendText": "¡Este usuario invitó a un amigo (o amigos) que se unieron a su aventura!",
|
||||
"inviteLimitReached": "Ya has mandado el número máximo de invitaciones por email. Tenemos un límite para evitar spam, no obstante, si quieres mas, por favor, contáctanos en <%= techAssistanceEmail %> y ¡estaremos encantados de llegar a un acuerdo!",
|
||||
"sendGiftHeading": "Enviar regalo a <%= name %>",
|
||||
"sendGiftHeading": "Enviar Regalo a <%= name %>",
|
||||
"sendGiftGemsBalance": "De <%= number %> Gemas",
|
||||
"sendGiftCost": "Total: <%= cost %> $",
|
||||
"sendGiftFromBalance": "Del saldo",
|
||||
"sendGiftPurchase": "Compra",
|
||||
"sendGiftMessagePlaceholder": "Añadir un mensaje al regalo",
|
||||
"sendGiftMessagePlaceholder": "Añade un mensaje al regalo",
|
||||
"sendGiftSubscription": "<%= months %> Mes(es): $<%= price %> USD",
|
||||
"gemGiftsAreOptional": "Por favor, ten en cuenta que Habitica nunca requerirá que regales gemas a otros usuarios. La gente que pide gemas esta <strong>violando las Normas de la Comunidad</strong>, por lo que todos esos casos deben ser reportados a <%= hrefTechAssistanceEmail %>.",
|
||||
"battleWithFriends": "Juega a Habitica con amigos",
|
||||
"startAParty": "Crear un Equipo",
|
||||
"partyUpName": "Ese equipo",
|
||||
"partyUpName": "Juega en Equipo",
|
||||
"partyOnName": "Toma equipo",
|
||||
"partyUpText": "¡Se unió a un equipo con otra persona! Pasadlo bien luchando contra monstruos y ayudándoos mutuamente.",
|
||||
"partyOnText": "¡Se unió a un equipo de al menos cuatro personas! ¡Disfrutad de una mayor responsabilidad al juntaros para vencer a vuestros enemigos!",
|
||||
@@ -403,8 +403,8 @@
|
||||
"groupUseDefault": "Elige una respuesta",
|
||||
"blockedUser": "<strong>Has bloqueado a este jugador.</strong> No podrán enviarte Mensajes Privados, pero tú seguirás viendo sus publicaciones.",
|
||||
"bannedUser": "<strong>Se ha vetado a este jugador.</strong>",
|
||||
"questWithOthers": "Enfréntate a Misiones con amigos",
|
||||
"startPartyDetail": "¡Forma tu propio equipo o únete a uno existente <br/>para enfrentarte a Misiones y aumentar tu motivación!",
|
||||
"questWithOthers": "Enfréntate a Misiones con Otros",
|
||||
"startPartyDetail": "¡Forma tu propio Equipo o únete a uno existente <br/>para enfrentarte a Misiones y aumentar tu motivación!",
|
||||
"assignTo": "Asignar a",
|
||||
"lookForParty": "Buscar un Equipo",
|
||||
"groupUse": "¿Cuál de las siguientes opciones describe mejor a tu Grupo?*",
|
||||
@@ -428,7 +428,5 @@
|
||||
"readyToUpgrade": "¿Estás listo para Mejorar?",
|
||||
"interestedLearningMore": "¿Te gustaría saber más?",
|
||||
"checkGroupPlanFAQ": "Echa un vistazo a <a href='/static/faq#what-is-group-plan'>FAQ Planes Grupales</a> para saber cómo obtener el máximo de tu experiencia en tareas compartidas.",
|
||||
"copyAsTodo": "Copiar como Tareas Pendientes",
|
||||
"messageAddedAsToDo": "Mensaje copiado como Tareas Pendientes.",
|
||||
"copyMessageAsToDo": "Copia el mensaje como Tareas Pendientes"
|
||||
"messageCopiedToClipboard": "Mensaje copiado en el portapapeles."
|
||||
}
|
||||
|
||||
@@ -270,5 +270,9 @@
|
||||
"winter2025StringLightsHealerSet": "Conjunto de Sanador Tira de Luces",
|
||||
"winter2025SnowRogueSet": "Conjunto Pícaro Muñeco de Nieve",
|
||||
"winter2025MooseWarriorSet": "Conjunto de Guerrero Alce",
|
||||
"winter2025AuroraMageSet": "Conjunto de Mago de la Aurora"
|
||||
"winter2025AuroraMageSet": "Conjunto de Mago de la Aurora",
|
||||
"spring2025CrystalPointRogueSet": "Conjunto Pícaro Puntas de Cristal",
|
||||
"spring2025PlumeriaHealerSet": "Conjunto Sanador Flor Plumaria",
|
||||
"spring2025MantisMageSet": "Conjunto Mago Mantis",
|
||||
"spring2025SunshineWarriorSet": "Conjunto Guerrero Brillo Solar"
|
||||
}
|
||||
|
||||
@@ -56,7 +56,5 @@
|
||||
"messagePetMountUnEquipped": "Mascota y Montura no equipadas.",
|
||||
"messageCostumeUnEquipped": "Disfraz no equipado.",
|
||||
"messageBattleGearUnEquipped": "Equipamiento de batalla no equipado.",
|
||||
"featureRetired": "Esta función ya no está disponible.",
|
||||
"beginningOfConversationReminder": "¡Recuerda que es muy importante que seas amable, respetuoso y que sigas la Normas de la Comunidad!",
|
||||
"beginningOfConversation": "Este es el principio de tu conversación con <%= userName %>."
|
||||
"featureRetired": "Esta función ya no está disponible."
|
||||
}
|
||||
|
||||
@@ -829,10 +829,10 @@
|
||||
"questOtterDropOtterEgg": "Nutria (huevo)",
|
||||
"questOtterCompletion": "¡Una vez atrapados todos los pedacitos de confeti que conformaban tus notas tratas de componer el puzzle y descifrar cuales eran las tareas más importantes deduciendo medianamente por dónde empezar!<br><br>”¡Ya veo!” le escupes a la nutria, “al final tú tonta treta me ha ayudado a entender donde priorizar.”<br><br>La nutria chapotea y tras llenar sus mejillas lanza un fino chorrito de agua, “Me alegra que mi pequeña estratagema te haya hecho llegar a conclusiones con relación a tus tareas.” Se sumerge, bucear cerca de donde estás y cuando emerge, cuál mago Merlín aconsejando al joven Arturo te alecciona, “Recuerda mantener tus listas dentro de lo que es posible y probable. Las recompensas también ayudan así que por las molestias, ¡atrapa esto!”",
|
||||
"questOtterUnlockText": "Desbloqueados los Huevos de Nutria para poder ser adquiridos en el Mercado",
|
||||
"questJadeText": "Una Duende Harta",
|
||||
"questJadeNotes": "Estás en tu casa tras volver de algunas aventuras mirando la cantidad de platos sucios que se han acumulado en el fregadero sin saber muy bien por dónde empezar. En el cuarto de lavandería también hay un buen montón de ropa sucia, llena de restos y de sangre reseca. En tu mesa de planificar hay restos de Cheetos, pieles de pipas y vasos vacíos…<br><br>Suspiras. “Parece que mágicamente cada vez hay más platos sucios…el desorden no tiene fin.” Te encuentras totalmente desmotivado. Tirado en el sofá ojeas el último manuscrito sobre criaturas extrañas escrito por algún anónimo erudito sin darte cuenta del paso del tiempo…<br><br>Levantas la vista del papiro y todo está verde. Espera, este no es tu comedor ¡que clase de brujería es esta! Te pones de pie, te das cuenta que estás al lado de un montículo verdoso y brillante. <br><br>Un movimiento en la distancia llama tu atención. Una figura de aspecto pétreo, vestida con ropajes verdinegros gruñe mientras empuja un pesado pedrusco hacia arriba en el risco. Consigue cierto progreso pero un pequeño traspiés hace que el brillante pedrusco ruede cuesta abajo, ¡en tu dirección! <br><br>¡La figura te mira mientras corre en dirección al gran trozo de jade que ahora se interpone en tu camino! “¿Pensabas que lavar platos era algo malo?” te grita la duende, “¡Prueba esto!”",
|
||||
"questJadeText": "Un Jadeo Jarto",
|
||||
"questJadeNotes": "Estás en tu casa tras volver de algunas aventuras mirando la cantidad de platos sucios que se han acumulado en el fregadero sin saber muy bien por dónde empezar. En el cuarto de lavandería también hay un buen montón de ropa sucia, llena de restos y de sangre reseca. En tu mesa de planificar hay restos de Cheetos, pieles de pipas y vasos vacíos…<br><br>Suspiras. “Parece que mágicamente cada vez hay más platos sucios…el desorden no tiene fin.” Te encuentras totalmente desmotivado. Tirado en el sofá ojeas el último manuscrito sobre criaturas extrañas escrito por algún anónimo erudito sin darte cuenta del paso del tiempo…<br><br>Levantas la vista del papiro y todo está verde. Espera, este no es tu comedor ¡que clase de brujería es esta! Te pones de pie, te das cuenta que estás al lado de un montículo verdoso y brillante. <br><br>Un movimiento en la distancia llama tu atención. Una figura de aspecto pétreo, vestida con ropajes verdinegros gruñe mientras empuja un pesado pedrusco hacia arriba en el risco. Consigue cierto progreso pero un pequeño traspiés hace que el brillante pedrusco ruede cuesta abajo, ¡en tu dirección! <br><br>¡La figura te mira mientras corre en dirección al gran trozo de jade que ahora se interpone en tu camino! “¿Pensabas que lavar platos era algo malo?” te grita la criatura, “¡Prueba esto!”",
|
||||
"questJadeDropJadePotion": "Poción de Eclosión Jade",
|
||||
"questJadeUnlockText": "Desbloqueas la Poción de Eclosión Jade y así que puedas comprarla en el Mercado.",
|
||||
"questJadeBoss": "Duende Harta",
|
||||
"questJadeCompletion": "¡Después de incontables recaídas de alguna manera inexplicable has conseguido hacer rodar el pedrusco de jade hasta la cima del risco! La figura de aspecto pétreo te alcanza y te ofrece una bonita sonrisa. Empuja el pedrusco con suave gesto y ves horrorizado como vuelve a rodar cuesta abajo hasta la posición que estaba justo cuando empezaste tu ardua tarea.<br><br> “¡Eh! ¿por qué has hecho eso? ¡Alguien va a tener que volver a hacer todo el trabajo otra vez!” le espetas.<br><br> “Solo por que tengas que intentar hacer las cosas más de una vez no significa que no hayas logrado nada,” te dice la figura-duende. “Por ahora, ¡céntrate en lo que has conseguido y disfruta de tu recompensa!”<br><br>Te despiertas sobresaltado en tu sofá, el trozo de papiro caído en el suelo. ¡Encima de la mesa tres botellas llenas con un líquido mantecoso color jade! Quizás debas lavar los platos y dejar eso solucionado y después tomarte un descanso para ver que resulta de rociar estas pociones sobre algunos huevos de mascota en los establos…"
|
||||
"questJadeBoss": "Jadeando Jarto",
|
||||
"questJadeCompletion": "¡Después de incontables recaídas de alguna manera inexplicable has conseguido hacer rodar el pedrusco de jade hasta la cima del risco! La figura de aspecto pétreo te alcanza y te ofrece una bonita sonrisa. Empuja el pedrusco con suave gesto y ves horrorizado como vuelve a rodar cuesta abajo hasta la posición que estaba justo cuando empezaste tu ardua tarea.<br><br> “¡Eh! ¿por qué has hecho eso? ¡Alguien va a tener que volver a hacer todo el trabajo otra vez!” le espetas.<br><br> “Solo por que tengas que intentar hacer las cosas más de una vez no significa que no hayas logrado nada,” te dice la criatura. “Por ahora, ¡céntrate en lo que has conseguido y disfruta de tu recompensa!”<br><br>Te despiertas sobresaltado en tu sofá, el trozo de papiro caído en el suelo. ¡Encima de la mesa tres botellas llenas con un líquido mantecoso color jade! Quizás debas lavar los platos y dejar eso solucionado y después tomarte un descanso para ver que resulta de rociar estas pociones sobre algunos huevos de mascota en los establos…"
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"mysterySet201602": "Conjunto de Rompecorazones",
|
||||
"mysterySet201603": "Conjunto de Trébol Afortunado",
|
||||
"mysterySet201604": "Conjunto de Guerrero Hoja",
|
||||
"mysterySet201605": "Conjunto de Bardo de Marcha",
|
||||
"mysterySet201605": "Conjunto de Mercader Bardo",
|
||||
"mysterySet201606": "Conjunto de Ropaje de Selkie",
|
||||
"mysterySet201607": "Conjunto de Picaro del Lecho marino",
|
||||
"mysterySet201608": "Conjunto de Tormenta eléctrica",
|
||||
@@ -260,5 +260,6 @@
|
||||
"unlockNGemsGift": "Ellos desbloquearan <strong><%= count %> Gemas </strong> al mes en el mercado",
|
||||
"maxGemCapGift": "Ellos tendrán el máximo <strong>Capacidad de Gemas</strong>",
|
||||
"mysterySet202501": "Conjunto Vinculaescarcha Pálido",
|
||||
"mysterySet202502": "Conjunto de Arlequín Sincero"
|
||||
"mysterySet202502": "Conjunto de Arlequín Sincero",
|
||||
"mysterySet202503": "Conjunto de Juggernaut Jade"
|
||||
}
|
||||
|
||||
@@ -395,5 +395,9 @@
|
||||
"hatchingPotionGingerbread": "Pain d'Épices",
|
||||
"questEggCatText": "Chaton",
|
||||
"questEggCatMountText": "Chat",
|
||||
"questEggCatAdjective": "espiègle"
|
||||
"questEggCatAdjective": "espiègle",
|
||||
"questEggOtterMountText": "Loutre",
|
||||
"questEggOtterAdjective": "perfide",
|
||||
"questEggOtterText": "Loutre",
|
||||
"hatchingPotionJade": "de Jade"
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
"dismissAll": "Tout effacer",
|
||||
"messages": "Messages",
|
||||
"emptyMessagesLine1": "Vous n'avez aucun message",
|
||||
"emptyMessagesLine2": "Vous pouvez envoyer un nouveau message à un·e utilisat·eur·rice en allant sur son profil et en cliquant sur le bouton \"Message\".",
|
||||
"emptyMessagesLine2": "Envoyez un message pour démarrer une conversation avec les membres de votre Équipe ou un·e autre joueu·r·se d'Habitica",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> vous a envoyé un message",
|
||||
"letsgo": "Allons-y !",
|
||||
"selected": "Selectionné",
|
||||
@@ -238,5 +238,8 @@
|
||||
"bannedPlayer": "L·e·a Joueu·r·se est banni·e.",
|
||||
"playerReportModalBody": "Merci de ne signaler que les joueu·r·se· qui enfreignent les <%= firstLinkStart %>Guide de la Communauté<%= linkEnd %> et/ou <%= secondLinkStart %>Conditions d'utilisation<%= linkEnd %>. Déposer un faux signalement est une violation du Guide de la Communauté d'Habitica.",
|
||||
"unblockPlayer": "Débloquer l·e·a Joueu·r·se",
|
||||
"titleCustomizations": "Personnalisations"
|
||||
"titleCustomizations": "Personnalisations",
|
||||
"rememberToBeKind": "N'oubliez pas d'être bienveillant·e, respectueu·x·se, et de suivre le <a href='/static/community-guidelines' target='_blank'>Guide de la Communauté</a>.",
|
||||
"newMessage": "Nouveau Message",
|
||||
"targetUserNotExist": "L'Utilisat·eur·rice '<%= userName %>' n'existe pas."
|
||||
}
|
||||
|
||||
@@ -428,7 +428,5 @@
|
||||
"readyToUpgrade": "Prêt·e à Passer à la Version Supérieure ?",
|
||||
"interestedLearningMore": "Vous souhaitez en Apprendre Plus ?",
|
||||
"checkGroupPlanFAQ": "Allez voir la <a href='/static/faq#what-is-group-plan'> FAQ des Offres de Groupe</a> pour en apprendre plus sur comment profiter complètement de l'expériences des tâches partagées.",
|
||||
"copyAsTodo": "Copy comme \"À Faire\"",
|
||||
"messageAddedAsToDo": "Message copié comme \"À Faire\".",
|
||||
"copyMessageAsToDo": "Copier les message comme \"À Faire\""
|
||||
"messageCopiedToClipboard": "Message copié dans le presse-papier."
|
||||
}
|
||||
|
||||
@@ -270,5 +270,9 @@
|
||||
"winter2025AuroraMageSet": "Ensemble Mage Aurore",
|
||||
"winter2025SnowRogueSet": "Ensemble Voleu·r·se Neigeux",
|
||||
"winter2025MooseWarriorSet": "Ensemble Guerri·er·ère Élan",
|
||||
"winter2025StringLightsHealerSet": "Ensemble Guérisseu·r·se Guirlande de Lumières"
|
||||
"winter2025StringLightsHealerSet": "Ensemble Guérisseu·r·se Guirlande de Lumières",
|
||||
"spring2025PlumeriaHealerSet": "Ensemble Guérisseu·r·se Plumeria",
|
||||
"spring2025MantisMageSet": "Ensemble Mage Mante Religieuse",
|
||||
"spring2025SunshineWarriorSet": "Ensemble Guerri·er·ère Solaire",
|
||||
"spring2025CrystalPointRogueSet": "Ensemble Voleu·r·se à Pointe de Cristal"
|
||||
}
|
||||
|
||||
@@ -56,7 +56,5 @@
|
||||
"messagePetMountUnEquipped": "Familier et monture retirés.",
|
||||
"messageCostumeUnEquipped": "Costume retiré.",
|
||||
"messageBattleGearUnEquipped": "Équipement de combat retiré.",
|
||||
"featureRetired": "Cette fonction n'existe plus.",
|
||||
"beginningOfConversationReminder": "N'oubliez pas d'être sympathique, respectu·eu·se, et de respecter le Guide de la Communauté !",
|
||||
"beginningOfConversation": "Vous êtes au début de votre conversation avec <%= userName %>."
|
||||
"featureRetired": "Cette fonction n'existe plus."
|
||||
}
|
||||
|
||||
@@ -260,5 +260,6 @@
|
||||
"subscribeAgainContinueHourglasses": "Abonnez-vous de nouveau pour continuer à recevoir des Sabliers Mystiques",
|
||||
"mysterySet202412": "Ensemble Lapin Sucre d'Orge",
|
||||
"mysterySet202501": "Ensemble Envoûteu·r·se de Glace",
|
||||
"mysterySet202502": "Ensemble Arlequin Amical"
|
||||
"mysterySet202502": "Ensemble Arlequin Amical",
|
||||
"mysterySet202503": "Ensemble Poids Lourd de Jade"
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"achievementAridAuthorityModalText": "אילפת את כל חיות הרכיבה המדבריות!",
|
||||
"achievementAridAuthorityText": "אילפו את כל חיות הרכיבה המדבריות.",
|
||||
"achievementAridAuthority": "שר המדבר",
|
||||
"achievementPartyUp": "הינך בצוות עם חבר קבוצה!",
|
||||
"achievementPartyUp": "הינך בצוות עם חבר חבורה!",
|
||||
"achievementDustDevilModalText": "אספת את כל חיות המדבר!",
|
||||
"achievementDustDevilText": "אספו את כל חיות המדבר.",
|
||||
"achievementDustDevil": "עמוד אבק",
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
"shortName": "שם קצר",
|
||||
"shortNamePlaceholder": "איזה תג קצר צריך להיות משומש בכדי לזהות את האתגר שלך?",
|
||||
"updateChallenge": "עדכן אתגר",
|
||||
"haveNoChallenges": "לקבוצה זו אין אתגרים",
|
||||
"haveNoChallenges": "לחבורה זו אין אתגרים",
|
||||
"loadMore": "לטעון עוד",
|
||||
"exportChallengeCsv": "ייצוא אתגר",
|
||||
"editingChallenge": "עריכת האתגר",
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
"hatchingPotionGlow": "זוהר-בחושך",
|
||||
"hatchingPotionFrost": "כפור",
|
||||
"hatchingPotionIcySnow": "שלג קרחי",
|
||||
"hatchingPotionNotes": "מזוג שיקוי זה על ביצה, והיא תבקע כ: <%= potText(locale) %>.",
|
||||
"hatchingPotionNotes": "שפוך שיקוי זה על הביצה, והיא תבקע כ <%= potText(locale) %> חיית מחמד.",
|
||||
"foodMeat": "בשר",
|
||||
"foodMeatThe": "הבשר",
|
||||
"foodMeatA": "בשר",
|
||||
@@ -339,7 +339,7 @@
|
||||
"questEggRobotText": "רובוט",
|
||||
"questEggDolphinMountText": "דולפין",
|
||||
"hatchingPotionTeaShop": "חנות תה",
|
||||
"premiumPotionUnlimitedNotes": "אי אפשר לשמש על ביצי הרפתקאות.",
|
||||
"premiumPotionUnlimitedNotes": "לא ניתן לשימוש עם ביצי חיות מחמד מהרפתקאות.",
|
||||
"foodPieGolden": "פאי קרם בננה זהובה",
|
||||
"hatchingPotionSunset": "שקיעה",
|
||||
"hatchingPotionAutumnLeaf": "עלה סתווי",
|
||||
@@ -373,5 +373,31 @@
|
||||
"foodPieDesertThe": "פאי הקינוח המדברי",
|
||||
"foodPieRed": "פאי דובדבנים",
|
||||
"foodPieRedThe": "פאי הדובדבנים",
|
||||
"foodPieRedA": "פרוסת פאי דובדבנים"
|
||||
"foodPieRedA": "פרוסת פאי דובדבנים",
|
||||
"questEggRaccoonText": "דביבון",
|
||||
"questEggRaccoonMountText": "דביבון",
|
||||
"questEggRaccoonAdjective": "מורעב/ת",
|
||||
"questEggDogMountText": "כלב",
|
||||
"questEggDogAdjective": "ידידותי/ת",
|
||||
"questEggGiraffeText": "ג'ירפה",
|
||||
"questEggGiraffeMountText": "ג'ירפה",
|
||||
"questEggChameleonText": "זיקית",
|
||||
"questEggChameleonMountText": "זיקית",
|
||||
"questEggChameleonAdjective": "קאותי/ת",
|
||||
"questEggGiraffeAdjective": "מתנשא/ת",
|
||||
"questEggCrabText": "סרטן",
|
||||
"questEggCrabMountText": "סרטן",
|
||||
"questEggCrabAdjective": "חסר/ת מנוחה",
|
||||
"questEggCatText": "חתלתול",
|
||||
"questEggCatMountText": "חתול",
|
||||
"questEggCatAdjective": "שובב/ה",
|
||||
"hatchingPotionKoi": "קוי",
|
||||
"hatchingPotionGingerbread": "ג'ינג'רברד",
|
||||
"hatchingPotionRoseGold": "רוז גולד",
|
||||
"questEggOtterText": "לוטרה",
|
||||
"questEggOtterMountText": "לוטרה",
|
||||
"questEggOtterAdjective": "בוגדני/ת",
|
||||
"questEggDogText": "כלבלב",
|
||||
"hatchingPotionJade": "ירקן",
|
||||
"hatchingPotionFungi": "פטריה"
|
||||
}
|
||||
|
||||
@@ -42,5 +42,6 @@
|
||||
"defaultHabitText": "לחיצה כאן תהפוך את סוג ההרגל להרגל רע שהיית רוצה להפסיק",
|
||||
"creativityTodoNotes": "אפשר ללחוץ כאן כדי לציין את שם המיזם שלך",
|
||||
"schoolDailyNotes": "אפשר ללחוץ כאן ולשנות את שעת שיעורי הבית שלך!",
|
||||
"creativityTodoText": "השלמת מיזם יצירתי"
|
||||
"creativityTodoText": "השלמת מיזם יצירתי",
|
||||
"schoolTodoNotes": "לחץ כאן על מנת לתת שם למטלה ולבחירת תאריך יעד!"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
"frequentlyAskedQuestions": "שאלות נפוצות",
|
||||
"iosFaqStillNeedHelp": "אם יש לך שאלה שאינה מופיעה ברשימה או ב[וויקי שאלות נפוצות](https://habitica.fandom.com/wiki/FAQ), אנחנו מזמינים אותך לשאול בשיחת הפונדק תחת תפריט > פונדק! נשמח לעזור.",
|
||||
"androidFaqStillNeedHelp": "אם יש לך שאלה שאינה מופיעה ברשימה או ב[וויקי שאלות נפוצות](https://habitica.fandom.com/wiki/FAQ), אנחנו מזמינים אותך לשאול בשיחת הפונדק תחת תפריט > פונדק! נשמח לעזור.",
|
||||
"webFaqStillNeedHelp": ""
|
||||
"webFaqStillNeedHelp": "",
|
||||
"webFaqAnswer25": "בHabitica יש שלוש סוגי משימות על מנת לענות על כל הצרכים שלך: הרגלים, משימות חוזרות, ומשימה",
|
||||
"commonQuestions": "שאלות נפוצות",
|
||||
"faqQuestion25": "מהן סוגי המשימות השונות?"
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
"groupBy": "סדר לפי <%= type %>",
|
||||
"classBonus": "(החפץ הזה מתאים למקצוע שלך, אז הוא מקבל מכפיל של 1.5 למדדים)",
|
||||
"classArmor": "מגן לפי מקצוע",
|
||||
"featuredset": "סט מובחר <%= name %>",
|
||||
"featuredset": "סט מובחר",
|
||||
"mysterySets": "סט מסתורין",
|
||||
"gearNotOwned": "הפריט לא בבעלותך.",
|
||||
"noGearItemsOfType": "אף אחד מהפריטים לא בבעלותך.",
|
||||
"classLockedItem": "החפץ הזה אפשרי רק עבור מקצוע מסוים. בדרגה 10 או גבוה יותר, אתם יכולים לשנות את המקצוע תחת האייקון של המשתמש > הגדרות > בניית דמות!",
|
||||
"tierLockedItem": "האיבר הזה אפשרי רק כשרכשתם את כל האיברים הקודמים בסדרה. תמשיכו להתמיד בדרככם למעלה!",
|
||||
"tierLockedItem": "הפריט הזה זמין רק לאחר שרכשתם את כל הפריטים הקודמים בסדרה. תמשיכו להתמיד בדרככם למעלה!",
|
||||
"sortByType": "סוג",
|
||||
"sortByPrice": "מחיר",
|
||||
"sortByCon": "חוסן",
|
||||
@@ -26,7 +26,7 @@
|
||||
"weaponWarrior1Text": "חרב",
|
||||
"weaponWarrior1Notes": "נשק של חייל ממוצע וסביר. מגביר את הכוח שלך ב <%= str %> .",
|
||||
"weaponWarrior2Text": "גרזן",
|
||||
"weaponWarrior2Notes": "נשק חיתוך כפול. מעלה כוח ב <%= str %>.",
|
||||
"weaponWarrior2Notes": "נשק חיתוך כפול. מגביר כוח ב <%= str %>.",
|
||||
"weaponWarrior3Text": "כוכב שחר",
|
||||
"weaponWarrior3Notes": "נבוט כבר עם קוצים אכזריים שיזמברו את אויביך. מגביר את הכוח שלך ב <%= str %> .",
|
||||
"weaponWarrior4Text": "להב ספיר",
|
||||
@@ -80,7 +80,7 @@
|
||||
"weaponSpecial0Text": "להב הנשמות האפלות",
|
||||
"weaponSpecial0Notes": "ניזון מדם חייהם של יריבייך כדי לחזק את מכותיו האכזריות. מגביר את ערך הכוח שלך ב<%= str %> נקודות.",
|
||||
"weaponSpecial1Text": "להב קריסטל",
|
||||
"weaponSpecial1Notes": "ההיבטים הנוצצים מספרים סיפור של גיבור. מעלה את כל המדדים ב <%= attrs %>.",
|
||||
"weaponSpecial1Notes": "ההיבטים הנוצצים מספרים סיפור של גיבור. מגביר את כל המדדים ב <%= attrs %>.",
|
||||
"weaponSpecial2Text": "מוט הדרקון של סטיבן וובר",
|
||||
"weaponSpecial2Notes": "חוש בכוח הדרקון מתפרץ מתוכך, כמו לבה מתוך הר געש! מגביר את ערכי הכוח והחוסן ב<%= attrs %> נקודות כל אחד.",
|
||||
"weaponSpecial3Text": "כוכב השחר המנתץ של מאסטין",
|
||||
@@ -88,31 +88,31 @@
|
||||
"weaponSpecialCriticalText": "פטיש מדהים של תיקון באגים",
|
||||
"weaponSpecialCriticalNotes": "",
|
||||
"weaponSpecialTakeThisText": "חרב Take This",
|
||||
"weaponSpecialTakeThisNotes": "",
|
||||
"weaponSpecialTakeThisNotes": "החרב הזו נרכשה לאחר השתתפות באתגר ממומן שנוצר על ידי Take This. כל הכבוד! מגביר את כל המדדים ב <%= attrs %>.",
|
||||
"weaponSpecialTridentOfCrashingTidesText": "קלשון ריסוק הגלים",
|
||||
"weaponSpecialTridentOfCrashingTidesNotes": "נותן לך את היכולת לפקד על הדגים בים וליצור פגיעות חמורות במטלות היומיות שלך. מגביר את התבונה ב <%= int %>.",
|
||||
"weaponSpecialTaskwoodsLanternText": "עששית יערות המשימות",
|
||||
"weaponSpecialTaskwoodsLanternNotes": "",
|
||||
"weaponSpecialTaskwoodsLanternNotes": "היא ניתנה בשחר הזמן לרוח המגנה של חורשת עצי המשימייה. העששית הזו יכולה להאיר את המקומות החשוכים ביותר ולטוות לחשים עוצמתיים. מגביר תפיסה ותבונה ב <%= attrs %> כל אחד.",
|
||||
"weaponSpecialBardInstrumentText": "נבל משוררים",
|
||||
"weaponSpecialBardInstrumentNotes": "",
|
||||
"weaponSpecialBardInstrumentNotes": "פרטו מנגינה עליזה על הלוטה הקסומה הזו! מגביר תבונה ותפיסה ב <%= attrs %> כל אחד.",
|
||||
"weaponSpecialLunarScytheText": "חרמש הירח",
|
||||
"weaponSpecialLunarScytheNotes": "",
|
||||
"weaponSpecialLunarScytheNotes": "מרח שעווה על חרמש זה באופן קבוע, אחרת כוחו יפחת. מגביר כוח ותפיסה ב <%= attrs %> כל אחד.",
|
||||
"weaponSpecialMammothRiderSpearText": "רומח רוכב הממותות",
|
||||
"weaponSpecialMammothRiderSpearNotes": "",
|
||||
"weaponSpecialMammothRiderSpearNotes": "חנית רוז קוורץ זו תעניק לך כוח קסם עתיק. מגביר תבונה ב <%= int %>.",
|
||||
"weaponSpecialPageBannerText": "Page Banner",
|
||||
"weaponSpecialPageBannerNotes": "",
|
||||
"weaponSpecialPageBannerNotes": "הנף את הדגל שלך גבוה כדי לעורר ביטחון! מגביר כוח ב <%= str %>.",
|
||||
"weaponSpecialRoguishRainbowMessageText": "",
|
||||
"weaponSpecialRoguishRainbowMessageNotes": "",
|
||||
"weaponSpecialSkeletonKeyText": "",
|
||||
"weaponSpecialSkeletonKeyNotes": "",
|
||||
"weaponSpecialNomadsScimitarText": "",
|
||||
"weaponSpecialNomadsScimitarNotes": "",
|
||||
"weaponSpecialRoguishRainbowMessageNotes": "המעטפה הנוצצת הזו מכילה הודעות עידוד מהבטיקנים, ומגע של קסם שיעזור להאיץ את המשלוחים שלך! מגביר תפיסה ב <%= per %>.",
|
||||
"weaponSpecialSkeletonKeyText": "מפתח שלד",
|
||||
"weaponSpecialSkeletonKeyNotes": "כל הגנבים החמקמקים הטובים ביותר נושאים מפתח שיכול לפתוח כל מנעול! מגביר חוסן ב<%= con %>.",
|
||||
"weaponSpecialNomadsScimitarText": "הסימיטר של נומאד",
|
||||
"weaponSpecialNomadsScimitarNotes": "הלהב המעוקלת של הסימיטר הזה מושלמת להתקפת משימות על גבה של חיית רכיבה! מגביר תבונה ב<%= int %>.",
|
||||
"weaponSpecialFencingFoilText": "",
|
||||
"weaponSpecialFencingFoilNotes": "",
|
||||
"weaponSpecialTachiText": "",
|
||||
"weaponSpecialTachiNotes": "",
|
||||
"weaponSpecialAetherCrystalsText": "",
|
||||
"weaponSpecialAetherCrystalsNotes": "",
|
||||
"weaponSpecialTachiText": "חרב טאצ'י",
|
||||
"weaponSpecialTachiNotes": "החרב הקלה והמעוקלת הזו תקרע את המטלות שלך לגזרים! מגביר כוח ב <%= str %>.",
|
||||
"weaponSpecialAetherCrystalsText": "קריסטלים אתריים",
|
||||
"weaponSpecialAetherCrystalsNotes": "מגני הידיים והקריסטלים האלו היו שייכים פעם לאמנית המחלקות האבודה בכבודה ובעצמה. מגביר את כל המדדים ב <%= attrs %>.",
|
||||
"weaponSpecialYetiText": "חנית מאלפי יטים",
|
||||
"weaponSpecialYetiNotes": "חנית זו מאפשר למשתמש בה לפקד על כל יטי. מגבירה את הכוח ב<%= str %>. מהדורה מוגבלת , ציוד חורף 2013-2014.",
|
||||
"weaponSpecialSkiText": "מוט מתנקש-סקי",
|
||||
@@ -201,9 +201,9 @@
|
||||
"weaponSpecialSummer2016MageNotes": "כל כוחות הים עוברים דרך המטה הזה. מגביר תבונה ב <%= int %> ותפיסה ב <%= per %>. מהדורה מוגבלת 2016, ציוד קיץ",
|
||||
"weaponSpecialSummer2016HealerText": "קלשון מרפא",
|
||||
"weaponSpecialSummer2016HealerNotes": "צד אחד פוגע, והשני מרפא. מגביר תבונה ב <%= int %>. מהדורה מוגבלת 2016, ציוד קיץ.",
|
||||
"weaponSpecialFall2016RogueText": "",
|
||||
"weaponSpecialFall2016RogueText": "פגיון נשיכת עכביש",
|
||||
"weaponSpecialFall2016RogueNotes": "",
|
||||
"weaponSpecialFall2016WarriorText": "",
|
||||
"weaponSpecialFall2016WarriorText": "שורשים מתקיפים",
|
||||
"weaponSpecialFall2016WarriorNotes": "",
|
||||
"weaponSpecialFall2016MageText": "",
|
||||
"weaponSpecialFall2016MageNotes": "",
|
||||
@@ -1709,5 +1709,9 @@
|
||||
"eyewearArmoirePlagueDoctorMaskNotes": "An authentic mask worn by the doctors who battle the Plague of Procrastination. Increases Constitution and Intelligence by <%= attrs %> each. Enchanted Armoire: Plague Doctor Set (Item 2 of 3).",
|
||||
"eyewearArmoireGoofyGlassesText": "Goofy Glasses",
|
||||
"eyewearArmoireGoofyGlassesNotes": "Perfect for going incognito or just making your partymates giggle. Increases Perception by <%= per %>. Enchanted Armoire: Independent Item.",
|
||||
"twoHandedItem": "Two-handed item."
|
||||
"twoHandedItem": "Two-handed item.",
|
||||
"moreArmoireGearAvailable": "עד אז, ישנם עדיין <%= armoireCount %> חלקי ציוד שניתן לגלות בתיבה הקסומה!",
|
||||
"moreArmoireGearComing": "התיבה הקסומה אף מקבלת מלאי חדש מדי חודש!",
|
||||
"weaponSpecialKS2019Notes": "מעוקלת כמקור וטפרים של גריפון , הסכין הזו מזכירה לך לאזור כוח ולכבוש את המטלה גם כשהיא מרגישה קשה ומרתיעה. מגביר כוח ב <%= str %>.",
|
||||
"weaponSpecialKS2019Text": "פגיון הגריפון המיתולוגי"
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
"achievementBewilder": "מציל של מיסטי",
|
||||
"achievementBewilderText": "עזרת להביס את המתפרע במהלך אירוע הפלינג האביבי 2016!",
|
||||
"achievementDysheartener": "מציל של השברים",
|
||||
"achievementDysheartenerText": "",
|
||||
"achievementDysheartenerText": "עזר להביס את Dysheartener במהלך אירוע ולנטיין 2018!",
|
||||
"cards": "כרטיסים",
|
||||
"sentCardToUser": "שלחת כרטיס אל <%= profileName %>",
|
||||
"cardReceived": "",
|
||||
@@ -131,12 +131,12 @@
|
||||
"congrats0": "ברכות על הצלחתך שלך!",
|
||||
"congrats1": "אני כל כך גאה בך!",
|
||||
"congrats2": "כל הכבוד!",
|
||||
"congrats3": "",
|
||||
"congrats4": "",
|
||||
"congratsCardAchievementTitle": "",
|
||||
"congratsCardAchievementText": "",
|
||||
"congrats3": "מחיאות כפיים לך!",
|
||||
"congrats4": "תתענג על ההצלחה הראויה לשבח שלך!",
|
||||
"congratsCardAchievementTitle": "שותף לברכות כל הכבוד",
|
||||
"congratsCardAchievementText": "טוב לחגוג את הצלחותיו של חבריך! שלחת או קיבלת <%= count %> כרטיסי ברכה.",
|
||||
"getwellCard": "תבריא כרטיס",
|
||||
"getwellCardExplanation": "",
|
||||
"getwellCardExplanation": "שניכם קיבלתם את הישג איש סוד איכפתי!",
|
||||
"getwellCardNotes": "",
|
||||
"getwell0": "להבריא במהרה!",
|
||||
"getwell1": "לדאוג לעצמך! 3>",
|
||||
@@ -185,7 +185,7 @@
|
||||
"self_improvement": "",
|
||||
"spirituality": "רוחניות",
|
||||
"time_management": "",
|
||||
"recovery_support_groups": "",
|
||||
"recovery_support_groups": "קבוצות שיקום + תמיכה",
|
||||
"dismissAll": "לבטל הכל",
|
||||
"messages": "Messages",
|
||||
"emptyMessagesLine1": "You don't have any messages",
|
||||
@@ -206,10 +206,37 @@
|
||||
"reportDescription": "תאור",
|
||||
"general": "כללי",
|
||||
"allNotifications": "כל ההודעות",
|
||||
"reportPlayer": "לדווח שחקן",
|
||||
"reportPlayer": "דיווח משתמש",
|
||||
"whyReportingPlayerPlaceholder": "סיבה לדיווח",
|
||||
"whyReportingPlayer": "למה אתה מדווח על השחקן הזה?",
|
||||
"whyReportingPlayer": "למה אתה מדווח את המשתמש הזה?",
|
||||
"question": "שאלה",
|
||||
"questionPlaceholder": "שאל את שאלתך כאן",
|
||||
"submitQuestion": "להגיש שאלה"
|
||||
"submitQuestion": "להגיש שאלה",
|
||||
"reportSentDescription": "נחזור אליכם ברגע שלחברי הצוות שלנו יהיה זמן לעבור על זה.",
|
||||
"reportBugHeaderDescribe": "אני הסבירו את פרטי התקלה שחוויתם והצוות שלנו יחזור אליכם.",
|
||||
"reportEmailText": "נשתמש בזה רק על מנת ליצור איתך קשר לגבי התקלה שדיווחת עליה.",
|
||||
"reportEmailError": "אני ציינו כתובת מייל תקינה",
|
||||
"reportDescriptionText": "במידה וזה יעזור, אנא הוסיפו צילומי מסך או שגיאות קונסולת Javascript.",
|
||||
"reportDescriptionPlaceholder": "ציינו את פרטי התקלה כאן",
|
||||
"submitBugReport": "הגשת דיווח התקלה",
|
||||
"reportSent": "תודה על דיווח התקלה!",
|
||||
"loadEarlierMessages": "טעינת הודעות קודמות",
|
||||
"blockPlayer": "חסימת משתמש",
|
||||
"unblockPlayer": "ביטול חסימת משתמש",
|
||||
"emptyReportBugMessage": "הודעת דיווח תקלה חסרה",
|
||||
"leaveHabitica": "אתה עומד לצאת מ- Habitica.com",
|
||||
"unbanPlayer": "ביטול חסימת פעילות משתמש",
|
||||
"adminTools": "כלים למנהל",
|
||||
"viewAdminPanel": "צפייה בלוח מנהל",
|
||||
"shadowMute": "השתקה שקטה",
|
||||
"mutePlayer": "השתקה",
|
||||
"playerReportModalBody": "דווח על משתמש אך ורק במידה והוא מפר את <%= firstLinkStart %>הנחיות הקהילה<%= linkEnd %> ו/או <%= secondLinkStart %>תנאי השירות<%= linkEnd %>. שליחת דיווח כוזב הינה הפרה של הנחיות הקהילה של Habitica.",
|
||||
"banPlayer": "חסימת פעילות משתמש",
|
||||
"bannedPlayer": "המשתמש הזה חסום פעילות.",
|
||||
"leaveHabiticaText": "Habitica אינה אחראית לתוכן מכל אתר שאינו נמצא בבעלות או מתופעל על ידי HabitRPG.<br> שימו לב כי הנהלים של אתרים אלה עשויים להיות שונים מהנחיות הקהילה של Habitica.",
|
||||
"askQuestionHeaderDescribe": "אתה חדש בהביטיקה ולא יודע עדיין מה עושים? וותיק אבל לא מצליח לפענח איך להשתמש באחד מהפיצ'רים? מלא את הטופס הנ\"ל ואחד מחברי הצוות שלנו יחזור אליך.",
|
||||
"questionEmailText": "נעשה בזאת שימוש אך ורק על מנת ליצור עמך קשר בנוגע לשאלתך.",
|
||||
"questionDescriptionText": "תוכל לכתוב את השאלה בשפתך במידה ואינך שולט באופן מספק בשפה האנגלית.",
|
||||
"refreshList": "רענון הרשימה",
|
||||
"skipExternalLinkModal": "לחצו CTRL (ווינדוס) או Command (מאק) בעת לחיצה על קישור כדי לדלג על המודל הזה"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"tavern": "שיחת פונדק",
|
||||
"tavernChat": "שיחת פונדק",
|
||||
"innCheckOutBanner": "הדמות שלך נמצאת כרגע במצב תרדמת. המטלות היומיומיות שלך לא ייפגעו וההתקדמות שלך בהרפתקאות הושהתה.",
|
||||
"innCheckOutBanner": "הדמות שלך נמצאת כרגע במצב תרדמת. המטלות היומיות שלך לא ייפגעו וההתקדמות שלך בהרפתקאות הושהתה.",
|
||||
"innCheckOutBannerShort": "הדמות שלך נמצאת במצב תרדמת.",
|
||||
"resumeDamage": "ביטול השהיית הנזק",
|
||||
"helpfulLinks": "קישורים שימושיים",
|
||||
@@ -16,7 +16,7 @@
|
||||
"wiki": "ויקי",
|
||||
"resources": "משאבים",
|
||||
"communityGuidelines": "הנחיות הקהילה",
|
||||
"bannedWordUsed": "אופס! נראה שההודעה הזאת מכילה קללות או התייחסות לחומר ממכר או נושא למבוגרים בלבד (<%= swearWordsUsed %>). הביטיקה שומרת את הצ'ט שלנו נקי מאוד. תרגישו חופשי לערוך את ההודעה שלכם כדי שתוכלו לפרסם אותה.",
|
||||
"bannedWordUsed": "אופס! נראה שההודעה הזאת מכילה קללות או התייחסות לחומר ממכר או נושא למבוגרים בלבד (<%= swearWordsUsed %>). הביטיקה שומרת את הצ'ט שלנו ידידותי לכולם. תרגישו חופשי לערוך את ההודעה שלכם כדי שתוכלו לפרסם אותה.",
|
||||
"bannedSlurUsed": "ההודעה שלך כללה שפה לא נאותה, וההרשאות שלך לפרסם בצ'ט בוטלו.",
|
||||
"party": "חבורה",
|
||||
"usernameCopied": "שם המשתמש הועתק ללוח הגזירים.",
|
||||
@@ -35,7 +35,7 @@
|
||||
"chat": "שיחה",
|
||||
"sendChat": "שילחו הודעה",
|
||||
"group": "קבוצה",
|
||||
"groupName": "שם קבוצה",
|
||||
"groupName": "שם חבורה",
|
||||
"groupLeader": "מנהיג החבורה",
|
||||
"groupID": "מזהה קבוצה",
|
||||
"members": "חברים",
|
||||
@@ -127,7 +127,7 @@
|
||||
"onlyLeaderCanRemoveMember": "רק מנהיגי החבורה יכולים להסיר ממנה חברים!",
|
||||
"cannotRemoveCurrentLeader": "אתם לא יכולים להסיר את מנהיג החבורה. יש קודם למנות מנהיג חדש.",
|
||||
"memberCannotRemoveYourself": "אינכם יכולים להסיר את עצמכם!",
|
||||
"groupMemberNotFound": "המשתמשים לא נמצאו מבין חברי הקבוצה",
|
||||
"groupMemberNotFound": "המשתמשים לא נמצאו מבין חברי החבורה",
|
||||
"mustBeGroupMember": "חייבים להיות חברים בקבוצה.",
|
||||
"canOnlyInviteEmailUuid": "אפשר להזמין רק לפי מזהה משתמש, כתובת דוא״ל ושם משתמש.",
|
||||
"inviteMissingEmail": "חסרה כתובת אימייל בהזמנה.",
|
||||
@@ -182,7 +182,7 @@
|
||||
"groupTasksTitle": "רשימת המשימות של הקבוצה",
|
||||
"userIsClamingTask": "`<%= username %> שייך לעצמו את:` <%= task %>",
|
||||
"approvalRequested": "בקשה לאישור נשלחה",
|
||||
"cantDeleteAssignedGroupTasks": "לא ניתן למחוק משימות של קבוצה המשויכות אליכם.",
|
||||
"cantDeleteAssignedGroupTasks": "לא ניתן למחוק משימות של חבורה המשויכות אליכם.",
|
||||
"groupPlanUpgraded": "<strong><%- groupName %></strong> שודרגה בהצלחה לתוכנית קבוצות!",
|
||||
"groupPlanCreated": "<strong><%- groupName %></strong> נוצרה!",
|
||||
"onlyGroupLeaderCanInviteToGroupPlan": "רק מנהיג הקבוצה יכול להזמין משתמשים לקבוצה עם מנוי.",
|
||||
@@ -354,5 +354,6 @@
|
||||
"taskClaimed": "<%- userName %> לקח בעלות על המשימה <span class=\"notification-bold\"><%- taskText %></span>.",
|
||||
"partyExceedsInvitesLimit": "חבורה יכולה להיות עם <%= maxInvites %> מוזמנים לכל היותר.",
|
||||
"chooseTeamMember": "חיפוש חבר צוות",
|
||||
"youHaveBeenAssignedTask": "<%- managerName %> שייך אותך למשימה<span class=\"notification-bold\"><%- taskText %></span>."
|
||||
"youHaveBeenAssignedTask": "<%- managerName %> שייך אותך למשימה<span class=\"notification-bold\"><%- taskText %></span>.",
|
||||
"challengeBannedSlurs": "האתגר שלך כולל מילה שמפרה את הנחיות הקהילה של הביטיקה, לכן פריבילגיות הצ'ט והאתגרים שלך נשללו. צרו קשר בכתובת המייל admin@habitica.com למידע נוסף."
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
"alarmingFriends": "חברים מפחידים",
|
||||
"alarmingFriendsText": "Got spooked <%= count %> times by party members.",
|
||||
"agriculturalFriends": "חברים חקלאיים",
|
||||
"agriculturalFriendsText": "",
|
||||
"agriculturalFriendsText": "הפך לפרח <%= count %> על ידי חברי החבורה.",
|
||||
"aquaticFriends": "חברים ימיים",
|
||||
"aquaticFriendsText": "",
|
||||
"aquaticFriendsText": "הושפרצת <%= count %> פעמים על ידי חברי החבורה.",
|
||||
"valentineCard": "כרטיס יום האהבה",
|
||||
"valentineCardExplanation": "על עמידתכם בשיר כל כך מתקתק, שניכם מקבלים תג של ״חברים מעריצים״!",
|
||||
"valentineCardNotes": "שליחת כרטיס יום אהבה לאחד השחקנים בחבורה.",
|
||||
@@ -130,7 +130,7 @@
|
||||
"winter2019PyrotechnicSet": "",
|
||||
"winter2019WinterStarSet": "",
|
||||
"winter2019PoinsettiaSet": "",
|
||||
"winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!",
|
||||
"winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!",
|
||||
"winterPromoGiftDetails1": "Until January 15th only, when you gift somebody a subscription, you get the same subscription for yourself for free!",
|
||||
"winterPromoGiftDetails2": "",
|
||||
"discountBundle": "",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"needTips": "Need some tips on how to begin? Here's a straightforward guide!",
|
||||
"step1": "Step 1: Enter Tasks",
|
||||
"webStep1Text": "",
|
||||
"webStep1Text": "אין שום טעם בהביטיקה בלי מטרות מהעולם האמיתי, אז תייצרו לכם כמה משימות. תוכלו להוסיף עוד בהמשך ככל שתחשבו עליהן! ניתן ליצור את כל סוגי המשימות באמצעות לחיצה על כפתור הפלוס.\n* **Set up [To Do's](https://habitica.fandom.com/wiki/To_Do%27s):** Enter tasks you do once or rarely in the To Do's column, one at a time. You can click on the tasks to edit them and add checklists, due dates, and more!\n* **הכינו [Dailies](https://habitica.fandom.com/wiki/Dailies):** Enter activities you need to do daily or on a particular day of the week, month, or year in the Dailies column. Click task to edit when it will be due and/or set a start date. You can also make it due on a repeating basis, for example, every 3 days.\n* **Set up [Habits](https://habitica.fandom.com/wiki/Habits):** Enter habits you want to establish in the Habits column. You can edit the Habit to change it to just a good habit :heavy_plus_sign: or a bad habit :heavy_minus_sign:\n* **Set up [Rewards](https://habitica.fandom.com/wiki/Rewards):** In addition to the in-game Rewards offered, add activities or treats which you want to use as a motivation to the Rewards column. It's important to give yourself a break or allow some indulgence in moderation!\n* If you need inspiration for which tasks to add, you can look at the wiki's pages on [Sample Habits](https://habitica.fandom.com/wiki/Sample_Habits), [Sample Dailies](https://habitica.fandom.com/wiki/Sample_Dailies), [Sample To Do's](https://habitica.fandom.com/wiki/Sample_To_Do%27s), and [Sample Rewards](https://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
|
||||
"step2": "Step 2: Gain Points by Doing Things in Real Life",
|
||||
"webStep2Text": "Now, start tackling your goals from the list! As you complete tasks and check them off in Habitica, you will gain [Experience](http://habitica.fandom.com/wiki/Experience_Points), which helps you level up, and [Gold](http://habitica.fandom.com/wiki/Gold_Points), which allows you to purchase Rewards. If you fall into bad habits or miss your Dailies, you will lose [Health](http://habitica.fandom.com/wiki/Health_Points). In that way, the Habitica Experience and Health bars serve as a fun indicator of your progress toward your goals. You'll start seeing your real life improve as your character advances in the game.",
|
||||
"step3": "שלב 3: התאמה אישית וסיור בהביטיקה",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"stable": "אורווה",
|
||||
"stable": "חיות מחמד וחיות רכיבה",
|
||||
"pets": "חיות מחמד",
|
||||
"activePet": "חיית מחמד נוכחית",
|
||||
"noActivePet": "אין חיית מחמד נוכחית",
|
||||
@@ -37,39 +37,39 @@
|
||||
"hatchingPotions": "שיקויי בקיעה",
|
||||
"magicHatchingPotions": "שיקויי בקיעה קסומים",
|
||||
"hatchingPotion": "שיקוי בקיעה",
|
||||
"haveHatchablePet": "You have a <%= potion %> hatching potion and <%= egg %> egg to hatch this pet! <b>Click</b> the paw print to hatch.",
|
||||
"haveHatchablePet": "יש לכם את שיקוי הבקיעה <%= potion %> וביצת <%= egg %> הדרושים להבקעת חיית מחמד זו! <b>לחצו</b> על מנת להבקיע!",
|
||||
"quickInventory": "ציוד מהיר",
|
||||
"food": "מזון לחיות מחמד ואוכפים",
|
||||
"noFoodAvailable": "אין לך אוכל.",
|
||||
"noSaddlesAvailable": "אין לך אוכפים.",
|
||||
"dropsExplanation": "אפשר לקבל פריטים אלו מהר יותר עם אבני חן, אם אינך מעוניין/ת לחכות שיפלו בהשלמת משימות. <a href=\"http://habitica.fandom.com/wiki/Drops\">למדע נוסף על מערכת הנפילות.</a>",
|
||||
"dropsExplanationEggs": "Spend Gems to get eggs more quickly, if you don't want to wait for standard eggs to drop, or to repeat Quests to earn Quest eggs. <a href=\"http://habitica.fandom.com/wiki/Drops\">Learn more about the drop system.</a>",
|
||||
"dropsExplanation": "ניתן לזרז קבלת פריטים אלו עם אבני חן, אם אינך מעוניין/ת לחכות שיפלו בעת השלמת משימות. <a href=\"http://habitica.fandom.com/wiki/Drops\">למידע נוסף על מערכת הנפילות.</a>",
|
||||
"dropsExplanationEggs": "השתמשו באבני חן על מנת לקבל ביצים מהר יותר, אם אינכם רוצים לחכות שיופיעו ביצים סטנדרטיות, או לחזור על הרפתקאות כדי להרוויח ביצי הרפתקאות. <a href=\"http://habitica.fandom.com/wiki/Drops\">קראו עוד על מערכת נפילות.</a>",
|
||||
"premiumPotionNoDropExplanation": "לא ניתן להשתמש בשיקויי בקיעה קסומים על ביצים שהתקבלו מהרפתקאות. הדרך היחידה לקבל שיקויי הבקעה קסומים היא על ידי שימוש בהם למטה, לא מנפילות אקראיות.",
|
||||
"beastMasterProgress": "התקדמות אדון החיות",
|
||||
"beastAchievement": "הרווחת את הישג \"אדון החיות\" על איסוף כל חיות המחמד!",
|
||||
"beastMasterName": "אלוף החיות",
|
||||
"beastMasterName": "אדון החיות",
|
||||
"beastMasterText": "מצא את כל 90 חיות המחמד (ממש קשה, ברכו את המשתמש הזה!)",
|
||||
"beastMasterText2": "",
|
||||
"beastMasterText2": " ושחרר את חיית המחמד שלו <%= count %> פעמ(ים)",
|
||||
"mountMasterProgress": "התקדמות אלוף הרוכבים",
|
||||
"mountAchievement": "הרווחת את הישג \"אלוף הרוכבים\" מאילוף כל חיות הרכיבה!",
|
||||
"mountMasterName": "אלוף הרוכבים",
|
||||
"mountMasterText": "אילפו את כל 90 חיות הרכיבה (אפילו יותר קשה, בחאייכם, פרגנו!)",
|
||||
"mountMasterText2": "",
|
||||
"mountMasterText2": " ושחררו את כל 90 חיות הרכיבה שלהם <%= count %> פעמ(ים)",
|
||||
"triadBingoName": "בינגו משולש",
|
||||
"triadBingoText": "מצאו את כל 90 חיות המחמד, אילפו אותן ל 90 חיות רכיבה, ואז מצאה את 90 חיות המחמד הללו שוב! (זה טירוף חושים!!!)",
|
||||
"triadBingoText2": "",
|
||||
"triadBingoText": "מצאו את כל 90 חיות המחמד, אילפו אותן ל 90 חיות הרכיבה, ואז מצאה את 90 חיות המחמד הללו שוב! (זה טירוף חושים!!!)",
|
||||
"triadBingoText2": " ושחררו את כל חיות המחמד וחיות הרכיבה שלהם <%= count %> פעמ(ים)",
|
||||
"triadBingoAchievement": "הרווחת את הישג ה\"בינגו משולש\" על מציאת כל חיות המחמד, אילוף כולן לחיות רכיבה, ומציאת כולן שוב!",
|
||||
"hatchedPet": "",
|
||||
"hatchedPetGeneric": "",
|
||||
"hatchedPetHowToUse": "",
|
||||
"hatchedPet": "הבקעת <%= potion %> <%= egg %> חדש/ה!",
|
||||
"hatchedPetGeneric": "הבקעת חיית מחמד חדשה!",
|
||||
"hatchedPetHowToUse": "בקרו ב [חיות מחמד וחיות רכיבה](<%= stableUrl %>) כדי להאכיל ולצייד את החייה החדשה שלכם!",
|
||||
"petNotOwned": "חיית המחמד הזו אינה בבעלותך.",
|
||||
"mountNotOwned": "",
|
||||
"feedPet": "",
|
||||
"raisedPet": "",
|
||||
"mountNotOwned": "חיית רכיבה זו אינה בבעלותך.",
|
||||
"feedPet": "האכילו את <%= name %> ב<%= text %>?",
|
||||
"raisedPet": "ה <%= pet %> שלכם גדל/ה!",
|
||||
"petName": "<%= potion(locale) %> מ<%= egg(locale) %>",
|
||||
"mountName": "",
|
||||
"keyToPets": "",
|
||||
"keyToPetsDesc": "",
|
||||
"keyToPets": "מפתח למאורות של חיות המחמד",
|
||||
"keyToPetsDesc": "שחררו את כל חיות המחמד הבסיסיות כדי שתוכלו לאסוף אותם שוב. (חיות מחמד מהרפתקאות וחיות מחמד נדירות לא ישוחררו.)",
|
||||
"keyToMounts": "",
|
||||
"keyToMountsDesc": "",
|
||||
"keyToBoth": "",
|
||||
@@ -83,10 +83,10 @@
|
||||
"petsReleased": "חיות המחמד שוחררו.",
|
||||
"mountsAndPetsReleased": "חיות המחמד וחיות הרכיבה שוחררו",
|
||||
"mountsReleased": "חיות הרכיבה שוחררו",
|
||||
"welcomeStable": "ברוכים הבאים לאורווה!",
|
||||
"welcomeStable": "ברוכים הבאים לחייות המחמד והרכיבה!",
|
||||
"welcomeStableText": "I'm Matt, the Beast Master. Starting at level 3, you can hatch Pets from Eggs by using Potions you find! When you hatch a Pet from your Inventory, it will appear here! Click a Pet's image to add it to your avatar. Feed them here with the Food you find after level 3, and they'll grow into hardy Mounts.",
|
||||
"petLikeToEat": "מה חיית המחמד שלי אוהבת לאכול?",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
|
||||
"petLikeToEatText": "חיות המחמד יגדלו לא משנה מה תאכילו אותן, אך הן יגדלו במהירות רבה יותר אם תאכילו אותן את המזון האהוב עליהן. נסו מזונות שונים עד שתעלו על השיטה, או אם תרצו תוכלו לבדוק את התשובות כאן: <br/> <a href=\"/static/faq#pet-foods\" target=\"_blank\">https://habitica.com/static/faq#pet-foods</a>",
|
||||
"filterByStandard": "בסיסיים",
|
||||
"filterByMagicPotion": "שיקוי קסם",
|
||||
"filterByQuest": "הרפתקה",
|
||||
@@ -102,10 +102,12 @@
|
||||
"hatchDialogText": "",
|
||||
"clickOnPotionToHatch": "",
|
||||
"notEnoughPets": "",
|
||||
"notEnoughMounts": "",
|
||||
"notEnoughMounts": "טרם אספתם די חיות רכיבה",
|
||||
"notEnoughPetsMounts": "",
|
||||
"wackyPets": "חיות מטורפות",
|
||||
"filterByWacky": "מטורפים",
|
||||
"gryphatrice": "גריפטריצ'ה",
|
||||
"jubilantGryphatrice": "גריפטריצ'ה צוהלת"
|
||||
"jubilantGryphatrice": "גריפטריצ'ה צוהלת",
|
||||
"veteranCactus": "קקטוס וותיק",
|
||||
"veteranDragon": "דרקון ותיק"
|
||||
}
|
||||
|
||||
@@ -71,16 +71,16 @@
|
||||
"ownerOnly": "בעלים בלבד",
|
||||
"selectQuest": "נא לבחור הרפתקה",
|
||||
"chatQuestStarted": "ההרפתקה שלך, <%= questName %>, החלה.",
|
||||
"chatBossDamage": "<%= username %> תוקף את <%= bossName %> וגורם ל-<%= userDamage %> נזק. <%= bossName %> תוקף את הקבוצה וגורם לה <%= bossDamage %> נזק.",
|
||||
"chatBossDamage": "<%= username %> תוקף את <%= bossName %> וגורם ל-<%= userDamage %> נזק. <%= bossName %> תוקף את החבורה וגורם לה <%= bossDamage %> נזק.",
|
||||
"chatBossDontAttack": "<%= username %> תוקף את <%= bossName %> וגורם ל-<%= userDamage %> נזק. <%= bossName %> לא תוקף בחזרה, מכיוון שהוא מכבד את העובדה שיש מספר באגים במערכת, והוא לא רוצה לפגוע במישהו בצורה לא הוגנת. הוא ימשיך בהשתוללות שלו בקרוב!",
|
||||
"chatFindItems": "<%= username %> מצא <%= items %>.",
|
||||
"tavernBossTired": "<%= bossName %> מנסה לשחרר את <%= rageName %> אבל הוא עייף מדי.",
|
||||
"questOwner": "בעל ההרפתקה",
|
||||
"backToSelection": "חזרה לבחירת הרפתקה",
|
||||
"noQuestToStartTitle": "לא מצאת הרפתקה להתחיל?",
|
||||
"chatBossDefeated": "הבסתם את <%= bossName %>! החברים לקבוצה שהשתתפו בהרפתקה מקבלים את שלל הניצחון.",
|
||||
"chatBossDefeated": "הבסתם את <%= bossName %>! החברים לחבורה שהשתתפו בהרפתקה מקבלים את שלל הניצחון.",
|
||||
"chatQuestCancelled": "<%= username %> ביטל את ההרפתקה <%= questName %>.",
|
||||
"yourPartyIsNotOnQuest": "הקבוצה שלך אינה משתתפת בהרפתקה",
|
||||
"yourPartyIsNotOnQuest": "החבורה שלך אינה משתתפת בהרפתקה",
|
||||
"newItem": "פריט חדש",
|
||||
"yourQuests": "ההרפתקאות שלך",
|
||||
"cancelQuest": "ביטול הרפתקה",
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
"questMonkeyUnlockText": "פותח אפשרות לקניית ביצי קוף בשוק",
|
||||
"questSnailText": "חילזון בוצת העבודה השחורה",
|
||||
"questSnailNotes": "אתם מתרגשים להתחיל הרפתקה בצינוק הנטוש של עבודות הפרך, אבל ברגע שאתם נכנסים, אתם מרגישים את הקרקע מתחת לרגליים שלכם מתחילה לינוק את המגפיים. אתם מביטים על השביל קדימה ורואים הביטיקנים שקועים ברפש. @Overomega צועק, \"יש להם יותר מדי משימות ומטלות יומיות לא חשובות, והם תקועים על דברים שלא משנים! מישכו אותם!\"<br><br>\"אתם צריכים למצוא את המקור של הבוץ,\" @Pfeffernusse מסכים, \"או שמשימות שהם לא יכולים להשלים יגררו אותם לנצח!\"<br><br>שולפים את הנשק שלכם, אתם מדשדשים בבוץ דביק... ופוגשים את החילזון האימתני של עבודת פרך בוצתית.",
|
||||
"questSnailCompletion": "אתם מניפים את נשקיכם על קונכיית החילזון הענקית, סודקים אותה לשתיים, ושטף מים משתחרר. הבוצה נשטפת, וההביטיקנים סביבכם קופצים משמחה. ״הסתכלו!״ קורא @Misceo. ״יש קבוצה קטנה של ביצי חילזון בשאריות של הטינופת.״",
|
||||
"questSnailCompletion": "אתם מניפים את נשקיכם על קונכיית החילזון הענקית, סודקים אותה לשתיים, ושטף מים משתחרר. הבוצה נשטפת, וההביטיקנים סביבכם קופצים משמחה. ״הסתכלו!״ קורא @Misceo. ״יש חבורה קטנה של ביצי חילזון בשאריות של הטינופת.״",
|
||||
"questSnailBoss": "חילזון בוצת עבודת פרך",
|
||||
"questSnailDropSnailEgg": "חילזון (ביצה)",
|
||||
"questSnailUnlockText": "פותח אפשרות לקניית ביצי חלזונות בשוק",
|
||||
|
||||
@@ -174,5 +174,8 @@
|
||||
"addPasswordAuth": "הוספת סיסמה",
|
||||
"adjustment": "כוונון",
|
||||
"transaction_debug": "פעולות לניפוי שגיאות",
|
||||
"transaction_create_challenge": "יצירת אתגר"
|
||||
"transaction_create_challenge": "יצירת אתגר",
|
||||
"generalSettings": "הגדרות כלליות",
|
||||
"siteData": "נתוני האתר",
|
||||
"taskSettings": "הגדרות משימות"
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"achievement": "Kitüntetések",
|
||||
"onwards": "Előre!",
|
||||
"levelup": "Céljaid elérésével szintet léptél és teljesen felgyógyultál!",
|
||||
"levelup": "A való életbeli céljaid teljesítésével szintet léptél, és teljesen meggyógyultál!",
|
||||
"reachedLevel": "Elérted a <%= level %>. szintet",
|
||||
"achievementLostMasterclasser": "Küldetés maximalista: Kasztmester sorozat",
|
||||
"achievementLostMasterclasserText": "Teljesítetted mind a tizenhat küldetést a Kasztmester küldetéssorozatban és megoldottad az Elveszett kasztmester rejtélyét!",
|
||||
"achievementLostMasterclasser": "Küldetés maximalista: Nagymester sorozat",
|
||||
"achievementLostMasterclasserText": "Teljesítetted mind a tizenhat küldetést a Nagymester küldetéssorozatban és megoldottad az Elveszett nagymester rejtélyét!",
|
||||
"achievementMindOverMatter": "Az elme hatalma az anyag felett",
|
||||
"achievementJustAddWater": "Elég egy vízcsepp",
|
||||
"achievementBackToBasics": "Vissza az alapokhoz",
|
||||
"achievementBackToBasicsText": "Az összes alap háziállat összegyűjtve.",
|
||||
"achievementMindOverMatterModalText": "Teljesítetted a kő, nyálka, és fonál háziállat küldetéseket!",
|
||||
"achievementBackToBasicsText": "Összegyűjtötte az összes alap kisállatot.",
|
||||
"achievementMindOverMatterModalText": "Teljesítetted a kő, nyálka, és a fonál háziállat küldetéseket!",
|
||||
"achievementMindOverMatterText": "Teljesítette a kő, nyálka, és fonál háziállat küldetéseket.",
|
||||
"achievementLostMasterclasserModalText": "Teljesítetted mind a tizenhat küldetést a Kasztmester küldetéssorozatban és megoldottad az Elveszett kasztmester rejtélyét!",
|
||||
"achievementLostMasterclasserModalText": "Teljesítetted mind a tizenhat küldetést a Nagymester küldetéssorozatban és megoldottad az Elveszett nagymester rejtélyét!",
|
||||
"hideAchievements": "<%= category %> elrejtése",
|
||||
"showAllAchievements": "Minden <%= category %> megtekintése",
|
||||
"onboardingCompleteDesc": "<strong>5 kitüntetést</strong> és <strong class=\"gold-amount\">100</strong> aranyat szerztél a lista befejezéséért.",
|
||||
@@ -19,151 +19,151 @@
|
||||
"viewAchievements": "Kitüntetések megtekintése",
|
||||
"letsGetStarted": "Kezdjük el!",
|
||||
"onboardingProgress": "<%= percentage %>% haladás",
|
||||
"gettingStartedDesc": "Végezd el ezeket a folyamatban lévő feladatokat, amellyel<strong> 5 kitüntetést </strong> és <strong class=\"gold-anount\">száz aranyat</strong> fogsz megszerezni!",
|
||||
"foundNewItemsCTA": "Vedd az irányt tárgylistád felé, és próbáld kombinálni az új keltetőfőzeted egy tojással!",
|
||||
"foundNewItemsExplanation": "A feladatok elvégzésével tárgyakat, tojásokat, keltetőfőzeteket, valamint állateledelt szerezhetsz.",
|
||||
"gettingStartedDesc": "Teljesítsd ezeket a bevezető feladatokat és <strong>5 kitüntetést</strong> valamint <strong class=\"gold-amount\">100 aranyat</strong> kapsz jutalmul!",
|
||||
"foundNewItemsCTA": "Menj a Leltárba és próbáld meg összevonni az új keltetőfőzetedet és tojásodat!",
|
||||
"foundNewItemsExplanation": "A feladatok teljesítésével esélyed van tárgyakat találni, például tojásokat, keltetőfőzeteket és állateledelt.",
|
||||
"foundNewItems": "Új tárgyat találtál!",
|
||||
"onboardingCompleteDescSmall": "Ha még többet szeretnél, ellenőrizd a kitüntetéseket, és kezdd el gyűjtésüket!",
|
||||
"onboardingComplete": "Minden kitűzött célod teljesítetted!",
|
||||
"onboardingComplete": "Teljesítetted a bevezető feladatokat!",
|
||||
"yourProgress": "Előrehaladásod",
|
||||
"achievementJustAddWaterText": "A polip, a tengeri csikó, a tintahal, a bálna, a teknős, a tengeri csupaszcsiga, a tengeri kígyó, valamint a delfin kisállat küldetések teljesítve.",
|
||||
"yourRewards": "Kitüntetéseid",
|
||||
"achievementJustAddWaterModalText": "Teljesítetted a polip, a tengeri csikó, a tintahal, a bálna, a teknős, a tengeri csupaszcsiga, a tengeri kígyó, valamint a delfin kisállat küldetéseket!",
|
||||
"achievementBackToBasicsModalText": "Összegyűjtötted az összes alap háziállatot!",
|
||||
"achievementAllYourBaseText": "Az összes alap hátas megszelidítve.",
|
||||
"achievementAllYourBaseModalText": "Megszelidítetted az összes alap hátast!",
|
||||
"achievementDustDevilText": "Az összes sivatagi állat összegyűjtve.",
|
||||
"achievementAridAuthorityModalText": "Megszelidítetted az összes sivatagi hátast!",
|
||||
"achievementKickstarter2019": "Kitűző Kickstarter Támogató",
|
||||
"achievementKickstarter2019Text": "Támogatta a 2019-es Kitűző Kickstarter Projektet",
|
||||
"achievementMonsterMagusModalText": "Összegyűjtötted az összes zombi háziállatot!",
|
||||
"achievementUndeadUndertakerText": "Megszelidítette az összes zombi hátast.",
|
||||
"achievementJustAddWaterText": "Teljesítette a polip, a tengeri csikó, a tintahal, a bálna, a teknős, a tengeri csiga, a tengeri kígyó és a delfin kisállat küldetéseket.",
|
||||
"yourRewards": "A jutalmaid",
|
||||
"achievementJustAddWaterModalText": "Teljesítetted a polip, a tengeri csikó, a tintahal, a bálna, a teknős, a tengeri csiga, a tengeri kígyó és a delfin kisállat küldetéseket!",
|
||||
"achievementBackToBasicsModalText": "Összegyűjtötted az összes alap kisállatot!",
|
||||
"achievementAllYourBaseText": "Megszelídítette az összes alap hátast.",
|
||||
"achievementAllYourBaseModalText": "Megszelídítetted az összes alap hátast!",
|
||||
"achievementDustDevilText": "Összegyűjtötte az összes sivatagi kisállatot.",
|
||||
"achievementAridAuthorityModalText": "Megszelídítetted az összes sivatagi hátast!",
|
||||
"achievementKickstarter2019": "Kickstarter támogatói kitűző",
|
||||
"achievementKickstarter2019Text": "Kitűző a 2019-es Kickstarter projekt támogatásért",
|
||||
"achievementMonsterMagusModalText": "Összegyűjtötted az összes zombi kisállatot!",
|
||||
"achievementUndeadUndertakerText": "Megszelídítette az összes zombi hátast.",
|
||||
"achievementUndeadUndertakerModalText": "Megszelidítetted az összes zombi hátast!",
|
||||
"achievementCreatedTaskText": "Létrehozta az első feladatát.",
|
||||
"achievementCompletedTask": "Teljesíts egy feladatot",
|
||||
"achievementCompletedTaskText": "Teljesítette az első feladatát.",
|
||||
"achievementHatchedPetText": "Kikeltette az első állatát.",
|
||||
"achievementHatchedPetModalText": "Menj a tárgyaidhoz, és próbálj meg kombinálni egy keltetőfőzetet egy tojással",
|
||||
"achievementFedPet": "Etess meg egy háziállatot",
|
||||
"achievementFedPetText": "Megetette az első háziállatát.",
|
||||
"achievementFedPetModalText": "Sok különböző állateledel van, de az állatok néha válogatósak",
|
||||
"achievementHatchedPetText": "Kikeltette az első kisállatát.",
|
||||
"achievementHatchedPetModalText": "Menj a Leltárba és próbálj meg összevonni egy keltetőfőzetet és egy tojást",
|
||||
"achievementFedPet": "Etesd meg a kisállatodat",
|
||||
"achievementFedPetText": "Megetette az első kisállatát.",
|
||||
"achievementFedPetModalText": "Sokféle étel létezik, de a kisállatok válogatósak lehetnek",
|
||||
"achievementPurchasedEquipment": "Vásárolj egy felszerelést",
|
||||
"achievementPurchasedEquipmentText": "Megvásárolta az első felszerelését.",
|
||||
"achievementHatchedPet": "Kelts ki egy állatot",
|
||||
"achievementPurchasedEquipmentModalText": "A felszerelésekkel személyre szabhatod a karaktered kinézetét, és növelheted a tulajdonságpontjait",
|
||||
"achievementAridAuthorityText": "Az összes sivatagi hátas megszelidítve.",
|
||||
"achievementHatchedPet": "Keltess ki egy kisállatot",
|
||||
"achievementPurchasedEquipmentModalText": "A felszerelés segít testreszabni az avatárodat és növeli a tulajdonságpontjait",
|
||||
"achievementAridAuthorityText": "Megszelídítette az összes sivatagi hátast.",
|
||||
"achievementDustDevilModalText": "Összegyűjtötted az összes sivatagi állatot!",
|
||||
"achievementMonsterMagusText": "Összegyűjtötte az összes zombi háziállatot.",
|
||||
"achievementMonsterMagusText": "Összegyűjtötte az összes zombi kisállatot.",
|
||||
"achievementDustDevil": "Porördög",
|
||||
"achievementCreatedTask": "Hozd létre az első feladatodat",
|
||||
"achievementCreatedTaskModalText": "Hozz létre egy feladatot, amit szeretnél ezen a héten teljesíteni",
|
||||
"achievementCreatedTaskModalText": "Adj hozzá egy feladatot, amit a héten szeretnél teljesíteni",
|
||||
"achievementMonsterMagus": "Szörnymágus",
|
||||
"achievementCompletedTaskModalText": "Pipáld ki valamelyik feladatodat hogy jutalmakat kapj",
|
||||
"achievementPartyOn": "A csapatod 4 főre nőtt!",
|
||||
"achievementPrimedForPaintingModalText": "Összegyűjtötted az összes fehér háziállatot!",
|
||||
"achievementPearlyProText": "Az összes fehér hátas megszelidítve.",
|
||||
"achievementTickledPinkText": "Az összes rózsaszín vattacukor állat összegyűjtve.",
|
||||
"achievementCompletedTaskModalText": "Pipálj ki egy feladatot, hogy jutalmat kapj",
|
||||
"achievementPartyOn": "A csapatod 4 tagúra bővült!",
|
||||
"achievementPrimedForPaintingModalText": "Összegyűjtötted az összes fehér kisállatot!",
|
||||
"achievementPearlyProText": "Megszelídítette az összes fehér hátast.",
|
||||
"achievementTickledPinkText": "Összegyűjtötte az összes rózsaszín vattacukor kisállatot.",
|
||||
"achievementTickledPinkModalText": "Összegyűjtötted az összes rózsaszín vattacukor állatot!",
|
||||
"achievementPearlyProModalText": "Megszelidítetted az összes fehér hátast!",
|
||||
"achievementBugBonanzaText": "Befejezte a Bogár, Pillangó, Csiga és Pók kisállat küldetéseket.",
|
||||
"achievementBugBonanzaModalText": "Befejezted a Bogár, Pillangó, Csiga és Pók kisállat küldetéseket!",
|
||||
"achievementPearlyProModalText": "Megszelídítetted az összes fehér hátast!",
|
||||
"achievementBugBonanzaText": "Teljesítette a bogár, a pillangó, a csiga és a pók kisállat küldetéseket.",
|
||||
"achievementBugBonanzaModalText": "Teljesítetted a bogár, a pillangó, a csiga és a pók kisállat küldetéseket!",
|
||||
"achievementGoodAsGoldModalText": "Összegyűjtötted az összes arany kisállatot!",
|
||||
"achievementGoodAsGold": "Jó, mint az arany",
|
||||
"achievementGoodAsGoldText": "Az összes arany kisállat összegyűjtve.",
|
||||
"achievementPrimedForPaintingText": "Az összes fehér háziállat összegyűjtve.",
|
||||
"achievementGoodAsGold": "Aranyat érő",
|
||||
"achievementGoodAsGoldText": "Összegyűjtötte az összes arany kisállatot.",
|
||||
"achievementPrimedForPaintingText": "Összegyűjtötte az összes fehér kisállatot.",
|
||||
"achievementBoneCollector": "Csontgyűjtő",
|
||||
"achievementBoneCollectorModalText": "Minden csontváz kisállatot begyűjtöttél!",
|
||||
"achievementSkeletonCrewModalText": "Minden csontváz hátast megszelidítettél!",
|
||||
"achievementSeeingRed": "Vörös szemek",
|
||||
"achievementAllThatGlittersModalText": "Minden arany hátast megszelidítettél!",
|
||||
"achievementSkeletonCrewText": "Minden csontváz hátas megszelidítve.",
|
||||
"achievementBoneCollectorModalText": "Összegyűjtötted az összes csontváz kisállatot!",
|
||||
"achievementSkeletonCrewModalText": "Megszelídítetted az összes csontváz hátast!",
|
||||
"achievementSeeingRed": "Vörös köd",
|
||||
"achievementAllThatGlittersModalText": "Megszelídítetted az összes arany hátast!",
|
||||
"achievementSkeletonCrewText": "Megszelídítette az összes csontváz hátast.",
|
||||
"achievementSkeletonCrew": "Csontváz sereg",
|
||||
"achievementRosyOutlook": "Rózsaszín kilátások",
|
||||
"achievementSeeingRedModalText": "Minden vörös kisállatot begyűjtöttél!",
|
||||
"achievementAllThatGlitters": "Minden, ami fénylik",
|
||||
"achievementRosyOutlookModalText": "Megszelidítetted az összes rózsaszín vattacukor hátast!",
|
||||
"achievementSeeingRedText": "Minden vörös kisállat begyűjtve.",
|
||||
"achievementBoneCollectorText": "Minden csontváz kisállat begyűjtve.",
|
||||
"achievementRosyOutlookText": "Az összes rózsaszín vattacukor hátas megszelidítve.",
|
||||
"achievementSeeingRedModalText": "Összegyűjtötted az összes vörös kisállatot!",
|
||||
"achievementAllThatGlitters": "Nem minden arany, ami fénylik",
|
||||
"achievementRosyOutlookModalText": "Megszelídítetted az összes rózsaszín vattacukor hátast!",
|
||||
"achievementSeeingRedText": "Összegyűjtötte az összes vörös kisállatot.",
|
||||
"achievementBoneCollectorText": "Összegyűjtötte az összes csontváz kisállatot.",
|
||||
"achievementRosyOutlookText": "Megszelídítette az összes rózsaszín vattacukor hátast.",
|
||||
"achievementAllYourBase": "Megfelelő alapokon",
|
||||
"achievementPartyUp": "Összeálltál egy csapattárssal!",
|
||||
"achievementAllThatGlittersText": "Az összes arany hátas megszelidítve.",
|
||||
"achievementAridAuthority": "Kiapadt tekintély",
|
||||
"achievementLegendaryBestiary": "Legendás Bestiárium",
|
||||
"achievementVioletsAreBlueText": "Az összes kék vattacukor kisállat begyűjtve.",
|
||||
"achievementWildBlueYonderModalText": "Megszelidítetted az összes kék vattacukor hátast!",
|
||||
"achievementLegendaryBestiaryText": "Megszelídítette az összes alapszínű mítikus kisállatot: Sárkány, Repülő Malac, Griff, Tengeri Kígyó és Unikornis!",
|
||||
"achievementDomesticatedText": "Kiköltötte az összes háziasított kisállatot: Görény, Tengerimalac, Kakas, Repülő Malac, Patkány, Nyuszi, Ló és Tehén!",
|
||||
"achievementPartyUp": "Összefogtál egy csapattaggal!",
|
||||
"achievementAllThatGlittersText": "Megszelídítette az összes arany hátast.",
|
||||
"achievementAridAuthority": "Sivatagi tekintély",
|
||||
"achievementLegendaryBestiary": "Legendás bestiárium",
|
||||
"achievementVioletsAreBlueText": "Összegyűjtötte az összes kék vattacukor kisállatot.",
|
||||
"achievementWildBlueYonderModalText": "Megszelídítetted az összes kék vattacukor hátast!",
|
||||
"achievementLegendaryBestiaryText": "Kikeltette az összes alap színű mitikus kisállatot: sárkányt, repülő malacot, griffet, tengeri kígyót és az unikornist!",
|
||||
"achievementDomesticatedText": "Kikeltette az összes háziasított kisállatot: vadászgörényt, tengerimalacot, kakast, repülő malacot, patkányt, nyuszti, lovat és a tehenet!",
|
||||
"achievementDomesticated": "Í-Á-Í-Á-Ó",
|
||||
"achievementBareNecessitiesModalText": "Befejezted a Majom, Lajhár és Faszerzet kisállat küldetéseket!",
|
||||
"achievementWildBlueYonderText": "Az összes kék vattacukor hátas megszelidítve.",
|
||||
"achievementLegendaryBestiaryModalText": "Begyűjtötted az összes mítikus kisállatot!",
|
||||
"achievementBareNecessitiesModalText": "Teljesítetted a majom, a lajhár és a facsemete kisállat küldetéseket!",
|
||||
"achievementWildBlueYonderText": "Megszelídítette összes kék vattacukor hátast.",
|
||||
"achievementLegendaryBestiaryModalText": "Összegyűjtötted az összes mítikus kisállatot!",
|
||||
"achievementVioletsAreBlue": "Az ibolya kék",
|
||||
"achievementVioletsAreBlueModalText": "Összegyűjtötted az összes kék vattacukor kisállatot!",
|
||||
"achievementPrimedForPainting": "Festésre előkészítve",
|
||||
"achievementPrimedForPainting": "Előkészítve a festéshez",
|
||||
"achievementBugBonanza": "Bogár banzáj",
|
||||
"achievementPearlyPro": "Gyöngy mester",
|
||||
"achievementWildBlueYonder": "A vad kék messzeség",
|
||||
"achievementRedLetterDayText": "Az összes vörös hátasállat megszelidítve.",
|
||||
"achievementRedLetterDayText": "Megszelídítette az összes vörös hátast.",
|
||||
"achievementUndeadUndertaker": "Élőhalott sírásó",
|
||||
"achievementFreshwaterFriends": "Édesvízi barátok",
|
||||
"achievementSeasonalSpecialistText": "Teljesítette az összes Tavaszi és Téli szezonális küldetést: Tojásvadász, Csapdás Mikulás, Keresd A Kölyköt!",
|
||||
"achievementFreshwaterFriendsModalText": "Befejezted az Axolotl, Béka és Víziló kisállat küldetéseket!",
|
||||
"achievementSeasonalSpecialistText": "Teljesítette az összes tavaszi és téli szezonális küldetést: Tojásvadászat, Prémvadász mikulást és Találd meg a bocsot!",
|
||||
"achievementFreshwaterFriendsModalText": "Teljesítetted az axolotl, a béka és a víziló kisállat küldetéseket!",
|
||||
"achievementBareNecessities": "Alapvető szükségletek",
|
||||
"achievementFreshwaterFriendsText": "Axolotl, Béka és Víziló kisállat küldetések teljesítve.",
|
||||
"achievementFreshwaterFriendsText": "Teljesítette az axolotl, a béka és a víziló kisállat küldetéseket.",
|
||||
"achievementRedLetterDayModalText": "Megszelídítetted az összes vörös hátasállatot!",
|
||||
"achievementSeasonalSpecialistModalText": "Teljesítetted az összes szezonális küldetést!",
|
||||
"achievementRedLetterDay": "Pirosbetűs nap",
|
||||
"achievementBareNecessitiesText": "Majom, Lajhár és Faszerzet kisállat küldetések teljesítve.",
|
||||
"achievementDomesticatedModalText": "Begyűjtötted az összes háziasított kisállatot!",
|
||||
"achievementBareNecessitiesText": "Teljesítette a majom, a lajhár és a facsemete kisállat küldetéseket.",
|
||||
"achievementDomesticatedModalText": "Összegyűjtötted az összes háziasított kisállatot!",
|
||||
"achievementSeasonalSpecialist": "Szezonális specialista",
|
||||
"achievementShadyCustomer": "Gyanús ügyfél",
|
||||
"achievementReptacularRumble": "Harsogó moraj",
|
||||
"achievementShadyCustomer": "Árnyas alak",
|
||||
"achievementReptacularRumble": "Hüllők harca",
|
||||
"achievementBirdsOfAFeather": "Madarat tolláról",
|
||||
"achievementBirdsOfAFeatherModalText": "Begyűjtötted az összes alapszínű repülő kisállatot!",
|
||||
"achievementBirdsOfAFeatherText": "Kiköltötte az összes alapszínű repülő kisálattot: Repülő Malac, Bagoly, Papagály, Pterodactyl, Griff, Sólyom, Páva, és Kakas!",
|
||||
"achievementBirdsOfAFeatherModalText": "Összegyűjtötted az összes alapszínű repülő kisállatot!",
|
||||
"achievementBirdsOfAFeatherText": "Kikeltette az összes alap színű repülő kisállatot: repülő malacot, baglyot, papagájt, pterodaktiluszt, griffet, sólymot, pávát és a kakast!",
|
||||
"achievementZodiacZookeeper": "Állatövi gondozó",
|
||||
"achievementZodiacZookeeperText": "Kiköltötte az összes alap színű csillagjegy kisállatot: Patkány, Tehén, Nyuszi, Kígyó, Ló, Bárány, Majom, Kakas, Farkas, Tigris, Repülő Malac, és Sárkány!",
|
||||
"achievementZodiacZookeeperModalText": "Begyűjtötted az összes csillagjegy kisállatot!",
|
||||
"achievementShadyCustomerText": "Az összes árny kisállat összegyűjtve.",
|
||||
"achievementZodiacZookeeperText": "Kikeltette az összes alap színű állatövi kisállatot: patkányt, tehenet, nyuszit, kígyót, lovat, bárányt, majmot, kakast, farkast, tigrist, repülő malacot és a sárkányt!",
|
||||
"achievementZodiacZookeeperModalText": "Összegyűjtötted az összes állatövi kisállatot!",
|
||||
"achievementShadyCustomerText": "Összegyűjtötte az összes árny kisállatot.",
|
||||
"achievementShadyCustomerModalText": "Összegyűjtötted az összes árny kisállatot!",
|
||||
"achievementShadeOfItAll": "Mindennek az árnya",
|
||||
"achievementShadeOfItAllText": "Az összes árny hátas megszelidítve.",
|
||||
"achievementShadeOfItAllModalText": "Megszelidítetted az összes árny hátast!",
|
||||
"achievementShadeOfItAll": "A gyanú árnyéka",
|
||||
"achievementShadeOfItAllText": "Megszelídítette az összes árny hátast.",
|
||||
"achievementShadeOfItAllModalText": "Megszelídítetted az összes árny hátast!",
|
||||
"achievementTickledPink": "Rózsás helyzet",
|
||||
"achievementGroupsBeta2022": "Interaktív béta tesztelő",
|
||||
"achievementGroupsBeta2022Text": "Te és a csapatod értékes visszajelzéssel segítette a Habitica tesztelését.",
|
||||
"achievementReptacularRumbleText": "Összes alap színű hüllő kisállat kikeltve: Aligátor, Pterodactyl, Kígyó, Triceratops, Teknős, Tyrannosaurus Rex, és Velociraptor!",
|
||||
"achievementGroupsBeta2022Text": "Te és a csapatod felbecsülhetetlen értékű visszajelzéssel segítettétek a Habitica tesztelését.",
|
||||
"achievementReptacularRumbleText": "Kikeltette az összes alap színű hüllő kisállatot: aligátort, pterodaktiluszt, kígyót, triceratopszot, teknőst, tirannoszaurusz rexet és a velociraptort!",
|
||||
"achievementReptacularRumbleModalText": "Összegyűjtötted az összes hüllő kisállatot!",
|
||||
"achievementDuneBuddyModalText": "Összegyűjtötted az összes sivataglakó kisállatot!",
|
||||
"achievementRodentRulerText": "Kiköltötte az összes alap színű rágcsáló kisállatot: Tengerimalac, Patkány és Mókus!",
|
||||
"achievementCats": "Macska szelidítő",
|
||||
"achievementCatsText": "Kiköltötte az összes alap színű macska kisállatot: Gepárd, Oroszlán, Smilodon, és Tigris!",
|
||||
"achievementRodentRulerText": "Kikeltette az összes alap színű rágcsáló kisállatot: tengerimalacot, patkányt és a mókust!",
|
||||
"achievementCats": "Macska csősz",
|
||||
"achievementCatsText": "Kikeltette az összes alap színű macskaféle kisállatot: gepárdot, oroszlánt, kardfogú tigrist és tigrist!",
|
||||
"achievementRoughRiderModalText": "Összegyűjtötted az összes alap színű kényelmetlen kisállatot és hátast!",
|
||||
"achievementRodentRuler": "Patkány parancsnok",
|
||||
"achievementRodentRuler": "Rágcsálók ura",
|
||||
"achievementRodentRulerModalText": "Összegyűjtötted az összes rágcsáló kisállatot!",
|
||||
"achievementRoughRider": "Kemény motoros",
|
||||
"achievementRoughRiderText": "Kiköltötte az összes alap színű kényelmetlen kisállatot és hátast: Kaktusz, Sündisznó, és Szikla!",
|
||||
"achievementGroupsBeta2022ModalText": "Te és a csapatod segítette a Habitica fejlesztését teszteléssel és visszajelzés adásával!",
|
||||
"achievementRoughRider": "Vad lovas",
|
||||
"achievementRoughRiderText": "Kikeltette az összes alap színű kényelmetlen kisállatot és hátast: kaktuszt, sünit és a követ!",
|
||||
"achievementGroupsBeta2022ModalText": "Te és a csapatod a teszteléssel és visszajelzéseitekkel segítettétek a Habiticát!",
|
||||
"achievementCatsModalText": "Összegyűjtötted az összes macska kisállatot!",
|
||||
"achievementPolarPro": "Sarki szaki",
|
||||
"achievementPolarProText": "Kiköltötte az összes alap színű sarkvidéki kisállatot: Medve, Róka, Pingvin, Bálna és Farkas!",
|
||||
"achievementPolarProText": "Kikeltette az összes alap színű sarki kisállatot: medvét, rókát, pingvint, bálnát és a farkast!",
|
||||
"achievementPolarProModalText": "Összegyűjtötted az összes sarkvidéki kisállatot!",
|
||||
"achievementWoodlandWizardModalText": "Összegyűjtötted az összes erdei kisállatot!",
|
||||
"achievementWoodlandWizardText": "Kiköltötte az összes alap színű erdei lényt: Borz, Medve, Szarvas, Róka, Béka, Sün, Bagoly, Csiga, Mókus, és Faszerzet!",
|
||||
"achievementWoodlandWizardText": "Kikeltette az összes alap színű erdei állatot: borzot, medvét, szarvast, rókát, békát, sünit, baglyot, csigát, mókust és a facsemetét!",
|
||||
"achievementWoodlandWizard": "Erdei varázsló",
|
||||
"achievementPlantParent": "Növény Nanus",
|
||||
"achievementPlantParentText": "Kiköltötte az összes alapszínű növény kisállatot: Kaktusz és Faszerzet!",
|
||||
"achievementPlantParent": "Növényszülő",
|
||||
"achievementPlantParentText": "Kikeltette az összes alap színű növény kisállatot: kaktuszt és a facsemetét!",
|
||||
"achievementPlantParentModalText": "Összegyűjtötted az összes növény kisállatot!",
|
||||
"achievementDinosaurDynasty": "Dínó dinasztia",
|
||||
"achievementDinosaurDynastyText": "Kiköltötte az összes alap színű madár és dinoszaurusz kisállatot: Sólyom, Bagoly, Papagály, Páva, Pingvin, Kakas, Pterodactyl, T-Rex, Triceratops, és Velociraptor!",
|
||||
"achievementDinosaurDynastyText": "Kikeltette az összes alap színű madár és dinoszaurusz kisállatot: sólymot, baglyot, papagájt, pávát, pingvint, kakast, pterodaktiluszt, T-Rexet, triceratopszot és a velociraptort!",
|
||||
"achievementDinosaurDynastyModalText": "Összegyűjtötted az összes madár és dinoszaurusz kisállatot!",
|
||||
"achievementBoneToPick": "Csontkollekció",
|
||||
"achievementBoneToPickText": "Kiköltötte az összes klasszikus és küldetés csontváz kisállatot!",
|
||||
"achievementBoneToPickModalText": "Összegyűjtötted az összes klasszikus és küldetés csontváz kisállatot!",
|
||||
"achievementBoneToPickText": "Kikeltette az összes klasszikus és küldetésből szerezhető csontváz kisállatot!",
|
||||
"achievementBoneToPickModalText": "Összegyűjtötted az összes klasszikus és küldetésből származó csontváz-kisállatot!",
|
||||
"achievementBonelessBoss": "Gerinctelen góré",
|
||||
"achievementBonelessBossText": "Kiköltötte az összes alap színű gerinctelen kisállatot: Bogár, Lepke, Tintahal, Tengeri Csiga, Polip, Csiga, és Pók!",
|
||||
"achievementBonelessBossText": "Kikeltette az összes alap színű gerinctelen kisállatot: bogarat, pillangót, tintahalat, tengeri csigát, polipot, csigát és a pókot!",
|
||||
"achievementBonelessBossModalText": "Összegyűjtötted az összes gerinctelen kisállatot!",
|
||||
"achievementDuneBuddy": "Homok Haver",
|
||||
"achievementDuneBuddyText": "Kiköltötte az összes sivataglakó kisállatot: Armadilló, Kaktusz, Róka, Béka, Kígyó, és Pók!"
|
||||
"achievementDuneBuddy": "Homok haver",
|
||||
"achievementDuneBuddyText": "Kikeltette az összes alap színű sivatagi kisállatot: tatut, kaktuszt, rókát, békát, kígyót és a pókot!"
|
||||
}
|
||||
|
||||
@@ -3,144 +3,144 @@
|
||||
"background": "Háttér",
|
||||
"backgroundShop": "Háttér bolt",
|
||||
"noBackground": "Nincs háttér kiválasztva",
|
||||
"backgrounds062014": "KÉSZLET 1: Kiadva 2014. június",
|
||||
"backgrounds062014": "KÉSZLET 1: Megjelent 2014. június",
|
||||
"backgroundBeachText": "Tengerpart",
|
||||
"backgroundBeachNotes": "Lustálkodj egy forró tengerparton.",
|
||||
"backgroundFairyRingText": "Boszorkánykör",
|
||||
"backgroundFairyRingNotes": "Táncolj egy boszorkánykörben.",
|
||||
"backgroundForestText": "Erdő",
|
||||
"backgroundForestNotes": "Sétálj egy nyári erdőben.",
|
||||
"backgrounds072014": "KÉSZLET 2: Kiadva 2014. július",
|
||||
"backgrounds072014": "KÉSZLET 2: Megjelent 2014. július",
|
||||
"backgroundCoralReefText": "Korallzátony",
|
||||
"backgroundCoralReefNotes": "Ússz egy korallzátonyban.",
|
||||
"backgroundOpenWatersText": "Nyílt víz",
|
||||
"backgroundOpenWatersNotes": "Élvezd a nyílt vizet.",
|
||||
"backgroundSeafarerShipText": "Tengerészhajó",
|
||||
"backgroundSeafarerShipNotes": "Vitorlázz egy tengerészhajó fedélzetén.",
|
||||
"backgrounds082014": "KÉSZLET 3: Kiadva 2014. augusztus",
|
||||
"backgrounds082014": "KÉSZLET 3: Megjelent 2014. augusztus",
|
||||
"backgroundCloudsText": "Felhők",
|
||||
"backgroundCloudsNotes": "Repülj át a felhőkön.",
|
||||
"backgroundDustyCanyonsText": "Porlepte kanyon",
|
||||
"backgroundDustyCanyonsNotes": "Vándorolj keresztül egy porlepte kanyonon.",
|
||||
"backgroundVolcanoText": "Vulkán",
|
||||
"backgroundVolcanoNotes": "Forrósodj fel egy vulkánban.",
|
||||
"backgrounds092014": "KÉSZLET 4: Kiadva 2014. szeptember",
|
||||
"backgrounds092014": "KÉSZLET 4: Megjelent 2014. szeptember",
|
||||
"backgroundThunderstormText": "Vihar",
|
||||
"backgroundThunderstormNotes": "Vezess villámot egy viharban.",
|
||||
"backgroundAutumnForestText": "Őszi erdő",
|
||||
"backgroundAutumnForestNotes": "Sétálj egy őszi erdőben.",
|
||||
"backgroundHarvestFieldsText": "Szántóföldek",
|
||||
"backgroundHarvestFieldsNotes": "Műveld a szántóföldjeidet.",
|
||||
"backgrounds102014": "KÉSZLET 5: Kiadva 2014. október",
|
||||
"backgrounds102014": "KÉSZLET 5: Megjelent 2014. október",
|
||||
"backgroundGraveyardText": "Temető",
|
||||
"backgroundGraveyardNotes": "Látogass meg egy hátborzongató temetőt.",
|
||||
"backgroundHauntedHouseText": "Kisértetház",
|
||||
"backgroundHauntedHouseNotes": "Osonj keresztül egy kísértetházon.",
|
||||
"backgroundPumpkinPatchText": "Tökmező",
|
||||
"backgroundPumpkinPatchNotes": "Faragj töklámpásokat egy tökmezőn.",
|
||||
"backgrounds112014": "KÉSZLET 6: Kiadva 2014. november",
|
||||
"backgrounds112014": "KÉSZLET 6: Megjelent 2014. november",
|
||||
"backgroundHarvestFeastText": "Aratási ünnep",
|
||||
"backgroundHarvestFeastNotes": "Élvezd az aratási ünnepet.",
|
||||
"backgroundStarrySkiesText": "Csillagos égbolt",
|
||||
"backgroundStarrySkiesNotes": "Bámuld a csillagos égboltot.",
|
||||
"backgroundSunsetMeadowText": "Naplementi rét",
|
||||
"backgroundSunsetMeadowNotes": "Csodáld meg a naplementi rétet.",
|
||||
"backgrounds122014": "KÉSZLET 7: Kiadva 2014 decemberében",
|
||||
"backgroundSunsetMeadowText": "Naplemente egy réten",
|
||||
"backgroundSunsetMeadowNotes": "Csodáld meg a rétet a naplementében.",
|
||||
"backgrounds122014": "KÉSZLET 7: Megjelent 2014. december",
|
||||
"backgroundIcebergText": "Jéghegy",
|
||||
"backgroundIcebergNotes": "Sodródj egy jéghegy hátán.",
|
||||
"backgroundTwinklyLightsText": "Téli ragyogó fények",
|
||||
"backgroundTwinklyLightsNotes": "Sétálj a fényáradatban úszó fák között.",
|
||||
"backgroundSouthPoleText": "Déli-sark",
|
||||
"backgroundSouthPoleNotes": "Látogass el a jeges Déli-sarkra.",
|
||||
"backgrounds012015": "KÉSZLET 8: Kiadva 2015 januárjában",
|
||||
"backgrounds012015": "KÉSZLET 8: Megjelent 2015. január",
|
||||
"backgroundIceCaveText": "Jégbarlang",
|
||||
"backgroundIceCaveNotes": "Ereszkedj le egy jégbarlangba.",
|
||||
"backgroundFrigidPeakText": "Rideg hegycsúcs",
|
||||
"backgroundFrigidPeakNotes": "Mássz meg egy rideg hegycsúcsot.",
|
||||
"backgroundSnowyPinesText": "Havas fenyves",
|
||||
"backgroundSnowyPinesNotes": "Húzódj meg a havas fenyvesben.",
|
||||
"backgrounds022015": "KÉSZLET 9: Kiadva 2015 februárjában",
|
||||
"backgrounds022015": "KÉSZLET 9: Megjelent 2015. február",
|
||||
"backgroundBlacksmithyText": "Kovácsműhely",
|
||||
"backgroundBlacksmithyNotes": "Dolgozz a kovácsműhelyben.",
|
||||
"backgroundCrystalCaveText": "Kristálybarlang",
|
||||
"backgroundCrystalCaveNotes": "Fedezz fel egy kristálybarlangot.",
|
||||
"backgroundDistantCastleText": "Távoli kastély",
|
||||
"backgroundDistantCastleNotes": "Védj meg egy távoli kastélyt.",
|
||||
"backgrounds032015": "KÉSZLET 10: Kiadva 2015 márciusában",
|
||||
"backgrounds032015": "KÉSZLET 10: Megjelent 2015. március",
|
||||
"backgroundSpringRainText": "Tavaszi eső",
|
||||
"backgroundSpringRainNotes": "Táncolj a tavaszi esőben.",
|
||||
"backgroundStainedGlassText": "Ólomüveg",
|
||||
"backgroundStainedGlassNotes": "Csodáld meg az ólomüveget.",
|
||||
"backgroundRollingHillsText": "Lankás dombok",
|
||||
"backgroundRollingHillsNotes": "Ugrándozz a lankás lejtőkön.",
|
||||
"backgrounds042015": "KÉSZLET 11: Kiadva 2015 áprilisában",
|
||||
"backgrounds042015": "KÉSZLET 11: Megjelent 2015. április",
|
||||
"backgroundCherryTreesText": "Cseresznyefák",
|
||||
"backgroundCherryTreesNotes": "Csodáld a virágzó cseresznyefákat.",
|
||||
"backgroundFloralMeadowText": "Virágzó mező",
|
||||
"backgroundFloralMeadowNotes": "Piknikezz egy virágzó mezőn.",
|
||||
"backgroundGumdropLandText": "Gumicukorföld",
|
||||
"backgroundGumdropLandNotes": "Majszolgasd a gumicukorföld tájait.",
|
||||
"backgrounds052015": "KÉSZLET 12: Kiadva 2015 májusában",
|
||||
"backgrounds052015": "KÉSZLET 12: Megjelent 2015. május",
|
||||
"backgroundMarbleTempleText": "Márvány templom",
|
||||
"backgroundMarbleTempleNotes": "Pózolj egy márvány templom előtt.",
|
||||
"backgroundMountainLakeText": "Hegyi tó",
|
||||
"backgroundMountainLakeNotes": "Mártsd bele a lábujjad egy hegyi tóba.",
|
||||
"backgroundPagodasText": "Pagodák",
|
||||
"backgroundPagodasNotes": "Mássz fel a pagodák csúcsáig.",
|
||||
"backgrounds062015": "KÉSZLET 13: Kiadva 2015 júniusában",
|
||||
"backgrounds062015": "KÉSZLET 13: Megjelent 2015. június",
|
||||
"backgroundDriftingRaftText": "Sodródó tutaj",
|
||||
"backgroundDriftingRaftNotes": "Evezz egy sodródó tutajon.",
|
||||
"backgroundShimmeryBubblesText": "Csillogó buborékok",
|
||||
"backgroundShimmeryBubblesNotes": "Lebegj a csillogó buborékok tengerében.",
|
||||
"backgroundIslandWaterfallsText": "Vízesések",
|
||||
"backgroundIslandWaterfallsNotes": "Piknikezz a vízesések közelében.",
|
||||
"backgrounds072015": "KÉSZLET 14: Kiadva 2015 júliusában",
|
||||
"backgroundDilatoryRuinsText": "A halogatás romjai",
|
||||
"backgroundDilatoryRuinsNotes": "Merülj le a Halogatás romjaihoz.",
|
||||
"backgrounds072015": "KÉSZLET 14: Megjelent 2015. július",
|
||||
"backgroundDilatoryRuinsText": "Halogatás városának romjai",
|
||||
"backgroundDilatoryRuinsNotes": "Merülj alá Halogatás város romjaihoz.",
|
||||
"backgroundGiantWaveText": "Óriás hullám",
|
||||
"backgroundGiantWaveNotes": "Lovagolj meg egy óriási hullámot!",
|
||||
"backgroundSunkenShipText": "Elsüllyedt hajó",
|
||||
"backgroundSunkenShipNotes": "Fedezz fel egy elsüllyedt hajót.",
|
||||
"backgrounds082015": "KÉSZLET 15: Kiadva 2015 augusztusában",
|
||||
"backgrounds082015": "KÉSZLET 15: Megjelent 2015. augusztus",
|
||||
"backgroundPyramidsText": "Piramisok",
|
||||
"backgroundPyramidsNotes": "Csodáld meg a piramisokat.",
|
||||
"backgroundSunsetSavannahText": "Naplementi szavanna",
|
||||
"backgroundSunsetSavannahNotes": "Sétálj keresztül a naplementi szavannán.",
|
||||
"backgroundSunsetSavannahText": "Naplemente a szavannán",
|
||||
"backgroundSunsetSavannahNotes": "Osonj át a naplementés szavannán.",
|
||||
"backgroundTwinklyPartyLightsText": "Ragyogó party fények",
|
||||
"backgroundTwinklyPartyLightsNotes": "Táncolj a ragyogó party fények alatt!",
|
||||
"backgrounds092015": "KÉSZLET 16: Kiadva 2015 szeptemberében",
|
||||
"backgroundMarketText": "Habitica piactér",
|
||||
"backgroundMarketNotes": "Vásárolj a Habitica piactéren.",
|
||||
"backgrounds092015": "KÉSZLET 16: Megjelent 2015. szeptember",
|
||||
"backgroundMarketText": "Habitica piac",
|
||||
"backgroundMarketNotes": "Vásárolj a Habitica piacterén.",
|
||||
"backgroundStableText": "Habitica istálló",
|
||||
"backgroundStableNotes": "Hátasok ápolása a Habitica istállóban.",
|
||||
"backgroundTavernText": "Habitica fogadó",
|
||||
"backgroundTavernNotes": "Látogasd meg a Habitica fogadót.",
|
||||
"backgrounds102015": "KÉSZLET 17: Kiadva 2015 októberében",
|
||||
"backgrounds102015": "KÉSZLET 17: Megjelent 2015. október",
|
||||
"backgroundHarvestMoonText": "Telihold",
|
||||
"backgroundHarvestMoonNotes": "Csacsogj a telihold alatt.",
|
||||
"backgroundSlimySwampText": "Iszapos mocsár",
|
||||
"backgroundSlimySwampNotes": "Ballagj át az iszapos mocsáron.",
|
||||
"backgroundSwarmingDarknessText": "Sötétség leple",
|
||||
"backgroundSwarmingDarknessNotes": "Dideregj a sötétség leple alatt.",
|
||||
"backgrounds112015": "KÉSZLET 18: Kiadva 2015 novemberében",
|
||||
"backgrounds112015": "KÉSZLET 18: Megjelent 2015. november",
|
||||
"backgroundFloatingIslandsText": "Lebegő szigetek",
|
||||
"backgroundFloatingIslandsNotes": "Ugrálj keresztül a lebegő szigeteken.",
|
||||
"backgroundNightDunesText": "Éjszakai dűnék",
|
||||
"backgroundNightDunesNotes": "Sétálj békésen az éjszakai dűnék között.",
|
||||
"backgroundSunsetOasisText": "Naplementi oázis",
|
||||
"backgroundSunsetOasisNotes": "Sütkérezz a naplementi oázisban.",
|
||||
"backgroundSunsetOasisText": "Naplemente egy oázisban",
|
||||
"backgroundSunsetOasisNotes": "Sütkérezz a naplementében egy oázisban.",
|
||||
"backgrounds122015": "KÉSZLET 19: Megjelent 2015. december",
|
||||
"backgroundAlpineSlopesText": "Alpesi lejtők",
|
||||
"backgroundAlpineSlopesNotes": "Sielj az alpesi lejtőkön.",
|
||||
"backgroundSnowySunriseText": "Havas napkelte",
|
||||
"backgroundSnowySunriseNotes": "Bámuld a havasi napkeltét.",
|
||||
"backgroundSnowySunriseNotes": "Bámuld a napkeltét a havas tájon.",
|
||||
"backgroundWinterTownText": "Téli város",
|
||||
"backgroundWinterTownNotes": "Siess át egy téli városon.",
|
||||
"backgroundWinterTownNotes": "Nyüzsgés egy téli városban.",
|
||||
"backgrounds012016": "KÉSZLET 20: Megjelent 2016. január",
|
||||
"backgroundFrozenLakeText": "Fagyott tó",
|
||||
"backgroundFrozenLakeText": "Befagyott tó",
|
||||
"backgroundFrozenLakeNotes": "Korcsolyázz egy befagyott tavon.",
|
||||
"backgroundSnowmanArmyText": "Hóember hadsereg",
|
||||
"backgroundSnowmanArmyNotes": "Vezess egy hóember hadsereget.",
|
||||
"backgroundSnowmanArmyNotes": "Vezesd a hóember hadsereget.",
|
||||
"backgroundWinterNightText": "Téli éjszaka",
|
||||
"backgroundWinterNightNotes": "Nézegesd a téli éjszaka csillagait.",
|
||||
"backgrounds022016": "KÉSZLET 21: Megjelent 2016. február",
|
||||
@@ -152,21 +152,21 @@
|
||||
"backgroundGrandStaircaseNotes": "Vonulj le az impozáns lépcsősoron.",
|
||||
"backgrounds032016": "KÉSZLET 22: Megjelent 2016. március",
|
||||
"backgroundDeepMineText": "Mély bánya",
|
||||
"backgroundDeepMineNotes": "Találj értékes rögöket egy mély bányában.",
|
||||
"backgroundDeepMineNotes": "Találj értékes érceket egy mély bányában.",
|
||||
"backgroundRainforestText": "Esőerdő",
|
||||
"backgroundRainforestNotes": "Kalandozz egy esőerdőben.",
|
||||
"backgroundStoneCircleText": "Sziklakör",
|
||||
"backgroundStoneCircleNotes": "Varázsolj egy sziklakörben.",
|
||||
"backgroundRainforestNotes": "Merészkedj be az esőerdőbe.",
|
||||
"backgroundStoneCircleText": "Kőtenger",
|
||||
"backgroundStoneCircleNotes": "Végez varázslatokat egy kőtenger közepén.",
|
||||
"backgrounds042016": "KÉSZLET 23: Megjelent 2016. április",
|
||||
"backgroundArcheryRangeText": "Íjász pálya",
|
||||
"backgroundArcheryRangeNotes": "Gyakorolj az íjász pályán.",
|
||||
"backgroundGiantFlowersText": "Óriás virágok",
|
||||
"backgroundGiantFlowersNotes": "Bolondozz az órás virágok tetején.",
|
||||
"backgroundGiantFlowersNotes": "Szökdécselj az óriás virágok tetején.",
|
||||
"backgroundRainbowsEndText": "A szivárvány vége",
|
||||
"backgroundRainbowsEndNotes": "Találd meg az aranyat a szivárvány tövében.",
|
||||
"backgrounds052016": "KÉSZLET 24: Megjelent 2016. május",
|
||||
"backgroundBeehiveText": "Méhkaptár",
|
||||
"backgroundBeehiveNotes": "Zümmögj és táncolj egy méhkaptárban.",
|
||||
"backgroundBeehiveText": "Méh kaptár",
|
||||
"backgroundBeehiveNotes": "Zümmögj és táncolj egy kaptárban.",
|
||||
"backgroundGazeboText": "Kilátó",
|
||||
"backgroundGazeboNotes": "Harcolj egy kilátóval.",
|
||||
"backgroundTreeRootsText": "Fagyökerek",
|
||||
@@ -174,17 +174,17 @@
|
||||
"backgrounds062016": "KÉSZLET 25: Megjelent 2016. június",
|
||||
"backgroundLighthouseShoreText": "A világítorony partja",
|
||||
"backgroundLighthouseShoreNotes": "Csatangolj a világítorony partján.",
|
||||
"backgroundLilypadText": "Tavirózsa",
|
||||
"backgroundLilypadNotes": "Ugorj rá egy tavirózsára.",
|
||||
"backgroundLilypadText": "Tavirózsa levél",
|
||||
"backgroundLilypadNotes": "Ugrálj egy tavirózsa levélen.",
|
||||
"backgroundWaterfallRockText": "A vízesés sziklája",
|
||||
"backgroundWaterfallRockNotes": "Csobbanj egyet a a vízesés sziklájánál.",
|
||||
"backgrounds072016": "KÉSZLET 26: Megjelent 2016. július",
|
||||
"backgroundAquariumText": "Akvárium",
|
||||
"backgroundAquariumNotes": "Úszkálj egy akváriumban.",
|
||||
"backgroundAquariumNotes": "Lebegj egy akváriumban.",
|
||||
"backgroundDeepSeaText": "Mélytenger",
|
||||
"backgroundDeepSeaNotes": "Merülj le a mélytengerhez.",
|
||||
"backgroundDilatoryCastleText": "A halogatás kastélya",
|
||||
"backgroundDilatoryCastleNotes": "Ússz el a halogatás kastélya mellett.",
|
||||
"backgroundDilatoryCastleText": "Halogatás város kastélya",
|
||||
"backgroundDilatoryCastleNotes": "Ússz el Halogatás városának kastélya mellett.",
|
||||
"backgrounds082016": "KÉSZLET 27: Megjelent 2016. augusztus",
|
||||
"backgroundIdyllicCabinText": "Idillikus bodega",
|
||||
"backgroundIdyllicCabinNotes": "Visszavonulás egy idillikus bodegába.",
|
||||
@@ -252,8 +252,8 @@
|
||||
"backgroundMagicBeanstalkNotes": "Mássz meg egy mágikus paszulyt.",
|
||||
"backgroundMeanderingCaveText": "Kígyózó barlang",
|
||||
"backgroundMeanderingCaveNotes": "Fedezd fel a kigyózó barlangot.",
|
||||
"backgroundMistiflyingCircusText": "Szállongó cirkusz",
|
||||
"backgroundMistiflyingCircusNotes": "Mulass egyet a szállongó cirkuszban.",
|
||||
"backgroundMistiflyingCircusText": "Misztifelhő cirkusz",
|
||||
"backgroundMistiflyingCircusNotes": "Mulass a Misztifelhő cirkuszban.",
|
||||
"backgrounds042017": "KÉSZLET 35: Megjelent 2017. április",
|
||||
"backgroundBugCoveredLogText": "Bogárlepte farönk",
|
||||
"backgroundBugCoveredLogNotes": "Vizsgáld meg a bogárlepte farönköt.",
|
||||
@@ -264,13 +264,13 @@
|
||||
"backgrounds052017": "KÉSZLET 36: Megjelent 2017. május",
|
||||
"backgroundGuardianStatuesText": "Őrszobrok",
|
||||
"backgroundGuardianStatuesNotes": "Állj őrt az őrszobrok előtt.",
|
||||
"backgroundHabitCityStreetsText": "Szokásfalvi utcák",
|
||||
"backgroundHabitCityStreetsNotes": "Fedezd fel Szokásfalva utcáit.",
|
||||
"backgroundHabitCityStreetsText": "Habit város utcái",
|
||||
"backgroundHabitCityStreetsNotes": "Fedezd fel Habit városának utcáit.",
|
||||
"backgroundOnATreeBranchText": "Egy faágon",
|
||||
"backgroundOnATreeBranchNotes": "Gubbassz egy faágon.",
|
||||
"backgrounds062017": "KÉSZLET 37: Megjelent 2017. június",
|
||||
"backgroundBuriedTreasureText": "Elásott kincs",
|
||||
"backgroundBuriedTreasureNotes": "Ésd ki az elásott kincset.",
|
||||
"backgroundBuriedTreasureNotes": "Ásd ki az elásott kincset.",
|
||||
"backgroundOceanSunriseText": "Óceáni napfelkelte",
|
||||
"backgroundOceanSunriseNotes": "Csodáld az óceáni napfelkeltét.",
|
||||
"backgroundSandcastleText": "Homokvár",
|
||||
@@ -294,8 +294,8 @@
|
||||
"backgroundBesideWellNotes": "Sétálj el egy kút mellett.",
|
||||
"backgroundGardenShedText": "Kerti fészer",
|
||||
"backgroundGardenShedNotes": "Dolgozz egy kerti fészerben.",
|
||||
"backgroundPixelistsWorkshopText": "A pixeles műhelye",
|
||||
"backgroundPixelistsWorkshopNotes": "Készíts remekműveket a pixeles műhelyében.",
|
||||
"backgroundPixelistsWorkshopText": "Pixelista műhelye",
|
||||
"backgroundPixelistsWorkshopNotes": "Alkoss mesterműveket a Pixelista műhelyében.",
|
||||
"backgrounds102017": "KÉSZLET 41: Megjelent 2017. október",
|
||||
"backgroundMagicalCandlesText": "Varázslatos gyertyák",
|
||||
"backgroundMagicalCandlesNotes": "Sütkérezz a varázslatos gyertyák fényében.",
|
||||
@@ -325,8 +325,8 @@
|
||||
"backgroundFlyingOverIcySteppesText": "Jeges pusztaság",
|
||||
"backgroundFlyingOverIcySteppesNotes": "Repülj át a jeges pusztaság felett.",
|
||||
"backgrounds022018": "KÉSZLET 45: Megjelent 2018. február",
|
||||
"backgroundChessboardLandText": "Sakktáblaföld",
|
||||
"backgroundChessboardLandNotes": "Játssz egyet sakktáblaföldön.",
|
||||
"backgroundChessboardLandText": "Sakktábla földje",
|
||||
"backgroundChessboardLandNotes": "Játssz egy játékot a sakktábla földjén.",
|
||||
"backgroundMagicalMuseumText": "Varázslatos múzeum",
|
||||
"backgroundMagicalMuseumNotes": "Járd be a varázslatos múzeumot.",
|
||||
"backgroundRoseGardenText": "Rózsakert",
|
||||
@@ -353,8 +353,8 @@
|
||||
"backgroundChampionsColosseumText": "Bajnokok kolosszeuma",
|
||||
"backgroundChampionsColosseumNotes": "Sütkérezz a bajnoki kolosszeum dicsőségében.",
|
||||
"backgrounds062018": "KÉSZLET 49: Megjelent 2018. június",
|
||||
"backgroundDocksText": "Kikötő",
|
||||
"backgroundDocksNotes": "Horgássz a kikötőben.",
|
||||
"backgroundDocksText": "Móló",
|
||||
"backgroundDocksNotes": "Horgássz a móló tetejéről.",
|
||||
"backgroundRowboatText": "Csónak",
|
||||
"backgroundRowboatNotes": "Dalolássz egy csónakban.",
|
||||
"backgroundPirateFlagText": "Kalóz zászló",
|
||||
@@ -362,8 +362,8 @@
|
||||
"backgrounds072018": "KÉSZLET 50: Megjelent 2018. július",
|
||||
"backgroundDarkDeepText": "Sötét mélység",
|
||||
"backgroundDarkDeepNotes": "Ússz a sötét mélységben a foszforeszkáló lények között.",
|
||||
"backgroundDilatoryCityText": "A Halogatás városa",
|
||||
"backgroundDilatoryCityNotes": "Kóborolj a Halogatás vízalatti városában.",
|
||||
"backgroundDilatoryCityText": "Halogatás városa",
|
||||
"backgroundDilatoryCityNotes": "Kóborolj a Halogatás víz alatti városában.",
|
||||
"backgroundTidePoolText": "Pocsolya",
|
||||
"backgroundTidePoolNotes": "Vizsgáld meg az óceáni életformákat egy pocsolya közeléből.",
|
||||
"backgrounds082018": "KÉSZLET 51: Megjelent 2018. augusztus",
|
||||
@@ -375,11 +375,11 @@
|
||||
"backgroundBridgeNotes": "Menj keresztül ezen az elbűvölő hídon.",
|
||||
"backgrounds092018": "KÉSZLET 52: Megjelent 2018. szeptember",
|
||||
"backgroundApplePickingText": "Alma szedés",
|
||||
"backgroundApplePickingNotes": "Menj almát szedni és hozz haza egy vékával.",
|
||||
"backgroundApplePickingNotes": "Menj almát szedni és hozz haza egy vékával.",
|
||||
"backgroundGiantBookText": "Hatalmas könyv",
|
||||
"backgroundGiantBookNotes": "Lapozz végig egy hatalmas könyvet.",
|
||||
"backgroundCozyBarnText": "Hangulatos istálló",
|
||||
"backgroundCozyBarnNotes": "Pihenj a háziállataiddal és a hátasaiddal ebben a hangulatos istállóban.",
|
||||
"backgroundCozyBarnNotes": "Pihenj a kisállataiddal és a hátasaiddal ebben a hangulatos istállóban.",
|
||||
"backgrounds102018": "KÉSZLET 53: Megjelent 2018. október",
|
||||
"backgroundBayouText": "Mocsaras tó",
|
||||
"backgroundBayouNotes": "Sütkérezz a szentjánosbogarak fényében a ködös mocsaras tónál.",
|
||||
@@ -393,7 +393,7 @@
|
||||
"backgroundGlowingMushroomCaveText": "Ragyogó gomba barlang",
|
||||
"backgroundGlowingMushroomCaveNotes": "Hagyd hogy áhitattal töltsön el egy ragyogó gomba barlang.",
|
||||
"backgroundCozyBedroomText": "Hangulatos hálószoba",
|
||||
"backgroundCozyBedroomNotes": "Fészkeld be magad egy hangulatos hálószobába.",
|
||||
"backgroundCozyBedroomNotes": "Fészkeld be magad egy hangulatos hálószobába.",
|
||||
"backgrounds122018": "KÉSZLET 55: Megjelent 2018. december",
|
||||
"backgroundFlyingOverSnowyMountainsText": "Havas hegyek",
|
||||
"backgroundFlyingOverSnowyMountainsNotes": "Suhanj végig a havas hegyek fölött.",
|
||||
@@ -428,7 +428,7 @@
|
||||
"backgroundSucculentGardenNotes": "Csodáld meg a száraz vidék szépségét egy pozsgásokkal teli kertben.",
|
||||
"backgrounds112019": "KÉSZLET 66: Megjelent 2019. november",
|
||||
"backgroundSnowglobeNotes": "Rázd fel a hógömböt és lépj be egy téli táj miniatűr világába.",
|
||||
"backgroundAmidAncientRuinsNotes": "Álld meg tisztelettel a rejtélyes múlt előtt ősi romok között.",
|
||||
"backgroundAmidAncientRuinsNotes": "Állj meg áhítattal a rejtélyes múlt előtt az ősi romok között.",
|
||||
"backgroundInAClassroomText": "Tanterem",
|
||||
"backgroundMonsterMakersWorkshopNotes": "Kísérletezz elfeledett tudományokkal egy szörnykészítő műhelyben.",
|
||||
"backgroundHotAirBalloonText": "Hőlégballon",
|
||||
@@ -439,7 +439,7 @@
|
||||
"backgroundFlyingInAThunderstormText": "Viharos zivatar",
|
||||
"backgroundBlossomingDesertNotes": "Légy tanúja egy ritka virágzásnak a virágzó sivatagban.",
|
||||
"backgroundAnimalCloudsNotes": "Engedd szabadjára a képzeleted és találj állatokat a felhőkben.",
|
||||
"backgroundFarmersMarketNotes": "Vásárolj a legfrissebb élelmiszerekből a Termelői Piacon.",
|
||||
"backgroundFarmersMarketNotes": "Vásárolj a legfrissebb élelmiszerekből a termelői piacon.",
|
||||
"backgroundRainbowMeadowNotes": "Találd meg az aranyat, ahol a szivárvány véget ér egy réten.",
|
||||
"backgroundSchoolOfFishNotes": "Ússz egy halraj között.",
|
||||
"backgroundOldFashionedBakeryText": "Régimódi pékség",
|
||||
@@ -453,7 +453,7 @@
|
||||
"backgroundBirthdayPartyNotes": "Ünnepeld kedvenc Habitica-lakód születésnapi partiját.",
|
||||
"backgroundRainbowMeadowText": "Szivárványos rét",
|
||||
"backgroundRainyBarnyardText": "Esős tanyaudvar",
|
||||
"backgroundBeachCabanaText": "Tengerparti Kabana",
|
||||
"backgroundBeachCabanaText": "Tengerparti kabana",
|
||||
"backgroundHallOfHeroesNotes": "Lépj be tisztelettel és csodálattal a hősök csarnokába.",
|
||||
"backgroundSaltLakeNotes": "Gyönyörködj a sós-tó élénk vörös hullámaiban.",
|
||||
"backgroundStrawberryPatchNotes": "Szedj friss, zamatos epret egy epreskertben.",
|
||||
@@ -474,10 +474,10 @@
|
||||
"backgroundPumpkinCarriageText": "Tökhintó",
|
||||
"backgroundDesertWithSnowNotes": "Csodáld meg egy havas sivatag ritka és csendes szépségét.",
|
||||
"backgrounds032019": "KÉSZLET 58: Megjelent 2019. március",
|
||||
"backgroundLakeWithFloatingLanternsNotes": "Csodáld a csillagokat egy fesztiváli hangulatú, lámpásokkal úszó tónál.",
|
||||
"backgroundLakeWithFloatingLanternsNotes": "Csodáld a csillagokat egy fesztiváli hangulatú tónál, ahol úszó lámpások világítanak.",
|
||||
"backgrounds062019": "KÉSZLET 61: Megjelent 2019. június",
|
||||
"backgroundHalflingsHouseText": "Fél-ling ház",
|
||||
"backgroundBeachCabanaNotes": "Pihenj egy Tengerparti kabana hűs árnyékában.",
|
||||
"backgroundBeachCabanaNotes": "Pihenj egy tengerparti kabana hűs árnyékában.",
|
||||
"backgroundHotAirBalloonNotes": "Emelkedj a táj fölé egy hőlégballonban.",
|
||||
"backgroundDojoNotes": "Tanulj új mozdulatokat egy dojóban.",
|
||||
"backgroundButterflyGardenNotes": "Ünnepelj a beporzókkal egy pillangó kertben.",
|
||||
@@ -510,12 +510,12 @@
|
||||
"backgroundAnimalCloudsText": "Állatfelhők",
|
||||
"backgroundHabitCityRooftopsNotes": "Ugorj kalandvágyón Habit városának tetői között.",
|
||||
"backgroundFieldWithColoredEggsText": "Mező színes tojásokkal",
|
||||
"backgroundLakeWithFloatingLanternsText": "Lámpásokkal úszó tó",
|
||||
"backgroundLakeWithFloatingLanternsText": "Tó úszó lámpásokkal",
|
||||
"backgroundHeatherFieldText": "Hangamező",
|
||||
"backgrounds012020": "KÉSZLET 68: Megjelent 2020. január",
|
||||
"backgrounds022020": "KÉSZLET 69: Megjelent 2020. február",
|
||||
"backgroundWinterNocturneText": "Téli noktürn",
|
||||
"backgroundVikingShipText": "Viking Hajó",
|
||||
"backgroundVikingShipText": "Viking hajó",
|
||||
"backgrounds062020": "KÉSZLET 73: Megjelent 2020. június",
|
||||
"backgrounds072020": "KÉSZLET 74: Megjelent 2020. július",
|
||||
"backgrounds052019": "KÉSZLET 60: Megjelent 2019. május",
|
||||
@@ -542,7 +542,7 @@
|
||||
"backgroundOldTimeyBasketballCourtText": "Régi kosárlabdapálya",
|
||||
"backgroundOldTimeyBasketballCourtNotes": "Dobd a kosarat egy régi kosárlabdapályán.",
|
||||
"backgroundJungleWateringHoleText": "Dzsungelbeli itató",
|
||||
"backgroundJungleWateringHoleNotes": "Állj meg egy friss kortyra egy dzsungelbeli itatónál.",
|
||||
"backgroundJungleWateringHoleNotes": "Állj meg egy kortyra a dzsungel itatónál.",
|
||||
"backgroundMangroveForestText": "Mangroveerdő",
|
||||
"backgroundMangroveForestNotes": "Fedezd fel a mangroveerdő határvidékét.",
|
||||
"backgrounds092024": "KÉSZLET 124: Megjelent 2024. szeptember",
|
||||
@@ -573,8 +573,8 @@
|
||||
"backgrounds112023": "KÉSZLET 114: Megjelent 2023. november",
|
||||
"backgroundGiantCatText": "Óriás macska",
|
||||
"backgroundGiantCatNotes": "Szundíts egy óriás macska mellett.",
|
||||
"backgroundBarrelCellarText": "Borpince",
|
||||
"backgroundBarrelCellarNotes": "Kutasd fel a kulináris finomságokat egy borpincében.",
|
||||
"backgroundBarrelCellarText": "Boros pince",
|
||||
"backgroundBarrelCellarNotes": "Kutasd fel a kulináris finomságokat egy boros pincében.",
|
||||
"backgroundAutumnTreeTunnelText": "Őszi faalagút",
|
||||
"backgroundAutumnTreeTunnelNotes": "Gyönyörködj egy őszi faalagút szépségében.",
|
||||
"backgrounds042023": "KÉSZLET 107: Megjelent 2023. április",
|
||||
@@ -624,7 +624,7 @@
|
||||
"backgroundRockGardenText": "Sziklakert",
|
||||
"backgroundRockGardenNotes": "Lazíts egy sziklakertben.",
|
||||
"backgrounds052021": "KÉSZLET 84: Megjelent 2021. május",
|
||||
"backgroundWindmillsNotes": "Pattanj lóra, és vívj meg a szélmalmokkal.",
|
||||
"backgroundWindmillsNotes": "Pattanj lóra és vívj meg a szélmalmokkal.",
|
||||
"backgroundGhostShipText": "Szellemhajó",
|
||||
"backgrounds122023": "KÉSZLET 115: Megjelent 2023. december",
|
||||
"backgroundHolidayTreeForestText": "Ünnepi fák erdeje",
|
||||
@@ -671,9 +671,9 @@
|
||||
"backgroundStoneTowerNotes": "Pillants át egy kőtorony bástyájáról egy másikra.",
|
||||
"backgroundElegantGardenText": "Elegáns kert",
|
||||
"backgrounds082020": "KÉSZLET 75: Megjelent 2020. augusztus",
|
||||
"backgroundAutumnLakeshoreNotes": "Állj meg egy őszi tóparton és csodáld meg az erdők víztükrön tükröződő képét.",
|
||||
"backgroundAutumnLakeshoreNotes": "Állj meg egy őszi tóparton és csodáld meg az erdő víztükrön tükröződő képét.",
|
||||
"backgroundRainbowEucalyptusNotes": "Ámulj egy szivárvány eukaliptuszliget szépségén.",
|
||||
"backgroundSplashInAPuddleText": "Tócsában csapkodva",
|
||||
"backgroundSplashInAPuddleText": "Tócsában pancsolás",
|
||||
"backgroundWaterMillNotes": "Figyeld, ahogy a vízimalom kereke újra és újra forog.",
|
||||
"backgroundOrangeGroveNotes": "Sétálj végig egy illatos narancsligetben.",
|
||||
"backgrounds052023": "KÉSZLET 108: Megjelent 2023. május",
|
||||
@@ -695,9 +695,9 @@
|
||||
"backgroundOnACastleWallNotes": "Tekints le egy kastélyfalról.",
|
||||
"backgroundCastleGateText": "Kastélykapu",
|
||||
"backgroundCastleGateNotes": "Őrködj a kastélykapunál.",
|
||||
"backgroundEnchantedMusicRoomText": "Varázslatos Zeneszoba",
|
||||
"backgroundEnchantedMusicRoomText": "Varázslatos zeneszoba",
|
||||
"backgroundEnchantedMusicRoomNotes": "Játssz egy varázslatos zeneszobában.",
|
||||
"backgroundSpookyScarecrowFieldNotes": "Bizonyítsd be, hogy bátrabb vagy, mint egy madár, és lépj be a hátborzongató madárijesztős mezőre.",
|
||||
"backgroundSpookyScarecrowFieldNotes": "Bizonyítsd be, hogy bátrabb vagy mint egy madár és lépj be a hátborzongató madárijesztős mezőre.",
|
||||
"backgroundFlyingOverAnAutumnForestNotes": "Gyönyörködj a színes lombkoronában, miközben egy őszi erdő felett repülsz.",
|
||||
"backgroundElegantGardenNotes": "Sétálj végig egy elegáns kert gondosan ápolt ösvényein.",
|
||||
"backgroundWindmillsText": "Szélmalmok",
|
||||
@@ -717,7 +717,7 @@
|
||||
"backgrounds082021": "KÉSZLET 87: Megjelent 2021. augusztus",
|
||||
"backgroundInsideAnOrnamentNotes": "Ragyogjon az ünnepi hangulatod egy díszgömb belsejéből.",
|
||||
"backgroundMysticalObservatoryNotes": "Olvasd ki a sorsodat a csillagokból egy misztikus obszervatóriumban.",
|
||||
"backgroundSplashInAPuddleNotes": "Élvezd a vihar utóhatását egy jó kis tócsacsapkodással.",
|
||||
"backgroundSplashInAPuddleNotes": "Élvezd a vihar utóhatását egy tócsában pancsolva.",
|
||||
"backgroundAfternoonPicnicNotes": "Élvezd a délutáni pikniket egyedül vagy kisállatod társaságában.",
|
||||
"backgroundInTheArmoryNotes": "Szerelkezz fel a fegyvertárban.",
|
||||
"backgroundUnderwaterRuinsNotes": "Fedezd fel a rég elsüllyedt víz alatti romokat.",
|
||||
@@ -730,7 +730,7 @@
|
||||
"backgroundUnderwaterAmongKoiNotes": "Ragyogj és hagyd magad elkápráztatni a víz alatt csillogó koi halak között.",
|
||||
"backgroundMysticalObservatoryText": "Misztikus obszervatórium",
|
||||
"backgroundVineyardText": "Szőlőskert",
|
||||
"backgroundWintryCastleNotes": "Pillants meg egy téli kastélyt a hideg ködön át.",
|
||||
"backgroundWintryCastleNotes": "Pillants be egy téli kastélyba a hűvös ködön át.",
|
||||
"backgroundSwimmingAmongJellyfishText": "Médúzák között úszva",
|
||||
"backgroundJungleCanopyNotes": "Csodáld a dzsungel forró, buja szépségét a lombkorona szintjén.",
|
||||
"backgroundHolidayHearthText": "Ünnepi kandalló",
|
||||
@@ -751,7 +751,7 @@
|
||||
"backgroundCottageConstructionText": "Épülő faház",
|
||||
"backgroundDragonsLairNotes": "Próbáld meg nem felébreszteni a sárkánybarlang lakóját.",
|
||||
"backgrounds092020": "KÉSZLET 76: Megjelent 2020. szeptember",
|
||||
"backgroundGingerbreadHouseNotes": "Élvezd a látványt, az illatokat, és ha mersz, az ízeket egy mézeskalács házban.",
|
||||
"backgroundGingerbreadHouseNotes": "Élvezd a Mézeskalácsház látványát, illatát és ha mered az ízét is!",
|
||||
"backgrounds092022": "KÉSZLET 100: Megjelent 2022. szeptember",
|
||||
"backgroundTheatreStageText": "Színházi színpad",
|
||||
"backgroundTheatreStageNotes": "Lépj fel egy színházi színpadon.",
|
||||
@@ -794,7 +794,7 @@
|
||||
"backgroundUnderwaterRuinsText": "Víz alatti romok",
|
||||
"backgroundRiverOfLavaText": "Lávafolyó",
|
||||
"backgrounds112020": "KÉSZLET 78: Megjelent 2020. november",
|
||||
"backgroundCrescentMoonText": "Sarló Hold",
|
||||
"backgroundCrescentMoonText": "Sarló hold",
|
||||
"backgroundUnderwaterAmongKoiText": "Víz alatt a koi halak között",
|
||||
"backgroundFlyingOverGlacierText": "Repülés egy gleccser felett",
|
||||
"backgroundRestingInTheInnText": "Pihenés a fogadóban",
|
||||
@@ -833,14 +833,14 @@
|
||||
"backgroundFortuneTellersShopText": "Jósda",
|
||||
"backgroundFortuneTellersShopNotes": "Kutasd a jövő titokzatos jeleit egy jósdában.",
|
||||
"backgroundInsideAPotionBottleText": "Bájitalos üveg belsejében",
|
||||
"backgroundInsideAPotionBottleNotes": "Pillants ki az üvegfalon, miközben reménykedsz a megmenekülésben egy bájitalos üveg belsejéből.",
|
||||
"backgroundInsideAPotionBottleNotes": "Pillants ki az üvegen át, miközben a megmentésben reménykedsz egy főzetes palack belsejéből.",
|
||||
"backgroundSpiralStaircaseText": "Csigalépcső",
|
||||
"backgrounds042022": "KÉSZLET 95: Megjelent 2022. április",
|
||||
"backgrounds102021": "KÉSZLET 89: Megjelent 2021. október",
|
||||
"backgroundCrypticCandlesText": "Rejtélyes gyertyák",
|
||||
"backgroundCrypticCandlesNotes": "Idézz meg misztikus erőket rejtélyes gyertyák között.",
|
||||
"backgroundCrypticCandlesNotes": "Idézz meg misztikus erőket a rejtélyes gyertyák között.",
|
||||
"backgroundHauntedPhotoText": "Kísértetjárta fotó",
|
||||
"backgroundHauntedPhotoNotes": "Találd magad csapdában egy kísértetjárta fotó fekete-fehér világában.",
|
||||
"backgroundHauntedPhotoNotes": "Találd magad csapdában, egy kísértetjárta fotó fekete-fehér világában.",
|
||||
"backgroundUndeadHandsText": "Élőholtak kezei",
|
||||
"backgroundUndeadHandsNotes": "Próbálj kiszabadulni az élőholtak kezeinek szorításából.",
|
||||
"backgroundSpringtimeLakeText": "Tavaszi tó",
|
||||
@@ -848,9 +848,9 @@
|
||||
"backgroundRestingInTheInnNotes": "Dolgozz a szoba kényelméből és biztonságából, miközben a fogadóban pihensz.",
|
||||
"backgroundHeartShapedBubblesText": "Szív alakú buborékok",
|
||||
"backgrounds092021": "KÉSZLET 88: Megjelent 2021. szeptember",
|
||||
"backgroundSpiralStaircaseNotes": "Mássz fel és le, körbe-körbe egy csigalépcsőn.",
|
||||
"backgroundSpiralStaircaseNotes": "Mássz fel és le és körbe-körbe egy csigalépcsőn.",
|
||||
"backgroundSnowyFarmText": "Havas tanyasi udvar",
|
||||
"backgroundSnowyFarmNotes": "Győződj meg róla, hogy mindenki jól és melegen van a havas tanyán.",
|
||||
"backgroundSnowyFarmNotes": "Ellenőrizd, hogy mindenki jól van és melegen tartja magát a havas farmodon.",
|
||||
"backgroundFloweringPrairieNotes": "Szökdécselj egy virágzó réten.",
|
||||
"backgroundBlossomingTreesText": "Virágzó fák",
|
||||
"backgroundBlossomingTreesNotes": "Pihenj meg virágzó fák árnyékában.",
|
||||
@@ -871,15 +871,15 @@
|
||||
"backgroundMovingDayNotes": "Pakolj össze a költözés napjára.",
|
||||
"backgroundCoveredBridgeInAutumnText": "Fedett híd ősszel",
|
||||
"backgroundCoveredBridgeInAutumnNotes": "Kelj át egy fedett hídon ősszel.",
|
||||
"backgroundBaobabForestText": "Majomkenyérfa Erdő",
|
||||
"backgroundBaobabForestText": "Majomkenyérfa erdő",
|
||||
"backgroundBaobabForestNotes": "Ámulj a majomkenyérfák lenyűgöző látványán.",
|
||||
"backgrounds062023": "KÉSZLET 109: Megjelent 2023. június",
|
||||
"backgroundInAnAquariumText": "Egy akváriumban",
|
||||
"backgroundInAnAquariumNotes": "Ússz békésen a halak között egy akváriumban.",
|
||||
"backgroundInsideAdventurersHideoutText": "Egy kalandor rejtekhelyén",
|
||||
"backgroundInsideAdventurersHideoutNotes": "Tervezd meg a következő utadat egy kalandor rejtekhelyén.",
|
||||
"backgroundCraterLakeText": "Krátertó",
|
||||
"backgroundCraterLakeNotes": "Gyönyörködj egy festői krátertó látványában.",
|
||||
"backgroundCraterLakeText": "Kráter tó",
|
||||
"backgroundCraterLakeNotes": "Gyönyörködj egy festői kráter tó látványában.",
|
||||
"backgroundClocktowerText": "Óratorony",
|
||||
"backgrounds072023": "KÉSZLET 110: Megjelent 2023. július",
|
||||
"backgroundOnAPaddlewheelBoatText": "Lapátkerekes hajón",
|
||||
@@ -895,7 +895,7 @@
|
||||
"backgroundMonstrousCaveNotes": "Tekints be egy szörnybarlang tátongó szájába.",
|
||||
"backgroundJackOLanternStacksText": "Tök lámpások halmai",
|
||||
"backgroundJackOLanternStacksNotes": "Csodáld meg a tök lámpásokkal teli mezőt.",
|
||||
"backgrounds032025": "KÉSZLET 130: Kiadva 2025. március",
|
||||
"backgrounds032025": "KÉSZLET 130: Megjelent 2025. március",
|
||||
"backgroundMountainSceneWithBlossomsText": "Hegyi táj virágokkal",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Merülj el a hegyi táj virágaival és élvezd a gyönyörű látványt és illatokat."
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
"challenge": "Kihívás",
|
||||
"challengeDetails": "A kihívások olyan közösségi események, ahol a játékosok egymáshoz kötődő feladatokat teljesítenek és díjakat nyernek.",
|
||||
"brokenChaLink": "Érvénytelen kihívás link",
|
||||
"brokenTask": "Érvénytelen kihívás link: ez a feladat része volt egy kihívásnak, de a kihívásból törölték. Mit szeretnél csinálni vele?",
|
||||
"brokenTask": "Érvénytelen kihívás link: ez a feladat egy kihívás része volt, de eltávolították belőle. Mit szeretnél tenni?",
|
||||
"keepIt": "Megtartom",
|
||||
"removeIt": "Eltávolítom",
|
||||
"brokenChallenge": "Érvénytelen kihívás link: ez a feladat része volt egy kihívásnak, de a kihívást (vagy a csoportot) törölték. Mit szeretnél csinálni a megmaradó feladatokkal?",
|
||||
"challengeCompleted": "A kihívás véget ért, a nyertes: <span class=\"badge\"><%- user %></span>! Mit szeretnél csinálni a megmaradó feladatokkal?",
|
||||
"unsubChallenge": "Érvénytelen kihívás link: ez a feladat része volt egy kihívásnak, de te leiratkoztál róla. Mit szeretnél csinálni a megmaradó feladatokkal?",
|
||||
"brokenChallenge": "Érvénytelen kihívás link: ez a feladat egy kihívás része volt, de a kihívást (vagy a csoportot) törölték. Mit tegyünk a megmaradó feladatokkal?",
|
||||
"challengeCompleted": "Ez a kihívás befejeződött és a győztes <span class=\"badge\"><%- user %></span> lett! Mit tegyünk a megmaradó feladatokkal?",
|
||||
"unsubChallenge": "Érvénytelen kihívás link: ez a feladat egy kihívás része volt, de leiratkoztál róla. Mit tegyünk a megmaradó feladatokkal?",
|
||||
"challenges": "Kihívások",
|
||||
"endDate": "Vége",
|
||||
"selectWinner": "Válassz győztest és zárd le a kihívást:",
|
||||
@@ -17,32 +17,32 @@
|
||||
"category": "Kategória",
|
||||
"membership": "Tagság",
|
||||
"ownership": "Tulajdonos",
|
||||
"participating": "Részt vesz",
|
||||
"participating": "Résztvevő",
|
||||
"createChallenge": "Kihívás létrehozása",
|
||||
"createChallengeAddTasks": "Kihíváshoz tartozó feladat hozzáadása",
|
||||
"createChallengeCloneTasks": "Kihíváshoz tartozó feladatok másolása",
|
||||
"createChallengeAddTasks": "Kihívásfeladatok hozzáadása",
|
||||
"createChallengeCloneTasks": "Kihívásfeladatok másolása",
|
||||
"challengeTag": "Címke neve",
|
||||
"prize": "Jutalom",
|
||||
"publicChallengesTitle": "Nyilvános kihívások",
|
||||
"officialChallenge": "Hivatalos Habitica kihívás",
|
||||
"by": "által",
|
||||
"participants": "<%= membercount %> résztvevők",
|
||||
"join": "Csatlakozom",
|
||||
"by": "készítette",
|
||||
"participants": "<%= membercount %> résztvevő",
|
||||
"join": "Csatlakozás",
|
||||
"challengeCreated": "Kihívás létrehozva",
|
||||
"sureDelCha": "Biztos vagy benne, hogy törölni akarod ezt a kihívást?",
|
||||
"sureDelCha": "Biztosan törölni szeretnéd ezt a kihívást?",
|
||||
"keepTasks": "Feladatok megtartása",
|
||||
"owned": "Saját",
|
||||
"not_owned": "Nem saját",
|
||||
"not_participating": "Nem vesz részt",
|
||||
"not_participating": "Nem veszek részt",
|
||||
"clone": "Másol",
|
||||
"hurray": "Hurrá!",
|
||||
"noChallengeOwner": "nincs tulajdonosa",
|
||||
"challengeMemberNotFound": "Ez a felhasználó nem található a kihívás résztvevői között",
|
||||
"onlyGroupLeaderChal": "Csak a csapatvezető hozhat létre kihívásokat",
|
||||
"tavChalsMinPrize": "A jutalomnak legalább 1 drágakőnek kell lennie nyilvános kihívás létrehozásához.",
|
||||
"cantAfford": "Ezt a jutalmat nem engedheted meg magadnak. Vásárolj több drágakövet vagy csökkentsd a jutalom nagyságát.",
|
||||
"challengeIdRequired": "\"challengeId\" valódi UUID-nek kell lennie.",
|
||||
"winnerIdRequired": "\"winnerId\" valódi UUID-nek kell lennie.",
|
||||
"challengeMemberNotFound": "A felhasználó nem található a kihívás résztvevői között",
|
||||
"onlyGroupLeaderChal": "Csak a csoportvezető hozhat létre kihívásokat",
|
||||
"tavChalsMinPrize": "A jutalomnak legalább 1 gyémántnak kell lennie nyilvános kihívások esetén.",
|
||||
"cantAfford": "Nem engedheted meg magadnak ezt a nyereményt. Vásárolj több gyémántot vagy csökkentsd a jutalom összegét.",
|
||||
"challengeIdRequired": "A \"challengeId\"-nak érvényes UUID-nek kell lennie.",
|
||||
"winnerIdRequired": "A \"winnerId\"-nek érvényes UUID-nak kell lennie.",
|
||||
"challengeNotFound": "A kihívás nem található vagy nincs hozzáférési jogosultságod.",
|
||||
"onlyLeaderDeleteChal": "Csak a kihívás vezetője törölheti ezt.",
|
||||
"onlyLeaderUpdateChal": "Csak a kihívás vezetője írhatja ezt felül.",
|
||||
@@ -55,8 +55,8 @@
|
||||
"myChallenges": "Saját kihívásaim",
|
||||
"findChallenges": "Kihívások böngészése",
|
||||
"noChallengeTitle": "Nem veszel részt egy kihívásban sem.",
|
||||
"challengeDescription2": "Találj kihívásokat az érdeklődési köreid alapján, böngészd a Habitica nyilvános kihívásait, vagy hozd létre a sajátodat.",
|
||||
"noChallengeMatchFilters": "Nem találtunk ehhez tartozó kihívást.",
|
||||
"challengeDescription2": "Találj ajánlott kihívásokat az érdeklődésed alapján, böngészd Habitica nyilvános kihívásait vagy hozz létre sajátot.",
|
||||
"noChallengeMatchFilters": "Nem találtunk a szűrési feltételeidnek megfelelő kihívásokat.",
|
||||
"createdBy": "Készítette",
|
||||
"joinChallenge": "Csatlakozás kihíváshoz",
|
||||
"leaveChallenge": "Kihívás elhagyása",
|
||||
@@ -65,48 +65,48 @@
|
||||
"challengeDescription": "Kihívás leírása",
|
||||
"selectChallengeWinnersDescription": "Nyertes kiválasztása a kihívásban résztvevő felhasználók közül",
|
||||
"awardWinners": "Nyertes",
|
||||
"doYouWantedToDeleteChallenge": "Ki akarod törölni ezt a kihívást?",
|
||||
"doYouWantedToDeleteChallenge": "Biztosan törölni szeretnéd ezt a kihívást?",
|
||||
"deleteChallenge": "Kihívás törlése",
|
||||
"challengeNamePlaceholder": "Mi a kihívásod neve?",
|
||||
"challengeSummary": "Összefoglalás",
|
||||
"challengeSummaryPlaceholder": "Írj egy rövid leírást a Habitica többi lakójának a kihívásodról. Mi a kihívás célja és miért csatlakozzanak hozzá az emberek? Próbálj hasznos kulcsszavakat írni a leírásba, hogy a Habitica lakói könnyen megtalálják a keresővel!",
|
||||
"challengeDescriptionPlaceholder": "Használd ezt a részt arra, hogy kifejtsd mit kell a résztvevőknek tudni a kihívásodról.",
|
||||
"challengeDescriptionPlaceholder": "Ebben a részben részletesebben kifejtheted mindazt, amit a kihívás résztvevőinek tudniuk kell.",
|
||||
"challengeGuild": "Hozzáadás",
|
||||
"challengeMinimum": "Legalább 1 drágakő nyilvános kihívásokra (segít megelőzni a spamot, de tényleg).",
|
||||
"challengeMinimum": "Legalább 1 gyémánt szükséges nyilvános kihívásokhoz (ez segít megelőzni a spamelést, tényleg!).",
|
||||
"participantsTitle": "Résztvevők",
|
||||
"shortName": "Rövid cím",
|
||||
"shortNamePlaceholder": "Milyen rövid címkével legyen a kihívásod beazonosítható?",
|
||||
"shortNamePlaceholder": "Milyen rövid címkét használjunk a kihívás azonosítására?",
|
||||
"updateChallenge": "Kihívás frissítése",
|
||||
"haveNoChallenges": "Ebben a csoportban nincsenek kihívások",
|
||||
"loadMore": "Több betöltése",
|
||||
"loadMore": "Továbbiak betöltése",
|
||||
"exportChallengeCsv": "Kihívás exportálása",
|
||||
"editingChallenge": "Kihívás szerkesztése",
|
||||
"nameRequired": "Név szükséges",
|
||||
"tagTooShort": "Címke túl rövid",
|
||||
"summaryRequired": "Összefoglalás szükséges",
|
||||
"summaryTooLong": "Összefoglalás túl hosszú",
|
||||
"descriptionRequired": "Leírás szükséges",
|
||||
"locationRequired": "Kihívás helyének kiválasztása szükséges ('Hozzáadás')",
|
||||
"categoiresRequired": "Egy vagy több katergória kiválasztás kötelező",
|
||||
"viewProgressOf": "Állapot megtekintése",
|
||||
"viewProgress": "Állapot megtekintése",
|
||||
"nameRequired": "A név megadása kötelező",
|
||||
"tagTooShort": "A címke neve túl rövid",
|
||||
"summaryRequired": "Az összefoglaló megadása kötelező",
|
||||
"summaryTooLong": "Az összefoglaló túl hosszú",
|
||||
"descriptionRequired": "A leírás megadása kötelező",
|
||||
"locationRequired": "A kihívás helyszíne szükséges ('Hozzáadás')",
|
||||
"categoiresRequired": "Legalább egy kategóriát ki kell választani",
|
||||
"viewProgressOf": "Előrehaladás megtekintése",
|
||||
"viewProgress": "Előrehaladás megtekintése",
|
||||
"selectMember": "Tag kiválasztása",
|
||||
"confirmKeepChallengeTasks": "Meg akarod tartani a kihíváshoz tartozó feladatokat?",
|
||||
"selectParticipant": "Válassz ki egy résztvevőt",
|
||||
"wonChallengeDesc": "<%= challengeName %> kihívás győztese vagy! Győzelmedet a kitüntetések között megtalálhatod.",
|
||||
"confirmKeepChallengeTasks": "Szeretnéd megtartani a kihívás feladatait?",
|
||||
"selectParticipant": "Résztvevő kiválasztása",
|
||||
"wonChallengeDesc": "A(z) <%= challengeName %> kihívás téged választott nyertesnek! Győzelmed bekerült a kitüntetéseid közé.",
|
||||
"yourReward": "Jutalmad",
|
||||
"filters": "Szűrők",
|
||||
"abuseFlagModalBodyChallenge": "Csak olyan kihívást jelents, amelyik megsérti a <%= firstLinkStart %>Közösségi irányelveket<%= linkEnd %> és/vagy a <%= secondLinkStart %>Felhasználási feltételeket<%= linkEnd %>. A hamis bejelntések sértik a Habitica közösségi irányelveit.",
|
||||
"cannotClone": "Ezt a kihívást nem lehet klónozni mert egy vagy több játékos sértőnek ítélte. A személyzet egyik taga hamarosan felveszi veled a kapcsolatot. Ha 48 órán belül nem hallasz felőlünk, kérlek keress minket az admin@habitica.com címen.",
|
||||
"messageChallengeFlagOfficial": "A hivatalos kihívások jelentése nem lehetséges.",
|
||||
"flaggedAndHidden": "Kihívás megjelölve és elrejtve",
|
||||
"cannotClose": "Ezt a kihívást nem lehet lezárni mert egy vagy több játékos sértőnek ítélte. A személyzet egyik taga hamarosan felveszi veled a kapcsolatot. Ha 48 órán belül nem hallasz felőlünk, kérlek keress minket az admin@habitica.com címen.",
|
||||
"messageChallengeFlagAlreadyReported": "Már jelentetted ezt a Kihívást.",
|
||||
"flaggedNotHidden": "Kihívás megjelölve egyszer, nincs elrejtve",
|
||||
"abuseFlagModalBodyChallenge": "Csak olyan kihívást jelents, amely megsérti a <%= firstLinkStart %>Közösségi irányelveket<%= linkEnd %> és/vagy a <%= secondLinkStart %>Felhasználási feltételeket<%= linkEnd %>. Hamis jelentés beküldése a Habitica Közösségi irányelveinek megsértését jelenti.",
|
||||
"cannotClone": "Ezt a kihívást nem lehet lemásolni, mert egy vagy több játékos kifogásolta. Egy munkatárs hamarosan felveszi veled a kapcsolatot további utasításokkal. Ha több mint 48 óra telt el, és még nem kaptál választ, írj az admin@habitica.com címre segítségért.",
|
||||
"messageChallengeFlagOfficial": "Hivatalos kihívásokat nem lehet jelenteni.",
|
||||
"flaggedAndHidden": "A kihívás jelentve és elrejtve",
|
||||
"cannotClose": "Ezt a kihívást nem lehet lezárni, mert egy vagy több játékos kifogásolta. Egy munkatárs hamarosan felveszi veled a kapcsolatot további utasításokkal. Ha több mint 48 óra telt el, és még nem kaptál választ, írj az admin@habitica.com címre segítségért.",
|
||||
"messageChallengeFlagAlreadyReported": "Ezt a kihívást már jelentetted.",
|
||||
"flaggedNotHidden": "A kihívás egyszer jelentve lett, de nincs elrejtve",
|
||||
"whyReportingChallenge": "Miért jelented ezt a kihívást?",
|
||||
"resetFlagCount": "Megjelölések lenullázása",
|
||||
"whyReportingChallengePlaceholder": "Bejelentés oka",
|
||||
"resetFlags": "Jelölések visszaállítása",
|
||||
"cannotMakeChallenge": "Jelenleg nem tudsz publikus kihívásokat létrehozni, mert nem rendelkezel chat jogosultsággal. További információért kérlek keress minket az admin@habitica.com címen.",
|
||||
"resetFlagCount": "Jelentések számlálójának visszaállítása",
|
||||
"whyReportingChallengePlaceholder": "A jelentés oka",
|
||||
"resetFlags": "Jelentések visszaállítása",
|
||||
"cannotMakeChallenge": "Nem hozhatsz létre nyilvános kihívásokat, mert a fiókod jelenleg nem rendelkezik csevegési jogosultságokkal. További információért lépj kapcsolatba az admin@habitica.com címen.",
|
||||
"removeTasks": "Feladat eltávolítása"
|
||||
}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"communityGuidelinesWarning": "Kérjük vedd figyelembe a <a href='https://habitica.com/static/community-guidelines' target='_blank'>Közösségi irányelveinket</a> a nyilvános neved és a profil képed kiválasztásánál, valamint a bemutatkozó szöveged megfogalmazásánál (például ne legyen benne káromkodás, felnőtt témájú szöveg, inzultáló kifejezések, stb.). Ha nem vagy biztos abban hogy valami ezekbe a kategóriákba esik, nyugodtan küldj egy üzenetet a <%= hrefBlankCommunityManagerEmail %> e-mail címre!",
|
||||
"communityGuidelinesWarning": "Kérlek, vedd figyelembe, hogy a megjelenített nevednek, profilképednek és bemutatkozásodnak meg kell felelnie a <a href='https://habitica.com/static/community-guidelines' target='_blank'>Közösségi irányelveknek</a> (pl. tilos a trágár nyelvezet, felnőtt témák, sértések stb.). Ha bizonytalan vagy, hogy valami megfelelő-e, nyugodtan írj e-mailt a következő címre: <%= hrefBlankCommunityManagerEmail %>!",
|
||||
"profile": "Profil",
|
||||
"avatar": "Avatár személyreszabása",
|
||||
"editAvatar": "Avatár testreszabása",
|
||||
"noDescription": "Ez a Habitica lakos még nem adott meg leírást.",
|
||||
"noPhoto": "Ez a Habitica lakos még nem adott meg fotót.",
|
||||
"noDescription": "Ez a Habitica lakos még nem adott meg bemutatkozást.",
|
||||
"noPhoto": "Ez a Habitica lakos még nem töltött fel képet.",
|
||||
"other": "Egyéb",
|
||||
"fullName": "Teljes név",
|
||||
"displayName": "Nyilvános név",
|
||||
"changeDisplayName": "Nyilvános név megváltoztatása",
|
||||
"newDisplayName": "Új nyilvános név",
|
||||
"displayName": "Megjelenített név",
|
||||
"changeDisplayName": "Megjelenített név megváltoztatása",
|
||||
"newDisplayName": "Új megjelenített név",
|
||||
"displayBlurbPlaceholder": "Kérlek mutatkozz be",
|
||||
"photoUrl": "Fotó link",
|
||||
"imageUrl": "Kép link",
|
||||
"inventory": "Tárgylista",
|
||||
"photoUrl": "Fotó URL",
|
||||
"imageUrl": "Kép URL",
|
||||
"inventory": "Leltár",
|
||||
"social": "Közösség",
|
||||
"lvl": "Szint",
|
||||
"buffed": "Megerősített",
|
||||
@@ -61,43 +61,43 @@
|
||||
"costumeDisabled": "Letiltottad a jelmezed.",
|
||||
"gearAchievement": "Megszerezted a \"Végső felszerelés\" kitüntetést, amiért megszerezted egy kaszthoz tartozó összes felszerelést! A következő teljes felszereléseket szerezted meg eddig:",
|
||||
"gearAchievementNotification": "Megszerezted a \"Végső felszerelés\" kitüntetést, amiért megszerezted egy kaszthoz tartozó összes felszerelést!",
|
||||
"moreGearAchievements": "Hogy még több Végső felszerelés kitűzőt szerezz, változtasd meg a kasztodat a <a href='/user/settings/site' target='_blank'> Beállítások - Oldal</a> menüpontban, és vásárold meg az új kasztod felszerelését!",
|
||||
"armoireUnlocked": "Több felszerelésért látogasd meg az <strong>elvarázsolt ládát!</strong> Kattints az elvarázsolt láda jutalomra, hogy véletlenszerűen speciális felszerelést, tapasztalatot vagy élelmet kapjál.",
|
||||
"moreGearAchievements": "További Végső felszerelés jelvények megszerzéséhez válts kasztot a <a href='/user/settings/site' target='_blank'>Beállítások > Általános</a> oldalon, és vásárold meg az új kasztod felszerelését!",
|
||||
"armoireUnlocked": "További felszerelésekért nézd meg a <strong>Megbűvölt komódot!</strong> Kattints a Megbűvölt komód jutalomra, hogy véletlenszerű eséllyel különleges felszerelést szerezz! Emellett véletlenszerű TP-t vagy élelmet is kaphatsz.",
|
||||
"ultimGearName": "Végső felszerelés - <%= ultClass %>",
|
||||
"ultimGearText": "A <%= ultClass %> kaszthoz tartozó legnagyobb számú fegyver és páncél szettre frissítve.",
|
||||
"ultimGearText": "Elérte a maximális fegyver- és páncélszettet a(z) <%= ultClass %> kasztban.",
|
||||
"level": "Szint",
|
||||
"levelUp": "Szintlépés!",
|
||||
"gainedLevel": "Szintet léptél!",
|
||||
"leveledUp": "A valós céljaid elvégzésével, elérted a <strong> <%= level %> szintet!</strong>",
|
||||
"leveledUp": "A való életbeli céljaid teljesítésével elérted a <strong><%= level %>. szintet!</strong>",
|
||||
"huzzah": "Hurrá!",
|
||||
"mana": "Mana",
|
||||
"hp": "ÉE",
|
||||
"hp": "ÉP",
|
||||
"mp": "MP",
|
||||
"xp": "TP",
|
||||
"health": "Életerő",
|
||||
"allocateStr": "Erőre kiosztott pontok:",
|
||||
"allocateStr": "Erőhöz rendelt pontok:",
|
||||
"allocateStrPop": "Pont hozzáadása erőhöz",
|
||||
"allocateCon": "Szívósságra kiosztott pontok:",
|
||||
"allocateCon": "Szívóssághoz rendelt pontok:",
|
||||
"allocateConPop": "Pont hozzáadása szívóssághoz",
|
||||
"allocatePer": "Észlelésre kiosztott pontok:",
|
||||
"allocatePer": "Észleléshez rendelt pontok:",
|
||||
"allocatePerPop": "Pont hozzáadása észleléshez",
|
||||
"allocateInt": "Intelligenciára kiosztott pontok:",
|
||||
"allocateInt": "Intelligenciához rendelt pontok:",
|
||||
"allocateIntPop": "Pont hozzáadása intelligenciádhoz",
|
||||
"noMoreAllocate": "Most, hogy elérted a 100. szintet, több tulajdonság pontot már nem kapsz. Továbbra is szintet léphetsz vagy új kalandba kezdhetsz az 1. szintről a <a href='/shops/market'>Újjászületés gömbjének</a> használatával!",
|
||||
"noMoreAllocate": "Most, hogy elérted a 100. szintet, többé nem kapsz tulajdonságpontokat. Folytathatod a szintlépést vagy egy új kalandba kezdhetsz 1. szinten az <a href='/shops/market'>Újjászületés gömbjének</a> használatával!",
|
||||
"stats": "Karakterlap",
|
||||
"strength": "Erő",
|
||||
"strText": "Az erő növeli az esélyét a véletlenszerű kritikus csapásoknak valamint az arany, tapasztalati pont és a jutalmak szerzésének lehetőségét. Emellett segít ellenségek elleni sebzésben is.",
|
||||
"strText": "Az erő növeli a véletlenszerű „kritikus találatok” esélyét, valamint az arany, tapasztalatpont és tárgytalálás bónuszát. Emellett segít nagyobb sebzést okozni az ellenségeknek.",
|
||||
"constitution": "Szívósság",
|
||||
"conText": "A szívósság csökkenti a sebzést amelyet a negatív szokások és a kihagyott napi feladatok okoznak.",
|
||||
"conText": "A szívósság csökkenti a negatív szokásokból és kihagyott napi teendőkből származó sebzést.",
|
||||
"perception": "Észlelés",
|
||||
"perText": "Az észlelés növeli, hogy mennyi aranyat keresel, és a piac feloldása után, növeli a tárgyak szerzésének esélyét, amikor elvégzel egy feladatot.",
|
||||
"perText": "Az észlelés növeli a szerzett arany mennyiségét, és miután feloldottad a Piacot, növeli az esélyét, hogy tárgyakat találj a feladatok teljesítésekor.",
|
||||
"intelligence": "Intelligencia",
|
||||
"intText": "Az intelligencia növeli a megszerzett tapasztalati pontokat, és a kasztok feloldása után meghatározza, hogy mennyi mana pontot kapsz a kasztképességeid használatához.",
|
||||
"intText": "Az intelligencia növeli a szerzett tapasztalatpontok mennyiségét, és miután feloldottad a kasztokat, meghatározza a maximális manát a kaszt képességekhez.",
|
||||
"levelBonus": "Szint bónusz",
|
||||
"allocatedPoints": "Kiosztott pontok",
|
||||
"allocated": "Kiosztott",
|
||||
"allocatedPoints": "Elosztott pontok",
|
||||
"allocated": "Elosztva",
|
||||
"buffs": "Megerősítések",
|
||||
"characterBuild": "Karakterépítés",
|
||||
"characterBuild": "Karakterfejlődés",
|
||||
"class": "Kaszt",
|
||||
"experience": "Tapasztalat",
|
||||
"warrior": "Harcos",
|
||||
@@ -105,91 +105,91 @@
|
||||
"rogue": "Tolvaj",
|
||||
"mage": "Mágus",
|
||||
"wizard": "Mágus",
|
||||
"mystery": "Titkos",
|
||||
"changeClass": "Kaszt megváltoztatása, tulajdonság pontok újraosztása",
|
||||
"lvl10ChangeClass": "Hogy kasztot választhass, legalább 10. szintűnek kell lenned.",
|
||||
"changeClassConfirmCost": "Biztos megváltoztatod a kasztod 3 drágakőért?",
|
||||
"invalidClass": "Érvénytelen kaszt. Kérlek válassz 'harcos', 'tolvaj', 'mágus' vagy 'gyógyító' közül.",
|
||||
"levelPopover": "Minden szinttel kapsz egy tulajdonság pontot, amit kioszthatsz. Ezt megteheted manuálisan, vagy hagyhatod, hogy a játék eldöntse helyetted, az egyik automatikus kiosztás opciót használva.",
|
||||
"unallocated": "Kiosztatlan tulajdonság pontok",
|
||||
"autoAllocation": "Automatikus kiosztás",
|
||||
"autoAllocationPop": "Oszd szét a tulajdonság pontokat ízlésed szerint, amikor szintet lépsz.",
|
||||
"evenAllocation": "Tulajdonság pontok elosztása egyenlően",
|
||||
"evenAllocationPop": "Minden tulajdonsághoz ugyanannyi pontot oszt.",
|
||||
"classAllocation": "Pontok elosztása kaszt alapján",
|
||||
"classAllocationPop": "Ahhoz a tulajdonsághoz oszt több pontot, amely a kasztodnak fontos.",
|
||||
"taskAllocation": "Pontok elosztása a feladatok jellege szerint",
|
||||
"taskAllocationPop": "Elosztja a pontokat erő, intelligencia, szívósság és észlelés kategóriák alapján, amiket az általad elvégzett feladatokhoz rendeltél.",
|
||||
"distributePoints": "Kiosztatlan pontok szétosztása",
|
||||
"distributePointsPop": "Elosztja az kiosztatlan tulajdonság pontokat a kiválasztott séma szerint.",
|
||||
"warriorText": "A harcosok több és nagyobb \"kritikus csapást\" mérnek, ami véletlenszerű bónuszt ad aranyra, tapasztalati pontra és esélyt arra hogy több jutalmat szerezz, amikor egy feladatot elvégzel. Ezen kívül ellenséget is jobban sebeznek. Játssz harcosként, ha motiválnak a kiszámíthatatlan jutalmak, vagy ha nagyobbat akarsz sebezni küldetésekben!",
|
||||
"wizardText": "A mágusok gyorsan tanulnak, szereznek tapasztalati pontot, valamint gyorsabban lépnek szintet mint más kasztok. Emellett sokkal több manát szereznek ha speciális képességeket használnak. Játssz mágusként, ha a Habitica taktikai aspektusát élvezed, vagy ha az motivál a legjobban hogy gyorsan szintet tudsz lépni és a haladó funkciókat feloldani!",
|
||||
"mageText": "A mágusok gyorsan tanulnak, szereznek tapasztalati pontot, valamint gyorsabban lépnek szintet mint más kasztok. Emellett sokkal több manát szereznek ha speciális képességeket használnak. Játssz mágusként, ha a Habitica taktikai aspektusát élvezed, vagy ha az motivál a legjobban hogy gyorsan szintet tudsz lépni és a haladó funkciókat feloldani!",
|
||||
"rogueText": "A tolvajok imádnak gyűjtögetni, ezért mindenki másnál jobbak arany szerzésében és véletlenszerű tárgyak megtalálásában. Az hírhedt lopakodás képességük képessé teszi őket arra, hogy elkerüljék a kihagyott napi feladatok következményeit. Játssz tolvajként, ha motiválnak a jutalmak és a kitüntetések, ha igyekszel minél több zsákmányt és kitüntetést bezsebelni!",
|
||||
"healerText": "A gyógyítók ellenállóak sebzésekkel szemben és meg tudnak védeni másokat is. A kihagyott napi feladatok és rossz szokások annyira nem zavarják meg őket és vannak lehetőségeik az életerő pontok visszaszerzésére is. Játssz gyógyítóként, ha szeretsz másokon segíteni a csapatodban, vagy ha inspirál, hogy kijátszhatod a halált kemény munkával!",
|
||||
"optOutOfClasses": "Kiszáll",
|
||||
"chooseClass": "Válaszd ki a kasztod",
|
||||
"chooseClassLearnMarkdown": "[Tudj meg többet Habitica kasztrendszeréről](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Nem állsz készen a választásra? Semmi gond, nincs sietség! Ha kihagyod most, elolvashatod az egyes kasztokról szóló leírást az <a href='/static/faq#what-classes' target='_blank'>GYIK-ben</a>, és a Beállításokban bármikor bekapcsolhatod a kasztrendszert, amikor készen állsz.",
|
||||
"mystery": "Rejtély",
|
||||
"changeClass": "Kaszt váltás, tulajdonság pontok visszaállítása",
|
||||
"lvl10ChangeClass": "A kaszt váltáshoz legalább 10. szintűnek kell lenned.",
|
||||
"changeClassConfirmCost": "Biztosan meg akarod változtatni a kasztodat 3 gyémántért?",
|
||||
"invalidClass": "Érvénytelen kaszt. Kérlek, válaszd a következők egyikét: 'harcos', 'tolvaj', 'mágus' vagy 'gyógyító'.",
|
||||
"levelPopover": "Minden szintlépéskor kapsz egy pontot, amit egy általad választott tulajdonságra oszthatsz el. Megteheted ezt manuálisan vagy rábízhatod a játékra az Automatikus elosztás egyik beállításával.",
|
||||
"unallocated": "El nem osztott tulajdonság pontok",
|
||||
"autoAllocation": "Automatikus elosztás",
|
||||
"autoAllocationPop": "A szintlépéskor a tulajdonság pontokat az előre beállított preferenciáid szerint osztja el.",
|
||||
"evenAllocation": "Pontok egyenletes elosztása",
|
||||
"evenAllocationPop": "Ugyanannyi pontot oszt ki minden tulajdonságra.",
|
||||
"classAllocation": "Pontok elosztása a kaszt alapján",
|
||||
"classAllocationPop": "Több pontot oszt ki a kasztod számára fontos tulajdonságokra.",
|
||||
"taskAllocation": "Pontok elosztása a feladatok aktivitása alapján",
|
||||
"taskAllocationPop": "A pontokat a teljesített feladatokhoz kapcsolódó erő, intelligencia, szívósság és észlelés kategóriák szerint osztja el.",
|
||||
"distributePoints": "El nem osztott pontok kiosztása",
|
||||
"distributePointsPop": "Az összes el nem osztott tulajdonság pontot a kiválasztott elosztási séma szerint osztja szét.",
|
||||
"warriorText": "A harcosok erősebb és gyakoribb „kritikus találatokat” érnek el, amelyek véletlenszerűen extra aranyat, tapasztalatpontot és nagyobb tárgytalálási esélyt biztosítanak. Emellett hatalmas sebzést okoznak az ellenségeknek. Válaszd a harcost, ha a kiszámíthatatlan jackpot-stílusú jutalmak motiválnak vagy ha az ellenségekkel való harc vonz!",
|
||||
"wizardText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más kasztok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"mageText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más kasztok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"rogueText": "A tolvajok imádják a gazdagságot, több aranyat szereznek, mint bárki más, és kiválóan megtalálják a véletlenszerű tárgyakat. Ikonikus lopakodás képességükkel elkerülhetik a kihagyott napi teendők negatív hatásait. Válaszd a tolvajt, ha a jutalmak és kitüntetések, a zsákmányszerzés és a jelvények motiválnak!",
|
||||
"healerText": "A gyógyítók ellenállóak a sebzéssel szemben, és ezt a védelmet másokra is kiterjesztik. A kihagyott napi teendők és rossz szokások kevésbé hatnak rájuk, és képesek gyógyítani az elhasznált életerőt. Válaszd a gyógyítót, ha szeretsz segíteni a csapatodnak vagy ha inspirál a kemény munkával való „halál kijátszása”!",
|
||||
"optOutOfClasses": "Kilépés",
|
||||
"chooseClass": "Válassz kasztot",
|
||||
"chooseClassLearnMarkdown": "[Tudj meg többet a Habitica kasztrendszeréről](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Még nem állsz készen a választásra? Semmi gond! Ha kihagyod, bármikor elolvashatod az egyes kasztokról szóló leírást a <a href='/static/faq#what-classes' target='_blank'>GYIK-ban</a>, és a Beállításokban később bekapcsolhatod a kasztrendszert.",
|
||||
"selectClass": "<%= heroClass %> kiválasztása",
|
||||
"select": "Kiválaszt",
|
||||
"select": "Kiválasztás",
|
||||
"stealth": "Lopakodás",
|
||||
"stealthNewDay": "Amikor egy új nap kezdődik, akkor elkerülsz némi sebzést a kihagyott napi feladatokból.",
|
||||
"streaksFrozen": "Befagyasztott szériák",
|
||||
"streaksFrozenText": "A kihagyott napi feladatok szériái nem indulnak újra a nap végén.",
|
||||
"purchaseFor": "Megveszed <%= cost %> drágakőért?",
|
||||
"purchaseForHourglasses": "Megveszed <%= cost %> homokóráért?",
|
||||
"notEnoughMana": "Nincs elég mana.",
|
||||
"invalidTarget": "Erre nem varázsolhatsz.",
|
||||
"youCast": "A(z) <%= spell %> varázslatot használtad.",
|
||||
"youCastTarget": "A(z) <%= spell %> varázslatot használtad a(z) <%= target %> célponton.",
|
||||
"youCastParty": "A(z) <%= spell %> varázslatot használtad a csapatod számára.",
|
||||
"stealthNewDay": "Új nap kezdetén ennyi kihagyott napi teendő után még nem kapsz sebzést.",
|
||||
"streaksFrozen": "Szériák befagyasztva",
|
||||
"streaksFrozenText": "A kihagyott napi teendők szériái nem nullázódnak le a nap végén.",
|
||||
"purchaseFor": "Megvásárolod <%= cost %> gyémántért?",
|
||||
"purchaseForHourglasses": "Megvásárolod <%= cost %> homokóráért?",
|
||||
"notEnoughMana": "Nincs elég manád.",
|
||||
"invalidTarget": "Erre nem használhatsz képességet.",
|
||||
"youCast": "A(z) <%= spell %> képességet használtad.",
|
||||
"youCastTarget": "A(z) <%= spell %> képességet használtad a(z) <%= target %> célponton.",
|
||||
"youCastParty": "A(z) <%= spell %> képességet használtad a csapat számára.",
|
||||
"critBonus": "Kritikus sebzés! Bónusz: ",
|
||||
"gainedGold": "Aranyat szereztél",
|
||||
"gainedMana": "Manát szereztél",
|
||||
"gainedHealth": "Életerőt szereztél",
|
||||
"gainedExperience": "Tapasztalatot szereztél",
|
||||
"lostGold": "Aranyat költöttél",
|
||||
"lostMana": "Manát használtál",
|
||||
"lostHealth": "Életet vesztettél",
|
||||
"lostExperience": "Tapasztalatot vesztettél",
|
||||
"equip": "Használat",
|
||||
"unequip": "Eltávolítás",
|
||||
"gainedGold": "Szereztél egy kis aranyat",
|
||||
"gainedMana": "Szereztél egy kis manát",
|
||||
"gainedHealth": "Szereztél egy kis életerőt",
|
||||
"gainedExperience": "Szereztél egy kis tapasztalatot",
|
||||
"lostGold": "Elköltöttél egy kis aranyat",
|
||||
"lostMana": "Elhasználtál egy kis manát",
|
||||
"lostHealth": "Vesztettél egy kis életerőt",
|
||||
"lostExperience": "Vesztettél egy kis tapasztalatot",
|
||||
"equip": "Felszerelés",
|
||||
"unequip": "Levetés",
|
||||
"animalSkins": "Állat bőrszínek",
|
||||
"str": "ERŐ",
|
||||
"con": "SZÍV",
|
||||
"per": "ÉSZ",
|
||||
"int": "INT",
|
||||
"notEnoughAttrPoints": "Nincs elég tulajdonság pontod.",
|
||||
"classNotSelected": "Tulajdonság pontjaid elosztásához ki kell választanod egy kasztot.",
|
||||
"classNotSelected": "Ki kell választanod egy kasztot, mielőtt tulajdonság pontokat oszthatsz ki.",
|
||||
"style": "Stílus",
|
||||
"facialhair": "Arc",
|
||||
"photo": "Fénykép",
|
||||
"info": "Infó",
|
||||
"joined": "Csatlakozott",
|
||||
"totalLogins": "Belépések száma",
|
||||
"latestCheckin": "Legutolsó belépés",
|
||||
"totalLogins": "Összes bejelentkezés",
|
||||
"latestCheckin": "Utolsó bejelentkezés",
|
||||
"editProfile": "Profil szerkesztése",
|
||||
"challengesWon": "Megnyert kihívások",
|
||||
"questsCompleted": "Teljesített küldetések",
|
||||
"headAccess": "Fej kieg.",
|
||||
"backAccess": "Hát kieg.",
|
||||
"bodyAccess": "Test kieg.",
|
||||
"mainHand": "Jobbkezes fegyver",
|
||||
"offHand": "Balkezes fegyver",
|
||||
"mainHand": "Jobbkezes",
|
||||
"offHand": "Balkezes",
|
||||
"statPoints": "Tulajdonság pontok",
|
||||
"pts": "pont",
|
||||
"chatCastSpellUser": "<%= username %> <%= spell %> varázslatot használta a(z) <%= target %> célponton.",
|
||||
"chatCastSpellParty": "<%= username %> <%= spell %> varázslatot használta a csapat számára.",
|
||||
"purchasePetItemConfirm": "Ez a vétel meghaladja az összes lehetséges <%= itemText %> háziállat kikeltéséhez szükséges tárgyak számát. Biztos vagy benne?",
|
||||
"purchaseForGold": "Megveszed <%= cost %> aranyért?",
|
||||
"chatCastSpellParty": "<%= username %> elhasználta a(z) <%= spell %> képességet a csapat számára.",
|
||||
"purchasePetItemConfirm": "Ezzel a vásárlással túllépnéd a szükséges tárgymennyiséget az összes <%= itemText %> kisállat keltetéséhez. Biztos vagy benne?",
|
||||
"purchaseForGold": "Megvásárolod <%= cost %> aranyért?",
|
||||
"notEnoughGold": "Nincs elég aranyad.",
|
||||
"skins": "Skinek",
|
||||
"titleFacialHair": "Arcszőr",
|
||||
"skins": "Kinézetek",
|
||||
"titleFacialHair": "Arcszőrzet",
|
||||
"titleHaircolor": "Hajszínek",
|
||||
"titleHairbase": "Hajstílusok",
|
||||
"customizations": "Személyreszabás",
|
||||
"chatCastSpellPartyTimes": "<%= username %> megidézte a <%= spell %> bűbájt a csapatra <%= times %> alkalommal.",
|
||||
"chatCastSpellUserTimes": "<%= username %> használta a <%= spell %> bűbájt a <%= target %> célponton <%= times %> alkalommal.",
|
||||
"nextReward": "A következő belépési jutalom"
|
||||
"titleHairbase": "Frizurák",
|
||||
"customizations": "Testreszabások",
|
||||
"chatCastSpellPartyTimes": "<%= username %> <%= spell %> varázslatot szórt a csapatra <%= times %> alkalommal.",
|
||||
"chatCastSpellUserTimes": "<%= username %> <%= spell %> varázslatot szórt <%= target %> célpontra <%= times %> alkalommal.",
|
||||
"nextReward": "Következő bejelentkezési jutalom"
|
||||
}
|
||||
|
||||
@@ -1,93 +1,93 @@
|
||||
{
|
||||
"tavernCommunityGuidelinesPlaceholder": "Baráti emlékeztető: ez itt egy korhatármentes csevegőszoba, ezért arra kérünk, hogy ennek megfelelő tartalmat és nyelvezetet használj! Lásd a közösségi irányelveket az oldalsávon, ha ezzel kapcsolatban kérdésed van.",
|
||||
"lastUpdated": "Utoljára frissítve:",
|
||||
"commGuideHeadingWelcome": "Üdvözlünk Habitica-n!",
|
||||
"tavernCommunityGuidelinesPlaceholder": "Egy barátságos emlékeztető: ez egy minden korosztály számára megfelelő csevegés, ezért ügyelj a tartalomra és a nyelvezetre! Ha kérdésed van, tekintsd meg a Közösségi irányelveket az oldalsávban.",
|
||||
"lastUpdated": "Utolsó frissítés:",
|
||||
"commGuideHeadingWelcome": "Üdvözlünk Habiticában!",
|
||||
"commGuidePara001": "Üdv, kalandor! Üdvözöllek Habiticában, a hatékonyság, az egészséges életmód és néha egy-egy dühöngő griff földjén.",
|
||||
"commGuidePara002": "Hogy mindenki biztonságban, boldogan és hatékonyan fejlődhessen, van néhány irányelvünk a Kihívásokra, a játékosprofilokra, a Csapatbeszélgetésre és a privát üzenetekre vonatkozóan. Ezeket az irányelveket gondosan úgy alakítottuk ki, hogy barátságosak és könnyen érthetők legyenek. Kérjük, szánj időt az elolvasásukra, mielőtt kapcsolatba lépsz a többi játékossal.",
|
||||
"commGuidePara002": "Hogy mindenki biztonságban, boldogan és hatékonyan fejlődhessen, van néhány irányelvünk a kihívásokra, a játékosprofilokra, a csapatbeszélgetésre és a privát üzenetekre vonatkozóan. Ezeket az irányelveket gondosan úgy alakítottuk ki, hogy barátságosak és könnyen érthetők legyenek. Kérjük, szánj időt az elolvasásukra, mielőtt kapcsolatba lépsz a többi játékossal.",
|
||||
"commGuidePara003": "Ezek a szabályok időről időre módosulhatnak. Ha jelentős változás történik a közösségi szabályokban, arról Bailey bejelentésben és/vagy a közösségi médiánkon keresztül értesítünk!",
|
||||
"commGuideHeadingInteractions": "Beszélgetés a Habtica-n",
|
||||
"commGuidePara015": "Habiticában többféle módon léphetsz kapcsolatba más játékosokkal. Ilyenek a privát beszélgetések (privát üzenetek és Csapatbeszélgetés), valamint a Csapatkereső funkció és a Kihívások.",
|
||||
"commGuideHeadingInteractions": "Interakciók Habiticában",
|
||||
"commGuidePara015": "Habiticában többféle módon léphetsz kapcsolatba más játékosokkal. Ilyenek a privát beszélgetések (privát üzenetek és csapat beszélgetés), valamint a csapatkereső funkció és a kihívások.",
|
||||
"commGuidePara016": "Amikor Habitica közösségi funkcióit használod, van néhány általános szabály, amelyek segítenek mindenkit biztonságban és boldogan tartani.",
|
||||
"commGuideList02A": "<strong>Tiszteljétek egymást</strong>. Légy udvarias, kedves, barátságos és segítőkész. Ne feledd: a Habitica közösségének tagjai különböző háttérrel és eltérő életutakkal érkeznek.",
|
||||
"commGuideList02C": "<strong>Ne ossz meg képeket vagy szövegeket, amelyek erőszakosak, fenyegetőek, szexuálisan explicit vagy célzatos tartalmúak, illetve amelyek diszkriminációt, előítéletet, rasszizmust, szexizmust, gyűlöletet, zaklatást vagy bármilyen kárt támogatnak egyénnel vagy csoporttal szemben</strong>. Még vicc vagy mém formájában sem. Ez vonatkozik a sértő kifejezésekre és kijelentésekre is. Nem mindenki érti ugyanúgy a humort, így ami számodra vicces, másnak bántó lehet.",
|
||||
"commGuideList02D": "<strong>Vedd figyelembe, hogy a Habitica közösség tagjai minden korosztályból és háttérből érkeznek</strong>. A Kihívások és a játékosprofilok ne tartalmazzanak felnőtt témákat, trágár kifejezéseket és ne szítsanak vitát vagy konfliktust.",
|
||||
"commGuideList02E": "<strong>Ha egy Staff tag közli veled, hogy egy kifejezés nem megengedett Habiticában – még akkor is, ha nem tudtad, hogy problémás –, az a döntés végleges.</strong> Emellett a sértő kifejezéseket nagyon szigorúan kezeljük, mivel ezek a Felhasználási feltételek megsértését is jelentik.",
|
||||
"commGuideList02G": "<strong>Azonnal teljesítsd a Staff kéréseit.</strong> Ez magában foglalhatja – de nem kizárólag – a bejegyzéseid korlátozását egy adott felületen, a profilod szerkesztését nem megfelelő tartalom eltávolítása érdekében stb. Ne vitatkozz a Staff tagjaival. Ha aggályaid vagy észrevételeid vannak a Staff intézkedéseivel kapcsolatban, írj e-mailt a közösségi menedzserünknek: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList02J": "<strong>Ne spammelj</strong>. A spam például a következőket foglalhatja magában, de nem kizárólag: több kéretlen privát üzenet küldése, értelmetlen üzenetek küldése, egy Csapat vagy Kihívás túlzott reklámozása vagy egymás után több hasonló vagy alacsony minőségű Kihívás létrehozása. A Staff saját belátása szerint dönthet arról, hogy egy üzenet spamnek minősül-e.",
|
||||
"commGuideList02K": "<strong>Ne küldj linkeket magyarázat vagy kontextus nélkül</strong>. Ha egy linkre kattintva bármilyen előnyhöz jutsz, ezt egyértelműen jelezned kell. Ez vonatkozik az üzenetekre és a Kihívásokra is.",
|
||||
"commGuideList02L": "<strong>Nyomatékosan ellenjavalljuk személyes adatok megosztását – különösen olyan információkét, amelyek alapján beazonosítható vagy</strong>. Ilyen adatok lehetnek például: a címed, az e-mail címed, a jelszavad vagy az API tokened. Ha valaki személyes adatokat kér tőled egy Csapatbeszélgetésben vagy privát üzenetben, erősen javasoljuk, hogy ne válaszolj, és értesítsd a Staffot. Ezt megteheted az üzenet jelentésével vagy azzal, hogy elküldöd a képernyőképeket a következő e-mail címre, ha további kontextus szükséges: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuidePara037": "<strong>Ne hozz létre Csapatot vagy Csoportot azzal a céllal, hogy megtámadj egy csoportot vagy egyént</strong>. A rossz szokásokkal harcolj, ne a kalandortársaiddal!",
|
||||
"commGuideList02J": "<strong>Ne spammelj</strong>. A spam például a következőket foglalhatja magában, de nem kizárólag: több kéretlen privát üzenet küldése, értelmetlen üzenetek küldése, egy csapat vagy kihívás túlzott reklámozása vagy egymás után több hasonló vagy alacsony minőségű kihívás létrehozása. A Staff saját belátása szerint dönthet arról, hogy egy üzenet spamnek minősül-e.",
|
||||
"commGuideList02K": "<strong>Ne küldj linkeket magyarázat vagy kontextus nélkül</strong>. Ha egy linkre kattintva bármilyen előnyhöz jutsz, ezt egyértelműen jelezned kell. Ez vonatkozik az üzenetekre és a kihívásokra is.",
|
||||
"commGuideList02L": "<strong>Nyomatékosan ellenjavalljuk személyes adatok megosztását – különösen olyan információkét, amelyek alapján beazonosítható vagy</strong>. Ilyen adatok lehetnek például: a címed, az e-mail címed, a jelszavad vagy az API tokened. Ha valaki személyes adatokat kér tőled egy csapat beszélgetésben vagy privát üzenetben, erősen javasoljuk, hogy ne válaszolj, és értesítsd a Staffot. Ezt megteheted az üzenet jelentésével vagy azzal, hogy elküldöd a képernyőképeket a következő e-mail címre, ha további kontextus szükséges: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuidePara037": "<strong>Ne hozz létre csapatot vagy csoportot azzal a céllal, hogy megtámadj egy csoportot vagy egyént</strong>. A rossz szokásokkal harcolj, ne a kalandortársaiddal!",
|
||||
"commGuideHeadingInfractionsEtc": "Szabálysértések, következmények és helyreállítás",
|
||||
"commGuideHeadingInfractions": "Jogsértések",
|
||||
"commGuideHeadingInfractions": "Szabálysértések",
|
||||
"commGuidePara050": "A Habitica közösségének tagjai túlnyomó többségben segítőkészek, tisztelettudóak és azon dolgoznak, hogy a légkör vidám és barátságos maradjon. Azonban ritka esetekben előfordulhat, hogy valaki megsérti a fenti irányelvek egyikét. Ilyen esetben a Staff megteszi a szükséges lépéseket annak érdekében, hogy Habitica biztonságos és kellemes hely maradjon mindenki számára.",
|
||||
"commGuidePara051": "<strong>A szabálysértések különböző súlyosságúak lehetnek és ennek megfelelően kezeljük őket</strong>. Az alábbiak nem teljes listák és a Staff saját belátása szerint hozhat döntéseket olyan esetekben is, amelyek itt nincsenek kifejtve. A szabályszegések értékelésekor a Staff mindig figyelembe veszi a körülményeket.",
|
||||
"commGuideHeadingSevereInfractions": "Súlyos Jogsértések",
|
||||
"commGuidePara051": "<strong>A szabálysértések különböző súlyosságúak lehetnek és ennek megfelelően kezeljük őket</strong>. Az alábbiak nem teljes lista és a Staff saját belátása szerint hozhat döntéseket olyan esetekben is, amelyek itt nincsenek kifejtve. A szabályszegések értékelésekor a Staff mindig figyelembe veszi a körülményeket.",
|
||||
"commGuideHeadingSevereInfractions": "Súlyos szabálysértések",
|
||||
"commGuidePara052": "A súlyos szabálysértések jelentős mértékben veszélyeztetik a Habitica közösségének és felhasználóinak biztonságát, ezért súlyos következményekkel járnak.",
|
||||
"commGuidePara053": "A következők példák a Súlyos Jogsértésekre. A lista nem teljes körű.",
|
||||
"commGuidePara053": "Az alábbiakban néhány példa található a súlyos szabálysértésekre. Ez nem egy teljes lista.",
|
||||
"commGuideList05A": "A Felhasználási feltételek egyéb, itt nem részletezett megsértése",
|
||||
"commGuideList05B": "Gyűlölet beszéd/képek, zaklatás, Cyber-Bullying, flamelés és trollkodás",
|
||||
"commGuideList05C": "A Próbaidő feltételeinek megszegése",
|
||||
"commGuideList05D": "A Staff tagjainak megszemélyesítése – ide tartozik az is, ha valaki azt állítja, hogy egy Habiticától független, játékosok által létrehozott közösségi tér hivatalos, és/vagy a Habitica vagy a Staff moderálja",
|
||||
"commGuideList05E": "Ismétlődö Mérsékelt Jogsértések",
|
||||
"commGuideList05B": "Gyűlöletbeszéd/képek, zaklatás/követés, internetes bántalmazás, sértegetés és trollkodás",
|
||||
"commGuideList05C": "Próbaidő megszegése",
|
||||
"commGuideList05D": "A Habitica csapatának megszemélyesítése – ide tartozik az is, ha valaki azt állítja, hogy a játékosok által létrehozott, Habiticához nem kapcsolódó felületek hivatalosak és/vagy a Habitica csapata moderálja őket",
|
||||
"commGuideList05E": "Ismétlődő mérsékelt szabálysértések",
|
||||
"commGuideList05F": "Másodlagos fiók létrehozása a következmények elkerülése érdekében",
|
||||
"commGuideList05G": "A Staff szándékos félrevezetése a következmények elkerülése vagy egy másik felhasználó bajba sodrása érdekében",
|
||||
"commGuideHeadingModerateInfractions": "Mérsékelt Jogsértések",
|
||||
"commGuideHeadingModerateInfractions": "Mérsékelt szabálysértések",
|
||||
"commGuidePara054": "Ezek a szabálysértések mérsékelt következményekkel járnak. Ha több szabálysértés is történik egyszerre, a következmények súlyosbodhatnak.",
|
||||
"commGuidePara055": "A következők példák a Mérsékelt Jogsértésekre. A lista nem teljes körű.",
|
||||
"commGuidePara055": "Az alábbiakban néhány példa található a mérsékelt szabálysértésekre. Ez nem egy teljes lista.",
|
||||
"commGuideList06A": "A Staff utasításainak figyelmen kívül hagyása, tiszteletlenség vagy vitatkozás velük. Ha aggályaid vannak egy szabállyal vagy a Staff viselkedésével kapcsolatban, kérjük, lépj kapcsolatba velünk ezen az e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList06C": "Ártatlan Kihívások, profilok vagy üzenetek szándékos jelentése.",
|
||||
"commGuideList06E": "Kisebb szabálysértések ismételt elkövetése",
|
||||
"commGuideList06C": "Ártatlan kihívások, profilok vagy üzenetek szándékos jelentése.",
|
||||
"commGuideList06E": "Ismétlődő kisebb szabálysértések elkövetése",
|
||||
"commGuideHeadingMinorInfractions": "Kisebb szabálysértések",
|
||||
"commGuidePara056": "Kisebb szabálysértések, bár nem kívánatosak, csak enyhe következményekkel járnak. Ha azonban ismétlődnek, idővel súlyosabb következményekhez vezethetnek. A kisebb szabálysértések általában az irányelvek első alkalommal történő megsértését jelentik, de egyéb körülményeket is magukban foglalhatnak.",
|
||||
"commGuidePara057": "Az alábbiakban néhány példát találsz kisebb szabálysértésekre. Ez a lista nem teljes körű.",
|
||||
"commGuideList07A": "A Nyilvános Terek Irányelveinek első alkalommal történő megsértése",
|
||||
"commGuidePara057": "Az alábbiakban néhány példa található a kisebb szabálysértésekre. Ez nem egy teljes lista.",
|
||||
"commGuideList07A": "A nyilvános terek irányelveinek első alkalommal történő megsértése",
|
||||
"commGuideList07B": "Bármilyen kijelentés vagy cselekedet, amelyre egy Staff tag \"Kérlek, ne tedd\" figyelmeztetést ad. Ha nyilvánosan felszólítanak valamire, hogy ne tedd, már önmagában következménynek számíthat. Ha egy felhasználó többször is ilyen figyelmeztetést kap, az súlyosabb szabálysértésnek minősülhet",
|
||||
"commGuidePara057A": "Egyes bejegyzések elrejthetők, ha érzékeny információt tartalmaznak vagy félrevezethetik az embereket. Ez általában nem számít szabálysértésnek, különösen nem az első alkalommal!",
|
||||
"commGuidePara057A": "Néhány bejegyzés elrejthető, ha érzékeny információkat tartalmaz vagy félreérthető lehet. Ez általában nem számít szabálysértésnek, különösen, ha először fordul elő!",
|
||||
"commGuideHeadingConsequences": "Következmények",
|
||||
"commGuidePara059": "<strong>A közösségi szabálysértéseknek közvetlen következményei vannak.</strong> Az alábbiakban néhány lehetséges következményt sorolunk fel.",
|
||||
"commGuideHeadingSevereConsequences": "Példák a Súlyos Következményekre",
|
||||
"commGuideHeadingSevereConsequences": "Súlyos következmények példái",
|
||||
"commGuideList09A": "Fióktiltás",
|
||||
"commGuideList09C": "A Hozzájárulói szinteken való előrehaladás végleges leállítása",
|
||||
"commGuideHeadingModerateConsequences": "Példák a közepes következményekre",
|
||||
"commGuideList10D": "A Hozzájárulói szinteken való előrehaladás ideiglenes felfüggesztése",
|
||||
"commGuideHeadingMinorConsequences": "Példák kisebb következményekre",
|
||||
"commGuideList09C": "A hozzájárulói szinteken való előrehaladás végleges leállítása",
|
||||
"commGuideHeadingModerateConsequences": "Mérsékelt következmények példái",
|
||||
"commGuideList10D": "A hozzájárulói szinteken való előrehaladás ideiglenes felfüggesztése",
|
||||
"commGuideHeadingMinorConsequences": "Kisebb következmények példái",
|
||||
"commGuideList11A": "Emlékeztetők az irányelvekre",
|
||||
"commGuideList11B": "Figyelmeztetések",
|
||||
"commGuideList11C": "Kérések",
|
||||
"commGuideList11D": "A problémás tartalom törlése a Staff által",
|
||||
"commGuideList11E": "A problémás tartalom módosítása a Staff által",
|
||||
"commGuideHeadingRestoration": "Visszaállítás",
|
||||
"commGuideHeadingRestoration": "Helyreállítás",
|
||||
"commGuidePara061": "Habitica elkötelezett az önfejlesztés iránt és hiszünk a második esélyekben. <strong>Ha szabálysértést követsz el, és ennek következménye van, tekintsd ezt lehetőségnek arra, hogy átgondold a tetteidet és igyekezz jobb közösségi taggá válni</strong>.",
|
||||
"commGuidePara062": "<strong>Ha kérdéseid vannak a szabálysértéseddel vagy annak következményeivel kapcsolatban, szeretnél bocsánatot kérni vagy kérelmeznéd a visszaállításodat, kérjük, lépj kapcsolatba velünk a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> és add meg a Felhasználói azonosítódat vagy @felhasználónevedet</strong>. Ennek kezdeményezése <strong>a te</strong> felelősséged.",
|
||||
"commGuidePara062": "<strong>Ha kérdéseid vannak a szabálysértéseddel vagy annak következményeivel kapcsolatban, szeretnél bocsánatot kérni vagy kérelmeznéd a visszaállításodat, kérjük, lépj kapcsolatba velünk a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> és add meg a felhasználói azonosítódat vagy @felhasználónevedet</strong>. Ennek kezdeményezése <strong>a te</strong> felelősséged.",
|
||||
"commGuidePara063": "Ha nem érted a következményeket, a szabálysértésed jellegét vagy egyéb kérdésed van ezzel kapcsolatban, felveheted a kapcsolatot a Staff csapatával a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>. Tartsd be a rád kiszabott korlátozásokat és törekedj arra, hogy teljesítsd a feltételeket a büntetések feloldásához.",
|
||||
"commGuideHeadingMeet": "Ismerd meg a Staff csapatát",
|
||||
"commGuidePara007": "A Habitica Staff csapata gondoskodik az alkalmazás és a weboldalak működéséről, valamint moderátorként is eljárhat a csevegésekben. Lila címkéjük van, amelyen egy korona látható. Az ő titulusuk: \"Hősies\" (Heroic).",
|
||||
"commGuidePara009": "A jelenlegi Stáb Tagok (balról jobbra):",
|
||||
"commGuideAKA": "<%= habitName %> azaz <%= realName %>",
|
||||
"commGuideOnGitHub": "<%= gitHubName %> a GitHubon",
|
||||
"commGuidePara007": "A Habitica Staff csapata gondoskodik az alkalmazás és a weboldalak működéséről, valamint moderátorként is eljárhat a csevegésekben. Lila címkéjük van, amelyen egy korona látható. Az ő titulusuk: \"Hősies\".",
|
||||
"commGuidePara009": "A jelenlegi csapattagok (balról jobbra):",
|
||||
"commGuideAKA": "<%= habitName %>, más néven <%= realName %>",
|
||||
"commGuideOnGitHub": "GitHubon: <%= gitHubName %>",
|
||||
"commGuidePara011b": "a GitHubon/Fandomon",
|
||||
"commGuidePara011c": "a Wikiben",
|
||||
"commGuidePara011d": "GitHubon",
|
||||
"commGuidePara013": "Egy olyan nagy közösségben, mint Habitica, a játékosok jönnek-mennek és néha egy Staff tag vagy moderátor úgy dönt, hogy leteszi nemes köpenyét és pihen egy kicsit. Az alábbiakban a korábbi Staff tagokat és Moderátorokat tüntetjük fel. Ők már nem rendelkeznek Staff vagy Moderátori jogosultságokkal, de továbbra is szeretnénk elismerni a munkájukat!",
|
||||
"commGuidePara014": "Korábbi Staff tagok és Moderátorok:",
|
||||
"commGuideHeadingFinal": "Az utolsó szekció",
|
||||
"commGuidePara067": "És íme, bátor Habitica-lakó – a Közösségi Irányelvek! Töröld le a verejtéket a homlokodról és adj magadnak egy kis TP-t, amiért végigolvastad. Ha bármilyen kérdésed vagy aggályod van ezekkel az irányelvekkel kapcsolatban, bátran lépj kapcsolatba velünk a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> és örömmel segítünk tisztázni a dolgokat.",
|
||||
"commGuidePara068": "És most gyerünk, bátor kalandor! Pusztíts el néhány Napi Feladatot!",
|
||||
"commGuidePara014": "Korábbi Staff tagok és moderátorok:",
|
||||
"commGuideHeadingFinal": "Az utolsó szakasz",
|
||||
"commGuidePara067": "És ezzel meg is volnánk, bátor Habitica lakó – itt vannak a Közösségi irányelvek! Töröld le a verejtéket a homlokodról és adj magadnak egy kis TP-t, amiért mindezt végigolvastad. Ha bármilyen kérdésed vagy aggályod merül fel ezekkel az irányelvekkel kapcsolatban, vedd fel velünk a kapcsolatot a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> címen, és örömmel segítünk tisztázni a dolgokat.",
|
||||
"commGuidePara068": "Most pedig indulj, bátor kalandor és győzd le a napi teendőidet!",
|
||||
"commGuideHeadingLinks": "Hasznos linkek",
|
||||
"commGuideLink02": "<a href='https://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>A Wiki</a>: a Habiticáról szóló legnagyobb információgyűjtemény. Fontos megjegyezni, hogy ez egy nem hivatalos oldal, amelyet a Fandom hosztol, és a játékosok tartanak karban.",
|
||||
"commGuideLink02": "<a href='https://habitica.fandom.com/wiki/Habitica_Wiki' target='_blank'>A Wiki</a>: a Habiticáról szóló legnagyobb információgyűjtemény. Fontos megjegyezni, hogy ez egy nem hivatalos oldal, amelyet a Fandom hosztol és a játékosok tartanak karban.",
|
||||
"commGuideLink03": "<a href='https://github.com/HabitRPG/habitica' target='_blank'>GitHub</a>: ahol segíthetsz a kód fejlesztésében!",
|
||||
"commGuideLink04": "<a href='https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link' target='_blank'>A Visszajelzési űrlap</a>: weboldallal és alkalmazásfunkciókkal kapcsolatos kérésekhez.",
|
||||
"commGuidePara069": "A következő tehetséges művészek működtek közre ezen illusztrációk elkészítésében:",
|
||||
"commGuideList01A": "Irányelveink és Felhasználási feltételeink érvényesek a Kihívásokra, a Csapatokra, a játékosprofilokra és a privát üzenetekre.",
|
||||
"commGuideList02H": "<strong>Minden megjelenített név és @felhasználónév meg kell, hogy feleljen a Felhasználási feltételeknek</strong>. Ha módosítani szeretnéd a megjelenített nevedet vagy @felhasználónevedet: mobilon menj a Menü > Beállítások > Fiók menüpontra. Weben kattints a felhasználói ikonra a felső navigációs sávban, majd válaszd a Beállításokat.",
|
||||
"commGuideList02I": "<strong>A Kihívások nevei minden felületen megfelelőek legyenek, mivel a győztesek nyilvános profiljában is megjelennek</strong>. Ezt tartsd szem előtt Kihívások létrehozásakor, mert ha szabálytalanságot jelentenek, kénytelenek lehetünk módosítani a profiljukon megjelenő adatokat.",
|
||||
"commGuideList02O": "<strong>A csapatok saját csevegési szabályokat hozhatnak létre a tagok kényelme és preferenciái szerint</strong>. Az adminok azonban nem tudják ezeket a szabályokat érvényesíteni ezekben a privát terekben, hacsak nem sértik meg a Felhasználási feltételeket, például zaklatással. Ha valaki problémát okoz a csapatodban, javasoljuk, hogy a csapatvezető távolítsa el őt.",
|
||||
"commGuideList02P": "<strong>Nem javasoljuk kéretlen privát üzenetek küldését</strong>. Ha olyan üzenetet kapsz, amely kellemetlen számodra, vagy megsérti ezeket az irányelveket vagy a Felhasználási feltételeket, tiltsd le a feladót, és jelentsd az esetet a Staffnak.",
|
||||
"commGuideList02Q": "<strong>Ne próbáld meg kijátszani a tiltást</strong>. Ha valaki letiltotta, hogy privát üzenetet küldj neki, ne keresd meg más felületen azért, hogy feloldassa a tiltást.",
|
||||
"commGuideList02M": "<strong>Ne kérj vagy könyörögj gyémántokért, előfizetésért vagy csoportos csomagbeli tagságért</strong>. Ha fizetős tartalmakat kérő nem kívánt üzenetet kapsz vagy látsz, jelentsd azt. A gyémántokért vagy előfizetésért való ismételt könyörgés – különösen figyelmeztetés után – a fiókod tiltásához vezethet.",
|
||||
"commGuideList09E": "A privát üzenetküldési lehetőség vagy a Csapattag-keresőben való megjelenés végleges eltávolítása",
|
||||
"commGuideLink04": "<a href='https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link' target='_blank'>A visszajelzési űrlap</a>: weboldallal és alkalmazásfunkciókkal kapcsolatos kérésekhez.",
|
||||
"commGuidePara069": "Az alábbi tehetséges művészek járultak hozzá ezekhez az illusztrációkhoz:",
|
||||
"commGuideList01A": "Irányelveink és a Felhasználási feltételek érvényesek a kihívásokban, csapatokban, játékosprofilokban és privát üzenetekben is.",
|
||||
"commGuideList02H": "<strong>Az összes megjelenített név és @felhasználónév meg kell, hogy feleljen a Felhasználási feltételeknek</strong>. A megjelenített neved és/vagy @felhasználóneved módosításához: mobilon lépj a Menü > Beállítások > Fiók menüpontra. Weben pedig kattints a felső navigációs sávban a felhasználói ikonra, majd a Beállításokra.",
|
||||
"commGuideList02I": "<strong>A kihívások neveinek minden felületen megfelelőnek kell lenniük, mivel megjelennek a nyertes nyilvános profiljában</strong>. Ezt tartsd szem előtt a kihívások létrehozásakor, mert ha problémás névről érkezik jelentés, kénytelenek lehetünk módosítani a profilban szereplő adatokat.",
|
||||
"commGuideList02O": "<strong>A csapatok saját csevegési szabályokat hozhatnak létre a tagok kényelme és preferenciái szerint</strong>. Az adminok azonban nem tudják érvényesíteni ezeket a szabályokat a privát csapat csevegésekben, kivéve, ha a Felhasználási feltételek megsértése történik, például zaklatás. Ha valaki problémát okoz a csapatodban, javasoljuk, hogy a csapatvezető távolítsa el őt.",
|
||||
"commGuideList02P": "<strong>Nem javasoljuk kéretlen privát üzenetek küldését</strong>. Ha olyan üzenetet kapsz, amely kellemetlen számodra vagy amely sérti ezeket az irányelveket vagy a Felhasználási feltételeket, tiltsd le a feladót és jelentsd, hogy a csapatunk foglalkozhasson vele.",
|
||||
"commGuideList02Q": "<strong>Ne próbálj meg megkerülni egy tiltást</strong>. Ha valaki letiltott téged, hogy ne küldhess neki privát üzenetet, ne próbáld más módon elérni, hogy feloldja a tiltást.",
|
||||
"commGuideList02M": "<strong>Ne kérj vagy könyörögj gyémántokért, előfizetésekért vagy csoportos előfizetési tagságért</strong>. Ha kéretlen üzenetet kapsz, amelyben fizetős tárgyakat kérnek tőled, jelentsd azt. Ha valaki ismételten gyémántokat vagy előfizetést kéreget, különösen figyelmeztetés után, az fiókjának felfüggesztéséhez vezethet.",
|
||||
"commGuideList09E": "A privát üzenetküldési jog vagy a csapattag-keresésből való megjelenés végleges eltávolítása",
|
||||
"commGuideList05H": "Súlyos vagy ismétlődő próbálkozások más játékosok megtévesztésére vagy nyomásgyakorlására valódi pénzért megvásárolható tárgyakért",
|
||||
"commGuideList09D": "A Hozzájárulói szintek eltávolítása vagy visszaminősítése",
|
||||
"commGuideList10G": "A privát üzenetküldési lehetőség vagy a Csapattag-keresőben való megjelenés ideiglenes letiltása",
|
||||
"commGuideList02N": "<strong>Jelentsd, ha bármit látsz, ami megsérti ezeket az irányelveket vagy a Felhasználási feltételeinket</strong>. Egy üzenetet közvetlenül is jelenthetsz, vagy értesítheted a csapatunkat a következő címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>, ha egy profilban vagy Kihívásban találsz szabályszegést. Igyekszünk minél gyorsabban intézkedni. Bátran írhatsz nekünk az anyanyelveden is, ha úgy könnyebb számodra – lehet, hogy Google Fordítót kell használnunk, de szeretnénk, ha kényelmesen éreznéd magad, amikor kapcsolatba lépsz velünk egy problémával."
|
||||
"commGuideList09D": "A közreműködői szintek eltávolítása vagy visszaminősítése",
|
||||
"commGuideList10G": "A privát üzenetküldési jog vagy a csapattag-keresésből való megjelenés ideiglenes felfüggesztése",
|
||||
"commGuideList02N": "<strong>Jelents minden olyan tartalmat, amely sérti ezeket az irányelveket vagy a Felhasználási feltételeket</strong>. Egy üzenetet közvetlenül is jelenthetsz vagy értesítheted a csapatunkat a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> címen, ha a sértés egy profilban vagy kihívásban történt. Igyekszünk a lehető leggyorsabban intézkedni. Anyanyelveden is kapcsolatba léphetsz velünk, ha az könnyebb számodra – lehet, hogy Google fordítót kell használnunk, de szeretnénk, ha kényelmesen fordulhatnál hozzánk problémák esetén."
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user