Compare commits

..

13 Commits

Author SHA1 Message Date
Hafiz
4250fbc53f Fix inconsistent profile URL format between own and other users' profiles
- Update profile tab navigation to use consistent URL format for all users
- Redirect old /user/* routes to new format for backward compatibility
- Update all navigation points (dropdown menu, notifications) to use new URLs
2025-08-06 13:24:31 -05:00
Hafiz
0c0dc20dcc Fix undefined userId 2025-08-05 12:53:28 -05:00
Hafiz
c0508a2f22 Fix profile modal tab navigation URLs for both own and other users profiles
- Add routes for /user/profile, /user/stats, and /user/achievements
- Update selectPage() to properly update URLs when switching tabs
- Own profile uses /user/{tab} format
- Other users' profiles use /profile/{userId}#{tab} format
- Parse hash fragments when navigating to other users' profile tabs
- Ensure direct navigation to tab URLs opens correct tab
2025-08-05 11:59:11 -05:00
Fiz
2feadd6125 Merge pull request #15483 from HabitRPG/kalista/category-content
Add Challenge categories to content API
2025-07-31 12:38:01 -05:00
Kalista Payne
efe0b3cd9e 5.38.0 2025-07-28 14:15:00 -05:00
Kalista Payne
96731da380 5.37.3 2025-07-28 14:06:45 -05:00
Weblate
0c5dd5d8b5 Merge branch 'origin/develop' into Weblate. 2025-07-28 21:03:29 +02:00
Weblate
2f943a22e6 Translated using Weblate (German)
Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (German)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (German)

Currently translated at 100.0% (3377 of 3377 strings)

Translated using Weblate (German)

Currently translated at 100.0% (3377 of 3377 strings)

Translated using Weblate (German)

Currently translated at 100.0% (3377 of 3377 strings)

Translated using Weblate (German)

Currently translated at 100.0% (243 of 243 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 98.6% (850 of 862 strings)

Translated using Weblate (German)

Currently translated at 99.8% (3373 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.8% (3373 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.8% (3373 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.5% (3361 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.5% (3361 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.5% (3361 of 3377 strings)

Translated using Weblate (German)

Currently translated at 99.4% (3360 of 3377 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (185 of 185 strings)

Translated using Weblate (Polish)

Currently translated at 67.1% (579 of 862 strings)

Translated using Weblate (Polish)

Currently translated at 67.1% (579 of 862 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (91 of 91 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (91 of 91 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (German)

Currently translated at 100.0% (245 of 245 strings)

Translated using Weblate (German)

Currently translated at 100.0% (47 of 47 strings)

Translated using Weblate (German)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 14.2% (35 of 245 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 13.8% (34 of 245 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 13.0% (32 of 245 strings)

Translated using Weblate (Hebrew)

Currently translated at 2.0% (5 of 245 strings)

Translated using Weblate (Hebrew)

Currently translated at 66.1% (570 of 862 strings)

Translated using Weblate (Portuguese)

Currently translated at 54.1% (1830 of 3377 strings)

Co-authored-by: FingerTiao <787170918@qq.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Jan Freihöfer <jan.stauch.is@gmail.com>
Co-authored-by: Jonathan Niessen <37.friedrich@gmail.com>
Co-authored-by: Karmelkowy <kicimeow.karmelio@gmail.com>
Co-authored-by: Katharina <katharinaanna.wilding@gmail.com>
Co-authored-by: Laura Fleckenstein <fleckenstein_laura@web.de>
Co-authored-by: Omer I.S <omeritzicschwartz@gmail.com>
Co-authored-by: Remigiusz Haziak <haziakremigiusz@gmail.com>
Co-authored-by: Uwe B <hbtca@tunixgut.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Wellinton Cardoso <wmcardoso1@hotmail.com>
Co-authored-by: cloudzzy <truskawka412@gmail.com>
Co-authored-by: 吳昀錡 <J1120241@gm.fdhs.tyc.edu.tw>
Translate-URL: https://translate.habitica.com/projects/habitica/character/de/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/he/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/he/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pl/
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Contrib
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Npc
Translation: Habitica/Questscontent
2025-07-28 21:03:17 +02:00
Phillip Thelen
666184d7e4 Fix 500 when deleting a very old group plan account (#15481) 2025-07-28 09:50:38 -05:00
Phillip Thelen
17d22dda3f enforce x-client header (#15476) 2025-07-22 14:00:51 -05:00
Natalie
d1a18c121d August 2025 Content Build (#15460)
* chore: 2025-08 content build

* chore: fix typos

* fix(string): degender the news

---------

Co-authored-by: Kalista Payne <sabrecat@gmail.com>
2025-07-21 17:59:40 -05:00
Kalista Payne
98a6535dc3 fix(content): don't filter out the thing we want 2025-06-16 16:43:56 -05:00
Kalista Payne
9948e8ee44 fix(mobile): provide Challenge categories via API 2025-06-16 16:43:24 -05:00
35 changed files with 231 additions and 58 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "habitica",
"version": "5.37.2",
"version": "5.38.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "habitica",
"version": "5.37.2",
"version": "5.38.0",
"hasInstallScript": true,
"dependencies": {
"@babel/core": "^7.22.10",

View File

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

View File

@@ -1,8 +1,11 @@
import nconf from 'nconf';
import requireAgain from 'require-again';
import {
generateRes,
generateReq,
} from '../../../helpers/api-unit.helper';
import { authWithHeaders as authWithHeadersFactory } from '../../../../website/server/middlewares/auth';
const authPath = '../../../../website/server/middlewares/auth';
describe('auth middleware', () => {
let res; let req; let
@@ -16,6 +19,7 @@ describe('auth middleware', () => {
describe('auth with headers', () => {
it('allows to specify a list of user field that we do not want to load', done => {
const authWithHeadersFactory = requireAgain(authPath).authWithHeaders;
const authWithHeaders = authWithHeadersFactory({
userFieldsToExclude: ['items'],
});
@@ -35,6 +39,7 @@ describe('auth middleware', () => {
});
it('makes sure some fields are always included', done => {
const authWithHeadersFactory = requireAgain(authPath).authWithHeaders;
const authWithHeaders = authWithHeadersFactory({
userFieldsToExclude: [
'items', 'auth.timestamps',
@@ -62,6 +67,7 @@ describe('auth middleware', () => {
});
it('errors with InvalidCredentialsError and code when token is wrong', done => {
const authWithHeadersFactory = requireAgain(authPath).authWithHeaders;
const authWithHeaders = authWithHeadersFactory({ userFieldsToExclude: [] });
req.headers['x-api-user'] = user._id;
@@ -75,5 +81,41 @@ describe('auth middleware', () => {
return done();
});
});
describe('when ENFORCE_CLIENT_HEADER is true', () => {
let authFactory;
beforeEach(() => {
sandbox.stub(nconf, 'get').withArgs('ENFORCE_CLIENT_HEADER').returns('true');
authFactory = requireAgain(authPath).authWithHeaders;
});
it('errors with missingClientHeader when x-client header is not present', done => {
const authWithHeaders = authFactory({ userFieldsToExclude: [] });
req.headers['x-api-user'] = user._id;
req.headers['x-api-key'] = user;
authWithHeaders(req, res, err => {
expect(err).to.exist;
expect(err.name).to.equal('BadRequest');
expect(err.message).to.equal(res.t('missingClientHeader'));
return done();
});
});
it('allows request to pass when x-client header is present', done => {
const authWithHeaders = authFactory({ userFieldsToExclude: [] });
req.headers['x-api-user'] = user._id;
req.headers['x-api-key'] = user.apiToken;
req.headers['x-client'] = 'habitica-web';
authWithHeaders(req, res, err => {
if (err) return done(err);
expect(res.locals.user).to.exist;
return done();
});
});
});
});
});

View File

@@ -2191,6 +2191,11 @@
width: 141px;
height: 147px;
}
.background_sunny_street_with_shops {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_sunny_street_with_shops.png');
width: 141px;
height: 147px;
}
.background_sunset_meadow {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_sunset_meadow.png');
width: 141px;
@@ -29900,6 +29905,11 @@
width: 90px;
height: 90px;
}
.broad_armor_armoire_redWaistcoat {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_redWaistcoat.png');
width: 114px;
height: 90px;
}
.broad_armor_armoire_robeOfDiamonds {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_robeOfDiamonds.png');
width: 114px;
@@ -30535,6 +30545,11 @@
width: 90px;
height: 90px;
}
.head_armoire_redNewsieHat {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_redNewsieHat.png');
width: 114px;
height: 90px;
}
.head_armoire_regalCrown {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_regalCrown.png');
width: 114px;
@@ -31475,6 +31490,11 @@
width: 90px;
height: 90px;
}
.slim_armor_armoire_redWaistcoat {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_redWaistcoat.png');
width: 114px;
height: 90px;
}
.slim_armor_armoire_robeOfDiamonds {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_robeOfDiamonds.png');
width: 114px;
@@ -35635,6 +35655,16 @@
width: 114px;
height: 90px;
}
.shield_mystery_202508 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_mystery_202508.png');
width: 117px;
height: 120px;
}
.weapon_mystery_202508 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_mystery_202508.png');
width: 117px;
height: 120px;
}
.broad_armor_mystery_301404 {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
width: 90px;

View File

@@ -117,7 +117,7 @@ export default {
closeWithAction () {
this.close();
setTimeout(() => {
this.$router.push({ name: 'achievements' });
this.$router.push(`/profile/${this.$store.state.user.data._id}#achievements`);
}, 200);
},
},

View File

@@ -71,7 +71,7 @@ export default {
props: ['notification', 'canRemove'],
methods: {
action () {
this.$router.push({ name: 'achievements' });
this.$router.push(`/profile/${this.$store.state.user.data._id}#achievements`);
},
},
};

View File

@@ -43,7 +43,7 @@ export default {
},
methods: {
action () {
this.$router.push({ name: 'stats' });
this.$router.push(`/profile/${this.$store.state.user.data._id}#stats`);
},
},
};

View File

@@ -176,7 +176,12 @@ export default {
}
},
showProfile (startingPage) {
this.$router.push({ name: startingPage });
const userId = this.$store.state.user.data._id;
let path = `/profile/${userId}`;
if (startingPage !== 'profile') {
path += `#${startingPage}`;
}
this.$router.push(path);
},
toLearnMore () {
this.$router.push({ name: 'subscription' });

View File

@@ -1126,7 +1126,12 @@ export default {
this.loadUser();
this.oldTitle = this.$store.state.title;
this.handleExternalLinks();
this.selectPage(this.startingPage);
// Check if there's a hash in the URL to determine the starting page
let pageToSelect = this.startingPage;
if (window.location.hash && (window.location.hash === '#stats' || window.location.hash === '#achievements')) {
pageToSelect = window.location.hash.substring(1);
}
this.selectPage(pageToSelect);
this.$root.$on('habitica:report-profile-result', () => {
this.loadUser();
});
@@ -1211,10 +1216,15 @@ export default {
},
selectPage (page) {
this.selectedPage = page || 'profile';
window.history.replaceState(null, null, '');
const profileUserId = this.userId || this.userLoggedIn._id;
let newPath = `/profile/${profileUserId}`;
if (page !== 'profile') {
newPath += `#${page}`;
}
window.history.replaceState(null, null, newPath);
this.$store.dispatch('common:setTitle', {
section: this.$t('user'),
subSection: this.$t(this.startingPage),
subSection: this.$t(page),
});
},
getNextIncentive () {

View File

@@ -98,6 +98,9 @@ const router = new VueRouter({
path: '/profile/:userId',
props: true,
},
{ name: 'profile', path: '/user/profile' },
{ name: 'stats', path: '/user/stats' },
{ name: 'achievements', path: '/user/achievements' },
{
path: '/inventory',
component: InventoryContainer,
@@ -332,6 +335,10 @@ router.beforeEach(async (to, from, next) => {
if (to.params.startingPage !== undefined) {
startingPage = to.params.startingPage;
}
// Check if there's a hash in the URL for stats or achievements
if (to.hash === '#stats' || to.hash === '#achievements') {
startingPage = to.hash.substring(1);
}
if (from.name === null) {
store.state.postLoadModal = `profile/${to.params.userId}`;
return next({ name: 'tasks' });
@@ -352,10 +359,18 @@ router.beforeEach(async (to, from, next) => {
}
if ((to.name === 'stats' || to.name === 'achievements' || to.name === 'profile') && from.name !== null) {
const userId = store.state.user.data._id;
let redirectPath = `/profile/${userId}`;
if (to.name === 'stats') {
redirectPath += '#stats';
} else if (to.name === 'achievements') {
redirectPath += '#achievements';
}
router.app.$emit('habitica:show-profile', {
userId,
startingPage: to.name,
fromPath: from.path,
toPath: to.path,
toPath: redirectPath,
});
return null;
}

View File

@@ -129,8 +129,8 @@
"healerText": "Heiler stehen Schaden unbeeindruckt gegenüber und erweitern diesen Schutz auf Andere. Verpasste Tagesaufgaben und schlechte Angewohnheiten schaden ihnen nicht viel und sie haben Mittel und Wege Lebenspunkte wiederherzustellen. Spiele einen Heiler, wenn Du gerne Anderen in einer Party hilfst, oder wenn es Dich besonders reizt, dem Tod durch harte Arbeit zu entkommen!",
"optOutOfClasses": "Später entscheiden",
"chooseClass": "Wähle Deine Klasse",
"chooseClassLearnMarkdown": "[Erfahre mehr über Habiticas Klassensystem](https://habitica.fandom.com/de/wiki/Klassen)",
"optOutOfClassesText": "Keine Lust auf Klassen oder Du möchtest Dich später entscheiden? Brich jetzt ab und werde ein Krieger ohne Spezialfähigkeiten. Du kannst Dich im Wiki über das Klassensystem informieren und Deine Klasse jederzeit unter Benutzer Icon -> Statuswerte aktivieren.",
"chooseClassLearnMarkdown": "[Erfahre mehr über Habiticas Klassensystem](/static/faq#what-classes)",
"optOutOfClassesText": "Noch nicht bereit zu wählen? Keine Eile! Wenn du ablehnst, kannst du zu jeder Klasse in <a href='/static/faq#what-classes' target='_blank'>unseren FAQ</a> nachlesen und in den Einstellungen das Klassen-System aktivieren, wenn du bereit bist.",
"selectClass": "Wähle <%= heroClass %>",
"select": "Auswählen",
"stealth": "Schleichen",

View File

@@ -40,10 +40,10 @@
"backerTier": "Trägerstufe",
"playerTiers": "Spielerstufen",
"tier": "Level",
"conRewardsURL": "https://habitica.fandom.com/wiki/Contributor_Rewards",
"conRewardsURL": "https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards",
"surveysSingle": "Half Habitica zu wachsen, entweder durch das Ausfüllen einer Umfrage oder durch große Hilfe beim Testen. Danke!",
"surveysMultiple": "Hat Habitica an <%= count %> Gelegenheiten geholfen zu wachsen, entweder durch Ausfüllen eines Fragebogens oder durch große Hilfe beim Testen. Danke!",
"blurbHallPatrons": "Dies ist die Halle der Schirmherren, in der wir die edlen Abenteurer ehren, die Habiticas ursprüngliche Kickstarter-Kampagne unterstützt haben. Wir danken ihnen für die Hilfe Habitica zum Leben zu erwecken!",
"blurbHallContributors": "Dies ist die Halle der Mitwirkenden, in der Open-Source-Unterstützer von Habitica geehrt werden. Durch Code, Kunst, Musik, Schreiben, oder auch nur Hilfsbereitschaft haben sie <a href='https://habitica.fandom.com/wiki/Contributor_Rewards' target='_blank'> Edelsteine, exklusive Ausrüstung</a> und <a href='https://habitica.fandom.com/wiki/Contributor_Titles' target='_blank'>angesehene Titel</a> verdient. Auch Du kannst Habitica unterstützen! <a href='https://habitica.fandom.com/wiki/Contributing_to_Habitica' target='_blank'> Hier erfährst Du mehr dazu.</a>",
"blurbHallContributors": "Dies ist die Halle der Mitwirkenden, in der Open-Source-Unterstützer von Habitica geehrt werden. Durch Code, Kunst, Musik, Schreiben, oder auch nur Hilfsbereitschaft haben sie <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tier-rewards' target='_blank'> Edelsteine, exklusive Ausrüstung</a> und <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica#contributor-tiers' target='_blank'>angesehene Titel</a> verdient. Auch Du kannst Habitica unterstützen! <a href='https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica' target='_blank'> Hier erfährst Du mehr dazu.</a>",
"noPrivAccess": "Du besitzt nicht die erforderlichen Berechtigungen."
}

View File

@@ -11,7 +11,7 @@
"webFaqAnswer31": "Wenn du eine Aufgabe erfüllst und HP verlierst, obwohl du das nicht hättest tun sollen, kam es zu einer Verzögerung, während der Server die auf anderen Plattformen vorgenommenen Änderungen synchronisiert hat. Wenn du zum Beispiel Gold oder Mana verwendest oder HP in der mobilen App verlierst und dann eine Aufgabe auf der Website erledigst, bestätigt der Server lediglich, dass alles synchronisiert ist.",
"webFaqAnswer49": "Wenn Du Habitica mit anderen erleben möchtest, aber keine anderen Spieler kennst, ist die Suche nach einer Party die beste Option! Wenn Du bereits andere Spieler kennst, die eine Party haben, kannst Du deinen @Benutzernamen mit ihnen teilen, um eingeladen zu werden. Alternativ kannst Du auch eine neue Gruppe erstellen und sie mit ihrem @Nutzernamen oder ihrer E-Mail-Adresse einladen.\n\nUm eine Party zu erstellen oder zu suchen, wähle \"Party\" im Navigationsmenü und wähle dann die Option, die Dir am besten gefällt.",
"webFaqAnswer62": "Gruppenpläne bieten dir die einzigartige Möglichkeit, anderen Mitgliedern deines Gruppenplans gemeinsame Aufgaben zuzuweisen. Wenn eine gemeinsame Aufgabe einem Mitglied zugewiesen wird, können andere Mitglieder sie nicht mehr erledigen.\n\nDu kannst eine Aufgabe auch mehreren Mitgliedern zuweisen. Wenn sich zum Beispiel alle Mitglieder die Zähne putzen müssen, erstellst du eine Aufgabe und weist sie jedem Mitglied zu. Jedes Mitglied kann die Aufgabe erledigen und sich seine individuelle Belohnung verdienen. Die Hauptaufgabe wird als erledigt angezeigt, sobald alle Mitglieder sie erledigt haben.",
"webFaqAnswer32": "Alle Spieler beginnen in der Klasse des Kriegers, bis sie Stufe 10 erreicht haben. Sobald du Stufe 10 erreichst, hast du die Wahl, eine neue Klasse zu wählen oder als Krieger weiterzuspielen.\n\nJede Klasse verfügt über unterschiedliche Ausrüstungen und Fertigkeiten. Wenn du dich nicht für eine Klasse entscheiden möchtest, kannst du \"Abbrechen\" wählen. Wenn du dich später doch entscheidest, kannst du das Klassensystem in den Einstellungen wieder aktivieren.\n\nWenn Du Deine Klasse nach Level 10 noch einmal ändern möchtest, kannst Du die Sphäre der Wiedergeburt hierfür nutzen. Die Sphäre der Wiedergeburt ist mit Level 50 auf demMarktplatz für 6 Edelsteine verfügbar und mit Level 100 bekommst Du sie umsonst.\n\nAlternativ kannst Du Deine Klasse jederzeit in den Einstellungen für 3 Edelsteine ändern. Dies wird Dein Level nicht wie die Sphäre der Wiedergeburt zurücksetzen, aber es erlaubt Dir, die Fertigkeits-Punkte, die Du beim Leveln gesammelt hast, Deiner neuen Klasse zuzuordnen.",
"webFaqAnswer32": "Alle Spieler beginnen in der Klasse des Kriegers, bis sie Stufe 10 erreicht haben. Sobald du Stufe 10 erreichst, hast du die Wahl, eine neue Klasse zu wählen oder als Krieger weiterzuspielen.\n\nJede Klasse verfügt über unterschiedliche Ausrüstungen und Fertigkeiten. Wenn du dich nicht für eine Klasse entscheiden möchtest, kannst du \"Abbrechen\" wählen. Du kannst das Klassensystem in den Einstellungen jederzeit wieder aktivieren.\n\nWenn du deine Klasse nach Level 10 noch einmal ändern möchtest, kannst du die Sphäre der Wiedergeburt hierfür nutzen. Die Sphäre der Wiedergeburt ist mit Level 50 auf dem Marktplatz für 6 Edelsteine verfügbar und mit Level 100 bekommst du sie umsonst.\n\nAlternativ kannst du deine Klasse jederzeit in den Einstellungen für 3 Edelsteine ändern. Dies wird dein Level nicht wie die Sphäre der Wiedergeburt zurücksetzen, aber es erlaubt dir, die Fähigkeitspunkte, die du beim Leveln gesammelt hast, deiner neuen Klasse zuzuordnen.",
"sunsetFaqPara14": "<strong>Linguists</strong><br />Wir freuen uns auch weiterhin über Hilfe bei der Übersetzung der Apps und der Website und werden für qualifizierte Beiträge nach wie vor Beitragsstufen vergeben. Die Methode, mit der wir Übersetzungen annehmen, wird sich jedoch ändern. Wir möchten unsere Ressourcen auf die Unterstützung einer bestimmten Auswahl von Sprachen für alle Plattformen konzentrieren. Um dies zu erreichen, werden wir die Anzahl der für Übersetzungen verfügbaren Sprachen reduzieren. Zuvor nicht fertiggestellte Sprachen werden in Github archiviert. Wir hoffen, dass diese Änderung das plattformübergreifende Habitica-Erlebnis konsistenter macht. Sie können unsere aktuellsten Richtlinien für das Übersetzungsverfahren auf unserer Website lesen <a href='https://translate.habitica.com/projects/habitica/#information'>Übersetzungswebsite</a>.",
"webFaqAnswer34": "Haustiere mögen Futter, das zu ihrer Farbe passt. Basis-Tiere sind die Ausnahme, aber alle Basis-Tiere mögen den gleichen Gegenstand. Im Folgenden siehst du, welche Nahrungsmittel jedes Haustier mag:\n\n * Basistiere mögen Fleisch\n * Weiße Haustiere mögen Milch\n * Wüstenhaustiere mögen Kartoffeln\n * Rote Haustiere mögen Erdbeeren\n * Schattentiere mögen Schokolade\n * Skelett-Tiere mögen Fisch\n * Zombie-Tiere mögen verdorbenes Fleisch\n * Zuckerwatte rosa Haustiere mögen rosa Zuckerwatte\n * Zuckerwatte blaue Haustiere mögen blaue Zuckerwatte\n * Goldene Haustiere mögen Honig",
"webFaqAnswer35": "Sobald du dein Haustier genug gefüttert hast, um es zu einem Reittier zu machen, musst du diese Art von Haustier erneut ausbrüten, um es in deinem Stall zu haben.\n\nUm Reittiere in den mobilen Apps zu sehen:\n\n * Wähle im Menü \"Haustiere & Reittiere\" und wechseln zur Registerkarte \"Reittiere\".\n\nSo zeigst du Reittiere auf der Website an:\n\n * Wähle im Menü \"Inventar\" die Option \"Haustiere und Reittiere\" und scrollen nach unten zum Abschnitt \"Reittiere\"",
@@ -102,7 +102,7 @@
"sunsetFaqPara4": "Um die Zeit zu feiern, die wir erlebt haben, werden wir jedem ein Veteranen-Haustier schenken, während wir uns in diese neue Ära begeben. Für unsere großartigen Mitwirkenden werden wir außerdem ein spezielles Ausrüstungsset verschicken, um ihre harte Arbeit in den Habitica-Communities zu würdigen.",
"sunsetFaqPara6": "Der Service für Tavernen sowie öffentliche und private Gilden endet und diese Räume werden am <strong>August 8, 2023</strong> aus Habitica entfernt.",
"sunsetFaqList1": "Der Hauptzweck von Habitica ist es, Motivation durch ein gamifiziertes Aufgabenmanagement zu schaffen. Gilden und Tavernen werden von einem unverhältnismäßig kleinen Prozentsatz unserer Spielerbasis genutzt. Die Mehrheit der Spieler nutzt externe Dienste, die in erster Linie für soziale Interaktion gedacht sind und absichtlich mit Blick auf diese Anwendungsfälle entwickelt und gepflegt werden.",
"sunsetFaqList2": "Die neuen Online-Sicherheitsgesetze erfordern ein Maß an aktiver Inhaltskontrolle für öffentliche Bereiche, das Habitica in der Vergangenheit nicht geboten hat. Die Investition in die Funktionen, die diese neuen Vorschriften erfordern würden, würde dazu führen, dass unsere begrenzten Ressourcen in Teile von Habitica umgeleitet werden, die die große Mehrheit der Spieler nie berührt.",
"sunsetFaqList2": "Die neuen Online-Sicherheitsgesetze erfordern ein Maß an aktiver Inhaltskontrolle für öffentliche Bereiche, das Habitica in der Vergangenheit nicht geboten hat. Die Investition in die Funktionen, die diese neuen Vorschriften erfordern würden, würde dazu führen, dass unsere begrenzten Ressourcen in Teile von Habitica umgeleitet werden, welche die große Mehrheit der Spieler nie berührt.",
"sunsetFaqList3": "Es ist uns wichtig, der ständig wachsenden internationalen Spielerbasis von Habitica weiterhin einen weltweiten Zugang zu bieten. Die Entfernung dieser Dienste ermöglicht es uns, dieses Ziel weiter zu verfolgen, ohne den Zugang in Regionen einschränken zu müssen, in denen eine aktivere Kontrolle der Inhalte erforderlich ist, als wir sie bieten können.",
"sunsetFaqPara7": "Partys und Gruppenpläne werden beibehalten und behalten ihre Chatbereiche. Du wirst auch weiterhin private Nachrichten senden können.",
"sunsetFaqPara12": "Als Open-Source-Projekt begrüßen und fördern wir viele Arten von Beiträgen. Um unsere Wertschätzung zu zeigen, werden wir das heroische Ausrüstungsset an alle Spieler schicken, die vor dem <strong>1. August 2023</strong>eine Beitragsstufe haben. Wenn die Tavernen- und Gilden-Dienste enden, wird es auch bei den Beiträgen einige Änderungen geben. Im Folgenden erfährst du mehr über den jeweiligen Plan für die einzelnen Typen.",
@@ -243,5 +243,5 @@
"subscriptionDetail470": "Gruppenabonnentenvorteile verhalten sich genauso wie die eines wiederkehrenden 1-Monats-Abonnements. Du erhältst eine Mystische Sanduhr am Anfang jedes Monats und die Anzahl an Edelsteinen, die du jeden Monat auf dem Marktplatz kaufen kannst, wird sich erhöhen bis zu einem Limit von 50.",
"subscriptionPara3": "Wir hoffen, dass dieser neue Rhythmus besser vorhersagbar ist, mehr Zugang zur fantastischen Gegenstandauswahl im Laden des Zeitreisenden ermöglicht und noch mehr Motivation bietet, jeden Monat Fortschritte an deinen Aufgaben zu machen!",
"faqQuestion67": "Was sind die Klassen in Habitica?",
"webFaqAnswer67": "Klassen sind verschiedene Rollen, die dein Charakter spielen kann. Jede Klasse bietet ihre eigene Reihe von einzigartigen Vorteilen und Fähigkeiten beim Aufsteigen auf höhere Level. Diese Fähigkeiten können das Bearbeiten deiner Aufgaben ergänzen oder dabei helfen, deine Party beim Abschließen von Quests zu unterstützen.\n\nDeine Klasse bestimmt auch, welche Ausrüstung für dich in den Belohnungen, im Marktplatz und im Jahreszeitenmarkt zum Kauf erhältlich ist.\n\nHier ist eine Zusammenfassung jeder Klasse, um dir dabei zu helfen, diejenige zu wählen, welche am besten zu deinem Spielstil passt:\n#### **Krieger**\n* Krieger verursachen hohen Schaden bei Bossen und haben eine hohe Chance für kritische Treffer beim Abschließen von Aufgaben, was dich mit extra Erfahrung und Gold belohnt.\n* Stärke ist ihr primäres Attribut, welches den Schaden erhöht, den sie verursachen.\n* Ausdauer ist ihr sekundäres Attribut, welches den Schaden verringert, den sie erhalten.\n* Die Fähigkeiten der Krieger erhöhen die Ausdauer und Stärke der Party Kameraden.\n* Erwäge, einen Krieger zu spielen, wenn du es liebst, Bosse zu bekämpfen und auch ein wenig Schutz möchtest, wenn du gelegentlich Aufgaben versäumst.\n#### **Heiler**\n* Heiler haben eine starke Verteidigung und können sich selbst, sowie die Party Kameraden, heilen.\n* Ausdauer ist ihr primäres Attribut, welches ihre Heilungen verstärkt und den Schaden, den sie erhalten, verringert.\n* Intelligenz ist ihr sekundäres Attribut, welches ihr Mana und ihre Erfahrung erhöht.\n* Die Fähigkeiten der Heiler bewirken, dass ihre Aufgaben weniger rot werden und erhöhen die Ausdauer der Party Kameraden.\n* Erwäge, einen Heiler zu spielen, wenn du oft Aufgaben versäumst, und die Fähigkeit benötigst, dich selbst und deine Party Kameraden zu heilen. Heiler erreichen schnell neue Level.\n#### **Magier**\n* Magier gewinnen schnell neue Level und viel Mana, und verursachen Schaden bei Bossen in Quests.\n* Intelligenz ist ihr primäres Attribut, welches ihr Mana und ihre Erfahrung erhöht.\n* Wahrnehmung ist ihr sekundäres Attribut, welches ihr gefundenes Gold und ihre gefundenen Gegenstände vermehrt.\n* Die Fähigkeiten der Magier bewirken, dass ihre Aufgaben Strähnen eingefroren werden, stellen das Mana ihrer Party Kameraden wieder her, und erhöhen ihre Intelligenz.\n* Erwäge, einen Magier zu spielen, wenn du durch das schnelle Erreichen neuer Level und das Beisteuern von Schaden in Boss Quests motiviert wirst.\n#### **Schurke**\n* Schurken bekommen die meisten erbeuteten Gegenstände und das meiste Gold beim Erledigen von Aufgaben, und haben eine höhere Chance, kritische Treffer zu erzielen, was ihnen noch mehr Erfahrung und Gold beschert.\n* Wahrnehmung ist ihr primäres Attribut, welches ihr gefundenes Gold und ihre gefundenen Gegenstände vermehrt.\n* Stärke ist ihr sekundäres Attribut, welches den Schaden erhöht, den sie verursachen.\n* Die Fähigkeiten der Schurken helfen ihnen, versäumten Tagesaufgaben auszuweichen, Gold zu klauen, und die Wahrnehmung ihrer Party Kameraden zu erhöhen.\n* Erwäge, einen Schurken zu spielen, wenn du durch Belohnungen sehr motiviert wirst."
"webFaqAnswer67": "Klassen sind verschiedene Rollen, die dein Charakter spielen kann. Jede Klasse bietet ihre eigene Reihe von einzigartigen Vorteilen und Fähigkeiten beim Aufsteigen auf höhere Level. Diese Fähigkeiten können das Bearbeiten deiner Aufgaben ergänzen oder dabei helfen, deine Party beim Abschließen von Quests zu unterstützen.\n\nDeine Klasse bestimmt auch, welche Ausrüstung für dich in den Belohnungen, im Marktplatz und im Jahreszeitenmarkt zum Kauf erhältlich ist.\n\nHier ist eine Zusammenfassung jeder Klasse, um dir dabei zu helfen, diejenige zu wählen, welche am besten zu deinem Spielstil passt:\n#### **Krieger**\n* Die Krieger verursachen hohen Schaden bei Bossen und haben eine hohe Chance für kritische Treffer beim Abschließen von Aufgaben, was dich mit extra Erfahrung und Gold belohnt.\n* Stärke ist ihr primäres Attribut, welches den Schaden erhöht, den sie verursachen.\n* Ausdauer ist ihr sekundäres Attribut, welches den Schaden verringert, den sie erhalten.\n* Die Fähigkeiten der Krieger erhöhen die Ausdauer und Stärke der Gruppenmitglieder.\n* Erwäge, einen Krieger zu spielen, wenn du es liebst, Bosse zu bekämpfen und auch ein wenig Schutz möchtest, wenn du gelegentlich Aufgaben versäumst.\n#### **Heiler**\n* Die Heiler haben eine starke Verteidigung und können sich selbst, sowie Gruppenmitglieder, heilen.\n* Ausdauer ist ihr primäres Attribut, welches ihre Heilungen verstärkt und den Schaden, den sie erhalten, verringert.\n* Intelligenz ist ihr sekundäres Attribut, welches ihr Mana und ihre Erfahrung erhöht.\n* Die Fähigkeiten der Heiler bewirken, dass ihre Aufgaben weniger rot werden und erhöhen die Ausdauer der Gruppenmitglieder.\n* Erwäge, einen Heiler zu spielen, wenn du oft Aufgaben versäumst, und die Fähigkeit benötigst, dich selbst und deine Gruppenmitglieder zu heilen. Heiler erreichen schnell neue Level.\n#### **Magier**\n* Die Magier gewinnen schnell neue Level und viel Mana, und verursachen Schaden bei Bossen in Quests.\n* Intelligenz ist ihr primäres Attribut, welches ihr Mana und ihre Erfahrung erhöht.\n* Wahrnehmung ist ihr sekundäres Attribut, welches ihr gefundenes Gold und ihre gefundenen Gegenstände vermehrt.\n* Die Fähigkeiten der Magier bewirken, dass ihre Aufgaben Strähnen eingefroren werden, stellen das Mana ihrer Gruppenmitglieder wieder her, und erhöhen ihre Intelligenz.\n* Erwäge, einen Magier zu spielen, wenn du durch das schnelle Erreichen neuer Level und das Beisteuern von Schaden in Boss Quests motiviert wirst.\n#### **Schurke**\n* Die Schurken bekommen die meisten erbeuteten Gegenstände und das meiste Gold beim Erledigen von Aufgaben und haben eine höhere Chance, kritische Treffer zu erzielen, was ihnen noch mehr Erfahrung und Gold beschert.\n* Wahrnehmung ist ihr primäres Attribut, welches ihr gefundenes Gold und ihre gefundenen Gegenstände vermehrt.\n* Stärke ist ihr sekundäres Attribut, welches den Schaden erhöht, den sie verursachen.\n* Die Fähigkeiten der Schurken helfen ihnen, versäumten Tagesaufgaben auszuweichen, Gold zu klauen und die Wahrnehmung ihrer Gruppenmitglieder zu erhöhen.\n* Erwäge, einen Schurken zu spielen, wenn du durch Belohnungen sehr motiviert wirst."
}

View File

@@ -25,26 +25,26 @@
"invalidEmail": "Um das Passwort zurückzusetzen, ist eine gültige E-Mail-Adresse notwendig.",
"login": "Anmelden",
"logout": "Abmelden",
"marketing1Header": "Verbessere spielerisch Deinen Lebensstil mit Habitica",
"marketing1Header": "Verbessere deine Gewohnheiten mit jedem Level!",
"marketing1Lead1Title": "Mache dein Leben zum Spiel",
"marketing1Lead1": "Habitica ist die perfekte App, für alle die Probleme mit to-do Listen haben. Wir verwenden bekannte Spiel-Mechaniken wie Belohnungen mit Gold und ExP und Gegenstände, die dir helfen dich produktiver zu fühlen und dein Erfolgserlebnis zu steigern, wenn du Aufgaben vollendest. Je besser Du Dich dabei anstellst, umso weiter kommst Du im Spiel.",
"marketing1Lead1": "Habitica ist die perfekte App, für alle die Probleme mit ToDo-Listen haben. Wir verwenden bekannte Spiel-Mechaniken wie Belohnungen in Gold, XP und Gegenstände, die dir dabei helfen, dich produktiver zu fühlen und dein Erfolgserlebnis zu steigern, wenn du Aufgaben vollendest. Je besser Du Dich dabei anstellst, umso weiter kommst Du im Spiel.",
"marketing1Lead2Title": "Rüsten dich mit Stil aus",
"marketing1Lead2": "Sammele Schwerter, Rüstungen und vieles mehr mit Gold, welches du beim Vollenden von Aufgaben verdienst. Mit hunderten von Stücken, die du sammeln und auswählen kannst, werden dir nie Kombinationen zum Ausprobieren ausgehen. Optimiere deine Statistik , Style oder beides zusammen! ",
"marketing1Lead2": "Sammele Schwerter, Rüstungen und vieles mehr mit Gold, welches du beim Vollenden von Aufgaben verdienst. Mit hunderten von Ausrüstungsstücken, die du sammeln und auswählen kannst, werden dir nie Kombinationen zum Ausprobieren ausgehen. Optimiere deine Statistik, deinen Style oder beides zusammen! ",
"marketing1Lead3Title": "Verdiene Belohnungen für deine Bemühungen",
"marketing1Lead3": "Etwas zu haben, auf das man sich freuen kann, kann den Unterschied ausmachen, ob man eine Aufgabe erledigt, oder ob sie einen wochenlang quält. Wenn das Leben keine Belohnung bietet, ist Habitica für dich da! Du wirst für jede Aufgabe belohnt, aber Überraschungen gibt es an jeder Ecke - also mach weiter so! ",
"marketing2Header": "Messe Dich mit Freunden",
"marketing1Lead3": "Etwas zu haben, auf das man sich freuen kann, mag den Unterschied ausmachen, ob man eine Aufgabe erledigt oder ob sie einen wochenlang quält. Wenn das Leben keine Belohnung bietet ist Habitica für dich da! Du wirst für jede Aufgabe belohnt, aber Überraschungen gibt es an jeder Ecke - also mach weiter so! ",
"marketing2Header": "Schließe dich mit Freunden zusammen",
"marketing2Lead1Title": "Soziale Produktivität",
"marketing2Lead1": "Hole dir einen Motivationsschub, indem du mit anderen zusammenarbeitest, konkurrierst und interagierst! Habitica wurde entwickelt, um den effektivsten Teil eines jeden Selbstverbesserungsprogramms zu nutzen: soziale Verantwortung.",
"marketing2Lead2Title": "Bekämpfe Monster in Quests.",
"marketing2Lead2": "Nimm eine unserer Hunderte von Quests mit einer Gruppe von Freunden an, um sich ins Getümmel zu stürzen. Die Monster der Quests bringen deine Verantwortlichkeit auf die Spitze. Wenn du vergisst, Zahnseide zu benutzen, schadet das allen!",
"marketing2Lead2Title": "Bekämpfe Monster in Quests",
"marketing2Lead2": "Nimm dich einer unserer hunderten von Quests mit einer Gruppe von Freunden an, um dich ins Getümmel zu stürzen. Die Monster der Quests bringen deine Verantwortlichkeit auf die Spitze. Wenn du vergisst, Zahnseide zu benutzen, schadet das allen!",
"marketing2Lead3Title": "Fordert einander heraus",
"marketing2Lead3": "Nimm an Herausforderungen teil, die von unserer Community erstellt wurden, und erhalte kuratierte Aufgabenlisten, die deinen Interessen und Zielen entsprechen. Gib dein Bestes, um den Edelsteinpreis für den Gewinner zu erhalten!",
"marketing3Header": "Apps und Erweiterungen",
"marketing2Lead3": "Nimm an Herausforderungen teil, die von unserer Community erstellt wurden und erhalte zusammengestellte Aufgabenlisten, die deinen Interessen und Zielen entsprechen. Gib dein Bestes dabei, um den Edelsteinpreis zu wetteifern, der dem Gewinner verliehen wird!",
"marketing3Header": "Weitere Möglichkeiten, Habitica zu nutzen",
"marketing3Lead1": "Du kannst Habitica auf deinem Android- oder iOS-Gerät nutzen, um Aufgaben überall abzuhaken. Schau dir unsere preisgekrönten Apps an, um einen neuen Ansatz zur Erledigung von Aufgaben zu finden.",
"marketing3Lead2Title": "Open-Source community",
"marketing3Lead2Title": "Open-Source Community",
"marketing3Lead2": "Wir sind stolz darauf, ein Open-Source-Projekt zu sein, das Beiträge von unserer engagierten Community begrüßt. Passe Habitica deinen eigenen Bedürfnissen an oder trage dazu bei, die Erfahrung aller Spieler auf der ganzen Welt zu verbessern. Besuche uns auf [GitHub](https://github.com/HabitRPG/habitica/wiki/Contributing-to-Habitica), um mehr zu erfahren!",
"marketing4Header": "Mehr als nur Hausarbeit",
"marketing4Lead1": "Die Bildung ist einer der besten Orte für ein wenig Gamification! Durchbrich die Monotonie der täglichen Klassenarbeit, indem du ein paar Spiele in den Mix einbaust. Mit Habitica kannst du auf unterhaltsame Weise die Hausaufgaben verfolgen, Herausforderungen im Klassenzimmer schaffen und dein SchülerInnen mit ihren Erfolgen angeben lassen.",
"marketing4Lead1": "Unterricht ist einer der besten Bereiche für ein wenig Gamification! Durchbrich die Monotonie der täglichen Klassenarbeit, indem du ein paar Spiele in einbaust. Mit Habitica kannst du auf unterhaltsame Weise die Hausaufgaben verfolgen, Herausforderungen im Klassenzimmer schaffen und deine SchülerInnen mit ihren Erfolgen angeben lassen.",
"marketing4Lead1Title": "Gamification in der Bildung",
"marketing4Lead2": "Der Aufbau eines gesünderen Lebensstils kann leicht zu einem überwältigenden Unterfangen werden. Habitica hilft dir dabei, alle Aspekte deiner Fitnessziele zu verfolgen, mit flexibler Zeitplanung und Intensität, um dich dort abzuholen, wo du gerade bist. Habe also etwas Spaß, während du auf deine Gesundheit hinarbeitest!",
"marketing4Lead2Title": "Gamification von Gesundheit und Erholung",
@@ -111,7 +111,7 @@
"missingPassword": "Fehlendes Passwort.",
"missingNewPassword": "Fehlendes neues Passwort.",
"invalidEmailDomain": "Du kannst E-Mails mit den folgenden Domains nicht registrieren: <%= domains %>",
"wrongPassword": "Das Passwort ist falsch. Wenn Du Dein Passwort vergessen hast, klicke auf „Passwort vergessen“.",
"wrongPassword": "Das Passwort ist falsch. Wenn Du Dein Passwort vergessen hast, klicke auf „Passwort vergessen“",
"incorrectDeletePhrase": "Bitte gebe <%= magicWord %> in Großbuchstaben ein, um Dein Konto zu löschen.",
"notAnEmail": "Ungültige E-Mail-Adresse.",
"emailTaken": "Diese E-Mail-Adresse wird bereits von einem Konto verwendet.",

View File

@@ -2485,7 +2485,7 @@
"weaponSpecialWinter2022HealerText": "Kristallklarer Zauberstab aus Eis",
"weaponSpecialWinter2022HealerNotes": "Berühre einen Freund mit diesem Werkzeug aus festgefrorenem Wasser am Nacken, und er wird aus dem Sessel springen! Aber sich danach auch besser fühlen. Hoffentlich. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
"armorSpecialWinter2022RogueText": "Strahlende Explosion",
"armorSpecialWinter2022WarriorText": "Samtiger Strumpf",
"armorSpecialWinter2022WarriorText": "Flauschiger Strumpf",
"armorSpecialWinter2022MageText": "Granatapfel-Schutzrüstung",
"armorSpecialWinter2022HealerText": "Kristallklare Rüstung aus Eis",
"armorSpecialWinter2022HealerNotes": "Gleite wie auf Schlittschuhen knapp über dem Boden eine ätherisch-glitzernde Gestalt, gekommen, um Geduld und Gelassenheit zu verbreiten. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
@@ -2494,7 +2494,7 @@
"headSpecialWinter2022MageText": "Granatapfelhelm",
"headSpecialWinter2022HealerText": "Kristallklare Krone aus Eis",
"weaponSpecialWinter2022RogueText": "Sternschnuppenfeuerwerk",
"armorSpecialWinter2022RogueNotes": "Wenn sie Sterne sehen, sehen sie Dich nicht! Ja, lass uns das so sagen. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
"armorSpecialWinter2022RogueNotes": "Wenn sie Sterne sehen, dann werden sie dich nicht sehen! Ja, lass es uns so machen. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
"armorSpecialWinter2022WarriorNotes": "Wer sagt, dass Du es nicht geborgen und gemütlich haben kannst, während Du mit alltäglichen Aufgaben kämpfst? Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
"armorSpecialWinter2022MageNotes": "Wenn Du Dich näherst, müssen sich Deine Feinde sich vor Fruchtsaft-Flecken in Acht nehmen! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 20212022 Winterausrüstung.",
"headSpecialWinter2022RogueText": "Donnerndes Finale",
@@ -2708,7 +2708,7 @@
"weaponSpecialWinter2023RogueText": "Grüne Satin Schärpe",
"weaponSpecialWinter2023WarriorText": "Stoßzahn Speer",
"weaponSpecialSpring2023MageText": "Mondstein Magie",
"weaponSpecialSpring2023MageNotes": "Je stärker ihr Glühen, desto größer ist ihre Macht. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2023 Frühlingsausrüstung.",
"weaponSpecialSpring2023MageNotes": "Je stärker ihr Glühen, desto größer ist ihre Macht. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2023 Frühlingsausrüstung.",
"weaponSpecialSpring2023HealerText": "Lilien Pollen",
"weaponSpecialSummer2023WarriorText": "Wasserelementar-Schwert",
"weaponSpecialSummer2023MageText": "Fisch",
@@ -2945,8 +2945,8 @@
"armorArmoireHattersSuitNotes": "Dein Outfit ist nicht vollständig ohne deine grüne Glücks-Fliege. Trage dies zu deinem nächsten verrückten Teekränzchen. Oder angenehmen Teekränzchen. Oder begeisterten Teekränzchen. Oder... Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Hutmacher-Set (Gegenstand 2 von 4).",
"armorArmoireBlueStripedSwimsuitNotes": "Was könnte spannender sein als Seemonster am Strand zu bekämpfen? Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Strand-Set (Gegenstand 2 von 4).",
"armorArmoireSchoolUniformPantsNotes": "Ob du nun eine Schule für magische Zauberer, Drachenreiter, Ballsportspieler, kreative Künstler oder Mitglieder einer Organisation, die zu geheim ist, um sie hier aufzuzählen, besuchst, du wirst mit dieser Uniform gut dazu passen. Erhöht Intelligenz um <%= int %>.Verzauberter Schrank: Schuluniform-Set (Gegenstand 2 von 4).",
"armorArmoireGreenFluffTrimmedCoatNotes": "Sagen erzählen, dass einmal in einer Generation ein Mantel daherkommt, der der wärmste und bequemste von allen ist. Sein Flausch ist außergewöhnlich und seine Knöpfe sind sogar von fäustlingsumhüllten Händen handhabbar. Das ist dieser Mantel hier. Erhöht Stärke und Intelligenz um jeweils <%= attrs %>. Verzauberter Schrank: Fallenstellerhut-Set (Gegenstand 2 von 2).",
"armorArmoireSoftWhiteSuitNotes": "Weiß ist eine friedvolle Farbe. Ob du nun ein strahlend weißes Bettlaken oder eine Decke aus frischgefallenem Schnee betrachtest, du wirst einen klaren und vorbereiteten Geist haben. Erhöht Ausdauer um <% con %> und Wahrnehmung um <%= per %>. Verzauberter Schrank: Weiße Lounge-Kleidung (Gegenstand 2 von 3).",
"armorArmoireGreenFluffTrimmedCoatNotes": "Sagen erzählen, dass einmal in einer Generation ein Mantel daherkommt, welcher der wärmste und bequemste von allen ist. Sein Flausch ist außergewöhnlich und seine Knöpfe sind sogar von fäustlingsumhüllten Händen handhabbar. Das ist dieser Mantel hier. Erhöht Stärke und Intelligenz um jeweils <%= attrs %>. Verzauberter Schrank: Fallenstellerhut-Set (Gegenstand 2 von 2).",
"armorArmoireSoftWhiteSuitNotes": "Weiß ist eine friedvolle Farbe. Ob du nun ein strahlend weißes Bettlaken oder eine Decke aus frischgefallenem Schnee betrachtest, du wirst einen klaren und vorbereiteten Geist haben. Erhöht Ausdauer um <%= con %> und Wahrnehmung um <%= per %>. Verzauberter Schrank: Weißes Lounge-Kleidungsset (Gegenstand 2 von 3).",
"armorArmoireCorsairsCoatAndCapeText": "Mantel und Umhang des Korsaren",
"armorArmoireSmileyShirtNotes": "Weil du glücklich bist! Zeig der Welt, dass du heute den ganzen Tag lächelst. Erhöht Intelligenz und Wahrnehmung um jeweils <%= attrs %>. Verzauberter Schrank: Optimisten-Set (Gegenstand 1 von 4).",
"armorArmoireYellowStripedSwimsuitText": "Gelb gestreifter Badeanzug",
@@ -2954,7 +2954,7 @@
"armorArmoireGreenFluffTrimmedCoatText": "Mantel mit grünem Flauschband",
"armorArmoireSchoolUniformSkirtText": "Schuluniform mit Rock",
"armorArmoireHattersSuitText": "Anzug des Hutmachers",
"armorArmoireKarateGiText": "Karate Gi",
"armorArmoireKarateGiText": "Karategi",
"armorArmoireKarateGiNotes": "Diese leichte Karate-Uniform ist perfekt für Training oder Wettbewerbe. Erhöht Stärke um <%= str %>. Verzauberter Schrank: Karate-Set (Gegenstand 1 von 10).",
"weaponArmoireStormKnightAxeText": "Axt des Sturmritters",
"weaponArmoireStormKnightAxeNotes": "Sammle deine Wut und schlage wie ein Donnerschlag zu! Erhöht Stärke um <%= str %>. Verzauberter Schrank: Sturmritter-Set (Gegenstand 3 von 3)",
@@ -3295,7 +3295,7 @@
"shieldSpecialSpring2025RogueText": "Kristallspitzen-Flegel",
"shieldSpecialSpring2025RogueNotes": "Du kannst den Kristall nutzen, um eine produktive Zukunft für dich weiszusagen. Nutze die Gelegenheit und spring vorwärts! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
"shieldSpecialSpring2025HealerText": "Plumeria Schild",
"shieldSpecialSpring2025HealerNotes": "Du kannst dieses spezielle Blütenblatt verwenden, um Güte zu sammeln oder um negative Gedanken wegzuschnipsen. Nutze die Gelegenheit und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Ausrüstung.",
"shieldSpecialSpring2025HealerNotes": "Du kannst dieses spezielle Blütenblatt verwenden, um Güte zu sammeln oder um negative Gedanken wegzuschnipsen. Nutze die Gelegenheit und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
"shieldSpecialSpring2025WarriorText": "Sonnenstrahl Schild",
"shieldSpecialSpring2025WarriorNotes": "Du kannst deine Gegner für den Moment blenden, wenn die Sonne diesen Schild genau richtig trifft. Nutze den Vorteil und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
"shieldArmoireSpringPetalUchiwaNotes": "Dieser tragbare Fächer mit schönem Blütenmuster bewirkt eine leichte Brise nur für dich, wenn das Wetter wärmer wird. Erhöht Intelligenz und Wahrnehmung um jeweils <%= attrs %>. Verzauberter Schrank: Frühlingsblüten Set (Gegenstand 2 von 2).",
@@ -3342,10 +3342,10 @@
"armorSpecialSummer2025MageNotes": "Dieser Anzug hat nicht nur atemberaubende Farben, sondern ermöglicht dir auch, anmutig durch's Wasser zu gleiten. Schwimmen oder Tanzen - du hast die Wahl! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe Sommerausrüstung 2025.",
"armorArmoireBeekeepersSuitText": "Imkeranzug",
"armorArmoireBeekeepersSuitNotes": "Schütze dich, während du nach deinen fleißigen Hummeln schaust. Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Imker Set (Gegenstand 2 von 4)",
"headSpecialSummer2025RogueNotes": "Deine Sehkraft wird sich verbessern, sobald Du diese Maske aufsetzt. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe Sommerausrüstung 2025.",
"headSpecialSummer2025RogueNotes": "Deine Sehkraft wird sich verbessern sobald Du diese Maske aufsetzt. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe Sommer 2025 Ausrüstung.",
"weaponSpecialSummer2025MageText": "Zweigkoralle",
"weaponSpecialSummer2025MageNotes": "Verzweige dich mit deinen Talenten und Fähigkeiten, um eine Reihe von verschiedenen Aufgaben anzugreifen. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe Sommerausrüstung 2025",
"headSpecialSummer2025WarriorText": "Jakobsmuschel Helm",
"headSpecialSummer2025WarriorText": "Kammmuschelhelm",
"headSpecialSummer2025WarriorNotes": "Undurchdringlich und perfekt zugespitzt wird dich dieser Helm sogar vor Seesternen beschützen. Erhöht Stärke um <%= str %>. Limitierte Ausgabe Sommerausrüstung 2025.",
"headSpecialSummer2025RogueText": "Tintenfischmaske",
"headSpecialSummer2025HealerText": "Ruderschnecken Helm",
@@ -3355,5 +3355,25 @@
"headMystery202507Notes": "Umgedrehte Mützen sind immer noch cool, oder? Gewährt keinen Attributbonus. Juli 2025 Abonnentengegenstand.",
"headMystery202507Text": "Draufgängerische Skater Mütze",
"armorArmoireFlyFishingWadersText": "Fliegenfischerhose",
"armorArmoireFlyFishingWadersNotes": "Halte dich vollkommen warm und trocken, wenn du in einen Bach, Teich, See oder Fluß watest. Erhöht Stärke und Ausdauer um jeweils <%= attrs %>. Verzauberter Schrank: Fliegenfischer Set (Gegenstand 2 von 3)"
"armorArmoireFlyFishingWadersNotes": "Halte dich vollkommen warm und trocken, wenn du in einen Bach, Teich, See oder Fluß watest. Erhöht Stärke und Ausdauer um jeweils <%= attrs %>. Verzauberter Schrank: Fliegenfischer Set (Gegenstand 2 von 3)",
"headArmoireBeekeepersHatText": "Imkerhut und Schleier",
"headArmoireBeekeepersHatNotes": "Schützt dein Gesicht, während Du dich um Deine brummenden Kumpels kümmerst. Erhöht Wahrnehmung um <%= per %>. Verzauberter Schrank: Bienenzüchter-Set (Gegenstand 1 von 4)",
"shieldSpecialSummer2025WarriorText": "Jakobsmuschelschild",
"shieldSpecialSummer2025WarriorNotes": "Die Farben sind schön, aber der Kamm ist gefährlich. Feinde, nehmt euch in Acht! Erhöht die Konstitution um <%= con %>. Limitierte Edition Sommer 2025 Ausrüstung.",
"headArmoireFlyFishingHatText": "Fliegenfischerhut",
"headArmoireFlyFishingHatNotes": "Mit breiter Krempe und Platz für einen Ersatzköder. Du solltest nicht ohne diese Schönheit zum Fliegenfischen gehen. Erhöht Stärke und Wahrnehmung jeweils um <%= attrs %>. Verzauberter Schrank: Fliegenfischer-Set (Gegenstand 1 von 3)",
"shieldArmoireFlyFishingRodNotes": "Hänge einen Köder an diese lange, flexible Rute und Fische werden ihn jedes Mal mit einem Insekt verwechseln. Erhöht Stärke und Intelligenz um jeweils <%= attrs %>. Verzauberter Schrank: Fliegenfischer-Set (Gegenstand 3 von 3)",
"backMystery202506Text": "Sonnenschein-Aureole",
"shieldSpecialSummer2025RogueText": "Tintenfisch-Tentakel",
"shieldSpecialSummer2025RogueNotes": "Dieser Tentakel sieht biegsam aus, aber seine Saugnäpfe greifen fest zu. Feinde, passt auf! Erhöht die Stärke um <%= str %>. Limitierte Edition Sommer 2025 Ausrüstung.",
"shieldSpecialSummer2025HealerText": "Ruderschnecken-Schild",
"shieldSpecialSummer2025HealerNotes": "Dieser Schild sieht einfach aus, aber er hat gesundheitsschädliche Eigenschaften. Feinde, passt auf! Erhöht die Konstitution um <%= con %>. Limitierte Edition Sommer 2025 Ausrüstung.",
"shieldArmoireBeekeepersHiveText": "Bienenstock",
"shieldArmoireBeekeepersHiveNotes": "Bienenstöcke dienen sowohl als Zuhause als auch als Arbeitsplatz. Vielleicht solltet ihr mit euren Bienen über eine gute Work-Life-Balance sprechen. Erhöht die Stärke um <%= str %>. Verzauberter Schrank: Imker-Set (Gegenstand 4 von 4)",
"shieldArmoireFlyFishingRodText": "Fliegenfischer-Rute",
"backMystery202507Text": "Draufgängerisches Skateboard",
"backMystery202507Notes": "Dein Ross für Bürgersteige und Halfpipes. Gewährt keinen Attributbonus. Juli 2025 Abonnentengegenstand.",
"shieldMystery202506Text": "Sonnenschein-Schild",
"shieldMystery202506Notes": "Vertreibe die Dunkelheit und lasse deiner Umgebung warme und herzliche Strahlen zuteilwerden wo immer du auch bist. Gewährt keinen Attributbonus. Juni 2025 Abonnentengegenstand.",
"backMystery202506Notes": "Trage ein warmes Leuchten mit dir, wenn du deinen täglichen Aufgaben nachgehst. Gewährt keinen Attributbonus. Juni 2025 Abonnentengegenstand."
}

View File

@@ -189,7 +189,7 @@
"dismissAll": "Alle entfernen",
"messages": "Nachrichten",
"emptyMessagesLine1": "Du hast im Moment keine Nachrichten",
"emptyMessagesLine2": "Du kannst anderen eine neue Nachricht schicken, indem Du ihr Profil aufrufst und auf den \"Nachrichten\"-Knopf drückst.",
"emptyMessagesLine2": "Sende eine Nachricht, um eine Konversation mit Mitgliedern deiner Gruppe oder anderen Habitica Spielern zu beginnen",
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> hat Dir eine Nachricht gesendet",
"letsgo": "Auf geht's!",
"selected": "Ausgewählt",

View File

@@ -79,7 +79,7 @@
"newBaileyUpdate": "Neues Update von Bailey!",
"tellMeLater": "Erzähl es mir später",
"dismissAlert": "Als gelesen markieren",
"donateText3": "Als Open-Source-Projekt ist Habitica auf die Hilfe unserer Benutzer angewiesen. Das Geld, was Du für Edelsteine ausgibst, hilft uns dabei unsere Server am Laufen zu halten, ein paar Mitarbeiter zu bezahlen, neue Features zu entwickeln und unseren ehrenamtlichen Helferlein Anreize zu bieten",
"donateText3": "Als Open-Source-Projekt ist Habitica auf die Hilfe unserer Benutzer angewiesen. Das Geld, das Du für Edelsteine ausgibst, hilft uns dabei unsere Server am Laufen zu halten, ein paar Mitarbeiter zu bezahlen, neue Features zu entwickeln und unseren ehrenamtlichen Helferlein Anreize zu bieten",
"card": "Kreditkarte",
"paymentMethods": "Kauf mit",
"paymentSuccessful": "Die Zahlung war erfolgreich!",
@@ -125,7 +125,7 @@
"limitedAvailabilityMinutes": "Für <%= minutes %>min <%= seconds %>sek verfügbar",
"limitedAvailabilityHours": "Für t <%= hours %>std und <%= minutes %>min verfügbar",
"limitedAvailabilityDays": "Für <%= days %>t <%= hours %>std und <%= minutes %>min verfügbar",
"amountExp": "<%= amount %> Exp",
"amountExp": "<%= amount %> XP",
"helpSupportHabitica": "Hilf dabei, Habitica zu unterstützen",
"groupsPaymentSubBilling": "Dein nächstes Rechnungsdatum ist <strong><%= renewalDate %></strong>.",
"groupsPaymentAutoRenew": "Dieses Abonnement läuft automatisch weiter, bis es gekündigt wird. Du kannst es im Gruppen-Abrechnungs-Tab kündigen.",

View File

@@ -846,5 +846,7 @@
"questPlatypusRageDescription": "Diese Leiste füllt sich, wenn Du Deine Tagesaufgaben nicht erfüllst. Wenn sie voll ist, nimmt Das Perfektionisten Schnabeltier deiner Party einige ihrer MP weg!",
"questPlatypusRageEffect": "Das Perfektionisten Schnabeltier taucht unter Wasser und spritzt dich naß! Die MP deiner Party sind reduziert!",
"questPlatypusDropPlatypusEgg": "Schnabeltier (Ei)",
"questPlatypusUnlockText": "Schält Schnabeltier Eier zum Kauf im Marktplatz frei"
"questPlatypusUnlockText": "Schält Schnabeltier Eier zum Kauf im Marktplatz frei",
"questOtterNotes": "To-Do-Listen sind großartig! Man kann Stunden damit verbringen, jeden Schritt, den man tun muss, akribisch zu dokumentieren und sich produktiv zu fühlen, ohne diese Dinge tatsächlich zu tun. Deine dreiseitige Liste wird in die Tasche gesteckt. Zeit für einen erfrischenden Spaziergang!<br><br>Du machst dich auf den Weg zum Routinen-Fluss, um einen Spaziergang am Ufer zu machen. Das ist genau das, was Du brauchst, um endlich loszulegen! Zeit, Deine To-Do-Liste hervorzuholen und - ach! Ein Windstoß lässt Dir die Liste aus der Hand und direkt in Richtung Wasser fliegen!<br><br>Kurz bevor das Papier ins Wasser fällt, taucht ein Otterkopf auf und fängt das Blatt ab. Puh! Er hält die Liste in seinen Pfoten und ein schelmisches Grinsen breitet sich auf seinem Gesicht aus... Uh-oh.<br><br>„Hmmm“, summt er und blättert das Papier um, um Deine Liste zu lesen. „Sieht aus, als bräuchtest Du Hilfe beim Setzen von Prioritäten.“ Ritsch.<br><br>Der Otter hat gerade Deine sorgfältig erstellte Liste in Stücke gerissen! „Wenn Du das alles erledigen willst, musst Du Dich zuerst entscheiden, was das Wichtigste ist“, sagt er und wirft die Punkte auf Deiner Liste Stück für Stück in den Wind.",
"questOtterCompletion": "Als Du die Teile Deiner Liste eingefangen hast, hast Du angefangen, sie danach zu sortieren, welche Aufgaben am wichtigsten sind, und hast am Ende einen recht handhabbaren Startpunkt gefunden!<br><br>„Verstehe!“, sagst Du dem Otter, „dieser alberne Stunt hat mir wirklich geholfen, darüber nachzudenken, welche Aufgaben ich priorisieren muss.“<br><br>Der Otter spritzt herum und reibt sich vergnügt die Wangen: „Ich bin froh, dass mein kleiner Plan Dich dazu gebracht hat, anders über Deine Aufgaben nachzudenken.“ Er taucht unter und in der Nähe wieder auf. \"Denke daran, deine Listen machbar zu halten. Belohnungen helfen auch, also nimm die hier!\""
}

View File

@@ -1035,6 +1035,10 @@
"backgroundSirensLairText": "Siren's Lair",
"backgroundSirensLairNotes": "Dare to dive into a Sirens Lair.",
"backgrounds082025": "SET 135: Released August 2025",
"backgroundSunnyStreetWithShopsText": "Sunny Street with Shops",
"backgroundSunnyStreetWithShopsNotes": "Enjoy the sights and sounds of a Sunny Street with Shops.",
"timeTravelBackgrounds": "Steampunk Backgrounds",
"backgroundAirshipText": "Airship",
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",

View File

@@ -109,6 +109,7 @@
"tweet": "Tweet",
"checkOutMobileApps": "Check out our mobile apps!",
"missingAuthHeaders": "Missing authentication headers.",
"missingClientHeader": "Missing x-client headers.",
"missingUsernameEmail": "Missing username or email.",
"missingEmail": "Missing email.",
"missingUsername": "Missing username.",

View File

@@ -600,6 +600,8 @@
"weaponMystery202404Notes": "This staff will bestow upon you an ancient wisdom as ageless as the rocks and trees. Confers no benefit. April 2024 Subscriber Item.",
"weaponMystery202408Text": "Arcane Aegis",
"weaponMystery202408Notes": "A magic bubble shield that protects you from enemy spells or helps you float in the air or water. Confers no benefit. August 2024 Subscriber Item.",
"weaponMystery202508Text": "Brilliant Crimson Blade",
"weaponMystery202508Notes": "This spinning blade will terrify any monster or red Daily that crosses your path! Confers no benefit. August 2025 Subscriber Item.",
"weaponMystery301404Text": "Steampunk Cane",
"weaponMystery301404Notes": "Excellent for taking a turn about town. March 3015 Subscriber Item. Confers no benefit.",
@@ -1736,6 +1738,8 @@
"armorArmoireBeekeepersSuitNotes": "Keep yourself safe as you look after your busy bumbles. Increases Constitution by <%= con %>. Enchanted Armoire: Beekeeper Set (Item 2 of 4)",
"armorArmoireFlyFishingWadersText": "Fly Fishing Waders",
"armorArmoireFlyFishingWadersNotes": "Stay perfectly warm and dry when you wade into a stream, pond, lake, or river. Increases Strength and Constitution by <%= attrs %> each. Enchanted Armoire: Fly Fishing Set (Item 2 of 3)",
"armorArmoireRedWaistcoatText": "Red Waistcoat",
"armorArmoireRedWaistcoatNotes": "Look smart and stunning as you tackle your tasks. Theres something secret hidden in the vest pocket—what do you think it could be? Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Red Waistcoat Set (Item 2 of 2)",
"headgear": "helm",
"headgearCapitalized": "Headgear",
@@ -2673,6 +2677,8 @@
"headArmoireBeekeepersHatNotes": "Keep your face safe as you tend to your buzzing buddies. Increases Perception by <%= per %>. Enchanted Armoire: Beekeeper Set (Item 1 of 4)",
"headArmoireFlyFishingHatText": "Fly Fishing Hat",
"headArmoireFlyFishingHatNotes": "With a wide brim and spot to hold a spare lure, dont go fly fishing without this beauty. Increases Strength and Perception by <%= attrs %> each. Enchanted Armoire: Fly Fishing Set (Item 1 of 3)",
"headArmoireRedNewsieHatText": "Red Newsie Cap",
"headArmoireRedNewsieHatNotes": "Extra! Extra! Read all about it: this cap is comfortable, fashionable, and practical. Increases Perception and Intelligence by <%= attrs %> each. Enchanted Armoire: Red Waistcoat Set (Item 1 of 2)",
"offhand": "off-hand item",
"offHandCapitalized": "Off-Hand Item",
@@ -3006,6 +3012,8 @@
"shieldMystery202502Notes": "This Valentines Day and every day, may your heart be as light as these buoyant balloons. Confers no benefit. February 2025 Subscriber Item.",
"shieldMystery202506Text": "Solar Shine Shield",
"shieldMystery202506Notes": "Dispel darkness and bestow warm and cheerful rays wherever you are. Confers no benefit. June 2025 Subscriber Item.",
"shieldMystery202508Text": "Brilliant Cyan Blade",
"shieldMystery202508Notes": "If you thought one spinning blade was cool looking, try two! Confers no benefit. August 2025 Subscriber Item.",
"shieldMystery301405Text": "Clock Shield",
"shieldMystery301405Notes": "Time is on your side with this towering clock shield! Confers no benefit. June 3015 Subscriber Item.",

View File

@@ -176,6 +176,7 @@
"mysterySet202505": "Soaring Swallowtail Set",
"mysterySet202506": "Solar Shine Set",
"mysterySet202507": "Spunky Skater Set",
"mysterySet202508": "Brilliant Blade Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
"mysterySet301703": "Peacock Steampunk Set",

View File

@@ -182,5 +182,6 @@
"translateHabitica": "Traduce Habitica",
"incorrectResetPhrase": "Por favor, teclea <%= magicWord %> en mayúsculas para reiniciar tu cuenta.",
"marketing3Lead1Title": "Aplicaciones para Android y iOS",
"marketing4Lead3Button": "Empieza Hoy Mismo"
"marketing4Lead3Button": "Empieza Hoy Mismo",
"missingClientHeader": "Faltan los encabezados x-client."
}

View File

@@ -3,7 +3,8 @@
"iosFaqStillNeedHelp": "אם יש לך שאלה שאינה מופיעה ברשימה או ב[וויקי שאלות נפוצות](https://habitica.fandom.com/wiki/FAQ), אנחנו מזמינים אותך לשאול בשיחת הפונדק תחת תפריט > פונדק! נשמח לעזור.",
"androidFaqStillNeedHelp": "אם יש לך שאלה שאינה מופיעה ברשימה או ב[וויקי שאלות נפוצות](https://habitica.fandom.com/wiki/FAQ), אנחנו מזמינים אותך לשאול בשיחת הפונדק תחת תפריט > פונדק! נשמח לעזור.",
"webFaqStillNeedHelp": "",
"webFaqAnswer25": "בHabitica יש שלוש סוגי משימות על מנת לענות על כל הצרכים שלך: הרגלים, משימות חוזרות, ומשימה",
"webFaqAnswer25": "הביטיקה משתמשת בשלושה סוגי משימות שונים כדי להתאים לצרכים שלך: הרגלים, משימות יומיות ומשימות.\n\nהרגלים יכולים להיות חיוביים או שליליים ולייצג משהו שרוצים לעקוב אחריו מספר פעמים ביום, או בלוח זמנים לא מוגדר. הרגלים חיוביים יספקו לך תגמולים, כמו מטבעות זהב ונקודות ניסיון (Exp), בעוד שהרגלים שליליים יגרמו לך לאבד נקודות בריאות (HP).\n\nמשימות יומיות הן משימות חוזרות שרוצים להשלים בלוח זמנים מובנה יותר. לדוגמה, פעם ביום, שלוש פעמים בשבוע או ארבע פעמים בחודש. החמצת משימות יומיות גורמת לך לאבד נקודות חיים, אך ככל שהן קשות יותר, כך התגמולים טובים יותר!\n\nמטלות הן משימות חד פעמיות המספקות תגמולים לאחר שמשלימים אותן. למשימות יכול להיות תאריך יעד, אך לא ירדו נקודות חיים אם מפספסים אותו.\n\nיש לבחור את סוג המשימה המתאים ביותר למה שרוצים להשיג!",
"commonQuestions": "שאלות נפוצות",
"faqQuestion25": "מהן סוגי המשימות השונות?"
"faqQuestion25": "מהן סוגי המשימות השונות?",
"parties": "חבורות"
}

View File

@@ -398,10 +398,10 @@
"questFerretBoss": "Nefarious Ferret",
"questFerretDropFerretEgg": "Ferret (Egg)",
"questFerretUnlockText": "Unlocks purchasable Ferret eggs in the Market",
"questDustBunniesText": "The Feral Dust Bunnies",
"questDustBunniesText": "ארנבוני האבק המפלצתיים",
"questDustBunniesNotes": "It's been a while since you've done any dusting in here, but you're not too worried—a little dust never hurt anyone, right? It's not until you stick your hand into one of the dustiest corners and feel something bite that you remember @InspectorCaracal's warning: leaving harmless dust sit too long causes it to turn into vicious dust bunnies! You'd better defeat them before they cover all of Habitica in fine particles of dirt!",
"questDustBunniesCompletion": "The dust bunnies vanish into a puff of... well, dust. As it clears, you look around. You'd forgotten how nice this place looks when it's clean. You spy a small pile of gold where the dust used to be. Huh, you'd been wondering where that was!",
"questDustBunniesBoss": "Feral Dust Bunnies",
"questDustBunniesBoss": "ארנבוני האבק המפלצתיים",
"questGroupMoon": "Lunar Battle",
"questMoon1Text": "Lunar Battle, Part 1: Find the Mysterious Shards",
"questMoon1Notes": "Habiticans have been distracted from their tasks by something strange: twisted shards of stone are appearing across the land. Worried, @Starsystemic the Seer summons you to her tower. She says, \"I've been reading alarming omens about these shards, which have been blighting the land and driving hardworking Habiticans to distraction. I can track the source, but first I'll need to examine the shards. Can you bring some to me?\"",

View File

@@ -83,7 +83,7 @@
"questMoonstone1Completion": "W końcu udało Ci się wyciągnąć ostatni kamień księżycowy z bagiennego szlamu. Nastał teraz czas, aby przekształcić swoją kolekcję w broń, która w końcu pokona Recydywistkę!",
"questMoonstone1DropMoonstone2Quest": "Recydywista, część 2: Recydywistka Nekromantka (Zwój)",
"questMoonstone2Text": "Recydywista, część 2: Recydywistka Nekromantka",
"questMoonstone2Notes": "",
"questMoonstone2Notes": "Odważny miecznik @InspectorCaracal pomaga Ci przetworzyć zaczarowane księżycowe kamienie w łańcuch. Jesteś w końcu gotowy na spotkanie z Recydywistą, lecz gdy wkraczasz na Bagna Stagnacji, przeraźliwe ciarki przechodzą przez Twoje ciało.<br><br>Gnijący oddech szepcze Ci do ucha. \"Ponownie wróciłeś? Cudownie...\" Odwracasz się i uderzasz, a łańcuch księżycowych kamieni rozświetla masywne ciało Recydywisty po trafieniu. \"Może i związałeś mnie ponownie z tym światem,\" warknął Recydywista, \"lecz teraz jest czas abyś to Ty go opuścił!\"",
"questMoonstone2Boss": "Nekromanta",
"questMoonstone2Completion": "Recydywistka stawia chwiejne kroki do tyłu po Twoim ostatnim ciosie i przez chwilę Twoje serce już wypełnia radość - ale odwraca ona swoją głowę i wydaje z siebie przeraźliwy śmiech. Co się dzieje?",
"questMoonstone2DropMoonstone3Quest": "Recydywista, część 3: Recydywistka nawrócona (Zwój)",

View File

@@ -1830,5 +1830,6 @@
"headMystery202507Notes": "Chapéus ao contrário ainda são legais, né? Não confere benefícios. Julho 2025 Item de Assinante.",
"headMystery202507Text": "Chapéu de Skatista Irado",
"headArmoireFlyFishingHatText": "Chapéu de Fly Fishing",
"backMystery202506Notes": "Traz um brilho quente com você conforme avança sobre suas tarefas diárias. Não confere benefícios. Junho 2025 Item de Assinante."
"backMystery202506Notes": "Traz um brilho quente com você conforme avança sobre suas tarefas diárias. Não confere benefícios. Junho 2025 Item de Assinante.",
"weaponSpecialWinter2021MageText": "Fase Lunar Mágica"
}

View File

@@ -5,7 +5,7 @@
"webFaqStillNeedHelp": "如果您有任何疑問,但沒出現在以上列表中或是 [Wiki FAQ](https://habitica.fandom.com/wiki/FAQ)中,請至 [Habitica Help guild](https://habitica.com/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)裡詢問,我們相當樂意協助。",
"commonQuestions": "常見問題",
"faqQuestion25": "這些不同的任務類型是什麼?",
"webFaqAnswer25": "為滿足你的需要Habitica有三種不同的任務類型習慣、每日任務和待辦事項。\n\n習慣可以用於你希望每天做多次的事情,或是一些不確定的計劃。 它們可以被選擇完成或完不成,選擇完成會帶來金幣和經驗的獎勵,而另一種則會對你造成生命值傷害。\n\n每日任務是你希望更嚴謹地按計畫進行的重複任務例如每天一次、每週三次或是每月四次。 錯過完成每日任務會導致你受到生命值傷害,但這些任務越艱難,帶來的獎勵就越豐厚!\n\n待辦事項是一次性任務當你完成時會提供獎勵。 待辦事項可以設定截止時間,但你不會因為錯過時間而失去生命值。\n\n選擇最適合你想要完成的任務類型吧",
"webFaqAnswer25": "習慣可以用於你希望每天做多次的事情,或是一些不確定的計劃。 它們可以被選擇完成或完不成,選擇完成會帶來金幣和經驗的獎勵,而另一種則會對你造成生命值傷害。\n\n每日任務是你希望更嚴謹地按計畫進行的重複任務例如每天一次、每週三次或是每月四次。 錯過完成每日任務會導致你受到生命值傷害,但這些任務越艱難,帶來的獎勵就越豐厚!\n\n待辦事項是一次性任務當你完成時會提供獎勵。 待辦事項可以設定截止時間,但你不會因為錯過時間而失去生命值。\n\n選擇最適合你想要完成的任務類型吧",
"faqQuestion26": "什麼是範例任務?",
"contentAnswer62": "情人節魔術孵化藥水現在已納入每月的時間表中。",
"contentFaqPara3": "如果您有任何上述答案未涵蓋的問題,您可以隨時透過 <%= mailto %> 聯絡我們的團隊!我們對於新內容發行計畫感到非常興奮,並期待未來有更多的計畫能幫助所有玩家讓 Habitica 變得更好。",
@@ -38,7 +38,7 @@
"faqQuestion35": "當我餵了我的寵物後他就消失了!發生了什麼事?",
"faqQuestion36": "如何變更我的角色頭像外觀?",
"faqQuestion37": "為什麼我的角色頭像上沒有顯示我的裝備?",
"faqQuestion38": "為什麼不能購買某些商品?",
"faqQuestion38": "為什麼不能購買某些商品?",
"faqQuestion39": "我在哪裡可以取得更多裝備?",
"faqQuestion40": "什麼是寶石?該如何獲得?",
"faqQuestion43": "如何進行任務?",
@@ -79,5 +79,7 @@
"webFaqAnswer35": "一旦你餵養寵物到足以將其升級為坐騎,你就需要再次孵化該類型的寵物,才能在你的馬廄中同時擁有牠。\n\n在行動裝置 App 上查看坐騎的方法:\n\n * 從選單中選擇「寵物和坐騎」,然後切換到「坐騎」分頁\n\n在網站上查看坐騎的方法\n\n * 從「背包」選單中選擇「寵物與坐騎」,然後向下捲動到「坐騎」區塊",
"webFaqAnswer36": "你可以用無數種方式來自訂你的 Habitica 角色外觀!你可以變更角色的身形、髮型與髮色、膚色,或是加入眼鏡或輔具,只要從選單中選擇「編輯角色」即可。\n\n在行動裝置 App 上自訂角色的方法:\n * 從選單中選擇「自定義頭像」\n\n在網站上自訂虛擬角色的方法\n * 從導覽列的使用者選單中選擇「編輯角色」",
"webFaqAnswer37": "請檢查穿上裝扮選項是否已啟用。如果你的角色正在穿著服裝,顯示的將會是那套裝扮,而不是你的戰鬥裝備。\n\n在行動裝置 App 上切換裝扮:\n * 從選單中選擇「裝備」,即可找到穿上裝扮的選項\n\n在網站上切換裝扮\n * 從你的「背包」中選擇「裝備」,並在裝備欄的「裝扮」分頁中找到使用服裝選項",
"webFaqAnswer38": "Habitica的新玩家只能購買戰士職業的裝備。玩家需要按照順序解鎖服裝。\n\n大多數的裝備屬於職業固有的玩家只能購買當前職業的裝備。"
"webFaqAnswer38": "Habitica的新玩家只能購買戰士職業的裝備。玩家需要按照順序解鎖服裝。\n\n大多數的裝備屬於職業固有的玩家只能購買當前職業的裝備。",
"webFaqAnswer39": "如果想要獲取更多的裝備可以加入Habitica的付費會員就有機會獲取魔法衣櫥、或者Habitica祭典中的一件裝備。\n\nHabitica的會員每月可以獲取專屬裝備和神秘沙漏神秘沙漏可用於在時間旅行者商店購買過去上架的裝備。\n\n魔法衣櫥裡有超過350套的裝備只要100金幣就能獲得稀有套裝、用於把寵物培養成坐騎的食物或許也能得到升級的大量經驗\n\n在季節祭典期間可以使用金幣購入新的裝備套裝和以前祭典的套裝。",
"webFaqAnswer40": "寶石是Habitica的app裡的付費貨幣可以用來購買裝備、虛擬形象或背景。如果您是Habitica會員可以選擇金幣套裝購買寶石。您也可以通過贏得挑戰來獲得寶石。"
}

View File

@@ -662,6 +662,9 @@ const backgrounds = {
backgrounds072025: {
sirens_lair: { },
},
backgrounds082025: {
sunny_street_with_shops: { },
},
eventBackgrounds: {
birthday_bash: {
price: 0,

View File

@@ -22,6 +22,7 @@ export const ARMOIRE_RELEASE_DATES = {
gildedKnightSet: { year: 2025, month: 5 },
beekeepersSet: { year: 2025, month: 6 },
flyFishingSet: { year: 2025, month: 7 },
redWaistcoatSet: { year: 2025, month: 8 },
};
export const EGGS_RELEASE_DATES = {

View File

@@ -537,6 +537,11 @@ const armor = {
con: 7,
set: 'flyFishingSet',
},
redWaistcoat: {
con: 8,
str: 8,
set: 'redWaistcoatSet',
},
};
const body = {
@@ -1098,6 +1103,11 @@ const head = {
per: 7,
set: 'flyFishingSet',
},
redNewsieHat: {
per: 8,
int: 8,
set: 'redWaistcoatSet',
},
};
const shield = {

View File

@@ -297,6 +297,7 @@ const shield = {
202501: { },
202502: { },
202506: { },
202508: { },
301405: { },
301704: { },
};
@@ -322,6 +323,7 @@ const weapon = {
202403: { },
202404: { twoHanded: true },
202408: { },
202508: { },
301404: { },
};

View File

@@ -17,7 +17,7 @@ import {
} from './constants';
import achievements from './achievements';
import categoryOptions from './categoryOptions';
import eggs from './eggs';
import hatchingPotions from './hatching-potions';
import stable from './stable';
@@ -85,6 +85,8 @@ api.officialPinnedItems = officialPinnedItems;
api.bundles = bundles;
api.categoryOptions = categoryOptions;
/*
---------------------------------------------------------------
Unique Rewards: Potion and Armoire

View File

@@ -4,6 +4,7 @@ import url from 'url';
import {
InvalidCredentialsError,
NotAuthorized,
BadRequest,
} from '../libs/errors';
import {
model as User,
@@ -12,6 +13,8 @@ import gcpStackdriverTracer from '../libs/gcpTraceAgent';
import common from '../../common';
import { getLanguageFromUser } from '../libs/language';
const ENFORCE_CLIENT_HEADER = nconf.get('ENFORCE_CLIENT_HEADER') === 'true';
const OFFICIAL_PLATFORMS = ['habitica-web', 'habitica-ios', 'habitica-android'];
const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL');
const USER_FIELDS_ALWAYS_LOADED = ['_id', '_v', 'notifications', 'preferences', 'auth', 'flags', 'permissions'];
@@ -63,6 +66,10 @@ export function authWithHeaders (options = {}) {
const client = req.header('x-client');
const optional = options.optional || false;
if (ENFORCE_CLIENT_HEADER && !client) {
return next(new BadRequest(res.t('missingClientHeader')));
}
if (!userId || !apiToken) {
if (optional) return next();
return next(new NotAuthorized(res.t('missingAuthHeaders')));

View File

@@ -1503,8 +1503,13 @@ schema.methods.unlinkTask = async function groupUnlinkTask (
'group.assignedUsers': user._id,
};
delete unlinkingTask.group.assignedUsersDetail[user._id];
unlinkingTask.group.assignedUsers = _.keys(unlinkingTask.group.assignedUsersDetail);
if (unlinkingTask.group.assignedUsersDetail) {
delete unlinkingTask.group.assignedUsersDetail[user._id];
unlinkingTask.group.assignedUsers = _.keys(unlinkingTask.group.assignedUsersDetail);
} else {
// Task was created before assignedUsersDetail was added
removeFromArray(unlinkingTask.group.assignedUsers, user._id);
}
unlinkingTask.markModified('group');
const promises = [unlinkingTask.save()];