From 492824ac900b4ef8fe5a3b3f6b7242476ff638ac Mon Sep 17 00:00:00 2001 From: Rarysson Guilherme Date: Sat, 5 Feb 2022 12:26:17 -0300 Subject: [PATCH 01/17] Add automatic year detection on appFooter --- website/client/src/components/appFooter.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/client/src/components/appFooter.vue b/website/client/src/components/appFooter.vue index ad76bb6d47..be1fd00313 100644 --- a/website/client/src/components/appFooter.vue +++ b/website/client/src/components/appFooter.vue @@ -224,7 +224,7 @@
- © 2021 Habitica. All rights reserved. + © {{ currentYear }} Habitica. All rights reserved.
Date: Tue, 22 Mar 2022 21:02:00 -0400 Subject: [PATCH 02/17] laptop puked, had to reset everything, joy --- habitica-images | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/habitica-images b/habitica-images index 5afe493854..5a79037fca 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 5afe493854d104d9105e627ac6f132885e55f6da +Subproject commit 5a79037fca74f76c9342190b584baeda419c6c47 From d44b2fe785e1a76284277f2f4b33ae5075f96c11 Mon Sep 17 00:00:00 2001 From: Basrara <46606963+Basrara@users.noreply.github.com> Date: Tue, 29 Mar 2022 18:30:16 +0200 Subject: [PATCH 03/17] Minor fixes (#13909) Updated "resetText2", "transaction_rebirth", and "transaction_reroll" to correct capitalization and eliminate a double space. --- website/common/locales/en/settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/common/locales/en/settings.json b/website/common/locales/en/settings.json index 0438d09ce6..e582b2fa7e 100644 --- a/website/common/locales/en/settings.json +++ b/website/common/locales/en/settings.json @@ -56,7 +56,7 @@ "newUsername": "New Username", "dangerZone": "Danger Zone", "resetText1": "WARNING! This resets many parts of your account. This is highly discouraged, but some people find it useful in the beginning after playing with the site for a short time.", - "resetText2": "You will lose all your levels, Gold, and Experience points. All your tasks (except those from challenges) will be deleted permanently and you will lose all of their historical data. You will lose all your equipment except Subscriber Mystery Items and free commemorative items. You will be able to buy the deleted items back, including all limited edition equipment (you will need to be in the correct class to re-buy class-specific gear). You will keep your current class, achievements and your pets and mounts. You might prefer to use an Orb of Rebirth instead, which is a much safer option and which will preserve your tasks and equipment.", + "resetText2": "You will lose all your levels, Gold, and Experience points. All your tasks (except those from challenges) will be deleted permanently and you will lose all of their historical data. You will lose all your equipment except Subscriber Mystery Items and free commemorative items. You will be able to buy the deleted items back, including all limited edition equipment (you will need to be in the correct class to re-buy class-specific gear). You will keep your current class, achievements and your pets and mounts. You might prefer to use an Orb of Rebirth instead, which is a much safer option and which will preserve your tasks and equipment.", "deleteLocalAccountText": "Are you sure? This will delete your account forever, and it can never be restored! You will need to register a new account to use Habitica again. Banked or spent Gems will not be refunded. If you're absolutely certain, type your password into the text box below.", "deleteSocialAccountText": "Are you sure? This will delete your account forever, and it can never be restored! You will need to register a new account to use Habitica again. Banked or spent Gems will not be refunded. If you're absolutely certain, type \"<%= magicWord %>\" into the text box below.", "API": "API", @@ -200,9 +200,9 @@ "transaction_create_challenge": "Created challenge", "transaction_create_guild": "Created guild", "transaction_change_class": "Changed class", - "transaction_rebirth": "Used orb of rebirth", + "transaction_rebirth": "Used Orb of Rebirth", "transaction_release_pets": "Released pets", "transaction_release_mounts": "Released mounts", - "transaction_reroll": "Used fortify potion", + "transaction_reroll": "Used Fortify Potion", "transaction_subscription_perks": "From subscription perk" } From f918b4a68cc589981143273357e8d342fcba0400 Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 29 Mar 2022 19:41:35 +0200 Subject: [PATCH 04/17] Translated using Weblate (Japanese) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (German) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (French) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (French) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (French) Currently translated at 99.9% (2572 of 2573 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (746 of 746 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.2% (130 of 131 strings) Translated using Weblate (German) Currently translated at 100.0% (2573 of 2573 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (Ukrainian) Currently translated at 84.4% (185 of 219 strings) Translated using Weblate (German) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (German) Currently translated at 99.9% (2572 of 2573 strings) Translated using Weblate (Ukrainian) Currently translated at 72.1% (158 of 219 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (365 of 365 strings) Translated using Weblate (Ukrainian) Currently translated at 96.0% (171 of 178 strings) Translated using Weblate (Ukrainian) Currently translated at 84.9% (634 of 746 strings) Translated using Weblate (German) Currently translated at 99.5% (218 of 219 strings) Translated using Weblate (Ukrainian) Currently translated at 79.5% (2048 of 2573 strings) Translated using Weblate (German) Currently translated at 99.6% (2565 of 2573 strings) Translated using Weblate (Ukrainian) Currently translated at 84.9% (634 of 746 strings) Translated using Weblate (Ukrainian) Currently translated at 84.9% (634 of 746 strings) Co-authored-by: Benoit Hetru Co-authored-by: Mara Dolichotis Co-authored-by: Nazar Paruna Co-authored-by: Sciuridae Co-authored-by: Weblate Co-authored-by: mattya 226 Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/front/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/de/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/ Translation: Habitica/Achievements Translation: Habitica/Front Translation: Habitica/Gear Translation: Habitica/Groups Translation: Habitica/Limited Translation: Habitica/Questscontent --- website/common/locales/de/achievements.json | 2 +- website/common/locales/de/gear.json | 16 ++- website/common/locales/de/limited.json | 4 +- website/common/locales/fr/achievements.json | 2 +- website/common/locales/fr/gear.json | 30 ++++- website/common/locales/fr/limited.json | 6 +- website/common/locales/ja/achievements.json | 2 +- website/common/locales/ja/limited.json | 6 +- website/common/locales/ja/questscontent.json | 2 +- website/common/locales/uk/front.json | 2 +- website/common/locales/uk/gear.json | 4 +- website/common/locales/uk/groups.json | 4 +- website/common/locales/uk/limited.json | 110 +++++++++++-------- website/common/locales/uk/questscontent.json | 102 ++++++++--------- website/common/locales/zh/achievements.json | 4 +- 15 files changed, 186 insertions(+), 110 deletions(-) diff --git a/website/common/locales/de/achievements.json b/website/common/locales/de/achievements.json index c62ce0f473..2306ec5b32 100644 --- a/website/common/locales/de/achievements.json +++ b/website/common/locales/de/achievements.json @@ -128,6 +128,6 @@ "achievementZodiacZookeeperText": "Hat alle Tierkreiszeichen-Tiere ausgebrütet: Ratte, Kalb, Kaninchen, Schlange, Fohlen, Schaf, Affe, Hahn, Wolf, Tiger, Fliegendes Ferkel, und Drache!", "achievementZodiacZookeeperModalText": "Du hast alle Tierkreiszeichen-Tiere gesammelt!", "achievementBirdsOfAFeather": "Fliegende Freunde", - "achievementBirdsOfAFeatherText": "Hat alle fliegenden Haustiere ausgebrütet: Fliegendes Ferkel, Eule, Papagei, Pterodactylus, Greif, und Falke.", + "achievementBirdsOfAFeatherText": "Hat alle fliegenden Haustiere ausgebrütet: Fliegendes Ferkel, Eule, Papagei, Pterodactylus, Greif, Falke, Pfau, und Hahn.", "achievementBirdsOfAFeatherModalText": "Du hast alle fliegenden Haustiere gesammelt!" } diff --git a/website/common/locales/de/gear.json b/website/common/locales/de/gear.json index 2dd7c93729..b456e0c9f8 100644 --- a/website/common/locales/de/gear.json +++ b/website/common/locales/de/gear.json @@ -2594,5 +2594,19 @@ "headSpecialSpring2022WarriorText": "Regenmantelkapuze", "headSpecialSpring2022WarriorNotes": "Huch, es sieht nach Regen aus! Steh auf und zieh Dir die Kapuze über, um trocken zu bleiben. Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", "shieldSpecialSpring2022WarriorText": "Regenwolke", - "shieldSpecialSpring2022WarriorNotes": "Kennst Du diese Tage, an denen es sich anfühlt, als würde Dir eine Regenwolke auf Schritt und Tritt folgen? Tja, Du kannst Dich glücklich schätzen, denn schon bald werden die schönsten Blumen zu Deinen Füßen blühen! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Frühlingsausrüstung." + "shieldSpecialSpring2022WarriorNotes": "Kennst Du diese Tage, an denen es sich anfühlt, als würde Dir eine Regenwolke auf Schritt und Tritt folgen? Tja, Du kannst Dich glücklich schätzen, denn schon bald werden die schönsten Blumen zu Deinen Füßen blühen! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "weaponSpecialSpring2022MageText": "Forsythienstab", + "weaponSpecialSpring2022MageNotes": "Diese strahlend gelben Glocken sind bereit, Deine mächtige Frühlingsmagie zu lenken. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "armorSpecialSpring2022MageText": "Forsythienrobe", + "headSpecialSpring2022MageText": "Forsythienhelm", + "headSpecialSpring2022MageNotes": "Mithilfe dieses Helms aus umgedrehten Blüten bleibst Du bei jedem Frühlingsgewitter trocken. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "armorSpecialSpring2022MageNotes": "Diese mit Forsythienblüten geschmückte Robe zeigt allen, dass Du bereit bist, flink und federleicht in den Frühling zu fliegen. Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "weaponSpecialSpring2022HealerText": "Abendsmaragd-Zauberstab", + "weaponSpecialSpring2022HealerNotes": "Benutze diesen Zauberstab, um die Heilkräfte des Abendsmaragds zu entfalten – mögen sie Dir Ruhe, Zufriedenheit und Güte bringen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "armorSpecialSpring2022HealerText": "Abendsmaragd-Rüstung", + "armorSpecialSpring2022HealerNotes": " Vertreibe Angst und Alpträume mit diesem grünen Edelstein-Gewand. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "headSpecialSpring2022HealerText": "Abendsmaragd-Helm", + "headSpecialSpring2022HealerNotes": "Dieser geheimnisvolle Helm bewahrt Deine Privatsphäre während Du diverse Aufgaben anpackst. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2022 Frühlingsausrüstung.", + "shieldSpecialSpring2022HealerText": "Abendsmaragd-Schild", + "shieldSpecialSpring2022HealerNotes": "Aus geschmolzenem Stein aus der Erdkruste geformt, kann dieses Schild jedem noch so harten Schlag widerstehen, der ihm in den Weg kommt. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2022 Frühlingsausrüstung." } diff --git a/website/common/locales/de/limited.json b/website/common/locales/de/limited.json index 62e35c62c5..6aefebf108 100644 --- a/website/common/locales/de/limited.json +++ b/website/common/locales/de/limited.json @@ -218,5 +218,7 @@ "winter2022PomegranateMageSet": "Granatapfel (Magier)", "januaryYYYY": "Januar <%= year %>", "spring2022MagpieRogueSet": "Elster (Schurke)", - "spring2022RainstormWarriorSet": "Gewitterregen (Krieger)" + "spring2022RainstormWarriorSet": "Gewitterregen (Krieger)", + "spring2022ForsythiaMageSet": "Forsythie (Magier)", + "spring2022PeridotHealerSet": "Abendsmaragd (Heiler)" } diff --git a/website/common/locales/fr/achievements.json b/website/common/locales/fr/achievements.json index 1b6dce4f1e..2f6805afee 100644 --- a/website/common/locales/fr/achievements.json +++ b/website/common/locales/fr/achievements.json @@ -1,7 +1,7 @@ { "achievement": "Succès", "onwards": "En avant !", - "levelup": "Pour avoir accompli vos objectifs dans la vraie vie, vous avez gagné un niveau et vous vous retrouvez complètement guéri !", + "levelup": "Pour avoir accompli vos objectifs dans la vraie vie, vous avez gagné un niveau et vous vous êtes complètement rétabli !", "reachedLevel": "Vous avez atteint le niveau <%= level %>", "achievementLostMasterclasser": "Achèvement de quêtes : série de la maîtresse des classes", "achievementLostMasterclasserText": "A achevé les 16 quêtes de la série de quêtes de la maîtresse des classes, et a résolu le mystère de la maîtresse des classes oubliée !", diff --git a/website/common/locales/fr/gear.json b/website/common/locales/fr/gear.json index 985997e583..088da1a673 100644 --- a/website/common/locales/fr/gear.json +++ b/website/common/locales/fr/gear.json @@ -2580,5 +2580,33 @@ "shieldArmoireGardenersSpadeNotes": "Que vous creusiez dans le jardin, cherchant un trésor enfoui, ou fabriquant un tunnel secret, cette bêche fiable est à vos côtés. Augmente la force de <%= str %>. Armoire enchantée : ensemble de jardinage (objet 3 de 4).", "headAccessoryMystery202203Text": "Diadème de libellule intrépide", "backMystery202203Text": "Ailes de libellule intrépide", - "backMystery202203Notes": "Volez plus vite que toutes les autres créatures du ciel avec ces ailes scintillantes. Ne confère aucun bonus. Équipement d'abonnement de mars 2022." + "backMystery202203Notes": "Volez plus vite que toutes les autres créatures du ciel avec ces ailes scintillantes. Ne confère aucun bonus. Équipement d'abonnement de mars 2022.", + "weaponSpecialSpring2022WarriorText": "Parapluie retourné", + "weaponSpecialSpring2022WarriorNotes": "Oups ! On dirait que ce vent était un peu plus fort que vous l'auriez cru ! Augmente la force de <%= str %>. Équipement en édition limitée du printemps 2022.", + "weaponSpecialSpring2022MageText": "Bâton de forsythia", + "weaponSpecialSpring2022HealerText": "Baguette de péridot", + "armorSpecialSpring2022WarriorText": "Imperméable", + "armorSpecialSpring2022WarriorNotes": "Cet imperméable avec ses bottes est tellement formidable que vous pourriez chanter sous la pluie ou sauter dans toutes les flaques en restant au chaud et au sec ! Augmente la constitution de <%= con %>. Équipement en édition limitée du printemps 2022.", + "armorSpecialSpring2022MageText": "Robe forsythia", + "armorSpecialSpring2022HealerText": "Armure de péridot", + "headSpecialSpring2022RogueText": "Masque de pie", + "headSpecialSpring2022WarriorText": "Capuche d'imperméable", + "headSpecialSpring2022WarriorNotes": "Ouhla, on dirait qu'il pleut. Gardez le dos droit et rabaissez votre capuche pour rester au sec. Augmente la force de <%= str %>. Équipement en édition limitée du printemps 2022.", + "headSpecialSpring2022MageText": "Casque forsythia", + "headSpecialSpring2022HealerText": "Casque de péridot", + "headSpecialSpring2022HealerNotes": "Ce casque mystérieux préserve votre vie privée pendant que vous attaquez vos tâches. Augmente l'intelligence de <%= int %>. Équipement en édition limitée du printemps 2022.", + "shieldSpecialSpring2022HealerText": "Bouclier de péridot", + "shieldSpecialSpring2022HealerNotes": "Fabriqué à partir de pierre liquéfiée dans le manteau supérieur, ce bouclier peut supporter n'importe quel coup qu'il rencontre. Augmente la constitution de <%= con %>. Équipement en édition limitée du printemps 2022.", + "weaponSpecialSpring2022RogueText": "Clou d'oreille géant", + "weaponSpecialSpring2022RogueNotes": "Qu'il est brillant ! Il est si brillant et luisant et joli et agréable et tout à vous ! Augmente la force de <%= str %>. Équipement en édition limitée du printemps 2022.", + "weaponSpecialSpring2022MageNotes": "Ces cloches jaune vif sont prêtes à canaliser votre puissante magie printanière. Augmente l'intelligence de <%= int %> et la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", + "weaponSpecialSpring2022HealerNotes": "Utilisez cette baguette pour profiter des propriétés régénérantes du péridot, que ce soit pour apporter du calme, de la positivité ou de la gaieté de cœur. Augmente l'intelligence de <%= int %>. Équipement en édition limitée du printemps 2022.", + "armorSpecialSpring2022RogueNotes": "Avec des taches iridescentes bleu-gris métallique et des taches plus claires sur vos plumes, vous serez le meilleur ami volant à la fête du printemps ! Augmente la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", + "armorSpecialSpring2022MageNotes": "Montrez que vous vous apprêtez à sauter dans cette nouvelle saison avec cette robe ornée de pétales de forsythia. Augmente l'intelligence de <%= int %>. Équipement en édition limitée du printemps 2022.", + "armorSpecialSpring2022HealerNotes": " Faites fuir les peurs et les cauchemars en portant ces vêtement de gemme verte. Augmente la constitution de <%= con %>. Équipement en édition limitée du printemps 2022.", + "armorSpecialSpring2022RogueText": "Costume de pie", + "headSpecialSpring2022RogueNotes": "Faites preuve d'autant d'intelligence qu'une pie en portant ce masque. Peut-être serez vous également capable de siffler, de triller et d'imitée comme l'une d'elles, aussi. Augmente la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", + "headSpecialSpring2022MageNotes": "Restez au sec pendant les pluies diluviennes avec ce casque protecteur avec des rebords à pétales. Augmente la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", + "shieldSpecialSpring2022WarriorNotes": "Vous avez déjà eu l'impression qu'un nuage pluvieux vous suivait où que vous alliez ? Réjouissez-vous, parce que bientôt les plus jolies fleurs pousseront à vos pieds ! Augmente la constitution de <%= con %>. Équipement en édition limitée du printemps 2022.", + "shieldSpecialSpring2022WarriorText": "Nuage pluvieux" } diff --git a/website/common/locales/fr/limited.json b/website/common/locales/fr/limited.json index f12ef88705..fda4108623 100644 --- a/website/common/locales/fr/limited.json +++ b/website/common/locales/fr/limited.json @@ -216,5 +216,9 @@ "winter2022StockingWarriorSet": "Chaussette (Guerrier)", "winter2022PomegranateMageSet": "Grenade (Mage)", "winter2022IceCrystalHealerSet": "Cristal de glace (Guérisseur)", - "januaryYYYY": "Janvier <%= year %>" + "januaryYYYY": "Janvier <%= year %>", + "spring2022MagpieRogueSet": "Pie (Voleur)", + "spring2022RainstormWarriorSet": "Flot diluvien (Guerrier)", + "spring2022ForsythiaMageSet": "Forsythia (Mage)", + "spring2022PeridotHealerSet": "Péridot (Guérisseur)" } diff --git a/website/common/locales/ja/achievements.json b/website/common/locales/ja/achievements.json index dbd5328ab6..9822dc4945 100644 --- a/website/common/locales/ja/achievements.json +++ b/website/common/locales/ja/achievements.json @@ -128,6 +128,6 @@ "achievementZodiacZookeeperModalText": "十二支のペットをすべて集めました!", "achievementZodiacZookeeperText": "ネズミ、牛、トラ、ウサギ、ドラゴン、ヘビ、馬、羊、さる、雄鶏、狼、空飛ぶ豚のペットをすべて集めました!", "achievementBirdsOfAFeather": "同じ羽の鳥は群れを作る", - "achievementBirdsOfAFeatherText": "空飛ぶペット(空飛ぶ豚、フクロウ、オウム、翼竜、フリフォン、たか)をすべて集めました。", + "achievementBirdsOfAFeatherText": "空飛ぶペット(空飛ぶ豚、フクロウ、オウム、翼竜、フリフォン、たか、クジャク、おんどり)をすべて集めました。", "achievementBirdsOfAFeatherModalText": "空飛ぶペットをすべて集めました!" } diff --git a/website/common/locales/ja/limited.json b/website/common/locales/ja/limited.json index eaf20b8e78..f7e2f20a98 100644 --- a/website/common/locales/ja/limited.json +++ b/website/common/locales/ja/limited.json @@ -216,5 +216,9 @@ "winter2022FireworksRogueSet": "花火(盗賊)", "winter2022PomegranateMageSet": "ザクロ(魔道士)", "winter2022IceCrystalHealerSet": "氷の結晶(治療師)", - "januaryYYYY": "<%= year %>年1月" + "januaryYYYY": "<%= year %>年1月", + "spring2022RainstormWarriorSet": "どしゃぶり(戦士)", + "spring2022ForsythiaMageSet": "レンギョウ(魔道士)", + "spring2022PeridotHealerSet": "ペリドット(治療師)", + "spring2022MagpieRogueSet": "カササギ(盗賊)" } diff --git a/website/common/locales/ja/questscontent.json b/website/common/locales/ja/questscontent.json index 19b362e31f..719e9eaa9d 100644 --- a/website/common/locales/ja/questscontent.json +++ b/website/common/locales/ja/questscontent.json @@ -602,7 +602,7 @@ "questSquirrelDropSquirrelEgg": "リス ( たまご )", "questSquirrelUnlockText": "市場でリスのたまごを買えるようになります", "cuddleBuddiesText": "「抱っこ仲間」クエストセット", - "cuddleBuddiesNotes": "「殺し屋ウサギ」「ふとどきなフェレット」「モルモットギャング団」のセット。5月31日まで購入できます。", + "cuddleBuddiesNotes": "「殺し屋ウサギ」「ふとどきなフェレット」「モルモットギャング団」のセット。3月31日まで購入できます。", "aquaticAmigosText": "「水棲のトモダチ」クエストセット", "aquaticAmigosNotes": "「魔のウーパールーパー」「ミスミの大イカ」「オクトゥルフの呼び声」のセット。8月31日まで購入できます。", "questSeaSerpentText": "深淵における危険:シーサーペント・ストライク!", diff --git a/website/common/locales/uk/front.json b/website/common/locales/uk/front.json index 072c89f91a..b60a16874d 100644 --- a/website/common/locales/uk/front.json +++ b/website/common/locales/uk/front.json @@ -1,6 +1,6 @@ { "FAQ": "ЧаПи", - "termsAndAgreement": "", + "termsAndAgreement": "Натискаючи кнопку нижче, Ви підтверджуєте, що прочитали та погоджуєтеся з Умовами використання та Політикою конфіденційності.", "accept1Terms": "Натискаючи кнопку внизу, я приймаю", "accept2Terms": "та", "chores": "Робота по дому", diff --git a/website/common/locales/uk/gear.json b/website/common/locales/uk/gear.json index 702edec517..56f2957aac 100644 --- a/website/common/locales/uk/gear.json +++ b/website/common/locales/uk/gear.json @@ -422,8 +422,8 @@ "armorSpecial0Notes": "Screams when struck, for it feels pain in its wearer's place. Increases Constitution by <%= con %>.", "armorSpecial1Text": "Кришталева броня", "armorSpecial1Notes": "Its tireless power inures the wearer to mundane discomfort. Increases all Stats by <%= attrs %>.", - "armorSpecial2Text": "Благородна туніка Жана Халарда", - "armorSpecial2Notes": "Makes you extra fluffy! Increases Constitution and Intelligence by <%= attrs %> each.", + "armorSpecial2Text": "Благородна туніка Джона Чаларда", + "armorSpecial2Notes": "Робить Вас особливо пухнастим! Збільшує витривалість та інтелект на <%= attrs %> кожен.", "armorSpecialTakeThisText": "Take This Armor", "armorSpecialTakeThisNotes": "This armor was earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all Stats by <%= attrs %>.", "armorSpecialFinnedOceanicArmorText": "Finned Oceanic Armor", diff --git a/website/common/locales/uk/groups.json b/website/common/locales/uk/groups.json index 93e4cc5b0d..72c20646fd 100644 --- a/website/common/locales/uk/groups.json +++ b/website/common/locales/uk/groups.json @@ -254,7 +254,7 @@ "privateGuild": "Закрита ґільдія", "charactersRemaining": "Залишилось <%= characters %> символів", "guildSummary": "Про ґільдію", - "guildSummaryPlaceholder": "Напишіть короткий опис, який рекламує вашу ґільдію іншим габітіканцям. Яка головна мета вашої ґільдії і чому люди повинні до неї приєднатись? Спробуйте включити корисні ключові слова до резюме, щоб габітіканці могли легко знайти його під час пошуку!", + "guildSummaryPlaceholder": "Напишіть короткий опис, який рекламує вашу ґільдію іншим габітиканцям. Яка головна мета вашої ґільдії і чому люди повинні до неї приєднатись? Спробуйте включити корисні ключові слова до резюме, щоб габітиканці могли легко знайти його під час пошуку!", "groupDescription": "Опис", "guildDescriptionPlaceholder": "Використовуйте цей розділ, щоб докладніше описати все, що члени ґільдії повинні знати про неї. Корисні поради, посилання та підбадьорливі твердження – все це тут!", "markdownFormattingHelp": "[Шпаргалка з форматування](https://habitica.fandom.com/wiki/Markdown_Cheat_Sheet)", @@ -302,7 +302,7 @@ "worldBossDesc": "Світовий бос — це особлива подія, яка об’єднує спільноту Habitica, щоб знищити могутнього монстра за допомогою завдань! Усі користувачі Habitica отримують винагороду після поразки боса, навіть ті, хто відпочивав в готелі або не використовував Habitica протягом усього квесту.", "worldBossLink": "Дізнайтеся більше про попередніх світових босів Habitica на Вікі.", "worldBossBullet1": "Виконайте завдання, щоб завдати пошкодження світовому босу", - "worldBossBullet2": "Світовий бос не зашкодить Вам за пропущені щоденки, але його показник люті підвищиться. Якщо шкала заповниться, Бос нападе на одного з крамарів Габітіки!", + "worldBossBullet2": "Світовий бос не зашкодить Вам за пропущені щоденки, але його показник люті підвищиться. Якщо шкала заповниться, Бос нападе на одного з крамарів Габітики!", "worldBossBullet3": "Ви можете продовжити боротьбу зі звичайними квестовими босами, пошкодження будуть завдані обом", "worldBossBullet4": "Регулярно перевіряйте таверну, щоб побачити прогрес у боротьбі зі світовим босом та шкалу його люті", "worldBoss": "Світовий бос", diff --git a/website/common/locales/uk/limited.json b/website/common/locales/uk/limited.json index ab8f2f831e..2200b86c5c 100644 --- a/website/common/locales/uk/limited.json +++ b/website/common/locales/uk/limited.json @@ -1,17 +1,17 @@ { "annoyingFriends": "Набридливі друзі", - "annoyingFriendsText": "Got snowballed <%= count %> times by party members.", + "annoyingFriendsText": "У Вас прилетіло <%= count %> сніжок від членів команди.", "alarmingFriends": "Лякаючi друзi", - "alarmingFriendsText": "Got spooked <%= count %> times by party members.", + "alarmingFriendsText": "Вас налякали <%= count %> рази інші члени команди.", "agriculturalFriends": "Друзі-Садівники", "agriculturalFriendsText": "Перетворені в квітку <%= count %> разів учасниками команди.", - "aquaticFriends": "Aquatic Friends", + "aquaticFriends": "Водяні друзі", "aquaticFriendsText": "Облиті водою <%= count %> разів учасниками команди.", "valentineCard": "Валентинка", "valentineCardExplanation": "For enduring such a saccharine poem, you both receive the \"Adoring Friends\" badge!", "valentineCardNotes": "Відправити Валентинку члену гурту.", "valentine0": "\"Roses are red\n\nMy Dailies are blue\n\nI'm happy that I'm\n\nIn a Party with you!\"", - "valentine1": "\"Roses are red\n\nViolets are nice\n\nLet's get together\n\nAnd fight against Vice!\"", + "valentine1": "\"Як умре, то поховайте\n\nВайса на могилі\n\nСеред степу широкого\n\nВ Габітиці милій!\"", "valentine2": "\"Roses are red\n\nThis poem style is old\n\nI hope that you like this\n\n'Cause it cost ten Gold.\"", "valentine3": "\"Roses are red\n\nIce Drakes are blue\n\nNo treasure is better\n\nThan time spent with you!\"", "valentineCardAchievementTitle": "Adoring Friends", @@ -29,8 +29,8 @@ "seasonalShopClosedText": "Сезонна крамниця не працює! Вона відкрита лише під час чотирьох Великих свят Habitica.", "seasonalShopSummerText": "Веселого літнього сплеску!! Чи хотіли б ви придбати деякі рідкісні речі? Обов’язково отримайте їх до закінчення Гали!", "seasonalShopFallText": "Зі святом осені!! Чи хотіли б ви придбати деякі рідкісні речі? Обов’язково отримайте їх до закінчення Гали!", - "seasonalShopWinterText": "Happy Winter Wonderland!! Would you like to buy some rare items? They’ll only be available until January 31st!", - "seasonalShopSpringText": "Happy Spring Fling!! Would you like to buy some rare items? They’ll only be available until April 30th!", + "seasonalShopWinterText": "Веселих зимових свят! Бажаєте придбати рідкісні речі? Поспішіть придбати їх до закінчення свята!", + "seasonalShopSpringText": "Щасливої весни! Бажаєте придбати рідкісні речі? Не забудьте придбати їх до закінчення свят!", "seasonalShopFallTextBroken": "Oh.... Welcome to the Seasonal Shop... We're stocking autumn Seasonal Edition goodies, or something... Everything here will be available to purchase during the Fall Festival event each year, but we're only open until October 31... I guess you should to stock up now, or you'll have to wait... and wait... and wait... *sigh*", "seasonalShopBrokenText": "My pavilion!!!!!!! My decorations!!!! Oh, the Dysheartener's destroyed everything :( Please help defeat it in the Tavern so I can rebuild!", "seasonalShopRebirth": "If you bought any of this equipment in the past but don't currently own it, you can repurchase it in the Rewards Column. Initially, you'll only be able to purchase the items for your current class (Warrior by default), but fear not, the other class-specific items will become available if you switch to that class.", @@ -41,11 +41,11 @@ "northMageSet": "Mage of the North (Mage)", "icicleDrakeSet": "Icicle Drake (Rogue)", "soothingSkaterSet": "Soothing Skater (Healer)", - "gingerbreadSet": "Gingerbread Warrior (Warrior)", - "snowDaySet": "Snow Day Warrior (Warrior)", + "gingerbreadSet": "Пряник (воїн)", + "snowDaySet": "Сніговий день (воїн)", "snowboardingSet": "Snowboarding Sorcerer (Mage)", "festiveFairySet": "Festive Fairy (Healer)", - "cocoaSet": "Cocoa Rogue (Rogue)", + "cocoaSet": "Какао (розбійник)", "toAndFromCard": "To: <%= toName %>, From: <%= fromName %>", "nyeCard": "Новорічна листівка", "nyeCardExplanation": "For celebrating the new year together, you both receive the \"Auld Acquaintance\" badge!", @@ -74,52 +74,52 @@ "magicianBunnySet": "Magician's Bunny (Mage)", "comfortingKittySet": "Comforting Kitty (Healer)", "sneakySqueakerSet": "Sneaky Squeaker (Rogue)", - "sunfishWarriorSet": "Sunfish Warrior (Warrior)", + "sunfishWarriorSet": "Риба-місяць (воїн)", "shipSoothsayerSet": "Ship Soothsayer (Mage)", "strappingSailorSet": "Strapping Sailor (Healer)", "reefRenegadeSet": "Reef Renegade (Rogue)", - "scarecrowWarriorSet": "Scarecrow Warrior (Warrior)", + "scarecrowWarriorSet": "Опудало (воїн)", "stitchWitchSet": "Stitch Witch (Mage)", "potionerSet": "Potioner (Healer)", - "battleRogueSet": "Bat-tle Rogue (Rogue)", + "battleRogueSet": "Мишехвіст (розбійник)", "springingBunnySet": "Springing Bunny (Healer)", "grandMalkinSet": "Grand Malkin (Mage)", "cleverDogSet": "Clever Dog (Rogue)", "braveMouseSet": "Brave Mouse (Warrior)", - "summer2016SharkWarriorSet": "Shark Warrior (Warrior)", - "summer2016DolphinMageSet": "Dolphin Mage (Mage)", - "summer2016SeahorseHealerSet": "Seahorse Healer (Healer)", - "summer2016EelSet": "Eel Rogue (Rogue)", + "summer2016SharkWarriorSet": "Акула (воїн)", + "summer2016DolphinMageSet": "Дельфін (маг)", + "summer2016SeahorseHealerSet": "Морський коник (цілитель)", + "summer2016EelSet": "Вугор (розбійник)", "fall2016SwampThingSet": "Swamp Thing (Warrior)", "fall2016WickedSorcererSet": "Wicked Sorcerer (Mage)", - "fall2016GorgonHealerSet": "Gorgon Healer (Healer)", - "fall2016BlackWidowSet": "Black Widow Rogue (Rogue)", + "fall2016GorgonHealerSet": "Горгона (цілитель)", + "fall2016BlackWidowSet": "Чорна вдова (розбійник)", "winter2017IceHockeySet": "Ice Hockey (Warrior)", "winter2017WinterWolfSet": "Winter Wolf (Mage)", - "winter2017SugarPlumSet": "Sugar Plum Healer (Healer)", - "winter2017FrostyRogueSet": "Frosty Rogue (Rogue)", - "spring2017FelineWarriorSet": "Feline Warrior (Warrior)", + "winter2017SugarPlumSet": "Цукрова слива (цілитель)", + "winter2017FrostyRogueSet": "Мороз (розбійник)", + "spring2017FelineWarriorSet": "Кіт (воїн)", "spring2017CanineConjurorSet": "Canine Conjuror (Mage)", "spring2017FloralMouseSet": "Floral Mouse (Healer)", "spring2017SneakyBunnySet": "Sneaky Bunny (Rogue)", - "summer2017SandcastleWarriorSet": "Sandcastle Warrior (Warrior)", - "summer2017WhirlpoolMageSet": "Whirlpool Mage (Mage)", + "summer2017SandcastleWarriorSet": "Піщаний замок (воїн)", + "summer2017WhirlpoolMageSet": "Водоверть (маг)", "summer2017SeashellSeahealerSet": "Seashell Seahealer (Healer)", "summer2017SeaDragonSet": "Sea Dragon (Rogue)", - "fall2017HabitoweenSet": "Habitoween Warrior (Warrior)", - "fall2017MasqueradeSet": "Masquerade Mage (Mage)", - "fall2017HauntedHouseSet": "Haunted House Healer (Healer)", - "fall2017TrickOrTreatSet": "Trick or Treat Rogue (Rogue)", - "winter2018ConfettiSet": "Confetti Mage (Mage)", - "winter2018GiftWrappedSet": "Gift-Wrapped Warrior (Warrior)", - "winter2018MistletoeSet": "Mistletoe Healer (Healer)", - "winter2018ReindeerSet": "Reindeer Rogue (Rogue)", - "spring2018SunriseWarriorSet": "Sunrise Warrior (Warrior)", - "spring2018TulipMageSet": "Tulip Mage (Mage)", - "spring2018GarnetHealerSet": "Garnet Healer (Healer)", - "spring2018DucklingRogueSet": "Duckling Rogue (Rogue)", - "summer2018BettaFishWarriorSet": "Betta Fish Warrior (Warrior)", - "summer2018LionfishMageSet": "Lionfish Mage (Mage)", + "fall2017HabitoweenSet": "Габітовін (воїн)", + "fall2017MasqueradeSet": "Маскарад (маг)", + "fall2017HauntedHouseSet": "Будинок з привидами (цілитель)", + "fall2017TrickOrTreatSet": "Цукерки або смерть (розбійник)", + "winter2018ConfettiSet": "Конфеті (маг)", + "winter2018GiftWrappedSet": "Запакований у подарунок (воїн)", + "winter2018MistletoeSet": "Омела (цілитель)", + "winter2018ReindeerSet": "Північний олень (розбійник)", + "spring2018SunriseWarriorSet": "Схід сонця (воїн)", + "spring2018TulipMageSet": "Тюльпан (маг)", + "spring2018GarnetHealerSet": "Гранат (цілитель)", + "spring2018DucklingRogueSet": "Каченя (розбійник)", + "summer2018BettaFishWarriorSet": "Бійцівська сіамська рибка (воїн)", + "summer2018LionfishMageSet": "Крилатка (маг)", "summer2018MerfolkMonarchSet": "Merfolk Monarch (Healer)", "summer2018FisherRogueSet": "Fisher-Rogue (Rogue)", "fall2018MinotaurWarriorSet": "Minotaur (Warrior)", @@ -139,16 +139,16 @@ "dateEndAugust": "August 31", "dateEndSeptember": "September 21", "dateEndOctober": "October 31", - "dateEndNovember": "December 3", + "dateEndNovember": "30 листопада", "dateEndJanuary": "January 31", - "dateEndFebruary": "February 28", - "winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!", - "winterPromoGiftDetails1": "Until January 15th only, when you gift somebody a subscription, you get the same subscription for yourself for free!", + "dateEndFebruary": "28 лютого", + "winterPromoGiftHeader": "ПОДАРУЙТЕ ПІДПИСКУ ТА ОТРИМАЙТЕ ЩЕ ОДНУ БЕЗКОШТОВНО!", + "winterPromoGiftDetails1": "Тільки до 6 січня, коли Ви подаруєте комусь підписку, Ви отримуєте таку ж підписку для себе безкоштовно!", "winterPromoGiftDetails2": "Please note that if you or your gift recipient already have a recurring subscription, the gifted subscription will only start after that subscription is cancelled or has expired. Thanks so much for your support! <3", "discountBundle": "bundle", "g1g1Announcement": "Акція \"Подаруй підписку - отримай підписку\" діє прямо зараз!", - "g1g1Details": "Gift a sub to a friend from their profile and you’ll receive the same sub for free!", - "g1g1Limitations": "Це обмежена подія, яка розпочнеться 17 грудня о 8:00 за європейським часом (13:00 UTC) і завершиться 7 січня о 20:00 за європейським часом (1:00 UTC). Ця акція застосовується лише тоді, коли ви даруєте іншому жителю Habitica. Якщо ви або ваш одержувач подарунка вже маєте підписку, подарована підписка додасть місяці кредиту, який буде використаний лише після скасування або закінчення терміну дії поточної підписки.", + "g1g1Details": "Подаруйте підписку другу, і Ви отримаєте таку ж підписку безкоштовно!", + "g1g1Limitations": "Це обмежена подія, яка розпочнеться 6 грудня о 8:00 за європейським часом (13:00 UTC) і завершиться 6 січня о 20:00 за європейським часом (1:00 UTC). Ця акція застосовується лише тоді, коли Ви даруєте іншому жителю Habitica. Якщо Ви або Ваш одержувач подарунка вже маєте підписку, подарована підписка додасть місяці кредиту, який буде використаний лише після скасування або закінчення терміну дії поточної підписки.", "limitations": "Обмеження", "g1g1HowItWorks": "Введіть ім’я користувача облікового запису, якому ви хочете подарувати. Звідти виберіть додаткову довжину, яку ви хочете подарувати, і відмітьте. Ваш рахунок автоматично буде винагороджений тим самим рівнем передплати, який ви щойно подарували.", "howItWorks": "Як це робиться", @@ -195,5 +195,27 @@ "spring2019AmberMageSet": "Бурштин (Маг)", "spring2019OrchidWarriorSet": "Орхідея (Воїн)", "royalPurpleJackolantern": "Королівський пурпуровий нічник Джека", - "summer2020OarfishMageSet": "Рибний король (Маг)" + "summer2020OarfishMageSet": "Рибний король (Маг)", + "summer2021FlyingFishWarriorSet": "Летюча риба (воїн)", + "spring2021SunstoneWarriorSet": "Янтар (воїн)", + "spring2021TwinFlowerRogueSet": "Квітка-близнюк (розбійник)", + "summer2021NautilusMageSet": "Наутилус (маг)", + "spring2022MagpieRogueSet": "Сорока (розбійник)", + "spring2022ForsythiaMageSet": "Форзиція (маг)", + "spring2022PeridotHealerSet": "Перидот (цілитель)", + "noLongerAvailable": "Цей товар більше не доступний.", + "spring2021SwanMageSet": "Лебідь (маг)", + "summer2021ParrotHealerSet": "Папуга (цілитель)", + "summer2021ClownfishRogueSet": "Риба-клоун (розбійник)", + "spring2022RainstormWarriorSet": "Дощ з вітром (воїн)", + "spring2021WillowHealerSet": "Верба (цілитель)", + "fall2021OozeRogueSet": "Слиз (розбійник)", + "fall2021HeadlessWarriorSet": "Безголовий (воїн)", + "fall2021BrainEaterMageSet": "Пожиратель мізків (маг)", + "fall2021FlameSummonerHealerSet": "Заклинач полум'я (цілитель)", + "winter2022FireworksRogueSet": "Феєрверк (розбійник)", + "winter2022StockingWarriorSet": "Панчоха (воїн)", + "winter2022PomegranateMageSet": "Гранат (маг)", + "winter2022IceCrystalHealerSet": "Крижаний кристал (цілитель)", + "januaryYYYY": "Січень <%= year %>" } diff --git a/website/common/locales/uk/questscontent.json b/website/common/locales/uk/questscontent.json index fb65c24346..480762c505 100644 --- a/website/common/locales/uk/questscontent.json +++ b/website/common/locales/uk/questscontent.json @@ -23,7 +23,7 @@ "questHedgehogDropHedgehogEgg": "Їжак (яйце)", "questHedgehogUnlockText": "Розблоковує яйця їжака для придбання на ринку", "questGhostStagText": "Дух весни", - "questGhostStagNotes": "Ahh, Spring. The time of year when color once again begins to fill the landscape. Gone are the cold, snowy mounds of winter. Where frost once stood, vibrant plant life takes its place. Luscious green leaves fill in the trees, grass returns to its former vivid hue, a rainbow of flowers rise along the plains, and a white mystical fog covers the land! ... Wait. Mystical fog? \"Oh no,\" InspectorCaracal says apprehensively, \"It would appear that some kind of spirit is the cause of this fog. Oh, and it is charging right at you.\"", + "questGhostStagNotes": "(глибокий вдих) Ах, весна. Пора року, коли колір знову починає наповнювати ландшафт. Зникли холодні засніжені горби зими. Там, де колись стояв мороз, місце займає яскраве життя рослин. Соковито зелене листя заливає дерева, трава повертається до колишнього яскравого відтінку, веселка квітів здіймається вздовж рівнини, а білий містичний туман вкриває землю! ... Зачекайте. Містичний туман? «Ні, — з побоюванням каже InspectorCaracal, — здається, що причиною цього туману є якийсь дух. О, ні. Він мчить прямо на Вас».", "questGhostStagCompletion": "Дух, здається, був здоровий, потім він почав принюхуватися до землі. Спокійний голос огортає Ваш гурт. „Даруйте за мою неґречність. Я тільки-но прокинувся від свого сну, і ще не всі клепки повернулись на свої місця. Будь ласка, візьміть це на знак мого вибачення.“ Купка яєць з'являється на траві перед духом. Без жодного слова дух утікає далі до лісу, а у місцях, де він пробігає, оживають квіти.", "questGhostStagBoss": "Олень-Привид", "questGhostStagDropDeerEgg": "Олень (яйце)", @@ -58,66 +58,66 @@ "questSpiderBoss": "Павук", "questSpiderDropSpiderEgg": "Павук (Яйце)", "questSpiderUnlockText": "Розблоковує купівлю павука в яйці на ринку", - "questGroupVice": "Вайс - Змій Тіней", - "questVice1Text": "Недолік, Частина 1: Звільніть себе від впливу Дракона", - "questVice1Notes": "

They say there lies a terrible evil in the caverns of Mt. Habitica. A monster whose presence twists the wills of the strong heroes of the land, turning them towards bad habits and laziness! The beast is a grand dragon of immense power and comprised of the shadows themselves: Vice, the treacherous Shadow Wyrm. Brave Habiteers, stand up and defeat this foul beast once and for all, but only if you believe you can stand against its immense power.

Vice Part 1:

How can you expect to fight the beast if it already has control over you? Don't fall victim to laziness and vice! Work hard to fight against the dragon's dark influence and dispel his hold on you!

", - "questVice1Boss": "Тінь Недоліка", - "questVice1Completion": "With Vice's influence over you dispelled, you feel a surge of strength you didn't know you had return to you. Congratulations! But a more frightening foe awaits...", - "questVice1DropVice2Quest": "Недолік, Частина 2 (сувій)", - "questVice2Text": "Недолік, Частина 2: Знайди берлогу Змія", - "questVice2Notes": "Confident in yourselves and your ability to withstand the influence of Vice the Shadow Wyrm, your Party makes its way to Mt. Habitica. You approach the entrance to the mountain's caverns and pause. Swells of shadows, almost like fog, wisp out from the opening. It is near impossible to see anything in front of you. The light from your lanterns seem to end abruptly where the shadows begin. It is said that only magical light can pierce the dragon's infernal haze. If you can find enough light crystals, you could make your way to the dragon.", + "questGroupVice": "Вайс - Звір із тіней", + "questVice1Text": "Вайс (частина 1): Звільніться від впливу дракона", + "questVice1Notes": "

Кажуть, що в печерах гори Габітика сховане жахливе зло. Чудовисько, присутність якого ламає волю сильних героїв цієї землі, навертаючи їх у бік шкідливих звичок та лінощів! Звір — це великий дракон неймовірної сили, що складається з самих тіней: Вайс, підступний звір тіней. Відважні мешканці, встаньте і переможете цього мерзенного звіра раз і назавжди, але тільки якщо ви вірите, що зможете протистояти його величезній силі.

Вайс (частина 1)

Як Ви можете розраховувати на боротьбу зі звіром, якщо він уже контролює Вас? Не ставайте жертвою ліні та пороку! Працюйте наполегливо, щоб боротися з темним впливом дракона і розвіяти його владу над вами!

", + "questVice1Boss": "Тінь Вайса", + "questVice1Completion": "Коли вплив Вайс на Вас розвіявся, Ви відчуваєте прилив сил, про які Ви і не знали. Вітаю! Але на Вас чекає більш страшний ворог...", + "questVice1DropVice2Quest": "Вайс (частина 2 )(сувій)", + "questVice2Text": "Вайс (частина 2): Знайди лігво звіра", + "questVice2Notes": "Впевнені в собі та своїй здатності протистояти впливу Вайса - звіра з тіней, ваша команда пробивається на гору Габітика. Підходите до входу в гірські печери і зупиняєтеся. Тіні, майже як туман, розходяться з отвору печери. Бачити щось перед собою в такій темряві майже неможливо. Здається, що світло від ваших ліхтарів закінчується там, де починаються тіні. Кажуть, що тільки чарівне світло може пробити пекельний серпанок дракона. Якщо Вам вдасться знайти достатньо світлих кристалів, Ви зможете пробратися до дракона.", "questVice2CollectLightCrystal": "Світлові кристали", - "questVice2Completion": "As you lift the final crystal aloft, the shadows are dispelled, and your path forward is clear. With a quickening heart, you step forward into the cavern.", - "questVice2DropVice3Quest": "Недолік, Частина 3 (сувій)", - "questVice3Text": "Vice, Part 3: Vice Awakens", - "questVice3Notes": "Після значних зусиль Ваш гурт знайшов лігво Недоліка. Масивний монстр із несмаком розглядає Ваш гурт. У Вашій голові з’являється тихий голос, коли довкола кружляють тіні, „Ще більше дурненьких жителів Звичанії прийшло мене зупинити? Мило. Було б мудро не з'являтися тут.“ Лускатий титан відхиляє голову назад, готуючись напасти. Це Ваш шанс! Віддайтеся на повну та раз і назавжди знищіть Недоліка!", - "questVice3Completion": "The shadows dissipate from the cavern and a steely silence falls. My word, you've done it! You have defeated Vice! You and your party may finally breathe a sigh of relief. Enjoy your victory, brave Habiteers, but take the lessons you've learned from battling Vice and move forward. There are still Habits to be done and potentially worse evils to conquer!", - "questVice3Boss": "Недолік, Тіньовий Змій", - "questVice3DropWeaponSpecial2": "Держак дракона Стівена Вебера", + "questVice2Completion": "Коли Ви піднімаєте останній кристал вгору, тіні розвіюються, і ваш шлях вперед стає ясним. З прискореним серцебиттям Ви крокуєте в печеру.", + "questVice2DropVice3Quest": "Вайс (частина 3) (сувій)", + "questVice3Text": "Вайс (частина 3): Пробудження", + "questVice3Notes": "Після значних зусиль Ваша команда знайшла лігво Вайса. Масивний монстр із несмаком розглядає Ваш гурт. У Вашій голові з’являється тихий голос, коли довкола кружляють тіні, «Ще декілька дурненьких жителів Габітики прийшло мене зупинити? Мило. Було б мудро не з'являтися тут.» Лускатий титан відхиляє голову назад, готуючись напасти. Це Ваш шанс! Віддайтеся на повну та раз і назавжди знищіть звіра!", + "questVice3Completion": "Тіні розвіюються з печери, і настає мертва тиша. Так, Ви це зробили! Ви перемогли Вайса! Ви і вся ваша команда можете нарешті зітхнути з полегшенням. Насолоджуйтесь своєю перемогою, відважні мешканці, але не забувайте уроки, які Ви винесли з боротьби з Вайсом, і рухайтеся вперед. Є ще звички, які потрібно зробити, і потенційно гірше зло, яке потрібно подолати!", + "questVice3Boss": "Вайс - Звір із тіней", + "questVice3DropWeaponSpecial2": "Драконяча патериця Стівена Вебера", "questVice3DropDragonEgg": "Дракон (яйце)", - "questVice3DropShadeHatchingPotion": "Зілля вилуплення тіні", - "questGroupMoonstone": "Назад у вороття", - "questMoonstone1Text": "Назад у вороття (частина 1): Місячне намисто", - "questMoonstone1Notes": "A terrible affliction has struck Habiticans. Bad Habits thought long-dead are rising back up with a vengeance. Dishes lie unwashed, textbooks linger unread, and procrastination runs rampant!

You track some of your own returning Bad Habits to the Swamps of Stagnation and discover the culprit: the ghostly Necromancer, Recidivate. You rush in, weapons swinging, but they slide through her specter uselessly.

\"Don’t bother,\" she hisses with a dry rasp. \"Without a chain of moonstones, nothing can harm me – and master jeweler @aurakami scattered all the moonstones across Habitica long ago!\" Panting, you retreat... but you know what you must do.", + "questVice3DropShadeHatchingPotion": "Тіньовий інкубаційний еліксир", + "questGroupMoonstone": "Вороття назад", + "questMoonstone1Text": "Рецидивіна (частина 1): Місячне намисто", + "questMoonstone1Notes": "Жахлива біда вразила габітиканців. Шкідливі звички, які вважалися давно померлими, встають з мертвих і жаждуть помсти. Посуд лежить немитий, підручники залишаються непрочитаними, а зволікання тільки набирає обертів!

Ви простежилиза власними шкідливі звичками, що повертались з болота Застою, і виявили винуватця: примарного некроманта, Рецидивіну. Ви вриваєтесь всередину, розмахуючи зброєю, але зброя проходить крізь привида.

«Навіть не намагайся», – шипить вона сухим хрипом. «Без ланцюга з місячних каменів мені ніщо не зашкодить – і майстер-ювелір @aurakami давно розкидав усі місячні камені по Габітиці!» Важко дихаючи, Ви відступаєте... але Ви знаєте, що треба робити.", "questMoonstone1CollectMoonstone": "Місячне каміння", - "questMoonstone1Completion": "At last, you manage to pull the final moonstone from the swampy sludge. It’s time to go fashion your collection into a weapon that can finally defeat Recidivate!", - "questMoonstone1DropMoonstone2Quest": "Назад у вороття (частина 2): Некромант Рецидивіна", - "questMoonstone2Text": "Назад у вороття (частина 2): Некромант Рецидивіна", - "questMoonstone2Notes": "The brave weaponsmith @InspectorCaracal helps you fashion the enchanted moonstones into a chain. You’re ready to confront Recidivate at last, but as you enter the Swamps of Stagnation, a terrible chill sweeps over you.

Rotting breath whispers in your ear. \"Back again? How delightful...\" You spin and lunge, and under the light of the moonstone chain, your weapon strikes solid flesh. \"You may have bound me to the world once more,\" Recidivate snarls, \"but now it is time for you to leave it!\"", + "questMoonstone1Completion": "Нарешті Вам вдається витягнути останній місячний камінь із болотистого мулу. Настав час перетворити свою колекцію на зброю, яка нарешті зможе перемогти Рецидивіну!", + "questMoonstone1DropMoonstone2Quest": "Рецидивіна (частина 2): Некромант (сувій)", + "questMoonstone2Text": "Рецидивіна (частина 2): Некромант", + "questMoonstone2Notes": "Відважний зброяр @InspectorCaracal допомагає Вам сформувати зачаровані місячні камені в намисто. Нарешті Ви готові протистояти Рецидивіні, але коли Ви входите на територію болота Застою, Вас охоплює жахливий холодок.

Сморідний подих шепоче Вам у вухо. «Знову тут? Це не надовго...» Ви обретаєтесь і наносите перший удар, і під світлом ланцюга з місячного каменю, ваша зброя вражає тверду плоть. «Можливо, ти знову зв’язав мене з цим світом, — гарчить Рецидивіна, — але тепер тобі час залишити його!»", "questMoonstone2Boss": "Некромант", - "questMoonstone2Completion": "Recidivate staggers backwards under your final blow, and for a moment, your heart brightens – but then she throws back her head and lets out a horrible laugh. What’s happening?", - "questMoonstone2DropMoonstone3Quest": "Назад у вороття (частина 3): Перетворення Рецидивіни (сувій)", - "questMoonstone3Text": "Назад у вороття (частина 3): Перетворення Рецидивіни", - "questMoonstone3Notes": "Laughing wickedly, Recidivate crumples to the ground, and you strike at her again with the moonstone chain. To your horror, Recidivate seizes the gems, eyes burning with triumph.

\"Foolish creature of flesh!\" she shouts. \"These moonstones will restore me to a physical form, true, but not as you imagined. As the full moon waxes from the dark, so too does my power flourish, and from the shadows I summon the specter of your most feared foe!\"

A sickly green fog rises from the swamp, and Recidivate’s body writhes and contorts into a shape that fills you with dread – the undead body of Vice, horribly reborn.", - "questMoonstone3Completion": "Your breath comes hard and sweat stings your eyes as the undead Wyrm collapses. The remains of Recidivate dissipate into a thin grey mist that clears quickly under the onslaught of a refreshing breeze, and you hear the distant, rallying cries of Habiticans defeating their Bad Habits for once and for all.

@Baconsaur the beast master swoops down on a gryphon. \"I saw the end of your battle from the sky, and I was greatly moved. Please, take this enchanted tunic – your bravery speaks of a noble heart, and I believe you were meant to have it.\"", - "questMoonstone3Boss": "Некро-Недолік", + "questMoonstone2Completion": "Від останнього удару Рецидивіна падає назад, і на мить Ваше серце радіє, але потім вона відкидає голову й жахливо сміється. Що з нею відбувається?", + "questMoonstone2DropMoonstone3Quest": "Рецидивіна (частина 3): Перетворення Рецидивіни (сувій)", + "questMoonstone3Text": "Рецидивіна (частина 3): Перетворення Рецидивіни", + "questMoonstone3Notes": "Зловісно сміючись, Рецидивіна звалюється на землю, і Ви пробуєте нанести удар по ній ланцюгом з місячного каменю. Однак, Рецидивіна захоплює дорогоцінні камені, її очі палають тріумфом.

\"Дурне створіння з плоті!\" — кричить вона. \"Ці місячні камені повернуть мені фізичну форму, але не таку, як ти собі уявляв. Як повний місяць з'являється з темряви, так само процвітає моя сила, а з тіней я викликаю привид твого найстрашнішого ворога!\"

З болота здіймається хворобливий зелений туман, а тіло Рецидивіни звивається й викривляється у форму, яка наповнює вас страхом – звіра Вайса, повсталого з мертвих.", + "questMoonstone3Completion": "Ви важко дихаєте, а піт ріже очі, коли Вайс, що повстав з мертвих, падає знову. Залишки Рецидивіни розвіюються в тонку сіру імлу, яка швидко розносяться під натиском освіжаючого вітерця, і Ви чуєте далекі згуртовані крики габітиканців, які назавжди долають свої шкідливі звички.

@Baconsaur, господар звірів, підлітає верхом на ґрифоні. «Я бачив фінал Вашої битви з неба, і я був дуже зворушений. Будь ласка, візьміть цю чарівну туніку – ваша хоробрість говорить про благородне серце, і я вірю, що Вам судилося її мати».", + "questMoonstone3Boss": "Некро-Вайс", "questMoonstone3DropRottenMeat": "Гниле м'ясо (Їжа)", "questMoonstone3DropZombiePotion": "Зомбі інкубаціонне зілля", "questGroupGoldenknight": "Золотий лицар", "questGoldenknight1Text": "Золотий лицар (частина 1): Сувора догана", - "questGoldenknight1Notes": "Золотий Лицар завжди незадоволена бідними жителями Габітіки. Не впоралися з усіма щоденними завданнями? Піддалися негативній звичці? Для неї це привід нагадати Вам, що Ви повинні наслідувати її. Вона – яскравий приклад ідеального габітіканця, а Ви - невдаха. Що ж, це зовсім не чемно! Усі роблять помилки, тому ви не повинні терпіти подібних обвинувачень. Напевно, настав час Вам зібрати скарги скривджених жителів країни Габітіка і винести Золотому Лицареві сувору догану!", + "questGoldenknight1Notes": "Золотий Лицар завжди незадоволена бідними жителями Габітики. Не впоралися з усіма щоденними завданнями? Піддалися негативній звичці? Для неї це привід нагадати Вам, що Ви повинні наслідувати її. Вона – яскравий приклад ідеального габітиканця, а Ви - невдаха. Що ж, це зовсім не чемно! Усі роблять помилки, тому ви не повинні терпіти подібних обвинувачень. Напевно, настав час Вам зібрати скарги скривджених жителів країни Габітика і винести Золотому Лицареві сувору догану!", "questGoldenknight1CollectTestimony": "Скарги", "questGoldenknight1Completion": "Look at all these testimonies! Surely this will be enough to convince the Golden Knight. Now all you need to do is find her.", "questGoldenknight1DropGoldenknight2Quest": "Золотий лицар (частина 2): Золотий лицар (сувій)", "questGoldenknight2Text": "Золотий лицар (частина 2): Золотий лицар", - "questGoldenknight2Notes": "Озброївшись десятками скарг від габітіканців, Ви нарешті стоїте навпроти Золотого лицаря. Ви починаєте декламувати їй скарги жителів Габітіки, одну за одною. «І @Pfeffernusse каже про твої постійні хвастощі…» Лицар піднімає руку, щоб змусити Вас замовкнути, і насміхається: «Будь ласка, ці люди просто заздрять моїм успіхам. Замість того, щоб скаржитися, вони повинні просто працювати так само наполегливо, як я! Можливо, мені варто показати вам силу, яку ви можете отримати завдяки працьовитості, як у мене!» Вона піднімає свій моргенштерн і готується напасти на Вас!", + "questGoldenknight2Notes": "Озброївшись десятками скарг від габітиканців, Ви нарешті стоїте навпроти Золотого лицаря. Ви починаєте декламувати їй скарги жителів Габітики, одну за одною. «І @Pfeffernusse каже про твої постійні хвастощі…» Лицар піднімає руку, щоб змусити Вас замовкнути, і насміхається: «Будь ласка, ці люди просто заздрять моїм успіхам. Замість того, щоб скаржитися, вони повинні просто працювати так само наполегливо, як я! Можливо, мені варто показати вам силу, яку ви можете отримати завдяки працьовитості, як у мене!» Вона піднімає свій моргенштерн і готується напасти на Вас!", "questGoldenknight2Boss": "Золотий Лицар", "questGoldenknight2Completion": "Золотий Лицар від жаху опускає свій моргенштерн. «Прошу вибачення за цей мій вибух», — каже вона. «Правда в тому, що мені боляче думати, що я ненавмисно завдала болю іншим, і це змусило мене кинутися на захист… я сподіваюсь, що ви зможете прийняти мої вибачення?»", "questGoldenknight2DropGoldenknight3Quest": "Золотий лицар (частина 3): Залізний лицар (сувій)", "questGoldenknight3Text": "Золотий лицар (частина 3): Залізний лицар", "questGoldenknight3Notes": "@Jon Arinbjorn кричить щодуху, щоб привернути Вашу увагу. На полі битви з’явилася нова фігура. Лицар, закований в обладунки з темного сплаву заліза, повільно наближається до Вас із мечем у руці. Золотий Лицар кричить фігурі: «Батьку, ні!», однак той і не думає зупинятись. Вона повертається до вас і каже: «Вибачте. Я була сліпою, і не помітила якою жорстокою я стала. Але мій батько жорстокіший в стократ, ніж я коли-небудь могла бути. Якщо його не зупинити, то він знищить всіх нас. Ось, використайте мій моргенштерн і зупиніть Залізного Лицаря!\"", - "questGoldenknight3Completion": "З гучним дзвоном Залізний Лицар опускається на коліна й падає. «Ти доволі сильний», — задихається він. «Сьогодні мені завдали поразки». Золотий Лицар підходить до вас і каже: «Спасибі. Я вважаю, що ми отримали трохи смирення від нашої з Вами зустрічі. Я поговорю зі своїм батьком і поясню чому габітіканці скаржаться на нас. Гадаю, нам варто вибачатись перед багатьма з них». Вона замислюється, перш ніж повернутися до Вас. «Ось: як наш подарунок Вам, я хочу, щоб Ви зберегли мій моргенштерн. Тепер він Ваш».", + "questGoldenknight3Completion": "З гучним дзвоном Залізний Лицар опускається на коліна й падає. «Ти доволі сильний», — задихається він. «Сьогодні мені завдали поразки». Золотий Лицар підходить до вас і каже: «Спасибі. Я вважаю, що ми отримали трохи смирення від нашої з Вами зустрічі. Я поговорю зі своїм батьком і поясню чому габітиканці скаржаться на нас. Гадаю, нам варто вибачатись перед багатьма з них». Вона замислюється, перш ніж повернутися до Вас. «Ось: як наш подарунок Вам, я хочу, щоб Ви зберегли мій моргенштерн. Тепер він Ваш».", "questGoldenknight3Boss": "Залізний Лицар", "questGoldenknight3DropHoney": "Мед (Їжа)", "questGoldenknight3DropGoldenPotion": "Золоте інкубаціонне зілля", "questGoldenknight3DropWeapon": "Моргенштерн неперевної послідовності (ліворучна зброя)", "questGroupEarnable": "Зароблені квести", "questBasilistText": "Спискозмій", - "questBasilistNotes": "На ринку панує переполох — такий, що мав би змусити Вас тікати. Однак будучи сміливим шукачем пригод, Ви замість цього біжите назустріч і зустрічаєте Спискозмія, що утворений зі списків невиконаних справ! Габітіканці, що знаходяться поруч, паралізовані від страху довжиною Спискозмія. Вони не можуть почати працювати. Звідкись неподалік ви чуєте, як @Arcosine кричить: \"Швидко! Виконуйте свої завдання та щоденки, щоб знешкодити монстра, перш ніж він встигне порізати когось папером!\". Бийте швидко, шукачу пригод, і викреслюйте завдання, але будьте обережні - якщо Ви не виконаєте які-небудь щоденки, Спискозмій атакуватиме Вас і Вашу групу!", + "questBasilistNotes": "На ринку панує переполох — такий, що мав би змусити Вас тікати. Однак будучи сміливим шукачем пригод, Ви замість цього біжите назустріч і зустрічаєте Спискозмія, що утворений зі списків невиконаних справ! Габітиканці, що знаходяться поруч, паралізовані від страху довжиною Спискозмія. Вони не можуть почати працювати. Звідкись неподалік ви чуєте, як @Arcosine кричить: \"Швидко! Виконуйте свої завдання та щоденки, щоб знешкодити монстра, перш ніж він встигне порізати когось папером!\". Бийте швидко, шукачу пригод, і викреслюйте завдання, але будьте обережні - якщо Ви не виконаєте які-небудь щоденки, Спискозмій атакуватиме Вас і Вашу групу!", "questBasilistCompletion": "The Basi-list has scattered into paper scraps, which shimmer gently in rainbow colors. \"Whew!\" says @Arcosine. \"Good thing you guys were here!\" Feeling more experienced than before, you gather up some fallen gold from among the papers.", "questBasilistBoss": "Спискозмій", "questEggHuntText": "Яйцелови", - "questEggHuntNotes": "Overnight, strange plain eggs have appeared everywhere: in Matt's stables, behind the counter at the Tavern, and even among the pet eggs at the Marketplace! What a nuisance! \"Nobody knows where they came from, or what they might hatch into,\" says Megan, \"but we can't just leave them laying around! Work hard and search hard to help me gather up these mysterious eggs. Maybe if you collect enough, there will be some extras left over for you...\"", + "questEggHuntNotes": "За ніч дивні яйця з’явилися скрізь: у стайні у Матвея, за прилавком у таверні і навіть серед яєць домашніх тварин на Ринку! Яка неприємність! \"Ніхто не знає, звідки вони з'явилися і що з них може вилупитися, - каже Меган, - але ми не можемо просто залишити їх валятися ось так! Наполегливо працюйте і шукайте, щоб допомогти мені зібрати ці таємничі яйця. Можливо, якщо Ви зберете достатньо, то щось знайдеться і для Вас...\"", "questEggHuntCompletion": "You did it! In gratitude, Megan gives you ten of the eggs. \"I bet the hatching potions will dye them beautiful colors! And I wonder what will happen when they turn into mounts....\"", "questEggHuntCollectPlainEgg": "Прості яйця", "questEggHuntDropPlainEgg": "Просте яйце", @@ -133,7 +133,7 @@ "questDilatoryBossRageMarket": "`Жахливий Драк'он застосовує УДАР ЗАНЕХАЯННЯ!`\n\nОоой!! Щойно Драк'он Ударом Занехаяння вщент розбив крамницю Торговця Алекса! Та, здається, ми добряче знесилили цю тварюку. Гадаю, він не має більше сил на ще один удар.\n\nТож не відступай, Звичаніє! Проженімо цього звіра геть з наших берегів!", "questDilatoryCompletion": "\"Подолання Жахливого Драк'она Неквапливості\"\n\nНам вдалося! Заревівши востаннє, Жахливий Драк'он падає та пливе ген далеко-далеко. На березі вишикувалися натовпи втішених звичаньців! Ми допомогли Митькові, Даніелю та Алексу відбудувати їхні будинки. Але що це?\n\n\"Мешканці повертаються!\"\n\nТепер, коли Драк'он утік, море замерехтіло кольорами. Це різнобарвний рій раків-богомолів... а серед них — сотні морських людей!\n\n\"Ми — забуті жителі Неквапливості!\", — пояснює їхній ватажок Манта. \"Коли Неквапливість затонула, раки-богомоли, які жили у цих водах, з допомогою чарів перетворили нас на водяників, щоб ми змогли вижити. Але лютий Жахливий Драк'он усіх нас запроторив до темної ущелини. Ми сотні років сиділи у тому полоні, та тепер нарешті можемо відбудувати своє місто!\"\n\n\"Як подяку,\" — каже його друг @Ottl, — \"Прийміть, будь ласка, цього рака-богомола та рака-богомола скакуна, а також ОД, золото та нашу безмежну вдячність.\"\n\n\"Нагороди\"\n * Рак-богомол улюбленець\n * Рак-богомол скакун\n * Шоколад, блакитна цукровата, рожева цукровата, риба, мед, м'ясо, молоко, картопля, тухле м'ясо, полуниця", "questSeahorseText": "Перегони у Неквапливості", - "questSeahorseNotes": "Нині День Перегонів. До Неквапливості прибули габітіканці з усього континенту, щоб влаштувати перегони на своїх морських кониках! Зненацька на біговій доріжці зчиняється шум та гамір і Ви чуєте, як власниця морських коників @Kiwibot перекрикує рев хвиль. \"Зібрання морських коників привернуло увагу шаленого Морського Жеребця!\" — гукає вона. \"Він поривається через стайні і нищить старовинну дорогу для бігу! Чи може хтось його вгамувати?\"", + "questSeahorseNotes": "Нині День Перегонів. До Неквапливості прибули габітиканці з усього континенту, щоб влаштувати перегони на своїх морських кониках! Зненацька на біговій доріжці зчиняється шум та гамір і Ви чуєте, як власниця морських коників @Kiwibot перекрикує рев хвиль. \"Зібрання морських коників привернуло увагу шаленого Морського Жеребця!\" — гукає вона. \"Він поривається через стайні і нищить старовинну дорогу для бігу! Чи може хтось його вгамувати?\"", "questSeahorseCompletion": "Приборканий морський жеребець покірно до вас підпливає. \"Поглянь!\" — каже Ківібот. \"Він хоче, щоб ми подбали про його діток.\" Вона дає вам три яйця. \"Виростіть їх як слід,\" — каже Ківібот. \"Приходьте на перегони коли забажаєте!\"", "questSeahorseBoss": "Морський жеребець", "questSeahorseDropSeahorseEgg": "Морський коник (яйце)", @@ -145,7 +145,7 @@ "questAtom1Drop": "Чудовисько озера Недої-Десс (сувій)", "questAtom1Completion": "After some thorough scrubbing, all the dishes are stacked safely on the shore! You stand back and proudly survey your hard work.", "questAtom2Text": "Битва з Буденністю (частина 2): Чудовисько озера Недої-Десс", - "questAtom2Notes": "Хух, тут значно краще, коли увесь посуд чистий. Може, нарешті Ви можете трохи розважитися. Гей, по озері, здається, плаває коробка від піци. Залишилось прибрати ще її, еге ж? Однак, це не проста коробка від піци! Раптом коробка швидко підіймається і виявляється, що це голова чудовиська. Неймовірно! Легендарне чудовисько Недоїдессі?! Кажуть, начебто воно переховується в озері з прадавніх часів: істота, яка виникла із залишків їжі та сміття давніх габітіканців. Фе!", + "questAtom2Notes": "Хух, тут значно краще, коли увесь посуд чистий. Може, нарешті Ви можете трохи розважитися. Гей, по озері, здається, плаває коробка від піци. Залишилось прибрати ще її, еге ж? Однак, це не проста коробка від піци! Раптом коробка швидко підіймається і виявляється, що це голова чудовиська. Неймовірно! Легендарне чудовисько Недоїдессі?! Кажуть, начебто воно переховується в озері з прадавніх часів: істота, яка виникла із залишків їжі та сміття давніх габітиканців. Фе!", "questAtom2Boss": "Чудовисько Недоїдессі", "questAtom2Drop": "Білизномант (сувій)", "questAtom2Completion": "З оглушливим криком і п’ятьма смачними видами сиру, що вириваються з його пащі, Чудовисько Недоїдессі розпадається на шматки. Молодець, відважний авантюристе! Але зачекай... з цим озером ще щось не так?", @@ -198,7 +198,7 @@ "questRockCompletion": "Your diligence has allowed you to find a safe path through the living mountain. Standing in the sunshine, your friend @intune notices something glinting on the ground by the cave's exit. You stoop to pick it up, and see that it's a small rock with a vein of gold running through it. Beside it are a number of other rocks with rather peculiar shapes. They almost look like... eggs?", "questRockDropRockEgg": "Кам'яне яйце (яйце)", "questRockUnlockText": "Розблоковує купівлю каменю в яйці на ринку", - "questBunnyText": "Вбивця Кролик", + "questBunnyText": "Кролик-вбивця", "questBunnyNotes": "After many difficult days, you reach the peak of Mount Procrastination and stand before the imposing doors of the Fortress of Neglect. You read the inscription in the stone. \"Inside resides the creature that embodies your greatest fears, the reason for your inaction. Knock and face your demon!\" You tremble, imagining the horror within and feel the urge to flee as you have done so many times before. @Draayder holds you back. \"Steady, my friend! The time has come at last. You must do this!\"

You knock and the doors swing inward. From within the gloom you hear a deafening roar, and you draw your weapon.", "questBunnyBoss": "Вбивця Кролик", "questBunnyCompletion": "With one final blow the killer rabbit sinks to the ground. A sparkly mist rises from her body as she shrinks down into a tiny bunny... nothing like the cruel beast you faced a moment before. Her nose twitches adorably and she hops away, leaving some eggs behind. @Gully laughs. \"Mount Procrastination has a way of making even the smallest challenges seem insurmountable. Let's gather these eggs and head for home.\"", @@ -228,8 +228,8 @@ "questWhaleCompletion": "After much hard work, the whale finally ceases her thunderous cry. \"Looks like she was drowning in waves of negative habits,\" @zoebeagle explains. \"Thanks to your consistent effort, we were able to turn the tides!\" As you step into the submarine, several whale eggs bob towards you, and you scoop them up.", "questWhaleDropWhaleEgg": "Кит (Яйце)", "questWhaleUnlockText": "Розблоковує китові яйця для придбання на ринку", - "questGroupDilatoryDistress": "Dilatory Distress", - "questDilatoryDistress1Text": "Затяжна Біда, Частина 1: Повідомлення у Пляшці", + "questGroupDilatoryDistress": "Затяжна біда", + "questDilatoryDistress1Text": "Затяжна Біда (частина 1): Повідомлення у пляшці", "questDilatoryDistress1Notes": "A message in a bottle arrived from the newly rebuilt city of Dilatory! It reads: \"Dear Habiticans, we need your help once again. Our princess has disappeared and the city is under siege by some unknown watery demons! The mantis shrimps are holding the attackers at bay. Please aid us!\" To make the long journey to the sunken city, one must be able to breathe water. Fortunately, the alchemists @Benga and @hazel can make it all possible! You only have to find the proper ingredients.", "questDilatoryDistress1Completion": "Ви надягаєте ласту з плавниками і якнайшвидше підпливаєте до Ділатора. Мерфолк та їх союзники з креветками-богомолами на даний момент зуміли утримати монстрів за межами міста, але вони програють. Тільки-но ви опинитесь у стінах замку, як опускається жахлива облога!", "questDilatoryDistress1CollectFireCoral": "Вогняний Корал", @@ -392,24 +392,24 @@ "questTaskwoodsTerror3Boss": "Jacko of the Lantern", "questTaskwoodsTerror3DropStrawberry": "Полуниця (їжа)", "questTaskwoodsTerror3DropWeapon": "Taskwoods Lantern (Two-Handed Weapon)", - "questFerretText": "The Nefarious Ferret", + "questFerretText": "Нечестивий тхір", "questFerretNotes": "Walking through Habit City, you see an unhappy crowd surrounding a red-robed Ferret.

\"That productivity potion you sold me is useless!\" @Beffymaroo complains. \"I watched three hours of TV last night instead of doing my chores!\"

\"Yeah!\" shouts @Pandah. \"And today I spent an hour rearranging my books instead of reading them!\"

The Nefarious Ferret spreads his hands innocently. \"That's more TV watching and book organizing than you'd normally get done, isn't it?\"

The crowd erupts in anger.

\"No refunds!\" crows the Nefarious Ferret. He fires a bolt of magic into the crowd, preparing to escape in the smoke.

\"Please, Habitican!\" @Faye says, grabbing your arm. \"Defeat the ferret and make him refund his dishonest earnings!\"", "questFerretCompletion": "You defeat the soft-furred swindler and @UncommonCriminal gives the crowd their refunds. There's even a little gold left over for you. Plus, it looks like the Nefarious Ferret dropped some eggs in his hurry to get away!", - "questFerretBoss": "Nefarious Ferret", + "questFerretBoss": "Нечестивий тхір", "questFerretDropFerretEgg": "Ferret (Egg)", "questFerretUnlockText": "Розблоковує купівлю тхора в яйці на ринку", "questDustBunniesText": "Дикі пильові зайці", "questDustBunniesNotes": "Давно Ви тут не протирали пил, але не надто хвилюйтеся — трішки пилу нікому не зашкодило, правда ж? Тільки до того моменту як Ви засунете руку в один із найбільш віддалених кутів і відчуєте як Вас щось вкусило. Тоді Ви згадаєте застереження @InspectorCaracal: залишаючи \"нешкідливий\" пил занадто довго, він перетворюється на злісних пильових зайців! Вам краще прогнати їх в поле, перш ніж вони зітруть всю Габітику в пил!", - "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", + "questDustBunniesCompletion": "Пилові зайчики скомкуються у клубок... пилу. Як тільки пил осідає, Ви озираєтесь. Ви й забули, як гарно це місце виглядає, коли воно чисте. Ви помічаєте невелику купу золота там, де колись був пил. Хех, а Ви його так довго шукали!", + "questDustBunniesBoss": "Дикі пильові зайці", "questGroupMoon": "Битва під місяцем", "questMoon1Text": "Битва під місяцем (частина 1): Збір містичних уламків", - "questMoon1Notes": "Габітіканців відволікло від своїх завдань щось дивне: по землі з’являються уламки каменю дивної форми. Стурбована провидиця @Starsystemic викликає Вас до своєї вежі. Вона каже: \"Я бачу тривожні прикмети в цих уламках, які руйнують землю і відволікають працьовитих габітіканців. Я спробую відстежити джерело, але спочатку мені потрібно дослідити уламки. Чи можете Ви зібрати декілька для мене?\"", + "questMoon1Notes": "Габітиканців відволікло від своїх завдань щось дивне: по землі з’являються уламки каменю дивної форми. Стурбована провидиця @Starsystemic викликає Вас до своєї вежі. Вона каже: \"Я бачу тривожні прикмети в цих уламках, які руйнують землю і відволікають працьовитих габітиканців. Я спробую відстежити джерело, але спочатку мені потрібно дослідити уламки. Чи можете Ви зібрати декілька для мене?\"", "questMoon1Completion": "@Starsystemic disappears into her tower to examine the shards you gathered. \"This may be more complicated than we feared,\" says @Beffymaroo, her trusted assistant. \"It will take us some time to discover the cause. Keep checking in every day, and when we know more, we'll send you the next quest scroll.\"", "questMoon1CollectShards": "Місячні уламки", "questMoon1DropHeadgear": "Шолом місячного воїна (головний убір)", "questMoon2Text": "Битва під місяцем (частина 2): Зупиніть затьмарюючий Стрес", - "questMoon2Notes": "Після вивчення осколків провидиця @Starsystemic має погані новини. «Древній монстр наближається до Габітіки, і це накладає жахливий стрес на її громадян. Я можу витягнути тінь із сердець людей у цю вежу, де вона набуде фізичної форми, але Вам потрібно її перемогти, перш ніж вона розпадеться і почне знову поширюватись». Ви киваєте, і вона починає читати закляття. Танцюючі тіні заповнюють кімнату, щільно притискаючись одна до одної. Холодний вітер кружляє, темрява глибшає. Затьмарюючий Стрес підіймається з підлоги, шкірить зуби, як справжній кошмар ... і замахується!", + "questMoon2Notes": "Після вивчення осколків провидиця @Starsystemic має погані новини. «Древній монстр наближається до Габітики, і це накладає жахливий стрес на її громадян. Я можу витягнути тінь із сердець людей у цю вежу, де вона набуде фізичної форми, але Вам потрібно її перемогти, перш ніж вона розпадеться і почне знову поширюватись». Ви киваєте, і вона починає читати закляття. Танцюючі тіні заповнюють кімнату, щільно притискаючись одна до одної. Холодний вітер кружляє, темрява глибшає. Затьмарюючий Стрес підіймається з підлоги, шкірить зуби, як справжній кошмар ... і замахується!", "questMoon2Completion": "The shadow explodes in a puff of dark air, leaving the room brighter and your hearts lighter. The stress blanketing Habitica is diminished, and you can all breathe a sigh of relief. Still, as you look up at the sky, you sense that this is not over: the monster knows someone destroyed its shadow. \"We'll keep careful watch in the coming weeks,\" says @Starsystemic, \"and I'll send you a quest scroll when it manifests.\"", "questMoon2Boss": "Затьмарюючий Стрес", "questMoon2DropArmor": "Обладунки місячного воїна (броня)", @@ -453,11 +453,11 @@ "questStoikalmCalamity3DropBlueCottonCandy": "Синя цукрова кулька (їжа)", "questStoikalmCalamity3DropShield": "Mammoth Rider's Horn (Off-Hand Item)", "questStoikalmCalamity3DropWeapon": "Mammoth Rider Spear (Weapon)", - "questGuineaPigText": "The Guinea Pig Gang", + "questGuineaPigText": "Банда морських свинок", "questGuineaPigNotes": "You're casually strolling through Habit City's famous Market when @Pandah waves you down. \"Hey, check these out!\" They're holding up a brown and beige egg you don't recognize.

Alexander the Merchant frowns at it. \"I don't remember putting that out. I wonder where it came--\" A small paw cuts him off.

\"Guinea all your gold, merchant!\" squeaks a tiny voice brimming with evil.

\"Oh no, the egg was a distraction!\" @mewrose exclaims. \"It's the gritty, greedy Guinea Pig Gang! They never do their Dailies, so they constantly steal gold to buy health potions.\"

\"Robbing the Market?\" says @emmavig. \"Not on our watch!\" Without further prompting, you leap to Alexander's aid.", "questGuineaPigCompletion": "\"We submit!\" The Guinea Pig Gang Boss waves his paws at you, fluffy head hanging in shame. From underneath his hat falls a list, and @snazzyorange quickly swipes it for evidence. \"Wait a minute,\" you say. \"It's no wonder you've been getting hurt! You've got way too many Dailies. You don't need health potions -- you just need help organizing.\"

\"Really?\" squeaks the Guinea Pig Gang Boss. \"We've robbed so many people because of this! Please take our eggs as an apology for our crooked ways.\"", - "questGuineaPigBoss": "Guinea Pig Gang", - "questGuineaPigDropGuineaPigEgg": "Guinea Pig (Egg)", + "questGuineaPigBoss": "Банда морських свинок", + "questGuineaPigDropGuineaPigEgg": "Морська свинка (яйце)", "questGuineaPigUnlockText": "Розблоковує купівлю морської свинки в яйці на ринку", "questPeacockText": "The Push-and-Pull Peacock", "questPeacockNotes": "You trek through the Taskwoods, wondering which of the enticing new goals you should pick. As you go deeper into the forest, you realize that you're not alone in your indecision. \"I could learn a new language, or go to the gym...\" @Cecily Perez mutters. \"I could sleep more,\" muses @Lilith of Alfheim, \"or spend time with my friends...\" It looks like @PainterProphet, @Pfeffernusse, and @Draayder are equally paralyzed by the overwhelming options.

You realize that these ever-more-demanding feelings aren't really your own... you've stumbled straight into the trap of the pernicious Push-and-Pull Peacock! Before you can run, it leaps from the bushes. With each head pulling you in conflicting directions, you start to feel burnout overcoming you. You can't defeat both foes at once, so you only have one option -- concentrate on the nearest task to fight back!", @@ -601,8 +601,8 @@ "questSquirrelBoss": "Sneaky Squirrel", "questSquirrelDropSquirrelEgg": "Squirrel (Egg)", "questSquirrelUnlockText": "Розблоковує купівлю білки в яйці на ринку", - "cuddleBuddiesText": "Cuddle Buddies Quest Bundle", - "cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until May 31.", + "cuddleBuddiesText": "Набір квестів \"Пухнасті друзі\"", + "cuddleBuddiesNotes": "Містить «Кролик-вбивця», «Нечестивий тхір» і «Банда морських свинок». Доступний до 31 березня.", "aquaticAmigosText": "Aquatic Amigos Quest Bundle", "aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until June 30.", "questSeaSerpentText": "Біда в глибинах: Напад морського змія!", diff --git a/website/common/locales/zh/achievements.json b/website/common/locales/zh/achievements.json index 48c32f71ec..bacb5e05fd 100644 --- a/website/common/locales/zh/achievements.json +++ b/website/common/locales/zh/achievements.json @@ -126,5 +126,7 @@ "achievementShadyCustomerText": "已集齐所有暗影宠物。", "achievementZodiacZookeeper": "十二生肖饲养员", "achievementZodiacZookeeperModalText": "你集齐了所有十二生肖宠物!", - "achievementZodiacZookeeperText": "已经孵化了所有的十二生肖宠物。鼠、牛、兔、蛇、马、羊、猴、鸡、狼、虎、飞猪和龙!" + "achievementZodiacZookeeperText": "已经孵化了所有的十二生肖宠物。鼠、牛、兔、蛇、马、羊、猴、鸡、狼、虎、飞猪和龙!", + "achievementBirdsOfAFeather": "展翅高飞", + "achievementBirdsOfAFeatherText": "已经孵化了所有的飞行宠物:飞猪、猫头鹰、鹦鹉、翼龙、狮鹫和猎鹰。" } From 89d7f94fc358961fd93dae1264fa662a7e924f54 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 29 Mar 2022 16:21:38 -0400 Subject: [PATCH 05/17] habitica-images --- habitica-images | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/habitica-images b/habitica-images index 5a79037fca..04a3834384 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 5a79037fca74f76c9342190b584baeda419c6c47 +Subproject commit 04a3834384c7b290b06772fb7febf675a8c3e7b8 From 976e8cf242bce939660b3be9df1f014af5165b58 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 30 Mar 2022 12:18:52 +0200 Subject: [PATCH 06/17] Translated using Weblate (Spanish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (206 of 206 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (219 of 219 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (German) Currently translated at 100.0% (206 of 206 strings) Co-authored-by: Mara Dolichotis Co-authored-by: Pardinus Co-authored-by: Sara López Co-authored-by: Weblate Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/ Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/es/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/ Translation: Habitica/Achievements Translation: Habitica/Limited Translation: Habitica/Loginincentives Translation: Habitica/Settings --- website/common/locales/de/settings.json | 2 +- website/common/locales/es/achievements.json | 7 ++++--- website/common/locales/es/limited.json | 6 +++++- website/common/locales/es/loginincentives.json | 2 +- website/common/locales/es/settings.json | 4 ++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/website/common/locales/de/settings.json b/website/common/locales/de/settings.json index 581ba27aef..4233d5e17e 100644 --- a/website/common/locales/de/settings.json +++ b/website/common/locales/de/settings.json @@ -55,7 +55,7 @@ "newUsername": "Neuer Benutzername", "dangerZone": "Gefahrenzone", "resetText1": "WARNUNG! Es werden große Teile Deines Accounts zurückgesetzt. Wir raten dringend davon ab. Jedoch finden einige Spieler diese Funktion sinnvoll, um nach einem anfänglichen Testen der Seite neu beginnen zu können.", - "resetText2": "Du verlierst alle Deine Level, Gold- und Erfahrungspunkte. Alle Deine Aufgaben (außer Aufgaben aus Herausforderungen) werden permanent gelöscht, und Du verlierst alle ihre historischen Daten. Du verlierst Deine gesamte Ausrüstung außer Abonnement-Überraschungsgegenstände und gratis Erinnerungsgegenstände. Du wirst die Möglichkeit haben, alle gelöschten Gegenstände zurückzukaufen, inklusive allen Gegenständen limitierter Ausgabe (Du musst für klassenspezifische Ausrüstung der richtigen Klasse angehören, um sie zurückzukaufen). Du behältst Deine aktuelle Klasse, Deine Erfolge, und Deine Haus- und Reittiere. Möglicherweise möchtest Du lieber die Sphäre der Wiedergeburt nutzen, die eine weit sicherere Option darstellt und Deine Aufgaben und Ausrüstung beibehält.", + "resetText2": "Du verlierst alle Deine Level, Dein Gold und Deine Erfahrungspunkte. Alle Deine Aufgaben (außer Aufgaben aus Herausforderungen) werden permanent gelöscht, und Du verlierst alle ihre historischen Daten. Du verlierst Deine gesamte Ausrüstung außer Abonnement-Überraschungsgegenstände und gratis Erinnerungsgegenstände. Du wirst die Möglichkeit haben, alle gelöschten Gegenstände zurückzukaufen, inklusive allen Gegenständen limitierter Ausgabe (Du musst für klassenspezifische Ausrüstung der richtigen Klasse angehören, um sie zurückzukaufen). Du behältst Deine aktuelle Klasse, Deine Erfolge, und Deine Haus- und Reittiere. Möglicherweise möchtest Du lieber die Sphäre der Wiedergeburt nutzen, die eine weit sicherere Option darstellt und Deine Aufgaben und Ausrüstung beibehält.", "deleteLocalAccountText": "Bist Du sicher? Dies wird Dein Konto für immer löschen und es kann nicht wiederhergestellt werden! Wenn Du Habitica wieder verwenden möchtest, musst Du ein neues Konto registrieren. Gesparte oder verbrauchte Edelsteine werden nicht ersetzt. Wenn Du absolut sicher bist, dann tippe Dein Passwort in das Textfeld unten ein.", "deleteSocialAccountText": "Bist Du sicher? Dies wird Dein Konto für immer löschen und es kann nicht wiederhergestellt werden! Wenn Du Habitica wieder verwenden möchtest, musst Du ein neues Konto registrieren. Gesparte oder verbrauchte Edelsteine werden nicht ersetzt. Wenn Du absolut sicher bist, dann tippe \"<%= magicWord %>\" in das Textfeld unten ein.", "API": "API", diff --git a/website/common/locales/es/achievements.json b/website/common/locales/es/achievements.json index b721ed268d..48fba57151 100644 --- a/website/common/locales/es/achievements.json +++ b/website/common/locales/es/achievements.json @@ -124,9 +124,10 @@ "achievementShadeOfItAllModalText": "¡Has domado todas las monturas sombrías!", "achievementShadyCustomerText": "Ha conseguido todas las mascotas sombrías.", "achievementShadyCustomer": "Cliente sombrío", - "achievementZodiacZookeeper": "Cuidador del Zodíaco", + "achievementZodiacZookeeper": "Cuidador del Zodiaco", "achievementZodiacZookeeperText": "¡Has eclosionado todas las mascotas del zodíaco: Rata, Vaca, Conejo, Serpiente, Caballo, Oveja, Mono, Gallo, Lobo, Tigre, Cerdo Volador y Dragón!", "achievementZodiacZookeeperModalText": "¡Has conseguido todas las mascotas del zodíaco!", - "achievementBirdsOfAFeatherText": "Has eclosionado todas las mascotas voladoras: Cerdo volador, Búho, Loro, Pterodáctilo, Grifo y Halcón.", - "achievementBirdsOfAFeatherModalText": "¡Has conseguido todas las mascotas voladoras!" + "achievementBirdsOfAFeatherText": "Has eclosionado todas las mascotas voladoras: Cerdo Volador, Búho, Loro, Pterodáctilo, Grifo, Halcón, Pavo Real y Gallo.", + "achievementBirdsOfAFeatherModalText": "¡Has conseguido todas las mascotas voladoras!", + "achievementBirdsOfAFeather": "Aves de Pluma" } diff --git a/website/common/locales/es/limited.json b/website/common/locales/es/limited.json index 13edce809d..f887d67ca2 100644 --- a/website/common/locales/es/limited.json +++ b/website/common/locales/es/limited.json @@ -216,5 +216,9 @@ "winter2022FireworksRogueSet": "Fuegos Artificiales (Pícaro)", "winter2022StockingWarriorSet": "Calcetín (Guerrero)", "winter2022PomegranateMageSet": "Granada (Mago)", - "winter2022IceCrystalHealerSet": "Cristal de Hielo (Sanador)" + "winter2022IceCrystalHealerSet": "Cristal de Hielo (Sanador)", + "spring2022MagpieRogueSet": "Urraca (Pícaro)", + "spring2022RainstormWarriorSet": "Tempestad (Guerrero)", + "spring2022ForsythiaMageSet": "Forsitia (Mago)", + "spring2022PeridotHealerSet": "Peridoto (Sanador)" } diff --git a/website/common/locales/es/loginincentives.json b/website/common/locales/es/loginincentives.json index 3541549b7e..ec31479bc2 100644 --- a/website/common/locales/es/loginincentives.json +++ b/website/common/locales/es/loginincentives.json @@ -1,6 +1,6 @@ { "unlockedReward": "Has recibido <%= reward %>", - "earnedRewardForDevotion": "Has ganado <%= reward %> por siendo committed por mejorado su vida.", + "earnedRewardForDevotion": "Has ganado <%= reward %> por haberte comprometido a mejorar tu vida.", "nextRewardUnlocksIn": "Registros hasta tu próximo premio: <%= numberOfCheckinsLeft %>", "awesome": "¡Genial!", "countLeft": "Registros hasta la próxima recompensa: <%= count %>", diff --git a/website/common/locales/es/settings.json b/website/common/locales/es/settings.json index 8857ac60a7..99b22e02e4 100644 --- a/website/common/locales/es/settings.json +++ b/website/common/locales/es/settings.json @@ -200,9 +200,9 @@ "transaction_create_challenge": "Desafío creado", "transaction_create_guild": "Gremio creado", "transaction_change_class": "Clase cambiada", - "transaction_rebirth": "Orbe de renacimiento usado", + "transaction_rebirth": "Orbe de Renacimiento usado", "transaction_release_pets": "Mascotas soltadas", - "transaction_reroll": "Poción de fortalecimiento usada", + "transaction_reroll": "Poción de Fortalecimiento usada", "hourglassTransactions": "Transacciones de Relojes de Arena", "transaction_gift_receive": "Recibido de", "transaction_debug": "Depuración", From d0d32c0b58e8759a909cd7f3311770a6dec72094 Mon Sep 17 00:00:00 2001 From: Natalie L <78037386+CuriousMagpie@users.noreply.github.com> Date: Wed, 30 Mar 2022 17:46:35 -0400 Subject: [PATCH 07/17] fix: Spring Fling Strings (#13902) * fix: spring fling string fixes * fix: additional spring fling string fixes --- website/common/locales/en/gear.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 87e76a78e1..df93aa8553 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -431,7 +431,7 @@ "weaponSpecialSpring2022RogueText": "Giant Earring Stud", "weaponSpecialSpring2022RogueNotes": "A shiny! It’s so shiny and gleaming and pretty and nice and all yours! Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.", "weaponSpecialSpring2022WarriorText": "Inside-Out Umbrella", - "weaponSpecialSpring2022WarriorNotes": "Yikes! Guess that wind was a little stronger than you thought, huh? Increases Strength by <%= str %>, Limited Edition 2022 Spring Gear.", + "weaponSpecialSpring2022WarriorNotes": "Yikes! Guess that wind was a little stronger than you thought, huh? Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.", "weaponSpecialSpring2022MageText": "Forsythia Staff", "weaponSpecialSpring2022MageNotes": "These bright yellow bells are ready to channel your powerful springtime magic. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2022 Spring Gear.", "weaponSpecialSpring2022HealerText": "Peridot Wand", @@ -1042,9 +1042,9 @@ "armorSpecialSpring2022WarriorText": "Rain Slicker", "armorSpecialSpring2022WarriorNotes": "This slicker and boots are so formidable you could sing in the rain or jump in every puddle but still be warm and dry! Increases Constitution by <%= con %>. Limited Edition 2022 Spring Gear.", "armorSpecialSpring2022MageText": "Forsythia Robe", - "armorSpecialSpring2022MageNotes": "Show you’re ready to spring forward into the season with this robe adorned with forsythia flower petals. Intelligence by <%= int %>.Limited Edition 2022 Spring Gear.", + "armorSpecialSpring2022MageNotes": "Show you’re ready to spring forward into the season with this robe adorned with forsythia flower petals. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring Gear.", "armorSpecialSpring2022HealerText": "Peridot Armor", - "armorSpecialSpring2022HealerNotes": " Drive away fears and nightmares simply by wearing this green gem garment. Increases Constitution by <%= con %>. Limited Edition 2022 Spring Gear.", + "armorSpecialSpring2022HealerNotes": "Drive away fears and nightmares simply by wearing this green gem garment. Increases Constitution by <%= con %>. Limited Edition 2022 Spring Gear.", "armorMystery201402Text": "Messenger Robes", "armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.", @@ -1737,7 +1737,7 @@ "headSpecialSpring2022WarriorText": "Rain Slicker Hood", "headSpecialSpring2022WarriorNotes": "Tut tut, it looks like rain! Stand tall and pull up your hood to stay dry. Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.", "headSpecialSpring2022MageText": "Forsythia Helmet", - "headSpecialSpring2022MageNotes": "Stay dry during a rainstorm with this protective helmet of downturned petals.Increases Perception by <%= per %>. Limited Edition 2022 Spring Gear.", + "headSpecialSpring2022MageNotes": "Stay dry during a rainstorm with this protective helmet of downturned petals. Increases Perception by <%= per %>. Limited Edition 2022 Spring Gear.", "headSpecialSpring2022HealerText": "Peridot Helmet", "headSpecialSpring2022HealerNotes": "This mysterious helmet preserves your privacy as you tackle your tasks. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring Gear.", From d367060a82911c47d5f0bb7db7437012d357a91b Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 31 Mar 2022 19:36:03 +0200 Subject: [PATCH 08/17] Translated using Weblate (Japanese) Currently translated at 98.6% (2543 of 2579 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (197 of 197 strings) Translated using Weblate (French) Currently translated at 100.0% (197 of 197 strings) Translated using Weblate (French) Currently translated at 100.0% (2579 of 2579 strings) Translated using Weblate (French) Currently translated at 100.0% (131 of 131 strings) Co-authored-by: Benoit Hetru Co-authored-by: Weblate Co-authored-by: mattya 226 Translate-URL: https://translate.habitica.com/projects/habitica/achievements/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/ Translation: Habitica/Achievements Translation: Habitica/Gear Translation: Habitica/Subscriber --- website/common/locales/fr/achievements.json | 2 +- website/common/locales/fr/gear.json | 8 +++++++- website/common/locales/fr/subscriber.json | 3 ++- website/common/locales/ja/gear.json | 4 +++- website/common/locales/ja/subscriber.json | 3 ++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/website/common/locales/fr/achievements.json b/website/common/locales/fr/achievements.json index 2f6805afee..35bc2a722e 100644 --- a/website/common/locales/fr/achievements.json +++ b/website/common/locales/fr/achievements.json @@ -127,7 +127,7 @@ "achievementZodiacZookeeper": "Le Zoo-diaque", "achievementZodiacZookeeperModalText": "Vous avez collecté tous les familiers du zodiaque !", "achievementZodiacZookeeperText": "A collecté tous les familiers du zodiaque : Rat, Vache, Lapin, Serpent, Cheval, Mouton, Singe, Coq, Loup, Tigre, Cochon volant et Dragon !", - "achievementBirdsOfAFeatherText": "A collecté tous les familiers volants : Cochon volant, Hibou, Perroquet, Pterodactyle, Griffon, et Faucon.", + "achievementBirdsOfAFeatherText": "A collecté tous les familiers volants : Cochon volant, Hibou, Perroquet, Pterodactyle, Griffon, Faucon, Paon et Coq.", "achievementBirdsOfAFeather": "Oiseaux à une Plume", "achievementBirdsOfAFeatherModalText": "Vous avez collecté tous les familiers volants !" } diff --git a/website/common/locales/fr/gear.json b/website/common/locales/fr/gear.json index 088da1a673..527098668c 100644 --- a/website/common/locales/fr/gear.json +++ b/website/common/locales/fr/gear.json @@ -2608,5 +2608,11 @@ "headSpecialSpring2022RogueNotes": "Faites preuve d'autant d'intelligence qu'une pie en portant ce masque. Peut-être serez vous également capable de siffler, de triller et d'imitée comme l'une d'elles, aussi. Augmente la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", "headSpecialSpring2022MageNotes": "Restez au sec pendant les pluies diluviennes avec ce casque protecteur avec des rebords à pétales. Augmente la perception de <%= per %>. Équipement en édition limitée du printemps 2022.", "shieldSpecialSpring2022WarriorNotes": "Vous avez déjà eu l'impression qu'un nuage pluvieux vous suivait où que vous alliez ? Réjouissez-vous, parce que bientôt les plus jolies fleurs pousseront à vos pieds ! Augmente la constitution de <%= con %>. Équipement en édition limitée du printemps 2022.", - "shieldSpecialSpring2022WarriorText": "Nuage pluvieux" + "shieldSpecialSpring2022WarriorText": "Nuage pluvieux", + "armorMystery202204Text": "Capsule d'aventure virtuelle", + "armorMystery202204Notes": "On dirait que vos tâches requièrent maintenant d'appuyer sur ces mystérieux boutons ! Que peuvent-ils bien faire ? Ne confère aucun bonus. Équipement d'abonnement d'avril 2022.", + "eyewearMystery202204BText": "Visage virtuel", + "eyewearMystery202204BNotes": "Quelle est votre humeur du jour ? Exprimez vous avec ces écrans amusants. Ne confère aucun bonus. Équipement d'abonnement d'avril 2022.", + "eyewearMystery202204AText": "Visage virtuel", + "eyewearMystery202204ANotes": "Quelle est votre humeur du jour ? Exprimez vous avec ces écrans amusants. Ne confère aucun bonus. Équipement d'abonnement d'avril 2022." } diff --git a/website/common/locales/fr/subscriber.json b/website/common/locales/fr/subscriber.json index bec8d5341b..7529b1d1f7 100644 --- a/website/common/locales/fr/subscriber.json +++ b/website/common/locales/fr/subscriber.json @@ -202,5 +202,6 @@ "mysterySet202112": "Ensemble d'ondine antarctique", "mysterySet202201": "Ensemble de gaieté de cœur de minuit", "mysterySet202202": "Ensemble de queues jumelles turquoise", - "mysterySet202203": "Ensemble de libellule intrépide" + "mysterySet202203": "Ensemble de libellule intrépide", + "mysterySet202204": "Ensemble d'aventure virtuelle" } diff --git a/website/common/locales/ja/gear.json b/website/common/locales/ja/gear.json index 71cedd2bcb..ae43f34b2d 100644 --- a/website/common/locales/ja/gear.json +++ b/website/common/locales/ja/gear.json @@ -2576,5 +2576,7 @@ "weaponArmoireGardenersWateringCanText": "じょうろ", "weaponArmoireGardenersWateringCanNotes": "水なしじゃ何事も上手くいきません!この魔法の水源じょうろで無限の供給を手にしましょう。知能が<%= int %>上がります。ラッキー宝箱:ガーデナーセット(4個中4個目のアイテム)。", "armorArmoireGardenersOverallsText": "ガーデナーのオーバーオール", - "armorArmoireGardenersOverallsNotes": "この丈夫なオーバーオールを着ているときは土の作業を怖がらなくても大丈夫。体質が<%= con %>上がります。ラッキー宝箱:ガーデナーセット(4個中1個目のアイテム)。" + "armorArmoireGardenersOverallsNotes": "この丈夫なオーバーオールを着ているときは土の作業を怖がらなくても大丈夫。体質が<%= con %>上がります。ラッキー宝箱:ガーデナーセット(4個中1個目のアイテム)。", + "weaponSpecialSpring2022RogueText": "大きなボタン型ピアス", + "weaponSpecialSpring2022RogueNotes": "ぴっかぴか!輝いてて光ってて可愛くってステキでしかもあなたのもの!力が<%= str %>上がります。2022年春の限定装備。" } diff --git a/website/common/locales/ja/subscriber.json b/website/common/locales/ja/subscriber.json index d959ea6061..cca61253c9 100644 --- a/website/common/locales/ja/subscriber.json +++ b/website/common/locales/ja/subscriber.json @@ -200,5 +200,6 @@ "mysterySet202112": "南極のウィディーネセット", "mysterySet202201": "夜中にはしゃぐセット", "mysterySet202202": "ターコイズツインテールセット", - "mysterySet202203": "不屈のトンボセット" + "mysterySet202203": "不屈のトンボセット", + "mysterySet202204": "バーチャルアドベンチャーセット" } From 140372a70d38907fe61b4964a7277ddebb11eb58 Mon Sep 17 00:00:00 2001 From: citrusella Date: Thu, 31 Mar 2022 16:39:53 -0400 Subject: [PATCH 09/17] Update faceAvatar.vue so snowman ACTUALLY shows up (#13911) --- website/client/src/components/faceAvatar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/src/components/faceAvatar.vue b/website/client/src/components/faceAvatar.vue index 9286dd0d81..73f739aa82 100644 --- a/website/client/src/components/faceAvatar.vue +++ b/website/client/src/components/faceAvatar.vue @@ -112,7 +112,7 @@ export default { }, visualBuffs () { return { - snowball: 'snowman', + snowball: `avatar_snowball_${this.member.stats.class}`, spookySparkles: 'ghost', shinySeed: `avatar_floral_${this.member.stats.class}`, seafoam: 'seafoam_star', From 06d982401ace0944fd378069f336f3d79d7a2bf8 Mon Sep 17 00:00:00 2001 From: Natalie L <78037386+CuriousMagpie@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:59:36 -0400 Subject: [PATCH 10/17] Update: Revised text string for zodiacZookeeper and birdsOfAFeather achievements (#13884) * updated text string for zodiacZooKeeper and birdsOfAFeather * added peacock and rooster (oops!) --- website/common/locales/en/achievements.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/common/locales/en/achievements.json b/website/common/locales/en/achievements.json index a8e4c796b5..2ff851bd0c 100644 --- a/website/common/locales/en/achievements.json +++ b/website/common/locales/en/achievements.json @@ -125,9 +125,9 @@ "achievementShadeOfItAllText": "Has tamed all Shade Mounts.", "achievementShadeOfItAllModalText": "You tamed all the Shade Mounts!", "achievementZodiacZookeeper": "Zodiac Zookeeper", - "achievementZodiacZookeeperText": "Has hatched all the zodiac pets: Rat, Cow, Bunny, Snake, Horse, Sheep, Monkey, Rooster, Wolf, Tiger, Flying Pig, and Dragon!", + "achievementZodiacZookeeperText": "Has hatched all standard colors of zodiac pets: Rat, Cow, Bunny, Snake, Horse, Sheep, Monkey, Rooster, Wolf, Tiger, Flying Pig, and Dragon!", "achievementZodiacZookeeperModalText": "You collected all the zodiac pets!", "achievementBirdsOfAFeather": "Birds of a Feather", - "achievementBirdsOfAFeatherText": "Has hatched all the flying pets: Flying Pig, Owl, Parrot, Pterodactyl, Gryphon, Falcon, Peacock, and Rooster.", + "achievementBirdsOfAFeatherText": "Has hatched all standard colors of flying pets: Flying Pig, Owl, Parrot, Pterodactyl, Gryphon, Falcon, Peacock, and Rooster.", "achievementBirdsOfAFeatherModalText":"You collected all the flying pets!" } From 9ff0766910d2ef169574b54106bf3aea4405ea39 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 31 Mar 2022 23:32:59 +0200 Subject: [PATCH 11/17] Fix cron not running if previous run failed (#13892) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * catch issue where cron wouldn’t run bc previous run failed * add some more tests for cron middleware * fix lint --- test/api/unit/middlewares/cronMiddleware.js | 45 +++++++++++++++++++++ test/api/unit/models/user.test.js | 10 +++++ website/server/models/user/methods.js | 10 +++-- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/test/api/unit/middlewares/cronMiddleware.js b/test/api/unit/middlewares/cronMiddleware.js index 873bbb70a7..fea4384c26 100644 --- a/test/api/unit/middlewares/cronMiddleware.js +++ b/test/api/unit/middlewares/cronMiddleware.js @@ -128,6 +128,22 @@ describe('cron middleware', () => { }); }); + it('runs cron if previous cron was incomplete', async () => { + user.lastCron = moment(new Date()).subtract({ days: 1 }); + user.auth.timestamps.loggedin = moment(new Date()).subtract({ days: 4 }); + const now = new Date(); + await user.save(); + + await new Promise((resolve, reject) => { + cronMiddleware(req, res, err => { + if (err) return reject(err); + expect(moment(now).isSame(user.lastCron, 'day')); + expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day')); + return resolve(); + }); + }); + }); + it('updates user.auth.timestamps.loggedin and lastCron', async () => { user.lastCron = moment(new Date()).subtract({ days: 2 }); const now = new Date(); @@ -293,4 +309,33 @@ describe('cron middleware', () => { }); }); }); + + it('cron should not run more than once', async () => { + user.lastCron = moment(new Date()).subtract({ days: 2 }); + await user.save(); + + sandbox.spy(cronLib, 'cron'); + + await Promise.all([new Promise((resolve, reject) => { + cronMiddleware(req, res, err => { + if (err) return reject(err); + return resolve(); + }); + }), new Promise((resolve, reject) => { + cronMiddleware(req, res, err => { + if (err) return reject(err); + return resolve(); + }); + }), new Promise((resolve, reject) => { + setTimeout(() => { + cronMiddleware(req, res, err => { + if (err) return reject(err); + return resolve(); + }); + }, 400); + }), + ]); + + expect(cronLib.cron).to.be.calledOnce; + }); }); diff --git a/test/api/unit/models/user.test.js b/test/api/unit/models/user.test.js index 27c61485d9..d559ba0025 100644 --- a/test/api/unit/models/user.test.js +++ b/test/api/unit/models/user.test.js @@ -811,6 +811,16 @@ describe('User Model', () => { expect(daysMissed).to.eql(5); }); + it('correctly handles a cron that did not complete', () => { + const now = moment(); + user.lastCron = moment(now).subtract(2, 'days'); + user.auth.timestamps.loggedIn = moment(now).subtract(5, 'days'); + + const { daysMissed } = user.daysUserHasMissed(now); + + expect(daysMissed).to.eql(5); + }); + it('uses timezone from preferences to calculate days missed', () => { const now = moment('2017-07-08 01:00:00Z'); user.lastCron = moment('2017-07-04 13:00:00Z'); diff --git a/website/server/models/user/methods.js b/website/server/models/user/methods.js index c4231fbaa2..2c5e62f29a 100644 --- a/website/server/models/user/methods.js +++ b/website/server/models/user/methods.js @@ -382,8 +382,12 @@ schema.methods.daysUserHasMissed = function daysUserHasMissed (now, req = {}) { timezoneUtcOffsetFromUserPrefs = timezoneUtcOffsetFromBrowser; } + let lastCronTime = this.lastCron; + if (this.auth.timestamps.loggedIn < lastCronTime) { + lastCronTime = this.auth.timestamps.loggedIn; + } // How many days have we missed using the user's current timezone: - let daysMissed = daysSince(this.lastCron, defaults({ now }, this.preferences)); + let daysMissed = daysSince(lastCronTime, defaults({ now }, this.preferences)); if (timezoneUtcOffsetAtLastCron !== timezoneUtcOffsetFromUserPrefs) { // Give the user extra time based on the difference in timezones @@ -395,7 +399,7 @@ schema.methods.daysUserHasMissed = function daysUserHasMissed (now, req = {}) { // Since cron last ran, the user's timezone has changed. // How many days have we missed using the old timezone: const daysMissedNewZone = daysMissed; - const daysMissedOldZone = daysSince(this.lastCron, defaults({ + const daysMissedOldZone = daysSince(lastCronTime, defaults({ now, timezoneUtcOffsetOverride: timezoneUtcOffsetAtLastCron, }, this.preferences)); @@ -435,7 +439,7 @@ schema.methods.daysUserHasMissed = function daysUserHasMissed (now, req = {}) { const timezoneOffsetDiff = timezoneUtcOffsetFromUserPrefs - timezoneUtcOffsetAtLastCron; // e.g., for dangerous zone change: -300 - -240 = -60 or 600 - 660= -60 - this.lastCron = moment(this.lastCron).subtract(timezoneOffsetDiff, 'minutes'); + this.lastCron = moment(lastCronTime).subtract(timezoneOffsetDiff, 'minutes'); // NB: We don't change this.auth.timestamps.loggedin so that will still record // the time that the previous cron actually ran. // From now on we can ignore the old timezone: From 55cf2f97956299c83109506a4204394a09fadfa1 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 31 Mar 2022 23:43:16 +0200 Subject: [PATCH 12/17] Improve flows for social auth users (#13862) * Multiple fixes for social authentication flows * frontend changes * add missing computed property * Improvements to social flows * fix existing email error * minor fixes * fix space * fix test * fix lint Co-authored-by: SabreCat --- website/client/src/components/appFooter.vue | 2 +- .../components/auth/registerLoginReset.vue | 6 +- .../client/src/components/bugReportModal.vue | 25 ++++-- .../src/components/bugReportSuccessModal.vue | 19 ++-- .../client/src/components/groups/tavern.vue | 2 +- website/client/src/components/header/menu.vue | 2 +- .../src/components/settings/deleteModal.vue | 4 +- .../client/src/components/settings/site.vue | 31 +++++-- .../src/components/shared/closeIcon.vue | 2 +- .../client/src/components/static/contact.vue | 2 +- .../client/src/components/static/privacy.vue | 89 ++++++++++++++----- .../client/src/components/static/terms.vue | 65 +++++++++----- website/common/locales/el/settings.json | 1 + website/common/locales/en/front.json | 7 +- website/common/locales/en/settings.json | 1 + website/server/controllers/api-v3/auth.js | 28 ++++-- website/server/libs/auth/index.js | 5 +- website/server/libs/password.js | 4 +- website/server/models/user/hooks.js | 6 ++ 19 files changed, 213 insertions(+), 88 deletions(-) diff --git a/website/client/src/components/appFooter.vue b/website/client/src/components/appFooter.vue index 61ba4d08e4..f41be288aa 100644 --- a/website/client/src/components/appFooter.vue +++ b/website/client/src/components/appFooter.vue @@ -84,8 +84,8 @@
  • {{ $t('reportBug') }} diff --git a/website/client/src/components/auth/registerLoginReset.vue b/website/client/src/components/auth/registerLoginReset.vue index b406b124c3..face9f7512 100644 --- a/website/client/src/components/auth/registerLoginReset.vue +++ b/website/client/src/components/auth/registerLoginReset.vue @@ -20,8 +20,8 @@
  • {{ $t('email') }} + >{{ $t('emailOrUsername') }}
    diff --git a/website/client/src/components/bugReportModal.vue b/website/client/src/components/bugReportModal.vue index 91fda2a859..92d096264d 100644 --- a/website/client/src/components/bugReportModal.vue +++ b/website/client/src/components/bugReportModal.vue @@ -12,12 +12,18 @@ {{ $t('reportBug') }} -
    +
    {{ $t('reportBugHeaderDescribe') }}
    - +
    @@ -34,7 +40,10 @@ > {{ $t('email') }} -
    +
    {{ $t('reportEmailText') }}
    -
    +
    {{ $t('reportEmailError') }}
    @@ -55,7 +67,10 @@ -
    +
    {{ $t('reportDescriptionText') }}