Merge branch 'develop' into release

This commit is contained in:
Sabe Jones 2020-05-28 16:51:37 -05:00
commit d953ea14da
118 changed files with 1812 additions and 1557 deletions

View file

@ -10,6 +10,7 @@ dist/
dist-client/
apidoc_build/
content_cache/
i18n_cache/
node_modules/
# Old migrations, disabled

View file

@ -8,7 +8,7 @@
# Requesting a feature
Habitica uses [Trello](https://trello.com/b/EpoYEYod/habitica) to track feature requests. [Read more](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents).
Habitica uses [this Google form](https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link) to track feature requests. Please post there rather than creating an issue.
# Contributing Code

38
package-lock.json generated
View file

@ -9678,9 +9678,9 @@
"integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is="
},
"moment": {
"version": "2.25.3",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz",
"integrity": "sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg=="
"version": "2.26.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz",
"integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw=="
},
"moment-recur": {
"version": "1.0.7",
@ -9694,7 +9694,6 @@
"version": "3.5.7",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz",
"integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==",
"dev": true,
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@ -9708,7 +9707,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
"dev": true,
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
@ -9717,9 +9715,9 @@
}
},
"mongoose": {
"version": "5.9.14",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.14.tgz",
"integrity": "sha512-LScxCruQv0YpU/9DasKdThd+3r3PFQbCgesmfa6g0pTDOIiD1A9N9OQsGYrDf+dyUksfLCxJYYF9qpBHLvS1tg==",
"version": "5.9.15",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.15.tgz",
"integrity": "sha512-dGIDqaQkAJoLl7lsRLy70mDg+VcL1IPOHr/0f23MLF45PtnM5exRdmienfyVjdrSVGgTus+1sMUKef6vSnrDZg==",
"requires": {
"bson": "^1.1.4",
"kareem": "2.3.1",
@ -9732,30 +9730,6 @@
"safe-buffer": "5.1.2",
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
"mongodb": {
"version": "3.5.7",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz",
"integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
"denque": "^1.4.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
}
}
},
"mongoose-legacy-pluralize": {

View file

@ -46,9 +46,9 @@
"lodash": "^4.17.15",
"merge-stream": "^2.0.0",
"method-override": "^3.0.0",
"moment": "^2.25.3",
"moment": "^2.26.0",
"moment-recur": "^1.0.7",
"mongoose": "^5.9.14",
"mongoose": "^5.9.15",
"morgan": "^1.10.0",
"nconf": "^0.10.0",
"node-gcm": "^1.0.2",

View file

@ -1,16 +0,0 @@
{
"env": {
"test": {
plugins: [
["istanbul"],
],
},
},
"presets": [
["es2015", { modules: false }],
],
"plugins": [
"transform-object-rest-spread",
],
"comments": false,
}

View file

@ -1,21 +0,0 @@
/* eslint-disable */
// TODO verify if it's needed, added because Axios require Promise in the global scope
// and babel-runtime doesn't affect external libraries
require('babel-polyfill');
// Automatically setup SinonJS' sandbox for each test
beforeEach(() => {
global.sandbox = sinon.createSandbox();
});
afterEach(() => {
global.sandbox.restore();
});
// require all test files
const testsContext = require.context('./specs', true, /\.js$/);
testsContext.keys().forEach(testsContext);
// require all .vue and .js files except main.js for coverage.
const srcContext = require.context('../../../website/client', true, /^\.\/(?=(?!main(\.js)?$))(?=(.*\.(vue|js)$))/);
srcContext.keys().forEach(srcContext);

View file

@ -1,40 +0,0 @@
/* eslint-disable */
// This is a karma config file. For more details see
// http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack
// https://github.com/webpack/karma-webpack
// Necessary for babel to respect the env version of .babelrc which is necessary
// Because inject-loader does not work with ["es2015", { modules: false }] that we use
// in order to let webpack2 handle the imports
process.env.CHROME_BIN = require('puppeteer').executablePath();
// eslint-disable-line no-process-env
process.env.BABEL_ENV = process.env.NODE_ENV; // eslint-disable-line no-process-env
const webpackConfig = require('../../../webpack/webpack.test.conf');
module.exports = function (config) {
config.set({
// to run in additional browsers:
// 1. install corresponding karma launcher
// http://karma-runner.github.io/0.13/config/browsers.html
// 2. add it to the `browsers` array below.
browsers: ['ChromeHeadless'],
frameworks: ['mocha', 'sinon-stub-promise', 'sinon-chai', 'chai-as-promised', 'chai'],
reporters: ['spec', 'coverage'],
files: ['./index.js'],
preprocessors: {
'./index.js': ['webpack', 'sourcemap'],
},
webpack: webpackConfig,
webpackMiddleware: {
noInfo: true,
},
coverageReporter: {
dir: '../../../coverage/client-unit',
reporters: [
{ type: 'lcov', subdir: '.' },
{ type: 'text-summary' },
],
},
});
};

File diff suppressed because it is too large Load diff

View file

@ -13,11 +13,11 @@
"test:unit": "vue-cli-service test:unit --require ./tests/unit/helpers.js"
},
"dependencies": {
"@storybook/addon-actions": "^5.3.18",
"@storybook/addon-knobs": "^5.3.18",
"@storybook/addon-links": "^5.3.18",
"@storybook/addon-notes": "^5.3.18",
"@storybook/vue": "^5.3.18",
"@storybook/addon-actions": "^5.3.19",
"@storybook/addon-knobs": "^5.3.19",
"@storybook/addon-links": "^5.3.19",
"@storybook/addon-notes": "^5.3.19",
"@storybook/vue": "^5.3.19",
"@vue/cli-plugin-babel": "^4.3.1",
"@vue/cli-plugin-eslint": "^4.3.1",
"@vue/cli-plugin-router": "^4.3.1",
@ -28,8 +28,8 @@
"axios": "^0.19.2",
"axios-progress-bar": "^1.2.0",
"babel-eslint": "^10.1.0",
"bootstrap": "^4.4.1",
"bootstrap-vue": "^2.14.0",
"bootstrap": "^4.5.0",
"bootstrap-vue": "^2.15.0",
"chai": "^4.1.2",
"core-js": "^3.6.5",
"eslint": "^6.8.0",
@ -38,11 +38,11 @@
"eslint-plugin-vue": "^6.2.2",
"habitica-markdown": "^2.0.0",
"hellojs": "^1.18.4",
"inspectpack": "^4.4.0",
"inspectpack": "^4.5.2",
"intro.js": "^2.9.3",
"jquery": "^3.5.1",
"lodash": "^4.17.15",
"moment": "^2.25.3",
"moment": "^2.26.0",
"nconf": "^0.10.0",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
@ -56,7 +56,7 @@
"vue": "^2.6.11",
"vue-cli-plugin-storybook": "^0.6.1",
"vue-mugen-scroll": "^0.2.6",
"vue-router": "^3.1.6",
"vue-router": "^3.2.0",
"vue-template-compiler": "^2.6.11",
"vuedraggable": "^2.23.2",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec",

View file

@ -297,7 +297,7 @@ export default {
};
},
computed: {
...mapState(['isUserLoggedIn', 'browserTimezoneOffset', 'isUserLoaded']),
...mapState(['isUserLoggedIn', 'browserTimezoneOffset', 'isUserLoaded', 'notificationsRemoved']),
...mapState({ user: 'user.data' }),
isStaticPage () {
return this.$route.meta.requiresLogin === false;
@ -361,13 +361,55 @@ export default {
showSpinner: false,
});
// Set up Error interceptors
axios.interceptors.response.use(response => {
if (this.user && response.data && response.data.notifications) {
this.$set(this.user, 'notifications', response.data.notifications);
axios.interceptors.response.use(response => { // Set up Response interceptors
// Verify that the user was not updated from another browser/app/client
// If it was, sync
const { url } = response.config;
const { method } = response.config;
const isApiCall = url.indexOf('api/v4') !== -1;
const userV = response.data && response.data.userV;
const isCron = url.indexOf('/api/v4/cron') === 0 && method === 'post';
if (this.isUserLoaded && isApiCall && userV) {
const oldUserV = this.user._v;
this.user._v = userV;
// Do not sync again if already syncing
const isUserSync = url.indexOf('/api/v4/user') === 0 && method === 'get';
const isTasksSync = url.indexOf('/api/v4/tasks/user') === 0 && method === 'get';
// exclude chat seen requests because with real time chat they would be too many
const isChatSeen = url.indexOf('/chat/seen') !== -1 && method === 'post';
// exclude POST /api/v4/cron because the user is synced automatically after cron runs
// Something has changed on the user object that was not tracked here, sync the user
if (userV - oldUserV > 1 && !isCron && !isChatSeen && !isUserSync && !isTasksSync) {
Promise.all([
this.$store.dispatch('user:fetch', { forceLoad: true }),
this.$store.dispatch('tasks:fetchUserTasks', { forceLoad: true }),
]);
}
}
// Store the app version from the server
const serverAppVersion = response.data && response.data.appVersion;
if (serverAppVersion && this.$store.state.serverAppVersion !== response.data.appVersion) {
this.$store.state.serverAppVersion = serverAppVersion;
}
// Store the notifications, filtering those that have already been read
// See store/index.js on why this is necessary
if (this.user && response.data && response.data.notifications) {
const filteredNotifications = response.data.notifications.filter(serverNotification => {
if (this.notificationsRemoved.includes(serverNotification.id)) return false;
return true;
});
this.$set(this.user, 'notifications', filteredNotifications);
}
return response;
}, error => {
}, error => { // Set up Error interceptors
if (error.response.status >= 400) {
const isBanned = this.checkForBannedUser(error);
if (isBanned === true) return null; // eslint-disable-line consistent-return
@ -425,51 +467,6 @@ export default {
return Promise.reject(error);
});
axios.interceptors.response.use(response => {
// Verify that the user was not updated from another browser/app/client
// If it was, sync
const { url } = response.config;
const { method } = response.config;
const isApiCall = url.indexOf('api/v4') !== -1;
const userV = response.data && response.data.userV;
const isCron = url.indexOf('/api/v4/cron') === 0 && method === 'post';
if (this.isUserLoaded && isApiCall && userV) {
const oldUserV = this.user._v;
this.user._v = userV;
// Do not sync again if already syncing
const isUserSync = url.indexOf('/api/v4/user') === 0 && method === 'get';
const isTasksSync = url.indexOf('/api/v4/tasks/user') === 0 && method === 'get';
// exclude chat seen requests because with real time chat they would be too many
const isChatSeen = url.indexOf('/chat/seen') !== -1 && method === 'post';
// exclude POST /api/v4/cron because the user is synced automatically after cron runs
// Something has changed on the user object that was not tracked here, sync the user
if (userV - oldUserV > 1 && !isCron && !isChatSeen && !isUserSync && !isTasksSync) {
Promise.all([
this.$store.dispatch('user:fetch', { forceLoad: true }),
this.$store.dispatch('tasks:fetchUserTasks', { forceLoad: true }),
]);
}
}
// Verify the client is updated
// const serverAppVersion = response.data.appVersion;
// let serverAppVersionState = this.$store.state.serverAppVersion;
// if (isApiCall && !serverAppVersionState) {
// this.$store.state.serverAppVersion = serverAppVersion;
// } else if (isApiCall && serverAppVersionState !== serverAppVersion) {
// if (document.activeElement.tagName !== 'INPUT'
// || confirm(this.$t('habiticaHasUpdated'))) {
// location.reload(true);
// }
// }
return response;
});
// Setup listener for title
this.$store.watch(state => state.title, title => {
document.title = title;

View file

@ -16,7 +16,7 @@
<div class="row">
<div
v-for="heroClass in classes"
:key="heroClass"
:key="`${heroClass}-avatar`"
class="col-md-3"
>
<div @click="selectedClass = heroClass">
@ -60,7 +60,7 @@
</div>
<div
v-for="heroClass in classes"
:key="heroClass"
:key="`${heroClass}-explanation`"
>
<div
v-if="selectedClass === heroClass"

View file

@ -20,6 +20,7 @@
class="avatar"
:member="user"
:avatar-only="true"
:hide-class-badge="true"
:with-background="true"
/>
</div>

View file

@ -64,7 +64,7 @@ export default {
this.html = response.data.html;
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('bv::show::modal');
},
methods: {

View file

@ -55,7 +55,7 @@
</div>
<div class="col-12 col-md-6 text-right">
<div
class="box"
class="box member-count"
@click="showMemberModal()"
>
<div
@ -93,6 +93,7 @@
:members="members"
:challenge-id="challengeId"
@member-selected="openMemberProgressModal"
@opened="initialMembersLoad()"
/>
</div>
<div class="col-12 col-md-6 text-right">
@ -279,6 +280,10 @@
font-size: 20px;
vertical-align: bottom;
&.member-count:hover {
cursor: pointer;
}
.svg-icon {
width: 30px;
display: inline-block;
@ -364,6 +369,7 @@ export default {
}),
challenge: {},
members: [],
membersLoaded: false,
tasksByType: {
habit: [],
daily: [],
@ -427,8 +433,6 @@ export default {
this.$router.push('/challenges/findChallenges');
return;
}
this.members = await this
.loadMembers({ challengeId: this.searchId, includeAllPublicFields: true });
const tasks = await this.$store.dispatch('tasks:getChallengeTasks', { challengeId: this.searchId });
this.tasksByType = {
habit: [],
@ -454,7 +458,22 @@ export default {
}
return this.$store.dispatch('members:getChallengeMembers', payload);
},
initialMembersLoad () {
this.$store.state.memberModalOptions.loading = true;
if (!this.membersLoaded) {
this.membersLoaded = true;
this.loadMembers({
challengeId: this.searchId,
includeAllPublicFields: true,
}).then(m => {
this.members.push(...m);
this.$store.state.memberModalOptions.loading = false;
});
} else {
this.$store.state.memberModalOptions.loading = false;
}
},
editTask (task) {
this.taskFormPurpose = 'edit';
this.editingTask = cloneDeep(task);
@ -489,6 +508,8 @@ export default {
this.tasksByType[task.type].splice(index, 1);
},
showMemberModal () {
this.initialMembersLoad();
this.$root.$emit('habitica:show-member-modal', {
challengeId: this.challenge._id,
groupId: 'challenge', // @TODO: change these terrible settings
@ -501,8 +522,8 @@ export default {
async joinChallenge () {
this.user.challenges.push(this.searchId);
this.challenge = await this.$store.dispatch('challenges:joinChallenge', { challengeId: this.searchId });
this.members = await this
.loadMembers({ challengeId: this.searchId, includeAllPublicFields: true });
this.membersLoaded = false;
this.members = [];
await this.$store.dispatch('tasks:fetchUserTasks', { forceLoad: true });
},
@ -511,10 +532,11 @@ export default {
},
async updateChallenge () {
this.challenge = await this.$store.dispatch('challenges:getChallenge', { challengeId: this.searchId });
this.members = await this
.loadMembers({ challengeId: this.searchId, includeAllPublicFields: true });
this.membersLoaded = false;
this.members = [];
},
closeChallenge () {
this.initialMembersLoad();
this.$root.$emit('bv::show::modal', 'close-challenge-modal');
},
edit () {

View file

@ -223,7 +223,7 @@ export default {
created () {
window.addEventListener('scroll', this.handleScroll);
},
destroyed () {
beforeDestroy () {
window.removeEventListener('scroll', this.handleScroll);
},
methods: {

View file

@ -81,7 +81,7 @@ export default {
this.$root.$emit('bv::show::modal', 'copyAsTodo');
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica::copy-as-todo');
},
methods: {

View file

@ -122,10 +122,10 @@ export default {
};
},
},
created () {
mounted () {
this.$root.$on('habitica::report-chat', this.handleReport);
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica::report-chat', this.handleReport);
},
methods: {

View file

@ -385,7 +385,7 @@
import extend from 'lodash/extend';
import groupUtilities from '@/mixins/groupsUtilities';
import styleHelper from '@/mixins/styleHelper';
import { mapState } from '@/libs/store';
import { mapState, mapGetters } from '@/libs/store';
import * as Analytics from '@/libs/analytics';
import startQuestModal from './startQuestModal';
import questDetailsModal from './questDetailsModal';
@ -447,6 +447,7 @@ export default {
bronzeGuildBadgeIcon,
}),
members: [],
membersLoaded: false,
selectedQuest: {},
chat: {
submitDisable: false,
@ -455,7 +456,12 @@ export default {
};
},
computed: {
...mapState({ user: 'user.data' }),
...mapState({
user: 'user.data',
}),
...mapGetters({
partyMembers: 'party:members',
}),
partyStore () {
return this.$store.state.party;
},
@ -487,10 +493,15 @@ export default {
}
},
},
mounted () {
async mounted () {
if (this.isParty) this.searchId = 'party';
if (!this.searchId) this.searchId = this.groupId;
this.load();
await this.fetchGuild();
this.$root.$on('updatedGroup', this.onGroupUpdate);
},
beforeDestroy () {
this.$root.$off('updatedGroup', this.onGroupUpdate);
},
beforeRouteUpdate (to, from, next) {
this.$set(this, 'searchId', to.params.groupId);
@ -501,19 +512,9 @@ export default {
acceptCommunityGuidelines () {
this.$store.dispatch('user:set', { 'flags.communityGuidelinesAccepted': true });
},
async load () {
if (this.isParty) {
this.searchId = 'party';
// @TODO: Set up from old client. Decide what we need and what we don't
// Check Desktop notifs
// Load invites
}
await this.fetchGuild();
this.$root.$on('updatedGroup', group => {
const updatedGroup = extend(this.group, group);
this.$set(this.group, updatedGroup);
});
onGroupUpdate (group) {
const updatedGroup = extend(this.group, group);
this.$set(this.group, updatedGroup);
},
/**
@ -531,6 +532,26 @@ export default {
return this.$store.dispatch('members:getGroupMembers', payload);
},
showMemberModal () {
this.$store.state.memberModalOptions.loading = true;
if (this.isParty) {
this.membersLoaded = true;
this.members = this.partyMembers;
this.$store.state.memberModalOptions.loading = false;
} else if (!this.membersLoaded) {
this.membersLoaded = true;
this.loadMembers({
groupId: this.group._id,
includeAllPublicFields: true,
}).then(m => {
this.members.push(...m);
this.$store.state.memberModalOptions.loading = false;
});
} else {
this.$store.state.memberModalOptions.loading = false;
}
this.$root.$emit('habitica:show-member-modal', {
groupId: this.group._id,
group: this.group,
@ -565,19 +586,13 @@ export default {
const groupId = this.searchId === 'party' ? this.user.party._id : this.searchId;
if (this.hasUnreadMessages(groupId)) {
// Delay by 1sec to make sure it returns after
// other requests that don't have the notification marked as read
setTimeout(() => {
this.$store.dispatch('chat:markChatSeen', { groupId });
this.$delete(this.user.newMessages, groupId);
}, 1000);
const notification = this.user
.notifications.find(n => n.type === 'NEW_CHAT_MESSAGE' && n.data.group.id === groupId);
const notificationId = notification && notification.id;
this.$store.dispatch('chat:markChatSeen', { groupId, notificationId });
}
this.members = await this.loadMembers({
groupId: this.group._id,
includeAllPublicFields: true,
});
},
// returns the notification id or false
hasUnreadMessages (groupId) {
if (this.user.newMessages[groupId]) return true;

View file

@ -99,14 +99,21 @@
</div>
</div>
</div>
<div v-if="selectedPage === 'members'">
<loading-gryphon v-if="loading" />
<div
v-if="selectedPage === 'members' && !loading"
:class="{'mt-1': invites.length === 0}"
>
<div
v-for="(member, index) in sortedMembers"
:key="member._id"
class="row"
>
<div class="col-11 no-padding-left">
<member-details :member="member" />
<member-details
:member="member"
:class-badge-position="'next-to-name'"
/>
</div>
<div class="col-1 actions">
<b-dropdown right="right">
@ -201,7 +208,7 @@
class="row gradient"
></div>
</div>
<div v-if="selectedPage === 'invites'">
<div v-if="selectedPage === 'invites' && !loading">
<div
v-for="(member, index) in invites"
:key="member._id"
@ -234,14 +241,6 @@
</div>
</div>
</div>
<div class="modal-footer">
<button
class="btn btn-primary"
@click="close()"
>
{{ $t('close') }}
</button>
</div>
</b-modal>
</div>
</template>
@ -254,11 +253,6 @@
box-shadow: 0 1px 2px 0 rgba(26, 24, 29, 0.24);
}
.modal-footer {
background-color: #edecee;
border-radius: 0 0 8px 8px;
}
.small-text, .character-name {
color: #878190;
}
@ -270,6 +264,8 @@
.modal-body {
padding-left: 0;
padding-right: 0;
padding-bottom: 0;
padding-top: 0;
}
.member-details {
@ -378,6 +374,7 @@ import isEmpty from 'lodash/isEmpty';
import { mapState } from '@/libs/store';
import removeMemberModal from '@/components/members/removeMemberModal';
import loadingGryphon from '@/components/ui/loadingGryphon';
import MemberDetails from '../memberDetails';
import removeIcon from '@/assets/members/remove.svg';
import messageIcon from '@/assets/members/message.svg';
@ -388,6 +385,7 @@ export default {
components: {
MemberDetails,
removeMemberModal,
loadingGryphon,
},
props: ['hideBadge'],
data () {
@ -474,6 +472,9 @@ export default {
challengeId () {
return this.$store.state.memberModalOptions.challengeId;
},
loading () {
return this.$store.state.memberModalOptions.loading;
},
sortedMembers () {
let sortedMembers = this.members.slice(); // shallow clone to avoid infinite loop
@ -504,16 +505,6 @@ export default {
},
},
watch: {
groupId () {
// @TODO: We might not need this since groupId is computed now
this.getMembers();
},
challengeId () {
this.getMembers();
},
group () {
this.getMembers();
},
// Watches `searchTerm` and if present, performs a `searchMembers` action
// and usual `getMembers` otherwise
searchTerm () {
@ -537,7 +528,7 @@ export default {
this.getMembers();
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica:show-member-modal');
},
methods: {
@ -558,8 +549,9 @@ export default {
});
},
async getMembers () {
const { groupId } = this;
this.members = this.$store.state.memberModalOptions.viewingMembers;
const { groupId } = this;
if (groupId && groupId !== 'challenge') {
const invites = await this.$store.dispatch('members:getGroupInvites', {
groupId,
@ -567,8 +559,6 @@ export default {
});
this.invites = invites;
}
this.members = this.$store.state.memberModalOptions.viewingMembers;
},
async clickMember (uid, forceShow) {
const user = this.$store.state.user.data;

View file

@ -209,7 +209,7 @@ export default {
this.$root.$on('selectQuest', this.selectQuest);
},
destroyed () {
beforeDestroy () {
this.$root.$off('selectQuest', this.selectQuest);
},
methods: {

View file

@ -222,8 +222,8 @@ export default {
this.$root.$emit('bv::show::modal', 'invite-modal');
});
},
destroyed () {
this.$root.off('inviteModal::inviteToGroup');
beforeDestroy () {
this.$root.$off('inviteModal::inviteToGroup');
},
methods: {
...mapActions({
@ -250,6 +250,7 @@ export default {
groupId: party.data._id,
viewingMembers: this.partyMembers,
group: party.data,
fetchMoreMembers: p => this.$store.dispatch('members:getGroupMembers', p),
});
},
setPartyMembersWidth ($event) {

View file

@ -182,10 +182,10 @@ export default {
remove () {
if (this.notification.type === 'NEW_CHAT_MESSAGE') {
const groupId = this.notification.data.group.id;
this.$store.dispatch('chat:markChatSeen', { groupId });
if (this.user.newMessages[groupId]) {
this.$delete(this.user.newMessages, groupId);
}
this.$store.dispatch('chat:markChatSeen', {
groupId,
notificationId: this.notification.id,
});
} else {
this.readNotification({ notificationId: this.notification.id });
}

View file

@ -1,6 +1,6 @@
<template>
<base-notification
v-if="worldBoss.active"
v-if="worldBoss && worldBoss.active"
:can-remove="false"
:notification="{}"
:read-after-click="false"
@ -11,10 +11,16 @@
class="background"
>
<div class="text">
<div class="title">
<div
v-once
class="title"
>
{{ $t('worldBoss') }}
</div>
<div class="sub-title">
<div
v-once
class="sub-title"
>
{{ $t('questDysheartenerText') }}
</div>
</div>
@ -40,6 +46,7 @@
</div>
<div class="pending-damage">
<div
v-once
class="svg-icon"
v-html="icons.sword"
></div>
@ -182,11 +189,13 @@ export default {
sword,
}),
questData,
worldBoss: {},
};
},
computed: {
...mapState({ user: 'user.data' }),
...mapState({
user: 'user.data',
worldBoss: 'worldState.data.worldBoss',
}),
bossHp () {
if (this.worldBoss && this.worldBoss.progress) {
return this.worldBoss.progress.hp;
@ -195,8 +204,7 @@ export default {
},
},
async mounted () {
const result = await this.$store.dispatch('worldState:getWorldState');
this.worldBoss = result.worldBoss;
await this.$store.dispatch('worldState:getWorldState');
},
methods: {
action () {

View file

@ -124,7 +124,7 @@ export default {
mounted () {
this.$root.$on('hatchedPet::open', this.openDialog);
},
destroyed () {
beforeDestroy () {
this.$root.$off('hatchedPet::open', this.openDialog);
},
methods: {

View file

@ -102,7 +102,7 @@ export default {
mounted () {
this.$root.$on('habitica::mount-raised', this.openDialog);
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica::mount-raised', this.openDialog);
},
methods: {

View file

@ -3,6 +3,7 @@
class="create-dropdown"
:text="text"
no-flip="no-flip"
@show="$emit('opened')"
>
<b-dropdown-form
:disabled="false"
@ -10,10 +11,14 @@
>
<input
v-model="searchTerm"
class="form-control"
class="form-control member-input"
type="text"
>
</b-dropdown-form>
<loading-gryphon
v-if="loading"
:height="32"
/>
<b-dropdown-item
v-for="member in memberResults"
:key="member._id"
@ -25,13 +30,25 @@
</template>
<style lang="scss" scoped>
.create-dropdown ::v-deep form.b-dropdown-form {
padding-left: 8px;
padding-right: 8px;
}
.create-dropdown ::v-deep ul.dropdown-menu {
width: 100%;
}
</style>
<script>
// @TODO: how do we subclass this rather than type checking?
import challengeMemberSearchMixin from '@/mixins/challengeMemberSearch';
import loadingGryphon from '@/components/ui/loadingGryphon';
export default {
components: {
loadingGryphon,
},
mixins: [challengeMemberSearchMixin],
props: {
text: {
@ -52,6 +69,11 @@ export default {
memberResults: [],
};
},
computed: {
loading () {
return this.$store.state.memberModalOptions.loading;
},
},
watch: {
memberResults () {
if (this.memberResults.length > 10) this.memberResults.length = 10;

View file

@ -226,8 +226,6 @@ export default {
beforeDestroy () {
this.$el.removeEventListener('selectstart', () => this.handleSelectStart());
this.$el.removeEventListener('mouseup', () => this.handleSelectChange());
},
destroyed () {
window.removeEventListener('scroll', this.handleScroll);
},
computed: {

View file

@ -817,10 +817,8 @@ export default {
break;
}
case 'CRON':
if (notification.data) {
if (notification.data.hp) this.hp(notification.data.hp, 'hp');
if (notification.data.mp && this.userHasClass) this.mp(notification.data.mp);
}
// Not needed because it's shown already by the userHp and userMp watchers
// Keeping an empty block so that it gets read
break;
case 'SCORED_TASK':
// Search if it is a read notification

View file

@ -125,7 +125,7 @@ export default {
});
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica::pay-with-amazon');
},
methods: {

View file

@ -79,7 +79,7 @@ export default {
this.$root.$emit('bv::show::modal', 'subscription-cancel-modal');
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica:cancel-subscription-confirm');
},
methods: {

View file

@ -108,7 +108,7 @@ export default {
this.$root.$emit('bv::show::modal', 'subscription-canceled-modal');
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica:subscription-canceled');
},
methods: {

View file

@ -237,7 +237,7 @@ export default {
this.$root.$emit('bv::show::modal', 'payments-success-modal');
});
},
destroyed () {
beforeDestroy () {
this.paymentData = {};
this.$root.$off('habitica:payments-success');
},

View file

@ -161,7 +161,7 @@
import _filter from 'lodash/filter';
import _map from 'lodash/map';
import _throttle from 'lodash/throttle';
import { mapState } from '@/libs/store';
import { mapState, mapGetters } from '@/libs/store';
import KeysToKennel from './keysToKennel';
import EquipmentSection from './equipmentSection';
@ -221,8 +221,6 @@ export default {
hideLocked: false,
hidePinned: false,
broken: false,
};
},
computed: {
@ -232,6 +230,9 @@ export default {
userStats: 'user.data.stats',
userItems: 'user.data.items',
}),
...mapGetters({
broken: 'worldState.brokenMarket',
}),
market () {
return shops.getMarketShop(this.user);
},
@ -303,10 +304,7 @@ export default {
}, 250),
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState && worldState.worldBoss
&& worldState.worldBoss.extra && worldState.worldBoss.extra.worldDmg
&& worldState.worldBoss.extra.worldDmg.market;
await this.$store.dispatch('worldState:getWorldState');
},
methods: {
sellItem (itemScope) {

View file

@ -196,7 +196,7 @@ export default {
this.$root.$emit('bv::show::modal', 'sell-modal');
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('sellItem');
},
methods: {

View file

@ -456,7 +456,7 @@ import _sortBy from 'lodash/sortBy';
import _throttle from 'lodash/throttle';
import _groupBy from 'lodash/groupBy';
import _map from 'lodash/map';
import { mapState } from '@/libs/store';
import { mapState, mapGetters } from '@/libs/store';
import ShopItem from '../shopItem';
import Item from '@/components/inventory/item';
@ -503,8 +503,6 @@ export default {
hideLocked: false,
hidePinned: false,
broken: false,
};
},
computed: {
@ -514,6 +512,9 @@ export default {
userStats: 'user.data.stats',
userItems: 'user.data.items',
}),
...mapGetters({
broken: 'worldState.brokenQuests',
}),
shop () {
return shops.getQuestShop(this.user);
},
@ -540,9 +541,7 @@ export default {
}, 250),
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState && worldState.worldBoss && worldState.worldBoss.extra
&& worldState.worldBoss.extra.worldDmg && worldState.worldBoss.extra.worldDmg.quests;
await this.$store.dispatch('worldState:getWorldState');
},
methods: {
questItems (category, sortBy, searchBy, hideLocked, hidePinned) {

View file

@ -373,7 +373,7 @@ import _sortBy from 'lodash/sortBy';
import _throttle from 'lodash/throttle';
import _groupBy from 'lodash/groupBy';
import _reverse from 'lodash/reverse';
import { mapState } from '@/libs/store';
import { mapState, mapGetters } from '@/libs/store';
import Checkbox from '@/components/ui/checkbox';
import PinBadge from '@/components/ui/pinBadge';
@ -434,8 +434,6 @@ export default {
featuredGearBought: false,
backgroundUpdate: new Date(),
broken: false,
};
},
computed: {
@ -444,6 +442,9 @@ export default {
user: 'user.data',
userStats: 'user.data.stats',
}),
...mapGetters({
broken: 'worldState.brokenSeasonalShop',
}),
usersOfficalPinnedItems () {
return getOfficialPinnedItems(this.user);
@ -516,14 +517,11 @@ export default {
}, 250),
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState && worldState.worldBoss && worldState.worldBoss.extra
&& worldState.worldBoss.extra.worldDmg && worldState.worldBoss.extra.worldDmg.seasonalShop;
},
created () {
this.$root.$on('buyModal::boughtItem', () => {
this.backgroundUpdate = new Date();
});
await this.$store.dispatch('worldState:getWorldState');
},
beforeDestroy () {
this.$root.$off('buyModal::boughtItem');

View file

@ -395,7 +395,7 @@ export default {
this.searchTextThrottled = this.searchText.toLowerCase();
}, 250),
},
created () {
mounted () {
this.$root.$on('buyModal::boughtItem', () => {
this.backgroundUpdate = new Date();
});

View file

@ -91,7 +91,7 @@ export default {
brokenChallengeTask: {},
};
},
created () {
mounted () {
this.$root.$on('handle-broken-task', task => {
this.brokenChallengeTask = { ...task };
this.$root.$emit('bv::show::modal', 'broken-task-modal');

View file

@ -515,7 +515,7 @@ export default {
this.loadCompletedTodos();
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('buyModal::boughtItem');
if (this.type !== 'todo') return;
this.$root.$off(EVENTS.RESYNC_COMPLETED);

View file

@ -1323,7 +1323,7 @@ export default {
created () {
document.addEventListener('keyup', this.handleEsc);
},
destroyed () {
beforeDestroy () {
document.removeEventListener('keyup', this.handleEsc);
},
methods: {

View file

@ -91,7 +91,7 @@ export default {
mounted () {
document.documentElement.addEventListener('click', this._clickOutListener);
},
destroyed () {
beforeDestroy () {
document.removeEventListener('click', this._clickOutListener);
},
methods: {

View file

@ -0,0 +1,57 @@
<template>
<div class="loading-gryphon-wrapper">
<div
v-once
class="svg-icon loading-gryphon"
:style="{width: `${width}px`, height: `${height}px`}"
v-html="icons.gryphon"
></div>
</div>
</template>
<style lang='scss' scoped>
.loading-gryphon-wrapper {
width: 100%;
padding-top: 72px;
padding-bottom: 72px;
}
.loading-gryphon {
color: #6133b4;
margin: 0 auto;
animation: pulsate 2s linear infinite;
}
@keyframes pulsate {
from { opacity: 1; }
50% { opacity: 0.5; }
to { opacity: 1; }
}
</style>
<script>
import gryphon from '@/assets/svg/gryphon.svg';
export default {
props: {
height: {
type: Number,
default: 48,
},
},
data () {
return {
icons: Object.freeze({
gryphon,
}),
};
},
computed: {
// The original SVG is 70px tall and 64px wide, we calculate the width based on that
// in order to keep the right proportions
width () {
return (this.height / 70) * 64;
},
},
};
</script>

View file

@ -4,6 +4,11 @@
class="profile"
>
<div class="header">
<span
class="close-icon svg-icon inline icon-10"
@click="close()"
v-html="icons.close"
></span>
<div class="profile-actions">
<router-link
:to="{ path: '/private-messages', query: { uuid: user._id } }"
@ -717,6 +722,7 @@ import lock from '@/assets/svg/lock.svg';
import challenge from '@/assets/svg/challenge.svg';
import member from '@/assets/svg/member-icon.svg';
import staff from '@/assets/svg/tier-staff.svg';
import svgClose from '@/assets/svg/close.svg';
// @TODO: EMAILS.COMMUNITY_MANAGER_EMAIL
const COMMUNITY_MANAGER_EMAIL = 'admin@habitica.com';
@ -742,6 +748,7 @@ export default {
lock,
member,
staff,
close: svgClose,
}),
adminToolsLoaded: false,
userIdToMessage: '',
@ -987,6 +994,9 @@ export default {
const status = this.achievementsCategories[categoryKey].open;
this.achievementsCategories[categoryKey].open = !status;
},
close () {
this.$root.$emit('bv::hide::modal', 'profile');
},
},
};
</script>

View file

@ -45,7 +45,7 @@ export default {
this.$root.$emit('bv::show::modal', 'profile');
});
},
destroyed () {
beforeDestroy () {
this.$root.$off('habitica:show-profile');
},
methods: {

View file

@ -6,12 +6,14 @@ import axios from 'axios';
export function asyncResourceFactory () {
return {
loadingStatus: 'NOT_LOADED', // NOT_LOADED, LOADING, LOADED
appVersionOnLoad: null, // record the server app version the last time the resource was loaded
data: null,
};
}
export function loadAsyncResource ({
store, path, url, deserialize, forceLoad = false,
store, path, url, deserialize,
forceLoad = false, reloadOnAppVersionChange = false,
}) {
if (!store) throw new Error('"store" is required and must be the application store.');
if (!path) throw new Error('The path to the resource in the application state is required.');
@ -22,7 +24,16 @@ export function loadAsyncResource ({
if (!resource) throw new Error(`No resouce found at path "${path}".`);
const { loadingStatus } = resource;
if (loadingStatus === 'LOADED' && !forceLoad) {
// Has the server been updated since we last loaded this resource?
const appVersionHasChanged = loadingStatus === 'LOADED'
&& store.state.serverAppVersion
&& store.state.serverAppVersion !== resource.appVersionOnLoad;
let shouldUpdate = false;
if (forceLoad) shouldUpdate = true;
if (appVersionHasChanged && reloadOnAppVersionChange) shouldUpdate = true;
if (loadingStatus === 'LOADED' && !shouldUpdate) {
return Promise.resolve(resource);
} if (loadingStatus === 'LOADING') {
return new Promise((resolve, reject) => {
@ -34,15 +45,19 @@ export function loadAsyncResource ({
return reject(); // TODO add reason?
});
});
} if (loadingStatus === 'NOT_LOADED' || forceLoad) {
return axios.get(url).then(response => { // TODO support more params
} if (loadingStatus === 'NOT_LOADED' || shouldUpdate) { // @TODO set loadingStatus back to LOADING?
return axios.get(url).then(response => { // @TODO support more params
resource.loadingStatus = 'LOADED';
// deserialize can be a promise
return Promise.resolve(deserialize(response)).then(deserializedData => {
resource.data = deserializedData;
// record the app version when the resource was loaded
// allows reloading if the app version has changed
resource.appVersionOnLoad = store.state.serverAppVersion;
return resource;
});
});
}
return Promise.reject(new Error(`Invalid loading status "${loadingStatus} for resource at "${path}".`));
}

View file

@ -34,7 +34,6 @@ export function setUpLogging () { // eslint-disable-line import/prefer-default-e
_LTracker.push({
err,
vm,
info,
});
};

View file

@ -662,8 +662,9 @@ export default {
this.selectConversation(this.initiatedConversation.uuid);
}
},
destroyed () {
beforeDestroy () {
this.$root.$off(EVENTS.RESYNC_COMPLETED);
this.$root.$off(EVENTS.PM_REFRESH);
},
computed: {
...mapState({ user: 'user.data' }),

View file

@ -1,4 +1,5 @@
import axios from 'axios';
import Vue from 'vue';
import * as Analytics from '@/libs/analytics';
export async function getChat (store, payload) {
@ -70,8 +71,15 @@ export async function clearFlagCount (store, payload) {
}
export async function markChatSeen (store, payload) {
if (store.state.user.newMessages) delete store.state.user.newMessages[payload.groupId];
const url = `/api/v4/groups/${payload.groupId}/chat/seen`;
const response = await axios.post(url);
if (store.state.user.data.newMessages[payload.groupId]) {
Vue.delete(store.state.user.data.newMessages, payload.groupId);
}
if (payload.notificationId) {
store.state.notificationsRemoved.push(payload.notificationId);
}
return response.data.data;
}

View file

@ -74,8 +74,9 @@ export async function join (store, payload) {
if (invitationI !== -1) invitations.parties.splice(invitationI, 1);
user.party._id = groupId;
Analytics.updateUser({ partyID: groupId });
// load the party members so that they get shown in the header
store.dispatch('party:getMembers');
}
return response.data.data;

View file

@ -15,7 +15,7 @@ import * as tags from './tags';
import * as hall from './hall';
import * as shops from './shops';
import * as snackbars from './snackbars';
import * as worldState from './world-state';
import * as worldState from './worldState';
// Actions should be named as 'actionName' and can be accessed as 'namespace:actionName'
// Example: fetch in user.js -> 'user:fetch'

View file

@ -3,6 +3,7 @@ import axios from 'axios';
export async function readNotification (store, payload) {
const url = `/api/v4/notifications/${payload.notificationId}/read`;
const response = await axios.post(url);
store.state.notificationsRemoved.push(payload.notificationId);
return response.data.data;
}
@ -11,6 +12,7 @@ export async function readNotifications (store, payload) {
const response = await axios.post(url, {
notificationIds: payload.notificationIds,
});
store.state.notificationsRemoved.push(...payload.notificationIds);
return response.data.data;
}

View file

@ -1,7 +0,0 @@
import axios from 'axios';
export async function getWorldState () { // eslint-disable-line import/prefer-default-export
const url = '/api/v4/world-state';
const response = await axios.get(url);
return response.data.data;
}

View file

@ -0,0 +1,14 @@
import { loadAsyncResource } from '@/libs/asyncResource';
export async function getWorldState (store, options = {}) {
return loadAsyncResource({
store,
path: 'worldState',
url: '/api/v4/world-state',
deserialize (response) {
return response.data.data;
},
forceLoad: options.forceLoad,
reloadOnAppVersionChange: true, // reload when the server has been updated
});
}

View file

@ -4,6 +4,7 @@ import * as shops from './shops';
import * as tasks from './tasks';
import * as party from './party';
import * as members from './members';
import * as worldState from './worldState';
// Getters should be named as 'getterName' and can be accessed as 'namespace:getterName'
// Example: gems in user.js -> 'user:gems'
@ -14,6 +15,7 @@ const getters = flattenAndNamespace({
party,
members,
shops,
worldState,
});
export default getters;

View file

@ -0,0 +1,23 @@
function getWorldDamage (store) {
const worldState = store.state.worldState.data;
return worldState
&& worldState.worldBoss
&& worldState.worldBoss.extra
&& worldState.worldBoss.extra.worldDmg;
}
export function brokenSeasonalShop (store) {
const worldDmg = getWorldDamage(store);
return worldDmg && worldDmg.seasonalShop;
}
export function brokenMarket (store) {
const worldDmg = getWorldDamage(store);
return worldDmg && worldDmg.market;
}
export function brokenQuests (store) {
const worldDmg = getWorldDamage(store);
return worldDmg && worldDmg.quests;
}

View file

@ -50,12 +50,20 @@ export default function () {
actions,
getters,
state: {
serverAppVersion: '',
serverAppVersion: null,
title: 'Habitica',
isUserLoggedIn,
isUserLoaded: false, // Means the user and the user's tasks are ready
// Means the user and the user's tasks are ready
// @TODO use store.user.loaded since it's an async resource?
isUserLoaded: false,
isAmazonReady: false, // Whether the Amazon Payments lib can be used
user: asyncResourceFactory(),
// Keep track of the ids of notifications that have been removed
// to make sure they don't get shown again. It happened due to concurrent requests
// which in some cases could result in a read notification showing up again
// see https://github.com/HabitRPG/habitica/issues/9242
notificationsRemoved: [],
worldState: asyncResourceFactory(),
credentials: isUserLoggedIn ? {
API_ID: AUTH_SETTINGS.auth.apiId,
API_TOKEN: AUTH_SETTINGS.auth.apiToken,
@ -65,6 +73,7 @@ export default function () {
// in app.vue
browserTimezoneOffset,
tasks: asyncResourceFactory(), // user tasks
// @TODO use asyncresource?
completedTodosStatus: 'NOT_LOADED',
party: asyncResourceFactory(),
partyMembers: asyncResourceFactory(),
@ -105,6 +114,7 @@ export default function () {
groupId: '',
challengeId: '',
group: {},
loading: false,
},
openedItemRows: [],
spellOptions: {

View file

@ -123,6 +123,56 @@ describe('async resource', () => {
expect(axios.get).to.have.been.calledOnce;
});
describe('reloadOnAppVersionChange', async () => {
let store;
beforeEach(() => {
store = generateStore();
store.state.worldState.loadingStatus = 'LOADED';
store.state.serverAppVersion = 1;
store.state.worldState.appVersionOnLoad = 1;
});
it('load the resource if it is loaded but the appVersion has changed', async () => {
store.state.serverAppVersion = 2;
sandbox.stub(axios, 'get').withArgs('/api/v4/world-state').returns(Promise.resolve({
data: { data: { _id: 1 } },
}));
const resource = await loadAsyncResource({
store,
path: 'worldState',
url: '/api/v4/world-state',
reloadOnAppVersionChange: true,
deserialize (response) {
return response.data.data;
},
});
expect(resource).to.equal(store.state.worldState);
expect(resource.loadingStatus).to.equal('LOADED');
expect(resource.data._id).to.equal(1);
expect(axios.get).to.have.been.calledOnce;
});
it('does not load the resource if it is loaded but the appVersion has changed', async () => {
sandbox.stub(axios, 'get').returns(Promise.resolve({ data: { data: { _id: 1 } } }));
const resource = await loadAsyncResource({
store,
path: 'worldState',
url: '/api/v4/world-state',
reloadOnAppVersionChange: true,
deserialize (response) {
return response.data.data;
},
});
expect(resource).to.equal(store.state.worldState);
expect(axios.get).to.not.have.been.called;
});
});
it('does not send multiple requests if the resource is being loaded', async () => {
const store = generateStore();
store.state.user.loadingStatus = 'LOADING';

View file

@ -78,5 +78,8 @@
"achievementHatchedPet": "Излюпи Животно",
"viewAchievements": "Постижения",
"letsGetStarted": "Нека да започнем!",
"onboardingProgress": "<%= percentage %>% напредък"
"onboardingProgress": "<%= percentage %>% напредък",
"achievementBareNecessitiesModalText": "Завършихте мисиите за Маймуна, Ленивец и Фиданка!",
"achievementBareNecessitiesText": "Завършили са всички мисии за Маймуна, Ленивец и Фиданка.",
"achievementBareNecessities": "От първа необходимост"
}

View file

@ -413,7 +413,7 @@
"backgroundMedievalKitchenNotes": "Сгответе страшна буря в Средновековна Кухня.",
"backgroundMedievalKitchenText": "Средновековна Кухня",
"backgrounds022019": "Комплект 57: Открит Февруари 2019",
"backgroundAmongGiantAnemonesText": "Измежду Гигантски Актиниѝ",
"backgroundAmongGiantAnemonesText": "Сред Гигантски Анемони",
"backgroundFlyingOverTropicalIslandsNotes": "Позволете на гледката да ви отнеме дъхът, докату Прелетявате над Тропически Острови.",
"backgroundFlyingOverTropicalIslandsText": "Прелет над Тропически Острови",
"backgroundLakeWithFloatingLanternsNotes": "Наблюдавайте звездите от фестивалната атмосфера на Езеро с Плуващи Фенери.",
@ -449,5 +449,37 @@
"backgrounds032019": "КОМПЛЕКТ 58: Открит Март 2019",
"backgroundValentinesDayFeastingHallNotes": "Почуствайте любовта в Свети Валентинска Банкетна Зала.",
"backgroundValentinesDayFeastingHallText": "Свети Валентинска Банкетна Зала",
"backgroundOldFashionedBakeryNotes": "Насладете се на апетитната миризмата отвън една Старовремна Пекарня."
"backgroundOldFashionedBakeryNotes": "Насладете се на апетитната миризмата отвън една Старовремна Пекарня.",
"backgrounds122019": "КОМПЛЕКТ 67: декември 2019",
"backgroundPotionShopNotes": "Намерете елексир за всяко заболяване в Магазин за Отвари.",
"backgroundPotionShopText": "Магазин за Отвари",
"backgroundFlyingInAThunderstormNotes": "Гонете Буйна Гръмотевична Буря колкото близко смеете.",
"backgroundFlyingInAThunderstormText": "Буйна Гръмотевична Буря",
"backgroundFarmersMarketNotes": "Пазарувайте най-свежите храни в Фермерски Пазар.",
"backgroundFarmersMarketText": "Фермерски Пазар",
"backgrounds112019": "КОМПЛЕКТ 66: ноември 2019",
"backgroundMonsterMakersWorkshopNotes": "Експериментирайте с дискредитирани науки в Работилницата на Създател на Чудовища.",
"backgroundMonsterMakersWorkshopText": "Работилницата на Създател на Чудовища",
"backgroundPumpkinCarriageNotes": "Возете се във вълшебен Тиквен Файтон преди часовника да удари полунощ.",
"backgroundPumpkinCarriageText": "Тиквен Файтон",
"backgroundFoggyMoorNotes": "Внимавайте къде стъпвате като прекосявате Мъгливо Тресавище.",
"backgroundFoggyMoorText": "Мъгливо Тресавище",
"backgrounds102019": "КОМПЛЕКТ 65: октомври 2019",
"backgroundInAClassroomNotes": "Абсорбирайте знания от вашите ментори в Класна Стая.",
"backgroundInAClassroomText": "Класна Стая",
"backgroundInAnAncientTombNotes": "Изправете се пред тайните на Древна Гробница.",
"backgroundInAnAncientTombText": "Древна Гробница",
"backgroundAutumnFlowerGardenNotes": "Поемете топлината на една Есенна Цветна Градина.",
"backgroundAutumnFlowerGardenText": "Есенна Цветна Градина",
"backgrounds092019": "КОМПЛЕКТ 64: септември 2019",
"backgroundTreehouseNotes": "Пошляйте се в дървесно скривалище само за вас, в собствената си Къща на Дърво.",
"backgroundTreehouseText": "Къща на Дърво",
"backgroundGiantDandelionsNotes": "Шлайте се сред Гигантски Глухарчета.",
"backgroundGiantDandelionsText": "Гигантски Глухарчета",
"backgroundAmidAncientRuinsNotes": "Застанете в почит към мистериозното минало Сред Древни Руини.",
"backgroundAmongGiantAnemonesNotes": "Експлорирайте рифовия живот, защитен от хищници Сред Гигантски Анемони.",
"backgroundAmidAncientRuinsText": "Сред Древни Руини",
"backgrounds082019": "КОМПЛЕКТ 63: август 2019",
"backgroundHolidayMarketNotes": "Намерете перфектните подаръци и декорации в Празничния Пазар.",
"backgroundHolidayMarketText": "Празничен Пазар"
}

View file

@ -104,7 +104,7 @@
"allocatePerPop": "Добавяне на точка към Усет",
"allocateInt": "Разпределени точки към Интелигентност:",
"allocateIntPop": "Добавяне на точка към Интелигентност",
"noMoreAllocate": "След като достигнахте ниво 100, вече няма да получавате повече показателни точки. Може да продължавате да вдигате нива или да започнете ново приключение от ниво 1, използвайки <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Кълбото на прераждането</a>, вече достъпно безплатно на пазара.",
"noMoreAllocate": "След като достигнахте ниво 100, вече няма да получавате повече показателни точки. Може да продължавате да вдигате нива или да започнете ново приключение от ниво 1, използвайки <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Кълбото на прераждането</a>!",
"stats": "Показатели",
"achievs": "Постижения",
"strength": "Сила",
@ -156,7 +156,7 @@
"optOutOfClasses": "Отказване",
"optOutOfPMs": "Отказване",
"chooseClass": "Изберете клас",
"chooseClassLearnMarkdown": "[Научете повече относно класовата система на Хабитика](http://habitica.fandom.com/wiki/Class_System)",
"chooseClassLearnMarkdown": "[Научете повече относно класовата система на Хабитика](https://habitica.fandom.com/wiki/Class_System)",
"optOutOfClassesText": "Не Ви се занимава с класове? Искате да изберете по-късно? Откажете се от тях — ще бъдете воин без специални умения. Можете да прочетете относно класовата система по-късно в уикито, както и да включите класовете по всяко време от Потребителската иконка -> Настройки.",
"selectClass": "Избиране на <%= heroClass %>",
"select": "Избиране",
@ -224,5 +224,9 @@
"mainHand": "Основна ръка",
"offHand": "Страничен",
"statPoints": "Показателни точки",
"pts": "точки"
"pts": "точки",
"chatCastSpellUser": "<%= username %> използва заклинанието <%= spell %> върху <%= target %>.",
"chatCastSpellParty": "<%= username %> използва заклинанието <%= spell %> върху групата.",
"purchasePetItemConfirm": "Тази покупка би надвишила броя на предметите, които са ви нужни за да излюпите всички възможни <% = itemText%> любимци. Сигурни ли сте?",
"purchaseForGold": "Купуване за <%= cost %> Злато?"
}

View file

@ -5,7 +5,7 @@
"commGuideHeadingWelcome": "Добре дошли в Хабитика!",
"commGuidePara001": "Поздравления, приключенецо! Добре дошли в Хабитика, страната на продуктивността, здравословния начин на живот и на буйстващия понякога грифон. Тук сме създали приятно общество с услужливи хора, които се подкрепят по своя път на самоусъвършенстване. За да се впишете, имате нужда само от положителна нагласа, уважително поведение и разбиране, че всеки има различни умения и ограничения включително и Вие! Хабитиканците са търпеливи един с друг и са винаги готови да помогнат.",
"commGuidePara002": "За да може всеки да е в безопасност, щастлив и продуктивен в това общество, имаме някои правила. Създадохме ги внимателно, за да са с приятен тон и лесни за четене. Моля, отделете време, за да ги прочетете, преди да започнете да общувате с другите.",
"commGuidePara003": "Тези правила са приложими за всички социални места, които използваме, включително (но не само) Trello, GitHub, Transifex и Wikia (уикито). Понякога може да възникне непредвидена ситуация, като например нов източник на конфликт или злокобен магьосник. Когато това се случи, модераторите могат да решат да променят тези правила, за да запазят обществото в безопасност от нови заплахи. Не се страхувайте: ще бъдете уведомен чрез съобщение от Бейли, в случай на промяна на правилата.",
"commGuidePara003": "Тези правила са приложими за всички социални места, които използваме, включително (но не само) Trello, GitHub, Webplate и Wikia (уикито). Понякога може да възникне непредвидена ситуация, като например нов източник на конфликт или злокобен магьосник. Когато това се случи, модераторите могат да решат да променят тези правила, за да запазят обществото в безопасност от нови заплахи. Не се страхувайте: ще бъдете уведомен чрез съобщение от Бейли, в случай на промяна на правилата.",
"commGuidePara004": "А сега пригответе перото и свитъка си за водене на бележки и да започваме!",
"commGuideHeadingInteractions": "Взаимодействията в Хабитика",
"commGuidePara015": "В Хабитика има два вида места за общуване: обществени и частни. Обществените включват кръчмата, обществените гилдии, GitHub, Trello и уикито. Частните са частните гилдии, груповия чат и личните съобщения. Всички екранни имена трябва да отговарят на Правилата на обществените места. За да промените екранното си име, отидете в Потребител -> Профил и натиснете бутона „Редактиране“.",
@ -18,13 +18,13 @@
"commGuideList02F": "<strong>Избягвайте продължителни обсъждания на теми, които предизвикват разногласия, в кръчмата, той като тя не е мястото за това.</strong>Ако смятате, че някой е казал нещо грубо или обидно, не се разправяйте с него. Ако някой спомене нещо, което е позволено от правилата, но Ви обижда или наранява по някакъв начин, може учтиво да му обясните това. Ако обаче е против правилата или Условията на услугата, трябва да го докладвате и да оставите модераторите да му отговорят. Ако не знаете кое е по-правилно, по-добре докладвайте публикацията.",
"commGuideList02G": "<strong>Спазвайте това, което Ви казват модераторите</strong>. Те може да искат от Вас да публикувате определени съобщения само на определени места, да редактирате профила си, за да премахнете неподходящото съдържание, да преместите дискусията си на по-подходящо място и т.н.",
"commGuideList02H": "<strong>Помислете, преди да отговорите в яда си</strong>, ако някой Ви е казал, че нещо, което Вие сте казали, не му/ѝ е било приятно. Изисква се сила човек да се извини искрено на някого. Ако смятате, че начинът, по който Ви е било отговорено, не е бил правилен, свържете се с модератор, вместо да се разправяте пред всички.",
"commGuideList02I": "<strong>Разправиите и споровете трябва за бъдат докладвани на модератор</strong>, като се отбелязват съответните съобщения чрез <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a>. Ако смятате, че даден разговор става неприятен, прекалено емоционален или обеден, оттеглете се и докладвайте съобщенията в него, за да ни уведомите. Модераторите ще обърнат внимание възможно най-скоро. Нашата работа е да се чувствате добре. Ако смятате, че е нужна повече информация или контекст, можете да докладвате проблема чрез <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a>.",
"commGuideList02I": "<strong>Разправиите и споровете трябва за бъдат докладвани на модератор</strong>, като се отбелязват съответните съобщения чрез <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a>. Ако смятате, че даден разговор става неприятен, прекалено емоционален или обеден, оттеглете се и докладвайте съобщенията в него, за да ни уведомите. Модераторите ще обърнат внимание възможно най-скоро. Нашата работа е да се чувствате добре. Ако смятате, че е нужна повече информация или контекст, можете да докладвате проблема чрез <a href='https://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a>.",
"commGuideList02J": "<strong>Не пълнете чата с нежелани съобщения</strong>. Това включва (списъкът не е изчерпателен): публикуването на едно и също съобщение на няколко места, публикуването на връзки без обяснение или контекст, публикуването на безсмислени съобщения, публикуването на множество реклами за една и съща гилдия, група или предизвикателство, или публикуването на множество съобщения едно след друго. Молбите за диаманти или абонамент в чатовете или в лични съобщения също спада към тази категория. Ако щракването на публикувана от Вас връзка Ви носи някакви облаги, трябва да обявите това в съобщението си, иначе то също ще спада към тази категория.<br/><br/>Модераторите имат правото да преценяват дали нещо спада към категорията на нежеланите съобщения или не, независимо от Вашето мнение. Например: рекламирането на гилдия веднъж или два пъти може да е приемливо, но ако го направите няколко пъти за един ден, то това ще бъде прието за нежелано съобщение, независимо колко полезна е въпросната гилдия!",
"commGuideList02K": "<strong>Избягвайте публикуването на уголемен текст в обществените места, особено в кръчмата.</strong> Също като писането само с ГЛАВНИ БУКВИ, това изглежда сякаш крещите и нарушава спокойната обстановка.",
"commGuideList02L": "<strong>Съветваме Ви да се споделяте лична информация в обществените места, особено такава, която може да помогне на някого да Ви идентифицира.</strong> Такава информация може да бъде (но не само): адрес, е-поща, жетон за ППИ, парола. Това е за Ваша защита! Екипът и модераторите могат да премахнат подобни публикации по собствена преценка. Ако някой иска от Вас лична информация в частна гилдия, група или чрез ЛС, нашият съвет е да откажете учтиво и да уведомите екипа и модераторите, като или: 1) докладвате съобщението, ако то е публикувано в група или частна гилдия, или 2) попълните <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a> и включите снимки на екрана.",
"commGuideList02L": "<strong>Съветваме Ви да се споделяте лична информация в обществените места, особено такава, която може да помогне на някого да Ви идентифицира.</strong> Такава информация може да бъде (но не само): адрес, е-поща, жетон за ППИ, парола. Това е за Ваша защита! Екипът и модераторите могат да премахнат подобни публикации по собствена преценка. Ако някой иска от Вас лична информация в частна гилдия, група или чрез ЛС, нашият съвет е да откажете учтиво и да уведомите екипа и модераторите, като или: 1) докладвате съобщението, ако то е публикувано в група или частна гилдия, или 2) попълните <a href='https://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a> и включите снимки на екрана.",
"commGuidePara019": "<strong>В частните места</strong> потребителите имат повече свобода да обсъждат каквото искат, но пак може да нарушат Правилата и условията, като например публикуват обидни, дискриминиращи, груби или заплашителни съобщения. Имайте предвид, че тъй като имената на предизвикателствата се виждат в обществения профил на победителя, ВСИЧКИ имена на предизвикателства трябва да спазват Правилата на обществените места, дори да се появяват в частни места.",
"commGuidePara020": "<strong>Личните съобщения (ЛС)</strong> имат още някои правила. Ако някой Ви е блокирал, не се опитвайте да се свържете с него по друг начин, за да го молите да премахне блокирането. Освен това, не бива да изпращате ЛС на някого и да го молите да Ви помогне (тъй като видимите в общността отговори на заявки за помощ биха били в помощ за всички). И накрая, не изпращайте лични съобщения с молба за подаръци, диаманти или абонамент, тъй като това би се окачествило като нежелана поща.",
"commGuidePara020A": "<strong>Ако видите публикация, който според Вас нарушава обществените правила, описани по-горе, или която се отнася до Вас или Ви кара да се чувствате неудобно, можете да я посочите на модераторите и екипа като щракнете върху иконката за докладване.</strong> Член на екипа или модератор ще обърне внимания на ситуацията възможно най-скоро. Имайте предвид, че нарочното докладване на най-обикновени публикации, които нямат проблеми, е нарушение на правилата (вижте по-долу в раздела „Нарушения“). В момента не могат да се докладват лични съобщения, така че ако имате нужда да докладвате ЛС, моля, свържете се с модераторите чрез страницата за „Връзка с нас“, която можете да достъпите и чрез помощното меню, като натиснете „<a href='http://contact.habitica.com/' target='_blank'>Връзка с екипа на модераторите</a>“. Това може да Ви потрябва, ако сте забелязали няколко проблемни публикации от един и същ човек в няколко гилдии, или ако ситуацията изисква по-подробно обяснение. Можете да се свържете с нас на собствения си език, ако това Ви е по-лесно може да се наложи да използваме преводача на Гугъл, но за нас е по-важно да не се притеснявате да докладвате нещата, които Ви притесняват.",
"commGuidePara020A": "<strong>Ако видите публикация, който според Вас нарушава обществените правила, описани по-горе, или която се отнася до Вас или Ви кара да се чувствате неудобно, можете да я посочите на модераторите и екипа като щракнете върху иконката за докладване.</strong> Член на екипа или модератор ще обърне внимания на ситуацията възможно най-скоро. Имайте предвид, че нарочното докладване на най-обикновени публикации, които нямат проблеми, е нарушение на правилата (вижте по-долу в раздела „Нарушения“). В момента не могат да се докладват лични съобщения, така че ако имате нужда да докладвате ЛС, моля, свържете се с модераторите чрез страницата за „Връзка с нас“, която можете да достъпите и чрез помощното меню, като натиснете „<a href='https://contact.habitica.com/' target='_blank'>Връзка с екипа на модераторите</a>“. Това може да Ви потрябва, ако сте забелязали няколко проблемни публикации от един и същ човек в няколко гилдии, или ако ситуацията изисква по-подробно обяснение. Можете да се свържете с нас на собствения си език, ако това Ви е по-лесно може да се наложи да използваме преводача на Гугъл, но за нас е по-важно да не се притеснявате да докладвате нещата, които Ви притесняват.",
"commGuidePara021": "Освен това, някои обществени места в Хабитика имат допълнителни правила.",
"commGuideHeadingTavern": "Кръчмата",
"commGuidePara022": "Кръчмата е основното място за общуване на хабитиканците. Даниел Кръчмаря управлява мястото, а Lemoness с радост ще Ви забърка лимонада, докато си почивате и разговаряте. Само имайте предвид, че…",
@ -36,7 +36,7 @@
"commGuidePara031": "Някои обществени гилдии може да съдържат чувствителни теми като депресия, религия, политика и т.н. В това няма проблем, стига разговорите в тези гилдии да спазват Правилата и условията или Правилата на обществените места, както и да спазват темата си.",
"commGuidePara033": "<strong>В обществените гилдии НЕ трябва да има съдържание, подходящо само за възрастни. Ако такова ще се обсъжда често, това трябва да се посочи в заглавието на гилдията.</strong> Целта на това е Хабитика да е безопасно и приятно място за всички.",
"commGuidePara035": "<strong>Ако в гилдията се обсъждат различни теми, неподходящи за широката публика, би било добре да поставяте предупреждение към коментарите си (например: „Внимание: тук се говори за самонараняване“).</strong> За тези предупреждения може да има и други правила, които гилдиите могат да опишат по подробно. Ако е възможно, моля, използвайте синтаксиса на <a href='http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet' target='_blank'>markdown</a>, за да скриете неподходящото съдържание на нов ред, така че онези, които искат да избегнат четенето му, да могат просто да го подминат без изобщо да го видят. Екипът и модераторите на Хабитика могат въпреки всичко да премахнат това съдържание по собствена преценка.",
"commGuidePara036": "Освен това, когато се обсъждат такива неща, те трябва да са по темата — обсъждането на самонараняване може да има смисъл в гилдия за борба с депресията, но споменаването му може да не е толкова подходящо в музикална гилдия, например. Ако видите някого, който често нарушава това правило, особено ако вече му е обърнато внимание на това, моля, докладвайте публикациите му и се свържете с модераторите чрез <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модераторите</a>.",
"commGuidePara036": "Освен това, когато се обсъждат такива неща, те трябва да са по темата — обсъждането на самонараняване може да има смисъл в гилдия за борба с депресията, но споменаването му може да не е толкова подходящо в музикална гилдия, например. Ако видите някого, който често нарушава това правило, особено ако вече му е обърнато внимание на това, моля, докладвайте публикациите му и се свържете с модераторите чрез <a href='https://contact.habitica.com/' target='_blank'>формуляра за връзка с модераторите</a>.",
"commGuidePara037": "<strong>Гилдия, било тя обществена или частна, не може да бъде създавана с цел да бъде нападана дадена група или човек.</strong> Създаването на подобна гилдия е основание за незабавно блокиране. Борете се с вредните си навици, а не с другарите си приключенци!",
"commGuidePara038": "<strong>Всички предизвикателства в кръчмата и такива от обществени гилдии също трябва да спазват тези правила</strong>.",
"commGuideHeadingInfractionsEtc": "Нарушения, последствия и възстановяване",
@ -85,7 +85,7 @@
"commGuideList10C": "Ограничени привилегии за създаване на гилдии/предизвикателства",
"commGuideList10D": "Временна забрана за напредване към следващо ниво на сътрудник („замразяване“ на нивото)",
"commGuideList10E": "Понижаване на нивото на сътрудник",
"commGuideList10F": "Поставяне на изпитателен срок.",
"commGuideList10F": "Поставяне на потребители на \"Изпитателен Срок\"",
"commGuideHeadingMinorConsequences": "Примери за леки последствия",
"commGuideList11A": "Напомняне на Правилата на обществените места",
"commGuideList11B": "Предупреждения",
@ -94,7 +94,7 @@
"commGuideList11E": "Редакции (модераторите/екипът могат да редактират проблемното съдържание)",
"commGuideHeadingRestoration": "Възстановяване",
"commGuidePara061": "Хабитика е земя, отдадена на самоусъвършенстването, и ние вярваме във вторите шансове. <strong>Ако извършите нарушение и получите наказание, гледайте на това като на шанс да преразгледате действията си и да се опитате да бъдете по-добър член на общността</strong>.",
"commGuidePara062": "Обявлението, съобщението и/или е-писмото, което ще получите, обясняващо последствията от действията Ви е добър източник на информация. <strong>Съобразете се с определените Ви ограничения и се постарайте да спазвате правилата, за да Ви бъде премахнато наказанието.</strong>",
"commGuidePara062": "Обявлението, съобщението и/или е-писмото, което ще получите, обясняващо последствията от действията Ви е добър източник на информация. Съобразете се с определените Ви ограничения и се постарайте да спазвате правилата, за да Ви бъде премахнато наказанието.",
"commGuidePara063": "Ако не разбирате последствията или естеството на нарушението, помолете някои от екипа или модераторите за помощ, за да не правите повече нарушения в бъдеще. Ако смятате, че определено решение е несправедливо, можете да се свържете с екипа и да го обсъдите, на адрес <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
"commGuideHeadingMeet": "Запознайте се с екипа и модераторите!",
"commGuidePara006": "Хабитика има неуморни странстващи рицари, които помагат на екипа в опазването на реда и спокойствието в общността. Всеки има своя област на действие, но при нужда може да бъде привикан на служба в друга.",
@ -114,7 +114,7 @@
"commGuidePara013": "В общност с размера на Хабитика, някои потребителите си тръгват и на тяхно място идват нови; понякога членовете на екипа и модераторите трябва да свалят знатното си наметало и да си починат. Следните членове на екипа и модератори са почетни. Те вече нямат правомощията на членове на екипа или модератори, но все пак искаме да почетем работата им!",
"commGuidePara014": "Почетни членове на екипа и модератори:",
"commGuideHeadingFinal": "Последният раздел",
"commGuidePara067": "И така, храбри хабитиканецо, това са Обществените правила! Изтрийте потта от челото си и си дайте малко опит за прочитането на всичко това. Ако имате въпроси или притеснения относно тези правила, моля, свържете се с нас чрез <a href='http://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a> и с радост ще Ви помогнем.",
"commGuidePara067": "И така, храбри хабитиканецо, това са Обществените правила! Изтрийте потта от челото си и си дайте малко опит за прочитането на всичко това. Ако имате въпроси или притеснения относно тези правила, моля, свържете се с нас чрез <a href='https://contact.habitica.com/' target='_blank'>формуляра за връзка с модератор</a> и с радост ще Ви помогнем.",
"commGuidePara068": "Напред, смели приключенецо, разбий няколко ежедневни задачи!",
"commGuideHeadingLinks": "Полезни връзки",
"commGuideLink01": "<a href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank'>Помощ за Хабитика: Задайте въпрос</a>: гилдия, в която потребителите могат да задават въпроси!",

View file

@ -25,9 +25,9 @@
"androidFaqAnswer5": "Най-добрият начин е да си направите група! Групите могат заедно да изпълняват мисии, да се бият с чудовища и да използват уменията си, за да се подкрепят. Ако все още нямата група, идете в [уеб сайта(https://habitica.com/), за да си направите. Също така можете заедно да се присъединявате към гилдии (Общност > Гилдии). Гилдиите представляват стаи за разговори, концентрирани върху споделен интерес или преследването на обща цел и могат да бъдат обществени или частни. Можете да се присъедините към колкото желаете гилдии, но групата Ви може да бъде само една.\n\nЗа повече подробности, вижте страниците в уикито за [Групите](http://habitica.fandom.com/wiki/Party) и [Гилдиите](http://habitica.fandom.com/wiki/Guilds).",
"webFaqAnswer5": "Най-добрият начин е да си направите група като щракнете върху „Група“ в лентата за навигация! Групите могат заедно да изпълняват мисии, да се бият с чудовища и да използват уменията си, за да се подкрепят. Можете също заедно да се присъединявате към гилдии („Общност > Гилдии“ в лентата за навигация). Гилдиите са стаи за разговори, организирани около общ интерес или преследването на обща цел, и могат да бъдат обществени или частни. Можете да се присъедините към колкото искате гилдии, но само към една група. За по-подробна информация, прегледайте страниците в уикито относно [Групите](http://habitica.fandom.com/wiki/Party) и [Гилдиите](http://habitica.fandom.com/wiki/Guilds).",
"faqQuestion6": "Как да се сдобия с любимец или превоз?",
"iosFaqAnswer6": "Когато достигнете ниво 3 се отключва системата за падане на предмети. Всеки път когато завършите задача, ще имате шанс да Ви се падне яйце, излюпваща отвара или храна. Тези неща ще се съхраняват в Меню > Предмети.\n\nЗа да се излюпи любимец Ви трябва яйце и излюпваща отвара. Докоснете яйцето, за да определите какво искате да се излюпи и изберете „Излюпване“. След това изберете излюпваща отвара, за да определите цвета! Идете в Меню > Любимци, за да екипирате новия си любимец като го докоснете.\n\nМожете да превърнете любимците си в превози като ги храните от Меню > Любимци. Докоснете любимец и изберете „Хранене“! Ще трябва да нахраните любимеца си много пъти, преди той да се превърне в превоз, но ако разберете каква е любимата му храна, той ще расте по-бързо. Опитайте чрез проба и грешка или [вижте информацията наготово тук](http://habitica.fandom.com/wiki/Food#Food_Preferences). След като вече имате превоз, идете в Меню > Превози и го докоснете, за да го екипирате.\n\nМоже да получите яйца за любимци от мисии, ако завършите някои конкретни мисии. (Вижте по-надолу, за да научите повече относно мисиите.)",
"iosFaqAnswer6": "Всеки път когато завършите задача, ще имате шанс да Ви се падне Яйце, Излюпваща отвара или Храна за любимци. Тези неща ще се съхраняват в Меню > Предмети.\n\nЗа да се излюпи любимец Ви трябва Яйце и Излюпваща Отвара. Докоснете Яйцето, за да определите какво искате да се излюпи и изберете „Излюпване“. След това изберете Излюпваща Отвара, за да определите цвета! Идете в Меню > Любимци, и докоснете новия си Любимец за да го екипирате.\n\nМожете да превърнете любимците си в превози като ги храните от Меню > Любимци. Докоснете любимец и изберете „Хранене“! Ще трябва да нахраните Любимеца си много пъти, преди той да се превърне в Превоз, но ако разберете каква е любимата му храна, той ще расте по-бързо. Опитайте чрез проба и грешка или [вижте информацията наготово тук](http://habitica.fandom.com/wiki/Food#Food_Preferences). След като вече имате превоз, идете в Меню > Превози и го докоснете, за да го екипирате.\n\nМоже да получите Яйца за Любимци от Мисии, ако завършите някои конкретни мисии. (Вижте по-надолу, за да научите повече относно Мисиите.)",
"androidFaqAnswer6": "Когато достигнете ниво 3 се отключва системата за падане на предмети. Всеки път когато завършите задача, ще имате шанс да Ви се падне яйце, излюпваща отвара или храна. Тези неща ще се съхраняват в Меню > Предмети.\n\nЗа да се излюпи любимец Ви трябва яйце и излюпваща отвара. Докоснете яйцето, за да определите какво искате да се излюпи от него, и изберете „Излюпване с отвара“. След това изберете излюпваща отвара, за да определите цвета! За да екипирате новия си любимец, идете в Меню > Конюшня > Любимци, изберете вид, а след това желания любимец и изберете „Използване“ (героят Ви няма да се обнови, за да видите промяната).\n\nМожете да превърнете любимците си в превози, като ги храните от Меню > Конюшня [ > Любимци ]. Докоснете любимец и изберете „Хранене“! Ще трябва да нахраните любимеца си много пъти, преди той да се превърне в превоз, но ако разберете каква е любимата му храна, той ще расте по-бързо. Опитайте чрез проба и грешка, или [вижте информацията наготово тук](http://habitica.fandom.com/wiki/Food#Food_Preferences). За да екипирате превоза си, идете в Меню > Конюшня > Превози, изберете вид, а след това желания превози, и изберете „Използване“ (героят Ви няма да се обнови, за да видите промяната).\n\nМоже да получите яйца за любимци от мисии, ако завършите някои конкретни мисии. (Вижте по-надолу, за да научите повече относно мисиите.)",
"webFaqAnswer6": "Когато достигнете ниво 3 се отключва системата за падане на предмети. Всеки път, когато завършите задача, ще имате шанс да Ви се падне яйце, излюпваща отвара или храна. Тези неща ще се съхраняват в „Инвентар > Предмети“. За да се излюпи любимец, Ви трябва яйце и излюпваща отвара. Когато се сдобиете с яйце и излюпваща отвара, идете в „Инвентар > Конюшня“, за да излюпите любимеца си, като щракнете върху изображението му. След като излюпите любимец, можете да го екипирате на героя си, като щракнете върху него. Можете да превърнете любимците си в превози като ги храните от „Инвентар > Конюшня“. Завлачете избраната храна от лентата с действия в дъното на екрана и я пуснете върху любимеца, за да го нахраните. Ще трябва да нахраните любимеца си много пъти, преди той да се превърне в превоз, но ако разберете каква е любимата му храна, той ще расте по-бързо. Опитайте чрез проба и грешка или [вижте информацията наготово тук](http://habitica.fandom.com/wiki/Food#Food_Preferences). След като вече имате превоз, щракнете върху него, за да го екипирате на героя си. Може да получите яйца за любимци от мисии, ако завършите някои конкретни мисии. (Вижте по-надолу, за да научите повече относно мисиите.)",
"webFaqAnswer6": "Всеки път, когато завършите задача, ще имате шанс да Ви се падне Яйце, Излюпваща Отвара или Храна за любимец. Тези неща ще се съхраняват в „Инвентар > Предмети“. За да се излюпи Любимец, Ви трябва Яйце и Излюпваща Отвара. Когато се сдобиете с Яйце и Излюпваща Отвара, идете в „Инвентар > Конюшня“, и докоснете изображението за да излюпите Любимеца си. След като излюпите Любимец, можете да го екипирате на Героя си, като щракнете върху него. Можете да превърнете Любимците си в Превози като ги храните от „Инвентар > Конюшня“. Завлачете избраната Храна от лентата с действия в дъното на екрана и я пуснете върху Любимеца, за да го нахраните. Ще трябва да нахраните Любимеца си много пъти, преди той да се превърне в Превоз, но ако разберете каква е любимата му храна, той ще расте по-бързо. Опитайте чрез проба и грешка или [вижте информацията наготово тук](http://habitica.fandom.com/wiki/Food#Food_Preferences). След като вече имате Превоз, щракнете върху него, за да го екипирате на Героя си. Може да получите Яйца за Любимци от Мисии, ако завършите някои конкретни Мисии. (Вижте по-надолу, за да научите повече относно мисиите.)",
"faqQuestion7": "Как да стана воин, магьосник, мошеник или лечител?",
"iosFaqAnswer7": "Когато достигнете ниво 10, може да изберете да станете воин, магьосник, мошеник или лечител. (Всички играчи по подразбиране започват като воини.) Всеки клас има различна екипировка; различни умения, които могат да използват след ниво 11; и различни предимства. Воините могат лесно да нанасят щети на главатарите, както и да понесат повече щети от задачите си и като цяло правят групата си по-силна. Магьосниците също с лекота нанасят щети на главатарите, а също и качват нива по-бързо и възстановяват маната на групата си. Мошениците печелят най-много злато и намират най-много предмети, и могат да помогнат на останалите в групата да имат същия късмет. И накрая, лечителите могат да лекуват себе си и останалите в групата.\n\nАко не искате веднага да избирате клас, например ако все още събирате средства, с които да закупите цялата екипировка за текущия си клас, може да решите по-късно и когато сте готов(а), да го направите в Меню > Избор на клас.",
"androidFaqAnswer7": "Когато достигнете ниво 10, може да изберете да станете воин, магьосник, мошеник или лечител. (Всички играчи по подразбиране започват като воини.) Всеки клас има различна екипировка; различни умения, които могат да използват след ниво 11; и различни предимства. Воините могат лесно да нанасят щети на главатарите, както и да понесат повече щети от задачите си и като цяло правят групата си по-силна. Магьосниците също с лекота нанасят щети на главатарите, а също и качват нива по-бързо и възстановяват маната на групата си. Мошениците печелят най-много злато и намират най-много предмети, и могат да помогнат на останалите в групата да имат същия късмет. И накрая, лечителите могат да лекуват себе си и останалите в групата.\n\nАко не искате веднага да избирате клас, например ако все още събирате средства, с които да закупите цялата екипировка за текущия си клас, може да се откажете от тази възможност, и когато сте готов(а), да го направите в Меню > Избор на клас.",
@ -55,4 +55,4 @@
"iosFaqStillNeedHelp": "Ако имате въпрос, който не намирате в този списък или в [ЧЗВ в уикито](http://habitica.fandom.com/wiki/FAQ), задайте го в кръчмата чрез Меню > Кръчма! Ще се радваме да помогнем.",
"androidFaqStillNeedHelp": "Ако имате въпрос, който не намирате в този списък или в [ЧЗВ в уикито](http://habitica.fandom.com/wiki/FAQ), задайте го в кръчмата чрез Меню > Кръчма! Ще се радваме да помогнем.",
"webFaqStillNeedHelp": "Ако имате въпрос, който не намирате в този списък или в [ЧЗВ в уикито](http://habitica.fandom.com/wiki/FAQ), задайте го в [Помощната гилдия на Хабитика](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)! Ще се радваме да помогнем."
}
}

View file

@ -266,7 +266,7 @@
"missingNewPassword": "Липсва нова парола.",
"invalidEmailDomain": "Не можете да се регистрирате, използвайки е-поща от следните сървъри: <%= domains %>",
"wrongPassword": "Грешна парола.",
"incorrectDeletePhrase": "Моля, напишете <%= magicWord %> с главни букви (без кавичките), за да изтриете профила си.",
"incorrectDeletePhrase": "Моля, напишете <%= magicWord %> с главни букви, за да изтриете профила си.",
"notAnEmail": "Грешен адрес на е-поща.",
"emailTaken": "Тази е-поща вече се използва от съществуващ профил.",
"newEmailRequired": "Липсва нов адрес на е-поща.",
@ -283,7 +283,7 @@
"passwordResetEmailHtml": "Ако сте заявили нулиране на паролата си за <strong><%= username %></strong> в Хабитика, <a href=\"<%= passwordResetLink %>\">натиснете тук</a>, за да зададете нова. Тази връзка ще загуби давност след 24 часа.<br/><br>Ако не сте заявили нулиране на паролата си, не обръщайте внимание на това писмо.",
"invalidLoginCredentialsLong": "Опа, потребителското име/е-пощата или паролата е грешна.\n— Уверете се, че всичко е изписано правилно. Потребителското име и паролата са чувствителни към регистъра;\n— Може да сте се вписали чрез Фейсбук или Гугъл, а не чрез е-поща. Проверете това, като опитате да влезете чрез Фейсбук или Гугъл;\n— Ако сте забравили паролата си, натиснете „Забравена парола“.",
"invalidCredentials": "Няма профил, който използва тези данни за вход.",
"accountSuspended": "Този акаунт, с потребителски идентификатор „<%= userId %>“, е блокиран за нарушаване на [Обществените правила](https://habitica.com/static/community-guidelines) или [Условията за ползване](https://habitica.com/static/terms). За повече подробности, или ако искате да помолите за отблокиране, моля, пишете на управителя за общността на адрес <%= communityManagerEmail %> или помолете свой родител или настойник да пише. Моля, копирайте потребителския си идентификатор в е-писмото, и напишете потребителското си име.",
"accountSuspended": "Този акаунт, с потребителски идентификатор „<%= userId %>“, е блокиран за нарушаване на [Обществените правила](https://habitica.com/static/community-guidelines) или [Условията за ползване](https://habitica.com/static/terms). За повече подробности, или ако искате да помолите за отблокиране, моля, пишете на управителя за общността на адрес <%= communityManagerEmail %> или помолете свой родител или настойник да пише. Моля, напишете и потребителското си име в писмото.",
"accountSuspendedTitle": "Достъпът до акаунта е преустановен",
"unsupportedNetwork": "Тази мрежа не се поддържа в момента.",
"cantDetachSocial": "Профилът няма друг начин за удостоверяване, така че този начин за влизане не може да бъде премахнат.",
@ -325,10 +325,12 @@
"muchmuchMoreDesc": "Списъкът със задачи може да бъде напълно персонализиран и да оформи Хабитика според Вашите лични цели. Работете по творчески проекти, концентрирайте се върху себе си, или следвайте мечтата си всичко зависи от Вас.",
"levelUpAnywhere": "Повишавайте нивото си отвсякъде",
"levelUpAnywhereDesc": "С мобилните ни приложения е лесно да проследявате задачите си където и да се намирате. Изпълнявайте целите си с едно докосване, без значение къде се намирате.",
"joinMany": "Над 2 000 000 хора се забавляват, докато подобряват живота си. Присъединете се към тях!",
"joinMany": "Присъединете се към <%= userCountInMillions %> милион хора, които се се забавляват докато постигат целите си!",
"joinToday": "Присъединете се в Хабитика днес",
"signup": "Регистриране",
"getStarted": "Да започваме!",
"mobileApps": "Мобилни приложения",
"learnMore": "Научете повече"
"learnMore": "Научете повече",
"minPasswordLength": "Паролата трябва да е с 8 символа или повече.",
"communityInstagram": "Instagram"
}

View file

@ -472,8 +472,8 @@
"armorSpecialBirthday2017Notes": "Честит рожден ден, Хабитика! Сложете си тази причудлива купонджийска мантия, за да отпразнувате този прекрасен ден. Не променя показателите.",
"armorSpecialBirthday2018Text": "Чудновата купонджийска мантия",
"armorSpecialBirthday2018Notes": "Честит рожден ден, Хабитика! Сложете си тази чудновата купонджийска мантия, за да отпразнувате този прекрасен ден. Не променя показателите.",
"armorSpecialBirthday2019Text": "Outlandish Party Robes",
"armorSpecialBirthday2019Notes": "Happy Birthday, Habitica! Wear these Outlandish Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2019Text": "Необичайна Купонджийска Мантия",
"armorSpecialBirthday2019Notes": "Честит Рожден ден, Habitica! Носи тази Необичайна Купонджийска Мантия за да празнуваш този чудесен ден. Не променя показателите.",
"armorSpecialGaymerxText": "Бойна броня с цветовете на дъгата",
"armorSpecialGaymerxNotes": "В чест на конференцията GaymerX, тази специална броня е оцветена с шарка на дъга! GaymerX е игрално изложение в чест на ЛГБТ културата и игрите и е отворено за всички.",
"armorSpecialSpringRogueText": "Елегантен котешки костюм",
@ -1160,8 +1160,8 @@
"headMystery201810Notes": "Ако се окаже, че пътят Ви минава през някое зловещо място, то червените очи на този шлем със сигурност ще изплашат враговете, които могат да се появят на пътя Ви. Не променя показателите. Предмет за абонати: октомври 2018 г.",
"headMystery201811Text": "Шапка на великолепния магьосник",
"headMystery201811Notes": "Ако носите тази перната шапка, ще изпъквате и на най-шантавите сбирки на магьосници! Не променя показателите. Предмет за абонати: декември 2018 г.",
"headMystery201901Text": "Polaris Helm",
"headMystery201901Notes": "The glowing gems on this helm contain light magically captured from winter auroras. Confers no benefit. January 2019 Subscriber Item.",
"headMystery201901Text": "Поларис Шлем",
"headMystery201901Notes": "Светещите скъпоценни камъни върху този шлем съдържат светлина, магически уловена от зимната аврора. Не променя показателите. Предмет за абонати: януари 2019 г.",
"headMystery301404Text": "Украсен цилиндър",
"headMystery301404Notes": "Украсен цилиндър за най-изтънчените и високопоставени членове на обществото. Не променя показателите. Предмет за абонати: януари 3015 г.",
"headMystery301405Text": "Обикновен цилиндър",
@ -1479,7 +1479,7 @@
"shieldArmoireAntiProcrastinationShieldText": "Противо-протакащ щит",
"shieldArmoireAntiProcrastinationShieldNotes": "Този як стоманен щит ще Ви помогне да блокирате всичко, което Ви разсейва, още щом се появи! Увеличава якостта с <%= con %>. Омагьосан гардероб: Противо-протакащ комплект (предмет 3 от 3).",
"shieldArmoireHorseshoeText": "Подкова",
"shieldArmoireHorseshoeNotes": "Защитете краката на копитните си превози с тази желязна подкова. Увеличава якостта, усета и силата с по <%= attrs %>. Омагьосан гардероб: комплект „Подковач“ (предмет 3 от 3)",
"shieldArmoireHorseshoeNotes": "Защитете краката на копитните си Оседлани Любимци с тази желязна подкова. Увеличава Якостта, Усета и Силата с по <%= attrs %>. Омагьосан гардероб: комплект „Подковач“ (предмет 3 от 3).",
"shieldArmoireHandmadeCandlestickText": "Ръчно изработена свещ",
"shieldArmoireHandmadeCandlestickNotes": "Изящните Ви восъчни произведения даряват светлина и топлина на благодарните хабитиканци! Увеличава силата с <%= str %>. Омагьосан гардероб: комплект „Създател на свещи“ (предмет 3 от 3).",
"shieldArmoireWeaversShuttleText": "Тъкаческа совалка",
@ -1607,8 +1607,8 @@
"bodyMystery201706Notes": "Това наметало има тайни джобове, където можете да скриете всичкото злато, което измъкнете от задачите си. Не променя показателите. Предмет за абонати: юни 2017 г.",
"bodyMystery201711Text": "Шал на килимния летец",
"bodyMystery201711Notes": "Този мек плетен шал изглежда доста впечатляващо, когато се развява от вятъра. Не променя показателите. Предмет за абонати: ноември 2017 г.",
"bodyMystery201901Text": "Polaris Pauldrons",
"bodyMystery201901Notes": "These shimmering pauldrons are strong, but will rest on your shoulders as weightlessly as a ray of dancing light. Confers no benefit. January 2019 Subscriber Item.",
"bodyMystery201901Text": "Поларис Нараменици",
"bodyMystery201901Notes": "Тези блещукащи нараменици са силни, но ще опират на раменете ви толкова безтегловно, колкото лъч от танцуваща светлина. Не променя показателите. Предмет за абонати: януари 2019 г.",
"bodyArmoireCozyScarfText": "Удобен шал",
"bodyArmoireCozyScarfNotes": "С този лек шал ще Ви бъде топло, докато вършите зимната си работа. Увеличава якостта и усета с по <%= attrs %>. Омагьосан гардероб: Фенерджийски комплект (предмет 4 от 4).",
"headAccessory": "аксесоар за глава",
@ -1754,5 +1754,7 @@
"weaponSpecialSpring2019RogueNotes": "Тези оръжия съдържат мощта на небето и дъжда. Не препоръчваме да се използва под вода. Увеличава Сила със <%= str %>. Ограничена Серия 2019, Пролетна Екипировка.",
"weaponSpecialSpring2019RogueText": "Светкавица",
"weaponSpecialKS2019Notes": "Огънат като човката и ноктите на грифон, този богато украсен полюс ти напомня да проявиш упоритост когато задачата изглежда невъзможна. Увеличава Сила със <%= str %>.",
"weaponSpecialKS2019Text": "Митичен Грифон Глайв"
"weaponSpecialKS2019Text": "Митичен Грифон Глайв",
"weaponSpecialSummer2019WarriorText": "Червен Корал",
"weaponSpecialSpring2019HealerText": "Пролетна Песен"
}

View file

@ -41,7 +41,7 @@
"italics": "*курсив*",
"bold": "**получер**",
"strikethrough": "~~зачертан~~",
"emojiExample": ":smile:",
"emojiExample": ":усмивка:",
"markdownLinkEx": "[Хабитика е велика!](https://habitica.com)",
"markdownImageEx": "![задължителен текст при липса на изображението](https://habitica.com/cake.png \"текст при посочване с мишката\")",
"unorderedListHTML": "+ първо<br>+ второ<br>+ трето",
@ -61,7 +61,7 @@
"newGroupTitle": "Нова група",
"subscriberItem": "Тайнствен предмет",
"newSubscriberItem": "Имате нов <span class=\"notification-bold-blue\">тайнствен предмет</span>",
"subscriberItemText": "Всеки месец абонатите получават тайнствен предмет. Обикновено това става около една седмица преди края на месеца. За повече информация, прегледайте страницата в уикито с името „Mystery Item“ (Тайнствен предмет).",
"subscriberItemText": "Всеки месец абонатите получават тайнствен предмет. Става наличен в началото на месеца. За повече информация, прегледайте страницата в уикито с името „Mystery Item“ (Тайнствен предмет).",
"all": "Всички",
"none": "Никоя",
"more": "Още <%= count %>",
@ -284,11 +284,17 @@
"dismissAll": "Премахване на всички",
"messages": "Съобщения",
"emptyMessagesLine1": "Нямате съобщения",
"emptyMessagesLine2": "Изпратете съобщение, за да започнете разговор!",
"emptyMessagesLine2": "Можете да изпратите ново съобщение на потребител, като посетите профила им и докоснете бутона \"Съобщение\".",
"userSentMessage": "<span class=\"notification-bold\"><%= user %></span> Ви изпрати съобщение",
"letsgo": "Хойде!",
"selected": "Избрано",
"howManyToBuy": "Колко искате да купите?",
"habiticaHasUpdated": "Хабитика беше обновена. Опреснете страницата, за да видите новата версия!",
"contactForm": "Връзка с екипа на модераторите"
"contactForm": "Връзка с екипа на модераторите",
"loadEarlierMessages": "Зареди по-ранни Съобщения",
"demo": "Демо",
"congratulations": "Поздравления!",
"options": "Опции",
"finish": "Завършете",
"onboardingAchievs": "Начални постижения"
}

View file

@ -151,7 +151,7 @@
"gemAmountRequired": "Нужен е определен брой диаманти",
"notAuthorizedToSendMessageToThisUser": "Не можете да изпратите съобщение до този играч, защото той е избрал да блокира съобщенията.",
"privateMessageGiftGemsMessage": "Здравейте, <%= receiverName %>, <%= senderName %> Ви изпрати <%= gemAmount %> диамант(а)!",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> месеца абонамент! ",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> месеца абонамент!",
"cannotSendGemsToYourself": "Не можете да изпратите диаманти на себе си. Опитайте с абонамент.",
"badAmountOfGemsToSend": "Стойността трябва да бъде между 1 и текущия Ви брой диаманти.",
"report": "Докладване",
@ -227,9 +227,9 @@
"memberCannotRemoveYourself": "Не можете да премахнете себе си!",
"groupMemberNotFound": "Потребителят не е намерен сред членовете на групата",
"mustBeGroupMember": "Трябва да бъде член на групата.",
"canOnlyInviteEmailUuid": "Покани могат да бъдат изпращани само чрез потребителски идентификатор, е-поща, или потребителско име.",
"canOnlyInviteEmailUuid": "Покани могат да бъдат изпращани само чрез Потребителски Идентификатор, е-поща, или потребителско име.",
"inviteMissingEmail": "В поканата липсва адрес на е-поща.",
"inviteMissingUuid": "В поканата липсва потребителски идентификатор",
"inviteMissingUuid": "В поканата липсва Потребителски Идентификатор",
"inviteMustNotBeEmpty": "Поканата не трябва да бъде празна.",
"partyMustbePrivate": "Групите трябва да бъдат частни",
"userAlreadyInGroup": "Потребителят „<%= username %>“ (идентификатор: <%= userId %>) вече членува в тази група.",
@ -237,7 +237,7 @@
"cannotInviteSelfToGroup": "Не можете да поканите себе си в група.",
"userAlreadyInvitedToGroup": "Потребителят „<%= username %>“ (идентификатор: <%= userId %>) вече е поканен в тази група.",
"userAlreadyPendingInvitation": "Потребителят „<%= username %>“ (идентификатор: <%= userId %>) вече има чакаща покана.",
"userAlreadyInAParty": "Потребителят „<%= username %>“ (идентификатор: <%= userId %>) вече членува в група. ",
"userAlreadyInAParty": "Идентификатор: <%= userId %>, Потребителят „<%= username %>“ вече членува в група.",
"userWithIDNotFound": "Не е намерен потребител с идентификатора „<%= userId %>“.",
"userWithUsernameNotFound": "Не е намерен потребител с потребителско име „<%= username %>“.",
"userHasNoLocalRegistration": "Потребителят няма местна регистрация (потребителско име, е-поща, парола).",
@ -250,19 +250,19 @@
"onlyGroupLeaderCanEditTasks": "Нямате право да управлявате задачите!",
"onlyGroupTasksCanBeAssigned": "Само групови задачи могат да бъдат зададени",
"assignedTo": "Назначена на",
"assignedToUser": "Назначена на <%= userName %>",
"assignedToMembers": "Назначена на <%= userCount %> членове",
"assignedToYouAndMembers": "Назначена на Вас и още <%= userCount %> членове",
"assignedToUser": "Назначена на <strong><%= userName %></strong>",
"assignedToMembers": "Назначена на <strong><%= userCount %> членове </strong>",
"assignedToYouAndMembers": "Назначена на Вас и още <strong><%= userCount %> членове</strong>",
"youAreAssigned": "Тази задача е назначена на Вас",
"taskIsUnassigned": "Тази задача не е зададена на никого",
"confirmClaim": "Наистина ли искате да поемете тази задача?",
"confirmUnClaim": "Наистина ли искате да оставите тази задача?",
"confirmApproval": "Наистина ли искате да одобрите тази задача?",
"confirmNeedsWork": "Наистина ли искате да отбележите, че тази задача се нуждае от още работа?",
"userRequestsApproval": "<%= userName %> иска одобрение",
"userCountRequestsApproval": "<%= userCount %> членове искат одобрение",
"userRequestsApproval": "<strong><%= userName %></strong> иска одобрение",
"userCountRequestsApproval": "<strong><%= userCount %> членове</strong> искат одобрение",
"youAreRequestingApproval": "Вие искате одобрение",
"chatPrivilegesRevoked": "Не можете да направите това, защото привилегиите Ви в чата са Ви били отнети.",
"chatPrivilegesRevoked": "Не можете да направите това, защото привилегиите Ви в чата са Ви били отнети. За детайли или запитване за връшане на привилегии, моля пратете email на нашия Обществен Оправител на admin@habitica.com или попитайте вашия родител или настойник да им прати email. Моля, напишете и потребителското си име в писмото. Ако модератор вече ви е казал че блокирането ви към чата е временно, няма нужда да пращате email.",
"cannotCreatePublicGuildWhenMuted": "Не можете да създадете обществена гилдия, защото привилегиите Ви в чата са Ви били отнети.",
"cannotInviteWhenMuted": "Не можете да изпратите покана за гилдия или група, защото привилегиите Ви в чата са Ви били отнети.",
"newChatMessagePlainNotification": "Има ново съобщение в <%= groupName %> от <%= authorName %>. Щракнете тук, за да отворите страницата!",
@ -277,10 +277,10 @@
"confirmRemoveTag": "Наистина ли искате да премахнете „<%= tag %>“?",
"groupHomeTitle": "Начало",
"assignTask": "Задаване на задача",
"claim": "Вземане",
"claim": "Вземане на Задача",
"removeClaim": "Отказване от задачата",
"onlyGroupLeaderCanManageSubscription": "Само водачът на групата може да управлява абонамента ѝ",
"yourTaskHasBeenApproved": "Задачата Ви <span class=\"notification-green\"><%= taskText %></span>, беше одобрена.",
"yourTaskHasBeenApproved": "Задачата Ви <span class=\"notification-green notification-bold\"><%= taskText %></span>, беше одобрена.",
"taskNeedsWork": "<span class=\"notification-bold\"><%= managerName %></span> отбеляза, че задачата <span class=\"notification-bold\"><%= taskText %></span> се нуждае от още работа.",
"userHasRequestedTaskApproval": "<span class=\"notification-bold\"><%= user %></span> помоли следната задача да бъде одобрена: <span class=\"notification-bold\"><%= taskName %></span>",
"approve": "Одобряване",
@ -339,9 +339,9 @@
"aboutToJoinCancelledGroupPlan": "На път сте да се присъедините към група, чийто план е прекратен. НЯМА да получите безплатен абонамент.",
"cannotChangeLeaderWithActiveGroupPlan": "Не можете да промените водача, докато групата има план.",
"leaderCannotLeaveGroupWithActiveGroup": "Водачът не може да я напусне групата, докато тя има план",
"youHaveGroupPlan": "Имате безплатен абонамент, тъй като сте член на група, която има групов план. Това ще приключи, когато спрете да бъдете член на групата, която има този план. Оставащите средства за месечни абонаменти ще бъдат приложени след края на груповия план.",
"youHaveGroupPlan": "Имате безплатен абонамент, тъй като сте член на групов план. Абонаментът ви ще сврърши, когато вече не сте член на Груповия План.",
"cancelGroupSub": "Прекратяване на груповия план",
"confirmCancelGroupPlan": "Наистина ли искате да прекратите груповия план и да лишите членовете на групата от предимствата му, включително от безплатния им абонамент?",
"confirmCancelGroupPlan": "Сигурни ли сте, че искате да прекратите Груповия План? Всички членове на групата ще изгубят безплатния си абонамент и предимствата му.",
"canceledGroupPlan": "Груповият план е прекратен",
"groupPlanCanceled": "Груповият план ще стане неактивен на",
"purchasedGroupPlanPlanExtraMonths": "Имате оставащи средства за <%= months %> месеца от груповия план.",
@ -476,8 +476,22 @@
"whatIsGroupManager": "Какво е „управител на групата“?",
"whatIsGroupManagerDesc": "Управител на групата е такъв потребител, който няма достъп до информацията за таксуването на групата, но може да създава, назначава и одобрява споделени задачи за членовете на групата. Можете да определите кои са управителите на групата от списъка с членовете.",
"goToTaskBoard": "Към дъската със задачи",
"sharedCompletion": "Споделено завършване",
"sharedCompletion": "Условие за Завършване",
"recurringCompletion": "Без груповата задача не може да бъде завършена",
"singleCompletion": "Еднократно завършване, когато първият назначен потребител завърши",
"allAssignedCompletion": "Всички завършване, когато всички назначени потребители завършат"
"allAssignedCompletion": "Всички завършване, когато всички назначени потребители завършат",
"PMCanNotReply": "Не можете да отговорите на този разговор",
"PMUserDoesNotReceiveMessages": "Този потребител вече не приема лични съобщения",
"PMUnblockUserToSendMessages": "Отблокирайте този потребител за да продължите да пращате и получавате съобщения.",
"PMDisabled": "Деактивиране на лични съобщения",
"groupActivityNotificationTitle": "<%= user %> публикува в <%= group %>",
"suggestedGroup": "Предложено, защото сте нови в Habitica.",
"taskClaimed": "<%= userName %> взеха задачата <span class=\"notification-bold\"><%= taskText %></span>.",
"youHaveBeenAssignedTask": "<%= managerName %> ви присвои задачата <span class=\"notification-bold\"><%= taskText %></span>.",
"userWithUsernameOrUserIdNotFound": "Потребителското име или Потребителският Идентификатор не бяха намерени.",
"usernameOrUserId": "Потребителско име или Потребителски Идентификатор",
"sendGiftToWhom": "На кой бихте искали да пратите подарък?",
"selectGift": "Избиране на Подарък",
"pmReported": "Благодарим ви, че докладвахте това съобщение.",
"blockedToSendToThisUser": "Не може да пращате на този играч, защото сте го блокирали."
}

View file

@ -1,6 +1,6 @@
{
"noItemsAvailableForType": "Нямате <%= type %>.",
"foodItemType": "Храна",
"foodItemType": "Храна за любимци",
"eggsItemType": "Яйца",
"hatchingPotionsItemType": "Излюпващи Отвари",
"specialItemType": "Специални предмети",

View file

@ -178,5 +178,6 @@
"spring2019RobinHealerSet": "Червеношийка (лечител)",
"spring2019AmberMageSet": "Кехлибар (Магьосник)",
"spring2019OrchidWarriorSet": "Орхидея (воин)",
"june2018": "Юни 2018"
"june2018": "Юни 2018",
"mayYYYY": "Май <%= year %>"
}

View file

@ -51,7 +51,7 @@
"messageGroupChatFlagAlreadyReported": "Вече сте докладвали това съобщение",
"messageGroupChatNotFound": "Съобщението не е намерено!",
"messageGroupChatAdminClearFlagCount": "Само администратор може да изчисти броя на докладванията!",
"messageCannotFlagSystemMessages": "Не можете да докладвате системно съобщение. Ако искате да докладвате за нарушение на Обществените правила свързано с това съобщение, моля, изпратете е-писмо със снимка и обяснение на Lemoness на адрес <%= communityManagerEmail %>.",
"messageCannotFlagSystemMessages": "Не можете да докладвате системно съобщение. Ако искате да докладвате за нарушение на Обществените правила свързано с това съобщение, моля, изпратете е-писмо със снимка и обяснение на нашия Обществен Управител на адрес <%= communityManagerEmail %>.",
"messageGroupChatSpam": "Опа! Изглежда публикувате твърде много съобщения. Моля, изчакайте малко и опитайте отново. Чатът в кръчмата може да показва най-много 200 съобщения, така че съветваме потребителите да публикуват по-дълги и добре обмислени съобщения, както и да обединяват отговорите си. Скоро ще можете да пишете отново! :)",
"messageCannotLeaveWhileQuesting": "Не можете да приемете тази покана за присъединяване в група, докато изпълнявате мисия. Ако искате да се присъедините към тази група, трябва първо да прекратите мисията си можете да направите това от екрана за групата. Ще си получите обратно свитъка с мисията.",
"messageUserOperationProtected": "Пътят `<%= operation %>` не беше запазен, тъй като е защитен път.",
@ -60,7 +60,10 @@
"messageNotAbleToBuyInBulk": "Не може да се закупи повече от един брой от този предмет.",
"notificationsRequired": "Идентификаторите на известията са задължителни.",
"unallocatedStatsPoints": "Имате <span class=\"notification-bold-blue\"><%= points %> неразпределени показателни точки</span>",
"beginningOfConversation": "Това е началото на разговора Ви с <%= userName %>. Запомнете да спазвате добрия тон, да уважавате другия и да следвате Обществените правила!",
"beginningOfConversation": "Това е началото на разговора Ви с <%= userName %>.",
"messageDeletedUser": "Съжаляваме, но този потребител е изтрил профила си.",
"messageMissingDisplayName": "Липсва екранно име."
"messageMissingDisplayName": "Липсва екранно име.",
"canDeleteNow": "Вече може да изтриете съобщението, ако желаете.",
"reportedMessage": "Вие докладвахте това съобщние на модераторите.",
"beginningOfConversationReminder": "Не забравяйте да бъдете мили, уважителни и да следвате Обществените Правила!"
}

View file

@ -16,12 +16,12 @@
"randomize": "Разбъркване",
"mattBoch": "Мат Бош",
"mattShall": "Да изкарам ли жребеца Ви, <%= name %>? След като нахраните един любимец достатъчно, за да се превърне в превоз, той ще се появи тук. Щракнете някой превоз, за да го оседлаете!",
"mattBochText1": "Добре дошли в конюшнята! Аз съм Мат, господарят на зверовете. След като достигнете ниво 3, ще започнете да получавате яйца и излюпващи отвари, с които да си излюпите любимци. Когато излюпите любимец на пазара, той ще се появи тук! Щракнете върху изображението на любимец, за да го добавите към героя си. Хранете любимците с храната, която намирате след достигане на ниво 3 и те ще се превърнат в силни превози.",
"mattBochText1": "Добре дошли в конюшнята! Аз съм Мат, господарят на зверовете. Всеки път като изпълните задача, има шанс да получите Яйце или Излюпваща Отвара, с които да си излюпите Любимци. Когато излюпите Любимец, той ще се появи тук! Щракнете върху изображението на Любимец, за да го добавите към Героя си. Хранете любимците с храната, която намирате, и те ще се превърнат в силни Оседлани Любимци.",
"welcomeToTavern": "Добре дошли в кръчмата!",
"sleepDescription": "Нуждаете се от почивка? Идете в странноприемницата на Даниел, за да спрете някои от по-трудните механики на Хабитика:",
"sleepBullet1": "Пропуснатите ежедневни задачи няма да Ви нараняват",
"sleepBullet2": "Задачите няма да губят серията си или да променят цвета си",
"sleepBullet3": "Главатарите няма да Ви нанасят щети заради пропуснатите ежедневни задачи",
"sleepBullet2": "Задачите няма да губят серията си",
"sleepBullet3": "Главатарите няма да Ви нанасят щети заради пропуснатите Ви ежедневни задачи",
"sleepBullet4": "Щетите Ви срещу главатар и предметите от събираческите мисии ще Ви чакат докато излезете от странноприемницата",
"pauseDailies": "Спиране на щетите",
"unpauseDailies": "Продължаване на щетите",
@ -43,7 +43,7 @@
"displayPotionForGold": "Искате ли да продадете <strong>отвара с <%= itemType %></strong>?",
"sellForGold": "Продаване за <%= gold %> злато",
"howManyToSell": "Колко искате да продадете?",
"yourBalance": "Вашата наличност",
"yourBalance": "Вашата наличност:",
"sell": "Продаване",
"buyNow": "Купуване сега",
"sortByNumber": "Брой",
@ -91,7 +91,7 @@
"unlocked": "Предметите бяха отключени",
"alreadyUnlocked": "Пълният комплект вече е отключен.",
"alreadyUnlockedPart": "Пълният комплект вече е частично отключен.",
"invalidQuantity": "Количеството за закупуване трябва да бъде число.",
"invalidQuantity": "Количеството за закупуване трябва да бъде цяло положително число.",
"USD": "(USD)",
"newStuff": "Нови неща от Бейли",
"newBaileyUpdate": "Ново обновление от Бейли!",
@ -103,7 +103,7 @@
"donationDesc": "20 диаманта, дарение за Хабитика",
"payWithCard": "Плащане с карта",
"payNote": "Забележка: PayPal понякога изисква значително време за обработка. Препоръчваме плащането с кредитна карта.",
"card": "Кредитна карта (чрез Stripe)",
"card": "Кредитна карта",
"amazonInstructions": "Натиснете бутона, за да платите чрез „Amazon Payments“",
"paymentMethods": "Купуване чрез",
"paymentSuccessful": "Плащането Ви беше успешно!",
@ -138,9 +138,9 @@
"tourPartyPage": "Групата ще Ви помогне да бъдете по-отговорен/на. Поканете приятелите си, за да отключите свитък с мисия!",
"tourGuildsPage": "Гилдиите са групи за разговори по общи интереси, създавани от играчите и за играчите. Прегледайте списъка и се присъединете към гилдиите, които Ви се струват интересни! Вижте също и популярната гилдия за задаване на въпроси и помощ, където всеки може да зададе въпросите си относно Хабитика!",
"tourChallengesPage": "Предизвикателствата са тематични списъци от задачи, създавани от потребителите! Присъединявайки се към предизвикателство, Вие ще добавите задачите от него към профила си. Състезавайте се с други потребители, за да печелите диаманти като награда!",
"tourMarketPage": "След като достигнете ниво 3, на случаен принцип започват да Ви се падат яйца и излюпващи отвари, когато завършвате задачите си. Те се появяват тук; използвайте ги, за да излюпвате любимци! Можете също да ги закупите и от пазара.",
"tourMarketPage": "Всеки път когато завършите задача, има шанс да получите Яйце, Излюпваща Отвара или парче Храна за Любимци. Може също да закупите тези продукти от тук.",
"tourHallPage": "Добре дошли в залата на героите, където почитаме хората с принос към Хабитика. Дали чрез код, изображения, музика, текстове или просто услужливост, те са си заслужили диаманти, изключителни предмети и престижни звания. Вие също можете да допринесете за развитието на Хабитика!",
"tourPetsPage": "Това е конюшнята! След като достигнете ниво 3, ще започнете да получавате яйца за любимци и излюпващи отвари като изпълнявате задачите си. Когато излюпите любимец на пазара, той ще се появи тук! Щракнете върху изображението на любимец, за да го добавите към героя си. Хранете любимците с храната, която намирате след достигане на ниво 3 и те ще се превърнат в силни превози.",
"tourPetsPage": "Добре дошли в конюшнята! Всеки път когато завършите задача, има шанс да получите Яйце, Излюпваща Отвара, които се ползват за излюпване на Любимци.Когато излюпите любимец, той ще се появи тук! Щракнете върху изображението на Любимец, за да го добавите към Героя си. Хранете любимците с Храната за Любимци, която сте намерили, и те ще се превърнат в силни Оседлани Любимци.",
"tourMountsPage": "След като нахраните един любимец достатъчно, за да се превърне в превоз, той ще се появи тук. Щракнете някой превоз, за да го оседлаете!",
"tourEquipmentPage": "Тук се съхранява екипировката Ви! Снаряжението Ви променя показателите Ви. Ако искате да покажете различна екипировка на героя си, без да променяте показателите си, щракнете „Използване на костюм.“",
"equipmentAlreadyOwned": "Вече притежавате този предмет",
@ -167,5 +167,9 @@
"welcome4": "Избягвайте лошите навици, които отнемат здраве (ЖТ), или героят Ви ще умре!",
"welcome5": "Сега ще персонализирате героя си и ще създадете задачите си…",
"imReady": "Влизане в Хабитика",
"limitedOffer": "Налично до <%= date %>"
"limitedOffer": "Налично до <%= date %>",
"paymentCanceledDisputes": "Пратихме потвърждение за прекратяване на вашият email. Ако не виждате съобщението, моля свържете се с нас, за да се предотвратят бъдещи конфликти за таксуване.",
"paymentAutoRenew": "Този абонамент ще се обновява автоматично, докато не се прекрати. Ако искате да прекратите този абонамент, може да го направите чрез настройките.",
"paymentSubBillingWithMethod": "Вашият абонамент ще бъде таксуван <strong>$<%= amount %></strong> всеки <strong><%= months %> месеца</strong> чрез <strong><%= paymentMethod %></strong>.",
"cannotUnpinItem": "Този предмет не може да бъде откачен."
}

View file

@ -1,14 +1,10 @@
{
"needTips": "Имате нужда от съвети как да започнете? Ето кратко ръководство!",
"step1": "Стъпка 1: Въведете задачите си",
"webStep1Text": "Хабитика трябва да знае какви са истинските Ви цели, затова въведете няколко задачи за изпълнение. Винаги можете да добавите още по-късно, като натиснете бутона „Създаване“.\n * **Създаване на [задачи за изпълнение](http://habitica.fandom.com/wiki/To-Dos):** Въведете задачите, които трябва да свършите веднъж, или които се вършат много рядко, в колоната за задачи, една по една. След това можете да щракнете моливчето и да ги редактирате, като добавите списък от подзадачи, крайна дата и още!\n * **Създаване на [ежедневни задачи](http://habitica.fandom.com/wiki/Dailies):** Въведете дейностите, които трябва да вършите всекидневно или в един и същ ден всяка седмица, в колоната с ежедневни. Щракнете върху задача, за да редактирате дните от седмицата, през които въпросната задача трябва да се върши. Можете също да изискате изпълнението ѝ на определен период, например на всеки 3 дни.\n * **Създаване на [навици](http://habitica.fandom.com/wiki/Habits):** Въведете навиците, които искате да си създадете, в колоната с навици. Може да настроите дали навикът е добър :heavy_plus_sign: или лош :heavy_minus_sign:.\n * **Създаване на [награди](http://habitica.fandom.com/wiki/Rewards):** Освен наградите, предлагани от самата игра, можете да добавите различни дейности или примамливи неща, които да използвате като мотивация, в колоната с награди. Почивката и удоволствията също са важни!\n* Ако имате нужда от малко вдъхновение, можете да разгледате страниците в уикито с [примерни навици](http://habitica.fandom.com/wiki/Sample_Habits), [примерни ежедневни задачи](http://habitica.fandom.com/wiki/Sample_Dailies), [примерни задачи за изпълнение](http://habitica.fandom.com/wiki/Sample_To-Dos), и [примерни награди](http://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
"step2": "Стъпка 2: Печелете точки като вършите неща в истинския живот",
"webStep2Text": "А сега започнете да преследвате целите си от списъка! Когато завършвате задачи и ги отмятате в Хабитика, ще получавате [опит](http://habitica.fandom.com/wiki/Experience_Points), чрез който качвате ниво и [злато](http://habitica.fandom.com/wiki/Gold_Points), с което можете да си купувате награди. Ако се поддадете на лош навик или пропуснете ежедневна задача, ще загубите [здраве](http://habitica.fandom.com/wiki/Health_Points). Така лентите за опит и здраве представляват своеобразен показател за напредъка към целите Ви. Подобрявайки истинския си живот, Вашият герой в играта ще напредва.",
"step3": "Стъпка 3: Персонализирайте и изследвайте Хабитика",
"webStep3Text": "След като свикнете с нещата, ще можете да се забавлявате още повече с Хабитика, с тези интересни функционалности:\n * Организирайте задачите си с [етикети](http://habitica.fandom.com/wiki/Tags) (етикетите се добавят в прозорчето за редактиране на задача);\n * Персонализирайте [героя](http://habitica.fandom.com/wiki/Avatar) си, като натиснете потребителската иконка в горния десен ъгъл;\n * Купете си [екипировка](http://habitica.fandom.com/wiki/Equipment) от колоната с награди или от [магазините](<%= shopUrl %>) и екипирайте героя си с нея в [Инвентар > Екипировка](<%= equipUrl %>);\n * Свържете се с други потребители посредством [кръчмата](http://habitica.fandom.com/wiki/Tavern);\n * След като достигнете ниво 3, ще можете да излюпвате [любимци](http://habitica.fandom.com/wiki/Pets) като събирате [яйца](http://habitica.fandom.com/wiki/Eggs) и [излюпващи отвари](http://habitica.fandom.com/wiki/Hatching_Potions). [Хранете](http://habitica.fandom.com/wiki/Food) ги, за да се превърнат в [превози](http://habitica.fandom.com/wiki/Mounts);\n * След като достигнете ниво 10, ще можете да изберете [клас](http://habitica.fandom.com/wiki/Class_System) и да използвате класово-специфични [умения](http://habitica.fandom.com/wiki/Skills) (нива 11 до 14);\n * Сформирайте група с приятелите си от [Група](<%= partyUrl %>), за да се държите отговорни взаимно и да получите свитък с мисия;\n * Побеждавайте чудовища и събирайте предмети от [мисии](http://habitica.fandom.com/wiki/Quests) (ще получите мисия, когато достигнете ниво 15).",
"overviewQuestions": "Имате въпрос? Вижте нашите [ЧЗВ](<%= faqUrl %>)! Ако не намирате въпроса си там, можете да ни попитате за помощ в [Помощната гилдия на Хабитика](<%= helpGuildUrl %>).\n\nУспех със задачите Ви!"
"needTips": "Имате нужда от съвети как да започнете? Ето кратко ръководство!",
"step1": "Стъпка 1: Въведете задачите си",
"webStep1Text": "Хабитика трябва да знае какви са истинските Ви цели, затова въведете няколко задачи за изпълнение. Винаги можете да добавите още по-късно, като натиснете бутона „Създаване“.\n * **Създаване на [задачи за изпълнение](http://habitica.fandom.com/wiki/To-Dos):** Въведете задачите, които трябва да свършите веднъж, или които се вършат много рядко, в колоната за задачи, една по една. След това можете да щракнете моливчето и да ги редактирате, като добавите списък от подзадачи, крайна дата и още!\n * **Създаване на [ежедневни задачи](http://habitica.fandom.com/wiki/Dailies):** Въведете дейностите, които трябва да вършите всекидневно или в един и същ ден всяка седмица, в колоната с ежедневни. Щракнете върху задача, за да редактирате дните от седмицата, през които въпросната задача трябва да се върши. Можете също да изискате изпълнението ѝ на определен период, например на всеки 3 дни.\n * **Създаване на [навици](http://habitica.fandom.com/wiki/Habits):** Въведете навиците, които искате да си създадете, в колоната с навици. Може да настроите дали навикът е добър :heavy_plus_sign: или лош :heavy_minus_sign:.\n * **Създаване на [награди](http://habitica.fandom.com/wiki/Rewards):** Освен наградите, предлагани от самата игра, можете да добавите различни дейности или примамливи неща, които да използвате като мотивация, в колоната с награди. Почивката и удоволствията също са важни!\n* Ако имате нужда от малко вдъхновение, можете да разгледате страниците в уикито с [примерни навици](http://habitica.fandom.com/wiki/Sample_Habits), [примерни ежедневни задачи](http://habitica.fandom.com/wiki/Sample_Dailies), [примерни задачи за изпълнение](http://habitica.fandom.com/wiki/Sample_To-Dos), и [примерни награди](http://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
"step2": "Стъпка 2: Печелете точки като вършите неща в истинския живот",
"webStep2Text": "А сега започнете да преследвате целите си от списъка! Когато завършвате задачи и ги отмятате в Хабитика, ще получавате [опит](http://habitica.fandom.com/wiki/Experience_Points), чрез който качвате ниво и [злато](http://habitica.fandom.com/wiki/Gold_Points), с което можете да си купувате награди. Ако се поддадете на лош навик или пропуснете ежедневна задача, ще загубите [здраве](http://habitica.fandom.com/wiki/Health_Points). Така лентите за опит и здраве представляват своеобразен показател за напредъка към целите Ви. Подобрявайки истинския си живот, Вашият герой в играта ще напредва.",
"step3": "Стъпка 3: Персонализирайте и изследвайте Хабитика",
"webStep3Text": "След като свикнете с нещата, ще можете да се забавлявате още повече с Хабитика, с тези интересни функционалности:\n * Организирайте Задачите си с [етикети](http://habitica.fandom.com/wiki/Tags) (етикетите се добавят в прозорчето за редактиране на Задача);\n * Персонализирайте [Героя](http://habitica.fandom.com/wiki/Avatar) си, като натиснете потребителската иконка в горния десен ъгъл;\n * Купете си [екипировка](http://habitica.fandom.com/wiki/Equipment) от колоната с награди или от [магазините](<%= shopUrl %>) и екипирайте героя си с нея в [Инвентар > Екипировка](<%= equipUrl %>);\n * Свържете се с други потребители посредством [кръчмата](http://habitica.fandom.com/wiki/Tavern);\n * Излюпване на [любимци](http://habitica.fandom.com/wiki/Pets) като събирате [Яйца](http://habitica.fandom.com/wiki/Eggs) и [Излюпващи Отвари](http://habitica.fandom.com/wiki/Hatching_Potions). [Хранете](http://habitica.fandom.com/wiki/Food) ги, за да се превърнат в [превози](http://habitica.fandom.com/wiki/Mounts);\n * След като достигнете ниво 10, ще можете да изберете [Клас](http://habitica.fandom.com/wiki/Class_System) и да използвате Класово-специфични [умения](http://habitica.fandom.com/wiki/Skills) (нива 11 до 14);\n * Сформирайте Група с приятелите си от [Група](<%= partyUrl %>), за да се държите отговорни взаимно и да получите свитък с мисия;\n * Побеждавайте чудовища и събирайте предмети от [Мисии](http://habitica.fandom.com/wiki/Quests) (ще получите мисия, когато достигнете ниво 15).",
"overviewQuestions": "Имате въпрос? Вижте нашите [ЧЗВ](<%= faqUrl %>)! Ако не намирате въпроса си там, можете да ни попитате за помощ в [Помощната гилдия на Хабитика](<%= helpGuildUrl %>).\n\nУспех със задачите Ви!"
}

View file

@ -1,19 +1,19 @@
{
"stable": "Конюшня",
"pets": "Любимци",
"activePet": "Текущ любимец",
"noActivePet": "Няма текущ любимец",
"petsFound": "Намерени любимци",
"activePet": "Текущ Любимец",
"noActivePet": "Няма текущ Любимец",
"petsFound": "Намерени Любимци",
"magicPets": "Любимци от магически отвари",
"rarePets": "Редки любимци",
"rarePets": "Редки Любимци",
"questPets": "Любимци от мисии",
"mounts": "Превози",
"activeMount": "Текущ превоз",
"noActiveMount": "Няма текущ превоз",
"mountsTamed": "Опитомени превози",
"activeMount": "Текущ Превоз",
"noActiveMount": "Няма текущ Превоз",
"mountsTamed": "Опитомени Превози",
"questMounts": "Превози от мисии",
"magicMounts": "Превози от магически отвари",
"rareMounts": "Редки превози",
"rareMounts": "Редки Превози",
"etherealLion": "Етерен лъв",
"veteranWolf": "Вълк ветеран",
"veteranTiger": "Тигър ветеран",
@ -44,11 +44,11 @@
"hatchingPotion": "излюпваща отвара",
"noHatchingPotions": "Вие нямате никакви излюпващи отвари.",
"inventoryText": "Щракнете яйце, за да видите приложимите за него отвари, осветени в зелено, а след това изберете някоя от осветените отвари, за да излюпите любимеца си. Ако няма осветени отвари, щракнете яйцето отново, за да премахнете избора и щракнете някоя отвара, за да видите върху кои яйца може да се използва. Можете също да продадете ненужните яйца и отвари на Александър Търговеца.",
"haveHatchablePet": "Имате излюпваща отвара с(ъс) <%= potion %> и яйце на <%= egg %>, с които можете да излюпите този любимец! <b>Натиснете</b> лапата за излюпване.",
"haveHatchablePet": "Имате излюпваща отвара с(ъс) <%= potion %> и яйце на <%= egg %>, с които можете да излюпите този любимец! <b>Натиснете</b> за да го излюпите!",
"quickInventory": "Бърз инвентар",
"foodText": "храна",
"food": "Храна и седла",
"noFoodAvailable": "Нямате храна.",
"food": "Храна за Любимци и седла",
"noFoodAvailable": "Нямате Храна за Любимци.",
"noSaddlesAvailable": "Нямате седла.",
"noFood": "Вие нямате нито храна, нито седла.",
"dropsExplanation": "Вземете тези предмети по-бързо с диаманти, ако не Ви се чака да Ви се паднат след приключване на задача. <a href=\"http://habitica.fandom.com/wiki/Drops\">Научете повече за системата за падане на предмети.</a>",
@ -123,9 +123,9 @@
"foodWikiText": "Какво обича да яде любимецът ми?",
"foodWikiUrl": "http://habitica.fandom.com/wiki/Food_Preferences",
"welcomeStable": "Добре дошли в конюшнята!",
"welcomeStableText": "Аз съм Мат, господарят на зверовете. След като достигнете ниво 3, можете да излюпвате любимци, използвайки яйца и отвари, които намирате. Когато излюпите любимец в инвентара си, той ще се появи тук! Щракнете върху изображението на любимец, за да го добавите към героя си. Хранете любимците с храната, която намирате след достигане на ниво 3, и те ще се превърнат в силни превози.",
"welcomeStableText": "Добре дошли в Конюшнята! Аз съм Мат, господарят на зверовете. Всеки път като изпълните задача, има шанс да получите Яйце или Излюпваща Отвара, които са ви нужни за да излюпвате Любимци. Когато излюпите ЛОседлан Звярюбимец, той ще се появи тук! Щракнете върху изображението на Любимец, за да го добавите към Героя си. Хранете любимците с храната, която намирате, и те ще се превърнат в силни Оседлани Любимци.",
"petLikeToEat": "Какво обича да яде любимецът ми?",
"petLikeToEatText": "Любимците ще растат независимо с какво ги храните, но ще растат по-бързо, ако ги храните с това, което обичат. Опитайте да разгадаете какво обичат, или вижте отговорите тук: <br/> <a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
"petLikeToEatText": "Любимците ще растат независимо с какво ги храните, но ще растат по-бързо, ако им давате от любимата им Храна. Опитайте да разгадаете какво обичат, или вижте отговорите тук: <br/> <a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
"filterByStandard": "Стандартно",
"filterByMagicPotion": "Магическа отвара",
"filterByQuest": "Мисия",
@ -133,7 +133,7 @@
"sortByColor": "Цвят",
"sortByHatchable": "Може да се излюпи",
"hatch": "Излюпване!",
"foodTitle": "Храна",
"foodTitle": "Храна за Любимци",
"dragThisFood": "Завлачете <%= foodName %> до любимец, за да видите как расте!",
"clickOnPetToFeed": "Щракнете върху любимец, за да му дадете <%= foodName %> и да видите как расте!",
"dragThisPotion": "Завлачете <%= potionName %> до яйце и ще се излюпи нов любимец!",
@ -142,5 +142,8 @@
"clickOnPotionToHatch": "Щракнете върху излюпваща отвара, която да използвате върху върху своето яйце на <%= eggName %> и от него ще се излюпи нов любимец!",
"notEnoughPets": "Не сте събрали достатъчно любимци",
"notEnoughMounts": "Не сте събрали достатъчно превози",
"notEnoughPetsMounts": "Не сте събрали достатъчно любимци и превози"
"notEnoughPetsMounts": "Не сте събрали достатъчно любимци и превози",
"filterByWacky": "Смахнат",
"gryphatrice": "Грифатрис",
"wackyPets": "Смахнати Любимци"
}

View file

@ -71,8 +71,8 @@
"scrollsText1": "Мисиите се изпълняват с група. Ако искате да започнете мисия самостоятелно,",
"scrollsText2": "създайте си празна група",
"scrollsPre": "Все още не сте отключили тази мисия!",
"alreadyEarnedQuestLevel": "Вече сте придобили тази мисия при достигането на ниво <%= level %>. ",
"alreadyEarnedQuestReward": "Вече сте придобили тази мисия със завършването на <%= priorQuest %>. ",
"alreadyEarnedQuestLevel": "Вече сте придобили тази мисия при достигането на Ниво <%= level %>.",
"alreadyEarnedQuestReward": "Вече сте придобили тази мисия със завършването на <%= priorQuest %>.",
"completedQuests": "Завършил(а) следните мисии",
"mustComplete": "Трябва първо да завършите <%= quest %>.",
"mustLevel": "Трябва да бъдете ниво <%= level %>, за да започнете тази мисия.",
@ -126,5 +126,18 @@
"bossHealth": "<%= currentHealth %> / <%= maxHealth %> здраве",
"rageAttack": "Яростна атака:",
"bossRage": "<%= currentRage %> / <%= maxRage %> ярост",
"rageStrikes": "Яростни удари"
"rageStrikes": "Яростни удари",
"tavernBossTired": "<%= bossName %> се пробва да пусне <%= rageName %> но е прекалено изморен.",
"chatQuestCancelled": "<%= username %> отказа груповата мисия <%= questName %>.",
"chatQuestAborted": "<%= username %> прекрати груповата мисия <%= questName %>.",
"chatItemQuestFinish": "Всички предмети са намерени! Групата получи възнаграждението си.",
"chatFindItems": "<%= username %> намери <%= items %>.",
"chatBossDefeated": "Победихте <%= bossName %>! Членовете от групата, които участваха в мисията, получават възнаграждение от победата.",
"chatBossDontAttack": "<%= username %> атакува<%= bossName %> и нанася <%= userDamage %> щети. <%= bossName %> не атакува, защото уважава факта, че има няколко проблеми след профилактиката и не иска да наранява някой нечестно. Ще продължи вилнеенето си скоро!",
"chatBossDamage": "<%= username %> атакува <%= bossName %> и нанася<%= userDamage %> щети. <%= bossName %> атакува групата и нанася <%= bossDamage %> щети.",
"chatQuestStarted": "Мисията Ви, <%= questName %> започна.",
"questAlreadyStartedFriendly": "Мисията вече е започнала, но винаги може да хванете следващата!",
"questAlreadyStarted": "Мисията вече е започнала.",
"questInvitationNotificationInfo": "Получихте покана за присъединяване към мисия",
"hatchingPotionQuests": "Мисии за Магическа Излюпваща Отвара"
}

View file

@ -635,5 +635,5 @@
"questVelociraptorBoss": "Велоси-рапърът",
"questVelociraptorDropVelociraptorEgg": "Велоцираптор (яйце)",
"questVelociraptorUnlockText": "Отключва възможността за купуване на яйца на велоцираптор от пазара.",
"evilSantaAddlNotes": "Забележете, че ловджията дядо Коледа и Намери Мечето възнаграждават натрупващо се постижение от мисия, но дават рядко животно и оседлан звяр които могат да бъдат добавени в конюшнята само веднъж."
"evilSantaAddlNotes": "Забележете, че ловджията дядо Коледа и Намери Мечето възнаграждават натрупващо се постижение от мисия, но дават рядко животно и оседлан звяр които могат да бъдат добавени в конюшнята само веднъж."
}

View file

@ -21,9 +21,10 @@
"rebirthOrb": "Използвал(а) Кълбо на прераждане, за да започне отново след достигане на ниво <%= level %>.",
"rebirthOrb100": "Използвал(а) Кълбо на прераждане, за да започне отново след достигане на ниво 100 или по-високо.",
"rebirthOrbNoLevel": "Използвал(а) Кълбо на прераждане, за да започне отново.",
"rebirthPop": "Рестартиране на героя Ви от ниво 1, запазвайки постиженията, събраните предмети и екипировката. Задачите и историята им ще бъдат запазени, но цветът им ще се промени на жълт. Сериите Ви ще бъдат премахнати, освен тези, които са за задачи от предизвикателства. Златото, опитът, маната и ефектите на всички умения ще бъдат премахнати. Всичко това ще бъде извършено на момента. За повече информация вижте страницата в уикито относно <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Кълбото на прераждането</a>.",
"rebirthPop": "Рестартиране на героя Ви от ниво 1, запазвайки постиженията, събраните предмети и екипировката. Задачите и историята им ще бъдат запазени, но цветът им ще се промени на жълт. Сериите Ви ще бъдат премахнати, освен задачите, които принадлежат към активните Предизвикателства и Групови Планове. Златото, опитът, маната и ефектите на всички умения ще бъдат премахнати. Всичко това ще бъде извършено на момента. За повече информация вижте страницата в уикито относно <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Кълбото на прераждането</a>.",
"rebirthName": "Кълбо за прераждане",
"reborn": "Прероден(а), максимално ниво: <%= reLevel %>",
"confirmReborn": "Наистина ли искате това?",
"rebirthComplete": "Вие бяхте прероден(а)!"
}
"rebirthComplete": "Вие бяхте прероден(а)!",
"nextFreeRebirth": "<strong><%= days %> дни</strong> до <strong>БЕЗПЛАТНО</strong> Кълбо на Прераждане"
}

View file

@ -119,8 +119,8 @@
"giftedSubscriptionInfo": "<%= name %> Ви подари <%= months %> месец(а) абонамент",
"giftedSubscriptionFull": "Здравейте <%= username %>, <%= sender %> Ви изпрати <%= monthCount %> месец(а) абонамент!",
"giftedSubscriptionWinterPromo": "Здравейте, <%= username %>, Вие получихте <%= monthCount %> месец(а) абонамент като част от нашата промоция за подаряване на подаръци за празниците!",
"invitedParty": "Покана в група",
"invitedGuild": "Покана в гилдия",
"invitedParty": "Бяхте поканени в Група",
"invitedGuild": "Бяхте поканени в Гилдия",
"importantAnnouncements": "Напомняния да влезете, за да завършите задачите си и да получите награди",
"weeklyRecaps": "Информация относно дейността на профила Ви през последната седмица. (Забележка: в момента това е изключено поради проблеми с производителността, но се надяваме да го включим отново скоро!)",
"onboarding": "Насоки за настройка на Вашия профил в Хабитика",
@ -137,7 +137,7 @@
"unsubscribeAllEmailsText": "Поставяйки отметка тук, аз потвърждавам, че разбирам, че отписвайки се от всички е-писма, Хабитика няма да може да ме уведомява по е-поща за важните промени по уеб сайта или профила ми.",
"unsubscribeAllPush": "Поставете отметка тук, за да се откажете от всички известия",
"correctlyUnsubscribedEmailType": "Вие се отписахте успешно за получаването на е-писма за „<%= emailType %>“.",
"subscriptionRateText": лащане на <%= price %>$ на всеки <%= months %> месеца",
"subscriptionRateText": овтарящи се плащания <strong>$<%= price %> USD</strong> на всеки <strong><%= months %> месеца</strong>",
"recurringText": "повтарящо се",
"benefits": "Предимства",
"coupon": "Купон",
@ -173,14 +173,14 @@
"pushDeviceAlreadyAdded": "Потребителят вече има това устройство за известия",
"pushDeviceNotFound": "Потребителят няма устройство за известия с този идентификатор.",
"pushDeviceRemoved": "Устройството за известия беше премахнато успешно.",
"buyGemsGoldCap": "Ограничението беше повишено до <%= amount %>",
"buyGemsGoldCap": "Ограничението на Диаманти беше повишено до <%= amount %>",
"mysticHourglass": "Тайнствени пясъчни часовници: <%= amount %>",
"mysticHourglassText": "Тайнствените пясъчни часовници позволяват закупуването на комплект от тайнствени предмети от предходен месец.",
"purchasedPlanId": "Плащане на <%= price %>$ всеки <%= months %> месец(а) (<%= plan %>)",
"purchasedPlanExtraMonths": "Имате <%= months %> допълнителни месеца към абонамента си.",
"purchasedPlanExtraMonths": "Имате <strong><%= months %> допълнителни месеца</strong> към абонамента си.",
"consecutiveSubscription": "Последователен абонамент",
"consecutiveMonths": "Последователни месеци:",
"gemCapExtra": "Допълнително ограничение на диамантите:",
"gemCapExtra": "Бонус към Ограничението на Диаманти",
"mysticHourglasses": "Тайнствени пясъчни часовници:",
"mysticHourglassesTooltip": "Тайнствени пясъчни часовници",
"paypal": "PayPal",
@ -203,6 +203,15 @@
"goToSettings": "Към настройките",
"usernameVerifiedConfirmation": "Вашето потребителско име, <%= username %>, е потвърдено!",
"usernameNotVerified": "Моля, потвърдете потребителското си име.",
"changeUsernameDisclaimer": "Скоро ще преобразуваме имената за вписване към уникални, публични потребителски имена. Тези потребителски имена ще бъдат използвани за покани, @споменавания в чата, и съобщения.",
"verifyUsernameVeteranPet": "Един от тези любимци-ветерани ще Ви чака след като приключите с потвърждението!"
"changeUsernameDisclaimer": "Потребителското ви име се ползва за покани, @споменавания в чата и съобщения, трябва да е от 1 до 20 символа, да съдържа само буквите от a до z, цифрите от 0 до 9, тирета или долни черти и не може да съдържа неприлични думи.",
"verifyUsernameVeteranPet": "Един от тези любимци-ветерани ще Ви чака след като приключите с потвърждението!",
"subscriptionReminders": "Абонаментни Напомняния",
"onlyPrivateSpaces": "Само в лични пространства",
"everywhere": "Навсякъде",
"suggestMyUsername": "Предложи ми потребителско име",
"mentioning": "Споменаване",
"buyGemsGoldCapBase": "Ограничение на Диаманти на <%= amount %>",
"newPMNotificationTitle": "Ново съобщение от <%= name %>",
"chatExtensionDesc": "Чат Разширението за Habitica добавя интуитивен чат прозорец за цялата habitica.com. Позволява на потребителите да чатят в Кръчмата, групата им и в гилдиите, в които са членове.",
"chatExtension": "<a target='blank' href='https://chrome.google.com/webstore/detail/habitrpg-chat-client/hidkdfgonpoaiannijofifhjidbnilbb'>Chrome Чат Разширение</a> и <a target='blank' href='https://addons.mozilla.org/en-US/firefox/addon/habitica-chat-client-2/'>Firefox Чат Разширение</a>"
}

View file

@ -7,7 +7,7 @@
"buyGemsGoldText": "Александър Търговеца ще Ви продава Диаманти на цената от 20 Злато за Диамант. Месечните му доставки първоначално са ограничени до 25 диаманта на месец, но това ограничение се увеличава с 5 диаманта за всеки 3 месеца на непрекъснат абонамент, докато достигне 50 диаманта на месец!",
"mustSubscribeToPurchaseGems": "Купуването на диаманти със злато изисква абонамент",
"reachedGoldToGemCap": "Достигнахте месечното ограничение на златото, което може да бъде превърнато в диаманти: <%= convCap %>. Целта на това е да предотвратим злоупотребите. Ограничението се нулира през първите три дни на всеки месец.",
"reachedGoldToGemCapQuantity": "Заявеното от Вас количество <%= quantity %>, превишава месечното ограничение на златото, което може да бъде превърнато в диаманти <%= convCap %>. Целта на това е да предотвратим злоупотребите. Ограничението се нулира през първите три дни на всеки месец.",
"reachedGoldToGemCapQuantity": "Заявеното от Вас количество <%= quantity %>, превишава количеството, което може да закупите за този месец.Ограничението се нулира през първите три дни на всеки месец. Благодарим Ви, че се абонирахте!",
"retainHistory": "Запазете допълнителни откъси история",
"retainHistoryText": "Завършените задачи за изпълнение остават по-дълго в историята.",
"doubleDrops": "Ежедневното ограничение на дневни награди е два пъти по-голямо",
@ -18,11 +18,11 @@
"supportDevsText": "Абонаментът Ви помага за поддръжката на Habitica и осигурява средства за разработката на нови функционалности. Благодарим Ви за щедростта!",
"exclusiveJackalopePet": "Изключителен любимец",
"exclusiveJackalopePetText": "Вземете Царствено Лилавия Рогат Заек, достъпен само за абонати!",
"giftSubscription": "Искате ли да подарите някому абонамент?",
"giftSubscription": "Искате ли да подарите предимствата на абонамент на някой друг?",
"giftSubscriptionText1": "Отворете профила им! Можете да направите това като щракнете героя му в заглавната част на дружината, в която сте заедно, или като щракнете името им в чата.",
"giftSubscriptionText2": "Натиснете иконката с подарък в горната дясна част на профила им.",
"giftSubscriptionText3": "Изберете „абонамент“ и въведете своята платежна информация.",
"giftSubscriptionText4": "Благодарим Ви за това, че подкрепяте Habitica!",
"giftSubscriptionText4": "Благодарим Ви за това, че подкрепяте Habitica!",
"monthUSD": "$ / месец",
"organization": "Организация",
"groupPlans": "Групови планове",
@ -41,8 +41,8 @@
"manageSub": "Щракнете за управление на абонамента",
"cancelSub": "Прекратяване на абонамента",
"cancelSubInfoGoogle": "Моля, идете в раздела „Профил > Абонаменти“ в магазина „Google Play“, за да прекратите абонамента си или да видите кога изтича той, ако вече сте го прекратили. Тук не можете да разберете дали абонаментът Ви е бил прекратен.",
"cancelSubInfoApple": "Моля, следвайте <a href=\"https://support.apple.com/en-us/HT202039\">официалните инструкции на Апъл</a>, за да прекратите абонамента си, или да видите кога изтича той, ако вече сте го прекратили. Тук не можете да разберете дали абонаментът Ви е бил прекратен.",
"cancelSubInfoGroupPlan": "Тъй като имате безплатен абонамент от Групов План, не можете да го прекратите. Той ще приключи когато спрете да бъдете член на групата. Ако Вие сте водачът на групата и искате да прекратите целия групов план, можете да го направите от раздела „Подробности за разплащането“ на групата.",
"cancelSubInfoApple": "Моля, следвайте <a href=\"https://support.apple.com/en-us/HT202039\" target=\"_blank\">официалните инструкции на Apple</a>, за да прекратите абонамента си, или да видите кога изтича той, ако вече сте го прекратили. Тук не можете да разберете дали абонаментът Ви е бил прекратен.",
"cancelSubInfoGroupPlan": "Тъй като имате безплатен абонамент от Групов План, не можете да го прекратите. Той ще приключи когато спрете да бъдете член на Груповия План. Ако Вие сте лидера на Групата и искате да прекратите целия групов план, можете да го направите от раздела „Таксуване на Граупата“.",
"canceledSubscription": "Прекратен абонамент",
"cancelingSubscription": "Прекратяване на абонамента",
"adminSub": "Администраторски абонаменти",
@ -68,7 +68,7 @@
"infiniteGemText": "Ще осигурим че водачите на Вашата организация ще имат толкова Диаманти, от колкото имат нужда за неща като награди за предизвикателства, създаване на гилдии, и т.н.",
"notYetPlan": "Планът все още не е наличен, но можете да щракнете тук, за да се свържете с нас и ще ви държим в течение.",
"contactUs": "Свържете се с нас",
"checkout": "Поръчване",
"checkout": "Гише",
"sureCancelSub": "Наистина ли искате да прекратите абонамента си?",
"subCanceled": "Абонаментът Ви изтича на",
"buyGemsGoldTitle": "За да можете да купувате Диаманти със Злато",
@ -152,13 +152,13 @@
"mysterySet201810": "Тъмногорски Комплект",
"mysterySet201811": "Комплект на Великолепният Магьосник",
"mysterySet201812": "Полярна Лисица Комплект",
"mysterySet201901": "Полярната Звезда Комплект",
"mysterySet201901": "Комплект Поларис",
"mysterySet301404": "Стандартен Стиѝмпънк Комплект",
"mysterySet301405": "Комплект Стиѝмпънк Аксесоари",
"mysterySet301703": "Изтънчен Паунов Комплект",
"mysterySet301704": "Фазанов Стиѝмпънк Комплект",
"mysterySetwondercon": "Уъндер-кон",
"subUpdateCard": "Обнови Картата",
"subUpdateCard": "Обнови Кредитна Карта",
"subUpdateTitle": "Обнови",
"subUpdateDescription": "Обновете картата, която използвате за плащане.",
"notEnoughHourglasses": "Нямате достатъчно Тайнствени Пясъчни Часовници.",
@ -202,19 +202,19 @@
"gemBenefit3": "Вълнуващи свързани Мисии, от които могат да Ви се паднат яйца за любимци.",
"gemBenefit4": "Нулиране на Показателите на героя Ви и промяна на Класът им.",
"subscriptionBenefitLeadin": "Подкрепете Habitica като станете абонат, и ще получите тези страхотни предимства!",
"subscriptionBenefit1": "Александър Търговеца ще Ви продава Диаманти, по 20 Злато на брой!",
"subscriptionBenefit1": "Александър Търговеца сега ще Ви продава Диаманти от Пазара, по 20 Злато на брой!",
"subscriptionBenefit2": "Завършените задачи за изпълнение остават за по-дълго в историята.",
"subscriptionBenefit3": "Открийте повече предмети в Habitica с двойното ограничение за дневни награди.",
"subscriptionBenefit4": "Уникални козметични предмети за героя Ви всеки месец.",
"subscriptionBenefit5": "Получете изключителния Царствено Лилав Рогат Заек!",
"subscriptionBenefit6": "Получете Тайнствени Пясъчни Часовници, които можете да използвате в магазина на Тайнствените Пътешественици във Времето!",
"subscriptionBenefit3": "Открийте още повече предмети в Habitica с 2x ограничение за дневни награди.",
"subscriptionBenefit4": "Уникален козметичен предмет за да си декорирате Героя всеки месец.",
"subscriptionBenefit5": "Получете Царствено Лилав Рогат Заек като станете абонат.",
"subscriptionBenefit6": "Получете Тайнствени Пясъчни Часовници за да може да купувате предмети в магазина на Тайнствените Пътешественици във Времето!",
"haveCouponCode": "Имате ли код от купон?",
"subscriptionAlreadySubscribedLeadIn": "Благодарим Ви, че станахте абонат!",
"subscriptionAlreadySubscribed1": "За да видите подробности за абонамента си или да го прекратите, подновите или промените, моля щракнете върху <a href='/user/settings/subscription'>Потребителската иконка и изберете Настройки &gt; Абонамент</a>.",
"purchaseAll": "Купете Комплект",
"gemsPurchaseNote": "Абонатите могат да купуват диаманти със злато на Пазара! За по-лесен достъп можете също да закачите диаманта към колоната си с Награди.",
"gemsRemaining": "оставащи диаманта",
"notEnoughGemsToBuy": "Не можете да закупите толкова диаманти",
"gemsPurchaseNote": "Абонатите могат да купуват Диаманти със Злато на Пазара! За по-лесен достъп можете също да закачите Диаманта към колоната си с Награди.",
"gemsRemaining": "оставащи Диаманта",
"notEnoughGemsToBuy": "Не можете да закупите толкова Диаманта",
"subCanceledTitle": "Абонамент Анулиран",
"mysterySet201912": "Полярна Фейя Комплект",
"mysterySet201911": "Кристален Заклинател Комплект",
@ -228,5 +228,26 @@
"mysterySet201903": "Ярък Яйчен Комплект",
"mysterySet201902": "Загадъчен Почитател Комлект",
"subWillBecomeInactive": "Ще стане неактивен",
"confirmCancelSub": "Сигурни ли сте, че искате да анулиране абонамента си? Ще изгубите всичките си абонаментски предимства."
"confirmCancelSub": "Сигурни ли сте, че искате да анулиране абонамента си? Ще изгубите всичките си абонаментски предимства.",
"cancelSubAlternatives": "Ако имате технически проблеми или Habitica не работи за вас, моля не се колебайте <a href='mailto:admin@habitica.com'>да се свържете с нас</a>. Искаме да ви помогнем да се въползване на най-висока степен от Habitica.",
"cancelYourSubscription": "Прекратяване на абонирането?",
"readyToResubscribe": "Готови ли сте да се абонирате пак?",
"needToUpdateCard": "Трябва да си обновите картата?",
"subMonths": "Абонаментни Месеци",
"subscriptionStats": "Абонаментни Показатели",
"subscriptionInactiveDate": "Ползите от абонамента ви ще станат неактивни на <strong><%= date %></strong>",
"subscriptionCanceled": "Абонаментът ви е прекратен",
"youAreSubscribed": "Вие сте абонирани към Habitica",
"doubleDropCap": "Двойно повече Награди",
"monthlyMysteryItems": "Месечни Тайнствени Предмети",
"subscribersReceiveBenefits": "Абонатите получават полезни предимства!",
"backgroundAlreadyOwned": "Вече притежавате този Фон.",
"mysterySet202005": "Комплект Удивителен Уивърн",
"mysterySet202004": "Комплект Могъщ Монарх",
"mysterySet202003": "Комплект Бодлив Боец",
"mysterySet202001": "Комплект Приказна Лисица",
"mysticHourglassNeededNoSub": "На този предмет е нужен Тайнствен Пясъчен Часовник. Получаваш Тайнствени Пясъчни Часовници като си абониран в Habitica.",
"giftASubscription": "Подарете Абонамент",
"viewSubscriptions": "Преглед на абонаменти",
"mysterySet202002": "Комплект Стилен Сладкиш"
}

View file

@ -173,7 +173,7 @@
"habitCounterDown": "Отрицателен брояч (Нулира се <%= frequency %>)",
"taskRequiresApproval": "Тази задача трябва да бъде одобрена, преди да я изпълните. Одобрението вече беше поискано",
"taskApprovalHasBeenRequested": "Одобрението беше поискано",
"taskApprovalWasNotRequested": "Само задача, която чака одобрение, може да бъде отбелязана като нуждаеща се от още работа",
"taskApprovalWasNotRequested": "Не е поискано одобрение за тази задача.",
"approvals": "Одобрения",
"approvalRequired": "Нужно е одобрение",
"repeatZero": "Ежедневната задача не е задължителна",
@ -199,7 +199,7 @@
"monthlyRepeatHelpContent": "Тази задача ще бъде подновявана на всеки Х месеца",
"yearlyRepeatHelpContent": "Тази задача ще бъде подновявана на всеки Х години",
"resets": "Нулира се",
"summaryStart": "Повтаря се <%= frequency %> всеки <%= everyX %> <%= frequencyPlural %> ",
"summaryStart": "Повтаря се <%= frequency %> всеки <%= everyX %> <%= frequencyPlural %>",
"nextDue": "Следващи крайни дати",
"checkOffYesterDailies": "Отметнете ежедневните, които сте изпълнили вчера:",
"yesterDailiesTitle": "Вчера оставихте тези ежедневни задачи неотметнати! Искате ли да отметнете някоя от тях сега?",

View file

@ -78,5 +78,8 @@
"achievementBugBonanzaText": "Hat die Käfer-, Schmetterling-, Schnecken- und Spinnenhaustier-Quests erfüllt.",
"onboardingCompleteDescSmall": "Falls Du noch mehr willst, sieh Dir Deine Erfolge an und beginne zu sammeln!",
"onboardingComplete": "Du hast Deine Einstiegsaufgaben erledigt!",
"yourProgress": "Dein Fortschritt"
"yourProgress": "Dein Fortschritt",
"achievementBareNecessitiesModalText": "Du hast die Affen-, Faultier- und Bäumlinghaustier-Quests erfüllt!",
"achievementBareNecessitiesText": "Hat die Affen-, Faultier- und Bäumlinghaustier-Quests erfüllt.",
"achievementBareNecessities": "Mit Bloßen Händen"
}

View file

@ -594,7 +594,7 @@
"questDysheartenerDropHippogriffMount": "Hoffnungsfroher Hippogreif (Reittier)",
"dysheartenerArtCredit": "Artwork von @AnnDeLune",
"hugabugText": "\"Knuddel den Käfer\" Quest-Paket",
"hugabugNotes": "Beinhaltet 'Der KRITISCHE BUG', 'Die Schnecke der Schlamm-Schinderei' und 'Flieg' weiter, Funkenfalter!'. Verfügbar bis zum 31. März.",
"hugabugNotes": "Beinhaltet 'Der KRITISCHE BUG', 'Die Schnecke der Schlamm-Schinderei' und 'Flieg' weiter, Funkenfalter!'. Verfügbar bis zum 31. März.",
"questSquirrelText": "Das Raffinierte Eichhörnchen",
"questSquirrelNotes": "Du wachst auf und bemerkst, dass Du verschlafen hast! Warum ist Dein Wecker nicht losgegangen? .... Wie ist eine Eichel in die Klingel geraten?<br><br>Als Du versuchst, Frühstück zu machen, ist der Toaster mit Eicheln gefüllt. Als Dein Reittier holen willst, ist @Shtut da und versucht erfolglos, den Stall aufzusperren. Du schaust in das Schlüsselloch. “Ist das eine Eichel da drin?”<br><br>@randomdaisy ruft: “Oh nein! Ich wusste, dass meine Haustier-Eichhörnchen ausgebüxt sind, aber ich wusste nicht, dass sie solche Schwierigkeiten gemacht haben! Kannst Du mir helfen, sie zusammenzutreiben, bevor sie noch mehr Chaos anrichten?”<br><br>Den Spuren der schelmisch platzierten Eichennüsse folgenf fängst Du die eigensinnigen Nager, wobei @Cantras hilft, sie sicher zu Hause zu sichern. Aber gerade als Du denkst, dass Deine Aufgabe fast erledigt ist, springt eine Eichel von Deinem Helm ab! Du schaust auf, um ein mächtiges Exemplar eines Eichhörnchens zu sehen, das zur Verteidigung eines wunderbaren Haufens von Eicheln zusammengekauert dasitzt.<br><br>\"Oh je”, sagt @randomdaisy leise. “Sie war schon immer eine Art Ressourcenschützerin. Wir müssen sehr vorsichtig vorgehen!” Du schliesst mit deiner Gruppe einen Kreis, bereit für Ärger!",
"questSquirrelCompletion": "Mit einer sanften Herangehensweise, Tauschangeboten und ein paar beruhigenden Zaubersprüchen kannst Du das Eichhörnchen von seinem Schatz weglocken und zurück zu den Ställen bringen, die @Shtut gerade erst enteichelt hat. Du hast ein paar der Eicheln auf einem Arbeitstisch beiseite gelegt. “Das sind Eichhörncheneier! Vielleicht kannst Du welche aufziehen, die nicht so viel mit ihrem Essen spielen.”",
@ -692,5 +692,7 @@
"questWaffleNotes": "\"April-Scherzkeks!\" entrüstet sich Lady Glaciate verunsichert. \"Du sagtest, Dein Wüsten-Scherz sei 'erledigt und komplett weggeräumt'!\"<br><br>\"Nun ja, das war er und ist er immer noch, meine Liebe\", antwortet der Scherzkeks verwirrt. \"Und ich bin der ehrlichste aller Scherzkekse. Ist etwas nicht in Ordnung?\"<br><br>\"Da ist ein gigantisches, zuckriges Monster, das sich Habit City nähert!\"<br><br>\"Hmm\", sinniert der Scherzkeks. \"Ich habe auf der Suche nach mystischen Reagenzien für meinen letzten Event einige Höhlen geplündert. Vielleicht habe ich da unerwünschte Aufmerksamkeit erweckt. Ist es die Saccharose-Schlange? Die Torten-Kröte? Ein Tiramisu Rex?\"<br><br>\"Nein! Es ist eine Art… fürchterliche Waffel!\"<br><br>\"Häh. Die ist mir neu! Vielleicht entsprang die all der Umgebungs-Schabernack-Energie.\" Er wendet sich an Dich und @beffymaroo mit einem schiefen Lächeln. \"Ich nehme nicht an, ihr wärt zu einer Heldentat bereit?\"",
"questWaffleText": "An die Waffe(l) gegen den Scherzkeks: Desaster-Frühstück!",
"questWaffleRageEffect": "`Fürchterliche Waffel setzt AHORNSUMPF ein!` Schmieriger saftiger Sirup lässt Deine Schläge und Sprüche stocken!",
"questWaffleCompletion": "Angeschlagen und reich bebuttert, aber trotzdem triumphierend, genießt Ihr den süßen Sieg über die fürchterliche Waffel, die in eine klebrig-schleimige Pfütze zusammensinkt.<br><br>\"Wow, dieses Monster habt Ihr gründlich eingeschmiert\", sagt Lady Glaciate beeindruckt.<br><br>\"Ein Zuckerschlecken!\" strahlt der April-Scherzkeks.<br><br>\"Trotzdem irgendwie schade,\" findet @beffymaroo. \"Die sah irgendwie lecker aus.\"<br><br>Der Scherzkeks zaubert einen Satz Schlüpfelixier-Flaschen aus seinem Cape, füllt sie mit der sirupartigen Masse der Waffel-Überreste und mischt eine Prise glitzernden Staub hinein. Farben wirbeln durch die Flüssigkeit neue Schlüpfelixiere! Er wirft sie Euch in die Arme. \"Das ganze Abenteuer hat mir Appetit gemacht. Wer kommt mit zum Frühstück?\""
"questWaffleCompletion": "Angeschlagen und reich bebuttert, aber trotzdem triumphierend, genießt Ihr den süßen Sieg über die fürchterliche Waffel, die in eine klebrig-schleimige Pfütze zusammensinkt.<br><br>\"Wow, dieses Monster habt Ihr gründlich eingeschmiert\", sagt Lady Glaciate beeindruckt.<br><br>\"Ein Zuckerschlecken!\" strahlt der April-Scherzkeks.<br><br>\"Trotzdem irgendwie schade,\" findet @beffymaroo. \"Die sah irgendwie lecker aus.\"<br><br>Der Scherzkeks zaubert einen Satz Schlüpfelixier-Flaschen aus seinem Cape, füllt sie mit der sirupartigen Masse der Waffel-Überreste und mischt eine Prise glitzernden Staub hinein. Farben wirbeln durch die Flüssigkeit neue Schlüpfelixiere! Er wirft sie Euch in die Arme. \"Das ganze Abenteuer hat mir Appetit gemacht. Wer kommt mit zum Frühstück?\"",
"jungleBuddiesNotes": "Beinhaltet 'Monströser Mandrill und die Albernen Affen', 'Das verschlafene Faultier' und 'Das Baumgewirr'. Verfügbar bis zum <%= date %>.",
"jungleBuddiesText": "\"Jungle Freunde\" Quest-Paket"
}

View file

@ -1 +1,9 @@
{}
{
"subscriptionPaymentIssues": "Subscripshun und Payment Ishuz",
"reportCommunityIssues": "Report Cummunitee Essues",
"reportAccountProblems": "Report Accunt Prublemz",
"zelahQuote": "Wit [Habitica], I kan B perzuaded te go te bed on tem by ze foght uf geinin pointz fur earlii naght er loozin heth fer late wun!",
"work": "Werk",
"watchVideos": "Wach Vedeoz",
"emailOrUsername": "Emel or Usarnem"
}

View file

@ -58,7 +58,7 @@
"achievementCreatedTask": "Set up yer Task",
"hideAchievements": "Don' wanna see <%= category %>",
"showAllAchievements": "Let's see <%= category %>",
"onboardingCompleteDesc": "Ye've earned <strong>5 Medals </strong> an' <strong class=\"gold-amount\">100</strong> gold fer kermpletin' th' list.",
"onboardingCompleteDesc": "Ye've earned <strong>5 Medals </strong> an' <strong class=\"gold-amount\">100 Gold</strong> fer kermpletin' th' list.",
"earnedAchievement": "Ye've earned a Medal!",
"viewAchievements": "View Medals",
"letsGetStarted": "Get on wiv it!",
@ -71,9 +71,11 @@
"achievementTickledPinkText": "'as collected all Cotton Candy Pink Critters.",
"achievementTickledPink": "Pickled Pink",
"foundNewItemsCTA": "Head t' yer inventory an' try combinin' yer new 'atchin' potion an' egg!",
"foundNewItemsExplanation": "Completin' tasks gives ye a chance ta find new items, like eggs, 'atchin' potions, an' vittles.",
"foundNewItems": "Ye found somethin' new!",
"foundNewItemsExplanation": "Completin' tasks gives ye a chance ta find items, like eggs, 'atchin' potions, an' vittles.",
"foundNewItems": "Ye found sumpthin' new!",
"achievementBugBonanzaModalText": "Ye've kermpleted th' Beetle, Butterfly, Snail, an' Spidey pet quests!",
"achievementBugBonanzaText": "'as kermpleted Beetle, Butterfly, Snail, an' Spidey pet quests.",
"achievementBugBonanza": "Crawly Catcher"
"achievementBugBonanza": "Crawly Catcher",
"yourProgress": "Yer Progress",
"onboardingComplete": "Ye've kermplet'd yer onboardin' tasks!"
}

View file

@ -78,5 +78,8 @@
"achievementBugBonanza": "Bug Bonanza",
"onboardingCompleteDescSmall": "If you want even more, check out Achievements and start collecting!",
"onboardingComplete": "You completed your onboarding tasks!",
"yourProgress": "Your Progress"
"yourProgress": "Your Progress",
"achievementBareNecessitiesModalText": "You completed the Monkey, Sloth, and Treeling pet quests!",
"achievementBareNecessitiesText": "Has completed Monkey, Sloth, and Treeling pet quests.",
"achievementBareNecessities": "Bare Necessities"
}

View file

@ -692,5 +692,7 @@
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market",
"questWaffleDropDessertPotion": "Confection Hatching Potion",
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells!",
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!"
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!",
"jungleBuddiesNotes": "Contains 'Monstrous Mandrill and the Mischief Monkeys', 'The Somnolent Sloth', and 'The Tangle Tree'. Available until <%= date %>.",
"jungleBuddiesText": "Jungle Buddies Quest Bundle"
}

View file

@ -1,6 +1,6 @@
{
"languageName": "Español (América Latina)",
"stringNotFound": "Cadena de caracteres '<%= string %>' no se ha encontrado.",
"stringNotFound": "No se encontró la cadena '<%= string %>'.",
"titleIndex": "Habitica | Tu vida, un juego de rol",
"habitica": "Habitica",
"habiticaLink": "<a href='http://habitica.fandom.com/wiki/Habitica' target='_blank'>Habitica</a>",
@ -33,7 +33,7 @@
"showLess": "Mostrar menos",
"expandToolbar": "Abrir barra de herramientas",
"collapseToolbar": "Cerrar barra de herramientas",
"markdownHelpLink": "Markdown formatting help",
"markdownHelpLink": "Ayuda con el formato (Markdown)",
"showFormattingHelp": "Mostrar ayuda para dar formato",
"hideFormattingHelp": "Ocultar ayuda para dar formato",
"youType": "Si escribes:",
@ -61,7 +61,7 @@
"newGroupTitle": "Nuevo grupo",
"subscriberItem": "Artículo Misterioso",
"newSubscriberItem": "Tienes nuevos <span class=\"notification-bold-blue\">Articulos Misteriosos</span>",
"subscriberItemText": "Cada mes, los suscriptores recibirán un artículo misterioso. Esto sucede usualmente una semana antes de fin de mes. Ve la página de la wiki \"Artículo Misterioso\" para más información.",
"subscriberItemText": "Cada mes, los suscriptores recibirán un artículo misterioso. Se vuelve disponible al inicio del mes. Ve la página de la wiki \"Artículo Misterioso\" para más información.",
"all": "Todo",
"none": "Ninguno",
"more": "<%= count %>más",
@ -71,7 +71,7 @@
"submit": "Enviar",
"close": "Cerrar",
"saveAndClose": "Guardar y Cerrar",
"saveAndConfirm": "Save & Confirm",
"saveAndConfirm": "Confirmar y Guardar",
"cancel": "Cancelar",
"ok": "Ok",
"add": "Añadir",
@ -108,8 +108,8 @@
"achievementDilatory": "Salvador de Dilatoria",
"achievementDilatoryText": "¡Ayudó a vencer al Temido Drag'on de Dilatoria durante el Evento de Bienvenida del Verano de 2014!",
"costumeContest": "Participante del Concurso de Disfraces",
"costumeContestText": "Participated in the Habitoween Costume Contest. See some of the awesome entries at blog.habitrpg.com!",
"costumeContestTextPlural": "Participated in <%= count %> Habitoween Costume Contests. See some of the awesome entries at blog.habitrpg.com!",
"costumeContestText": "Participó en el Concurso de Disfraces de Habitoween. ¡Mira algunas de las estupendas entradas en blog.habitrpg.com!",
"costumeContestTextPlural": "Participó en <%= count %> Concursos de Disfraces de Habitoween. ¡Mira algunas de las estupendas entradas en blog.habitrpg.com!",
"memberSince": "- Miembro desde",
"lastLoggedIn": "- Última conexión",
"notPorted": "Esta función aún no se ha traído del sitio original.",
@ -123,8 +123,8 @@
"error": "Error",
"menu": "Menú",
"notifications": "Notificaciones",
"noNotifications": "You're all caught up!",
"noNotificationsText": "The notification fairies give you a raucous round of applause! Well done!",
"noNotifications": "¡Estás al día!",
"noNotificationsText": "¡Las hadas de las notificaciones te aplauden fuertemente! ¡Bien hecho!",
"clear": "Borrar",
"endTour": "Terminar el tour",
"audioTheme": "Tema de audio",
@ -136,14 +136,14 @@
"audioTheme_rosstavoTheme": "Tema de Rosstavo",
"audioTheme_dewinTheme": "Tema de Dewin",
"audioTheme_airuTheme": "Tema de Airu",
"audioTheme_beatscribeNesTheme": "Beatscribe's NES Theme",
"audioTheme_arashiTheme": "Arashi's Theme",
"audioTheme_beatscribeNesTheme": "Tema NES de Beatscribe",
"audioTheme_arashiTheme": "Tema de Arashi",
"audioTheme_triumphTheme": "Tema triunfo",
"audioTheme_lunasolTheme": "Tema Lunasol",
"audioTheme_spacePenguinTheme": "Tema Pingüinos del Espacio",
"audioTheme_maflTheme": "MAFL Theme",
"audioTheme_pizildenTheme": "Pizilden's Theme",
"audioTheme_farvoidTheme": "Farvoid Theme",
"audioTheme_maflTheme": "Tema de MAFL",
"audioTheme_pizildenTheme": "Tema de Pizilden",
"audioTheme_farvoidTheme": "Tema de Farvoid",
"askQuestion": "Hacer una pregunta",
"reportBug": "Reportar un error",
"HabiticaWiki": "La Wiki de Habitica",
@ -169,8 +169,8 @@
"achievementBurnoutText": "¡Ayudó a vencer a Burnout y a recuperar a los Espíritus Consumidos durante el Festival de Otoño 2015!",
"achievementBewilder": "Salvador de Desconcertaire",
"achievementBewilderText": "¡Ayudó a vencer al Obnubilave durante el Evento Fiesta de Primavera 2016!",
"achievementDysheartener": "Savior of the Shattered",
"achievementDysheartenerText": "Helped defeat the Dysheartener during the 2018 Valentine's Event!",
"achievementDysheartener": "Salvador de los Destrozados",
"achievementDysheartenerText": "¡Ayudó a derrotar al Descorazonador durante el Evento de San Valentin del 2018!",
"checkOutProgress": "¡Echa un vistazo a mi progreso en Habitica!",
"cards": "Tarjetas",
"sentCardToUser": "Enviaste una carta a <%= profileName %>",
@ -201,7 +201,7 @@
"birthdayCardAchievementTitle": "Cumpleaños Complaciente",
"birthdayCardAchievementText": "¡Por muchos más! Enviaste o recibiste <%= count %> tarjetas de cumpleaños.",
"congratsCard": "Tarjeta de felicitación",
"congratsCardExplanation": "You both receive the Congratulatory Companion achievement!",
"congratsCardExplanation": "¡Ambos recibieron el logro de Compañero Felicitador!",
"congratsCardNotes": "Envía una Tarjeta de felicitación a un compañero de equipo.",
"congrats0": "¡Felicitaciones por tus logros!",
"congrats1": "¡Estoy orgulloso/a de ti!",
@ -211,13 +211,13 @@
"congratsCardAchievementTitle": "Famoso Felicitador",
"congratsCardAchievementText": "¡Celebrar los logros de tus amigos es genial! Envió o recibió <%= count %> tarjetas de felicitación.",
"getwellCard": "Tarjeta de \"Mejórate\"",
"getwellCardExplanation": "You both receive the Caring Confidant achievement!",
"getwellCardExplanation": "¡Ambos recibieron el logro de Compañero Bondadoso!",
"getwellCardNotes": "Envía una tarjeta de \"Mejórate\" a un compañero de equipo.",
"getwell0": "¡Espero que te sientas mejor pronto!",
"getwell1": "¡Cuídate! <3",
"getwell2": "¡Estás en mis pensamientos!",
"getwell3": "Sorry you're not feeling your best!",
"getwellCardAchievementTitle": "Caring Confidant",
"getwell3": "¡Lamento que no te encuentres en tu mejor forma!",
"getwellCardAchievementTitle": "Compañero Bondadoso",
"getwellCardAchievementText": "Well-wishes are always appreciated. Sent or received <%= count %> get well cards.",
"goodluckCard": "Carta de la buena suerte",
"goodluckCardExplanation": "Ambos reciben un logro de carta de la Suerte!",
@ -232,7 +232,7 @@
"streakAchievementCount": "<%= streaks %> Rachas de 21 días",
"twentyOneDays": "¡Completaste tu Diaria por 21 días seguidos!",
"dontBreakStreak": "Fantástico trabajo. ¡No rompas la racha!",
"dontStop": "¡No frenes ahora!",
"dontStop": "¡No te detengas ahora!",
"levelUpShare": "¡Aumenté de nivel en Habitica mejorando mis hábitos de la vida real!",
"questUnlockShare": "¡Desbloqueé una nueva misión en Habitica!",
"hatchPetShare": "¡Eclosioné una nueva mascota completando mis tareas de la vida real!",
@ -274,7 +274,7 @@
"finance": "Finanzas",
"health_fitness": "Salud y estar en forma",
"hobbies_occupations": "Hobbies y entretenimiento",
"location_based": "Location-based",
"location_based": "Basado en la locación",
"mental_health": "Salud Mental y Autoayuda",
"getting_organized": "Getting Organized",
"self_improvement": "Self-Improvement",
@ -284,7 +284,7 @@
"dismissAll": "Dismiss All",
"messages": "Mensajes",
"emptyMessagesLine1": "No tienes ningún mensaje",
"emptyMessagesLine2": "¡Envía un mensaje para iniciar una conversación!",
"emptyMessagesLine2": "Puedes enviar un mensaje nuevo a un usuario, visitando su perfil y dando click en el botón \"Mensaje\".",
"userSentMessage": "<span class=\"notification-bold\"><%= user %></span> sent you a message",
"letsgo": "¡Vamos!",
"selected": "Seleccionado",

View file

@ -78,5 +78,8 @@
"achievementBugBonanza": "Manne d'insectes",
"onboardingCompleteDescSmall": "Si vous en voulez plus, allez regarder les succès et commencez à les collectionner !",
"onboardingComplete": "Vous avez terminé vos tâches de démarrage !",
"yourProgress": "Votre progression"
"yourProgress": "Votre progression",
"achievementBareNecessitiesModalText": "Vous avez réalisé les quêtes de familier singe, paresseux et arbrisseaux !",
"achievementBareNecessitiesText": "A réalisé les quêtes de familier singe, paresseux et arbrisseaux.",
"achievementBareNecessities": "Le strict nécessaire"
}

View file

@ -692,5 +692,7 @@
"questWaffleBoss": "Affreuse gaufre",
"questWaffleCompletion": "Battue et beurrée mais triomphante, vous savourez la douce victoire alors que l'Affreuse Gaufre s'effondre dans une mare gluante.<br><br> \"Wow, vous avez vraiment écrémé ce monstre\", dit Lady Glaciate, impressionnée.<br><br> \"C'était pas de la tarte !\" rayonne le Poison d'avril.<br><br> \"Un peu la honte, cependant\", dit @beffymaroo. \"Ça avait l'air assez bon à manger.\"<br><br>\"Le Poison prend un ensemble de flacons de potion quelque part dans sa cape, les remplit avec les restes sirupeux de la Gaufre, et les mélange dans une pincée de poussière pétillante. Le liquide tourbillonne de couleurs... de nouvelles potions d'éclosion ! Il les jette dans vos bras. \"Toute cette aventure m'a donné de l'appétit. Qui veut se joindre à moi pour le petit déjeuner ?\"",
"questWaffleNotes": "Le \"Poison d'avril\" prend d'assaut Lady Glaciate. \"Vous avez dit que votre farce sur le thème du dessert était 'terminée et complètement nettoyée' !\" <br><br> \"Mais, c'était et c'est encore le cas, ma chère\", répond le Poison, perplexe. \"Et je suis le plus honnête des Poisons. Qu'est-ce qui ne va pas ? \"<br><br>\"Il y a un monstre géant sucré qui approche de Habitiville !\"<br><br>\"Hmm,\" dit le Poison. \"J'ai fait un raid dans quelques tanières pour les réactifs mystiques de mon dernier événement. J'ai peut-être attiré une attention non désirée. Est-ce le Serpent Saccharine ? La Torte-oise ? Le Tiramisu Rex ?\"<br><br>\"Non ! C'est une sorte de... d'Affreuse Gaufre !\"<br><br>\"Huh. C'est une nouvelle ! Peut-être qu'elle est née de toute l'énergie ambiante des bêtises.\" Il se tourne vers vous et @beffymaroo avec un sourire en coin. \"Je suppose que vous ne seriez pas disponible pour des actes héroïques ?\"",
"questWaffleText": "Gaufrer le poisson : Petit déjeuner désastreux !"
"questWaffleText": "Gaufrer le poisson : Petit déjeuner désastreux !",
"jungleBuddiesNotes": "Contient \"Le monstrueux mandrill et les malicieux macaques\", \"Somnolent le paresseux\" et \"L'arbre tortueux\". Disponible jusqu'au <%= date %>.",
"jungleBuddiesText": "Lot de quêtes des potes de la jungle"
}

View file

@ -355,6 +355,6 @@
"hatchingPotionAmber": "琥珀の",
"hatchingPotionAurora": "オーロラの",
"hatchingPotionRuby": "ルビーの",
"hatchingPotionDessert": "お菓子",
"hatchingPotionDessert": "お菓子",
"hatchingPotionBirchBark": "白樺樹皮の"
}

View file

@ -145,7 +145,7 @@
"dateEndOctober": "10月31日",
"dateEndNovember": "11月30日",
"dateEndJanuary": "1月31日",
"dateEndFebruary": "2月28日",
"dateEndFebruary": "2月29日",
"winterPromoGiftHeader": "寄付会員特典を贈って、無料で寄付会員特典をもらおう!",
"winterPromoGiftDetails1": "1月6日までの間に限り、誰かに寄付会員特典を贈ると、同じだけの期間分、無料で寄付会員になれます",
"winterPromoGiftDetails2": "もしあなたや贈る相手がすでに定期的な寄付会員特典を受けている場合、贈られた寄付会員特典は、既存の寄付会員特典がキャンセルされるか期限が切れた後にのみ有効になります。どうぞご注意ください。皆様のサポートに感謝します! <3",

View file

@ -70,9 +70,9 @@
"triadBingoName": "ペット完全制覇",
"triadBingoText": "ペット90種すべてと乗騎90種すべてを発見し、そしてもう一度90匹すべてのペットを発見しました(どうやってやったの!)",
"triadBingoText2": " そして、動物小屋全体を計 <%= count %> 回解放しました",
"triadBingoAchievement": "すべてのペットを発見して、すべての乗騎を飼いならしたため、あるいは再びすべてのペットを発見したため「ペット完全制覇」の実績を解除しました!",
"triadBingoAchievement": "すべてのペットを発見しすべての乗騎を飼いならすか、再びすべてのペットを発見したので「ペット完全制覇」の実績を解除しました!",
"dropsEnabled": "落とし物が手に入るようになった!",
"itemDrop": "アイテムが落ちました!",
"itemDrop": "ドロップアイテムを発見しました!",
"firstDrop": "落とし物のシステムがアンロックされました! 今後タスクを達成すると、たまご、たまごがえしの薬、えさなどのアイテムを発見するちょっとしたチャンスがあります! あなたはたった今、<strong><%= eggText %>のたまご</strong>を見つけました! <%= eggNotes %>",
"useGems": "もしお目当てのペットがいて、これ以上落とし物を待てないのであれば、ジェムを使って<strong>所持品 > 市場</strong> で買ってください!",
"hatchAPot": "新しい<%= potion %><%= egg %>をかえしますか?",

View file

@ -1959,5 +1959,9 @@
"armorArmoireBoxArmorNotes": "Boks Uitrusting: Het past, daarom zit je ... uh, daarom draag je het in de strijd, zoals de stoere ridder die je bent! Verhoogt perceptie en constitutie met elk <% = attrs%>. Betoverd Kabinet: Papieren Ridder Set (Voorwerp 3 van 3). ",
"armorArmoireBaseballUniformNotes": "Het krijtstreepmotief geraakt nooit uit de mode. Verhoogd lichaam en kracht met <%= attrs %> elks. Betoverde Kabinet: Honkbal Set (Voorwerp 2 van 4).",
"headSpecialSummer2019MageText": "Lelieblad Hoed",
"headSpecialSpring2019MageNotes": "Een gloeiend oranje juweel verleent deze hoed de kracht van mysterieuze natuurkrachten. Verhoogt de perceptie met <%= per%>. Beperkte Oplage 2019 Lenteuitrusting."
"headSpecialSpring2019MageNotes": "Een gloeiend oranje juweel verleent deze hoed de kracht van mysterieuze natuurkrachten. Verhoogt de perceptie met <%= per%>. Beperkte Oplage 2019 Lenteuitrusting.",
"headSpecialSummer2019MageNotes": "In tegenstelling tot wat vaak wordt gedacht, is je hoofd geen geschikte plek voor kikkers om neer te strijken. Verhoogt de perceptie met <%= per%>. Beperkte Oplage 2019 Zomeruitrusting.",
"headSpecialSummer2019RogueNotes": "Deze helm geeft je een 360 graden zicht op de omringende wateren, wat perfect is om op nietsvermoedende rode dagtaken te sluipen. Verhoogt de perceptie met <%= per%>. Beperkte Oplage 2019 Zomeruitrusting.",
"headSpecialSummer2019HealerNotes": "De spiraalvormige structuur van deze schelp helpt je elke roep om hulp over de zeven zeeën te horen. Verhoogt intelligentie met <%= int%>. Beperkte Oplage 2019 Zomeruitrusting.",
"headSpecialSummer2019HealerText": "Schelpen Kroon"
}

View file

@ -9,23 +9,70 @@
"achievementAridAuthorityModalText": "Oswoiłeś wszystkie Pustynne Wierzchowce!",
"achievementLostMasterclasserModalText": "Wykonałeś wszystkie szesnaście misji z serii Mistrzowie Klas i rozwiązałeś zagadkę Zaginionego Mistrza!",
"achievementPurchasedEquipment": "Kup ekwipunek",
"achievementFedPetText": "Nakarmiono pierwszego chowańca.",
"achievementFedPet": "Nakarm chowańca",
"achievementFedPetText": "Nakarmiono pierwszego zwierzaka.",
"achievementFedPet": "Nakarm Zwierzaka",
"achievementCompletedTaskText": "Wykonano pierwsze zadanie.",
"achievementCompletedTask": "Wykonaj zadanie",
"achievementCreatedTaskModalText": "Dodaj zadanie, które chciałbyś wykonać w tym tygodniu",
"achievementMonsterMagusModalText": "Zebrałeś(-aś) wszystkie chowańce zombie!",
"achievementMonsterMagusText": "Zdobyto wszystkie chowańce zombie.",
"achievementPartyOn": "Liczba członków w twojej drużynie wzrosła do 4 członków!",
"achievementMonsterMagusModalText": "Oswoiłeś wszystkie Potworne Zwierzaki!",
"achievementMonsterMagusText": "Oswoił wszystkie Potworne Zwierzaki.",
"achievementPartyOn": "Ilość osób w twojej drużynie wzrosła do 4!",
"achievementKickstarter2019Text": "Wsparł(a) projekt 2019 Pin na Kickstarterze",
"achievementKickstarter2019": "Pin Sponsora w Kickstarterze",
"achievementPartyUp": "Stworzyłeś zespół z członkiem drużyny!",
"achievementBackToBasicsModalText": "Zebrałeś wszystkie podstawowe chowańce!",
"achievementBackToBasicsText": "Zebrano wszystkie podstawowe chowańce.",
"achievementKickstarter2019": "Odznaka Sponsora w Kickstarterze",
"achievementPartyUp": "Połączyłeś siły z członkiem drużyny!",
"achievementBackToBasicsModalText": "Zebrałeś wszystkie Podstawowe Zwierzaki!",
"achievementBackToBasicsText": "Zebrano wszystkie podstawowe zwierzaki.",
"achievementBackToBasics": "Powrót do podstaw",
"hideAchievements": "Ukryj <%= category %>",
"showAllAchievements": "Pokaż wszystkie <%= category %>",
"earnedAchievement": "Zdobyłeś osignięcie!",
"viewAchievements": "Zobacz osiągnięcia",
"letsGetStarted": "Zaczynamy!"
"showAllAchievements": "Pokaż Wszystkie <%= category %>",
"earnedAchievement": "Zdobyłeś osiągnięcie!",
"viewAchievements": "Zobacz Osiągnięcia",
"letsGetStarted": "Zaczynajmy!",
"foundNewItems": "Znalazłeś nowe przedmioty!",
"foundNewItemsCTA": "Udaj się do swojego Ekwipunku i spróbuj połączyć nowy Eliksir Wykluwania i Jajko!",
"achievementJustAddWaterText": "Ukończył wyzwanie Ośmiornica, Konik Morski, Mątwa, Wieloryb, Żółw, Nudibranch, Wąż Morski i Delfin.",
"achievementPearlyProText": "Oswoił wszystkie Białe Wierzchowce.",
"achievementPearlyPro": "Perłowy Opiekun",
"achievementPrimedForPaintingModalText": "Zebrałeś wszystkie Białe Zwierzaki!",
"achievementPrimedForPaintingText": "Zebrał wszystkie Białe Zwierzaki.",
"achievementPurchasedEquipmentModalText": "Ekwipunek to sposób na spersonalizowanie postaci oraz poprawę Statystyk",
"achievementPearlyProModalText": "Oswoiłeś wszystkie Białe Wierzchowce!",
"achievementRosyOutlook": "Różowe Perspektywy",
"achievementBugBonanza": "Pogromca Insektów",
"achievementBugBonanzaModalText": "Ukończyłeś misje związane ze zwierzakami Żuk, Motyl, Ślimak i Pająk!",
"achievementBugBonanzaText": "Ukończył misje związane ze zwierzętami Żuk, Motyl, Ślimak i Pająk.",
"onboardingCompleteDescSmall": "Jeśli chcesz jeszcze więcej, sprawdź Osiągnięcia i zacznij je zdobywać!",
"onboardingCompleteDesc": "Zdobyłeś <strong> 5 osiągnięć </strong> i <strong class=\"gold-amount\">100 Dukatów</strong> za ukończenie swoich zadań.",
"achievementJustAddWaterModalText": "Ukończyłeś misje dla zwierząt domowych Ośmiornica, Konik Morski, Mątwa, Wieloryb, Żółw, Nudibranch, Wąż Morski i Delfin!",
"achievementPrimedForPainting": "Biały Kieł",
"achievementPurchasedEquipmentText": "Kupił swój pierwszy element wyposażenia.",
"achievementHatchedPetText": "Oswoił swojego pierwszego Zwierzaka.",
"achievementHatchedPet": "Oswojono Zwierzaka",
"achievementCompletedTaskModalText": "Odznaczaj swoje zadania, aby zdobywać nagrody",
"achievementCreatedTaskText": "Stworzyłeś swoje pierwsze zadanie.",
"achievementCreatedTask": "Stwórz swoje pierwsze zadanie",
"achievementUndeadUndertakerModalText": "Oswoiłeś wszystkie Potworne Wierzchowce!",
"achievementUndeadUndertakerText": "Oswoił wszystkie Potworne Wierzchowce.",
"achievementUndeadUndertaker": "Jeździec bez głowy",
"achievementMonsterMagus": "Potworny Opiekun",
"achievementAridAuthorityText": "Oswoił wszystkie Pustynne Wierzchowce.",
"achievementAridAuthority": "Pustynny Opiekun",
"achievementDustDevilModalText": "Oswoiłeś wszyskie Pustynne Zwierzaki!",
"achievementDustDevilText": "Oswoił wszystkie Pustynne Zwierzaki.",
"achievementDustDevil": "Prochy Pustyni",
"achievementAllYourBaseModalText": "Oswoiłeś wszystkie Podstawowe Wierzchowce!",
"achievementAllYourBaseText": "Oswoił wszystkie Podstawowe Wierzchowce.",
"achievementJustAddWater": "H2O Wystarczy Kropla",
"foundNewItemsExplanation": "Wykonywanie zadań daje Ci szansę na znalezienie przedmiotów, takich jak Jaja, Eliksiry Wyklucia, oraz Jedzonko dla Zwierzaków.",
"gettingStartedDesc": "Ukończ swoje aktualne zadania, aby otrzymać <strong> 5 Osiągnięć </strong> oraz <strong class=\"gold-amount\">100 Dukatów</strong>!",
"onboardingProgress": "<%= percentage %>% postępu",
"achievementRosyOutlookModalText": "Oswoiłeś wszystkie Różowe Wierzchowce!",
"achievementRosyOutlookText": "Oswoił wszystkie Różowe Wierzchowce.",
"achievementTickledPinkModalText": "Oswoiłeś wszystkie Różowe Zwierzaki!",
"achievementTickledPinkText": "Oswoił wszystkie Różowe Zwierzaki.",
"achievementFedPetModalText": "Mamy wiele rodzajów jedzenia. Sprawdź, które z nich najbardziej odpowiadają twojemu Zwierzakowi",
"achievementHatchedPetModalText": "Udaj się do ekwipunku, aby połączyć Eliksir Wyklucia z Jajkiem",
"achievementMindOverMatter": "Twój Umysł - Twoja Siła",
"onboardingComplete": "Wykonałeś wszystkie twoje aktualne zadania!",
"yourProgress": "Twój Postęp"
}

View file

@ -1,12 +1,12 @@
{
"communityGuidelinesWarning": "Pamiętaj, że twoja nazwa gracza, zdjęcie profilowe oraz krótki opis muszą zgadzać się z <a href='https://habitica.com/static/community-guidelines' target='_blank'>wytycznymi społeczności</a> (np. brak profanacji, brak tematów dla dorosłych, brak obraźliwych rzeczy itd.) Jeśli masz jakieś pytania odnośnie poprawności, skontaktuj się z <%= hrefBlankCommunityManagerEmail %>!",
"communityGuidelinesWarning": "Pamiętaj, że twoja nazwa gracza, zdjęcie profilowe oraz krótki opis muszą zgadzać się z <a href='https://habitica.com/static/community-guidelines' target='_blank'>wytycznymi społeczności</a> (np. brak przekleństw, brak tematów dla dorosłych, brak obelg itd.) Jeśli masz jakieś pytania odnośnie poprawności, skontaktuj się z nami <%= hrefBlankCommunityManagerEmail %>!",
"profile": "Profil",
"avatar": "Dostosuj Awatara",
"editAvatar": "Edytuj awatar",
"avatar": "Dostosuj Postać",
"editAvatar": "Edytuj Postać",
"noDescription": "Ten użytkownik nie dodał opisu.",
"noPhoto": "Ten użytkownik nie dodał zdjęcia.",
"other": "Inne",
"fullName": "Pełne imię",
"fullName": "Pełne Imię",
"displayName": "Nazwa gracza",
"changeDisplayName": "Zmiana nazwy gracza",
"newDisplayName": "Nowa nazwa gracza",
@ -22,13 +22,13 @@
"bodyBody": "Ciało",
"bodySize": "Budowa",
"size": "Budowa",
"bodySlim": "Szczupły/szczupła",
"bodyBroad": "Krzepki/krzepka",
"unlockSet": "Odblokuj zestaw <%= cost %>",
"bodySlim": "Szczupły",
"bodyBroad": "Krzepki",
"unlockSet": "Odblokuj Zestaw <%= cost %>",
"locked": "zablokowane",
"shirts": "Koszule",
"shirt": "Koszula",
"specialShirts": "Specjalne koszule",
"shirts": "Koszulki",
"shirt": "Koszulka",
"specialShirts": "Specjalne Koszulki",
"bodyHead": "Fryzury i kolory włosów",
"bodySkin": "Skóra",
"skin": "Skóra",
@ -40,14 +40,14 @@
"ponytail": "Kucyk",
"glasses": "Okulary",
"hairBase": "Spód",
"hairSet1": "Zestaw fryzur 1",
"hairSet2": "Zestaw fryzur 2",
"hairSet3": "Zestaw fryzur 3",
"hairSet1": "Zestaw Fryzur 1",
"hairSet2": "Zestaw Fryzur 2",
"hairSet3": "Zestaw Fryzur 3",
"bodyFacialHair": "Zarost",
"beard": "Broda",
"mustache": "Wąsy",
"flower": "Kwiatek",
"accent": "Akcent",
"accent": "Dodatki",
"headband": "Opaska",
"wheelchair": "Wózek inwalidzki",
"extra": "Dodatki",

View file

@ -5,7 +5,7 @@
"commGuideHeadingWelcome": "Witamy w Habitice!",
"commGuidePara001": "Czołem, łowco przygód! Witamy w Habitice, krainie produktywności i zdrowego życia (a także pewnego rozbrykanego gryfa). Mamy tu radosną społeczność pełną pomocnych ludzi, którzy wspierają się nawzajem na drodze do rozwoju osobistego. Chcesz do nas dołączyć i nie wiesz jak się dopasować? Wystarczy, że będziesz mieć pozytywne nastawienie, szacunek do innych, oraz będziesz pamiętać, że każdy z nas ma inne umiejętności, ale też ograniczenia także Ty! Członkowie Habitiki są cierpliwi dla siebie nawzajem oraz starają się sobie pomagać jak tylko mogą.",
"commGuidePara002": "By utrzymać społeczność w atmosferze bezpieczeństwa, radości i produktywności, mamy kilka wskazówek. Sporządziliśmy je z rozwagą, by były tak przyjazne i łatwe w rozumieniu, jak to tylko możliwe. Prosimy o poświęcenie czasu na ich przeczytanie przed rozpoczęciem pogawędek.",
"commGuidePara003": "Te zasady stosuje się do wszystkich przestrzeni społecznych, których używamy, łącznie z (ale nie tylko) Trello, GitHubem, Transifexem i Wikią (aka wiki). Czasem zdarzają się nieprzewidziane sytuacje, na przykład konflikt uknuty przez złośliwego nekromantę. Kiedy tak się dzieje, modzi mogą zareagować przez modyfikację zasad, by ochronić społeczność przed nowymi zagrożeniami. Nie martwcie się: jeśli coś się w nich zmieni, powiadomi was o tym Bailey.",
"commGuidePara003": "Te zasady stosuje się do wszystkich przestrzeni społecznych, których używamy, łącznie z (ale nie tylko) Trello, GitHubem, Weblatem i Wikią (aka wiki). Czasem zdarzają się nieprzewidziane sytuacje, na przykład konflikt uknuty przez złośliwego nekromantę. Kiedy tak się dzieje, moderatorzy mogą zareagować przez modyfikację zasad, by ochronić społeczność przed nowymi zagrożeniami. Nie martwcie się: jeśli coś się w nich zmieni, powiadomi was o tym Bailey.",
"commGuidePara004": "Przygotujcie pióra i zwoje i zaczynajmy!",
"commGuideHeadingInteractions": "Interakcje w Habitice",
"commGuidePara015": "Habitica ma dwa rodzaje przestrzeni społecznych: publiczne i prywatne. Publicznymi są: Karczma, gildie publiczne, GitHub, Trello i Wiki. Prywatnymi natomiast są: gildie prywatne, czat drużyny i skrzynki prywatnych wiadomości. Wszystkie nazwy graczy muszą spełniać zasady przestrzeni publicznej. Aby zmienić swoją nazwę gracza, przejdź do Użytkownik → Profil i wybierz opcję „Edytuj”.",
@ -18,13 +18,13 @@
"commGuideList02F": "<strong>Unikajcie rozległych dyskusji na tematy prowokujące do niezgody i podziałów, zarówno w Karczmie, jak i innych miejscach, gdzie byłoby to niezgodne z tematem</strong>. Jeśli zobaczysz, że ktoś powiedział coś wulgarnego lub krzywdzącego, nie zaczynaj z nim sporu. Kiedy ktoś powiedział coś krzywdzącego wobec Ciebie, ale zgodnego z zasadami społeczności, możesz uprzejmie uświadomić tę osobę, że Cię to uraziło. Jeśli zaś zobaczysz, że ktoś pisze rzeczy zabronione w zasadach społeczności i Zasadach Użytkowania, możesz to oflagować, by zareagował moderator. Jeśli nie masz pewności, co zrobić, oflaguj dany post.",
"commGuideList02G": "<strong>Stosujcie się do zaleceń Moderatorów</strong>. Mogą to być prośby o: ograniczenie postowania w danym miejscu, edycję profilu w celu usunięcia niepożądanej zawartości, przeniesienie dyskusji do miejsca, w którym będzie ona bardziej adekwatna itd.",
"commGuideList02H": "<strong>Poświęć czas na refleksję zamiast odpowiadać w gniewie </strong>, jeśli ktoś stwierdzi, że to, co powiedziałeś/aś lub zrobiłeś/aś, spowodowało dyskomfort u innych. Szczere przeprosiny wymagają wielkiej siły. Jeżeli uważacie, że ich odpowiedź była niestosowna, raczej skontaktujcie się z modem zamiast publicznie ich o to posądzać.",
"commGuideList02I": "<strong>Spory/kontrowersje należy zgłaszać moderatorom</strong> zaznaczając odpowiednie wpisy, których to dotyczy lub używając <a href='http://contact.habitica.com/' target='_blank'>Formularza Kontaktu z Moderatorem</a>. Jeśli czujesz, że rozmowa staje się zbyt gorąca, nadmiernie emocjonalna lub krzywdząca, przestań się angażować. Lepiej zgłoś wpis, abyśmy się o nim dowiedzieli. Moderatorzy odpowiedzą tak szybko, jak to tylko możliwe. To nasza powinność aby zapewnić twoje bezpieczeństwo. Jeśli uważasz, że problem wymaga przedstawienia szerszego kontekstu, możesz zgłosić to i opisać przy pomocy <a href='http://contact.habitica.com/' target='_blank'>Formularza Kontaktu z Moderatorem</a>.",
"commGuideList02I": "<strong>Spory/kontrowersje należy zgłaszać moderatorom</strong> zaznaczając odpowiednie wpisy, których to dotyczy lub używając <a href='https://contact.habitica.com/' target='_blank'>Formularza Kontaktu z Moderatorem</a>. Jeśli czujesz, że rozmowa staje się zbyt gorąca, nadmiernie emocjonalna lub krzywdząca, przestań się angażować. Lepiej zgłoś wpis, abyśmy się o nim dowiedzieli. Moderatorzy odpowiedzą tak szybko, jak to tylko możliwe. To nasza powinność aby zapewnić twoje bezpieczeństwo. Jeśli uważasz, że problem wymaga przedstawienia szerszego kontekstu, możesz zgłosić to i opisać przy pomocy <a href='https://contact.habitica.com/' target='_blank'>Formularza Kontaktu z Moderatorem</a>.",
"commGuideList02J": "<strong>Nie spamuj</strong> Spamowanie może obejmować między innymi: publikowanie tego samego komentarza lub pytania w wielu miejscach, publikowanie linków bez wyjaśnienia lub kontekstu, publikowanie bezsensownych wpisów, publikowanie wielu wiadomości o Gildii, Drużynie lub Wyzwaniu, publikowanie wielu wiadomości z rzędu. Prośby o klejnoty czy subskrypcje gdziekolwiek na czatach czy w prywatnych wiadomościach są również traktowane jako spamowanie. Jeżeli kliknięcie w publikowany link przynosi Ci jakąkolwiek korzyść, musisz ujawnić to w wiadomości, inaczej zostanie to uznane za spam.<br/><br/>To od moderatorów zależy, czy coś zostanie uznane za spam lub może prowadzić do spamu, nawet wtedy, jeżeli nie odczuwasz, że to może być spam. Przykładowo, reklamowanie gildii jest akceptowalne raz czy dwa, ale wielokrotne takie wpisy w jednym dniu prawdopodobnie byłyby uznane za spam, bez względu na to, jak użyteczna jest reklamowana gildia!",
"commGuideList02K": "<strong>Unikaj używania dużych nagłówków w tekście na publicznych czatach, w szczególności w Karczmie</strong>. Podobnie jak WIELKIE LITERY, wygląda to jakbyś krzyczał i zakłóca przyjazną atmosferę.",
"commGuideList02L": "<strong>Mocno odradzamy wymianę danych osobowych w publicznych miejscach rozmów - zwłaszcza informacji umożliwiających identyfikację użytkownika</strong>. Dane identyfikacyjne mogą obejmować między innymi: twój adres zamieszkania, twój adres e-mail oraz twój token API/hasło. To dla twojego bezpieczeństwa! Personel lub moderatorzy mogą usunąć takie wiadomości wg własnego uznania. Jeżeli ktoś zapyta cię o informację osobową w prywatnej gildii, drużynie czy w prywatnej wiadomości, stanowczo zalecamy, aby uprzejmie odmówić oraz zawiadomić personel i moderatorów poprzez: 1) oflagowanie wiadomości, jeśli jest ona opublikowana w drużynie lub prywatnej gildii, lub 2) wypełniając <a href='http://contact.habitica.com/' target='_blank'>Formularz Kontaktu z Moderatorem</a> i załączając zrzuty ekranów.",
"commGuideList02L": "<strong>Mocno odradzamy wymianę danych osobowych w publicznych miejscach rozmów - zwłaszcza informacji umożliwiających identyfikację użytkownika</strong>. Dane identyfikacyjne mogą obejmować między innymi: twój adres zamieszkania, twój adres e-mail oraz twój token API/hasło. To dla twojego bezpieczeństwa! Personel lub moderatorzy mogą usunąć takie wiadomości wg własnego uznania. Jeżeli ktoś zapyta cię o informację osobową w prywatnej gildii, drużynie czy w prywatnej wiadomości, stanowczo zalecamy, aby uprzejmie odmówić oraz zawiadomić personel i moderatorów poprzez: 1) oflagowanie wiadomości, jeśli jest ona opublikowana w drużynie lub prywatnej gildii, lub 2) wypełniając <a href='https://contact.habitica.com/' target='_blank'>Formularz Kontaktu z Moderatorem</a> i załączając zrzuty ekranów.",
"commGuidePara019": "<strong>W prywatnych miejscach</strong>, użytkownicy mają większą swobodę w dyskusjach na dowolne tematy, jednakże nadal nie mogą naruszać Zasad i Warunków, włączając publikowanie obelg, treści dyskryminujących, agresywnych czy zawierających groźby. Pamiętaj, że nazwy Wyzwań pojawiają się w publicznej części profilu zwycięzcy, dlatego też WSZYSTKIE nazwy Wyzwań muszą być zgodne z wytycznymi, nawet jak są tworzone w prywatnych miejscach.",
"commGuidePara020": "<strong>Prywatnymi wiadomościami (PW)</strong> rządzi kilka dodatkowych wytycznych. Jeżeli ktoś Cię zablokował, nie kontaktuj się z tą osobą nigdzie indziej, aby poprosić o odblokowanie. Poza tym, nie powinno się wysyłać prywatnych wiadomości do kogoś, kto prosi o pomoc w rozwiązaniu problemu (publiczne odpowiedzi na takie pytania są pomocne dla społeczności). Ostatnia zasada: nie wolno wysyłać nikomu prywatnych wiadomości zachęcających do podzielenia się klejnotami lub subskrypcji, ponieważ uznaje się to za spam.",
"commGuidePara020A": "<strong>Jeśli zobaczysz wpis, który Twoim zdaniem narusza opisane powyżej wytyczne przestrzeni publicznej lub wpis, którego się obawiasz albo wprowadza Cię w zakłopotanie, możesz zwrócić uwagę Moderatorów i Zespołu zgłaszając go poprzez kliknięcie ikonki z flagą</strong>. Członek zespołu lub Moderator zajmie się tą sprawą, tak szybko, jak to będzie możliwe. Pamiętaj, że umyślne zgłaszanie niewinnych postów stanowi naruszenie niniejszych Wytycznych (patrz poniżej w \"Naruszeniach\"). Wiadomości prywatne (PM) nie mogą obecnie być zgłaszane w ten sposób, jeśli więc potrzebujesz zgłosić Wiadomość Prywatną, proszę skontaktować się z Moderatorami poprzez formularz na stronie \"Skontaktuj się z nami\" do której masz również dostęp z menu Pomocy poprzez kliknięcie “<a href='http://contact.habitica.com/' target='_blank'>Skontaktuj się z Drużyną Moderatorów</a>.” Możesz to zrobić również wtedy, gdy pojawiło się wiele problematycznych wpisów tej samej osoby w różnych gildiach lub jeśli sytuacja wymaga wyjaśnienia. Możesz napisać do nas w swoim ojczystym języku jeśli tak jest Tobie łatwiej: możemy potrzebować skorzystać z tłumacza Google, ale chcemy, abyś czuł się swobodnie, kontaktując się z nami w sprawie jakiegoś problemu.",
"commGuidePara020A": "<strong>Jeśli zobaczysz wpis, który Twoim zdaniem narusza opisane powyżej wytyczne przestrzeni publicznej lub wpis, którego się obawiasz albo wprowadza Cię w zakłopotanie, możesz zwrócić uwagę Moderatorów i Zespołu zgłaszając go poprzez kliknięcie ikonki z flagą</strong>. Członek zespołu lub Moderator zajmie się tą sprawą, tak szybko, jak to będzie możliwe. Pamiętaj, że umyślne zgłaszanie niewinnych postów stanowi naruszenie niniejszych Wytycznych (patrz poniżej w \"Naruszeniach\"). Wiadomości prywatne (PM) nie mogą obecnie być zgłaszane w ten sposób, jeśli więc potrzebujesz zgłosić Wiadomość Prywatną, proszę skontaktować się z Moderatorami poprzez formularz na stronie \"Skontaktuj się z nami\" do której masz również dostęp z menu Pomocy poprzez kliknięcie “<a href='https://contact.habitica.com/' target='_blank'>Skontaktuj się z Drużyną Moderatorów</a>.” Możesz to zrobić również wtedy, gdy pojawiło się wiele problematycznych wpisów tej samej osoby w różnych gildiach lub jeśli sytuacja wymaga wyjaśnienia. Możesz napisać do nas w swoim ojczystym języku jeśli tak jest Tobie łatwiej: możemy potrzebować skorzystać z tłumacza Google, ale chcemy, abyś czuł się swobodnie, kontaktując się z nami w sprawie jakiegoś problemu.",
"commGuidePara021": "Ponadto, niektóre przestrzenie publiczne w Habitice mają dodatkowe regulaminy.",
"commGuideHeadingTavern": "Karczma",
"commGuidePara022": "Tawerna jest głównym miejscem przebywania różnorodnych mieszkańców krainy Habitca. Karczmarz Daniel utrzymuje to miejsce lśniącej czystości, a Lemoness z radością wyczaruje trochę lemoniady, gdy będziesz siedzieć i rozmawiać. Tylko pamiętaj …",
@ -36,7 +36,7 @@
"commGuidePara031": "Niektóre publiczne gildie będą zawierały drażliwe tematy jak depresja, religia, polityka, itd. Jest to oczywiście w porządku, o ile prowadzone tam rozmowy nie naruszają żadnego Regulaminu lub Reguł Przestrzeni Publicznej i dopóki skupiają się na głównym temacie.",
"commGuidePara033": "<strong>Gildie publiczne NIE mogą zawierać treści dla dorosłych (18+). Jeśli planują regularnie omawiać wrażliwe treści, powinni wyraźnie określić to w opisie gildii</strong>. Dzięki temu Habitica będzie bezpieczna i wygodna dla wszystkich.",
"commGuidePara035": "<strong>Jeśli gildia omawia różne delikatne kwestie, dla poszanowania społeczności należy rozważyć umieszczenie ostrzeżenia przed treścią komentarza (np. \"Uwaga: dyskusja na temat autoagresji\")</strong>. Można to opisać jako ostrzeżenia wyzwalające i/lub uwagi do treści, a gildie mogą również mieć własne zasady oprócz wskazanych tutaj. Jeśli to możliwe, używaj <a href='http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet' target='_blank'>formatowania</a> żeby ukrywać potencjalnie wrażliwą treść w kolejnych liniach, tak, aby ci, którzy nie mają ochoty na czytanie takich treści mogli przewijać wpisy bez oglądania ukrywanej treści. Personel Habitica i moderatorzy mogą równocześnie usuwać takie materiały według swojego uznania.",
"commGuidePara036": "Ponadto, wrażliwe materiały powinny być tematyczne -- wspominanie o autoagresji w Gildii skupiającej się na walce z depresją może mieć sens, ale prawdopodobnie jest mniej odpowiednie w gildii muzycznej. Jeśli zauważysz osobę wielokrotnie naruszającą niniejsze wytyczne, zwłaszcza po kilku zgłoszeniach, zgłoś wpis i powiadom moderatorów poprzez <a href='http://contact.habitica.com/' target='_blank'>Formularz Kontaktu z Moderatorem</a>.",
"commGuidePara036": "Ponadto, wrażliwe materiały powinny być tematyczne -- wspominanie o autoagresji w Gildii skupiającej się na walce z depresją może mieć sens, ale prawdopodobnie jest mniej odpowiednie w gildii muzycznej. Jeśli zauważysz osobę wielokrotnie naruszającą niniejsze wytyczne, zwłaszcza po kilku zgłoszeniach, zgłoś wpis i powiadom moderatorów poprzez <a href='https://contact.habitica.com/' target='_blank'>Formularz Kontaktu z Moderatorem</a>.",
"commGuidePara037": "<strong>Nie powinno się tworzyć jakichkolwiek gildii, czy to Publicznych, czy Prywatnych, w celu atakowania jakiejkolwiek grupy lub osoby!</strong>. Utworzenie takiej gildii jest podstawą do natychmiastowego zablokowania. Walcz ze złymi nawykami, a nie poszukiwaczami przygód!",
"commGuidePara038": "<strong>Wszystkie wyzwania Tawerny i gildii publicznych także muszą być zgodne z tymi zasadami</strong>.",
"commGuideHeadingInfractionsEtc": "Naruszenie zasad, Konsekwencje i Powrót do łask",
@ -114,7 +114,7 @@
"commGuidePara013": "W społeczności tak dużej jak Habitica, użytkownicy przychodzą i odchodzą, a czasem nawet członek załogi czy moderator musi odwiesić swój szlachecki płaszcz i odpocząć. Tych drugich nazywamy Załogą i Moderatoratorami Na Emeryturze. Nie mają już uprawnień Moderatorów, ale wciąż doceniamy ich ciężką pracę!",
"commGuidePara014": "Emerytowany Personel i Emerytowani Moderatorzy:",
"commGuideHeadingFinal": "Ostatni Rozdział",
"commGuidePara067": "To by było na tyle, odważni Habitanie, jeśli chodzi o regulamin społeczności! Otrzyj pot ze swego czoła i przyznaj sobie nieco PD za przeczytanie tego w całości. Jeśli masz jakieś wątpliwości czy zastrzeżenia na temat tego regulaminu społeczności, skontaktuj się z nami poprzez <a href='http://contact.habitica.com/' target='_blank'>Formularz kontaktu z moderatorami</a>, chętnie wyjaśnimy wątpliwości.",
"commGuidePara067": "To by było na tyle, odważni Habitanie, jeśli chodzi o regulamin społeczności! Otrzyj pot ze swego czoła i przyznaj sobie nieco PD za przeczytanie tego w całości. Jeśli masz jakieś wątpliwości czy zastrzeżenia na temat tego regulaminu społeczności, skontaktuj się z nami poprzez <a href='https://contact.habitica.com/' target='_blank'>Formularz kontaktu z moderatorami</a>, chętnie wyjaśnimy wątpliwości.",
"commGuidePara068": "A teraz naprzód, dzielni poszukiwacze przygód, zgładźcie kilka Codziennych!",
"commGuideHeadingLinks": "Użyteczne linki",
"commGuideLink01": "<a href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank'>Pomoc Habitiki: Zadaj pytanie</a>: Gildia, w której możesz zadawać pytania!",

View file

@ -4,7 +4,7 @@
"armoireText": "Zaczarowana Skrzynia",
"armoireNotesFull": "Otwórz skrzynię aby otrzymać losowe wyposażenie specjalne, doświadczenie albo jedzenie! Pozostałe elementy wyposażenia:",
"armoireLastItem": "Znalazłeś ostatnią część rzadkiego wyposażenia w Zaczarowanej Skrzyni.",
"armoireNotesEmpty": "Skrzynia będzie zawierała nowe wyposażenie co miesiąc. Do tego czasu klikaj aby otrzymać doświadczenie i jedzenie!",
"armoireNotesEmpty": "Skrzynia będzie zawierała nowe wyposażenie co miesiąc. Do tego czasu klikaj aby otrzymać doświadczenie i jedzenie dla zwierzaków!",
"dropEggWolfText": "wilk",
"dropEggWolfMountText": "Wilk",
"dropEggWolfAdjective": "lojalny",
@ -354,5 +354,7 @@
"premiumPotionUnlimitedNotes": "Nie nadaje się do użytku na jajach.",
"hatchingPotionAurora": "Polarnej Zorzy",
"hatchingPotionAmber": "Bursztynowy",
"hatchingPotionRuby": "Rubinowy"
"hatchingPotionRuby": "Rubinowy",
"hatchingPotionDessert": "Słodyczowy",
"hatchingPotionBirchBark": "Kora Brzozowa"
}

View file

@ -49,7 +49,7 @@
"selfCareTodoNotes": "Kliknij aby zaplanować prace do wykonania!",
"selfCareTodoText": "Weź udział w zabawnych zajęciach",
"selfCareDailyNotes": "Kliknij aby wybrać swój harmonogram!",
"schoolTodoNotes": "Kliknij aby nazwać wyznaczone zadanie i wybrać datę realizacji!]",
"schoolTodoNotes": "Kliknij aby nazwać zadanie i wybrać datę realizacji!",
"schoolTodoText": "Dokonaj wyboru klasy",
"schoolDailyNotes": "Kliknij aby wybrać harmonogram pracy domowej!",
"healthTodoNotes": "Kliknij aby dodać listę czynności!",

View file

@ -25,9 +25,9 @@
"androidFaqAnswer5": "Najlepszym sposobem jest zaprosić ich do Drużyny! Drużyny mogą iść razem na misje, walczyć z potworami, rzucać umiejętności by wzajemnie się wspierać. Wejdź na [website](https://habitica.com/) by stworzyć jedną, jeśli nie masz jeszcze Drużyny. Możecie także dołączyć razem do gildii (Społeczność > Gildie). Gildie są czatami, skupionymi na wspólnych zainteresowaniach lub osiągnięciem wspólnego celu, mogą być publiczne bądź prywatne. Możesz dołączyć do tak wielu gildii jak tylko chcesz, lecz tylko do jednej drużyny\n\nPo więcej informacji, sprawdź strony wiki o [Drużynach] (http://habitica.fandom.com/wiki/Party) i [Gildiach](http://habitica.fandom.com/wiki/Guilds).",
"webFaqAnswer5": "Najlepszym sposobem jest zaprosić ich do Drużyny klikając na \"Drużyna\" na pasku nawigacyjnym! Drużyny mogą iść razem na misje, walczyć z potworami, rzucać umiejętności by wzajemnie się wspierać. Możecie także dołączyć razem do gildii (wybierając z menu \"Gildie\"). Gildie są czatami, skupionymi na wspólnych zainteresowaniach lub osiągnięciem wspólnego celu, mogą być publiczne bądź prywatne. Możesz dołączyć do tak wielu gildii jak tylko chcesz, lecz tylko do jednej drużyny. Więcej szczegółów uzyskasz na stronach wiki [Drużyna](http://habitica.fandom.com/pl/wiki/Drużyna) oraz [Gildie](http://habitica.fandom.com/pl/wiki/Gildie).",
"faqQuestion6": "Jak zdobyć chowańca albo wierzchowca?",
"iosFaqAnswer6": "Na poziomie 3. odblokujesz system zdobyczy. Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie jaja, eliksiru wyklucia lub jedzenia. Znajdziesz je w Menu > Przedmioty.\n\nAby wykluć Chowańca, potrzebujesz jaja oraz eliksiru wyklucia. Kliknij na jajo aby wybrać gatunek, jaki chcesz wykluć, a potem na \"Wykluj Jajo\". Następnie wybierz eliksir wyklucia, aby wybrać jego kolor! Idź do Menu > Chowańce aby dodać swojego nowego Chowańca do swojego awatara, klikając na niego.\n\nMożesz też sprawić, że twój Chowaniec wyrośnie na Wierzchowca, karmiąc go w Menu > Chowańce. Kliknij na Chowańca, a potem na \"Nakarm Chowańca\"! Musisz nakarmić Chowańca dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie, będzie szybciej rósł. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](http://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca, idź do Menu > Wierzchowce i kliknij na niego, aby twój awatar go dosiadł.\n\nMożesz też otrzymać jaja Chowańców z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"androidFaqAnswer6": "Na poziomie 3. odblokujesz system zdobyczy. Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie jaja, eliksiru wyklucia lub jedzenia. Znajdziesz je w Menu > Przedmioty.\n\nAby wykluć Chowańca, potrzebujesz jaja oraz eliksiru wyklucia. Kliknij na jajo aby wybrać gatunek, jaki chcesz wykluć, a potem na \"Wykluj Jajo\". Następnie wybierz eliksir wyklucia, aby wybrać jego kolor! Idź do Menu > Chowańce aby dodać swojego nowego Chowańca do swojego awatara, klikając na niego.\n\nMożesz też sprawić, że twój Chowaniec wyrośnie na Wierzchowca, karmiąc go w Menu > Chowańce. Kliknij na Chowańca, a potem na \"Nakarm Chowańca\"! Musisz nakarmić Chowańca dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie, będzie szybciej rósł. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](http://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca, idź do Menu > Wierzchowce i kliknij na niego, aby twój awatar go dosiadł.\n\nMożesz też otrzymać jaja Chowańców z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"webFaqAnswer6": "Na poziomie 3. odblokujesz system zdobyczy. Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie jaja, eliksiru wyklucia lub jedzenia. Znajdziesz je w Ekwipunek > Przedmioty. Aby wykluć Chowańca, potrzebujesz jaja oraz eliksiru wyklucia. Kiedy będziesz miał zarówno jajo jak i eliksir, idź do Ekwipunek > Stajnia, by wykluć swojego chowańca poprzez kliknięcie na niego. Kiedy wyklujesz Chowańca to możesz go wyekwipować poprzez kliknięcie na niego. Możesz też sprawić, że twój Chowaniec wyrośnie na Wierzchowca, karmiąc go w Ekwipunek > Stajnie. Przeciągnij jedzenie z paska akcji na dole ekranu i upuść go na chowańcu by go nakarmić. Będziesz musiał/ała nakarmić Chowańca dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie to będzie szybciej rósł. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](http://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca to kliknij na niego by go wyekwipować w swoim awatarze. Możesz też otrzymać jaja Chowańców z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"iosFaqAnswer6": "Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie Jaja, Eliksiru Wyklucia lub Jedzenia. Znajdziesz je w Menu > Przedmioty.\n\nAby wykluć Zwierzaka, potrzebujesz jaja oraz eliksiru wyklucia. Kliknij na jajo aby wybrać gatunek, jaki chcesz wykluć, a potem na \"Wykluj Jajo\". Następnie wybierz Eliksir Wyklucia, aby wybrać jego kolor! Idź do Menu > aby dodać swojego nowego Zwierzaka do swojej postaci, klikając na niego.\n\nMożesz też sprawić, że twój Zwierzak wyrośnie na Wierzchowca, karmiąc go w Menu > Zwierzaki. Kliknij na Chowańca, a potem na \"Nakarm Zwierzaka\"! Musisz nakarmić Zwierzaka dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie, będzie rósł szybciej. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](https://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca, idź do Menu > Wierzchowce i kliknij na niego, aby twoja postać go dosiadła.\n\nMożesz też otrzymać jaja Zwierzaków z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"androidFaqAnswer6": "Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie Jaja, Eliksiru Wyklucia lub Jedzenia. Znajdziesz je w Menu > Przedmioty.\n\nAby wykluć Zwierzaka, potrzebujesz Jaja oraz Eliksiru Wyklucia. Kliknij na jajo aby wybrać gatunek, jaki chcesz wykluć, a potem na \"Wykluj Jajo\". Następnie wybierz eliksir wyklucia, aby wybrać jego kolor! Idź do Menu > Zwierzaki, aby dodać swojego nowego Zwierzaka do swojej postaci, klikając na niego.\n\nMożesz też sprawić, że twój Zwierzak wyrośnie na Wierzchowca, karmiąc go w Menu > Zwierzaki. Kliknij na Zwierzaka, a potem na \"Nakarm Chowańca\"! Musisz nakarmić Zwierzaka dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie, będzie szybciej rósł. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](https://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca, idź do Menu > Wierzchowce i kliknij na niego, aby twój awatar go dosiadł.\n\nMożesz też otrzymać jaja Chowańców z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"webFaqAnswer6": "Za każdym razem, gdy ukończysz zadanie, dostaniesz szansę na zdobycie Jaja, Eliksiru Wyklucia lub Jedzenia. Znajdziesz je w Menu > Przedmioty.\nAby wykluć Zwierzaka, potrzebujesz Jaja oraz Eliksiru Wyklucia. Kliknij na jajo aby wybrać gatunek, jaki chcesz wykluć, a potem na \"Wykluj Jajo\". Następnie wybierz eliksir wyklucia, aby wybrać jego kolor! Idź do Menu > Zwierzaki, aby dodać swojego nowego Zwierzaka do swojej postaci, klikając na niego.\nMożesz też sprawić, że twój Zwierzak wyrośnie na Wierzchowca, karmiąc go w Menu > Zwierzaki. Kliknij na Zwierzaka, a potem na \"Nakarm Chowańca\"! Musisz nakarmić Zwierzaka dużo razy, zanim stanie się Wierzchowcem, ale jeśli odnajdziesz jego ulubione jedzenie, będzie szybciej rósł. Możesz to zrobić metodą prób i błędów albo [skorzystać z podpowiedzi](https://habitica.fandom.com/wiki/Food#Food_Preferences). Gdy już masz Wierzchowca, idź do Menu > Wierzchowce i kliknij na niego, aby twój awatar go dosiadł.\nMożesz też otrzymać jaja Chowańców z Misji, kończąc niektóre Misje. (Patrz niżej, aby dowiedzieć się więcej o Misjach.)",
"faqQuestion7": "Jak zostać Wojownikiem, Magiem, Łotrzykiem lub Uzdrowicielem?",
"iosFaqAnswer7": "Na poziomie 10 możesz wybrać czy chcesz zostać Wojownikiem, Magiem, Łotrzykiem lub Uzdrowicielem. (Każdy gracz domyślnie zaczyna jako Wojownik.) Każda Klasa posiada różne wyposażenie, umiejętności (które mogą zostać użyte od poziomu 11) i korzyści. Wojownicy mogą łatwo zadawać obrażenia bossom, znieść więcej obrażeń pochodzących z niewykonanych zadań i wspomagać swoją Drużynę. Magowie mogą również łatwo ranić bossów, szybko zdobywać kolejne poziomy i odnawiać manę Drużyny. Łotrzyki zdobywają najwięcej złota i znajdują najwięcej łupu i mogą wspomagać w tym swoją Drużynę. Wreszcie, Uzdrowiciele mogą leczyć siebie i członków Drużyny.\n\nJeśli nie chcesz od razu wybierać Klasy, przykładowo -- jeśli nadal pracujesz nad kupnem pełnego wyposażenia twojej obecnej klasy -- możesz kliknąć \"Zdecyduj potem\" i później wybrać ją w Menu > Wybierz Klasę.",
"androidFaqAnswer7": "Na poziomie 10 możesz wybrać czy chcesz zostać Wojownikiem, Magiem, Łotrzykiem lub Uzdrowicielem. (Każdy gracz domyślnie zaczyna jako Wojownik.) Każda Klasa posiada różne wyposażenie, umiejętności, które mogą zostać użyte od poziomu 11, oraz różne korzyści. Wojownicy mogą łatwo zadawać obrażenia bossom, znieść więcej obrażeń pochodzących z niewykonanych zadań i wspomagać swoją Drużynę. Magowie mogą również łatwo ranić bossów, szybko zdobywać kolejne poziomy i odnawiać manę Drużyny. Łotrzyki zdobywają najwięcej złota i znajdują najwięcej łupu i mogą wspomagać w tym swoją Drużynę. Wreszcie, Uzdrowiciele mogą leczyć siebie i członków Drużyny.\n\nJeśli nie chcesz od razu wybierać Klasy - na przykład jeśli nadal pracujesz nad kupnem pełnego wyposażenia twojej obecnej klasy -- możesz kliknąć \"Zdecyduj potem\" i później wybrać ją w Menu > Wybierz Klasę.",

View file

@ -325,7 +325,7 @@
"muchmuchMoreDesc": "Nasza w pełni konfigurowalna lista zadań oznacza, że możesz kształtować Habitikę tak, aby pasowała do Twoich osobistych celów. Pracuj nad kreatywnymi projektami, wspieraj swój rozwój osobisty lub realizuj inne marzenia - wszystko zależy od Ciebie.",
"levelUpAnywhere": "Wbijaj poziomy gdziekolwiek jesteś",
"levelUpAnywhereDesc": "Nasze aplikacje mobilne sprawiają, że być na bieżąco z twoimi zadaniami w drodze. Osiągaj swoje cele jednym kliknięciem bez względu na to, gdzie się znajdujesz.",
"joinMany": "Dołącz do 2,000,000 osób, które bawią się osiągając cele!",
"joinMany": "Dołącz do <%= userCountInMillions %> millionów osób, które bawią się osiągając swoje cele!",
"joinToday": "Dołącz do Habitica już dziś",
"signup": "Zarejestruj się",
"getStarted": "Zaczynamy!",

View file

@ -284,7 +284,7 @@
"dismissAll": "Odrzuć wszystko",
"messages": "Wiadomości",
"emptyMessagesLine1": "Nie masz żadnych wiadomości",
"emptyMessagesLine2": "Wyślij wiadomość, aby zacząć konwersację!",
"emptyMessagesLine2": "Aby wysłać wiadomość do Użytkownika, wejdź na jego profil, a następnie kliknij przycisk \"Wiadomości\".",
"userSentMessage": "<span class=\"notification-bold\"><%= user %></span> wysłał ci wiadomość",
"letsgo": "Jazda!",
"selected": "Wybrane",

View file

@ -151,7 +151,7 @@
"gemAmountRequired": "Wymagana liczba klejnotów",
"notAuthorizedToSendMessageToThisUser": "Nie możesz wysłać wiadomości do tego gracza, ponieważ zablokował on możliwość wysyłania wiadomości.",
"privateMessageGiftGemsMessage": "Cześć <%= receiverName %>, <%= senderName %> wysłał Ci <%= gemAmount %> klejnotów!",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> miesięcy abonamentu! ",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> miesięcy abonamentu!",
"cannotSendGemsToYourself": "Nie możesz wysłać sobie klejnotów. Zamiast tego wypróbuj abonament.",
"badAmountOfGemsToSend": "Wartość musi być pomiędzy 1 i aktualną liczbą klejnotów.",
"report": "Zgłoś",
@ -172,7 +172,7 @@
"messageWroteIn": "<%= user %> napisał w <%= group %>",
"msgPreviewHeading": "Podgląd wiadomości",
"leaderOnlyChallenges": "Tylko przywódca grupy może tworzyć wyzwania",
"sendGift": "Wyślij prezent",
"sendGift": "Wyślij Prezent",
"inviteFriends": "Zaproś znajomych",
"partyMembersInfo": "Twoja Drużyna liczy aktualnie <%= memberCount %> członków i ma <%= invitationCount %> zaproszenia oczekujące na akceptację. Limit członków Twojej Drużyny wynosi <%= limitMembers %>. Nie można wysyłać zaproszeń powyżej tego limitu.",
"inviteByEmail": "Zaproś przez email",
@ -237,7 +237,7 @@
"cannotInviteSelfToGroup": "Nie możesz zaprosić siebie do grupy.",
"userAlreadyInvitedToGroup": "ID Użytkownika: <%= userId %>, \"<%= username %>\" został już zaproszony do tej grupy.",
"userAlreadyPendingInvitation": "ID Użytkownika: <%= userId %>, \"<%= username %>\" już oczekuje na zaproszenie.",
"userAlreadyInAParty": "ID Użytkownika: <%= userId %>, Użytkownik \"<%= username %>\" jest już w drużynie. ",
"userAlreadyInAParty": "ID Użytkownika: <%= userId %>, Użytkownik \"<%= username %>\" jest już w drużynie.",
"userWithIDNotFound": "Nie znaleziono użytkownika o numerze ID „<%= userId %>”.",
"userWithUsernameNotFound": "Nie znaleziono użytkownika o nazwie \"<%= username %>\".",
"userHasNoLocalRegistration": "Użytkownik nie ma lokalnej rejestracji (nazwa użytkownika, email, hasło).",
@ -486,5 +486,12 @@
"taskClaimed": "<%= userName %> przejął zadanie <span class=\"notification-bold\"><%= taskText %></span>.",
"youHaveBeenAssignedTask": "<%= managerName %> przyznał(a) Ci zadanie <span class=\"notification-bold\"><%= taskText %></span>.",
"blockedToSendToThisUser": "Nie możesz wysłać wiadomości do gracza, bo został on przez Ciebie zablokowany.",
"PMDisabled": "Zablokuj Prywatne Wiadomości"
"PMDisabled": "Zablokuj Prywatne Wiadomości",
"userWithUsernameOrUserIdNotFound": "Nazwa lub Numer Identyfikacyjny użytkownika nie znalezione.",
"usernameOrUserId": "Nazwa Użytkownika lub Numer Identyfikacyjny Użytkownika",
"sendGiftToWhom": "Do kogo chciałbyś wysłać prezent?",
"selectGift": "Wybierz Prezent",
"PMUnblockUserToSendMessages": "Odblokuj tego użytkownika, aby móc wysyłać oraz otrzymywać wiadomości.",
"PMUserDoesNotReceiveMessages": "Ten użytkownik nie otrzymuje wiadomości prywatnych",
"PMCanNotReply": "Nie możesz odpowiadać w tym wątku"
}

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